AI Excel Spreadsheet Maker

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

  • Elements (toolchain)

    Elements (toolchain)

    RemObjects Elements is a toolchain for software development, comprising six programming languages: C#, Swift, Go, Java, Oxygene (a form of modern Object Pascal), and Visual Basic .NET. All languages interoperate, meaning a single project can use any combination of languages, and they can all be compiled to .NET, the JVM, native, or WebAssembly. Elements supports Microsoft Windows, all Apple Inc. platforms (including iOS, visionOS and watchOS), Android, and Linux. Elements also supports language conversion, allowing source code in one language to be rewritten in another. Elements is supported in Visual Studio, but RemObjects also makes their own IDEs, Fire (on MacOS) and Water (on Windows.) == Background == RemObjects began in 2002, creating software for Delphi, but in 2005 in response to the growth of .NET and that Delphi was targeting only native Windows, they released Oxygene (known as Chrome at the time) as a new version of Object Pascal, with more modern syntax as well as being .NET-native. Since then, five other languages have been added to the suite, as well as compiling for the web via WebAssembly and to native architectures (eg Intel 32/64 or ARM64). Elements is primarily intended for developers who want to pull together libraries and codebases written in multiple languages, including legacy codebases in older languages while modernizing either with newer syntax and features or by adding in the use of newer or more popular languages. Because of the Oxygene flavour of Object Pascal, supporting Delphi apps is a primary focus, including allowing Pascal to be compiled for other architectures or providing language features that match other prominent languages. == Approach == New versions of the Elements come out approximately every week. RemObjects names its programming languages after chemical elements, sometimes with poetic or musical spelling, rather than referring to them directly. They are: C#: Hydrogene Object Pascal: Oxygene Java: Iodine Visual Basic: Mercury Go: Gold Swift: Silver == History == The Elements compiler was first introduced with version 1.0 in 2005 under the name "Chrome", with support for only the Oxygene language on the .NET platform, primarily as a response to the then-new and not well-received Delphi .NET compiler from Embarcadero. Chrome saw updates to version 1.5 'Floorshow' and Chrome 2.0 'Joyride' over the next few years, moving in parallel with major advancements on the .NET platform for .NET 2.0 (Generics) and .NET 3.x (LINQ), respectively. With the release of version 3.0 (code-named Oxygène after the Jean-Michel Jarre album of the same name) Chrome was rebranded to Oxygene in 2008, and also shipped co-branded by Embarcadero as Delphi Prism (later just Prism) as part of RAD Studio, replacing Embarcadero's own and now-defunct Delphi.NET compiler. 2010 saw the release of Oxygene 4 ("Echoes"), the last version to focus on just a single language and platform. With Oxygene 5 in 2011 and Oxygene 6 in 2013, RemObjects introduced new platform support for Java/Android (code-name "Cooper") and then Cocoa, the Apple development platform (code-name "Toffee"). Elements 7.0 was released at the beginning of 2014, adding the second programming language, C# to the compiler, and delegating Oxygene from the product name to merely branding the Object Pascal-based language. Over the subsequent years, Elements gained support for additional languages, with Apple Swift in 2015, Java in 2017, and subsequently Google's Go and Mercury, a revitalized Visual Basic.NET. Elements also gained support for its fourth target platform, "Island", for CPU-native compilation for Windows, Linux, and WebAssembly. In addition to the chemical elements-based names for the different languages, the "Elements" concept was carried on with the introduction of dedicated development environments alchemically named Fire (for the Mac, in 2015) and Water (for Windows, in 2018). == Fire and Water (IDEs) == Fire and Water are integrated development environments developed by RemObjects Software. They are designed specifically for use with the Elements Compiler. Fire is the version developed for macOS, while Water is intended for Microsoft Windows. Both IDEs are designed to work closely with the Elements compiler and are primarily intended for developers using the RemObjects language ecosystem. They support software development across multiple platforms, including .NET, Android, iOS, macOS, Windows, Linux, and WebAssembly. The IDEs include standard development tools such as syntax highlighting, code completion, debugging, and project navigation. Build operations are managed using a custom system known as EBuild, which is part of the broader Elements toolchain. The IDEs are distributed as part of the RemObjects Elements package and are updated in coordination with the compiler itself. == In media == Oxygene has been mentioned several times by Verity Stob in their Chronicles of Delphi series, currently living at The Register.

    Read more →
  • Batch normalization

    Batch normalization

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

    Read more →
  • Fuzzy measure theory

    Fuzzy measure theory

    In mathematics, fuzzy measure theory considers generalized measures in which the additive property is replaced by the weaker property of monotonicity. The central concept of fuzzy measure theory is the fuzzy measure (also capacity, see ), which was introduced by Choquet in 1953 and independently defined by Sugeno in 1974 in the context of fuzzy integrals. There exists a number of different classes of fuzzy measures including plausibility/belief measures, possibility/necessity measures, and probability measures, which are a subset of classical measures. == Definitions == Let X {\displaystyle \mathbf {X} } be a universe of discourse, C {\displaystyle {\mathcal {C}}} be a class of subsets of X {\displaystyle \mathbf {X} } , and E , F ∈ C {\displaystyle E,F\in {\mathcal {C}}} . A function g : C → R {\displaystyle g:{\mathcal {C}}\to \mathbb {R} } where ∅ ∈ C ⇒ g ( ∅ ) = 0 {\displaystyle \emptyset \in {\mathcal {C}}\Rightarrow g(\emptyset )=0} E ⊆ F ⇒ g ( E ) ≤ g ( F ) {\displaystyle E\subseteq F\Rightarrow g(E)\leq g(F)} is called a fuzzy measure. A fuzzy measure is called normalized or regular if g ( X ) = 1 {\displaystyle g(\mathbf {X} )=1} . == Properties of fuzzy measures == A fuzzy measure is: additive if for any E , F ∈ C {\displaystyle E,F\in {\mathcal {C}}} such that E ∩ F = ∅ {\displaystyle E\cap F=\emptyset } , we have g ( E ∪ F ) = g ( E ) + g ( F ) . {\displaystyle g(E\cup F)=g(E)+g(F).} ; supermodular if for any E , F ∈ C {\displaystyle E,F\in {\mathcal {C}}} , we have g ( E ∪ F ) + g ( E ∩ F ) ≥ g ( E ) + g ( F ) {\displaystyle g(E\cup F)+g(E\cap F)\geq g(E)+g(F)} ; submodular if for any E , F ∈ C {\displaystyle E,F\in {\mathcal {C}}} , we have g ( E ∪ F ) + g ( E ∩ F ) ≤ g ( E ) + g ( F ) {\displaystyle g(E\cup F)+g(E\cap F)\leq g(E)+g(F)} ; superadditive if for any E , F ∈ C {\displaystyle E,F\in {\mathcal {C}}} such that E ∩ F = ∅ {\displaystyle E\cap F=\emptyset } , we have g ( E ∪ F ) ≥ g ( E ) + g ( F ) {\displaystyle g(E\cup F)\geq g(E)+g(F)} ; subadditive if for any E , F ∈ C {\displaystyle E,F\in {\mathcal {C}}} such that E ∩ F = ∅ {\displaystyle E\cap F=\emptyset } , we have g ( E ∪ F ) ≤ g ( E ) + g ( F ) {\displaystyle g(E\cup F)\leq g(E)+g(F)} ; symmetric if for any E , F ∈ C {\displaystyle E,F\in {\mathcal {C}}} , we have | E | = | F | {\displaystyle |E|=|F|} implies g ( E ) = g ( F ) {\displaystyle g(E)=g(F)} ; Boolean if for any E ∈ C {\displaystyle E\in {\mathcal {C}}} , we have g ( E ) = 0 {\displaystyle g(E)=0} or g ( E ) = 1 {\displaystyle g(E)=1} . Understanding the properties of fuzzy measures is useful in application. When a fuzzy measure is used to define a function such as the Sugeno integral or Choquet integral, these properties will be crucial in understanding the function's behavior. For instance, the Choquet integral with respect to an additive fuzzy measure reduces to the Lebesgue integral. In discrete cases, a symmetric fuzzy measure will result in the ordered weighted averaging (OWA) operator. Submodular fuzzy measures result in convex functions, while supermodular fuzzy measures result in concave functions when used to define a Choquet integral. == Möbius representation == Let g be a fuzzy measure. The Möbius representation of g is given by the set function M, where for every E , F ⊆ X {\displaystyle E,F\subseteq X} , M ( E ) = ∑ F ⊆ E ( − 1 ) | E ∖ F | g ( F ) . {\displaystyle M(E)=\sum _{F\subseteq E}(-1)^{|E\backslash F|}g(F).} The equivalent axioms in Möbius representation are: M ( ∅ ) = 0 {\displaystyle M(\emptyset )=0} . ∑ F ⊆ E | i ∈ F M ( F ) ≥ 0 {\displaystyle \sum _{F\subseteq E|i\in F}M(F)\geq 0} , for all E ⊆ X {\displaystyle E\subseteq \mathbf {X} } and all i ∈ E {\displaystyle i\in E} A fuzzy measure in Möbius representation M is called normalized if ∑ E ⊆ X M ( E ) = 1. {\displaystyle \sum _{E\subseteq \mathbf {X} }M(E)=1.} Möbius representation can be used to give an indication of which subsets of X interact with one another. For instance, an additive fuzzy measure has Möbius values all equal to zero except for singletons. The fuzzy measure g in standard representation can be recovered from the Möbius form using the Zeta transform: g ( E ) = ∑ F ⊆ E M ( F ) , ∀ E ⊆ X . {\displaystyle g(E)=\sum _{F\subseteq E}M(F),\forall E\subseteq \mathbf {X} .} == Simplification assumptions for fuzzy measures == Fuzzy measures are defined on a semiring of sets or monotone class, which may be as granular as the power set of X, and even in discrete cases the number of variables can be as large as 2|X|. For this reason, in the context of multi-criteria decision analysis and other disciplines, simplification assumptions on the fuzzy measure have been introduced so that it is less computationally expensive to determine and use. For instance, when it is assumed the fuzzy measure is additive, it will hold that g ( E ) = ∑ i ∈ E g ( { i } ) {\displaystyle g(E)=\sum _{i\in E}g(\{i\})} and the values of the fuzzy measure can be evaluated from the values on X. Similarly, a symmetric fuzzy measure is defined uniquely by |X| values. Two important fuzzy measures that can be used are the Sugeno- or λ {\displaystyle \lambda } -fuzzy measure and k-additive measures, introduced by Sugeno and Grabisch respectively. === Sugeno λ-measure === The Sugeno λ {\displaystyle \lambda } -measure is a special case of fuzzy measures defined iteratively. It has the following definition: ==== Definition ==== Let X = { x 1 , … , x n } {\displaystyle \mathbf {X} =\left\lbrace x_{1},\dots ,x_{n}\right\rbrace } be a finite set and let λ ∈ ( − 1 , + ∞ ) {\displaystyle \lambda \in (-1,+\infty )} . A Sugeno λ {\displaystyle \lambda } -measure is a function g : 2 X → [ 0 , 1 ] {\displaystyle g:2^{X}\to [0,1]} such that g ( X ) = 1 {\displaystyle g(X)=1} . if A , B ⊆ X {\displaystyle A,B\subseteq \mathbf {X} } (alternatively A , B ∈ 2 X {\displaystyle A,B\in 2^{\mathbf {X} }} ) with A ∩ B = ∅ {\displaystyle A\cap B=\emptyset } then g ( A ∪ B ) = g ( A ) + g ( B ) + λ g ( A ) g ( B ) {\displaystyle g(A\cup B)=g(A)+g(B)+\lambda g(A)g(B)} . As a convention, the value of g at a singleton set { x i } {\displaystyle \left\lbrace x_{i}\right\rbrace } is called a density and is denoted by g i = g ( { x i } ) {\displaystyle g_{i}=g(\left\lbrace x_{i}\right\rbrace )} . In addition, we have that λ {\displaystyle \lambda } satisfies the property λ + 1 = ∏ i = 1 n ( 1 + λ g i ) {\displaystyle \lambda +1=\prod _{i=1}^{n}(1+\lambda g_{i})} . Tahani and Keller as well as Wang and Klir have shown that once the densities are known, it is possible to use the previous polynomial to obtain the values of λ {\displaystyle \lambda } uniquely. === k-additive fuzzy measure === The k-additive fuzzy measure limits the interaction between the subsets E ⊆ X {\displaystyle E\subseteq X} to size | E | = k {\displaystyle |E|=k} . This drastically reduces the number of variables needed to define the fuzzy measure, and as k can be anything from 1 (in which case the fuzzy measure is additive) to X, it allows for a compromise between modelling ability and simplicity. ==== Definition ==== A discrete fuzzy measure g on a set X is called k-additive ( 1 ≤ k ≤ | X | {\displaystyle 1\leq k\leq |\mathbf {X} |} ) if its Möbius representation verifies M ( E ) = 0 {\displaystyle M(E)=0} , whenever | E | > k {\displaystyle |E|>k} for any E ⊆ X {\displaystyle E\subseteq \mathbf {X} } , and there exists a subset F with k elements such that M ( F ) ≠ 0 {\displaystyle M(F)\neq 0} . == Shapley and interaction indices == In game theory, the Shapley value or Shapley index is used to indicate the weight of a game. Shapley values can be calculated for fuzzy measures in order to give some indication of the importance of each singleton. In the case of additive fuzzy measures, the Shapley value will be the same as each singleton. For a given fuzzy measure g, and | X | = n {\displaystyle |\mathbf {X} |=n} , the Shapley index for every i , … , n ∈ X {\displaystyle i,\dots ,n\in X} is: ϕ ( i ) = ∑ E ⊆ X ∖ { i } ( n − | E | − 1 ) ! | E | ! n ! [ g ( E ∪ { i } ) − g ( E ) ] . {\displaystyle \phi (i)=\sum _{E\subseteq \mathbf {X} \backslash \{i\}}{\frac {(n-|E|-1)!|E|!}{n!}}[g(E\cup \{i\})-g(E)].} The Shapley value is the vector ϕ ( g ) = ( ψ ( 1 ) , … , ψ ( n ) ) . {\displaystyle \mathbf {\phi } (g)=(\psi (1),\dots ,\psi (n)).}

    Read more →
  • Uncertain inference

    Uncertain inference

    Uncertain inference was first described by C. J. van Rijsbergen as a way to formally define a query and document relationship in Information retrieval. This formalization is a logical implication with an attached measure of uncertainty. == Definitions == Rijsbergen proposes that the measure of uncertainty of a document d to a query q be the probability of its logical implication, i.e.: P ( d → q ) {\displaystyle P(d\to q)} A user's query can be interpreted as a set of assertions about the desired document. It is the system's task to infer, given a particular document, if the query assertions are true. If they are, the document is retrieved. In many cases the contents of documents are not sufficient to assert the queries. A knowledge base of facts and rules is needed, but some of them may be uncertain because there may be a probability associated to using them for inference. Therefore, we can also refer to this as plausible inference. The plausibility of an inference d → q {\displaystyle d\to q} is a function of the plausibility of each query assertion. Rather than retrieving a document that exactly matches the query we should rank the documents based on their plausibility in regards to that query. Since d and q are both generated by users, they are error prone; thus d → q {\displaystyle d\to q} is uncertain. This will affect the plausibility of a given query. By doing this it accomplishes two things: Separate the processes of revising probabilities from the logic Separate the treatment of relevance from the treatment of requests Multimedia documents, like images or videos, have different inference properties for each datatype. They are also different from text document properties. The framework of plausible inference allows us to measure and combine the probabilities coming from these different properties. Uncertain inference generalizes the notions of autoepistemic logic, where truth values are either known or unknown, and when known, they are true or false. == Example == If we have a query of the form: q = A ∧ B ∧ C {\displaystyle q=A\wedge B\wedge C} where A, B and C are query assertions, then for a document D we want the probability: P ( D → ( A ∧ B ∧ C ) ) {\displaystyle P(D\to (A\wedge B\wedge C))} If we transform this into the conditional probability P ( ( A ∧ B ∧ C ) | D ) {\displaystyle P((A\wedge B\wedge C)|D)} and if the query assertions are independent we can calculate the overall probability of the implication as the product of the individual assertions probabilities. == Further work == Croft and Krovetz applied uncertain inference to an information retrieval system for office documents they called OFFICER. In office documents the independence assumption is valid since the query will focus on their individual attributes. Besides analysing the content of documents one can also query about the author, size, topic or collection for example. They devised methods to compare document and query attributes, infer their plausibility and combine it into an overall rating for each document. Besides that uncertainty of document and query contents also had to be addressed. Probabilistic logic networks is a system for performing uncertain inference; crisp true/false truth values are replaced not only by a probability, but also by a confidence level, indicating the certitude of the probability. Markov logic networks allow uncertain inference to be performed; uncertainties are computed using the maximum entropy principle, in analogy to the way that Markov chains describe the uncertainty of finite-state machines.

    Read more →
  • Dabbler

    Dabbler

    Dabbler is natural media drawing software for beginners. It was initially developed by Fractal Design Corporation. It is a simplified version of Fractal Design Painter, and included multimedia tutorials and a fullscreen interface. Dabbler was released as "Art Dabbler" after the MetaCreations merger, and rights were eventually transferred to Corel. Dabbler operating systems are Mac OS and Microsoft Windows.

    Read more →
  • DialogOS

    DialogOS

    DialogOS is a graphical programming environment to design computer system which can converse through voice with the user. Dialogs are clicked together in a Flowchart. DialogOS includes bindings to control Lego Mindstorms robots by voice and has bindings to SQL databases, as well as a generic plugin architecture to integrate with other types of backends. DialogOS is used in computer science courses in schools and universities to teach programming and to introduce beginners in the basic principles of human/computer interaction and dialog design. It has also been used in research systems. DialogOS was initially developed commercially by CLT Sprachtechnologie GmbH until its liquidation in 2017. The rights were then acquired by Saarland University and the software was released as open-source. == Bindings to Lego Mindstorms NXT == DialogOS can control the LEGO Mindstorms NXT Series. It uses sensor-nodes to obtain values for the following sensors: noise sensor ultrasonic sensor touch sensor luminosity sensor

    Read more →
  • IJCAI Computers and Thought Award

    IJCAI Computers and Thought Award

    The IJCAI Computers and Thought Award is presented every two years by the International Joint Conference on Artificial Intelligence (IJCAI), recognizing outstanding young scientists in artificial intelligence. It was originally funded with royalties received from the book Computers and Thought (edited by Edward Feigenbaum and Julian Feldman), and is currently funded by IJCAI. It is considered to be "the premier award for artificial intelligence researchers under the age of 35". == Laureates == Terry Winograd (1971) Patrick Winston (1973) Chuck Rieger (1975) Douglas Lenat (1977) David Marr (1979) Gerald Sussman (1981) Tom Mitchell (1983) Hector Levesque (1985) Johan de Kleer (1987) Henry Kautz (1989) Rodney Brooks (1991) Martha E. Pollack (1991) Hiroaki Kitano (1993) Sarit Kraus (1995) Stuart Russell (1995) Leslie Kaelbling (1997) Nicholas Jennings (1999) Daphne Koller (2001) Tuomas Sandholm (2003) Peter Stone (2007) Carlos Guestrin (2009) Andrew Ng (2009) Vincent Conitzer (2011) Malte Helmert (2011) Kristen Grauman (2013) Ariel D. Procaccia (2015) Percy Liang (2016) for his contributions to both the approach of semantic parsing for natural language understanding and better methods for learning latent-variable models, sometimes with weak supervision, in machine learning. Devi Parikh (2017) Stefano Ermon (2018) Guy Van den Broeck (2019) for his contributions to statistical and relational artificial intelligence, and the study of tractability in learning and reasoning. Piotr Skowron (2020) for his contributions to computational social choice, and to the theory of committee elections. Fei Fang (2021) for her contributions to integrating machine learning with game theory and the use of these novel techniques to tackle societal challenges such as more effective deployment of security resources, enhancing environmental sustainability, and reducing food insecurity. Bo Li (2022) for her contributions to uncovering the underlying connections among robustness, privacy, and generalization in AI, showing how different models are vulnerable to malicious attacks, and how to eliminate these vulnerabilities using mathematical tools that provide robustness guarantees for learning models and privacy protection. Pin-Yu Chen (2023) for his contributions to consolidating properties of trust, robustness and safety into rigorous algorithmic procedures and computable metrics for improving AI systems. Nisarg Shah (2024) for his contributions to AI and society, in particular foundational work on the theory of algorithmic fairness using principles from social choice theory. Aditya Grover (2025) for his foundational contributions uniting deep generative models, representation learning, and reinforcement learning, and for their applications in advancing scientific reasoning.

    Read more →
  • India AI Impact Summit 2026

    India AI Impact Summit 2026

    The India AI Impact Summit 2026 (also abbreviated as the AI Impact Summit) was an international summit on artificial intelligence held at Bharat Mandapam, New Delhi, India, from 16 to 21 February 2026. It is the fourth in a series of global AI summits following the Bletchley Park AI Safety Summit in 2023, the AI Seoul Summit in 2024, and the AI Action Summit in Paris in 2025. Organised under the IndiaAI Mission by the Ministry of Electronics and Information Technology, it is the first summit in the series to be hosted by a Global South nation. This series of AI summits will continue with the AI Summit in Geneva to be hosted by Switzerland in 2027. The summit was inaugurated by Prime Minister Narendra Modi on 19 February 2026. The opening ceremony was also addressed by French President Emmanuel Macron and United Nations Secretary-General António Guterres. The summit was attended by over 20 heads of state and a delegation of global technology leaders including Sundar Pichai (Google), Sam Altman (OpenAI), and Demis Hassabis (DeepMind). The event faced criticism for organisational issues, misrepresentation of non-Indian products as Indian, and a perceived focus on trade fair activities over substantive governance. == Background == The AI Impact Summit was an international summit on artificial intelligence (AI) held in New Delhi from 16 to 20 February 2026. It followed the AI Action Summit in Paris in February 2025, the AI Seoul Summit in 2024 and the Bletchley Park AI Safety Summit in 2023. According to Crowell & Moring, the changing summit titles seemed to reflect a broader shift in focus away from AI safety and governance toward practical impact, implementation, and measurable outcomes. Ahead of the summit, an international panel of experts published the second International AI Safety Report. The summit was structured around three foundational pillars, termed "Sutras": People, Planet, and Progress. Seven thematic working groups were established to deliver outcomes across these pillars, covering AI for economic growth and social good; democratising AI resources; inclusion for social empowerment; safe and trusted AI; human capital; science; and resilience, innovation, and efficiency. == Programme == The summit ran over five days, later extended to six following overwhelming public response. Originally scheduled to conclude on 20 February, the event was extended to 21 February with expanded evening hours for the exhibition. === India AI Impact Expo === The India AI Impact Expo, inaugurated by Prime Minister Modi on 16 February, featured over 300 exhibitors from 30 countries across more than 10 thematic pavilions. Pavilions were organised across thematic zones aligned with the summit's three pillars, showcasing AI applications in healthcare, agriculture, education, and sustainable industry. === Leaders' Plenary and CEO Roundtable === The Leaders' Plenary on 19 February brought together heads of state, ministers, and representatives from multilateral institutions to outline national and global priorities on AI governance, infrastructure, and international cooperation. A CEO Roundtable, held the same evening, convened senior executives from global technology and industry firms with government leaders to discuss investment, research collaboration, and deployment of AI systems. === Research Symposium === A Research Symposium on AI and its Impact was held on 18 February, with the IIIT Hyderabad as knowledge partner. Discussions covered sovereign AI infrastructure, global adoption challenges, research breakthroughs, and policy priorities. == Participants == The summit drew delegations from over 100 countries, including more than 20 heads of state and 60 ministers. Notable attendees from the technology industry included Sundar Pichai (Google), Sam Altman (OpenAI), Dario Amodei (Anthropic), Demis Hassabis (Google DeepMind), and Mukesh Ambani (Reliance Industries). Representatives from multilateral institutions included Sangbu Kim of the World Bank. == Announcements and outcomes == === Indian AI models === Several Indian AI models and products were unveiled during the summit. Sarvam AI, an Indian AI laboratory, launched a new generation of large language models, including 30-billion and 105-billion parameter models using a mixture of experts architecture, as well as text-to-speech, speech-to-text, and vision models. Sarvam also introduced the Kaze smartglasses, described as the company's first hardware product, which Prime Minister Modi tested at the expo. The government-backed BharatGen Param2 model, a 17-billion parameter model supporting 22 Indian languages with multimodal capabilities, was also launched at the summit. === Infrastructure commitments === Union Minister Ashwini Vaishnaw outlined India's "whole-of-nation" AI strategy, describing plans to build a "frugal, sovereign and scalable" AI ecosystem. The government announced plans to add more than 20,000 GPUs to India's existing base of 38,000 under the IndiaAI Compute Portal. Microsoft announced at the summit that it was on track to invest US$50 billion by the end of the decade to bring AI to lower-income countries. Goa reaffirmed its commitment to artificial intelligence at the India AI Impact Summit 2026. === Guinness World Record === During the summit, India set a Guinness World Record for the most pledges received for an AI responsibility campaign in 24 hours, with 250,946 valid pledges collected between 16 and 17 February 2026. The campaign, conducted in partnership with Intel India as part of the IndiaAI Mission, exceeded its initial target of 5,000 pledges. == Controversies and criticisms == === Galgotias University incident === On 18 February, Galgotias University faced widespread criticism after a representative presented a robot dog at the university's exhibition pavilion as an indigenous development. Social media users identified the robot as the Unitree Go2, a commercially available product manufactured by Chinese company Unitree Robotics. IT Secretary S. Krishnan stated that the government did not want exhibitors to showcase items that were not their own, and the university was directed to vacate its stall. Galgotias University issued an apology, stating that the representative had been "ill-informed" and was not authorised to speak to the press. The incident drew political reactions, with the Indian National Congress using it to criticise the government. The controversy was amplified after Union IT Minister Ashwini Vaishnaw had earlier shared a video clip of the robot on social media, which was subsequently deleted. === Organisational issues === On day 1 of the Summit, Dhananjay Yadav, a Bengaluru-based entrepreneur had alleged that his product was stolen in the Summit. He called it as a pain for the people in an X post. He further wrote, "Think about this: We paid for flights, accommodation, logistics and even the booth. Only to see our wearables disappear inside a high-security zone". Later, the stolen devices were recovered by The Delhi Police. Bloomberg reported that delegates were left stranded without food or water during a security lockdown ahead of the Prime Minister's visit on 19 February. The summit venue was closed to the public on 19 February for the Prime Minister's visit, leading to criticism from attendees who had registered for that day. === Protests by the Indian Youth Congress (IYC) === On 20 February, some members of the Indian Youth Congress (IYC) carried out protests inside the venue with slogans such as "PM is compromised" and the criticism of the recent trade deal between India and the US. 4 of these members were sent to police custody by the court on 22 February. While Bharatiya Janta Party condemned these protests, with its spokesperson Shehzad Poonawalla saying, "From being anti-BJP, you have gone to being anti-national? If you have a problem with the BJP, then protest at the BJP office, Jantar Mantar, or outside the PM's office. But the people of the country and their alliance partners condemn them for their attempt to defame India in front of the entire world at the AI Summit." Congress leader Harish Rawat defended the protests, saying "it's also a fact that AI might become a tool in the hands of a few individuals… It's the opposition's job to warn against that… It's not the first time such international events have been opposed. I know how the BJP protested during the Commonwealth Games… To say that such opposition has happened for the first time is not correct. The BJP has been doing this while in the opposition." These protestors were granted bail by the Delhi high court on 2 March. == Reception and analysis == Bloomberg News reported that Prime Minister Modi used the summit to assert India's global AI ambitions following a challenging year in foreign policy. TechPolicy.Press published several critical analyses of the summit. One article argued that the summit's structure granted "multinational corporations parity with sovereign governments

    Read more →
  • Kernel (image processing)

    Kernel (image processing)

    In image processing, a kernel, convolution matrix, or mask is a small matrix used for blurring, sharpening, embossing, edge detection, and more. This is accomplished by doing a convolution between the kernel and an image. Or more simply, when each pixel in the output image is a function of the nearby pixels (including itself) in the input image, the kernel is that function. == Details == The general expression of a convolution is g x , y = ω ∗ f x , y = ∑ i = − a a ∑ j = − b b ω i , j f x − i , y − j , {\displaystyle g_{x,y}=\omega f_{x,y}=\sum _{i=-a}^{a}{\sum _{j=-b}^{b}{\omega _{i,j}f_{x-i,y-j}}},} where g ( x , y ) {\displaystyle g(x,y)} is the filtered image, f ( x , y ) {\displaystyle f(x,y)} is the original image, ω {\displaystyle \omega } is the filter kernel. Every element of the filter kernel is considered by − a ≤ i ≤ a {\displaystyle -a\leq i\leq a} and − b ≤ j ≤ b {\displaystyle -b\leq j\leq b} . Depending on the element values, a kernel can cause a wide range of effects: The above are just a few examples of effects achievable by convolving kernels and images. === Origin === The origin is the position of the kernel which is above (conceptually) the current output pixel. This could be outside of the actual kernel, though usually it corresponds to one of the kernel elements. For a symmetric kernel, the origin is usually the center element. == Convolution == Convolution is the process of adding each element of the image to its local neighbors, weighted by the kernel. This is related to a form of mathematical convolution. The matrix operation being performed—convolution—is not traditional matrix multiplication, despite being similarly denoted by . For example, if we have two three-by-three matrices, the first a kernel, and the second an image piece, convolution is the process of flipping both the rows and columns of the kernel and multiplying locally similar entries and summing. The element at coordinates [2, 2] (that is, the central element) of the resulting image would be a weighted combination of all the entries of the image matrix, with weights given by the kernel: ( [ a b c d e f g h i ] ∗ [ 1 2 3 4 5 6 7 8 9 ] ) [ 2 , 2 ] = {\displaystyle \left({\begin{bmatrix}a&b&c\\d&e&f\\g&h&i\end{bmatrix}}{\begin{bmatrix}1&2&3\\4&5&6\\7&8&9\end{bmatrix}}\right)[2,2]=} ( i ⋅ 1 ) + ( h ⋅ 2 ) + ( g ⋅ 3 ) + ( f ⋅ 4 ) + ( e ⋅ 5 ) + ( d ⋅ 6 ) + ( c ⋅ 7 ) + ( b ⋅ 8 ) + ( a ⋅ 9 ) . {\displaystyle (i\cdot 1)+(h\cdot 2)+(g\cdot 3)+(f\cdot 4)+(e\cdot 5)+(d\cdot 6)+(c\cdot 7)+(b\cdot 8)+(a\cdot 9).} The other entries would be similarly weighted, where we position the center of the kernel on each of the boundary points of the image, and compute a weighted sum. The values of a given pixel in the output image are calculated by multiplying each kernel value by the corresponding input image pixel values. This can be described algorithmically with the following pseudo-code: for each image row in input image: for each pixel in image row: set accumulator to zero for each kernel row in kernel: for each element in kernel row: if element position corresponding to pixel position then multiply element value corresponding to pixel value add result to accumulator endif set output image pixel to accumulator corresponding input image pixels are found relative to the kernel's origin. If the kernel is symmetric then place the center (origin) of the kernel on the current pixel. The kernel will overlap the neighboring pixels around the origin. Each kernel element should be multiplied with the pixel value it overlaps with and all of the obtained values should be summed. This resultant sum will be the new value for the current pixel currently overlapped with the center of the kernel. If the kernel is not symmetric, it has to be flipped both around its horizontal and vertical axis before calculating the convolution as above. The general form for matrix convolution is [ x 11 x 12 ⋯ x 1 n x 21 x 22 ⋯ x 2 n ⋮ ⋮ ⋱ ⋮ x m 1 x m 2 ⋯ x m n ] ∗ [ y 11 y 12 ⋯ y 1 n y 21 y 22 ⋯ y 2 n ⋮ ⋮ ⋱ ⋮ y m 1 y m 2 ⋯ y m n ] = ∑ i = 0 m − 1 ∑ j = 0 n − 1 x ( m − i ) ( n − j ) y ( 1 + i ) ( 1 + j ) {\displaystyle {\begin{bmatrix}x_{11}&x_{12}&\cdots &x_{1n}\\x_{21}&x_{22}&\cdots &x_{2n}\\\vdots &\vdots &\ddots &\vdots \\x_{m1}&x_{m2}&\cdots &x_{mn}\\\end{bmatrix}}{\begin{bmatrix}y_{11}&y_{12}&\cdots &y_{1n}\\y_{21}&y_{22}&\cdots &y_{2n}\\\vdots &\vdots &\ddots &\vdots \\y_{m1}&y_{m2}&\cdots &y_{mn}\\\end{bmatrix}}=\sum _{i=0}^{m-1}\sum _{j=0}^{n-1}x_{(m-i)(n-j)}y_{(1+i)(1+j)}} === Edge handling === Kernel convolution usually requires values from pixels outside of the image boundaries. There are a variety of methods for handling image edges. Extend The nearest border pixels are conceptually extended as far as necessary to provide values for the convolution. Corner pixels are extended in 90° wedges. Other edge pixels are extended in lines. Wrap The image is conceptually wrapped (or tiled) and values are taken from the opposite edge or corner. Mirror The image is conceptually mirrored at the edges. For example, attempting to read a pixel 3 units outside an edge reads one 3 units inside the edge instead. Crop / Avoid overlap Any pixel in the output image which would require values from beyond the edge is skipped. This method can result in the output image being slightly smaller, with the edges having been cropped. Move kernel so that values from outside of image is never required. Machine learning mainly uses this approach. Example: Kernel size 10x10, image size 32x32, result image is 23x23. Kernel Crop Any pixel in the kernel that extends past the input image isn't used and the normalizing is adjusted to compensate. Constant Use constant value for pixels outside of image. Usually black or sometimes gray is used. Generally this depends on application. === Normalization === Normalization is defined as the division of each element in the kernel by the sum of all kernel elements, so that the sum of the elements of a normalized kernel is unity. This will ensure the average pixel in the modified image is as bright as the average pixel in the original image. === Optimization === Fast convolution algorithms include: separable convolution ==== Separable convolution ==== 2D convolution with an M × N kernel requires M × N multiplications for each sample (pixel). If the kernel is separable, then the computation can be reduced to M + N multiplications. Using separable convolutions can significantly decrease the computation by doing 1D convolution twice instead of one 2D convolution. === Implementation === Here a concrete convolution implementation done with the GLSL shading language :

    Read more →
  • Sinewave synthesis

    Sinewave synthesis

    Sinewave synthesis, or sine wave speech, is a technique for synthesizing speech by replacing the formants (main bands of energy) with pure tone whistles. The first sinewave synthesis program (SWS) for the automatic creation of stimuli for perceptual experiments was developed by Philip Rubin at Haskins Laboratories in the 1970s. This program was subsequently used by Robert Remez, Philip Rubin, David Pisoni, and other colleagues to show that listeners can perceive continuous speech without traditional speech cues, i.e., pitch, stress, and intonation. This work paved the way for a view of speech as a dynamic pattern of trajectories through articulatory-acoustic space.

    Read more →
  • Pippit

    Pippit

    Pippit (Chinese: 小云雀; pinyin: Xiǎoyúnquè) is an artificial intelligence content creation platform developed by the Chinese technology company ByteDance. The platform, powered by CapCut leverages multimodal AI technology to streamline professional-grade video and image production, specifically targeting small and medium-sized enterprisesand social media creators. == History == In May 2025, ByteDance officially launched Pippit, which is positioned as an AI video and picture creation tool. In early 2026, Pippit underwent a major architectural overhaul with the integration of the Dreamina seedance 2.0. This technical milestone introduced the "Short Drama Agent" functionality, which enables the end-to-end conversion of scripts up to 100,000 words into fully rendered video productions.

    Read more →
  • Artificial intelligence engineering

    Artificial intelligence engineering

    Artificial intelligence engineering (AI engineering) is a technical discipline that focuses on the design, development, and deployment of AI systems. AI engineering involves applying engineering principles and methodologies to create scalable, efficient, and reliable AI-based solutions. It merges aspects of data engineering and software engineering to create real-world applications in diverse domains such as healthcare, finance, autonomous systems, and industrial automation. == Terminology ambiguity == According to Chip Huyen's book AI Engineering: Building Applications with Foundation Models, the term AI engineering refers to the process of building applications that use foundation models, which are typically models developed by a small number of research laboratories and made available as a service. Huyen distinguishes this from machine learning (ML) engineering, which involves building and deploying models developed in-house. She notes that most practical AI systems combine both approaches. For example, a customer-support chatbot may use a generative model to produce responses while also incorporating locally built components such as request classifiers or scoring mechanisms to assess response quality. As a result, the terms AI engineering and ML engineering are often used together or interchangeably in practice. The distinction and broader usage of the term have been discussed in industry publications and interviews, where AI engineering has been described as an emerging discipline focused on productionizing applications built with foundation models. == Key components == AI engineering integrates a variety of technical domains and practices, all of which are essential to building scalable, reliable, and ethical AI systems. === Data engineering and infrastructure === Data serves as the cornerstone of AI systems, necessitating careful engineering to ensure premium quality, wide spread availability, and usability. AI engineers gather large, diverse datasets from multiple sources such as databases, APIs, and real-time streams. This data undergoes cleaning, normalization, and preprocessing, often facilitated by automated data pipelines that manage extraction, transformation, and loading (ETL) processes. Efficient storage solutions, such as SQL (or NoSQL) databases and data lakes, must be selected based on data characteristics and use cases. Security measures, including encryption and access controls, are critical for protecting sensitive information and ensuring compliance with regulations like GDPR. Scalability is essential, frequently involving cloud services and distributed computing frameworks to handle growing data volumes effectively. === Algorithm selection and optimization === Selecting the appropriate algorithm is crucial for the success of any AI system. Engineers evaluate the problem (which could be classification or regression, for example) to determine the most suitable machine learning algorithm, including deep learning paradigms. Once an algorithm is chosen, optimizing it through hyperparameter tuning is essential to enhance efficiency and accuracy. Techniques such as grid search or Bayesian optimization are employed, and engineers often utilize parallelization to expedite training processes, particularly for large models and datasets. For existing models, techniques like transfer learning can be applied to adapt pre-trained models for specific tasks, reducing the time and resources needed for training. === Deep learning engineering === Deep learning is particularly important for tasks involving large and complex datasets. Engineers design neural network architectures tailored to specific applications, such as convolutional neural networks for visual tasks or recurrent neural networks for sequence-based tasks. Transfer learning, where pre-trained models are fine-tuned for specific use cases, helps streamline development and often enhances performance. Optimization for deployment in resource-constrained environments, such as mobile devices, involves techniques like pruning and quantization to minimize model size while maintaining performance. Engineers also mitigate data imbalance through augmentation and synthetic data generation, ensuring robust model performance across various classes. === Natural language processing === Natural language processing (NLP) is a crucial component of AI engineering, focused on enabling machines to understand and generate human language. The process begins with text preprocessing to prepare data for machine learning models. Recent advancements, particularly transformer-based models like BERT and GPT, have greatly improved the ability to understand context in language. AI engineers work on various NLP tasks, including sentiment analysis, machine translation, and information extraction. These tasks require sophisticated models that utilize attention mechanisms to enhance accuracy. Applications range from virtual assistants and chatbots to more specialized tasks like named-entity recognition (NER) and Part of speech (POS) tagging. === Reasoning and decision-making systems === Developing systems capable of reasoning and decision-making is a significant aspect of AI engineering. Whether starting from scratch or building on existing frameworks, engineers create solutions that operate on data or logical rules. Symbolic AI employs formal logic and predefined rules for inference, while probabilistic reasoning techniques like Bayesian networks help address uncertainty. These models are essential for applications in dynamic environments, such as autonomous vehicles, where real-time decision-making is critical. === Security === Security is a critical consideration in AI engineering, particularly as AI systems become increasingly integrated into sensitive and mission-critical applications. AI engineers implement robust security measures to protect models from adversarial attacks, such as evasion and poisoning, which can compromise system integrity and performance. Techniques such as adversarial training, where models are exposed to malicious inputs during development, help harden systems against these attacks. Additionally, securing the data used to train AI models is of paramount importance. Encryption, secure data storage, and access control mechanisms are employed to safeguard sensitive information from unauthorized access and breaches. AI systems also require constant monitoring to detect and mitigate vulnerabilities that may arise post-deployment. In high-stakes environments like autonomous systems and healthcare, engineers incorporate redundancy and fail-safe mechanisms to ensure that AI models continue to function correctly in the presence of security threats. === Ethics and compliance === As AI systems increasingly influence societal aspects, ethics and compliance are vital components of AI engineering. Engineers design models to mitigate risks such as data poisoning and ensure that AI systems adhere to legal frameworks, such as data protection regulations like GDPR. Privacy-preserving techniques, including data anonymization and differential privacy, are employed to safeguard personal information and ensure compliance with international standards. Ethical considerations focus on reducing bias in AI systems, preventing discrimination based on race, gender, or other protected characteristics. By developing fair and accountable AI solutions, engineers contribute to the creation of technologies that are both technically sound and socially responsible. == Workload == An AI engineer's workload revolves around the AI system's life cycle, which is a complex, multi-stage process. This process may involve building models from scratch or using pre-existing models through transfer learning, depending on the project's requirements. Each approach presents unique challenges and influences the time, resources, and technical decisions involved. === Problem definition and requirements analysis === Regardless of whether a model is built from scratch or based on a pre-existing model, the work begins with a clear understanding of the problem. The engineer must define the scope, understand the business context, and identify specific AI objectives that align with strategic goals. This stage includes consulting with stakeholders to establish key performance indicators (KPIs) and operational requirements. When developing a model from scratch, the engineer must also decide which algorithms are most suitable for the task. Conversely, when using a pre-trained model, the workload shifts toward evaluating existing models and selecting the one most aligned with the task. The use of pre-trained models often allows for a more targeted focus on fine-tuning, as opposed to designing an entirely new model architecture. === Data acquisition and preparation === Data acquisition and preparation are critical stages regardless of the development method chosen, as the performance of any AI system relies heavily on high-quality, re

    Read more →
  • Document classification

    Document classification

    Document classification or document categorization is a problem in library science, information science and computer science. The task is to assign a document to one or more classes or categories. This may be done "manually" (or "intellectually") or algorithmically. The intellectual classification of documents has mostly been the province of library science, while the algorithmic classification of documents is mainly in information science and computer science. The problems are overlapping, however, and there is therefore interdisciplinary research on document classification. The documents to be classified may be texts, images, music, etc. Each kind of document possesses its special classification problems. When not otherwise specified, text classification is implied. Documents may be classified according to their subjects or according to other attributes (such as document type, author, printing year etc.). In the rest of this article only subject classification is considered. There are two main philosophies of subject classification of documents: the content-based approach and the request-based approach. == "Content-based" versus "request-based" classification == Content-based classification is classification in which the weight given to particular subjects in a document determines the class to which the document is assigned. It is, for example, a common rule for classification in libraries, that at least 20% of the content of a book should be about the class to which the book is assigned. In automatic classification it could be the number of times given words appears in a document. Request-oriented classification (or -indexing) is classification in which the anticipated request from users is influencing how documents are being classified. The classifier asks themself: “Under which descriptors should this entity be found?” and “think of all the possible queries and decide for which ones the entity at hand is relevant” (Soergel, 1985, p. 230). Request-oriented classification may be classification that is targeted towards a particular audience or user group. For example, a library or a database for feminist studies may classify/index documents differently when compared to a historical library. It is probably better, however, to understand request-oriented classification as policy-based classification: The classification is done according to some ideals and reflects the purpose of the library or database doing the classification. In this way it is not necessarily a kind of classification or indexing based on user studies. Only if empirical data about use or users are applied should request-oriented classification be regarded as a user-based approach. == Classification versus indexing == Sometimes a distinction is made between assigning documents to classes ("classification") versus assigning subjects to documents ("subject indexing") but as Frederick Wilfrid Lancaster has argued, this distinction is not fruitful. "These terminological distinctions,” he writes, “are quite meaningless and only serve to cause confusion” (Lancaster, 2003, p. 21). The view that this distinction is purely superficial is also supported by the fact that a classification system may be transformed into a thesaurus and vice versa (cf., Aitchison, 1986, 2004; Broughton, 2008; Riesthuis & Bliedung, 1991). Therefore, assigning a subject term to a document in an index is equivalent to assigning that document to the class of documents indexed by that term (all documents indexed or classified as X belong to the same class of documents). == Automatic document classification (ADC) == Automatic document classification tasks can be divided into three sorts: supervised document classification where some external mechanism (such as human feedback) provides information on the correct classification for documents, unsupervised document classification (also known as document clustering), where the classification must be done entirely without reference to external information, and semi-supervised document classification, where parts of the documents are labeled by the external mechanism. There are several software products under various license models available. === Techniques === Automatic document classification techniques include: Artificial neural network Concept Mining Decision trees such as ID3 or C4.5 Expectation maximization (EM) Instantaneously trained neural networks Latent semantic indexing Multiple-instance learning Naive Bayes classifier Natural language processing approaches Rough set-based classifier Soft set-based classifier Support vector machines (SVM) K-nearest neighbour algorithms tf–idf == Applications == Classification techniques have been applied to spam filtering, a process which tries to discern E-mail spam messages from legitimate emails email routing, sending an email sent to a general address to a specific address or mailbox depending on topic language identification, automatically determining the language of a text genre classification, automatically determining the genre of a text readability assessment, automatically determining the degree of readability of a text, either to find suitable materials for different age groups or reader types or as part of a larger text simplification system sentiment analysis, determining the attitude of a speaker or a writer with respect to some topic or the overall contextual polarity of a document. health-related classification using social media in public health surveillance article triage, selecting articles that are relevant for manual literature curation, for example as is being done as the first step to generate manually curated annotation databases in biology

    Read more →
  • Tales from the Loop (role-playing game)

    Tales from the Loop (role-playing game)

    Tales from the Loop (Swedish: Ur Varselklotet), subtitled "Roleplaying in the '80s That Never Was", is an alternative history science fiction tabletop role-playing game published in 2017 by Free League Publishing, the international arm of Swedish game and book publisher Fria Ligan AB, and Modiphius Entertainment. The game, based on the art of Simon Stålenhag, envisions an alternative world where a group of bored and ignored preteens and teens solve mysteries caused by new technology near their hometown. == Description == === Setting === Tales from the Loop is set in an alternative history world taken from the artwork of Simon Stålenhag. According to this alternative timeline, back in the 1940s, research began on particle accelerators. In the 1960s, two massive underground particle accelerators were built in Sweden and Colorado with the promise of a harvest of technological marvels that would change everyone's lives. Tales from the Loop is set twenty years later, in the late 1980s, and the better life has not materialized. Although the particle accelerators have created robots and large skyships, the detritus of failed experiments and the ruins of abandoned high tech company buildings litter the landscape. Generally the life of the average family has not changed for the better. A campaign can either be set in the Mälaren Islands, west of the Swedish capital of Stockholm, or in a city in the Southwest United States that resembles Boulder City, Nevada. There is also a step-by-step guide for the gamemaster to use their own hometown. === Character generation === Player characters are preteens and young teenagers age 10–15 who live in a society where they are bored and largely left to themselves. Players can choose archetypes for their characters including Bookworm, Jock, Troublemaker, Popular Kid and Weirdo. Unlike most role-playing games, characters in Tales from the Loop cannot be killed, although in an ongoing campaign or due to an in-game effect, they are removed from the game if they reach the age of sixteen. === Game system === The game uses the Year Zero Engine first developed by Tomas Härenstam for the post-apocalyptic role-playing game Mutant: Year Zero. (Härenstam served as the editor and project manager for Tales from the Loop.) Problems are resolved by rolling a pool of six-sided dice, with any 6 rolled marking success. Attributes and skills (Sneak, Force, Move, Build, Tinker, Calculate, Contact, Charm, Lead, Investigate, Comprehend, and Empathize) may allow the player to add more dice to the dice pool, increasing the chances of success. However, if a character has earned a condition such as Scared or Injured, dice are removed from the dice pool. === Gameplay === The game principles are that life for the characters is dull and boring, but the area around the town is full of wonderful, mysterious things. An adventure is set up as a Mystery, and in order to successfully resolve the Mystery, characters must overcome a series of Troubles, which can range from having to be home by a certain time to dealing with a bully to disarming or otherwise overcoming a booby-trap on a door that must be opened. Each Mystery is played as a series of scenes, much like a TV drama. Although the gamemaster leads the players into the Mystery, each scene is set collaboratively with the players before action continues. As critic Jukka Kauppinen noted, "The players and the gamemaster take turns verbally staging a new scene — where we are, what it's like there — and only then what we do." === Campaign === The book presents a chronologically-linked set of four Mysteries called "The Four Seasons of Mad Science" that take place over a calendar year: "Summer Break and Killer Birds": The Kids hears pigeons having a conversation and investigate "Grown-Up Attraction": Adults start disappearing without any sign of struggle. "Creatures from the Cretaceous": The search for a missing dog leads to the discovery of creatures that don't belong in our time "I, Wagner": The Kids discover a body in a stream, and are drawn into a Mystery with robots and humans that may affect them closely. == Publication history == In 2017, Swedish artist Simon Stålenhag was raising money on Kickstarter to publish a book of his art titled Tales from the Loop. One of the stretch goals offered was the creation of a role-playing game. A second Kickstarter campaign to publish the role-playing game was initiated by Fria Ligan AB, who surpassed their crowdfunding goal and raised a total of 3,745,896 kr from 5,600 backers. The role-playing game Tales from the Loop was subsequently published as a 184-page hardcover book in 2017 by Free League Publishing, the international arm of Swedish game and book publisher Fria Ligan AB, and Modiphius Entertainment. Cover art and interior art were by Stålenhag, and cartography was by Christian Granath. A stand-alone expansion, Things from the Flood (Swedish: Flodskörden), based on Stålenhag's art book of the same name, was created by Nils Hintze, Rickard Antroia, and Tomas Härenstam. The 216-page hardcover book was published in 2019 with cover art by Stålenhag, interior art by Stålenhag and Reine Rosenberg, and cartography by Christian Granath. In 2020, the setting of the role-playing game was transferred to the TV series Tales from the Loop developed by Nathanial Halpern and Simon Stålenhag. The series tells eight stories of children's encounters with strange technology. == Reception == Shut Up & Sit Down praised Tales from the Loop for its comfortable, contemporary setting, simple rules that make the game easy to run, and the alternation between sci-fi and the kids' lives, but criticized the Type system for characters, noting "a suggested 'Pride' for the Weirdo involved being homosexual –– the only mention of queerness in the entire game. Those of us who identify as GLBTQ bristled at that: why was only the Weirdo queer, with queerness as a (possibly secret) Pride? Why not more fully address being a GLBTQ kid in the 1980s?" The review concluded, "For new RPG players, Tales is a decent game that you'll enjoy and that will make your heart burst. But you need an experienced GM who’s able to either alter the book’s mysteries or create their own, and who can put in work when poor dice rolls hold the players back." Rob Weiland of Geek & Sundry named Tales from the Loop 2017's best RPG release and praised Stålenhag's art, the collaborative nature between the GM and players, and the simplicity of running the game. Weiland concluded, "It has a simple system that is easy to explain but holds up under several plays. It has a setting that’s immediately evocative but also leaves plenty of room for GMs to build out their own world. It offers players a chance to experience the rush of memory, the pain of childhood and the wonder of movies." In a review of Tales from the Loop in Black Gate, Andrew Zimmerman Jones said, "Though not based directly on an established franchise, it draws richly from elements of popular culture that will make it resonate with many players. The focus on narrative play also means it’s a good game for people who aren’t necessarily big into learning a ton of new rules." Jukka Kauppinen, writing for the Finnish games magazine Skrolli, called the game, "downright delicious in its diversity. The science fiction world created by the Swedish artist Simon Stälenhag is, after all, both delightful vintage and tickling novelty." Kauppinen concluded, "This mutual storytelling and interaction makes this game more of a campfire circle than a traditional role-playing game. At the same time, its setting in the real world, tinged with science fiction and even horror, creates a delicious and unique adventure environment." In his 2023 book Monsters, Aliens, and Holes in the Ground, RPG historian Stu Horvath noted that the game system "pushes the players to constantly reevaluate their characters' relationships with the everyday world, for better or worse. It won't be long before navigating entanglements with parents, teachers, siblings and bullies proves just as risky to the characters, and central to the players' experience, as trying to find out what happened with the time portal or dealing with a rampaging robot." Horvath concluded, "The appeal of Tales from the Loop is Stålenhag's deep shadows and purple dusks. They hide the dangers and mysteries that often act [as] an escape hatch, a way to avoid prosaic problems." == Awards == At the 2017 Golden Geek Awards, Tales of the Loop won "RPG of the Year", and was a finalist for " Best RPG Artwork/Presentation" At the 2017 ENnie Awards, Tales from the Loops won five Gold Medals: Product of the Year Best Writing Best Setting Best Game Best Art, Interior

    Read more →
  • Transdermal optical imaging

    Transdermal optical imaging

    Transdermal optical imaging, also known as transdermal optical imagery or TOI, is a method of detecting blood flow of the face by measuring hemoglobin concentration using a digital video camera. Because of the translucent property of skin, light can travel beneath the skin and re-emit. The re-emitted light from underneath the skin is affected by chromophores, mainly hemoglobin and melanin, which differ in color. The color difference allows TOI machine learning software to separate the images into layers, which are known as bitplanes. It extracts signals rich in hemoglobin and signals rich in melanin, then discards the melanin-rich signals to obtain a recording of hemoglobin changes under the skin. Transdermal optical imaging has been proposed as an alternative to cuff-based methods of measuring blood pressure because it is able to measure heart rate accurately in a "contactless and non-invasive" way. Transdermal optical imaging may be able to detect hidden emotions using the patterns of blood flow in the face.

    Read more →