AI Driven Spreadsheet

AI Driven Spreadsheet — independent reviews, comparisons, pricing and step-by-step guides on Aizhi.

  • Dr. Sbaitso

    Dr. Sbaitso

    Dr. Sbaitso ( SPAYT-soh) is an artificial intelligence speech synthesis program released late in 1991 by Creative Labs in Singapore for MS-DOS-based personal computers. The name is an acronym for "SoundBlaster Acting Intelligent Text-to-Speech Operator." == History == Dr. Sbaitso was distributed with various sound cards manufactured by Creative Technology in the early 1990s. The text-to-speech engine used is a version of Monologue, which was developed by First Byte Software. Monologue is a later release of First Byte's "SmoothTalker" software from 1984. The program "conversed" with the user as if it were a psychologist, though most of its responses were along the lines of "WHY DO YOU FEEL THAT WAY?" rather than any sort of complicated interaction. When confronted with a phrase it could not understand, it would often reply with something such as "THAT'S NOT MY PROBLEM." Dr. Sbaitso repeated text out loud that was typed after the word "SAY." Repeated swearing or abusive behavior on the part of the user caused Dr. Sbaitso to "break down" in a "PARITY ERROR" before resetting itself. The same would happen, if the user types "SAY PARITY." The program introduced itself with the following lines: HELLO [UserName], MY NAME IS DOCTOR SBAITSO. I AM HERE TO HELP YOU. SAY WHATEVER IS IN YOUR MIND FREELY, OUR CONVERSATION WILL BE KEPT IN STRICT CONFIDENCE. MEMORY CONTENTS WILL BE WIPED OFF AFTER YOU LEAVE, SO, TELL ME ABOUT YOUR PROBLEMS. The program was designed to showcase the digitized voices the cards were able to produce, though the quality was far from lifelike. Additionally, there was a version of this program for Microsoft Windows through the use of a program called Prody Parrot; this version of the software featured a more detailed graphical user interface. The text-to-speech was also used as the voice of 1st Prize from the Baldi's Basics series, albeit slowed down. == Commands == If the user submits "HELP", a list of commands will appear. If the user then submits "M", more commands will appear. There are three pages of commands in total, with guidance on how to use each of the features.

    Read more →
  • Imagen (text-to-image model)

    Imagen (text-to-image model)

    Imagen is a series of text-to-image models developed by Google DeepMind. They were developed by Google Brain until the company's merger with DeepMind in April 2023. Imagen is primarily used to generate images from text prompts, similar to Stability AI's Stable Diffusion, OpenAI's DALL-E, or Midjourney. The original version of the model was first discussed in a paper from May 2022. The tool produces high-quality images and is available to all users with a Google account through services including Gemini, ImageFX, and Vertex AI. == History == Imagen's original version was first presented in a paper published in May 2022. It featured the ability to generate high-fidelity images from natural language. The second version, Imagen 2 was released in December 2023. The standout feature was text and logo generation. Imagen 3 was released in August 2024. Google claims that the newest version provides better detail and lighting on generated images. On 20 May 2025 at Google I/O 2025 the company released an improved model, Imagen 4. == Technology == Imagen uses two key technologies. The first is the use of transformer-based large language models, notably T5, to understand text and subsequently encode text for image synthesis. The second is the use of cascaded diffusion models providing high-fidelity image generation. Imagen generates image in three stages, starting from a base of 64x64, then upsampled to 256x256 and 1024x1024. Imagen 4 generates image up to 2k. == Capabilities == Imagen can generate photorealistic images from text prompts. It can also create various styles, such as cinematic, 35mm film, illustration, and surreal. Like most text-to-image generative AI models, Imagen has difficulty rendering human fingers, text, ambigrams and other forms of typography. The model can generate images in five aspect ratios, namely 9:16, 3:4, 1:1, 4:3, and 16:9. Imagen can also refine already generated images by editing existing text prompts.

    Read more →
  • Emma Hart (computer scientist)

    Emma Hart (computer scientist)

    Professor Emma Hart, FRSE (born 1967) is an English computer scientist known for her work in artificial immune systems (AIS), evolutionary computation and optimisation. She is a professor of computational intelligence at Edinburgh Napier University, editor-in-chief of the Journal of Evolutionary Computation (MIT Press), and D. Coordinator of the Future & Emerging Technologies (FET) Proactive Initiative, Fundamentals of Collective Adaptive Systems. == Early life and education == Hart was born in Middlesbrough, England in 1967. In 1990 she graduated from the University of Oxford with a first class BA(Hons) in Chemistry. She then continued her studies at the University of Edinburgh, graduating with an MSc in Artificial Intelligence in 1994, followed by a PhD that explored the use of immunology as an inspiration for computing, examining a range of techniques applied to optimization and data classification problems. Her dissertation was titled Immunology as a metaphor for computational information processing: Fact or fiction?, and her doctoral advisor was Peter Ross. == Career == In 2000 Hart took a position as a lecturer at Edinburgh Napier University, and was promoted to a Reader, Professor, and in 2008 Chair in Natural Computation. She is now director of the Centre of Algorithms, Visualisation and Evolving Systems (CAVES) group in the School of Computing. She continues to research in the area of developing novel bio-inspired techniques for solving a range of real-world optimisation and classification problems, as well as exploring the fundamental properties of immune-inspired computing through modelling and simulation. She is also involved in editorial activity and currently occupies the position of Editor-in-Chief of the Journal of Evolutionary Computation (MIT Press). Her interests lie in the area of bio-inspired computing, in particular artificial immune systems (AIS). She also undertakes research in three main areas: optimisation, self-organising/self-adaptive systems, and artificial intelligence. Hart is D. Coordinator of Fundamentals of Collective Adaptive Systems (FoCAS), a Future and Emerging Technologies Proactive Initiative funded by the European Commission under FP7. == Selected works == === Conference talks === Hart, Emma. "Lifelong learning in optimization (video)". 28th European Conference on Operational Research. The Association of European Operational Research Societies. Hart, Emma (December 2021). "Self-assembling robots and the potential of artificial evolution". TED talk 2021. === Journal articles === "An immune system approach to scheduling in changing environments". E.Hart, P.Ross. 1999. Proceedings of the 1st Annual Conference on Genetic and Evolutionary Computation (2), 1559–1566. "Exploiting the analogy between immunology and sparse distributed memories: A system for clustering non-stationary data". E.Hart, P.Ross. 2002. 1st International Conference on Artificial Immune Systems. "Evolutionary scheduling: A review". E Hart, P Ross, D Corne. 2005. Genetic Programming and Evolvable Machines 6(2), 191–220. DOI: https://doi.org/10.1007/s10710-005-7580-7 "Application areas of AIS: The past, the present and the future". E.Hart, J.Timmis. 2008. Applied soft computing 8(1), 191–201. DOI: https://doi.org/10.1016/j.asoc.2006.12.004 "Structure versus function: a topological perspective on immune networks". E.Hart, H.Bersini, F.Santos. 2010. Natural computing 9(3), 603–624. DOI: https://doi.org/10.1007/s11047-009-9138-8 "On the life-long learning capabilities of a nelli: A hyper-heuristic optimisation system". E.Hart, K.Sim. 2014. International Conference on Parallel Problem Solving from Nature, 282–291. DOI: https://doi.org/10.1007/978-3-319-10762-2_28 "A hyper-heuristic ensemble method for static job-shop scheduling". E.Hart, K.Sim. 2016. Evolutionary computation 24(4), 609-635. DOI: https://dx.doi.org/10.1162/EVCO_a_00183 == Awards and recognition == 2016, Featured article on Lifelong Learning in Optimisation, IFORS newsletter 2016, "A Combined Generative and Selective Hyper-heuristic for the Vehicle Routing Problem" presented at GECCO 2016 (Denver, USA), ACM 2016, "A Hybrid Parameter Control Approach Applied to a Diversity-based Multi-objective Memetic Algorithm for Frequency Assignment Problems" presented at WCCI 2016 (Vancouver, Canada), IEEE 2017, Keynote Speaker, 2017 International Joint Conference on Computational Intelligence 2018, Bronze Award in International Human-Competitive Awards (Humies), International Conference on Genetic and Evolutionary Computation, Kyoto Japan 2018, Nomination for best paper award, GECCO 18, Kyoto, Japan 2022, Elected Fellow of the Royal Society of Edinburgh

    Read more →
  • Death of Elaine Herzberg

    Death of Elaine Herzberg

    The death of Elaine Herzberg (August 2, 1968 – March 18, 2018) was the first recorded case of a pedestrian fatality involving a self-driving car, after a collision that occurred late in the evening of March 18, 2018. Herzberg was pushing a bicycle across a four-lane road in Tempe, Arizona, United States, when she was struck by an Uber test vehicle, which was operating in self-drive mode with a human safety backup driver sitting in the driving seat. Herzberg was taken to the local hospital where she died of her injuries. Following the fatal incident, the National Transportation Safety Board (NTSB) issued a series of recommendations and sharply criticized Uber. The company suspended testing of self-driving vehicles in Arizona, where such testing had been approved since August 2016. Uber chose not to renew its permit for testing self-driving vehicles in California when it expired at the end of March 2018. Uber resumed testing in December 2018, starting in Pittsburgh, Pennsylvania. In March 2019, Arizona prosecutors ruled that Uber was not criminally responsible for the crash. The back-up driver of the vehicle was charged with negligent homicide, pled guilty to endangerment, and was sentenced to three years' probation. While Herzberg was the first pedestrian killed by a self-driving car, driver Gao Yaning died in a Tesla semi-autonomous car two years earlier. A reporter for The Washington Post compared Herzberg's fate with that of Bridget Driscoll who, in the United Kingdom in 1896, was the first pedestrian to be killed by an automobile. The Arizona incident has magnified the importance of collision avoidance systems for self-driving vehicles. == Collision summary == Herzberg was crossing Mill Avenue (North) from west to east, approximately 360 feet (110 m) south of the intersection with Curry Road, outside the designated pedestrian crosswalk, close to the Red Mountain Freeway. She was pushing a bicycle laden with shopping bags, and had crossed at least two lanes of traffic when she was struck at approximately 9:58 pm MST (UTC−07:00) by a prototype Uber self-driving car based on a Volvo XC90, which was traveling north on Mill. The vehicle had been operating in autonomous mode since 9:39 pm, nineteen minutes before it struck and killed Herzberg. The car's human safety backup driver, Rafaela Vasquez, did not intervene in time to prevent the collision. Vehicle telemetry obtained after the crash showed that the human operator responded by moving the steering wheel less than a second before impact, and she engaged the brakes less than a second after impact. == Cause investigation == The county district attorney's office recused itself from the investigation, due to a prior joint partnership with Uber promoting their services as an alternative to driving under the influence of alcohol. Accounts differ on the speed limit at the place of the incident. According to Tempe police the car was traveling in a 35 mph (56 km/h) zone, but this is contradicted by a posted speed limit of 45 mph (72 km/h). The National Transportation Safety Board (NTSB) sent a team of federal investigators to gather data from vehicle instruments, and to examine vehicle condition along with the actions taken by the safety driver. Their preliminary findings were substantiated by multiple event data recorders and proved the vehicle was traveling 43 miles per hour (69 km/h) when Herzberg was first detected 6 seconds (378 feet (115 m)) before impact; during 4.7 seconds the self driving system did not infer that emergency braking was needed. A vehicle traveling 43 mph (69 km/h) can generally stop within 89 feet (27 m) once the brakes are applied. The machine needed to be 1.3 seconds (82 feet (25 m)) away prior to discerning that emergency braking was required, whereas at least that much distance was required to stop. The system failed to behave properly. A total stopping distance of 76 feet itself would imply a safe speed under 25 mph (40 km/h). Human intervention was still legally required. Computer perception–reaction time would have been a speed limiting factor had the technology been superior to humans in ambiguous situations; however, the nascent computerized braking technology was disabled the day of the crash, and the machine's apparent 4.7-second perception–reaction (alarm) time allowed the car to travel 250 feet (76 m). Video released by the police on March 21 showed the safety driver was not watching the road moments before the vehicle struck Herzberg. === Environment === In widely disseminated remarks that would shape the narrative about the crash, which were later seen as prejudicial and subsequently contradicted by her own department, Tempe Police Chief Sylvia Moir was quoted stating that the collision was "unavoidable" based on the initial police investigation, which included a review of the video captured by an onboard camera. Moir faulted Herzberg for crossing the road in an unsafe manner: "It is dangerous to cross roadways in the evening hour when well-illuminated, managed crosswalks are available." According to Uber, safety drivers were trained to keep their hands very close to the wheel all the time while driving the vehicle so they were ready to quickly take control if necessary. The driver said it was like a flash, the person walked out in front of them. His [sic] first alert to the collision was the sound of the collision. [...] it's very clear it would have been difficult to avoid this collision in any kind of mode (autonomous or human-driven) based on how she came from the shadows right into the roadway. Tempe police released video on March 21, 2018, showing footage recorded by two onboard cameras: one forward-looking, and one capturing the safety driver's actions. The forward-facing video shows that the self-driving car was traveling in the far right lane when it struck Herzberg. The driver-facing video shows the safety driver was looking down prior to the collision. The Uber operator is responsible for intervening and taking manual control when necessary as well as for monitoring diagnostic messages, which are displayed on a screen in the center console. In an interview conducted after the crash with NTSB, the driver stated she was monitoring the center stack at the time of the collision. After the Uber video was released, journalist Carolyn Said noted the police explanation of Herzberg's path meant she had already crossed two lanes of traffic before she was struck by the autonomous vehicle. The Marquee Theatre and Tempe Town Lake are west of Mill Avenue, and pedestrians commonly cross mid-street without detouring north to the crosswalk at Curry. According to reporting by the Phoenix New Times, Mill Avenue contains what appears to be a brick-paved path in the median between the northbound and southbound lanes; however, posted signs prohibit pedestrians from crossing in that location. When the second of the Mill Avenue bridges over the town lake was added in 1994 for northbound traffic, the X-shaped crossover in the median was installed to accommodate the potential closing of one of the two road bridges. The purpose of this brick-paved structure is purely to divert cars from one side to the other if a bridge is closed to traffic, and although it may look like a crosswalk for pedestrians, it is in fact a temporary roadway with vertical curbs and warning signs. === Software issues === Michael Ramsey, a self-driving car expert with Gartner, characterized the video as showing "a complete failure of the system to recognize an obviously seen person who is visible for quite some distance in the frame. Uber has some serious explaining to do about why this person wasn't seen and why the system didn't engage." The NTSB preliminary report, however, noted that the software did order the car to brake 1.3 seconds before the collision. A video shot from the vehicle's dashboard camera showed the safety driver looking down, away from the road. It also appeared that the driver's hands were not hovering above the steering wheel, which is what drivers are instructed to do so they can quickly retake control of the car. Uber had moved from two employees in every car to one. The paired employees had been splitting duties: one ready to take over if the autonomous system failed, and another to keep an eye on what the computers were detecting. The second person was responsible for keeping track of system performance as well as labeling data on a laptop computer. Mr. Kallman, the Uber spokesman, said the second person was in the car for purely data related tasks, not safety. When Uber moved to a single operator, some employees expressed safety concerns to managers, according to the two people familiar with Uber's operations. They were worried that going solo would make it harder to remain alert during hours of monotonous driving. The recorded telemetry showed the system had detected Herzberg six seconds before the crash, and classified her first as an unknown object, then as a

    Read more →
  • Umple

    Umple

    Umple is a language for both object-oriented programming and modelling with class diagrams and state diagrams. The name Umple is a portmanteau of "UML", "ample" and "Simple", indicating that it is designed to provide ample features to extend programming languages with UML capabilities. == History and philosophy == The design of Umple started in 2008 at the University of Ottawa. Umple was open-sourced and its development was moved to Google Code in early 2011 and to GitHub in 2015. Umple was developed, in part, to address certain problems observed in the modelling community. Most specifically, it was designed to bring modelling and programming into alignment, It was intended to help overcome inhibitions against modelling common in the programmer community. It was also intended to reduce some of the difficulties of model-driven development that arise from the need to use large, expensive or incomplete tools. One design objective is to enable programmers to model in a way they see as natural, by adding modelling constructs to programming languages. == Features and capabilities == Umple can be used to represent in a textual manner many UML modelling entities found in class diagrams and state diagrams. Umple can generate code for these in various programming languages. Currently Umple fully supports Java, C++ and PHP as target programming languages and has functional, but somewhat incomplete support for Ruby. Umple also incorporates various features not related to UML, such as the singleton pattern, keys, immutability, mixins and aspect-oriented code injection. The class diagram notations Umple supports includes classes, interfaces, attributes, associations, generalizations and operations. The code Umple generates for attributes include code in the constructor, 'get' methods and 'set' methods. The generated code differs considerably depending on whether the attribute has properties such as immutability, has a default value, or is part of a key. Umple generates many methods for manipulating, querying and navigating associations. It supports all combinations of UML multiplicity and enforces referential integrity. Umple supports the vast majority of UML state machine notation, including arbitrarily deep nested states, concurrent regions, actions on entry, exit and transition, plus long-lasting activities while in a state. A state machine is treated as an enumerated attribute where the value is controlled by events. Events encoded in the state machine can be methods written by the user, or else generated by the Umple compiler. Events are triggered by calling the method. An event can trigger transitions (subject to guards) in several different state machines. Since a program can be entirely written around one or more state machines, Umple enables automata-based programming. The bodies of methods are written in one of the target programming languages. The same is true for other imperative code such as state machine actions and guards, and code to be injected in an aspect-oriented manner. Such code can be injected before many of the methods in the code Umple generates, for example before or after setting or getting attributes and associations. The Umple notation for UML constructs can be embedded in any of its supported target programming languages. When this is done, Umple can be seen as a pre-processor: The Umple compiler expands the UML constructs into code of the target language. Code in a target language can be passed to the Umple compiler directly; if no Umple-specific notation is found, then the target-language code is emitted unchanged by the Umple compiler. Umple, combined with one of its target languages for imperative code, can be seen and used as a complete programming language. Umple plus Java can therefore be seen as an extension of Java. Alternatively, if imperative code and Umple-specific concepts are left out, Umple can be seen as a way of expressing a large subset of UML in a purely textual manner. Code in one of the supported programming languages can be added in the same manner as UML envisions adding action language code. == License == Umple is licensed under an MIT-style license. == Examples == Here is the classic Hello world program written in Umple (extending Java): This example looks just like Java, because Umple extends other programming languages. With the program saved in a file named HelloWorld.ump, it can be compiled from the command line: $ java -jar umple.jar HelloWorld.ump To run it: $ java HelloWorld The following is a fully executable example showing embedded Java methods and declaration of an association. The following example describes a state machine called status, with states Open, Closing, Closed, Opening and HalfOpen, and with various events that cause transitions from one state to another. class GarageDoor { status { Open { buttonOrObstacle -> Closing; } Closing { buttonOrObstacle -> Opening; reachBottom -> Closed; } Closed { buttonOrObstacle -> Opening; } Opening { buttonOrObstacle -> HalfOpen; reachTop -> Open; } HalfOpen { buttonOrObstacle -> Opening; } } } == Umple use in practice == The first version of the Umple compiler was written in Java, Antlr and Jet (Java Emitter Templates), but in a bootstrapping process, the Java code was converted to Umple following a technique called Umplification. The Antlr and Jet were also later converted to native Umple. Umple is therefore now written entirely in itself, in other words it is self-hosted and serves as its own largest test case. Umple and UmpleOnline have been used in the classroom by several instructors to teach UML and modelling. In one study it was found to help speed up the process of teaching UML, and was also found to improve the grades of students. == Tools == Umple is available as a Jar file so it can be run from the command line, and as an Eclipse plugin. There is also an online tool for Umple called UmpleOnline , which allows a developer to create an Umple system by drawing a UML class diagram, editing Umple code or both. Umple models created with UmpleOnline are stored in the cloud. Currently UmpleOnline only supports Umple programs consisting of a single input file. In addition to code, Umple's tools can generate a variety of other types of output, including user interfaces based on the Umple model.

    Read more →
  • The Life and Times of Multivac

    The Life and Times of Multivac

    "The Life and Times of Multivac" is a science fiction short story by American writer Isaac Asimov. The story first appeared in the 5 January 1975 issue of The New York Times Magazine, and was reprinted in the collections The Bicentennial Man and Other Stories and The Best of Creative Computing in 1976. It is one of a loosely connected series of stories concerning a fictional supercomputer called Multivac. "The Life and Times of Multivac" was the first piece of fiction ever commissioned and published by The New York Times. Asimov's original title for the story was "Mathematical Games", but after the story appeared under the new title he decided he liked it. In his commentary on the story in The Bicentennial Man and Other Stories collection, Asimov stated, "More people came up to me over the next few weeks to tell me they had read that story than had ever been the case for any other story I had ever written." == Plot summary == When humanity begins to chafe under Multivac’s benevolent tyranny, one man takes matters into his own hands to destroy the great computer. By appearing to betray his fellow humans, he places himself in a position to permanently destroy Multivac. It is implied that it is not until completion of the act that he and his peers suddenly realize the enormity of their actions and the consequences it will have on humanity.

    Read more →
  • Argument Web

    Argument Web

    The Argument Web is a large-scale Web of interconnected arguments created by individuals as they express their opinions and interact with the opinions of others. The Argument Web aims to make online debate intuitive for participants such as mediators, students, academics, broadcasters and bloggers, to create a Web infrastructure that allows for the storage, automatic retrieval and analysis of linked argument data, and to improve the quality of online argument and debate. The Argument Web can be described as a portion of a larger Semantic Web. == AIFdb == AIFdb is a database implementation or ‘reification’ of the Argument Interchange Format (AIF), which allows for the storage and retrieval of AIF compliant argument structures. This database solution was provided as a foundation for an open, integrated Argument Web. It offers an extensive range of web services for interacting with stored argument data, while also offering search and argument visualisation features that are all consistent with the formal ontology of AIF. At a basic level, the AIFdb web services allow for the insertion and querying of basic components of an AIF argument, such as nodes, edges and schemes. Building upon this basis, it also facilitates more complex interactions with these AIF argument structures. Such complex queries could make it possible, for example, to determine all the statements made by a particular person in support a given I-Node. While, at its highest level of interaction, AIFdb can handle the import and export of many standard file formats, including SVG, DOT, RDF/XML and other formats of argument theory tools, like Carneades, Rationale and Araucaria. == Argument blogging == ArguBlogging is software which allows its users to select portions of hypertext on webpages in their Web browsers and to agree or disagree with the selected content, posting their arguments to their blogs with linked argument data. It is implemented as a bookmarklet, adding functionality to Web browsers and interoperating with blogging platforms such as Blogger and Tumblr.

    Read more →
  • TCEC Season 14

    TCEC Season 14

    The 14th season of the Top Chess Engine Championship took place between 17 November 2018 and 24 February 2019. Stockfish was the defending champion, having defeated Komodo in the previous season's superfinal. The season is notable for two things: the emergence of two strong, new engines, the Komodo variant Komodo Monte Carlo tree search (MCTS) and the neural network engine Leela Chess Zero, and the dramatic superfinal. Komodo MCTS and Leela fought their way from Division 4 and Division 3 respectively to the Premier Division, with Leela further qualifying for the superfinal against Stockfish. The superfinal was a topsy-turvy affair with the lead changing hands several times. It finished as the closest superfinal TCEC has ever seen, with Stockfish winning by a single game, 50.5–49.5 (+10 =81 -9). == Overview == === Structure === The season comprised five divisions: from the lowest Division 4 to the Premier Division. The top two engines of each division promote to the division above, while the bottom two engines relegate. The top two engines of the Premier Division contest a 100-game superfinal. The lengths of the opening books used increases as the divisions progress. The superfinal itself used a custom opening book designed by Jeroen Noomen. === Rules === The TCEC draw and win rules were slightly modified for Season 14. The game is now adjudicated as drawn if, after move 30, both engines have evals ±0.08 for five consecutive moves, and there are neither pawn moves nor a capture. Win adjudication now occurs if both engines have an eval of ±10 for five consecutive moves. Following the controversy over DeusX's participation last season, the uniqueness rule for neural networks was modified such that at least two of the following three hallmarks must be unique: The code for training the neural network The neural network (and weights file) itself The engine that executes this network This change meant DeusX did not meet the uniqueness criteria and therefore did not participate. Aside from this change, the season used the standard rules of the TCEC. == Results == === Division 4 === New entrant Komodo MCTS dominated Division 4, winning by a clear four points, although it did lose a game to second-place finisher rofChade. Fellow new entrant Scorpio NN performed badly and finished last, drawing only one game and losing the rest. === Division 3 === The neural network engine Leela Chess Zero had just missed promotion to Division 2 in the previous season. Since its relatively weak performance last season was partly due to hardware problems, and since it had shown a lot of improvement in strength, it was the hot favourite in this division. Leela lived up to its billing by comprehensively defeating everyone else. In a portent of future divisions however, Leela surprisingly dropped a game to third-place Arasan. Komodo MCTS was also improving quickly, and an updated version finished second behind Leela. The gap between second and third was 6.5 points, illustrating the gulf in class. === Division 2 === Although Division 2 engines are significantly stronger than Division 3, Leela and Komodo MCTS continued to dominate the competition, and again finished first and second. Komodo MCTS only lost one game to Leela, while Leela's tendency to occasionally lose to weaker engines saw her losing a game to 4th-placed Booot. Third place finisher Xiphos gave Leela and Komodo MCTS a run for their money, and was in the running up until the final rounds when it lost a crucial game to Leela. This loss left it one point behind Komodo MCTS in the final standings. === Division 1 === Leela and Komodo MCTS's rampage through the lower divisions continued, and they again finished first and second. In a demonstration of how much it had improved, Leela scored 20/28 in this division, the same score it had achieved in Division 2. This was also a TCEC points record for this division. However, Leela dropped a game against fourth-place finisher Chiron. Komodo MCTS, which had yet to lose a game in the lower divisions except to Leela, also conceded its first loss to third-place Fizbo. At the other end of the table, former champions Jonny and Fritz, which had not been updated, found themselves outclassed and finished second-last and last respectively; however with fellow competitor Ginkgo crashing five times (and therefore being disqualified), Jonny managed to stay in the division. The penultimate game for this division set a new TCEC moves record for a decisive game: 308 moves before Leela defeated Fritz. === Premier division === This was the strongest premier division ever, with multiple-time champions Stockfish, Komodo, and Houdini in the mix. Right from the start it became clear that Stockfish was in a league of its own, and it dominated the division, scoring wins against every other engine without losing a game. Second place however was a hotly-contested affair, with Leela, Komodo and Houdini neck-and-neck for most of the division. Houdini took the early lead, but Komodo gained second after winning two games by forfeit when its sibling Komodo MCTS crashed. This led to murmurs of a "Konspiracy". However, when both Komodo and Houdini failed to score more wins against the lower half of the field, Leela was able to take the lead. Halfway through the division the race was upended again when Leela went through a bad streak, losing three games in a row to Stockfish, Komodo, and Fire. This led to Komodo regaining second place, only for Komodo MCTS to crash yet again. By TCEC rules this meant Komodo MCTS was disqualified and all its scores were zeroed out, which put Leela back in second place. With three games left, Leela missed a win against Andscacs, which would've more or less secured her a place in the superfinal. Meanwhile, Komodo kept the division interesting by winning two of its last three games. Because Komodo had superior tiebreakers to Leela, this meant Komodo would qualify for the superfinal unless Leela managed to hold Stockfish to a draw with Black in the last game of the division. In a tense final game, Stockfish came close to winning, but missed the winning line. Leela managed to draw and qualified for the superfinal. At the other end of the table, it was quickly apparent that Ethereal and Andscacs were the weakest engines and would likely relegate. However, when Komodo MCTS was disqualified (and therefore relegated), it threw both engines a lifeline, since they could now stay in the division by beating the other. Andscacs was able to score a head-to-head win against Ethereal, but was crushed by Stockfish (+0 =2 -4) and Leela (+0 =3 -3). Ethereal didn't manage to score a win in the entire division, but did manage to score more draws than Andscacs, condemning Andscacs to relegation. === Superfinal === Going into the superfinal expectations were high for Leela: she had received a new network and had just won her first major competition when she defeated Houdini in the second TCEC cup. However, she had won the tournament without having played Stockfish (who had been surprisingly eliminated by Houdini in the semifinals). That, plus the fact that Stockfish dominated Premier Division and had never lost a match to Leela, left it unclear which engine was superior, although most spectators favored Stockfish. The superfinal turned out to be a roller-coaster. It began with Stockfish drawing first blood in game 7, and then scoring another win in game 10. Leela hit back with wins in game 11 and 13, but then lost games 20, 21, and 22. This gave Stockfish a 3-point lead. However, in the next 30 games, Leela was the only one to score wins: it first equalized by winning games 25, 27, and 29, and then took the lead by winning games 49 and 53. Stockfish won game 56, but Leela won game 63, maintaining her lead. There followed two dramatic games. In game 65, Leela built up a winning position. Stockfish showed a +153 evaluation, indicating that it had found a forced line leading to an endgame tablebase win; indeed analysis with 7-piece tablebases showed that Leela's position was winning. Under previous seasons' rules, the game would have been adjudicated as a win because Leela's evaluation was above 6.5. However under the new rules, Leela's +8.92 evaluation was not enough to adjudicate. It turned out that Leela could not see the winning line, and shuffled her pieces aimlessly, leading to a 50-move draw. In game 66, Stockfish was given a substantial advantage by the opening, but failed to make the most of it. The evaluations were leveling out to zero when the internet connection to the GPU servers was cut off. By tournament rules, this meant the game was replayed from scratch. After a further internet disconnection and restart, Stockfish handled the opening better and won, leaving Leela with a 1-point lead. In the last third of the superfinal, there followed more drama as Leela often built up strong advantages, but Stockfish showed great resourcefulness in defending inferior positions. Meanwh

    Read more →
  • JSGF

    JSGF

    JSGF stands for Java Speech Grammar Format or the JSpeech Grammar Format (in a W3C Note). Developed by Sun Microsystems, it is a textual representation of grammars for use in speech recognition for technologies like XHTML+Voice. JSGF adopts the style and conventions of the Java programming language in addition to use of traditional grammar notations. The Speech Recognition Grammar Specification was derived from this specification. == Example == The following JSGF grammar will recognize the words coffee, tea, and milk.

    Read more →
  • Batch normalization

    Batch normalization

    In artificial neural networks, batch normalization (also known as batch norm) is a normalization technique used to make training faster and more stable by adjusting the inputs to each layer—re-centering them around zero and re-scaling them to a standard size. It was introduced by Sergey Ioffe and Christian Szegedy in 2015. Experts still debate why batch normalization works so well. It was initially thought to tackle internal covariate shift, a problem where parameter initialization and changes in the distribution of the inputs of each layer affect the learning rate of the network. However, newer research suggests it doesn’t fix this shift but instead smooths the objective function—a mathematical guide the network follows to improve—enhancing performance. In very deep networks, batch normalization can initially cause a severe gradient explosion—where updates to the network grow uncontrollably large—but this is managed with shortcuts called skip connections in residual networks. Another theory is that batch normalization adjusts data by handling its size and path separately, speeding up training. == Internal covariate shift == Each layer in a neural network has inputs that follow a specific distribution, which shifts during training due to two main factors: the random starting values of the network’s settings (parameter initialization) and the natural variation in the input data. This shifting pattern affecting the inputs to the network’s inner layers is called internal covariate shift. While a strict definition isn’t fully agreed upon, experiments show that it involves changes in the means and variances of these inputs during training. Batch normalization was first developed to address internal covariate shift. During training, as the parameters of preceding layers adjust, the distribution of inputs to the current layer changes accordingly, such that the current layer needs to constantly readjust to new distributions. This issue is particularly severe in deep networks, because small changes in shallower hidden layers will be amplified as they propagate within the network, resulting in significant shift in deeper hidden layers. Batch normalization was proposed to reduced these unwanted shifts to speed up training and produce more reliable models. Beyond possibly tackling internal covariate shift, batch normalization offers several additional advantages. It allows the network to use a higher learning rate—a setting that controls how quickly the network learns—without causing problems like vanishing or exploding gradients, where updates become too small or too large. It also appears to have a regularizing effect, improving the network’s ability to generalize to new data, reducing the need for dropout, a technique used to prevent overfitting (when a model learns the training data too well and fails on new data). Additionally, networks using batch normalization are less sensitive to the choice of starting settings or learning rates, making them more robust and adaptable. == Procedures == === Transformation === In a neural network, batch normalization is achieved through a normalization step that fixes the means and variances of each layer's inputs. Ideally, the normalization would be conducted over the entire training set, but to use this step jointly with stochastic optimization methods, it is impractical to use the global information. Thus, normalization is restrained to each mini-batch in the training process. Let us use B to denote a mini-batch of size m of the entire training set. The empirical mean and variance of B could thus be denoted as μ B = 1 m ∑ i = 1 m x i {\displaystyle \mu _{B}={\frac {1}{m}}\sum _{i=1}^{m}x_{i}} and σ B 2 = 1 m ∑ i = 1 m ( x i − μ B ) 2 {\displaystyle \sigma _{B}^{2}={\frac {1}{m}}\sum _{i=1}^{m}(x_{i}-\mu _{B})^{2}} . For a layer of the network with d-dimensional input, x = ( x ( 1 ) , . . . , x ( d ) ) {\displaystyle x=(x^{(1)},...,x^{(d)})} , each dimension of its input is then normalized (i.e. re-centered and re-scaled) separately, x ^ i ( k ) = x i ( k ) − μ B ( k ) ( σ B ( k ) ) 2 + ϵ {\displaystyle {\hat {x}}_{i}^{(k)}={\frac {x_{i}^{(k)}-\mu _{B}^{(k)}}{\sqrt {\left(\sigma _{B}^{(k)}\right)^{2}+\epsilon }}}} , where k ∈ [ 1 , d ] {\displaystyle k\in [1,d]} and i ∈ [ 1 , m ] {\displaystyle i\in [1,m]} ; μ B ( k ) {\displaystyle \mu _{B}^{(k)}} and σ B ( k ) {\displaystyle \sigma _{B}^{(k)}} are the per-dimension mean and standard deviation, respectively. ϵ {\displaystyle \epsilon } is added in the denominator for numerical stability and is an arbitrarily small positive constant. The resulting normalized activation x ^ ( k ) {\displaystyle {\hat {x}}^{(k)}} have zero mean and unit variance, if ϵ {\displaystyle \epsilon } is not taken into account. To restore the representation power of the network, a transformation step then follows as y i ( k ) = γ ( k ) x ^ i ( k ) + β ( k ) {\displaystyle y_{i}^{(k)}=\gamma ^{(k)}{\hat {x}}_{i}^{(k)}+\beta ^{(k)}} , where the parameters γ ( k ) {\displaystyle \gamma ^{(k)}} and β ( k ) {\displaystyle \beta ^{(k)}} are subsequently learned in the optimization process. Formally, the operation that implements batch normalization is a transform B N γ ( k ) , β ( k ) : x 1... m ( k ) → y 1... m ( k ) {\displaystyle BN_{\gamma ^{(k)},\beta ^{(k)}}:x_{1...m}^{(k)}\rightarrow y_{1...m}^{(k)}} called the Batch Normalizing transform. The output of the BN transform y ( k ) = B N γ ( k ) , β ( k ) ( x ( k ) ) {\displaystyle y^{(k)}=BN_{\gamma ^{(k)},\beta ^{(k)}}(x^{(k)})} is then passed to other network layers, while the normalized output x ^ i ( k ) {\displaystyle {\hat {x}}_{i}^{(k)}} remains internal to the current layer. === Backpropagation === The described BN transform is a differentiable operation, and the gradient of the loss l {\displaystyle l} with respect to the different parameters can be computed directly with the chain rule. Specifically, ∂ l ∂ y i ( k ) {\displaystyle {\frac {\partial l}{\partial y_{i}^{(k)}}}} depends on the choice of activation function, and the gradient against other parameters could be expressed as a function of ∂ l ∂ y i ( k ) {\displaystyle {\frac {\partial l}{\partial y_{i}^{(k)}}}} : ∂ l ∂ x ^ i ( k ) = ∂ l ∂ y i ( k ) γ ( k ) {\displaystyle {\frac {\partial l}{\partial {\hat {x}}_{i}^{(k)}}}={\frac {\partial l}{\partial y_{i}^{(k)}}}\gamma ^{(k)}} , ∂ l ∂ γ ( k ) = ∑ i = 1 m ∂ l ∂ y i ( k ) x ^ i ( k ) {\displaystyle {\frac {\partial l}{\partial \gamma ^{(k)}}}=\sum _{i=1}^{m}{\frac {\partial l}{\partial y_{i}^{(k)}}}{\hat {x}}_{i}^{(k)}} , ∂ l ∂ β ( k ) = ∑ i = 1 m ∂ l ∂ y i ( k ) {\displaystyle {\frac {\partial l}{\partial \beta ^{(k)}}}=\sum _{i=1}^{m}{\frac {\partial l}{\partial y_{i}^{(k)}}}} , ∂ l ∂ σ B ( k ) 2 = ∑ i = 1 m ∂ l ∂ y i ( k ) ( x i ( k ) − μ B ( k ) ) ( − γ ( k ) 2 ( σ B ( k ) 2 + ϵ ) − 3 / 2 ) {\displaystyle {\frac {\partial l}{\partial \sigma _{B}^{(k)^{2}}}}=\sum _{i=1}^{m}{\frac {\partial l}{\partial y_{i}^{(k)}}}(x_{i}^{(k)}-\mu _{B}^{(k)})\left(-{\frac {\gamma ^{(k)}}{2}}(\sigma _{B}^{(k)^{2}}+\epsilon )^{-3/2}\right)} , ∂ l ∂ μ B ( k ) = ∑ i = 1 m ∂ l ∂ y i ( k ) − γ ( k ) σ B ( k ) 2 + ϵ + ∂ l ∂ σ B ( k ) 2 1 m ∑ i = 1 m ( − 2 ) ⋅ ( x i ( k ) − μ B ( k ) ) {\displaystyle {\frac {\partial l}{\partial \mu _{B}^{(k)}}}=\sum _{i=1}^{m}{\frac {\partial l}{\partial y_{i}^{(k)}}}{\frac {-\gamma ^{(k)}}{\sqrt {\sigma _{B}^{(k)^{2}}+\epsilon }}}+{\frac {\partial l}{\partial \sigma _{B}^{(k)^{2}}}}{\frac {1}{m}}\sum _{i=1}^{m}(-2)\cdot (x_{i}^{(k)}-\mu _{B}^{(k)})} , and ∂ l ∂ x i ( k ) = ∂ l ∂ x ^ i ( k ) 1 σ B ( k ) 2 + ϵ + ∂ l ∂ σ B ( k ) 2 2 ( x i ( k ) − μ B ( k ) ) m + ∂ l ∂ μ B ( k ) 1 m {\displaystyle {\frac {\partial l}{\partial x_{i}^{(k)}}}={\frac {\partial l}{\partial {\hat {x}}_{i}^{(k)}}}{\frac {1}{\sqrt {\sigma _{B}^{(k)^{2}}+\epsilon }}}+{\frac {\partial l}{\partial \sigma _{B}^{(k)^{2}}}}{\frac {2(x_{i}^{(k)}-\mu _{B}^{(k)})}{m}}+{\frac {\partial l}{\partial \mu _{B}^{(k)}}}{\frac {1}{m}}} . === Inference === During the training stage, the normalization steps depend on the mini-batches to ensure efficient and reliable training. However, in the inference stage, this dependence is not useful any more. Instead, the normalization step in this stage is computed with the population statistics such that the output could depend on the input in a deterministic manner. The population mean, E [ x ( k ) ] {\displaystyle E[x^{(k)}]} , and variance, Var ⁡ [ x ( k ) ] {\displaystyle \operatorname {Var} [x^{(k)}]} , are computed as: E [ x ( k ) ] = E B [ μ B ( k ) ] {\displaystyle E[x^{(k)}]=E_{B}[\mu _{B}^{(k)}]} , and Var ⁡ [ x ( k ) ] = m m − 1 E B [ ( σ B ( k ) ) 2 ] {\displaystyle \operatorname {Var} [x^{(k)}]={\frac {m}{m-1}}E_{B}[\left(\sigma _{B}^{(k)}\right)^{2}]} . The population statistics thus is a complete representation of the mini-batches. The BN transform in the inference step thus becomes y ( k ) = B N γ ( k ) , β ( k ) inf ( x ( k ) ) = γ ( k ) x ( k ) − E [ x ( k ) ] Var ⁡ [ x ( k ) ] + ϵ + β

    Read more →
  • Trevor Paglen

    Trevor Paglen

    Trevor Paglen (born 1974) is an American artist, geographer, and author whose work covers mass surveillance and data collection. In 2016, Paglen won the Deutsche Börse Photography Foundation Prize and he has also won The Cultural Award from the German Society for Photography. In 2017, he was a recipient of a MacArthur Fellowship. On March 17, 2026, Paglen was awarded the 2026 LG Guggenheim Award (a collaboration between LG and Guggenheim New York). == Early life and education == Paglen earned a B.A. degree in religious studies in 1998 from the University of California at Berkeley, a M.F.A. degree in 2002 from the School of the Art Institute of Chicago, and a Ph.D. in Geography in 2008 from the University of California at Berkeley. While at UC Berkeley, Paglen lived in the Berkeley Student Cooperative, residing in Chateau, Fenwick, and Rochdale co-ops. == Work == Sean O'Hagan, writing in The Guardian in 2015, said that Paglen, whose "ongoing grand project [is] the murky world of global state surveillance and the ethics of drone warfare", "is one of the most conceptually adventurous political artists working today, and has collaborated with scientists and human rights activists on his always ambitious multimedia projects." His visual work such as his "Limit Telephotography" and "The Other Night Sky" series have received widespread attention for both his technical innovations and for his conceptual project that involves simultaneously making and negating documentary-style truth-claims. Paglen’s work relies on contemporary technology in two meaningful ways. Firstly, the views he photographs would be impossible to shoot without media tech, that includes the cameras, the microscopes, and even helicopters. But interestingly enough, the shots would not be possible if not for the existence of the subject. The contrasts between secrecy and revelation, evidence and abstraction distinguish Paglen's work. With that the artist presents not so much "evidence" as admonitions to awareness. He was an Eyebeam Commissioned Artist in 2007. In 2008 the Berkeley Art Museum devoted a comprehensive solo exhibition to his work. In the next year, Paglen took part in the Istanbul Biennial, and in 2010 he exhibited at the Vienna Secession. Autonomy Cube was a project by Paglen and Jacob Appelbaum that placed relays for the anonymous communication network Tor in traditional art museums. He contributed to the Oscar-winning documentary film Citizenfour (2014), directed by Laura Poitras. Paglen features in the nerd-culture documentary Traceroute (2016). Orbital Reflector was a reflective, mylar sculpture by Paglen intended to be the first "purely artistic" object in space. The temporary satellite, containing an inflatable mylar balloon with reflective surface, launched into space 3 December 2018. A mid-career survey in 2018–2019, Trevor Paglen: Sites Unseen, was a traveling exhibition shown at the Smithsonian American Art Museum in Washington DC and the Museum of Contemporary Art San Diego. In September 2020, Pace Gallery in London held an exhibition of Paglen's work, exploring "the weird, partial ways computers look back at us". His work is included in the permanent collections of the San Francisco Museum of Modern Art, the Columbus Museum of Art, and the Metropolitan Museum. === Experimental Geography === Paglen is credited with coining the term "Experimental Geography" to describe practices coupling experimental cultural production and art-making with ideas from critical human geography about the production of space, materialism, and praxis. The 2009 book Experimental Geography: Radical Approaches to Landscape, Cartography, and Urbanism is largely inspired by Paglen's work. == Publications == Paglen has published a number of books. Torture Taxi (2006) (co-authored with investigative journalist A. C. Thompson) was the first book to comprehensively describe the CIA's extraordinary rendition program. I Could Tell You But Then You Would Have to be Destroyed by Me (2007), is a look at the world of black projects through unit patches and memorabilia created for top-secret programs. Blank Spots on the Map: The Dark Geography of the Pentagon's Secret World (2009) is a broader look at secrecy in the United States. The Last Pictures (2012) is a collection of 100 images to be placed on permanent media and launched into space on EchoStar XVI, as a repository available for future civilizations (alien or human) to find. === Publications by Paglen === I Could Tell You But Then You Would Have to be Destroyed by Me. Brooklyn, NY: Melville House, 2007. ISBN 1-933633-32-8. Blank Spots on the Map: The Dark Geography of the Pentagon's Secret World. New York: Dutton, 2009. ISBN 9781101011492. Invisible: Covert Operations and Classified Landscapes, Photographs by Trevor Paglen. New York: Aperture, 2010. ISBN 9781597111300. With an essay by Rebecca Solnit. The Last Pictures. Oakland, CA: University of California, 2012. ISBN 9780520275003. Trevor Paglen. London: Phaidon, 2018. ISBN 0714873446. With essays by Laren Cornell, Julia Bryan-Wilson, Omar Kholeif. === Publications co-authored === Torture Taxi. Co-authored with A. C. Thompson. Brooklyn, NY: Melville House Publishing, 2006. ISBN 1-933633-09-3. Icon, 2007. ISBN 9781840468304. === Publications with contributions by Paglen === Experimental Geography: Radical Approaches to Landscape, Cartography, and Urbanism. Brooklyn, NY: Melville House, 2009. ISBN 978-0091636586. Edited by Nato Thompson. With essays by Paglen, Thompson, and Jeffrey Kastner. Trevor Paglen and Jacob Appelbaum – Autonomy Cube. Revolver, 2016. ISBN 978-3957633026. Essays by Luke Skrebowski and Keller Easterling on Autonomy Cube, a piece of sculpture by Paglen and Jacob Appelbaum. In English and German. == Exhibitions == Bellwether Gallery, New York, November–December 2006 The Other Night Sky, Berkeley Art Museum, 2008 A Compendium of Secrets, Cologne Still Revolution: Suspended in Time, Museum of Contemporary Canadian Art, Toronto, May–June 2009. Group exhibition with Paglen, Barbara Astman, Walead Beshty, Mat Collishaw, Stan Douglas, Idris Khan, Martha Rosler, and Mikhael Subotzky A Hidden Landscape, Aksioma, Ljubljana, Slowenia Geographies of Seeing, Lighthouse, Brighton, England, October–November 2012 The Last Pictures, New York, 2012–13 Trevor Paglen, Altman Siegel gallery, San Francisco, CA, March–May 2015 The Octopus, Frankfurter Kunstverein, Frankfurt am Main, 2015 Autonomy Cube, Edith-Russ-Haus, Oldenburg, Germany, October 2015 – January 2016. Sculpture by Paglen and Jacob Appelbaum. Deutsche Börse Photography Foundation Prize 2016, The Photographers' Gallery, London, April–July 2016. Deutsche Börse Photography Prize shortlist with Paglen, Erik Kessels, Laura El-Tantawy, and Tobias Zielony. Radical Landscapes, di Rosa, Napa, February–April 2016 L’Image volée, Americas II, Bahamas Internet Cable System (BICS-1) and Globenet, Fondazione Prada, Milan (group exhibition), 2016 A Study of Invisible Images, Metro Pictures, New York, September–October 2017 == Awards == 2014: Pioneer Award from the Electronic Frontier Foundation. 2015: The Cultural Award from the German Society for Photography (DGPh) 2015: Academy Award as cameraman and director for the documentary film Citzenfour. 2016: Deutsche Börse Photography Foundation Prize 2017: MacArthur Fellowship, John D. and Catherine T. MacArthur Foundation, Chicago, IL 2018: Nam June Paik Art Center Prize == Films about Paglen == Unseen Skies (2021) == Works ==

    Read more →
  • Ensemble averaging (machine learning)

    Ensemble averaging (machine learning)

    In machine learning, ensemble averaging is the process of creating multiple models (typically artificial neural networks) and combining them to produce a desired output, as opposed to creating just one model. Ensembles of models often outperform individual models, as the various errors of the ensemble constituents "average out". == Overview == Ensemble averaging is one of the simplest types of committee machines. Along with boosting, it is one of the two major types of static committee machines. In contrast to standard neural network design, in which many networks are generated but only one is kept, ensemble averaging keeps the less satisfactory networks, but with less weight assigned to their outputs. The theory of ensemble averaging relies on two properties of artificial neural networks: In any network, the bias can be reduced at the cost of increased variance In a group of networks, the variance can be reduced at no cost to the bias. This is known as the bias–variance tradeoff. Ensemble averaging creates a group of networks, each with low bias and high variance, and combines them to form a new network which should theoretically exhibit low bias and low variance. Hence, this can be thought of as a resolution of the bias–variance tradeoff. The idea of combining experts can be traced back to Pierre-Simon Laplace. == Method == The theory mentioned above gives an obvious strategy: create a set of experts with low bias and high variance, and average them. Generally, what this means is to create a set of experts with varying parameters; frequently, these are the initial synaptic weights of a neural network, although other factors (such as learning rate, momentum, etc.) may also be varied. Some authors recommend against varying weight decay and early stopping. The steps are therefore: Generate N experts, each with their own initial parameters (these values are usually sampled randomly from a distribution) Train each expert separately Combine the experts and average their values. Alternatively, domain knowledge may be used to generate several classes of experts. An expert from each class is trained, and then combined. A more complex version of ensemble average views the final result not as a mere average of all the experts, but rather as a weighted sum. If each expert is y i {\displaystyle y_{i}} , then the overall result y ~ {\displaystyle {\tilde {y}}} can be defined as: y ~ ( x ; α ) = ∑ j = 1 p α j y j ( x ) {\displaystyle {\tilde {y}}(\mathbf {x} ;\mathbf {\alpha } )=\sum _{j=1}^{p}\alpha _{j}y_{j}(\mathbf {x} )} where α {\displaystyle \mathbf {\alpha } } is a set of weights. The optimization problem of finding alpha is readily solved through neural networks, hence a "meta-network" where each "neuron" is in fact an entire neural network can be trained, and the synaptic weights of the final network is the weight applied to each expert. This is known as a linear combination of experts. It can be seen that most forms of neural network are some subset of a linear combination: the standard neural net (where only one expert is used) is simply a linear combination with all α j = 0 {\displaystyle \alpha _{j}=0} and one α k = 1 {\displaystyle \alpha _{k}=1} . A raw average is where all α j {\displaystyle \alpha _{j}} are equal to some constant value, namely one over the total number of experts. A more recent ensemble averaging method is negative correlation learning, proposed by Y. Liu and X. Yao. This method has been widely used in evolutionary computing. == Benefits == The resulting committee is almost always less complex than a single network that would achieve the same level of performance The resulting committee can be trained more easily on smaller datasets The resulting committee often has improved performance over any single model The risk of overfitting is lessened, as there are fewer parameters (e.g. neural network weights) which need to be set.

    Read more →
  • Pandas (software)

    Pandas (software)

    Pandas (styled as pandas) is a software library written for the Python programming language for data manipulation and analysis. In particular, it offers data structures and operations for manipulating numerical tables and time series. It is free software released under the three-clause BSD license. The name is derived from the term "panel data", an econometrics term for data sets that include observations over multiple time periods for the same individuals, as well as a play on the phrase "Python data analysis". Wes McKinney started building what would become Pandas at AQR Capital while he was a researcher there from 2007 to 2010. The development of Pandas introduced into Python many comparable features of working with DataFrames that were established in the R programming language. The library is built upon another library, NumPy. == History == Developer Wes McKinney started working on Pandas in 2008 while at AQR Capital Management out of the need for a high performance, flexible tool to perform quantitative analysis on financial data. Before leaving AQR, he was able to convince management to allow him to open source the library in 2009. Another AQR employee, Chang She, joined the effort in 2012 as the second major contributor to the library. In 2015, Pandas signed on as a fiscally sponsored project of NumFOCUS, a 501(c)(3) nonprofit charity in the United States. == Data model == Pandas is built around data structures called Series and DataFrames. Data for these collections can be imported from various file formats such as comma-separated values, JSON, Parquet, SQL database tables or queries, and Microsoft Excel. === Series === A Series is a one-dimensional array-like object that stores a sequence of values together with an associated set of labels, called an index. It is built on top of NumPy's array and affords many similar functionalities, but instead of using implicit integer positions, a Series allows explicit index labels of many data types. A Series can be created from Python lists, dictionaries, or NumPy arrays. If no index is provided, pandas automatically assigns a default integer index ranging from 0 to n-1, where n is the number of items in the Series. A simple example with customized labels is: To access a value or list of values from a Series, use its index or list of indices: Series can be used arithmetically, as in the statement series_3 = series_1 + series_2. This will align data points with corresponding index values in series_1 and series_2 (similar to a join in relational algebra), then add them together to produce new values in series_3. A Series has various attributes, such as name (Series name), dtype (data type of values), shape (number of rows), values, and index. They can be used in many of the same operations as NumPy arrays, with additional methods for reindexing, label-based selection, and handling missing data. === DataFrame === A DataFrame is a two-dimensional, tabular data structure with labeled rows and columns. Each column is stored internally as a Series and may hold a different data type (numeric, string, boolean, etc.). DataFrames can be created by a variety of means, including dictionaries of lists, NumPy arrays, and external files such as CSV or Excel spreadsheets: To retrieve a DataFrame column as a Series, use either 1) the index (dict-like notation) or 2) the name of column if the name is a valid Python identifier (attribute-like access). DataFrames support operations such as column assignment, row and column deletion, label-based indexing with loc, position-based indexing with iloc, reshaping, grouping, and joining. Merge operations implement a subset of relational algebra and allow one-to-one, many-to-one, and many-to-many joins. Some common attributes of a DataFrame include dtypes (data type of each column), shape (dimensions of the DataFrame returned as a tuple with form (number of rows, number of columns)), index/columns (labels of the DataFrame's rows/columns, respectively, returned as an Index object), values (data in the DataFrame returned as a 2D array), and empty (returns True if the DataFrame is empty). === Index === Index objects hold metadata for Series and Dataframe objects, such as axis labels and names, and are automatically created from input data. By default, a pandas index is a series of integers ascending from 0, similar to the indices of Python arrays. However, indices can also use any NumPy data type, including floating point, timestamps, or strings. Indices are also immutable, which allows them to be safely shared across multiple objects. pandas' syntax for mapping index values to relevant data is the same syntax Python uses to map dictionary keys to values. For example, if s is a Series, s['a'] will return the data point at index a. Unlike dictionary keys, index values are not guaranteed to be unique. If a Series uses the index value a for multiple data points, then s['a'] will instead return a new Series containing all matching values. A DataFrame's column names are stored and implemented identically to an index. As such, a DataFrame can be thought of as having two indices: one column-based and one row-based. Because column names are stored as an index, these are not required to be unique. If data is a Series, then data['a'] returns all values with the index value of a. However, if data is a DataFrame, then data['a'] returns all values in the column(s) named a. To avoid this ambiguity, Pandas supports the syntax data.loc['a'] as an alternative way to filter using the index. Pandas also supports the syntax data.iloc[n], which always takes an integer n and returns the nth value, counting from 0. This allows a user to act as though the index is an array-like sequence of integers, regardless of how it is actually defined. pandas also supports hierarchical indices with multiple values per data point through the "MultiIndex" class. MultiIndex objects allow a single DataFrame to represent multiple dimensions, similar to a pivot table in Microsoft Excel, where each level can optionally carry its own unique name. In practice, data with more than 2 dimensions is often represented using DataFrames with hierarchical indices, instead of the higher-dimension Panel and Panel4D data structures. == Functionality == pandas supports a variety of indexing and subsetting techniques, allowing data to be selected by label, index, or Boolean conditions. For example, df[df['col1'] > 5] will return all rows in the DataFrame df for which the value of the column col1 exceeds 5. The library also implements grouping operations based on the split-apply-combine approach, enabling users to aggregate, transform, or restructure data according to column values or functions applied to index labels. For example, df['col1'].groupby(df['col2']) groups the data in 'col1' by their values in 'col2', while df.groupby(lambda i: i % 2) groups all data in the whole DataFrame by whether their index is even. The library also provides extensive tools for transforming, filtering and summarizing data. Users may apply arbitrary functions to Series and DataFrames, and because the library is built on top of Numpy, most NumPy functions can be applied directly to pandas objects as well. The library also includes built-in operations for arithmetic operations, string processing, and descriptive statistics such as mean, median, and standard deviation. These built-in functions are designed to handle missing data, usually represented by the floating-point value NaN. In addition, pandas includes tools for reorganizing data into different structural formats, with methods that can reshape tabular data between "wide" and "long" formats and pivot values based on column labels. pandas also implements a flexible set of relational operations for combining datasets. For instance, merge() links row in DataFrames based on one or more shared keys or indices, supporting one-to-one, one-to-many, and many-to-many relationships in a manner analogous to join operations in relational databases like SQL. DataFrames can also be concatenated or stacked together along an axis through the concat() method, and overlapping data can be further spliced together using combine_first() to fill in missing values. Furthermore, the library includes specialized support for working with time-series data. Features include the ability to interpolate values and filter using a range of timestamps, such as data['1/1/2023':'2/2/2023'] , which will return all dates between January 1 and February 2. Missing values in time-series data are represented by a dedicated NaT (Not a Timestamp) object, instead of the NaN value it uses elsewhere. == Criticisms == Pandas has been criticized for its inefficiency. The entire dataset must be loaded in RAM, and the library does not optimize query plans or support parallel computing across multiple cores. Wes McKinney, the creator of Pandas, has recommended Apache Arrow as an alternative to address these performance concerns and ot

    Read more →
  • Data analysis for fraud detection

    Data analysis for fraud detection

    Fraud represents a significant problem for governments and businesses and specialized analysis techniques for discovering fraud using them are required. Some of these methods include knowledge discovery in databases (KDD), data mining, machine learning and statistics. They offer applicable and successful solutions in different areas of electronic fraud crimes. In general, the primary reason to use data analytics techniques is to tackle fraud since many internal control systems have serious weaknesses. For example, the currently prevailing approach employed by many law enforcement agencies to detect companies involved in potential cases of fraud consists in receiving circumstantial evidence or complaints from whistleblowers. As a result, a large number of fraud cases remain undetected and unprosecuted. In order to effectively test, detect, validate, correct error and monitor control systems against fraudulent activities, businesses entities and organizations rely on specialized data analytics techniques such as data mining, data matching, the sounds like function, regression analysis, clustering analysis, and gap analysis. Techniques used for fraud detection fall into two primary classes: statistical techniques and artificial intelligence. == Statistical techniques == Examples of statistical data analysis techniques are: Data preprocessing techniques for detection, validation, error correction, and filling up of missing or incorrect data. Calculation of various statistical parameters such as averages, quantiles, performance metrics, probability distributions, and so on. For example, the averages may include average length of call, average number of calls per month and average delays in bill payment. Models and probability distributions of various business activities either in terms of various parameters or probability distributions. Computing user profiles. Time-series analysis of time-dependent data. Clustering and classification to find patterns and associations among groups of data. Data matching Data matching is used to compare two sets of collected data. The process can be performed based on algorithms or programmed loops. Trying to match sets of data against each other or comparing complex data types. Data matching is used to remove duplicate records and identify links between two data sets for marketing, security or other uses. Sounds like Function is used to find values that sound similar. The Phonetic similarity is one way to locate possible duplicate values, or inconsistent spelling in manually entered data. The ‘sounds like’ function converts the comparison strings to four-character American Soundex codes, which are based on the first letter, and the first three consonants after the first letter, in each string. Regression analysis allows you to examine the relationship between two or more variables of interest. Regression analysis estimates relationships between independent variables and a dependent variable. This method can be used to help understand and identify relationships among variables and predict actual results. Gap analysis is used to determine whether business requirements are being met, if not, what are the steps that should be taken to meet successfully. Matching algorithms to detect anomalies in the behavior of transactions or users as compared to previously known models and profiles. Techniques are also needed to eliminate false alarms, estimate risks, and predict future of current transactions or users. Some forensic accountants specialize in forensic analytics which is the procurement and analysis of electronic data to reconstruct, detect, or otherwise support a claim of financial fraud. The main steps in forensic analytics are data collection, data preparation, data analysis, and reporting. For example, forensic analytics may be used to review an employee's purchasing card activity to assess whether any of the purchases were diverted or divertible for personal use. == Artificial intelligence == Fraud detection is a knowledge-intensive activity. The main AI techniques used for fraud detection include: Data mining to classify, cluster, and segment the data and automatically find associations and rules in the data that may signify interesting patterns, including those related to fraud. Expert systems to encode expertise for detecting fraud in the form of rules. Pattern recognition to detect approximate classes, clusters, or patterns of suspicious behavior either automatically (unsupervised) or to match given inputs. Machine learning techniques to automatically identify characteristics of fraud. Neural nets to independently generate classification, clustering, generalization, and forecasting that can then be compared against conclusions raised in internal audits or formal financial documents such as 10-Q. Other techniques such as link analysis, Bayesian networks, decision theory, and sequence matching are also used for fraud detection. A new and novel technique called System properties approach has also been employed where ever rank data is available. Statistical analysis of research data is the most comprehensive method for determining if data fraud exists. Data fraud as defined by the Office of Research Integrity (ORI) includes fabrication, falsification and plagiarism. == Machine learning and data mining == Early data analysis techniques were oriented toward extracting quantitative and statistical data characteristics. These techniques facilitate useful data interpretations and can help to get better insights into the processes behind the data. Although the traditional data analysis techniques can indirectly lead us to knowledge, it is still created by human analysts. To go beyond, a data analysis system has to be equipped with a substantial amount of background knowledge, and be able to perform reasoning tasks involving that knowledge and the data provided. In effort to meet this goal, researchers have turned to ideas from the machine learning field. This is a natural source of ideas, since the machine learning task can be described as turning background knowledge and examples (input) into knowledge (output). If data mining results in discovering meaningful patterns, data turns into information. Information or patterns that are novel, valid and potentially useful are not merely information, but knowledge. One speaks of discovering knowledge, before hidden in the huge amount of data, but now revealed. The machine learning and artificial intelligence solutions may be classified into two categories: 'supervised' and 'unsupervised' learning. These methods seek for accounts, customers, suppliers, etc. that behave 'unusually' in order to output suspicion scores, rules or visual anomalies, depending on the method. Whether supervised or unsupervised methods are used, note that the output gives us only an indication of fraud likelihood. No stand alone statistical analysis can assure that a particular object is a fraudulent one, but they can identify them with very high degrees of accuracy. As a result, effective collaboration between machine learning model and human analysts is vital to the success of fraud detection applications. === Supervised learning === In supervised learning, a random sub-sample of all records is taken and manually classified as either 'fraudulent' or 'non-fraudulent' (task can be decomposed on more classes to meet algorithm requirements). Relatively rare events such as fraud may need to be over sampled to get a big enough sample size. These manually classified records are then used to train a supervised machine learning algorithm. After building a model using this training data, the algorithm should be able to classify new records as either fraudulent or non-fraudulent. Supervised neural networks, fuzzy neural nets, and combinations of neural nets and rules, have been extensively explored and used for detecting fraud in mobile phone networks and financial statement fraud. Bayesian learning neural network is implemented for credit card fraud detection, telecommunications fraud, auto claim fraud detection, and medical insurance fraud. Hybrid knowledge/statistical-based systems, where expert knowledge is integrated with statistical power, use a series of data mining techniques for the purpose of detecting cellular clone fraud. Specifically, a rule-learning program to uncover indicators of fraudulent behaviour from a large database of customer transactions is implemented. Cahill et al. (2000) design a fraud signature, based on data of fraudulent calls, to detect telecommunications fraud. For scoring a call for fraud its probability under the account signature is compared to its probability under a fraud signature. The fraud signature is updated sequentially, enabling event-driven fraud detection. Link analysis comprehends a different approach. It relates known fraudsters to other individuals, using record linkage and social network methods. This type of detection is only able to detect fra

    Read more →
  • Your AI Slop Bores Me

    Your AI Slop Bores Me

    Your AI Slop Bores Me (stylized in all lowercase) is a website and social experiment created by programmer Mihir Maroju. Serving as a parody of large language models (LLMs) like ChatGPT and Claude, all questions and image prompts posed by users are answered by other, randomly-selected human users of the site. As of March 2026, the site has reached 50 million hits and sits at 16,000 concurrent users. == Background == In an interview with Fast Company, Maroju said he was inspired to create the site by his frustration with AI proliferating the internet with AI generated content, saying the site came from "a frustration for AI art and its proliferation, making artists' lives worse and also just filling the internet with low-effort generic slop". == Overview == The site has a credit system, in which a first-time user will be given 1 credit for free. Every 10 minutes, if a user has 0 credits, they will receive 2 credits. Once the credits are used up, the user can no longer do prompts unless the user earns them. The user can earn credits by responding to other user's prompts by "larping as AI" while given a 75-second time limit. Prompts can either be for a written response, or a drawing for the other user to fulfill the prompt. The maximum amount of credits a user can have is 6 credits, and cannot exceed the maximum limit. If the prompting user activates "thinking mode", the countdown is extended to 150 seconds for the cost of 2 credits. == Reception == The site has garnered attention and praise from X users, and across many online communities. The Daily Dot's Rachel Kiley wrote that "the best part about the game is that there's really no right or wrong way to do it. Humans aren't LLMs trained on copyrighted material and the whole of the free internet, but we do retain a certain amount of the information we've learned from those things over the course of our lives, while also being capable of creativity". Chris Taylor of Mashable called the site "amateurish and charming". Aftermath's Nicole Carpenter wrote that the site reminded her of "the human touch of chaos".

    Read more →