AI Content Generation Tools

AI Content Generation Tools — independent reviews, comparisons, pricing and step-by-step guides on Aizhi.

  • Neural scaling law

    Neural scaling law

    In machine learning, a neural scaling law is an empirical scaling law that describes how neural network performance changes as key factors are scaled up or down. These factors typically include the number of parameters, training dataset size, and training cost. Some models also exhibit performance gains by scaling inference through increased test-time compute (TTC), extending neural scaling laws beyond training to the deployment phase. == Introduction == In general, a deep learning model can be characterized by four parameters: model size, training dataset size, training cost, and the post-training error rate (e.g., the test set error rate). Each of these variables can be defined as a real number, usually written as N , D , C , L {\displaystyle N,D,C,L} (respectively: parameter count, dataset size, computing cost, and loss). A neural scaling law is a theoretical or empirical statistical law between these parameters. There are also other parameters with other scaling laws. === Size of the model === In most cases, the model's size is simply the number of parameters. However, one complication arises with the use of sparse models, such as mixture-of-expert models. With sparse models, during inference, only a fraction of their parameters are used. In comparison, most other kinds of neural networks, such as transformer models, always use all their parameters during inference. === Size of the training dataset === The size of the training dataset is usually quantified by the number of data points within it. Larger training datasets are typically preferred, as they provide a richer and more diverse source of information from which the model can learn. This can lead to improved generalization performance when the model is applied to new, unseen data. However, increasing the size of the training dataset also increases the computational resources and time required for model training. With the "pretrain, then finetune" method used for most large language models, there are two kinds of training dataset: the pretraining dataset and the finetuning dataset. Their sizes have different effects on model performance. Generally, the finetuning dataset is less than 1% the size of pretraining dataset. In some cases, a small amount of high quality data suffices for finetuning, and more data does not necessarily improve performance. Many scaling laws, due to their inherent diminishing returns nature, value data based on a submodular set function which was shown in a paper on this topic. === Cost of training === Training cost is typically measured in terms of time (how long it takes to train the model) and computational resources (how much processing power and memory are required). It is important to note that the cost of training can be significantly reduced with efficient training algorithms, optimized software libraries, and parallel computing on specialized hardware such as GPUs or TPUs. The cost of training a neural network model is a function of several factors, including model size, training dataset size, the training algorithm complexity, and the computational resources available. In particular, doubling the training dataset size does not necessarily double the cost of training, because one may train the model for several times over the same dataset (each being an "epoch"). === Performance === The performance of a neural network model is evaluated based on its ability to accurately predict the output given some input data. Common metrics for evaluating model performance include: Negative log-likelihood per token (logarithm of perplexity) for language modeling; Accuracy, precision, recall, and F1 score for classification tasks; Mean squared error (MSE) or mean absolute error (MAE) for regression tasks; Elo rating in a competition against other models, such as gameplay or preference by a human judge. Performance can be improved by using more data, larger models, different training algorithms, regularizing the model to prevent overfitting, and early stopping using a validation set. When the performance is a number bounded within the range of [ 0 , 1 ] {\displaystyle [0,1]} , such as accuracy, precision, etc., it often scales as a sigmoid function of cost, as seen in the figures. == Examples == === (Hestness, Narang, et al, 2017) === The 2017 paper is a common reference point for neural scaling laws fitted by statistical analysis on experimental data. Previous works before the 2000s, as cited in the paper, were either theoretical or orders of magnitude smaller in scale. Whereas previous works generally found the scaling exponent to scale like L ∝ D − α {\displaystyle L\propto D^{-\alpha }} , with α ∈ { 0.5 , 1 , 2 } {\displaystyle \alpha \in \{0.5,1,2\}} , the paper found that α ∈ [ 0.07 , 0.35 ] {\displaystyle \alpha \in [0.07,0.35]} . Of the factors they varied, only task can change the exponent α {\displaystyle \alpha } . Changing the architecture optimizers, regularizers, and loss functions, would only change the proportionality factor, not the exponent. For example, for the same task, one architecture might have L = 1000 D − 0.3 {\displaystyle L=1000D^{-0.3}} while another might have L = 500 D − 0.3 {\displaystyle L=500D^{-0.3}} . They also found that for a given architecture, the number of parameters necessary to reach lowest levels of loss, given a fixed dataset size, grows like N ∝ D β {\displaystyle N\propto D^{\beta }} for another exponent β {\displaystyle \beta } . They studied machine translation with LSTM ( α ∼ 0.13 {\displaystyle \alpha \sim 0.13} ), generative language modelling with LSTM ( α ∈ [ 0.06 , 0.09 ] , β ≈ 0.7 {\displaystyle \alpha \in [0.06,0.09],\beta \approx 0.7} ), ImageNet classification with ResNet ( α ∈ [ 0.3 , 0.5 ] , β ≈ 0.6 {\displaystyle \alpha \in [0.3,0.5],\beta \approx 0.6} ), and speech recognition with two hybrid (LSTMs complemented by either CNNs or an attention decoder) architectures ( α ≈ 0.3 {\displaystyle \alpha \approx 0.3} ). === (Henighan, Kaplan, et al, 2020) === A 2020 analysis studied statistical relations between C , N , D , L {\displaystyle C,N,D,L} over a wide range of values and found similar scaling laws, over the range of N ∈ [ 10 3 , 10 9 ] {\displaystyle N\in [10^{3},10^{9}]} , C ∈ [ 10 12 , 10 21 ] {\displaystyle C\in [10^{12},10^{21}]} , and over multiple modalities (text, video, image, text to image, etc.). In particular, the scaling laws it found are (Table 1 of ): For each modality, they fixed one of the two C , N {\displaystyle C,N} , and varying the other one ( D {\displaystyle D} is varied along using D = C / 6 N {\displaystyle D=C/6N} ), the achievable test loss satisfies L = L 0 + ( x 0 x ) α {\displaystyle L=L_{0}+\left({\frac {x_{0}}{x}}\right)^{\alpha }} where x {\displaystyle x} is the varied variable, and L 0 , x 0 , α {\displaystyle L_{0},x_{0},\alpha } are parameters to be found by statistical fitting. The parameter α {\displaystyle \alpha } is the most important one. When N {\displaystyle N} is the varied variable, α {\displaystyle \alpha } ranges from 0.037 {\displaystyle 0.037} to 0.24 {\displaystyle 0.24} depending on the model modality. This corresponds to the α = 0.34 {\displaystyle \alpha =0.34} from the Chinchilla scaling paper. When C {\displaystyle C} is the varied variable, α {\displaystyle \alpha } ranges from 0.048 {\displaystyle 0.048} to 0.19 {\displaystyle 0.19} depending on the model modality. This corresponds to the β = 0.28 {\displaystyle \beta =0.28} from the Chinchilla scaling paper. Given fixed computing budget, optimal model parameter count is consistently around N o p t ( C ) = ( C 5 × 10 − 12 petaFLOP-day ) 0.7 = 9.0 × 10 − 7 C 0.7 {\displaystyle N_{opt}(C)=\left({\frac {C}{5\times 10^{-12}{\text{petaFLOP-day}}}}\right)^{0.7}=9.0\times 10^{-7}C^{0.7}} The parameter 9.0 × 10 − 7 {\displaystyle 9.0\times 10^{-7}} varies by a factor of up to 10 for different modalities. The exponent parameter 0.7 {\displaystyle 0.7} varies from 0.64 {\displaystyle 0.64} to 0.75 {\displaystyle 0.75} for different modalities. This exponent corresponds to the ≈ 0.5 {\displaystyle \approx 0.5} from the Chinchilla scaling paper. It's "strongly suggested" (but not statistically checked) that D o p t ( C ) ∝ N o p t ( C ) 0.4 ∝ C 0.28 {\displaystyle D_{opt}(C)\propto N_{opt}(C)^{0.4}\propto C^{0.28}} . This exponent corresponds to the ≈ 0.5 {\displaystyle \approx 0.5} from the Chinchilla scaling paper. The scaling law of L = L 0 + ( C 0 / C ) 0.048 {\displaystyle L=L_{0}+(C_{0}/C)^{0.048}} was confirmed during the training of GPT-3 (Figure 3.1 ). === Chinchilla scaling (Hoffmann, et al, 2022) === One particular scaling law ("Chinchilla scaling") states that, for a large language model (LLM) autoregressively trained for one epoch, with a cosine learning rate schedule, we have: { C = C 0 N D L = A N α + B D β + L 0 {\displaystyle {\begin{cases}C=C_{0}ND\\L={\frac {A}{N^{\alpha }}}+{\frac {B}{D^{\beta }}}+L_{0}\end{cases}}} where the variables are C {\displaystyle C} is the cost o

    Read more →
  • Simulation decomposition

    Simulation decomposition

    SimDec, or Simulation decomposition, is a hybrid uncertainty and sensitivity analysis method, for visually examining the relationships between the output and input variables of a computational model. SimDec maps multivariable scenarios onto the distribution of the model output. This visual analytics approach exposes the underlying nature of the model behavior, including its nonlinear and multivariate interaction effects. SimDec can be used in any range of science, engineering, and social domains. Existing applications include business and environmental issues. == Method == SimDec operates on Monte Carlo simulation (or measured) data where both output and input values are recorded. At least one thousand observations (or simulated iterations) are typically recommended to preserve the readability of the resulting histograms. An outline of the decomposition algorithm, which is readily available in multiple programming languages, proceeds as follows: Select the input variables for decomposition. One can use sensitivity indices (see variance-based sensitivity analysis) to define the most influential variables for decomposition or choose them manually according to the decision-problem context (for example, only those input variables that the decision-maker can act upon). Two to three input variables, ordered by decreasing value of their sensitivity indices, usually provide the most meaningful decomposition results. Divide the inputs into states. The numeric ranges of the inputs are split into several intervals with an equal number of observations in each. For categorical variables, the categories represent states. Form scenarios. All combinations of states of the selected input variables produce unique scenarios or subsets of the data. For example, if the range of X2 is divided into low, medium and high, and X3 takes values of 1 or 2, six scenarios are formed: (i) X2 low & X3 = 1, (ii) X2 low & X3 = 2, (iii) X2 medium & X3 = 1, (iv) X2 medium & X3 = 2, (v) X2 high & X3 = 1, and (vi) X2 high & X3 = 2. Assign scenarios to each output value. The simulation data is used to define the scenario index for each simulation run. For example, if an X2 value falls into the low state and X3 is equal to 2, the corresponding scenario, defined in Step 3, is (ii). Color-code the output distribution. When all output values are assigned scenario indices, they are plotted as series in a stacked histogram, visually separated by color-coding. For ease of visual perception, the states of the most influential input variable are assigned distinct colors, and all the remaining partitions take shades of those colors (see Figure). All of these steps can be run automatically on the given data using the open-source SimDec packages currently available in Python, R, Julia, and Matlab. A SimDec template in Excel runs a Monte Carlo simulation of a spreadsheet model but possesses only a manual option for input selection. == How to read SimDec == === Histogram === Histogram is an approximate representation of the distribution of numerical data. Its horizontal axis shows the range of the variable of interest, and its vertical axis denotes count, also called frequency, or, if divided by the total number of data points, probability. The distribution alone can supply only limited information about the data – its minimum, maximum, and shape (where the most of data occurs). === Judging the importance of inputs === If an input variable has no effect on the output, its states (e.g., low & high) would lie on top of each other on the SimDec histogram, occupying fully overlapping ranges of the output. If an input variable has a strong effect and explains most of the variance of the output, the border between its states on the SimDec histogram would be vertical. Such visualization has an important decision-making implication – e.g., if the high state of X can be achieved, it would guarantee a certain range of Y. All cases in-between with low-to-strong effects would show a diagonal border between the states. The less they overlap, the larger the effect of X on Y. While the horizontal displacement of sub-distributions on the SimDec histogram is the key to interpreting the results, the vertical disposition of sub-distributions is just a technical matter of the order of plotting the series of the stacked histogram. === Exploring the interaction of inputs === When two or more input variables are used for decomposition, it becomes possible to examine their joint effects. A schematic visualization portrays how different types of joint effects of input variables on the output appear on SimDec visualization. Understanding the nature of interaction effects in a computational model and its behavior in general is crucial for effective decision-making. == Limitations == The SimDec method has several limitations: It is based on Monte Carlo simulation and thus requires running a computational model a thousand of times or more. To models that take hours to evaluate once, it would be impossible to use SimDec (unless a supercomputer and/or large of time are available). SimDec is based on a histogram, thus, for binary or categorical output variables, the visualization would be very limited (e.g., only a few bins). The more input variables one selects for the decomposition, the less readable the histogram becomes. Only cases with two and three input variables are presented in.

    Read more →
  • Aurora (supercomputer)

    Aurora (supercomputer)

    Aurora is an exascale supercomputer that was sponsored by the United States Department of Energy (DOE) and designed by Intel and Cray for Argonne National Laboratory. It was briefly the second fastest supercomputer in the world from November 2023 to June 2024. The cost was estimated in 2019 to be US$500 million. Olivier Franza is the chief architect and principal investigator of this design. == History == In 2013 DOE presented a proposal for an "exascale" supercomputer, capable of speeds in the neighborhood of 1 exaFLOP (1018 floating point mathematical operations per second) with a maximum power consumption of 20 megawatts (MW) by 2020. Aurora was first announced in 2015 and to be finished in 2018. It was expected to have a speed of 180 petaFLOPS which would be around the speed of Summit. Aurora was meant to be the most powerful supercomputer at the time of its launch and to be built by Cray with Intel processors. Later, in 2017, Intel announced that Aurora would be delayed to 2021 but scaled up to 1 exaFLOP. In March 2019, DOE said that it would build the first supercomputer with a performance of one exaFLOP in the United States in 2021. In October 2020, DOE said that Aurora would be delayed again for a further six months, and would no longer be the first exascale computer in the US. In late October 2021 Intel announced that Aurora would now exceed 2 exaFLOPS in peak double-precision compute – That claim however never was realized. The system was fully installed on June 22, 2023. In May 2024, Aurora appeared at number two on the Top500 supercomputer list, with a performance of 1.012 exaFLOPS, marking the second entry of an exascale capable system on the Top500. == Usage == Functions include research on brain structure, nuclear fusion, low carbon technologies, subatomic particles, cancer and cosmology. It will also develop new materials that will be useful for batteries and more efficient solar cells. It is to be available to the general scientific community. == Architecture == Aurora has 10,624 nodes, with each node being composed of two Intel Xeon Max processors, six Intel Max series GPUs and a unified memory architecture, providing a maximum computing power of 130 teraFLOPS per node. It has around 10 petabytes of memory and 230 petabytes of storage. The machine is stated to consume around 39 MW of power. For comparison, the fastest computer in the world today, El Capitan uses 30 MW, while another Top 500 System, Frontier uses 24 MW.

    Read more →
  • Unique name assumption

    Unique name assumption

    The unique name assumption is a simplifying assumption made in some ontology languages and description logics. In logics with the unique name assumption, different names always refer to different entities in the world. It was included in Ray Reiter's discussion of the closed-world assumption often tacitly included in Database Management Systems (e.g. SQL) in his 1984 article "Towards a logical reconstruction of relational database theory" (in M. L. Brodie, J. Mylopoulos, J. W. Schmidt (editors), Data Modelling in Artificial Intelligence, Database and Programming Languages, Springer, 1984, pages 191–233). The standard ontology language OWL does not make this assumption, but provides explicit constructs to express whether two names denote the same or distinct entities. owl:sameAs is the OWL property that asserts that two given names or identifiers (e.g., URIs) refer to the same individual or entity. owl:differentFrom is the OWL property that asserts that two given names or identifiers (e.g., URIs) refer to different individuals or entities.

    Read more →
  • Document-oriented database

    Document-oriented database

    A document-oriented database, or document store, is a computer program and data storage system designed for storing, retrieving, and managing document-oriented information, also known as semi-structured data. Document-oriented databases are one of the main categories of NoSQL databases, and the popularity of the term "document-oriented database" has grown alongside the adoption of NoSQL itself. XML databases are a subclass of document-oriented databases optimized for XML documents. Graph databases are similar, but add another layer, the relationship, which allows them to link documents for rapid traversal. Document-oriented databases are conceptually an extension of the key–value store, another type of NoSQL database. In key-value stores, data is treated as opaque by the database, whereas document-oriented systems exploit the internal structure of documents to extract metadata and optimize storage and queries. Although in practice the distinction can be minimal due to modern tooling, document stores are designed to provide a richer programming experience with modern programming techniques. Document databases differ significantly from traditional relational databases (RDBs). Relational databases store data in predefined tables, often requiring an object to be split across multiple tables. In contrast, document databases store all information for a given object in a single document, with each document potentially having a unique structure. This design eliminates the need for object-relational mapping when loading data into the database. == Documents == The central concept of a document-oriented database is the notion of a document. Although implementations vary in their specific definitions, document-oriented databases generally treat documents as self-contained units that encapsulate and encode data in a standardized format. Common encoding formats include XML, YAML, JSON, as well as binary representations such as BSON. Documents in a document store are equivalent to the programming concept of an object. They are not required to adhere to a fixed schema, and documents within the same collection may contain different fields or structures. Fields may be optional, and documents of the same logical type may differ in composition. For example, the following illustrates a document encoded in JSON: A second document might be encoded in XML as: The two example documents share some structural elements but also contain unique fields. The structure, text, and other data within each document are collectively referred to as the document's content and can be accessed or modified using retrieval or editing operations. Unlike relational databases, in which each record contains the same fields and unused fields are left empty, document-oriented databases do not require uniform fields across documents. This design allows new information to be added to some documents without affecting the structure of others. Document databases often support the storage of additional metadata alongside the document content. Such metadata may relate to organizational features, security, indexing, or other implementation-specific features. === CRUD operations === The core operations supported by a document-oriented database for manipulating documents are similar to those in other databases. Although terminology is not perfectly standardized, these operations are generally recognized as Create, Read, Update, and Delete (CRUD). Creation (C): Adds a new document to the database. Retrieval (R): Retrieves documents or fields based on queries. Update (U): Modifies the contents of existing documents. Deletion (D): Removes documents from the database. === Keys === Documents in a document-oriented database are addressed via a unique identifier. This identifier, often a string, URI, or path, can be used to retrieve the document from the database. Most document stores maintain an index on the key to optimize retrieval, and in some implementations the key is required when creating or inserting a new document. === Retrieval === In addition to key-based access, document-oriented databases typically provide an API or query language that enables retrieval based on document content or associated metadata. For example, a query may return all documents with a specific field matching a given value. The available query features, indexing options, and performance characteristics vary across implementations. Document stores differ from key-value stores in that they exploit the internal structure and metadata of stored documents. In many key-value stores, values are treated as opaque or "black-box" data, meaning the database system does not interpret their internal structure. By contrast, document-oriented databases can classify and interpret document content. This enables queries that distinguish between types of data––for example, retrieving all phone numbers containing "555" without also matching a postal code such as "55555." === Editing === Document databases typically provide mechanisms for updating or editing the content or metadata of a document. Updates may involve replacing the entire document or modifying individual elements or fields within the document. === Organization === Document database implementations support a variety of methods for organizing documents, including: Collections: Groups of documents. Depending on the implementation, a document may be required to belong to a single collection or may be allowed in multiple collections. Tags and non-visible metadata: Additional data stored outside the main document content. Directory hierarchies: Documents organized in a tree-like structure, often based on path or URI. These organizational structures may differ between logical and physical representations (e.g. on disk or in memory). == Relationship to other databases == === Relationship to key-value stores === A document-oriented database can be viewed as a specialized form of key-value store, which is itself a category of NoSQL database. In a basic key-value store, the stored value is typically treated as opaque by the database system. By contrast, a document-oriented database provides APIs or a query and update language that allows queries and modifications based on the internal structure of the document. For users who do not require advanced query, retrieval, or update capabilities, the distinction between document-oriented databases and key-value stores may be minimal. === Relationship to search engines === Some search engine and information retrieval systems, such as Apache Solr and Elasticsearch, provide document storage and support core document operations. As a result, they may meet certain functional definitions of a document-oriented database, although their primary design goals differ. === Relationship to relational databases === In a relational database, data is organized into predefined types represented as tables. Each table contains rows (records) with a fixed set of columns (fields), so all records in a table share the same structure. Administrators typically define indexes on selected fields to improve query performance. A central principle of relational database design is database normalization, in which data that might otherwise be repeated is stored in separate tables and linked using keys. When records in different tables are related, a foreign key is used to associate them. For example, an address book application may store a contact's name, image, phone numbers, mailing addresses, and email addresses. In a normalized relational design, separate tables might be created for contacts, phone numbers, and email addresses. The phone number table would include a foreign key referencing the associated contact. To reconstruct a complete contact record, the database retrieves related information from each table using the foreign keys and combines it into a single record. In contrast, a document-oriented database stores all data related to an object within a single document, and stored in the database as a single entry. In the address book example,the contact's name, image, and contact information may be stored together in one document. The document is retrieved using a unique key, and all related information is returned together, without needing to look up multiple tables. A key difference between the document-oriented and relational models is that the data formats are not predefined in the document case. In most cases, any sort of document can be stored in a database, and documents can change in type and form over time. For example, a new field such as COUNTRY_FLAG can be added to new documents as they are inserted without affecting existing documents. To aid retrieval, document-oriented systems generally allow the administrator to provide hints to the database for locating certain types of information. These hints work in a similar fashion to indexes in relational databases. Many systems also allow additional metadata outside the content of the document itself

    Read more →
  • AI-assisted virtualization software

    AI-assisted virtualization software

    AI-assisted virtualization software is a type of technology that combines the principles of virtualization with advanced artificial intelligence (AI) algorithms. This software is designed to improve efficiency and management of virtual environments and resources. This technology has been used in cloud computing and for various industries. == History == Virtualization originated in mainframe computers in the 1960s in order to divide system resources between different applications. The term has since broadened. The use of AI in virtualization significantly increased in the early 2020s. == Uses == AI-assisted virtualization software uses AI-related technology such as machine learning, deep learning, and neural networks to attempt to make more accurate predictions and decisions regarding the management of virtual environments. Features include intelligent automation, predictive analytics, and dynamic resource allocation. Intelligent Automation: Automating tasks such as resource provisioning and routine maintenance. The AI learns from ongoing operations and can predict and perform necessary tasks autonomously. Predictive Analytics: Utilizing AI to analyze data patterns and trends, predicting future issues or resource requirements. It aids in proactive management and mitigation of potential problems. Dynamic Resource Allocation: Through the analysis of real-time and historical data, the AI system dynamically assigns resources based on demand and need, optimizing overall system performance and reducing wastage. AI-assisted virtualization software has been used in cloud computing to optimize the use of resources and reduce costs. In healthcare, these technologies have been used to create virtual patient profiles. They are also used in data centers to improve performance and energy efficiency. It has also been used in network function virtualization (NFV) to improve virtual network infrastructure. Implementing this type of software requires a high degree of technological sophistication and can incur significant costs. There are also concerns about the risks associated with AI, such as algorithmic bias and security vulnerabilities. Additionally, there are issues related to governance, the ethics of artificial intelligence, and regulations of AI technologies.

    Read more →
  • Metaclass (knowledge representation)

    Metaclass (knowledge representation)

    In knowledge representation, particularly in the Semantic Web, a metaclass is a class whose instances can themselves be classes. Similar to their role in programming languages, metaclasses in ontology languages can have properties otherwise applicable only to individuals, while retaining the same class's ability to be classified in a concept hierarchy. This enables knowledge about instances of those metaclasses to be inferred by semantic reasoners using statements made in the metaclass. Metaclasses thus enhance the expressivity of knowledge representations in a way that can be intuitive for users. While classes are suitable to represent a population of individuals, metaclasses can, as one of their feature, be used to represent the conceptual dimension of an ontology. Metaclasses are supported in the Web Ontology Language (OWL) and the data-modeling vocabulary RDFS. Metaclasses are often modeled by setting them as the object of claims involving rdf:type and rdfs:subClassOf—built-in properties commonly referred to as instance of and subclass of. Instance of entails that the subject of the claim is an instance, i.e. an individual that is a member of a class. Subclass of entails that the subject is a class. In the context of instance of and subclass of, the key difference between metaclasses and ordinary classes is that metaclasses are the object of instance of claims used on a class, while ordinary classes are not objects of such claims. (e.g. in a claim Bob instance of Human, Bob is the subject and an Instance, while the object, Human, is an ordinary class; but a further claim that Human instance of Animal species makes "Animal species" a metaclass because it has a member, "Human", that is also a Class). OWL 2 DL supports metaclasses by a feature called punning, in which one entity is interpreted as two different types of thing—a class and an individual—depending on its syntactic context. For example, through punning, an ontology could have a concept hierarchy such as Harry the eagle instance of golden eagle, golden eagle subclass of bird, and golden eagle instance of species. In this case, the punned entity would be golden eagle, because it is represented as a class (second claim) and an instance (third claim); whereas the metaclass would be species, as it has an instance that is a class. Punning also enables other properties that would otherwise be applicable only to ordinary instances to be used directly on classes, for example "golden eagle conservation status least concern." Having arisen from the fields of knowledge representation, description logic and formal ontology, Semantic Web languages have a closer relationship to philosophical ontology than do conventional programming languages such as Java or Python. Accordingly, the nature of metaclasses is informed by philosophical notions such as abstract objects, the abstract and concrete, and type-token distinction. Metaclasses permit concepts to be construed as tokens of other concepts while retaining their ontological status as types. This enables types to be enumerated over, while preserving the ability to inherit from types. For example, metaclasses could allow a machine reasoner to infer from a human-friendly ontology how many elements are in the periodic table, or, given that number of protons is a property of chemical element and isotopes are a subclass of elements, how many protons exist in the isotope hydrogen-2. Metaclasses are sometime organized by levels, in a similar way to the simple Theory of types where classes that are not metaclasses are assigned the first level, classes of classes in the first level are in the second level, classes of classes in the second level on the next and so on. == Examples == Following the type-token distinction, real world objects such as Abraham Lincoln or the planet Mars are regrouped into classes of similar objects. Abraham Lincoln is said to be an instance of human, and Mars is an instance of planet. This is a kind of is-a relationship. Metaclasses are class of classes, such as for example the nuclide concept. In chemistry, atoms are often classified as elements and, more specifically, isotopes. The glass of water one last drank has many hydrogen atoms, each of which is an instance of hydrogen. Hydrogen itself, a class of atoms, is an instance of nuclide. Nuclide is a class of classes, hence a metaclass. == Implementations == === RDF and RDFS === In RDF, the rdf:type property is used to state that a resource is an instance of a class. This enables metaclasses to be easily created by using rdf:type in a chain-like fashion. For example, in the two triples the resource species is a metaclass, because golden eagle is used as a class in the first statement and the class golden eagle is said to be an instance of the class species in the second statement. This way of doing allows :species to have non-class instances. RDF also provides rdf:Property as a way to create properties beyond those defined in the built-in vocabulary. Properties can be used directly on metaclasses, for example "species quantity 8.7 million", where quantity is a property defined via rdf:Property and species is a metaclass per the preceding example above. RDFS, an extension of RDF, introduced rdfs:Class and rdfs:subClassOf and enriched how vocabularies can classify concepts. Whereas rdf:type enables vocabularies to represent instantiation, the property rdfs:subClassOf enables vocabularies to represent subsumption. RDFS thus makes it possible for vocabularies to represent taxonomies, also known as subsumption hierarchies or concept hierarchies, which is an important addition to the type–token distinction made possible by RDF. Notably, the resource rdfs:Class is an instance of itself, demonstrating both the use of metaclasses in the language's internal implementation and a reflexive usage of rdf:type. RDFS is its own metamodel. This allows a second way to express that a resource is a metaclass. A triple to instantiate rdfs:Class, for example :golden_eagle rdf:type rdfs:Class will declare :golden_eagle as a class. It's also possible to subclass the rdfs:Class resource to declare a meta-class resource, for example :species rdfs:SubclassOf. By deduction, any instance of :species is then a class, so it is a class with class-instances, a meta-class.. This second way does not allows non-class instances of species and explicitly declares :tpecies as a meta-class. === OWL === In some OWL flavors like OWL1-DL, entities can be either classes or instances, but cannot be both. This limitations forbids metaclasses and metamodeling. This is not the case in the OWL1 full flavor, but this allows the model to be computationally undecidable. In OWL2, metaclasses can implemented with punning, that is a way to treat classes as if they were individuals. Other approaches have also been proposed and used to check the properties of ontologies at a meta level. ==== Punning ==== OWL 2 supports metaclasses through a feature called punning. In metaclasses implemented by punning, the same subject is interpreted as two fundamentally different types of thing—a class and an individual—depending on its syntactic context. This is similar to a pun in natural language, where different senses of the same word are emphasized to illustrate a point. Unlike in natural language, where puns are typically used for comedic or rhetorical effect, the main goal of punning in Semantic Web technologies is to make concepts easier to represent, closer to how they are discussed in everyday speech or academic literature. Although OWL 2 permits the same symbol to assume different roles, its standard semantics (known as Direct Semantics) still interprets the symbol differently depending on whether it is used as an individual, a class, or a property. === Protégé === In the ontology editor Protégé, metaclasses are templates for other classes who are their instances. == Classification == Some ontologies like the Cyc AI project's classifies classes and metaclasses. Classes are divided into fixed-order classes and variable-order classes. In the case of fixed-order classes, an order is attributed for metaclasses by measuring the distance to individuals with respect to the number of "instance of" triples that are necessary to find an individual. Classes that are not metaclasses are classes of individuals, so their order is "1" (first-order classes). Metaclasses that are classes of first-order classes' order is "2" (second-order classes), and so on. Variable-order metaclasses, on the other hand, can have instances; one example of variable-order metaclass is the class of all fixed-order classes.

    Read more →
  • Diffbot

    Diffbot

    Diffbot is a developer of machine learning and computer vision algorithms and public APIs for extracting data from web pages / web scraping to create a knowledge base. == Overview == The company has gained interest from its application of computer vision technology to web pages, wherein it visually parses a web page for important elements and returns them in a structured format. In 2015 Diffbot announced it was working on its version of an automated "knowledge graph" by crawling the web and using its automatic web page extraction to build a large database of structured web data. In 2019 Diffbot released their Knowledge Graph which has since grown to include over two billion entities (corporations, people, articles, products, discussions, and more), and ten trillion "facts." == Features == The company's products allow software developers to analyze web home pages and article pages, and extract the "important information" while ignoring elements deemed not core to the primary content. In August 2012 the company released its Page Classifier API, which automatically categorizes web pages into specific "page types". As part of this, Diffbot analyzed 750,000 web pages shared on the social media service Twitter and revealed that photos, followed by articles and videos, are the predominant web media shared on the social network. In September 2020 the company released a Natural Language Processing API for automatically building Knowledge Graphs from text. The company raised $2 million in funding in May 2012 from investors including Andy Bechtolsheim and Sky Dayton. Diffbot's customers include Adobe, AOL, Cisco, DuckDuckGo, eBay, Instapaper, Microsoft, Onswipe and Springpad.

    Read more →
  • Automated storage and retrieval system

    Automated storage and retrieval system

    An automated storage and retrieval system (ASRS or AS/RS) consists of a variety of computer-controlled systems for automatically placing and retrieving loads from defined storage locations. Automated storage and retrieval systems (AS/RS) are typically used in applications where: There is a very high volume of loads being moved into and out of storage Storage density is important because of space constraints No value is added in this process (no processing, only storage and transport) Accuracy is critical because of potential expensive damages to the load An AS/RS can be used with standard loads as well as nonstandard loads, meaning that each standard load can fit in a uniformly-sized volume; for example, the film canisters in the image of the Defense Visual Information Center are each stored as part of the contents of the uniformly sized metal boxes, which are shown in the image. Standard loads simplify the handling of a request of an item. In addition, audits of the accuracy of the inventory of contents can be restricted to the contents of an individual metal box, rather than undergoing a top-to-bottom search of the entire facility, for a single item. They can also be used in self storage places. == Overview == AS/RS systems are designed for automated storage and retrieval of parts and items in manufacturing, distribution, retail, wholesale and institutions. They first originated in the 1960s, initially focusing on heavy pallet loads but with the evolution of the technology the handled loads have become smaller. The systems operate under computerized control, maintaining an inventory of stored items. Retrieval of items is accomplished by specifying the item type and quantity to be retrieved. The computer determines where in the storage area the item can be retrieved from and schedules the retrieval. It directs the proper automated storage and retrieval machine (SRM) to the location where the item is stored and directs the machine to deposit the item at a location where it is to be picked up. A system of conveyors and or automated guided vehicles is sometimes part of the AS/RS system. These take loads into and out of the storage area and move them to the manufacturing floor or loading docks. To store items, the pallet or tray is placed at an input station for the system, the information for inventory is entered into a computer terminal and the AS/RS system moves the load to the storage area, determines a suitable location for the item, and stores the load. As items are stored into or retrieved from the racks, the computer updates its inventory accordingly. The benefits of an AS/RS system include reduced labor for transporting items into and out of inventory, reduced inventory levels, more accurate tracking of inventory, and space savings. Items are often stored more densely than in systems where items are stored and retrieved manually. Within the storage, items can be placed on trays or hang from bars, which are attached to chains/drives in order to move up and down. The equipment required for an AS/RS include a storage & retrieval machine (SRM) that is used for rapid storage and retrieval of material. SRMs are used to move loads vertically or horizontally, and can also move laterally to place objects in the correct storage location. The trend towards Just In Time production often requires sub-pallet level availability of production inputs, and AS/RS is a much faster way of organizing the storage of smaller items next to production lines. The Material Handling Institute of America (MHIA), the non-profit trade association for the material handling world, and its members have categorised AS/RS into two primary segments: Fixed Aisle and Carousels/Vertical Lift Modules (VLMs). Both sets of technologies provide automated storage and retrieval for parts and items, but use different technologies. Each technology has its unique set of benefits and disadvantages. Fixed Aisle systems are characteristically larger systems whereas carousels and Vertical Lift Modules are used individually or grouped, but in small to medium-sized applications. A fixed-aisle AS/R machine (stacker crane) is one of two main designs: single-masted or double masted. Most are supported on a track and ceiling guided at the top by guide rails or channels to ensure accurate vertical alignment, although some are suspended from the ceiling. The 'shuttles' that make up the system travel between fixed storage shelves to deposit or retrieve a requested load (ranging from a single book in a library system to a several ton pallet of goods in a warehouse system). The entire unit moves horizontally within an aisle, while the shuttles are able to elevate up to the necessary height to reach the load, and can extend and retract to store or retrieve loads that are several positions deep in the shelving. A semi-automated system can be achieved by utilizing only specialized shuttles within an existing rack system. Another AS/RS technology is known as shuttle technology. In this technology the horizontal movement is made by independent shuttles each operating on one level of the rack while a lift at a fixed position within the rack is responsible for the vertical movement. By using two separate machines for these two axes the shuttle technology is able to provide higher throughput rates than stacker cranes. Storage and Retrieval Machines pick up or drop off loads to the rest of the supporting transportation system at specific stations, where inbound and outbound loads are precisely positioned for proper handling. In addition, there are several types of Automated Storage & Retrieval Systems (AS/RS) devices called Unit-load AS/RS, Mini-load AS/RS, Mid-Load AS/RS, Vertical Lift Modules (VLMs), Horizontal Carousels and Vertical Carousels. These systems are used either as stand-alone units or in integrated workstations called pods or systems. These units are usually integrated with various types of pick to light systems and use either a microprocessor controller for basic usage or inventory management software. These systems are ideal for increasing space utilization up to 90%, productivity levels by 90%, accuracy to 99.9%+ levels and throughput up to 750 lines per hour/per operator or more depending on the configuration of the system. == Horizontal carousels == Robotic Inserter/Extractor devices can be used for horizontal carousels. The robotic device is positioned in the front or rear of up to three horizontal carousels tiered high. The robot grabs the tote required in the order and often replenishes at the same time to speed up throughput. The tote(s) are then delivered to a conveyor, which routes it to a work station for picking or replenishing. Up to eight transactions per minute per unit can be done. Totes or containers up to 36" x 36" x 36" can be used in a system. On a simplistic level, horizontal carousels are also often used as "rotating shelving". With simple "fetch" command, items are brought to the operator and otherwise wasted space is eliminated. AS/RS Applications: Most applications of AS/RS technology have been associated with warehousing and distribution operations. An AS/RS can also be used to store raw materials and work in process in manufacturing. Three application areas can be distinguished for AS/RS: (1) Unit load storage and handling, (2) Order picking, and (3) Work in process storage. Unit load storage and retrieval applications are represented by unit load AS/RS and deep-lane storage systems. These kinds of applications are commonly found in warehousing for finishing goods in a distribution center, rarely in manufacturing. Deep-lane systems are used in the food industry. As described above, order picking involves retrieving materials in less than full unit load quantities. Minilpass, man-on board, and items retrieval systems are used for this second application area. Work in process storage is a more recent application of automated storage technology. While it is desirable to minimize the amount of work in process, WIP is unavoidable and must be effectively managed. Automated storage systems, either automated storage/retrieval systems or carousel systems, represent an efficient way to store materials between processing steps, particularly in batch and job shop production. In high production, work in process is often carried between operations by conveyor system, which this serve both storage and transport functions. === Inventory Category-specific AS/RS === Each inventory category—raw materials, work-in-process, and finished goods—requires its own specialized Automated Storage and Retrieval System (AS/RS). Particularly for work-in-process (WIP) inventories, due to variations in manufacturing processes, the AS/RS systems are significantly different in design and function, tailored specifically to match unique handling, storage, and retrieval requirements === Installed applications === Installed applications of this technology can be wide-ranging. In some librarie

    Read more →
  • MuZero

    MuZero

    MuZero is a computer program developed by artificial intelligence research company DeepMind, a subsidiary of Google, to master games without knowing their rules and underlying dynamics. Its release in 2019 included benchmarks of its performance in Go, chess, shogi, and a suite of 57 different Atari games. The algorithm uses an approach similar to AlphaZero, where a combination of a tree-based search and a learned model is deployed. It matched AlphaZero's performance in chess and shogi, improved on its performance in Go, and improved on the state of the art in mastering a suite of 57 Atari games (the Arcade Learning Environment), a visually-complex domain. MuZero was trained via self-play, with no access to rules, opening books, or endgame tablebases. The trained algorithm used the same convolutional and residual architecture as AlphaZero, but with 20 percent fewer computation steps per node in the search tree. == History == MuZero really is discovering for itself how to build a model and understand it just from first principles. On November 19, 2019, the DeepMind team released a preprint introducing MuZero. === Derivation from AlphaZero === MuZero (MZ) is a combination of the high-performance planning of the AlphaZero (AZ) algorithm with approaches to model-free reinforcement learning. The combination allows for more efficient training in classical planning regimes, such as Go, while also handling domains with much more complex inputs at each stage, such as visual video games. MuZero was derived directly from AZ code, sharing its rules for setting hyperparameters. Differences between the approaches include: AZ's planning process uses a simulator. The simulator knows the rules of the game. It has to be explicitly programmed. A neural network then predicts the policy and value of a future position. Perfect knowledge of game rules is used in modeling state transitions in the search tree, actions available at each node, and termination of a branch of the tree. MZ does not have access to the rules, and instead learns one with neural networks. AZ has a single model for the game (from board state to predictions); MZ has separate models for representation of the current state (from board state into its internal embedding), dynamics of states (how actions change representations of board states), and prediction of policy and value of a future position (given a state's representation). MZ's hidden model may be complex, and it may turn out it can host computation; exploring the details of the hidden model in a trained instance of MZ is a topic for future exploration. MZ does not expect a two-player game where winners take all. It works with standard reinforcement-learning scenarios, including single-agent environments with continuous intermediate rewards, possibly of arbitrary magnitude and with time discounting. AZ was designed for two-player games that could be won, drawn, or lost. === Comparison with R2D2 === The previous state of the art technique for learning to play the suite of Atari games was R2D2, the Recurrent Replay Distributed DQN. MuZero surpassed both R2D2's mean and median performance across the suite of games, though it did not do better in every game. == Training and results == MuZero used 16 third-generation tensor processing units (TPUs) for training, and 1000 TPUs for selfplay for board games, with 800 simulations per step and 8 TPUs for training and 32 TPUs for selfplay for Atari games, with 50 simulations per step. AlphaZero used 64 second-generation TPUs for training, and 5000 first-generation TPUs for selfplay. As TPU design has improved (third-generation chips are 2x as powerful individually as second-generation chips, with further advances in bandwidth and networking across chips in a pod), these are comparable training setups. R2D2 was trained for 5 days through 2M training steps. === Initial results === MuZero matched AlphaZero's performance in chess and shogi after roughly 1 million training steps. It matched AZ's performance in Go after 500,000 training steps and surpassed it by 1 million steps. It matched R2D2's mean and median performance across the Atari game suite after 500 thousand training steps and surpassed it by 1 million steps, though it never performed well on 6 games in the suite. == Reactions and related work == MuZero was viewed as a significant advancement over AlphaZero, and a generalizable step forward in unsupervised learning techniques. The work was seen as advancing understanding of how to compose systems from smaller components, a systems-level development more than a pure machine-learning development. While only pseudocode was released by the development team, Werner Duvaud produced an open source implementation based on that. MuZero has been used as a reference implementation in other work, for instance as a way to generate model-based behavior. In late 2021, a more efficient variant of MuZero was proposed, named EfficientZero. It "achieves 194.3 percent mean human performance and 109.0 percent median performance on the Atari 100k benchmark with only two hours of real-time game experience". In early 2022, a variant of MuZero was proposed to play stochastic games (for example 2048, backgammon), called Stochastic MuZero, which uses afterstate dynamics and chance codes to account for the stochastic nature of the environment when training the dynamics network.

    Read more →
  • LightGBM

    LightGBM

    LightGBM, short for Light Gradient-Boosting Machine, is a free and open-source distributed gradient-boosting framework for machine learning, originally developed by Microsoft. It is based on decision tree algorithms and used for ranking, classification and other machine learning tasks. The development focus is on performance and scalability. == Overview == The LightGBM framework supports different algorithms including GBT, GBDT, GBRT, GBM, MART and RF. LightGBM has many of XGBoost's advantages, including sparse optimization, parallel training, multiple loss functions, regularization, bagging, and early stopping. A major difference between the two lies in the construction of trees. LightGBM does not grow a tree level-wise — row by row — as most other implementations do. Instead it grows trees leaf-wise. It will choose the leaf with max delta loss to grow. Besides, LightGBM does not use the widely used sorted-based decision tree learning algorithm, which searches the best split point on sorted feature values, as XGBoost or other implementations do. Instead, LightGBM implements a highly optimized histogram-based decision tree learning algorithm, which yields great advantages on both efficiency and memory consumption. The LightGBM algorithm utilizes two novel techniques called Gradient-Based One-Side Sampling (GOSS) and Exclusive Feature Bundling (EFB) which allow the algorithm to run faster while maintaining a high level of accuracy. LightGBM works on Linux, Windows, and macOS and supports C++, Python, R, and C#. The source code is licensed under MIT License and available on GitHub. == Gradient-based one-side sampling == When using gradient descent, one thinks about the space of possible configurations of the model as a valley, in which the lowest part of the valley is the model which most closely fits the data. In this metaphor, one walks in different directions to learn how much lower the valley becomes. Typically, in gradient descent, one uses the whole set of data to calculate the valley's slopes. However, this commonly used method assumes that every data point is equally informative. By contrast, Gradient-Based One-Side Sampling (GOSS), a method first developed for gradient-boosted decision trees, does not rely on the assumption that all data are equally informative. Instead, it treats data points with smaller gradients (shallower slopes) as less informative by randomly dropping them. This is intended to filter out data which may have been influenced by noise, allowing the model to more accurately model the underlying relationships in the data. == Exclusive feature bundling == Exclusive feature bundling (EFB) is a near-lossless method to reduce the number of effective features. In a sparse feature space many features are nearly exclusive, implying they rarely take nonzero values simultaneously. One-hot encoded features are a perfect example of exclusive features. EFB bundles these features, reducing dimensionality to improve efficiency while maintaining a high level of accuracy. The bundle of exclusive features into a single feature is called an exclusive feature bundle.

    Read more →
  • MindSpore

    MindSpore

    MindSpore is an open-source software framework for deep learning, machine learning and artificial intelligence developed by Huawei. == Overview == MindSpore provides support for Python by allowing users to define models, control flow, and custom operators using native Python syntax. Unlike graph-based frameworks that require users to learn DSL or complex APIs, MindSpore adopts a source-to-source (S2S) automatic differentiation approach, allowing Python code to be automatically transformed into optimized computational graphs. It has support for custom OpenHarmony-based HarmonyOS NEXT single core framework system built for HarmonyOS, includes an AI system stack that comes with Huawei's built LLM model called PanGu-Σ with full MindSpore framework support. Alongside, OpenHarmony Native device-side AI support for training interface and ArkTS programming interface for its NNRt (Neural Network Runtime) backend configurations via MindSpore Lite AI framework codebase introduced in API 11 Beta 1 of OpenHarmony 4.1. MindSpore platform runs on Ascend AI chips and Kirin alongside other HiSilicon NPU chips. CANN (Compute Architecture of Neural Networks), heterogeneous computing architecture for AI developed by Huawei. With CANN backend in OpenCV DNN, giving developers ability to run created AI models on the Ascend, Kirin and other HiSilicon NPU enabled chips. It supports cross platform development such as Android, iOS, Windows, global OpenHarmony-based distro, Eclipse Oniro, Linux-based EulerOS alongside OpenEuler Huawei's server OS platforms, macOS and Linux. == History == On April 24, 2024, Huawei's MindSpore 2.3.RC1 was released to open source community with Foundation Model Training, Full-Stack Upgrade of Foundation Model Inference, Static Graph Optimization, IT Features and new MindSpore Elec MT (MindSpore-powered magnetotelluric) Intelligent Inversion Model.

    Read more →
  • Wilkinson's Grammar of Graphics

    Wilkinson's Grammar of Graphics

    The Grammar of Graphics (GoG) is a grammar-based system for representing graphics to provide grammatical constraints on the composition of data and information visualizations. A graphical grammar differs from a graphics pipeline as it focuses on semantic components such as scales and guides, statistical functions, coordinate systems, marks and aesthetic attributes. For example, a bar chart can be converted into a pie chart by specifying a polar coordinate system without any other change in graphical specification. The grammar of graphics concept was launched by Leland Wilkinson in 2001 (Wilkinson et al., 2001; Wilkinson, 2005) and graphical grammars have since been written in a variety of languages with various parameterisations and extensions. The major implementations of graphical grammars are nViZn created by a team at SPSS/IBM, followed by Polaris focusing on multidimensional relational databases which is commercialised as Tableau, a revised Layered Grammar of Graphics by Hadley Wickham in Ggplot2, and Vega-Lite which is a visualisation grammar with added interactivity. The grammar of graphics continues to evolve with alternate parameterisations, extensions, or new specifications. == Wilkinson's Grammar of Graphics == === Theory === Wilkinson conceived the seven elements of a graphics to be Variables: mapping of objects to values represented in a graphic Algebra: operations to combine variables and specify dimensions of graphs Geometry: creation of geometric graphs from variables Aesthetics: sensory attributes Statistics: functions to change the appearance and representation of graphs Scales: represent variables on measured dimensions Coordinates: mapping to coordinate systems With these, Wilkinson hypothesised that These seven constructs are orthogonal and virtually all known statistical charts can be generated relatively parsimoniously This computational system is not a taxonomy of charts and rather it describes the meaning of what we do when we construct statistical graphics. === Implementations === Wilkinson wrote SYSTAT, a statistical software package, in the early 1980s. This program was noted for its comprehensive graphics, including the first software implementation of the heatmap display now widely used among biologists. After his company grew to 50 employees, he sold it to SPSS in 1995. At SPSS, he assembled a team of graphics programmers who developed the nViZn platform that produces the visualizations in SPSS, Clementine, and other analytics products. While at Stanford, Tableau founders Hanrahan and Stolte, as well as Diane Tang, created the predecessor to Tableau, named Polaris. Polaris was a data visualization software tool, built with the support of a United States Department of Energy defense program, the Accelerated Strategic Computing Initiative (ASCI). The main differences between Wilkinson's system and Polaris are the use of SQL relational algebra for database services and using shelves instead of cross and nest operators. == Wickham's Layered Grammar of Graphics == === Theory === Hadley Wickham conceived an alternate parameterisation of the syntax Wilkinson had derived, creating a layered grammar of graphics which he implemented as ggplot2 for R (programming language) users. This added a hierarchy of defaults based around the idea of building up a graphic from multiple layers. Wickham conceived these elements to be: Defaults: consists of data and mapping Data: dataset Mapping: aesthetic mappings Layer: consists of data, mapping, geom, stat, and position Data: dataset, or inherit from defaults Mapping: aesthetic mappings, or inherit from defaults Geom: geometric object Stat: statistical transformation Position: position adjustment Scale: mapping of data to aesthetic attributes Coord: mapping of data to the plane of the plot Facet: split up the data === Reception === Wilkinson is generally positive on Wickham's parameterisation and implementation of ggplot2, praising its elegance and expressivity whilst claiming that his original Grammar of Graphics is capable of representing a wider range of statistical graphics. === Implementations === ggplot2 is the first implementation of a layered grammar of graphics in R and implementations in other programming languages have ensued. These include direct ports plotnine for Python, gramm for MATLAB, Lets-Plot for Kotlin and gadfly for Julia. Projects inspired by elements of Wickham's grammar include Vega-Lite which specifies plots in JSON and uses a JavaScript engine. Implementations for Python include Vega-Altair (built on top of Vega-Lite). == Vega-Lite: A Grammar of Interactive Graphics == === Theory === Vega-Lite combines ideas from Wilkinson's Grammar of Graphics and Wickham's Layered Grammar of Graphics with a composition algebra for layered and multi-view displays with a grammar of interaction. The Vega-Lite specification is instantiated in JSON and rendered by the lower-level Vega. The graphical grammar implemented by Vega-Lite is composed of the following: Unit: consists of data, transforms, mark-type and encoding Data: relational table consisting of records (rows) and named attributes (columns) Transforms: data transformations Mark-type: geometric object for visual encoding Encodings: mapping of data attributes to visual marks properties where each encoding consists of: Channel: e.g. colour, shape, size, or text Field: data attribute Data-type: e.g. nominal, ordinal, quantitative, or temporal Value: use a literal instead of a data-type Functions: e.g. binning, aggregation, and sorting Scale: maps from data domain to visual range Guide: axis or legend for visualising scale Composite Views: compose views from multiple unit specifications with operators: Layer: charts plotted on top of each other Hconcat/Vconcat: place views side-by-side Facet: subset data to produce a trellis plot Repeat: multiple plots similar to facet but with full data replication in each cell Interaction: selections identify the set of points a user is interested in manipulating, with components: Selection: get the minimal number of backing points Name: reference Type: how many backing values are stored Predicate: determine the set of selected points e.g. single, list, interval Domain|Range: store data domain or visual range Event: e.g. mouseover, mousedown, mouseup, Init: initialise with specific backing points Transforms: e.g. project, toggle, translate, zoom, and nearest Resolve: resolve selections to union or intersect ==== Implementations ==== Whilst Vega-Lite is the sole implementation of this graphics grammar specification with compilation to Vega, other implementations do create JSON files which can be interpreted by Vega-Lite. == Related projects == Ggplot2 is an R package for plotting Tableau Software (originally known as Polaris) is a commercial software built using the Grammar of Graphics nViZn built by Wilkinson. SYSTAT (statistics package) built by Wilkinson ggpy, ggplot for Python, but has not been updated since 20 November 2016 plotnine started as an effort to improve the scalability of ggplot for Python and is largely compatible with ggplot2 syntax. Plotly - Interactive, online ggplot2 graphs gramm, a plotting class for MATLAB inspired by ggplot2 gadfly, a system for plotting and visualization written in Julia, based largely on ggplot2 Chart::GGPlot - ggplot2 port in Perl, but has not been updated since 16 March 2023 The Lets-Plot for Python library includes a native backend and a Python API, which was mostly based on the ggplot2 package. Lets-Plot Kotlin API is an open-source plotting library for statistical data implemented using the Kotlin programming language, and is built on the principles of layered graphics first described in the Leland Wilkinson's work The Grammar of Graphics. ggplotnim, plotting library using the Nim programming language inspired by ggplot2. Vega and Vega-Lite are plotting libraries that use JSON to specify plots. Vega-Altair, a Python library built on top of Vega-Lite chart-parts - React-friendly Grammar of Graphics, but has not been updated since 10 Dec 2021 g2 - a JavaScript library

    Read more →
  • Resilience (mathematics)

    Resilience (mathematics)

    In mathematical modeling, resilience refers to the ability of a dynamical system to recover from perturbations and return to its original stable steady state. It is a measure of the stability and robustness of a system in the face of changes or disturbances. If a system is not resilient enough, it is more susceptible to perturbations and can more easily undergo a critical transition. A common analogy used to explain the concept of resilience of an equilibrium is one of a ball in a valley. A resilient steady state corresponds to a ball in a deep valley, so any push or perturbation will very quickly lead the ball to return to the resting point where it started. On the other hand, a less resilient steady state corresponds to a ball in a shallow valley, so the ball will take a much longer time to return to the equilibrium after a perturbation. The concept of resilience is particularly useful in systems that exhibit tipping points, whose study has a long history that can be traced back to catastrophe theory. While this theory was initially overhyped and fell out of favor, its mathematical foundation remains strong and is now recognized as relevant to many different systems. == History == In 1973, Canadian ecologist C. S. Holling proposed a definition of resilience in the context of ecological systems. According to Holling, resilience is "a measure of the persistence of systems and of their ability to absorb change and disturbance and still maintain the same relationships between populations or state variables". Holling distinguished two types of resilience: engineering resilience and ecological resilience. Engineering resilience refers to the ability of a system to return to its original state after a disturbance, such as a bridge that can be repaired after an earthquake. Ecological resilience, on the other hand, refers to the ability of a system to maintain its identity and function despite a disturbance, such as a forest that can regenerate after a wildfire while maintaining its biodiversity and ecosystem services. With time, the once well-defined and unambiguous concept of resilience has experienced a gradual erosion of its clarity, becoming more vague and closer to an umbrella term than a specific concrete measure. == Definition == Mathematically, resilience can be approximated by the inverse of the return time to an equilibrium given by resilience ≡ − Re ( λ 1 ( A ) ) {\displaystyle {\text{resilience}}\equiv -{\text{Re}}(\lambda _{1}({\textbf {A}}))} where λ 1 {\textstyle \lambda _{1}} is the maximum eigenvalue of matrix A {\textstyle {\textbf {A}}} . The largest this value is, the faster a system returns to the original stable steady state, or in other words, the faster the perturbations decay. == Applications and examples == In ecology, resilience might refer to the ability of the ecosystem to recover from disturbances such as fires, droughts, or the introduction of invasive species. A resilient ecosystem would be one that is able to adapt to these changes and continue functioning, while a less resilient ecosystem might experience irreversible damage or collapse. The exact definition of resilience has remained vague for practical matters, which has led to a slow and proper application of its insights for management of ecosystems. In epidemiology, resilience may refer to the ability of a healthy community to recover from the introduction of infected individuals. That is, a resilient system is more likely to remain at the disease-free equilibrium after the invasion of a new infection. Some stable systems exhibit critical slowing down where, as they approach a basic reproduction number of 1, their resilience decreases, hence taking a longer time to return to the disease-free steady state. Resilience is an important concept in the study of complex systems, where there are many interacting components that can affect each other in unpredictable ways. Mathematical models can be used to explore the resilience of such systems and to identify strategies for improving their resilience in the face of environmental or other changes. For example, when modelling networks it is often important to be able to quantify network resilience, or network robustness, to the loss of nodes. Scale-free networks are particularly resilient since most of their nodes have few links. This means that if some nodes are randomly removed, it is more likely that the nodes with fewer connections are taken out, thus preserving the key properties of the network.

    Read more →
  • Hive (artificial intelligence company)

    Hive (artificial intelligence company)

    Hive is an American artificial intelligence company offering machine learning models via APIs to enterprise customers. Hive uses around 700,000 gig workers to train data for its models through its Hive Work app. One of Hive's major offerings is to provide automated content moderation services. == Products == Hive is reported to have been engaged to provide content moderation services to social news aggregator Reddit, Giphy, BeReal, Donald Trump-affiliated social network Truth Social, and on online chat website Chatroulette. Parler, after its shutdown by content service providers in early 2021 due to a lack of content moderation, integrated with Hive and was allowed back in the App Store. Hive's content moderation models have been leveraged widely in the livestreaming industry, where the cost of human moderation is high. Hive's models have also been used in events such as the Super Bowl and March Madness, and its contextual advertising models used by NBC Universal and Vevo. Hive provides APIs to detect deepfakes and AI-generated artwork. In early 2023, Hive released a free demo text classifier intended to detect AI-generated text. Mark Hachman at PC World rated Hive's classifier favorably and found it more reliable than OpenAI's AI text classifier. == History == Hive was founded by Kevin Guo and Dmitriy Karpman, and in April 2021, announced $85M in new capital at a valuation of $2 billion.

    Read more →