AI Email Letter Generator

AI Email Letter Generator — independent reviews, comparisons, pricing and step-by-step guides on Aizhi.

  • Biopython

    Biopython

    Biopython is an open-source collection of non-commercial Python modules for computational biology and bioinformatics. It makes robust and well-tested code easily accessible to researchers. Python is an object-oriented programming language and is a suitable choice for automation of common tasks. The availability of reusable libraries saves development time and lets researchers focus on addressing scientific questions. Biopython is constantly updated and maintained by a large team of volunteers across the globe. Biopython contains parsers for diverse bioinformatic sequence, alignment, and structure formats. Sequence formats include FASTA, FASTQ, GenBank, and EMBL. Alignment formats include Clustal, BLAST, PHYLIP, and NEXUS. Structural formats include the PDB, which contains the 3D atomic coordinates of the macromolecules. It has provisions to access information from biological databases like NCBI, Expasy, PBD, and BioSQL. This can be used in scripts or incorporated into their software. Biopython contains a standard sequence class, sequence alignment, and motif analysis tools. It also has clustering algorithms, a module for structural biology, and a module for phylogenetics analysis. == History == The development of Biopython began in 1999, and it was first released in July 2000. First "semi-complete" and "semi-stable" release was done in March 2001 and December 2002 respectively. It was developed during a similar time frame and with analogous goals to other projects that added bioinformatics capabilities to their respective programming languages, including BioPerl, BioRuby and BioJava. Early developers on the project included Jeff Chang, Andrew Dalke and Brad Chapman, though over 100 people have made contributions to date. In 2007, a similar Python project, namely PyCogent, was established. The initial scope of Biopython involved accessing, indexing and processing biological sequence files. The retrieved data from common biological databases will then be parsed into a python data structure. While this is still a major focus, over the following years added modules have extended its functionality to cover additional areas of biology. The key challenge in the design of parsers for bioinformatics file formats is the frequency at which the data formats change. This is due to inadequate curation of the structure of the data, and changes in the database contents. This problem is overcome by the application of a standard event-oriented parser design (see Key features and examples). As of version 1.77, Biopython no longer supports Python 2. The current stable release of Biopython version 1.85 was released on 15 January 2025. It only supports Python 3 and the recent releases of Biopython require NumPy (and not Numeric). == Design == Wherever possible, Biopython follows the conventions used by the Python programming language to make it easier for users familiar with Python. For example, Seq and SeqRecord objects can be manipulated via slicing, in a manner similar to Python's strings and lists. It is also designed to be functionally similar to other Bio projects, such as BioPerl. It is organized into modular sub-packages, e.g., Bio.Seq, Bio.Align, Bio.PDB, Bio.Entrez each of them useful in a different bioinformatics domain. It used principles, like encapsulation and polymorphism, notably in classes Seq, SeqRecord, and Bio.PDB.Structure. It can also interoperate with other Python tools (Pandas, Matplotlib and SciPy). Biopython can read and write most common file formats for each of its functional areas, and its license is permissive and compatible with most other software licenses, which allows Biopython to be used in a variety of software projects. == Requirements == Biopython is currently supported and tested with the following Python implementations: Python 3 or PyPy3 NumPy == Key features and examples == === Input and output === Biopython can read and write to a number of common formats. When reading files, descriptive information in the file is used to populate the members of Biopython classes, such as SeqRecord. This allows records of one file format to be converted into others. Very large sequence files can exceed a computer's memory resources, so Biopython provides various options for accessing records in large files. They can be loaded entirely into memory in Python data structures, such as lists or dictionaries, providing fast access at the cost of memory usage. Alternatively, the files can be read from disk as needed, with slower performance but lower memory requirements. === Sequences === A core concept in Biopython is the biological sequence, and this is represented by the Seq class. A Biopython Seq object is similar to a Python string in many respects: it supports the Python slice notation, can be concatenated with other sequences and is immutable. This object includes both general string-like and biological sequence-specific methods. It is best to store information about the biological type (DNA, RNA, protein) separately from the sequence, rather than using an explicit alphabet argument. === Sequence annotation === The SeqRecord class describes sequences, along with information such as name, description and features in the form of SeqFeature objects. Each SeqFeature object specifies the type of the feature and its location. Feature types can be ‘gene’, ‘CDS’ (coding sequence), ‘repeat_region’, ‘mobile_element’ or others, and the position of features in the sequence can be exact or approximate. === Accessing online databases === Through the Bio.Entrez module, users of Biopython can download biological data from NCBI databases. Each of the functions provided by the Entrez search engine is available through functions in this module, including searching for and downloading records. === Phylogeny === The Bio.Phylo module provides tools for working with and visualising phylogenetic trees. A variety of file formats are supported for reading and writing, including Newick, NEXUS and phyloXML. Common tree manipulations and traversals are supported via the Tree and Clade objects. Examples include converting and collating tree files, extracting subsets from a tree, changing a tree's root, and analysing branch features such as length or score. Rooted trees can be drawn in ASCII or using matplotlib (see Figure 1), and the Graphviz library can be used to create unrooted layouts (see Figure 2). === Genome diagrams === The GenomeDiagram module provides methods of visualising sequences within Biopython. Sequences can be drawn in a linear or circular form (see Figure 3), and many output formats are supported, including PDF and PNG. Diagrams are created by making tracks and then adding sequence features to those tracks. By looping over a sequence's features and using their attributes to decide if and how they are added to the diagram's tracks, one can exercise much control over the appearance of the final diagram. Cross-links can be drawn between different tracks, allowing one to compare multiple sequences in a single diagram. === Macromolecular structure === The Bio.PDB module can load molecular structures from PDB and mmCIF files, and was added to Biopython in 2003. The Structure object is central to this module, and it organises macromolecular structure in a hierarchical fashion: Structure objects contain Model objects which contain Chain objects which contain Residue objects which contain Atom objects. Disordered residues and atoms get their own classes, DisorderedResidue and DisorderedAtom, that describe their uncertain positions. Using Bio.PDB, one can navigate through individual components of a macromolecular structure file, such as examining each atom in a protein. Common analyses can be carried out, such as measuring distances or angles, comparing residues and calculating residue depth. === Population genetics === The Bio.PopGen module adds support to Biopython for Genepop, a software package for statistical analysis of population genetics. This allows for analyses of Hardy–Weinberg equilibrium, linkage disequilibrium and other features of a population's allele frequencies. This module can also carry out population genetic simulations using coalescent theory with the fastsimcoal2 program. === Wrappers for command line tools === Biopython previously included command-line wrappers for tools such as BLAST, Clustal, EMBOSS, and SAMtools. This option allowed users to run external tool commands from within the code using specialized Biopython classes. However, Bio.Application modules and their wrappers have deprecated and will be removed in future Biopython releases. The main reason for this is the high maintenance burden of updating them with the evolving external tools. The recommended approach is to directly construct and execute command-line tool commands using Python’s built-in subprocess module. This method provides flexibility and removes the dependency on the Biopython wrappers. subprocess is a native Python module useful for running ext

    Read more →
  • The Best Free AI Avatar Generator for Beginners

    The Best Free AI Avatar Generator for Beginners

    Curious about the best AI avatar generator? An AI avatar generator is software that uses machine learning to help you get more done — it combines speed, accuracy, and an interface that just works. Hands-on testing shows real-world results vary, so a short free trial is the smartest way to decide. Whether you are a beginner or a pro, the right AI avatar generator slots into your workflow and pays for itself fast. This guide breaks down the top picks, their pros and cons, and who each one is best for.

    Read more →
  • Isolation forest

    Isolation forest

    Isolation forest is an unsupervised learning algorithm for anomaly detection that works on the principle of isolating anomalies, instead of the most common techniques of profiling normal points. In statistics, an anomaly (a.k.a. outlier) is an observation or event that deviates so much from other events to arouse suspicion it was generated by a different mean. For example, the graph in Fig.1 represents ingress traffic to a web server, expressed as the number of requests in 3-hours intervals, for a period of one month. It is quite evident by simply looking at the picture that some points (marked with a red circle) are unusually high, to the point of inducing suspect that the web server might have been under attack at that time. On the other hand, the flat segment indicated by the red arrow also seems unusual and might possibly be a sign that the server was down during that time period. Anomalies in a big dataset may follow very complicated patterns, which are difficult to detect "by eye" in the great majority of cases. This is the reason why the field of anomaly detection is well suited for the application of machine learning techniques. The most common techniques employed for anomaly detection are based on the construction of a profile of what is "normal": anomalies are reported as those instances in the dataset that do not conform to the normal profile. Isolation Forest uses a different approach: instead of trying to build a model of normal instances, it explicitly isolates anomalous points in the dataset. The main advantage of this approach is the possibility of exploiting sampling techniques to an extent that is not allowed to the profile-based methods, creating a very fast algorithm with a low memory demand. == History == The Isolation Forest (iForest) algorithm was initially proposed by Fei Tony Liu, Kai Ming Ting and Zhi-Hua Zhou in 2008. The authors took advantage of two quantitative properties of anomalous data points in a sample, that is: they are the minority consisting of fewer instances and they have attribute-values that are very different from those of normal instances Since anomalies are typically few and very different from the other points in the sample, they must be easier to "isolate" compared to normal points. On the basis of this principle, Isolation Forest builds an ensemble of "Isolation Trees" (iTrees) for the data set and marks as anomalies the points that have short average path lengths on the iTrees. In a later paper, published in 2012 the same authors described a set of experiments to prove that iForest: has a low linear time complexity and a small memory requirement is able to deal with high dimensional data with irrelevant attributes can be trained with or without anomalies in the training set can provide detection results with different levels of granularity without re-training In 2013 Zhiguo Ding and Minrui Fei proposed a framework based on iForest to resolve the problem of detecting anomalies in streaming data. More application of iForest to streaming data are described in papers by Swee Chuan Tan et al., G. A. Susto et al. and Yu Weng et al. One of the main problems of the application of iForest to anomaly detection was not with the model itself, but rather in the way the "anomaly score" was computed. This problem was highlighted by Sahand Hariri, Matias Carrasco Kind and Robert J. Brunner in a 2018 paper, wherein they proposed an improved iForest model named Extended Isolation Forest (EIF). In the same paper the authors describe the improvements made to the original model and how they are able to enhance the consistency and reliability of the anomaly score produced for a given data point. == Algorithm == At the basis of the Isolation Forest algorithm there is the tendency of anomalous instances in a dataset to be easier to separate from the rest of the sample (isolate), compared to normal points. In order to isolate a data point the algorithm recursively generates partitions on the sample by randomly selecting an attribute and then randomly selecting a split value for the attribute, between the minimum and maximum values allowed for that attribute. An example of random partitioning in a 2D dataset of normally distributed points is given in Fig. 2 for a non-anomalous point and Fig. 3 for a point that's more likely to be an anomaly. It is apparent from the pictures how anomalies require fewer random partitions to be isolated, compared to normal points. From a mathematical point of view, recursive partitioning can be represented by a tree structure named Isolation Tree, while the number of partitions required to isolate a point can be interpreted as the length of the path, within the tree, to reach a terminating node starting from the root. For example, the path length of point xi in Fig. 2 is greater than the path length of xj in Fig. 3. More formally, let X = { x1, ..., xn } be a set of d-dimensional points and X' ⊂ X a subset of X. An Isolation Tree (iTree) is defined as a data structure with the following properties: for each node T in the Tree, T is either an external-node with no child, or an internal-node with one "test" and exactly two daughter nodes (Tl, Tr) a test at node T consists of an attribute q and a split value p such that the test q < p determines the traversal of a data point to either Tl or Tr. In order to build an iTree, the algorithm recursively divides X' by randomly selecting an attribute q and a split value p, until either (i) the node has only one instance or (ii) all data at the node have the same values. When the iTree is fully grown, each point in X is isolated at one of the external nodes. Intuitively, the anomalous points are those (easier to isolate, hence) with the smaller path length in the tree, where the path length h(xi) of point x i ∈ X {\displaystyle x_{i}\in X} is defined as the number of edges xi traverses from the root node to get to an external node. A probabilistic explanation of iTree is provided in the iForest original paper. == Properties of Isolation Forest == Sub-sampling: since iForest does not need to isolate all of normal instances, it can frequently ignore the big majority of the training sample. As a consequence, iForest works very well when the sampling size is kept small, a property that is in contrast with the great majority of existing methods, where large sampling size is usually desirable. Swamping: when normal instances are too close to anomalies, the number of partitions required to separate anomalies increases, a phenomena known as swamping, which makes it more difficult for iForest to discriminate between anomalies and normal points. One of the main reasons for swamping is the presence of too many data for the purpose of anomaly detection, which implies one possible solution to the problem is sub-sampling. Since iForest respond very well to sub-sampling in terms of performance, the reduction of the number of points in the sample is also a good way to reduce the effect of swamping. Masking: when the number of anomalies is high it is possible that some of those aggregate in a dense and large cluster, making it more difficult to separate the single anomalies and, in turn, to detect such points as anomalous. Similarly to swamping, this phenomena (known as "masking") is also more likely when the number of points in the sample is big, and can be alleviated through sub-sampling. High Dimensional Data: one of the main limitation to standard, distance-based methods is their inefficiency in dealing with high dimensional datasets:. The main reason for that is, in a high dimensional space every point is equally sparse, so using a distance-based measure of separation is pretty ineffective. Unfortunately, high-dimensional data also affects the detection performance of iForest, but the performance can be vastly improved by adding a features selection test like Kurtosis to reduce the dimensionality of the sample space. Normal Instances Only: iForest performs well even if the training set does not contain any anomalous point, the reason being that iForest describes data distributions in such a way that high values of the path length h(xi) correspond to the presence of data points. As a consequence, the presence of anomalies is pretty irrelevant to iForest's detection performance. == Anomaly Detection with Isolation Forest == Anomaly detection with Isolation Forest is a process composed of two main stages: in the first stage, a training dataset is used to build iTrees as described in previous sections. in the second stage, each instance in test set is passed through the iTrees build in the previous stage, and a proper "anomaly score" is assigned to the instance using the algorithm described below Once all the instances in the test set have been assigned an anomaly score, it is possible to mark as "anomaly" any point whose score is greater than a predefined threshold, which depends on the domain the analysis is being applied to. === Anomaly Score === Th

    Read more →
  • Marine Carpuat

    Marine Carpuat

    Marine Carpuat is a computer scientist who works on machine translation and natural language processing. She is known for her research connecting cross-lingual semantics with machine translation. She has been recognized with a NSF Career Award in 2018, a Google Research award in 2016, and Amazon Faculty Awards in 2016 and 2018. == Education == Marine Carpuat obtained her MPhil and PhD from Hong Kong University of Science and Technology in 2008 under the supervision of Dekai Wu. Her PhD thesis was on the topic of machine translation, and demonstrated the first results showing that explicit modeling of lexical semantics could improve the accuracy of a machine translation system. == Career == After completing her education, Carpuat worked at the National Research Council Canada as a researcher. In 2015, she joined University of Maryland as an assistant professor in Computer Science where she is a member of the CLIP lab. Carpuat works in the area of natural language processing with a focus on machine translation and cross-lingual semantics. She has published over 100 peer-reviewed research papers. Her work is published in the proceedings of computer science conferences, including the Annual Meeting of the Association for Computational Linguistics and Empirical Methods in Natural Language Processing. == Selected honors and distinctions == 2016 Google Research Award 2016, 2018 Amazon Research Awards 2018 NSF Career Award

    Read more →
  • Color normalization

    Color normalization

    Color normalization is a topic in computer vision concerned with artificial color vision and object recognition. In general, the distribution of color values in an image depends on the illumination, which may vary depending on lighting conditions, cameras, and other factors. Color normalization allows for object recognition techniques based on color to compensate for these variations. == Main concepts == === Color constancy === Color constancy is a feature of the human internal model of perception, which provides humans with the ability to assign a relatively constant color to objects even under different illumination conditions. This is helpful for object recognition as well as identification of light sources in an environment. For example, humans see an object approximately as the same color when the sun is bright or when the sun is dim. === Applications === Color normalization has been used for object recognition on color images in the field of robotics, bioinformatics and general artificial intelligence, when it is important to remove all intensity values from the image while preserving color values. One example is in case of a scene shot by a surveillance camera over the day, where it is important to remove shadows or lighting changes on same color pixels and recognize the people that passed. Another example is automated screening tools used for the detection of diabetic retinopathy as well as molecular diagnosis of cancer states, where it is important to include color information during classification. == Known issues == The main issue about certain applications of color normalization is that the result looks unnatural or too distant from the original colors. In cases where there is a subtle variation between important aspects, this can be problematic. More specifically, the side effect can be that pixels become divergent and not reflect the actual color value of the image. A way of combating this issue is to use color normalization in combination with thresholding to correctly and consistently segment a colored image. == Transformations and algorithms == There is a vast array of different transformations and algorithms for achieving color normalization and a limited list is presented here. The performance of an algorithm is dependent on the task and one algorithm which performs better than another in one task might perform worse in another (no free lunch theorem). Additionally, the choice of the algorithm depends on the preferences of the user for the end-result, e.g. they may want a more natural-looking color image. === Grey world === The grey world normalization makes the assumption that changes in the lighting spectrum can be modelled by three constant factors applied to the red, green and blue channels of color. More specifically, a change in illuminated color can be modelled as a scaling α, β and γ in the R, G and B color channels and as such the grey world algorithm is invariant to illumination color variations. Therefore, a constancy solution can be achieved by dividing each color channel by its average value as shown in the following formula: ( α R , β G , γ B ) → ( α R α n ∑ i R , β G β n ∑ i G , γ B γ n ∑ i B ) {\displaystyle \left(\alpha R,\beta G,\gamma B\right)\rightarrow \left({\frac {\alpha R}{{\frac {\alpha }{n}}\sum _{i}R}},{\frac {\beta G}{{\frac {\beta }{n}}\sum _{i}G}},{\frac {\gamma B}{{\frac {\gamma }{n}}\sum _{i}B}}\right)} As mentioned above, grey world color normalization is invariant to illuminated color variations α, β and γ, however it has one important problem: it does not account for all variations of illumination intensity and it is not dynamic; when new objects appear in the scene it fails. To solve this problem there are several variants of the grey world algorithm. Additionally there is an iterative variation of the grey world normalization, however it was not found to perform significantly better. === Histogram equalization === Histogram equalization is a non-linear transform which maintains pixel rank and is capable of normalizing for any monotonically increasing color transform function. It is considered to be a more powerful normalization transformation than the grey world method. The results of histogram equalization tend to have an exaggerated blue channel and look unnatural, due to the fact that in most images the distribution of the pixel values is usually more similar to a Gaussian distribution, rather than uniform. === Histogram specification === Histogram specification transforms the red, green and blue histograms to match the shapes of three specific histograms, rather than simply equalizing them. It refers to a class of image transforms which aims to obtain images of which the histograms have a desired shape. As specified, firstly it is necessary to convert the image so that it has a particular histogram. Assume an image x. The following formula is the equalization transform of this image: y = f ( x ) = ∫ 0 x p x ( u ) d u {\displaystyle y=f(x)=\int \limits _{0}^{x}p_{x}(u)du} Then assume wanted image z. The equalization transform of this image is: y ′ = g ( z ) = ∫ 0 z p z ( u ) d u {\displaystyle y'=g(z)=\int \limits _{0}^{z}p_{z}(u)du} Of course p z ( u ) {\displaystyle p_{z}(u)} is the histogram of the output image. The formula to find the inverse of the above transform is: z = g − 1 ( y ′ ) {\displaystyle z=g^{-1}(y')} Therefore, since images y and y' have the same equalized histogram they are actually the same image, meaning y = y' and the transform from the given image x to the wanted image z is: z = g − 1 ( y ′ ) = g − 1 ( y ) = g − 1 ( f ( x ) ) {\displaystyle z=g^{-1}(y')=g^{-1}(y)=g^{-1}(f(x))} Histogram specification has the advantage of producing more realistic looking images, as it does not exaggerate the blue channel like histogram equalization. === Comprehensive Color Normalization === The comprehensive color normalization is shown to increase localization and object classification results in combination with color indexing. It is an iterative algorithm which works in two stages. The first stage is to use the red, green and blue color space with the intensity normalized, to normalize each pixel. The second stage is to normalize each color channel separately, so that the sum of the color components is equal to one third of the number of pixels. The iterations continue until convergence, meaning no additional changes. Formally: Normalize the color image f ( t ) = [ f i j ( t ) ] i = 1... N , j = 1... M {\displaystyle f^{(t)}=[f_{ij}^{(t)}]_{i=1...N,j=1...M}} which consists of color vectors f i j ( t ) = ( r i j ( t ) , g i j ( t ) , b i j ( t ) ) T . {\displaystyle f_{ij}^{(t)}=(r_{ij}^{(t)},g_{ij}^{(t)},b_{ij}^{(t)})^{T}.} For the first step explained above, compute: S i j := r i j ( t ) + g i j ( t ) + b i j ( t ) {\displaystyle S_{ij}:=r_{ij}^{(t)}+g_{ij}^{(t)}+b_{ij}^{(t)}} which leads to r i j ( t + 1 ) = r i j ( t ) S i j , g i j ( t + 1 ) = g i j ( t ) S i j {\displaystyle r_{ij}^{(t+1)}={\frac {r_{ij}^{(t)}}{S_{ij}}},g_{ij}^{(t+1)}={\frac {g_{ij}^{(t)}}{S_{ij}}}} and b i j ( t + 1 ) = b i j ( t ) S i j . {\displaystyle b_{ij}^{(t+1)}={\frac {b_{ij}^{(t)}}{S_{ij}}}.} For the second step explained above, compute: r ′ = 3 N M ∑ i = 1 N ∑ j = 1 M r i j ( t + 1 ) {\displaystyle r'={\frac {3}{NM}}\sum _{i=1}^{N}\sum _{j=1}^{M}r_{ij}^{(t+1)}} and normalize r i j ( t + 2 ) = r i j ( t + 1 ) r ′ . {\displaystyle r_{ij}^{(t+2)}={\frac {r_{ij}^{(t+1)}}{r'}}.} Of course the same process is done for b' and g'. Then these two steps are repeated until the changes between iteration t and t+2 are less than some set threshold. Comprehensive color normalization, just like the histogram equalization method previously mentioned, produces results that may look less natural due to the reduction in the number of color values.

    Read more →
  • Bixby (software)

    Bixby (software)

    Bixby ( ) is a virtual assistant developed by Samsung Electronics that runs on various Samsung-branded appliances, primarily mobile devices but also some refrigerators televisions and PCs. It uses voice commands and a natural-language user interface to answer questions and perform tasks, while adapting to the users' preferences and behavior. Samsung first launched Bixby in 2017. Along with Bixby voice assistant, its other main component currently is Bixby Vision, a contextual and visual search augmented reality camera app. Formerly, the Bixby suite consisted of a number of other tools, but these have since been renamed, such as Bixby Routines (now Modes and Routines). == History == On 20 March 2017, Samsung announced the voice-powered digital assistant named "Bixby" as a replacement of the S Voice assistant. It was introduced alongside the Galaxy S8 and S8+ and the Galaxy Tab A (2017) during the Galaxy Unpacked 2017 event. Although released for these devices, it could also be sideloaded on older Galaxy devices running Android Nougat. Before the phone's release, the Bixby Button was reprogrammable and could be set to open other applications or assistants, such as Google Assistant. However, near the phone's release, this ability was removed with a firmware update. Remapping remained possible through third-party apps. Bixby was launched in Korean on 1 May 2017 (KST). Bixby Voice was intended to be made available in the US later that spring. However, Samsung postponed the release, as Bixby had issues understanding English. The English version was finally rolled out in July 2017, followed by a Chinese language version later that year. In October 2017, Samsung announced the release of Bixby 2.0 during its annual developer conference in San Francisco. The new version was rolled out across the company's line of connected products, including smartphones, TVs, and refrigerators. Third parties were allowed to develop applications for Bixby using the Samsung Developer Kit. In August 2018, Samsung announced the Bixby-integrated Galaxy Home smart speaker. In 2019, UX developers at Samsung stated that they intended to use AR Emoji avatars as a personified Bixby assistant. At SDC19, Samsung displayed the Galaxy Home Mini speaker, which also supported Bixby. Bixby 3.0 was released with One UI 3 at the start of 2021. With version 3.0, Home and Reminders features were separated from Bixby. In June 2021, screenshots surfaced for what some thought as a replacement for Bixby. The three-dimensional virtual assistant, Sam, was popular on social media, though it was not intended as a replacement for Bixby. Bixby launched for Microsoft Windows in October 2021, with distribution through the Microsoft Store. This version of Bixby was optimized for Samsung's Galaxy Book computers. Samsung launched an AI Bixby custom voice creator in 2023, allowing users to record their own voice commands. Most recently, in July 2024, Samsung confirmed that it plans to launch an upgraded version of Bixby later that year. This new Bixby would be powered by Samsung's proprietary large language model (LLM) technology, promising a significant boost to Bixby's capabilities with the help of generative AI. In January 2025, with the announcement of Galaxy S25 and the One UI 7 update, Bixby was no longer the default voice assistant, having been replaced by Google Gemini. Despite this, Bixby still continued to be developed and expanded by Samsung and was revamped at the same time with new AI capabilities. Samsung brought the "smarter" Bixby to Samsung televisions, allowing users to speak to their TV sets and control their homes with it. A visual refresh was planned for One UI 8.5. == Functionality == Bixby is a voice assistant developed by Samsung that provides device control, information retrieval, and task automation using voice input and artificial intelligence. It can answer contextual queries, adjust system settings, perform searches, and manage reminders or schedules. The service also personalizes responses by recognizing individual user voices. Bixby itself was also formerly called Bixby Voice to differentiate from other Bixby tools in the suite. === Bixby Vision === Bixby Vision is a visual recognition feature that analyzes images captured through the device camera and provides context-specific information or actions. It combines on-device processing with cloud-based AI resources to identify objects, detect text, and interpret scenes within supported applications. It comes pre-installed on Samsung Galaxy phones. It is considered to be the imaging component of Bixby. ==== Translate ==== Detects foreign text in the camera view and provides real-time translation by overlaying translated text on the preview. ==== Text ==== Uses optical character recognition(OCR) to extract printed or handwritten text for copying, searching, or sharing. ==== Discover ==== Identifies consumer products, fashion items, or furniture and retrieves visually similar items or related online information. ==== Wine ==== Recognizes wine labels and provides information such as variety, region of origin, average price, and reviews. ==== Scene Describer ==== Generates written and spoken descriptions of captured scenes, supporting accessibility for users with visual impairments. ==== Object Identifier ==== Identifies plants, animals, food items, or landmarks and displays corresponding names or classification details. ==== Text Reader ==== Converts detected text into spoken audio using text-to-speech functionality. ==== Color Detector ==== Identifies and names colors within the frame, displaying or reading the recognized color aloud. === Former Bixby tools === Bixby Home was a vertically scrolling home screen displaying cards of information such as weather, fitness activity, and smart home controls. It was renamed Samsung Daily with the release of One UI 2.1 in 2020, then replaced by Samsung Free in One UI 3.0. Samsung Free was eventually discontinued in some markets. Its successor, Samsung News, now functions as a news aggregation service with optional home-screen integration similar to Bixby Home. Bixby Routines was an automation feature that allowed users to create custom rules based on triggers such as time, location, or device conditions. Beginning with One UI 5.0, it was renamed Modes and Routines. Bixby Text Call, introduced in One UI 5.0 (2022) in select regions, enabled users to handle incoming calls via speech-to-text conversion and vice versa. It is now named simply Text Call and can be found in the Phone app settings. Bixby Touch allowed users to trigger context-aware actions by touching on-screen content. It analyzed images, text, and other visual elements displayed on the device and provided related options such as translation, image search, product lookup, or other content-based information. Several of its capabilities overlapped with, or were later superseded by, features offered through Bixby Vision. Other legacy components including Bixby Touch, Bixby Global Action, Bixby Dictation, and Bixby Wakeup, formed part of the early Bixby suite and have since been phased out, though exact discontinuation details vary by region. == Regions and languages == As of April 2018, Bixby is available in over 195 countries, but only in Korean, English (American), and Chinese (Mandarin). The limitation is that the models not intended for the Japanese market, like S10e, are not allowed to login to Bixby services from Japan; therefore Bixby becomes blocked. The choice of languages has since expanded: Samsung has deployed Bixby's voice command function in French, and on 20 February 2019 Samsung announced the addition of further languages: English (British), German, Italian and Spanish (Spain). On 22 February 2020, Samsung announced the addition of Portuguese (Brazil), for Galaxy S10 & Note10, in Beta, and later for other models. == Compatible devices == === Flagship series === Galaxy S series: All models since Galaxy S7 Galaxy Tab S: All models since Galaxy Tab S4 Galaxy Note: All models since Galaxy Note FE and Galaxy Note 8 Galaxy Z series: All models === Other series === Galaxy A Galaxy A6/A6+ (Bixby Home, Reminder and Vision) Galaxy A7 (2017) (available to users in South Korea only; Bixby Home and Reminder only) Galaxy A7 (2018) (Bixby Home, Reminder and Vision only) Galaxy A8 (2018) (including A8 Star; Bixby Home, Reminder and Vision only; S Voice used instead) Galaxy A8s (Bixby Home, Reminder and Vision only) Galaxy A9 (2018)/A9s/A9 Star Pro (including A9 Star and A9 Star Lite; Bixby Home, Reminder and Vision only; S Voice used instead) Galaxy A9 Pro (2019) (Bixby Home, Reminder and Vision only) Galaxy A20 (Bixby Home and Service) Galaxy A21s Galaxy A30s (Bixby Home, Vision, Reminder and Routines) Galaxy A40 (Bixby Home and Reminder) Galaxy A41 (Bixby Home, Vision, Routines and Reminder) Galaxy A50 (Bixby Home, Voice, Vision, Reminder and Routines) Galaxy A50s (Bixby Home, Voice, Vision, Reminder and Routines) G

    Read more →
  • Distributional–relational database

    Distributional–relational database

    A distributional–relational database, or word-vector database, is a database management system (DBMS) that uses distributional word-vector representations to enrich the semantics of structured data. As distributional word-vectors can be built automatically from large-scale corpora, this enrichment supports the construction of databases which can embed large-scale commonsense background knowledge into their operations. Distributional-Relational models can be applied to the construction of schema-agnostic databases (databases in which users can query the data without being aware of its schema), semantic search, schema-integration and inductive and abductive reasoning as well as different applications in which a semantically flexible knowledge representation model is needed. The main advantage of distributional–relational models over purely logical or semantic web models is the fact that the core semantic associations can be automatically captured from corpora, in contrast to the definition of manually curated ontologies and rule knowledge bases. == Distributional–relational models == Distributional–relational models were first formalized as a mechanism to cope with the vocabulary/semantic gap between users and the schema behind the data. In this scenario, distributional semantic relatedness measures, combined with semantic pivoting heuristics can support the approximation between user queries (expressed in their own vocabulary), and data (expressed in the vocabulary of the designer). In this model, the database symbols (entities and relations) are embedded into a distributional semantic space and have a geometric interpretation under a latent or explicit semantic space. The geometric aspect supports the semantic approximation between entities from different databases, or between a query term and a database entity. The distributional relational model then becomes a double layered model where the semantics of the structured data provides the fine-grained semantics intended by the database designer, which is extended by the distributional semantic model which contains the semantic associations expressed at a broader use. These models support the generalization from a closed communication scenario (in which database designers and users live in the same context, e.g. the same organization) to an open communication scenario (e.g. different organizations, the Web), creating an abstraction layer between users and the specific representation of the conceptual model.

    Read more →
  • Nando de Freitas

    Nando de Freitas

    Nando de Freitas is a researcher in the field of machine learning, and in particular in the subfields of neural networks, Bayesian inference and Bayesian optimization, and deep learning. == Biography == De Freitas was born in Zimbabwe. He did his undergraduate studies (1991–94) and MSc (1994–96) at the University of the Witwatersrand, and his PhD at Trinity College, Cambridge (1996-2000). From 2001, he was a professor at the University of British Columbia, before joining the Department of Computer Science at the University of Oxford from 2013 to 2017. In 2014, he joined Google's DeepMind when the company acquired Oxford spinoff Dark Blue Labs. He was in charge of the team that worked on creating tools for generating audio and images at DeepMind. In September 2024, de Freitas joined Microsoft AI as VP of AI. == Awards and recognition == De Freitas has been recognised for his contributions to machine learning through the following awards: Best Paper Award at the International Conference on Machine Learning (2016) Best Paper Award at the International Conference on Learning Representations (2016) Google Faculty Research Award (2014) Distinguished Paper Award at the International Joint Conference on Artificial Intelligence (2013) Charles A. McDowell Award for Excellence in Research (2012) Mathematics of Information Technology and Complex Systems Young Researcher Award (2010)

    Read more →
  • Semi-automation

    Semi-automation

    Semi-automation is a process or procedure that is performed by the combined activities of man and machine with both human and machine steps typically orchestrated by a centralized computer controller. Within manufacturing, production processes may be fully manual, semi-automated, or fully automated. In this case, semi-automation may vary in its degree of manual and automated steps. Semi-automated manufacturing processes are typically orchestrated by a computer controller which sends messages to the worker at the time in which he/she should perform a step. The controller typically waits for feedback that the human performed step has been completed via either a human-machine interface or via electronic sensors distributed within the process. Controllers within semi-automated processes may either directly control machinery or send signals to machinery distributed within the process. Centralized computer controllers within semi-automated processes orchestrate processes by instructing the worker, providing electronic communication and control to process equipment, tools, or machines, as well as perform data management to record and ensure that the process meets established process criteria. Many manufacturers choose not to fully automate a process, and instead implement semi-automation due to the complexity of the task, or the number of products produced is too low to justify the investment in full automation. Other processes may not be fully automated because it may reduce the flexibility to easily adapt the processes to reflect production needs.

    Read more →
  • Büchi automaton

    Büchi automaton

    In computer science and automata theory, a deterministic Büchi automaton is a theoretical machine which either accepts or rejects infinite inputs. Such a machine has a set of states and a transition function, which determines which state the machine should move to from its current state when it reads the next input character. Some states are accepting states and one state is the start state. The machine accepts an input if and only if it will pass through an accepting state infinitely many times as it reads the input. A non-deterministic Büchi automaton, later referred to just as a Büchi automaton, has a transition function which may have multiple outputs, leading to many possible paths for the same input; it accepts an infinite input if and only if some possible path is accepting. Deterministic and non-deterministic Büchi automata generalize deterministic finite automata and nondeterministic finite automata to infinite inputs. Each are types of ω-automata. Büchi automata recognize the ω-regular languages, the infinite word version of regular languages. They are named after the Swiss mathematician Julius Richard Büchi, who invented them in 1962. Büchi automata are often used in model checking as an automata-theoretic version of a formula in linear temporal logic. == Formal definition == Formally, a deterministic Büchi automaton is a tuple A = ( Q , Σ , δ , q 0 , F ) {\textstyle A=(Q,\Sigma ,\delta ,q_{0},\mathbf {F} )} that consists of the following components: Q {\textstyle Q} is a finite set. The elements of Q {\textstyle Q} are called the states of A {\textstyle A} . Σ {\textstyle \Sigma } is a finite set called the alphabet of A {\textstyle A} . δ : Q × Σ → Q {\textstyle \delta \colon Q\times \Sigma \to Q} is a function, called the transition function of A {\textstyle A} . q 0 {\textstyle q_{0}} is an element of Q {\textstyle Q} , called the initial state of A {\textstyle A} . F ⊆ Q {\textstyle \mathbf {F} \subseteq Q} is the acceptance condition. A run i _ = i 0 i 1 i 2 ⋯ ∈ Σ ω {\displaystyle {\underline {i}}=i_{0}i_{1}i_{2}\cdots \in \Sigma ^{\omega }} is an infinite string of inputs of A {\displaystyle A} . By calling δ {\displaystyle \delta } recursively, we can extend it to a function δ ω : Σ ω → Q ω {\displaystyle \delta ^{\omega }:\Sigma ^{\omega }\to Q^{\omega }} . A state q ∈ Q {\displaystyle q\in Q} is said to occur infinitely often for a run i _ {\displaystyle {\underline {i}}} when the set { n ∈ N ∣ δ ω ( i _ ) n = q } {\displaystyle \{n\in \mathbb {N} \mid \delta ^{\omega }({\underline {i}})_{n}=q\}} is infinite. Let I n f ( i _ ) {\displaystyle \mathrm {Inf} ({\underline {i}})} be the set of states occurring infinitely often for i _ {\displaystyle {\underline {i}}} . The language of A {\displaystyle A} is then the set of runs of A {\displaystyle A} in which at least one of the infinitely-often occurring states is in F {\textstyle \mathbf {F} } ; in symbols: L ( A ) = { i _ ∈ Σ ω ∣ I n f ( i _ ) ∩ F ≠ ∅ } . {\displaystyle L(A)=\{{\underline {i}}\in \Sigma ^{\omega }\mid \mathrm {Inf} ({\underline {i}})\cap \mathbf {F} \neq \varnothing \}.} In a (non-deterministic) Büchi automaton, the transition function δ {\textstyle \delta } is replaced with a transition relation Δ {\textstyle \Delta } that returns a set of states, and the single initial state q 0 {\textstyle q_{0}} is replaced by a set I {\textstyle I} of initial states. Generally, the term Büchi automaton without qualifier refers to non-deterministic Büchi automata. For more comprehensive formalism see also ω-automaton. == Closure properties == The set of Büchi automata is closed under the following operations. Let A = ( Q A , Σ , Δ A , I A , F A ) {\displaystyle A=(Q_{A},\Sigma ,\Delta _{A},I_{A},{F}_{A})} and B = ( Q B , Σ , Δ B , I B , F B ) {\displaystyle B=(Q_{B},\Sigma ,\Delta _{B},I_{B},{F}_{B})} be Büchi automata and C = ( Q C , Σ , Δ C , I C , F C ) {\displaystyle C=(Q_{C},\Sigma ,\Delta _{C},I_{C},{F}_{C})} be a finite automaton. Union: There is a Büchi automaton that recognizes the language L ( A ) ∪ L ( B ) . {\displaystyle L(A)\cup L(B).} Proof: If we assume, w.l.o.g., Q A ∩ Q B {\displaystyle Q_{A}\cap Q_{B}} is empty then L ( A ) ∪ L ( B ) {\displaystyle L(A)\cup L(B)} is recognized by the Büchi automaton ( Q A ∪ Q B , Σ ∪ Σ , Δ A ∪ Δ B , I A ∪ I B , F A ∪ F B ) . {\displaystyle (Q_{A}\cup Q_{B},\Sigma \cup \Sigma ,\Delta _{A}\cup \Delta _{B},I_{A}\cup I_{B},{F}_{A}\cup {F}_{B}).} Intersection: There is a Büchi automaton that recognizes the language L ( A ) ∩ L ( B ) . {\displaystyle L(A)\cap L(B).} Proof: The Büchi automaton A ′ = ( Q ′ , Σ , Δ ′ , I ′ , F ′ ) {\displaystyle A'=(Q',\Sigma ,\Delta ',I',F')} recognizes L ( A ) ∩ L ( B ) , {\displaystyle L(A)\cap L(B),} where Q ′ = Q A × Q B × { 1 , 2 } {\displaystyle Q'=Q_{A}\times Q_{B}\times \{1,2\}} Δ ′ = Δ 1 ∪ Δ 2 {\displaystyle \Delta '=\Delta _{1}\cup \Delta _{2}} Δ 1 = { ( ( q A , q B , 1 ) , a , ( q A ′ , q B ′ , i ) ) | ( q A , a , q A ′ ) ∈ Δ A and ( q B , a , q B ′ ) ∈ Δ B and if q A ∈ F A then i = 2 else i = 1 } {\displaystyle \Delta _{1}=\{((q_{A},q_{B},1),a,(q'_{A},q'_{B},i))|(q_{A},a,q'_{A})\in \Delta _{A}{\text{ and }}(q_{B},a,q'_{B})\in \Delta _{B}{\text{ and if }}q_{A}\in F_{A}{\text{ then }}i=2{\text{ else }}i=1\}} Δ 2 = { ( ( q A , q B , 2 ) , a , ( q A ′ , q B ′ , i ) ) | ( q A , a , q A ′ ) ∈ Δ A and ( q B , a , q B ′ ) ∈ Δ B and if q B ∈ F B then i = 1 else i = 2 } {\displaystyle \Delta _{2}=\{((q_{A},q_{B},2),a,(q'_{A},q'_{B},i))|(q_{A},a,q'_{A})\in \Delta _{A}{\text{ and }}(q_{B},a,q'_{B})\in \Delta _{B}{\text{ and if }}q_{B}\in F_{B}{\text{ then }}i=1{\text{ else }}i=2\}} I ′ = I A × I B × { 1 } {\displaystyle I'=I_{A}\times I_{B}\times \{1\}} F ′ = { ( q A , q B , 2 ) | q B ∈ F B } {\displaystyle F'=\{(q_{A},q_{B},2)|q_{B}\in F_{B}\}} By construction, r ′ = ( q A 0 , q B 0 , i 0 ) , ( q A 1 , q B 1 , i 1 ) , … {\displaystyle r'=(q_{A}^{0},q_{B}^{0},i^{0}),(q_{A}^{1},q_{B}^{1},i^{1}),\dots } is a run of automaton A' on input word w {\textstyle w} if r A = q A 0 , q A 1 , … {\displaystyle r_{A}=q_{A}^{0},q_{A}^{1},\dots } is run of A {\textstyle A} on w {\textstyle w} and r B = q B 0 , q B 1 , … {\displaystyle r_{B}=q_{B}^{0},q_{B}^{1},\dots } is run of B {\textstyle B} on w {\textstyle w} . r A {\textstyle r_{A}} is accepting and r B {\textstyle r_{B}} is accepting if r ′ {\textstyle r'} is concatenation of an infinite series of finite segments of 1-states (states with third component 1) and 2-states (states with third component 2) alternatively. There is such a series of segments of r ′ {\textstyle r'} if r ′ {\textstyle r'} is accepted by A ′ {\textstyle A'} . Concatenation: There is a Büchi automaton that recognizes the language L ( C ) ⋅ L ( A ) . {\displaystyle L(C)\cdot L(A).} Proof: If we assume, w.l.o.g., Q C ∩ Q A {\displaystyle Q_{C}\cap Q_{A}} is empty then the Büchi automaton A ′ = ( Q C ∪ Q A , Σ , Δ ′ , I ′ , F A ) {\displaystyle A'=(Q_{C}\cup Q_{A},\Sigma ,\Delta ',I',F_{A})} recognizes L ( C ) ⋅ L ( A ) {\displaystyle L(C)\cdot L(A)} , where Δ ′ = Δ A ∪ Δ C ∪ { ( q , a , q ′ ) | q ′ ∈ I A and ∃ f ∈ F C . ( q , a , f ) ∈ Δ C } {\displaystyle \Delta '=\Delta _{A}\cup \Delta _{C}\cup \{(q,a,q')|q'\in I_{A}{\text{ and }}\exists f\in F_{C}.(q,a,f)\in \Delta _{C}\}} if I C ∩ F C is empty then I ′ = I C otherwise I ′ = I C ∪ I A {\displaystyle {\text{ if }}I_{C}\cap F_{C}{\text{ is empty then }}I'=I_{C}{\text{ otherwise }}I'=I_{C}\cup I_{A}} ω-closure: If L ( C ) {\displaystyle L(C)} does not contain the empty word then there is a Büchi automaton that recognizes the language L ( C ) ω . {\displaystyle L(C)^{\omega }.} Proof: The Büchi automaton that recognizes L ( C ) ω {\displaystyle L(C)^{\omega }} is constructed in two stages. First, we construct a finite automaton A ′ {\textstyle A'} such that A ′ {\textstyle A'} also recognizes L ( C ) {\displaystyle L(C)} but there are no incoming transitions to initial states of A ′ {\textstyle A'} . So, A ′ = ( Q C ∪ { q new } , Σ , Δ ′ , { q new } , F C ) , {\displaystyle A'=(Q_{C}\cup \{q_{\text{new}}\},\Sigma ,\Delta ',\{q_{\text{new}}\},F_{C}),} where Δ ′ = Δ C ∪ { ( q new , a , q ′ ) | ∃ q ∈ I C . ( q , a , q ′ ) ∈ Δ C } . {\displaystyle \Delta '=\Delta _{C}\cup \{(q_{\text{new}},a,q')|\exists q\in I_{C}.(q,a,q')\in \Delta _{C}\}.} Note that L ( C ) = L ( A ′ ) {\displaystyle L(C)=L(A')} because L ( C ) {\displaystyle L(C)} does not contain the empty string. Second, we will construct the Büchi automaton A ″ {\textstyle A''} that recognize L ( C ) ω {\displaystyle L(C)^{\omega }} by adding a loop back to the initial state of A ′ {\textstyle A'} . So, A ″ = ( Q C ∪ { q new } , Σ , Δ ″ , { q new } , { q new } ) {\displaystyle A''=(Q_{C}\cup \{q_{\text{new}}\},\Sigma ,\Delta '',\{q_{\text{new}}\},\{q_{\text{new}}\})} , where Δ ″ = Δ ′ ∪ { ( q , a , q new ) | ∃ q ′ ∈ F C . ( q , a , q ′ ) ∈ Δ ′ } . {\displaystyle \Delta ''=\Delta '\cup \{(q,a,q_{\text{new}})|\exists q'\in F_{C}.(q,a,q')\in \Delta '\}.} Complementation:

    Read more →
  • Best AI Marketing Tools in 2026

    Best AI Marketing Tools in 2026

    Trying to pick the best AI marketing tool? An AI marketing tool is software that uses machine learning to help you get more done — it scales effortlessly from a single task to thousands. The best picks balance beginner-friendly simplicity with the depth power users need, and they ship updates often. Whether you are a beginner or a pro, the right AI marketing tool slots into your workflow and pays for itself fast. Read on for hands-on impressions, pricing tiers, and the standout features that matter.

    Read more →
  • Quantum finite automaton

    Quantum finite automaton

    In quantum computing, quantum finite automata (QFA) or quantum state machines are a quantum analog of probabilistic automata or a Markov decision process. They provide a mathematical abstraction of real-world quantum computers. Several types of automata may be defined, including measure-once and measure-many automata. Quantum finite automata can also be understood as the quantization of subshifts of finite type, or as a quantization of Markov chains. QFAs are, in turn, special cases of geometric finite automata or topological finite automata. The automata work by receiving a finite-length string σ = ( σ 0 , σ 1 , … , σ k ) {\displaystyle \sigma =(\sigma _{0},\sigma _{1},\dots ,\sigma _{k})} of letters σ i {\displaystyle \sigma _{i}} from a finite alphabet Σ {\displaystyle \Sigma } , and assigning to each such string a probability Pr ⁡ ( σ ) {\displaystyle \operatorname {Pr} (\sigma )} indicating the probability of the automaton being in an accept state; that is, indicating whether the automaton accepted or rejected the string. The languages accepted by QFAs are not the regular languages of deterministic finite automata, nor are they the stochastic languages of probabilistic finite automata. Study of these quantum languages remains an active area of research. == Informal description == There is a simple, intuitive way of understanding quantum finite automata. One begins with a graph-theoretic interpretation of deterministic finite automata (DFA). A DFA can be represented as a labelled directed graph, with states as nodes in the graph, and arrows representing state transitions. Each arrow is labelled with a possible input symbol, so that, given a specific state and an input symbol, the arrow points at the next state. One way of representing such a graph is by means of a set of adjacency matrices, with one matrix for each input symbol. In this case, a list of possible DFA states is written as a column vector. For a given input symbol, the adjacency matrix indicates how any given state (row in the state vector) will transition to the next state; a state transition is given by matrix multiplication. One needs a distinct adjacency matrix for each possible input symbol, since each input symbol can result in a different transition. The entries in the adjacency matrix must be zero's and one's. For any given column in the matrix, only one entry can be non-zero: this is the entry that indicates the next (unique) state transition. Similarly, the state of the system is a column vector, in which only one entry is non-zero: this entry corresponds to the current state of the system. Let Σ {\displaystyle \Sigma } denote the set of input symbols. For a given input symbol α ∈ Σ {\displaystyle \alpha \in \Sigma } , write U α {\displaystyle U_{\alpha }} as the adjacency matrix that describes the evolution of the DFA to its next state. The set { U α | α ∈ Σ } {\displaystyle \{U_{\alpha }|\alpha \in \Sigma \}} then completely describes the state transition function of the DFA. Let Q represent the set of possible states of the DFA. If there are N states in Q, then each matrix U α {\displaystyle U_{\alpha }} is N by N-dimensional. The initial state q 0 ∈ Q {\displaystyle q_{0}\in Q} corresponds to a column vector with a one in the q0'th row. A general state q is then a column vector with a one in the q'th row. By abuse of notation, let q0 and q also denote these two vectors. Then, after reading input symbols α β γ ⋯ {\displaystyle \alpha \beta \gamma \cdots } from the input tape, the state of the DFA will be given by q = ⋯ U γ U β U α q 0 . {\displaystyle q=\cdots U_{\gamma }U_{\beta }U_{\alpha }q_{0}.} The state transitions are given by ordinary matrix multiplication (that is, multiply q0 by U α {\displaystyle U_{\alpha }} , etc.); the order of application is 'reversed' only because we follow the standard notation of linear algebra. The above description of a DFA, in terms of linear operators and vectors, almost begs for generalization, by replacing the state-vector q by some general vector, and the matrices { U α } {\displaystyle \{U_{\alpha }\}} by some general operators. This is essentially what a QFA does: it replaces q by a unit vector, and the { U α } {\displaystyle \{U_{\alpha }\}} by unitary matrices. Other, similar generalizations also become obvious: the vector q can be some distribution on a manifold; the set of transition matrices become automorphisms of the manifold; this defines a topological finite automaton. Similarly, the matrices could be taken as automorphisms of a homogeneous space; this defines a geometric finite automaton. Before moving on to the formal description of a QFA, there are two noteworthy generalizations that should be mentioned and understood. The first is the non-deterministic finite automaton (NFA). In this case, the vector q is replaced by a vector that can have more than one entry that is non-zero. Such a vector then represents an element of the power set of Q; it’s just an indicator function on Q. Likewise, the state transition matrices { U α } {\displaystyle \{U_{\alpha }\}} are defined in such a way that a given column can have several non-zero entries in it. Equivalently, the multiply-add operations performed during component-wise matrix multiplication should be replaced by Boolean and-or operations so that the semantics are kept intact. A well-known theorem states that, for each DFA, there is an equivalent NFA, and vice versa. This implies that the set of languages that can be recognized by DFA's and NFA's are the same; these are the regular languages. In the generalization to QFAs, the set of recognized languages will be different to the regular languages. Describing that set is one of the outstanding research problems in QFA theory. Another generalization that should be immediately apparent is to use a stochastic matrix for the transition matrices, and a probability vector for the state; this gives a probabilistic finite automaton. The entries in the state vector must be real numbers, positive, and sum to one, in order for the state vector to be interpreted as a probability. The transition matrices must preserve this property: this is why they must be stochastic. Each state vector should be imagined as specifying a point in a simplex; thus, this is a topological automaton, with the simplex being the manifold, and the stochastic matrices being linear automorphisms of the simplex onto itself. Since each transition is (essentially) independent of the previous (if we disregard the distinction between accepted and rejected languages), the PFA essentially becomes a kind of Markov chain. By contrast, in a QFA, the manifold is complex projective space C P N {\displaystyle \mathbb {C} P^{N}} , and the transition matrices are unitary matrices. Each point in C P N {\displaystyle \mathbb {C} P^{N}} corresponds to a (pure) quantum-mechanical state; the unitary matrices can be thought of as governing the time evolution of the system (viz in the Schrödinger picture). The generalization from pure states to mixed states should be straightforward: A mixed state is simply a measure-theoretic probability distribution on C P N {\displaystyle \mathbb {C} P^{N}} . A worthy point to contemplate is the distributions that result on the manifold during the input of a language. In order for an automaton to be 'efficient' in recognizing a language, that distribution should be 'as uniform as possible'. This need for uniformity is the underlying principle behind maximum entropy methods: these simply guarantee crisp, compact operation of the automaton. Put in other words, the machine learning methods used to train hidden Markov models generalize to QFAs as well: the Viterbi algorithm and the forward–backward algorithm generalize readily to the QFA. Although the study of QFA was popularized in the work of Kondacs and Watrous in 1997 and later by Moore and Crutchfeld, they were described as early as 1971, by Ion Baianu. == Measure-once automata == Measure-once automata were introduced by Cris Moore and James P. Crutchfield. They may be defined formally as follows. As with an ordinary finite automaton, the quantum automaton is considered to have N {\displaystyle N} possible internal states, represented in this case by an N {\displaystyle N} -level qudit | ψ ⟩ {\displaystyle |\psi \rangle } . More precisely, the N {\displaystyle N} -level qudit | ψ ⟩ ∈ P ( C N ) {\displaystyle |\psi \rangle \in P(\mathbb {C} ^{N})} is an element of ( N − 1 ) {\displaystyle (N-1)} -dimensional complex projective space, carrying an inner product ‖ ⋅ ‖ {\displaystyle \Vert \cdot \Vert } that is the Fubini–Study metric. The state transitions, transition matrices or de Bruijn graphs are represented by a collection of N × N {\displaystyle N\times N} unitary matrices U α {\displaystyle U_{\alpha }} , with one unitary matrix for each letter α ∈ Σ {\displaystyle \alpha \in \Sigma } . That is, given an input letter α {\displaystyle \alpha } , the unitary matrix describe

    Read more →
  • Gorn address

    Gorn address

    A Gorn address (Gorn, 1967) is a method of identifying and addressing any node within a tree data structure. This notation is often used for identifying nodes in a parse tree defined by phrase structure rules. The Gorn address is a sequence of zero or more integers conventionally separated by dots, e.g., 0 or 1.0.1. The root which Gorn calls can be regarded as the empty sequence. And the j {\displaystyle j} -th child of the i {\displaystyle i} -th child has an address i . j {\displaystyle i.j} , counting from 0. It is named after American computer scientist Saul Gorn.

    Read more →
  • Liz Liddy

    Liz Liddy

    Elizabeth DuRoss Liddy (May 12, 1944 – August 21, 2025) was an American computer scientist and academic who was professor of information science and dean of the Syracuse University School of Information Studies. She was a pioneer in the field of natural language processing. == Early life and education == Liddy was born in Dayton, Ohio, on May 14, 1944, and grew up in Utica, New York. She was one of five children, all of whom worked in her father's family business. Liddy attended St. Francis DeSalle High School, where she was awarded a Regent's Scholarship, and eventually attended Daemen College. She was literary editor of her high school year book and edited a literary magazine during her time at college. At Daemen College Liddy studied English language and literature. After graduating Liddy remained in New York, where she volunteered in an elementary school library. She joined the Syracuse University School of Information Studies in 1983, where she started a graduate program in library science. She worked as a faculty librarian at Onondaga Community College whilst earning her degree. Here Liddy worked as a Visiting assistant professor, whilst completing her doctorate part-time in information transfer. Her dissertation research involved natural language processing, a computerized approach to analyzing text. She was hired to the faculty at Syracuse University whilst completing her PhD. == Research and career == In 1994 Liddy was the founding President of TextWise, a semantics-based search engine. The first product she developed was called Document Retrieval Using Linguistic Knowledge (DR-LINK). She left TextWise in 1999, after growing the number of employees to over 50. She started the Syracuse University Center for Natural Language Processing in 1999, and was honored with the university's Outstanding Alumni Award the following year. Liddy was appointed Dean of the School of Information Studies (iSchool) in 2008, and held the position for over ten years. She temporarily left the role in 2015. The school was transformed under her leadership, increasing the enrollment of students by over 70% and launching a graduate certificate in data science. She raised over $20 million to support research and development at Syracuse University. She chaired the iSchool Organization, which connects information science schools all over the world, from 2012 to 2014. Liddy worked to increase the representation of women at the iSchool, through initiatives such as the IT Girls Overnight Retreat – an annual weekend to introduce high school girls to Information Technology. She improved the career development programs of students at Syracuse University, increasing student employment to almost 100% post graduation. Liddy retired as Dean of the iSchool in 2019. === Selected innovations === US 6026388, Liddy, Elizabeth D., "User interface and other enhancements for natural language information retrieval system and method", published August 16, 1995, issued February 15, 2000 US 5963940, Liddy, Elizabeth D., "Natural language information retrieval system and method", published August 16, 1995, issued October 5, 1999 US 6006221, Liddy, Elizabeth D., "Multilingual document retrieval system and method using semantic vector matching", published August 16, 1995, issued December 21, 1999 == Personal life and death == Liddy was married shortly after graduating Daemen College in 1966. She had three children. Liddy died in Charlotte, North Carolina, on August 21, 2025, at the age of 81.

    Read more →
  • Paul Christiano

    Paul Christiano

    Paul Christiano is an American researcher in the field of artificial intelligence (AI), with a specific focus on AI alignment, which is the subfield of AI safety research that aims to steer AI systems toward human interests. He serves as the Head of Safety for the Center for AI Standards and Innovation inside NIST. He formerly led the language model alignment team at OpenAI and became founder and head of the non-profit Alignment Research Center (ARC), which works on theoretical AI alignment and evaluations of machine learning models. In 2023, Christiano was named as one of the TIME 100 Most Influential People in AI (TIME100 AI). In September 2023, Christiano was appointed to the UK government's Frontier AI Taskforce advisory board. Before working at the Center for AI Standards and Innovation, he was an initial trustee on Anthropic's Long-Term Benefit Trust. == Education == Christiano attended the Harker School in San Jose, California. He competed on the U.S. team and won a silver medal at the 49th International Mathematics Olympiad (IMO) in 2008. In 2012, Christiano graduated from the Massachusetts Institute of Technology (MIT) with a degree in mathematics. At MIT, he researched data structures, quantum cryptography, and combinatorial optimization. He then went on to complete a PhD at the University of California, Berkeley. While at Berkeley, Christiano collaborated with researcher Katja Grace on AI Impacts, co-developing a preliminary methodology for comparing supercomputers to brains, using traversed edges per second (TEPS). He also experimented with putting Carl Shulman's donor lottery theory into practice, raising nearly $50,000 in a pool to be donated to a single charity. == Career == At OpenAI, Christiano co-authored the paper "Deep Reinforcement Learning from Human Preferences" (2017) and other works developing reinforcement learning from human feedback (RLHF). He is considered one of the principal architects of RLHF, which in 2017 was "considered a notable step forward in AI safety research", according to The New York Times. Other works such as "AI safety via debate" (2018) focus on the problem of scalable oversight – supervising AIs in domains where humans would have difficulty judging output quality. Christiano left OpenAI in 2021 to work on more conceptual and theoretical issues in AI alignment and subsequently founded the Alignment Research Center to focus on this area. One subject of study is the problem of eliciting latent knowledge from advanced machine learning models. ARC also develops techniques to identify and test whether an AI model is potentially dangerous. In April 2023, Christiano told The Economist that ARC was considering developing an industry standard for AI safety. As of April 2024, Christiano was listed as the head of AI safety for the US AI Safety Institute at NIST. One month earlier in March 2024, staff members and scientists at the institute threatened to resign upon being informed of Christiano's pending appointment to the role, stating that his ties to the effective altruism movement may jeopardize the AI Safety Institute's objectivity and integrity. === Views on AI risks === He is known for his views on the potential risks of advanced AI. In 2017, Wired magazine stated that Christiano and his colleagues at OpenAI weren't worried about the destruction of the human race by "evil robots", explaining that "[t]hey’re more concerned that, as AI progresses beyond human comprehension, the technology’s behavior may diverge from our intended goals." However, in a widely quoted interview with Business Insider in 2023, Christiano said that there is a “10–20% chance of AI takeover, [with] many [or] most humans dead.” He also conjectured a “50/50 chance of doom shortly after you have AI systems that are human level.” == Personal life == Christiano is married to Ajeya Cotra, a member of METR's technical staff.

    Read more →