ReactiveX (Rx, also known as Reactive Extensions) is a software library originally created by Microsoft that allows imperative programming languages to operate on sequences of data regardless of whether the data is synchronous or asynchronous. It provides a set of sequence operators that operate on each item in the sequence. It is an implementation of reactive programming and provides a blueprint for the tools to be implemented in multiple programming languages. == Overview == ReactiveX is an API for asynchronous programming with observable streams. Asynchronous programming allows programmers to call functions and then have the functions "callback" when they are done, usually by giving the function the address of another function to execute when it is done. Programs designed in this way often avoid the overhead of having many threads constantly starting and stopping. Observable streams (i.e. streams that can be observed) in the context of Reactive Extensions are like event emitters that emit three events: next, error, and complete. An observable emits next events until it either emits an error event or a complete event. However, at that point it will not emit any more events, unless it is subscribed to again. The examples below use the RxJS implementation of Reactive Extensions for the JavaScript programming language. === Motivation === For sequences of data, it combines the advantages of iterators with the flexibility of event-based asynchronous programming. It also works as a simple promise, eliminating the pyramid of doom that results from multiple layers of callbacks. === Observables and observers === ReactiveX is a combination of ideas from the observer and the iterator patterns and from functional programming. An observer subscribes to an observable sequence. The sequence then sends the items to the observer one at a time, usually by calling the provided callback function. The observer handles each one before processing the next one. If many events come in asynchronously, they must be stored in a queue or dropped. In ReactiveX, an observer will never be called with an item out of order or (in a multi-threaded context) called before the callback has returned for the previous item. Asynchronous calls remain asynchronous and may be handled by returning an observable. It is similar to the iterators pattern in that if a fatal error occurs, it notifies the observer separately (by calling a second function). When all the items have been sent, it completes (and notifies the observer by calling a third function). The Reactive Extensions API also borrows many of its operators from iterator operators in other programming languages. Reactive Extensions is different from functional reactive programming as the Introduction to Reactive Extensions explains: It is sometimes called "functional reactive programming" but this is a misnomer. ReactiveX may be functional, and it may be reactive, but "functional reactive programming" is a different animal. One main point of difference is that functional reactive programming operates on values that change continuously over time, while ReactiveX operates on discrete values that are emitted over time. (See Conal Elliott's work for more-precise information on functional reactive programming.) === Reactive operators === An operator is a function that takes one observable (the source) as its first argument and returns another observable (the destination, or outer observable). Then for every item that the source observable emits, it will apply a function to that item, and then emit it on the destination Observable. It can even emit another Observable on the destination observable. This is called an inner observable. An operator that emits inner observables can be followed by another operator that in some way combines the items emitted by all the inner observables and emits the item on its outer observable. Examples include: switchAll – subscribes to each new inner observable as soon as it is emitted and unsubscribes from the previous one. mergeAll – subscribes to all inner observables as they are emitted and outputs their values in whatever order it receives them. concatAll – subscribes to each inner observable in order and waits for it to complete before subscribing to the next observable. Operators can be chained together to create complex data flows that filter events based on certain criteria. Multiple operators can be applied to the same observable. Some of the operators that can be used in Reactive Extensions may be familiar to programmers who use functional programming language, such as map, reduce, group, and zip. There are many other operators available in Reactive Extensions, though the operators available in a particular implementation for a programming language may vary. ==== Reactive operator examples ==== Here is an example of using the map and reduce operators. We create an observable from a list of numbers. The map operator will then multiply each number by two and return an observable. The reduce operator will then sum up all the numbers provided to it (the value of 0 is the starting point). Calling subscribe will register an observer that will observe the values from the observable produced by the chain of operators. With the subscribe method, we are able to pass in an error-handling function, called whenever an error is emitted in the observable, and a completion function when the observable has finished emitting items. ==== Usage in stream-oriented programming ==== Certain RxJS primitives such as BehaviorSubject make it possible to create pure stateful streams to track application state of arbitrary complexity in simple terms. The button below will feed an event to the stream, which in turn will re-emit the next natural number every time, back into the tag that follows and displays the count of clicks detected. Libraries such as Rimmel.js, designed around RxJS Observables, enable integration between reactive streams and the HTML DOM: == History == Reactive Extensions was created by the Cloud Programmability Team at Microsoft around 2011, as a byproduct of a larger effort called Volta. It was originally intended to provide an abstraction for events across different tiers in an application to support tier splitting in Volta. The project's logo represents an electric eel, which is a reference to Volta. The extensions suffix in the name is a reference to the Parallel Extensions technology which was invented around the same time; the two are considered complementary. The initial implementation of Rx was for .NET Framework and was released on June 21, 2011. Later, the team started the implementation of Rx for other platforms, including JavaScript and C++. The technology was released as open source in late 2012, initially on CodePlex. Later, the code moved to GitHub and has been ported to several other languages, including Go, Java, Kotlin, PHP and Rust.
Connected-component labeling
Connected-component labeling (CCL), connected-component analysis (CCA), blob extraction, region labeling, blob discovery, or region extraction is an algorithmic application of graph theory, where subsets of connected components are uniquely labeled based on a given heuristic. Connected-component labeling is not to be confused with segmentation. Connected-component labeling is used in computer vision to detect connected regions in binary digital images, although color images and data with higher dimensionality can also be processed. When integrated into an image recognition system or human-computer interaction interface, connected component labeling can operate on a variety of information. Blob extraction is generally performed on the resulting binary image from a thresholding step, but it can be applicable to gray-scale and color images as well. Blobs may be counted, filtered, and tracked. Blob extraction is related to but distinct from blob detection. == Overview == A graph, containing vertices and connecting edges, is constructed from relevant input data. The vertices contain information required by the comparison heuristic, while the edges indicate connected 'neighbors'. An algorithm traverses the graph, labeling the vertices based on the connectivity and relative values of their neighbors. Connectivity is determined by the medium; image graphs, for example, can be 4-connected neighborhood or 8-connected neighborhood. Following the labeling stage, the graph may be partitioned into subsets, after which the original information can be recovered and processed . == Definition == The usage of the term connected-component labeling (CCL) and its definition is quite consistent in the academic literature, whereas connected-component analysis (CCA) varies both in terminology and in its definition of the problem. Rosenfeld et al. define connected components labeling as the “[c]reation of a labeled image in which the positions associated with the same connected component of the binary input image have a unique label.” Shapiro et al. define CCL as an operator whose “input is a binary image and [...] output is a symbolic image in which the label assigned to each pixel is an integer uniquely identifying the connected component to which that pixel belongs.” There is no consensus on the definition of CCA in the academic literature. It is often used interchangeably with CCL. A more extensive definition is given by Shapiro et al.: “Connected component analysis consists of connected component labeling of the black pixels followed by property measurement of the component regions and decision making.” The definition for connected-component analysis presented here is more general, taking the thoughts expressed in into account. == Algorithms == The algorithms discussed can be generalised to arbitrary dimensions, albeit with increased time and space complexity. === One component at a time === This is a fast and very simple method to implement and understand. It is based on graph traversal methods in graph theory. In short, once the first pixel of a connected component is found, all the connected pixels of that connected component are labelled before going onto the next pixel in the image. This algorithm is part of Vincent and Soille's watershed segmentation algorithm, other implementations also exist. In order to do that a linked list is formed that will keep the indexes of the pixels that are connected to each other, steps (2) and (3) below. The method of defining the linked list specifies the use of a depth or a breadth first search. For this particular application, there is no difference which strategy to use. The simplest kind of a last in first out queue implemented as a singly linked list will result in a depth first search strategy. It is assumed that the input image is a binary image, with pixels being either background or foreground and that the connected components in the foreground pixels are desired. The algorithm steps can be written as: Start from the first pixel in the image. Set current label to 1. Go to (2). If this pixel is a foreground pixel and it is not already labelled, give it the current label and add it as the first element in a queue, then go to (3). If it is a background pixel or it was already labelled, then repeat (2) for the next pixel in the image. Pop out an element from the queue, and look at its neighbours (based on any type of connectivity). If a neighbour is a foreground pixel and is not already labelled, give it the current label and add it to the queue. Repeat (3) until there are no more elements in the queue. Go to (2) for the next pixel in the image and increment current label by 1. Note that the pixels are labelled before being put into the queue. The queue will only keep a pixel to check its neighbours and add them to the queue if necessary. This algorithm only needs to check the neighbours of each foreground pixel once and doesn't check the neighbours of background pixels. The pseudocode is: algorithm OneComponentAtATime(data) input : imageData[xDim][yDim] initialization : label = 0, labelArray[xDim][yDim] = 0, statusArray[xDim][yDim] = false, queue1, queue2; for i = 0 to xDim do for j = 0 to yDim do if imageData[i][j] has not been processed do if imageData[i][j] is a foreground pixel do check its four neighbors(north, south, east, west) : if neighbor is not processed do if neighbor is a foreground pixel do add it to queue1 else update its status to processed end if labelArray[i][j] = label (give label) statusArray[i][j] = true (update status) while queue1 is not empty do For each pixel in the queue do : check its four neighbors if neighbor is not processed do if neighbor is a foreground pixel do add it to queue2 else update its status to processed end if give it the current label update its status to processed remove the current element from queue1 copy queue2 into queue1 end While increase the label end if else update its status to processed end if end if end if end for end for === Two-pass === Relatively simple to implement and understand, the two-pass algorithm, (also known as the Hoshen–Kopelman algorithm) iterates through 2-dimensional binary data. The algorithm makes two passes over the image: the first pass to assign temporary labels and record equivalences, and the second pass to replace each temporary label by the smallest label of its equivalence class. The input data can be modified in situ (which carries the risk of data corruption), or labeling information can be maintained in an additional data structure. Connectivity checks are carried out by checking neighbor pixels' labels (neighbor elements whose labels are not assigned yet are ignored), or say, the north-east, the north, the north-west and the west of the current pixel (assuming 8-connectivity). 4-connectivity uses only north and west neighbors of the current pixel. The following conditions are checked to determine the value of the label to be assigned to the current pixel (4-connectivity is assumed) Conditions to check: Does the pixel to the left (west) have the same value as the current pixel? Yes – We are in the same region. Assign the same label to the current pixel No – Check next condition Do both pixels to the north and west of the current pixel have the same value as the current pixel but not the same label? Yes – We know that the north and west pixels belong to the same region and must be merged. Assign the current pixel the minimum of the north and west labels, and record their equivalence relationship No – Check next condition Does the pixel to the left (west) have a different value and the one to the north the same value as the current pixel? Yes – Assign the label of the north pixel to the current pixel No – Check next condition Do the pixel's north and west neighbors have different pixel values than current pixel? Yes – Create a new label id and assign it to the current pixel The algorithm continues this way, and creates new region labels whenever necessary. The key to a fast algorithm, however, is how this merging is done. This algorithm uses the union-find data structure which provides excellent performance for keeping track of equivalence relationships. Union-find essentially stores labels which correspond to the same blob in a disjoint-set data structure, making it easy to remember the equivalence of two labels by the use of an interface method E.g.: findSet(l). findSet(l) returns the minimum label value that is equivalent to the function argument 'l'. Once the initial labeling and equivalence recording is completed, the second pass merely replaces each pixel label with its equivalent disjoint-set representative element. A faster-scanning algorithm for connected-region extraction is presented below. On the first pass: Iterate through each element of the data by column, then by row (Raster Scanning) If the element is not the background Get the neighboring elements of the current element If there are no neighbors, uniquely
Dominic Harris
Dominic Harris (born 16 November 1976) is a British artist known for integrating modern technology and classical design in his interactive artworks. == Background == Dominic Harris was born in London on 16 November 1976, and grew up in London, Brussels, and Michigan before returning to London in 1995. Harris attended the Cranbrook Kingswood Upper School, and then trained as an architect at the Bartlett School of Architecture, and has been ARB registered since 2011. Harris designs and fabricates his artworks at Dominic Harris Studio, a multi-disciplinary practice he founded in 2007. This studio consists of 25 people with diverse backgrounds including architecture, product design, electronics, programming, graphic design, and workshop skills. Harris uses the resources of his studio for the ongoing development, prototyping and production of his artworks. Harris also oversees the studio's international projects where his fascinations are translated into larger scale projects that span residential, retail, and public art projects. In 2015, Harris was granted permission by the Walt Disney Company to use their Intellectual Property for the purpose of making new interactive artworks. Harris is the only artist to gain permission to use Disney's back catalogue of characters, and led him to creating his interactive versions of "Snow White and the Seven Dwarfs" and "Mickey and Minnie: An Interactive Diptych". Harris is fascinated by the idea of using data streams, algorithms, and computer code to generate dynamic and ever-changing artworks. He sees data as a raw material that can be transformed into visual poetry. Many of his installations and sculptures are interactive, responding to the presence and movement of viewers/participants. This creates an immersive experience where the observer becomes part of the artwork itself. Harris is also the founding partner of a sister studio in London called Cinimod Studio that creates large commissioned installations, interactive events and lighting designs for large brands. == Works == == Exhibitions == The works of Dominic Harris have been exhibited internationally, both through direct and gallery representation. Solo shows: "Feeding Consciousness" at Halcyon Gallery, Mayfair, London, UK – 2023 "US: NOW" at Halcyon Gallery, Mayfair, London, UK – 2020 "Imagine" at Halcyon Gallery, Mayfair, London, UK – 2019 "5 Year Celebration", Priveekollektie Contemporary Art | Design, London, UK – 2016. "Moments of Reflection" at PHOS ART + DESIGN, Mayfair, London, UK – 2015 Recent exhibitions include: In Plain Sight, 2024 Halcyon Gallery Victoria & Albert Museum Dublin Science Museum Design Miami / Basel Design Miami Art Miami Art 14, London PAD Paris PAD London Art Geneva == Gallery Representation == 2010 to 2019: Dominic Harris was represented by Priveekollektie Contemporary Art | Design, a Dutch gallery based in Heusden, the Netherlands, and with a regular presence on the international art and design circuits. 2015: Dominic Harris was shown with PHOS ART + DESIGN Gallery, in Mayfair, London, UK. 2019 – ongoing: Dominic Harris is exclusively represented by the Halcyon Gallery, an established international gallery based in Mayfair, London. == Collections == The majority of Harris's work has been bought by private collectors. Since 2012 Harris's work is also being acquired by several large institutional collections, including the Borusan Contemporary Art Collection in Istanbul. Harris's artworks include some of the biggest and most respected international art collectors and are also displayed in public spaces. == Books == Dominic Harris: Feeding Consciousness. Halcyon Gallery, 2023. Imagine: Dominic Harris (exhibition catalogue). Halcyon Gallery, 2019. A Touch Of Code: Documents the "Beacon" art installation and "Flutter" artwork (ISBN 978-3899553314) Dominic Harris, Artworks, Edition Eight. (ISBN 978-0957306325) Digital Real: Kunst & Nachhaltigkeit Vol 8.
Rifts (role-playing game)
Rifts is a multi-genre role-playing game created by Kevin Siembieda in August 1990 and published continuously by Palladium Books since then. It takes place in a post-apocalyptic future, deriving elements from cyberpunk, science fiction, fantasy, horror, western, mythology and many other genres. Rifts serves as a cross-over environment for a variety of other Palladium games with different universes connected through "rifts" on Earth that lead to different spaces, times, and realities that Palladium calls the "Rifts Megaverse". Rifts describes itself as an "advanced" role-playing game and not an introduction for those new to the concept. Palladium continues to publish books for the Rifts series, with about 80 books published between 1990 and 2011. Rifts Ultimate Edition was released in August 2005 and designed to update the game with Palladium's incremental changes to its system, changes in the game world, and additional information and character types. The web site is quick to point out that this is not a second edition but an improvement and expansion of the original role playing game. == Background == The RPG had the tentative title Boomers, named after the original name for the Glitter Boy power armor until Kevin Siembieda changed the name after finding out it was in use for Bubblegum Crisis. == Setting == The Rifts world is Earth, but hundreds of years into the future. Ley lines, lines of magic energy, criss-cross the earth forming supernatural geographic areas such as the Bermuda Triangle. Points where Ley Lines intersect, called a nexus, are places of powerful magic, such as the Pyramids of Giza and Stonehenge. If a Ley Line nexus energy surges or is purposely activated, the fabric of space and time can be torn, creating a rift - a hole in space-time leading to another place, time, or dimension. Ley lines contain magical energy called Potential Psychic Energy (PPE), which is found in various places, objects, and animals and is particularly strong in children. An adult's level of PPE can vary based on other factors. PPE also allows Psionics which uses energy known as Inner Strength Points or ISP. Psychic phenomenon (more commonly called psionics) can also vary from individuals, ranging from none at all to Master level abilities. Psychic abilities can manifest in virtually any way imaginable. Some psychics develop differently, such as psi-stalkers; human mutants that feed on psychic energy. === Earth === Rifts begins with two future-historical premises: first, a golden age of humanity occurs, with tremendous advances in science, technology, military, and society. Humanity as a whole is at peace as a majority of Earth's nations decide to cease world war and begin to share ideas and technology freely. Much of the Solar System is conquered, humanity's wars will end, and harmony will reign. This golden age is followed by an unknown cause near the winter solstice and a rare planetary alignment, causing a disaster that cascades into tremendous destruction via a ripple effect. The cataclysm begins with unprecedented storms, earthquakes, tsunamis, and volcanic eruptions, which kill millions of people. The Ley Line networks that crisscross the globe are energized, causing rifts to open both on Earth and throughout the Megaverse. For hundreds of years after the holocaust, many creatures, both mythical beasts and aliens, come through the Rifts to wreak havoc. The old world gone, a new Dark Age dawns and humanity's shrinking population is reduced, due to catastrophe and domestic failure, immeasurably. This period is covered in Palladium's Rifts Chaos Earth spin-off series. Rifts initially takes place in 101 P.A. (equivalent to the year 2387) 289 years after this event. The "Post-Apocalypse" calendar was established by the formation of the Coalition States in 2286. By this time, most of the disasters have quieted down, though Earth is still bathed in PPE. The planet's mystical energy has attracted aliens from other dimensions, who continue to arrive through the Rifts both accidentally and deliberately. The humanoid creatures that arrive on Earth are referred to as Dimensional Beings (called D-Bees). Some resemble familiar fantasy races, such as elves and dwarfs, while others were created specifically for the game setting. Non-humanoid creatures have also arrived, including monstrous creatures and mystical demons. To cope with these natural, supernatural, and alien menaces, the human race has adapted in a variety of ways, many of them borrowed from the technological developments of the lost Golden Age. Powered armor suits and giant vehicles are frequently used to combat the dangers of Rifts, but more invasive augmentation is common. This has three basic categories: "Juicers" augment themselves chemically, the "Borgs" augment themselves mechanically, and "Crazies" use performance-enhancing brain implants. All such augmentations boost strength, speed, endurance, and dexterity to superhuman levels. However, all come at great cost. Chemicals cause the body to wear out faster, decreasing life span to a few years. Mechanical Borg augmentation causes a loss of humanity when those with multiple limb and organ replacements become more machine than human. Brain implants cause mental instability ranging from mild phobias to crippling neurosis or psychosis. ==== North America ==== The strongest power in North America is the Coalition States (CS), which is based in the arcological city of Chi-Town and lays claim to northern Illinois, all of Iowa, the Texas Panhandle, Missouri, and the eastern half of Ontario, Canada. The second greatest power is Free Quebec, a former Coalition State that seceded following a civil war with the other Coalition States. Mexico is ruled by a group of vampire kingdoms, who treat humans as little more than food. North of the Rio Grande, west of Texas and roaming most of the American Southwest are large nomadic bands/tribes of bandits who collectively form the Pecos Empire, consisting of El Paso, Los Alamos, and Houstown. Much of the western United States has more or less willingly reverted to a mix of modern and past technology akin to the Wild West. The Royal Canadian Mounted Police managed to survive the great cataclysm, though Canada itself did not. The Mounties have become an independent law enforcement force called the Tundra Rangers, patrolling the northern wilderness. The Midwest, both upper and central, is home to most of North America's population. The Manistique Imperium and Northern Gun in Michigan's Upper Peninsula, both Coalition allies, are among the largest weapons manufacturing areas on the continent. New Lazlo is one of the largest cities in Michigan's southern portion. Chillicothe in Missouri is a large supplier of Coalition food processing and growing. Missouri's southern half, home to the city-states of Whykin (Poplar Bluff) and Kingsdale (West Plains) are in constant opposition to the CS and claim independence. Arkansas is home to the independent CS ally El Dorado. Southern Illinois and the Ohio Valley is home to the Federation of Magic. Also in the Ohio Valley is Psyscape, a city-state founded by psychics. Tolkeen was a major city in the former Minneapolis region in early Rifts books; the city welcomed users of magic. A military campaign made by the Coalition States (which is the primary event of 109 PA) resulted in the magic-user kingdom being wiped off the map. In the Northeast, the city-state of Lazlo, named after supernatural researcher and writer Victor Lazlo, was built upon the ruins of Toronto. This major center of civilization is well known as a melting pot of humans, D-Bees and other beings, and is the home of Techno-Wizardry. Mad Haven is the name given to the ruins of Manhattan; tectonic forces during the cataclysm have moved it into the coast, creating a peninsula. It is seen by most denizens of Rifts Earth as a refuge of demons and madness. ==== South America ==== The return of Atlantis caused the Amazon River basin to flood most of western South America, giving it the nickname The Land of a Thousand Islands. The Empire of the Sun, consisting of Cuzco, Nazca, Arequipa and Lima, created a wide range of technology and magic, including magic derived from the Nazca lines. In Argentina, the Silver River Republics of Cordoba (the South American Chi-Town), Santiago (one of the most tolerant human nations on Rifts Earth), Achilles (a nation founded by mutants), and New Babylon, a nation where humans and aliens coexist) have thrived and created nations whose strength rivals that of the CS. In Bolivia, freed Human and D-Bees formed the Megaversal Legion: a mercenary company with one of the highest levels of technology on Rifts Earth. ==== Europe ==== England has become a vast wilderness again, broken up by the occasional giant Millennium Tree or feudal kingdom, complete with a New Camelot and a new King Arthur, partially being manipulated by an alien intelligence disguised as Merlin. Also the magic of
Model collapse
Model collapse, also known by other names such as "AI inbreeding", "AI cannibalism", "Habsburg AI", and "model autophagy disorder" or "MAD" is a phenomenon noted in artificial intelligence studies, where machine learning models gradually degrade due to errors coming from uncurated synthetic data, or due to training on the outputs of another model such as prior versions of itself. It is unclear to what extent the phenomenon threatens the long-term development of such models, and some techniques have been proposed to mitigate the effect. == Characteristics == Shumailov et al. coined the term to describe two specific stages to the degradation of machine learning models: early model collapse and late model collapse: In early model collapse, the model begins losing information about the tails of the distribution – mostly affecting minority data. Later work highlighted that early model collapse is hard to notice, since overall performance may appear to improve, while the model loses performance on minority data. In late model collapse, the model loses a significant proportion of its performance, confusing concepts and losing most of its variance. == Mechanism == Using synthetic data as training data can lead to issues with the quality and reliability of the trained model. Model collapse occurs for three main reasons: functional approximation errors sampling errors learning errors Importantly, it happens in even the simplest of models, where not all of the error sources are present. In more complex models the errors often compound, leading to faster collapse. == Disagreement over real-world impact == Some researchers and commentators on model collapse warn that the phenomenon could fundamentally threaten future generative AI development: As AI-generated data is shared on the Internet, it will inevitably end up in future training datasets, which are often crawled from the Internet. If training on "slop" (large quantities of unlabeled synthetic data) inevitably leads to model collapse, this could therefore pose a difficult problem. However, recently, other researchers have disagreed with this argument, showing that if synthetic data accumulates alongside human-generated data, model collapse is avoided. The researchers argue that data accumulating over time is a more realistic description of reality than deleting all existing data every year, and that the real-world impact of model collapse may not be as catastrophic as feared. An alternative branch of the literature investigates the use of machine learning detectors and watermarking to identify model generated data and filter it out. == Mathematical models of the phenomenon == === 1D Gaussian model === In 2024, a first attempt has been made at illustrating collapse for the simplest possible model — a single dimensional normal distribution fit using unbiased estimators of mean and variance, computed on samples from the previous generation. To make this more precise, we say that original data follows a normal distribution X 0 ∼ N ( μ , σ 2 ) {\displaystyle X^{0}\sim {\mathcal {N}}(\mu ,\sigma ^{2})} , and we possess M 0 {\displaystyle M_{0}} samples X j 0 {\displaystyle X_{j}^{0}} for j ∈ { 1 , … , M 0 } {\displaystyle j\in {\{\,1,\dots ,M_{0}\,{}\}}} . Denoting a general sample X j i {\displaystyle X_{j}^{i}} as sample j ∈ { 1 , … , M i } {\displaystyle j\in {\{\,1,\dots ,M_{i}\,{}\}}} at generation i {\displaystyle i} , then the next generation model is estimated using the sample mean and variance: μ i + 1 = 1 M i ∑ j X j i ; σ i + 1 2 = 1 M i − 1 ∑ j ( X j i − μ i + 1 ) 2 . {\displaystyle \mu _{i+1}={\frac {1}{M_{i}}}\sum _{j}X_{j}^{i};\quad \sigma _{i+1}^{2}={\frac {1}{M_{i}-1}}\sum _{j}(X_{j}^{i}-\mu _{i+1})^{2}.} Leading to a conditionally normal next generation model X j i + 1 | μ i + 1 , σ i + 1 ∼ N ( μ i + 1 , σ i + 1 2 ) {\displaystyle X_{j}^{i+1}|\mu _{i+1},\;\sigma _{i+1}\sim {\mathcal {N}}(\mu _{i+1},\sigma _{i+1}^{2})} . In theory, this is enough to calculate the full distribution of X j i {\displaystyle X_{j}^{i}} . However, even after the first generation, the full distribution is no longer normal: It follows a variance-gamma distribution. To continue the analysis, instead of writing the probability density function at each generation, it is possible to explicitly construct them in terms of independent random variables using Cochran's theorem. To be precise, μ 1 {\displaystyle \mu _{1}} and σ 1 {\displaystyle \sigma _{1}} are independent, with μ 1 ∼ N ( μ , σ 2 M 0 ) {\displaystyle \mu _{1}\sim {\mathcal {N}}\left(\mu ,{\frac {\sigma ^{2}}{M_{0}}}\right)} and ( M 0 − 1 ) σ 1 2 ∼ σ 2 Γ ( M 0 − 1 2 , 1 2 ) {\displaystyle (M_{0}-1)\,\sigma _{1}^{2}\sim \sigma ^{2}\,\Gamma \left({\frac {M_{0}-1}{2}},{\frac {1}{2}}\right)} , following a Gamma distribution. Denoting with Z {\displaystyle Z} Gaussian random variables distributed according to N ( 0 , 1 ) {\displaystyle {\mathcal {N}}(0,1)} and with S i {\displaystyle S^{i}} random variables distributed with 1 M i − 1 − 1 Γ ( M i − 1 − 1 2 , 1 2 ) {\displaystyle {\frac {1}{M_{i-1}-1}}\Gamma \left({\frac {M_{i-1}-1}{2}},{\frac {1}{2}}\right)} , it turns out to be possible to write samples at each generation as X j 0 = μ + σ Z j 0 , {\textstyle X_{j}^{0}=\mu +\sigma Z_{j}^{0},} X j 1 = μ + σ M 0 Z 1 + σ S 1 Z j 1 , {\textstyle X_{j}^{1}=\mu +{\frac {\sigma }{\sqrt {M_{0}}}}Z^{1}+\sigma {\sqrt {S^{1}}}Z_{j}^{1},} and more generally X j n = μ + σ M 0 Z 1 + σ M 1 S 1 Z 2 + ⋯ + σ M n − 1 S 1 × ⋯ × S n − 1 Z n + σ S 1 × ⋯ × S n Z j n . {\displaystyle X_{j}^{n}=\mu +{\frac {\sigma }{\sqrt {M_{0}}}}Z^{1}+{\frac {\sigma }{\sqrt {M_{1}}}}{\sqrt {S^{1}}}Z^{2}+\dots +{\frac {\sigma }{\sqrt {M_{n-1}}}}{\sqrt {S^{1}\times \dots \times S^{n-1}}}Z^{n}+\sigma {\sqrt {S^{1}\times \dots \times S^{n}}}Z_{j}^{n}.} Note, that these are not joint distributions, as Z n {\displaystyle Z^{n}} and S n {\displaystyle S^{n}} depend directly on Z j n − 1 {\displaystyle Z_{j}^{n-1}} , but when considering X j n {\displaystyle X_{j}^{n}} on its own the formula above provides all the information about the full distribution. To analyse the model collapse, we can first calculate variance and mean of samples at generation n {\displaystyle n} . This would tell us what kind of distributions we expect to arrive at after n {\displaystyle n} generations. It is possible to find its exact value in closed form, but the mean and variance of the square root of gamma distribution are expressed in terms of gamma functions, making the result quite clunky. Following, it is possible to expand all results to second order in each of 1 / M i {\displaystyle 1/M_{i}} , assuming each sample size to be large. It is then possible to show that 1 σ 2 Var ( X j n ) = 1 M 0 + 1 M 1 + ⋯ + 1 M n − 1 + 1 + O ( M i − 2 ) . {\displaystyle {\frac {1}{\sigma ^{2}}}\operatorname {Var} (X_{j}^{n})={\frac {1}{M_{0}}}+{\frac {1}{M_{1}}}+\dots +{\frac {1}{M_{n-1}}}+1+{\mathcal {O}}\left(M_{i}^{-2}\right).} And if all sample sizes M i = M {\displaystyle M_{i}=M} are constant, this diverges linearly as n → ∞ {\displaystyle n\to \infty } : Var ( X j n ) = σ 2 ( 1 + n M ) ; E ( X j n ) = μ . {\displaystyle \operatorname {Var} (X_{j}^{n})=\sigma ^{2}\left(1+{\frac {n}{M}}\right);\quad \mathbb {E} (X_{j}^{n})=\mu .} This is the same scaling as for a single dimensional Gaussian random walk. However, divergence of the variance of X j n {\displaystyle X_{j}^{n}} does not directly provide any information about the corresponding estimates of μ n + 1 {\displaystyle \mu _{n+1}} and σ n + 1 {\displaystyle \sigma _{n+1}} , particularly how different they are from the original μ {\displaystyle \mu } and σ {\displaystyle \sigma } . It turns out to be possible to calculate the distance between the true distribution and the approximated distribution at step n + 1 {\displaystyle n+1} , using the Wasserstein-2 distance (which is also sometimes referred to as risk): E [ W 2 2 ( N ( μ , σ 2 ) , N ( μ n + 1 , σ n + 1 2 ) ) ] = 3 2 σ 2 ( 1 M 0 + 1 M 1 + ⋯ + 1 M n ) + O ( M i − 2 ) , {\displaystyle \mathbb {E} \left[\mathbb {W} _{2}^{2}\left({\mathcal {N}}(\mu ,\sigma ^{2}),{\mathcal {N}}(\mu _{n+1},\sigma _{n+1}^{2})\right)\right]={\frac {3}{2}}\sigma ^{2}\left({\frac {1}{M_{0}}}+{\frac {1}{M_{1}}}+\dots +{\frac {1}{M_{n}}}\right)+{\mathcal {O}}\left(M_{i}^{-2}\right),} Var [ W 2 2 ( N ( μ , σ 2 ) , N ( μ n + 1 , σ n + 1 2 ) ) ] = 1 2 σ 4 ( 3 M 0 2 + 3 M 1 2 + ⋯ + 3 M n 2 + ∑ i ≠ j 4 M i M j ) + O ( M i − 3 ) . {\displaystyle \operatorname {Var} \left[\mathbb {W} _{2}^{2}\left({\mathcal {N}}(\mu ,\sigma ^{2}),{\mathcal {N}}(\mu _{n+1},\sigma _{n+1}^{2})\right)\right]={\frac {1}{2}}\sigma ^{4}\left({\frac {3}{M_{0}^{2}}}+{\frac {3}{M_{1}^{2}}}+\dots +{\frac {3}{M_{n}^{2}}}+\sum _{i\neq j}{\frac {4}{M_{i}M_{j}}}\right)+{\mathcal {O}}\left(M_{i}^{-3}\right).} This directly shows why model collapse occurs in this simple model. Due to errors from re-sampling the approximated distribution, each generation ends up corresponding to a
Clapper (service)
Clapper is an American short-form video-hosting service headquartered in Dallas, Texas. It was founded in 2020 by Edison Chen as an alternative for TikTok for mature audiences. The app is functionally similar to TikTok and includes tipping and e-commerce features. Following an influx of far-right content in early 2021, Clapper strengthened its moderation practices. It achieved 2 million monthly active users by 2023, and the number of downloads increased after a U.S. bill that would potentially ban TikTok in the country was signed in 2024. == History == With its offices in Dallas, Texas, Clapper was founded in July 2020 by Chinese-American entrepreneur Edison Chen. Chen considered that most online platforms, such as TikTok, were being targeted to young generations, such as Generation Z. He then concepted Clapper as a service with short-form content for mature audiences among Generation X and millennials, while not intending to compete directly with TikTok. Clapper averaged fewer than ten thousand daily active users during 2020, reaching 500 thousand downloads in the next year. Initially without paying for external advertising, the company raised about $3 million during a 2021 seed funding round. In 2023, the app reportedly reached about 300 to 400 thousand daily active users and 2 million monthly active users. The average user was between the ages of 35 and 55. Following the April 2024 signing of the Protecting Americans from Foreign Adversary Controlled Applications Act, which would potentially enact a ban on TikTok in the U.S. in January 2025, Clapper averaged 200 thousand weekly downloads. In 2025, before the day scheduled for the ban (January 19), TikTok users migrated to other apps. As a result, Clapper received 1.4 million new downloads in a week preceding the date. It was listed as the third most-downloaded free app on Apple's App Store on January 14, behind Xiaohongshu and Lemon8, and the term "TikTok refugee" became a trending term. == Features == Clapper presents similarities with TikTok in its layout, including "Following" and "For You" tabs with videos up to three minutes long that can be liked, commented on or shared. A "Clapback" feature allows users to create responses to videos from others. Users can create livestreams and chat rooms in the app. Users can tip Clapper creators through its Clapper Fam monetization feature, in place of in-app advertisements. The Clapper Shop allows for e-commerce between users. The service had distributed $10 million to its users in total by 2023, according to Clapper CEO Chen. == Content == Clapper includes a policy requiring users to be at least 17 years of age, although Clapper CEO Chen described that "there is no adult content" on the platform. Lindsay Dodgson of Business Insider described the content as generally outdated and "reminiscent of 'getting owned' compilations of the earlier internet." The Washington Post's Tatum Hunter characterized Clapper as including sexual or engagement baiting content more prevalently than TikTok. === Moderation === Clapper's team, which had fifteen employees in early 2021, initially stated it would not moderate content as strictly as TikTok and would mostly rely on user reports. Following that year's January 6 United States Capitol attack, far-right conservative videos promoting QAnon and anti-vaccine conspiracy theories appeared on Clapper's "For You" page to a substantial degree for weeks. The videos were made in protest against decisions by platforms, particularly TikTok, to ban such content. Clapper's team stated in January 10 that its rules prohibiting incitements to violence would be strictly enforced. By February, videos and accounts promoting the conspiracy theories had been removed, and QAnon-related content was banned permanently. Clapper's team hired more content auditors and implemented moderation by artificial intelligence for further community guideline violations.
AAAI Conference on Artificial Intelligence
The AAAI Conference on Artificial Intelligence is a leading international academic conference in artificial intelligence held annually. It ranks 4th in terms of H5 Index in Google Scholar's list of top AI publications, after ICLR, NeurIPS, and ICML. It is supported by the Association for the Advancement of Artificial Intelligence (AAAI), after which it is named. Precise dates vary from year to year, but paper submissions are generally due at the end of August to beginning of September, and the conference is generally held during the following February. The first AAAI was held in 1980 at Stanford University, Stanford California. During AAAI-20 conference, AI pioneers and 2018 Turing Award winners (often referred to as the Nobel Prize of Computing) Yann LeCun and Yoshua Bengio, among eight other researchers, were honored as the AAAI 2020 Fellows. Along with other conferences such as NeurIPS and ICML, AAAI uses an artificial-intelligence algorithm to assign papers to reviewers. == Sponsors == Many leading technology companies, including Google, Microsoft, Amazon (company), IBM, Baidu, Bytedance, and Huawei, generously sponsor and participate in AAAI to publish and showcase their latest theoretical and applied research. Sponsoring companies also actively recruit AI talents at the conference. == Locations == AAAI-2026 Singapore Expo, Singapore AAAI-2025 Pennsylvania Convention Center, Philadelphia, Pennsylvania, United States AAAI-2024 Vancouver Convention Centre, Vancouver, British Columbia, Canada AAAI-2023 Washington Convention Center, Washington, D.C., United States AAAI-2022 Virtual Conference AAAI-2021 Virtual Conference AAAI-2020 Hilton New York Midtown, New York, New York, United States AAAI-2019 Hilton Hawaiian Village, Honolulu, Hawaii, United States AAAI-2018 Hilton New Orleans Riverside, New Orleans, Louisiana, United States AAAI-2017 San Francisco, California, United States AAAI-2016 Phoenix, Arizona, United States AAAI-2015 Austin, Texas, United States AAAI-2014 Québec Convention Center, Québec City, Québec, Canada AAAI-2013 Bellevue, Washington, United States AAAI-2012 Toronto, Ontario, Canada AAAI-2011 San Francisco, California, United States AAAI-2010 Westin Peachtree Plaza, Atlanta, Georgia, United States AAAI-2008 Chicago, Illinois, United States AAAI-2007 Toronto, Ontario, Canada AAAI-2006 Boston, Massachusetts, United States AAAI-2005 Pittsburgh, Pennsylvania, United States AAAI-2004 San Jose, California, United States AAAI-2002 Shaw conference center in Edmonton, Alberta, Canada AAAI-2000 Austin, Texas, United States AAAI-1999 Orlando, Florida, United States AAAI-1998 Madison, Wisconsin, United States AAAI-1997 Providence, Rhode Island, United States AAAI-1996 Portland, Oregon, United States AAAI-1994 Seattle, Washington, United States AAAI-1993 Washington Convention Center, Washington, D.C., United States AAAI-1992 San Jose Convention Center, San Jose, California, United States AAAI-1991 Anaheim Convention Center, Anaheim, California, United States AAAI-1990 Boston, Massachusetts, United States AAAI-1988 Saint Paul, Minnesota, United States AAAI-1987 Seattle, Washington, United States AAAI-1986 Philadelphia, Pennsylvania, United States AAAI-1984 University of Texas, Austin, Texas, United States AAAI-1983 Washington, D.C., United States AAAI-1982 Carnegie Mellon University and the University of Pittsburgh, Pittsburgh, Pennsylvania, United States AAAI-1980 Stanford, California, United States