AI Face Hair Boy

AI Face Hair Boy — independent reviews, comparisons, pricing and step-by-step guides on Aizhi.

  • Companion robot

    Companion robot

    A companion robot is a robot created to create real or apparent companionship for human beings. Target markets for companion robots include the elderly and single children. Companions robots are expected to communicate with non-experts in a natural and intuitive way. They offer a variety of functions, such as monitoring the home remotely, communicating with people, or waking people up in the morning. Their aim is to perform a wide array of tasks including educational functions, home security, diary duties, entertainment and message delivery services, etc. The idea of companionship with robots has already existed on science fictions of 1970s, like R2-D2. Starting from the late 20th century, companion robots became a reality, mostly as robotic pets. Besides entertainment purposes, interactive robots were also introduced as a personal service robot for elderly care around 2000. == Characteristics == Companion robots try to interact with users. They gather information about users based on their interactions and yield feedback. This procedure varies slightly based on their specific roles. For example, social-companion robots make simple conversations, while pet-companion robots mimic being real pets. == Types == Companion robots can perform a variety of tasks and they are produced in a specialized manner according to their purpose or target audience in order to increase convenience and end user satisfaction. === Social companion robots === Social companion robots are designed to provide companionship and be a solution for unwanted solitude. They often mimic adult human, child or pet behaviours appealing to the user base. Robots which are specifically devised for simple conversations, conveying emotions and respond to user feelings fall under this category. === Assistive companion robots === Assistive companion robots are aimed at people who require constant care because of age, disability or rehabilitation purposes. Such robots can help disadvantaged users with their daily tasks, act as reminders (e.g., for regular medication) and facilitate mobility in everyday actions. Assistive companion robots reduce the intensity of labour that should be performed by caretakers, nurses and legal guardians. === Educational companion robots === Educational companion robots perform tutorship for students, regardless of their ages, and can teach desired subjects with activities tailored for the user such as interactive assignments and games. Rather than replacing teachers and instructors, educational companion robots are aides to them. === Therapeutic companion robots === Designed for individuals coping with stress (PTSD in severe cases), anxiety and loneliness; therapeutic companion robots support users' emotional and mental wellbeing. Such robots can be utilized in hospitals and care facilities as well as dwellings where the distressed user may need the most help. Therapeutic companion robots bear a vast resemblance to assistive companion robots to the extent of being a branch of them; the nuance between these two types of companion robots is that the former is for long-term/lifetime usage while the latter is mostly for the duration of the therapy received by the user. === Pet companion robots === Pet companion robots are for individuals who seek an alternative to live pets as live animals demand a considerable amount of care and may not be eligible for people with allergies. These robots aim to be perfect imitations of a pet while diminishing the chore aspect of having one. === Entertainment companion robots === Entertainment companion robots are designed solely for entertainment and can provide numerous ways of entertainment, ranging from dancing to playing games with the user. People who would appreciate an individual to have fun with are the main audience of such products. === Personal assistant robots === Personal assistant robots help people with daily tasks, management, scheduling, reminding etc. Their area of activity can be offices as well as homes and public spaces. === Sex robots === Sex robots are anthropomorphic robotic sex dolls that have human-like movement or behavior, and some degree of artificial intelligence. As of 2026, although elaborately instrumented sex dolls have been created by a number of inventors, no fully animated sex robots yet exist. Simple devices have been created which can speak, make facial expressions, or respond to touch. There is controversy as to whether developing them would be morally justifiable. In 2015, robot ethicist Kathleen Richardson called for a ban on the creation of anthropomorphic sex robots with concerns about normalizing relationships with machines and reinforcing female dehumanization. Questions about their ethics, effects, and possible legal regulations have been discussed since then. == Examples == There are several companion robot prototypes, and these include Paro, CompanionAble, and EmotiRob, among others. === Paro === Paro is a pet-type robot system developed by Japan's National Institute of Advanced Industrial Science and Technology (AIST). The robot, which looked like a small harp seal, was designed as a therapeutic tool for use in hospitals and nursing homes. The robot is programmed to cry for attention and respond to its name. Experiments showed that Paro facilitated elderly residents to communicate with each other, which led to psychological improvements. === CompanionAble === This robot is classified as an FP 7 EU project. It is built to "cooperate with Ambient Assistive Living environment". The autonomous device, which is also built to support the elderly, helps its owner interact with smart home environment as well as caregivers. The robot functions as a mobile friend, by which natural interaction is possible via speech and the touchscreen to detect and track people at home. === EmotiRob === EmotiRob is developed in a robotics project which is the continuity of the MAPH (Active Media For the Handicap) project in emotion synthesis. The aim of the project was to maintain emotional interaction with children. EmotiRob designed in a way that a child can hold it in a his/her arms and with which he/she could interact by talking to it, and then the robot would express itself through body postures or facial expressions. It has cognitive capabilities, which are further extended so that the robot can have a natural linguistic interaction with its owner through the DRAGON speech-recognition software developed by a company called NUANCE. Such interaction is expected to facilitate a child's cognitive development and develop new learning patterns. === LOVOT === Lovot is a Japanese company robot whose only purpose is "to make you happy". It features over 50 sensors that mimic the behavior of a human baby or small pet, a 360° camera with a microphone, the ability to distinguish humans from objects, neoteny eyes, and an internal warmth of 30° celsius. An interactive Lovot Café was opened in Japan October 3, 2020. === NICOBO === Nicobo was developed by Panasonic and was influenced by the loneliness of lockdowns created as a measure of the COVID-19 pandemic. It was designed to appear vulnerable, which creates empathy in its owners. Nicobo's name derives from the Japanese word for "smile". It wags its tail, engages in baby talk, and stays as a housemate. === Hyodol === Hyodol is an advanced care robot designed to support the elderly by reminding them to take their medications and monitoring their movements to keep their guardians informed. Additionally, this innovative robot can detect and respond to the emotional states of its elderly users, adding a layer of personalized care. Hyodol is designed with the appearance and speech style of a 7-year-old Korean grandchild, featuring a soft fabric exterior and user interaction methods such as striking the head or patting the back. It is equipped with various sensors and wireless communication technologies to collect and process data, supporting mobile apps and PC web monitoring systems for remote monitoring from anywhere. In South Korea, approximately 10,000 Hyodol robots are deployed to the homes of elderly individuals living alone, providing essential support and companionship. Local governments, including provincial and county offices, have embraced Hyodol as a solution to address social challenges stemming from the country's rapidly aging society.Furthermore, the robot is widely utilized in the treatment of dementia patients at a university hospital in Gangwon province. Hyodol was honored with the Mobile World Congress (MWC) Global Mobile Awards (GLOMO) in the "Best Mobile Innovation for Connected Health and Wellbeing" category on February 29, 2024. === Moxie === Moxie was a companion robot for autistic children developed by a company called Embodied. Although it had limited motion, it presented itself as a lifelike avatar. It was designed to help the children learn emotional cognition, using remotely hosted large language models to direct its respons

    Read more →
  • Top 10 AI Headshot Generators Compared (2026)

    Top 10 AI Headshot Generators Compared (2026)

    Trying to pick the best AI headshot generator? An AI headshot generator 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 headshot generator 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 →
  • Gato (DeepMind)

    Gato (DeepMind)

    Gato is a deep neural network for a range of complex tasks that exhibits multimodality. It can perform tasks such as engaging in a dialogue, playing video games, controlling a robot arm to stack blocks, and more. == Overview == Gato was created by researchers at London-based AI firm DeepMind. It is a transformer, like GPT-3. According to MIT Technology Review, the system "learns multiple different tasks at the same time, which means it can switch between them without having to forget one skill before learning another" whereas "[t]he AI systems of today are called “narrow,” meaning they can only do a specific, restricted set of tasks such as generate text", and according to The Independent, it is a "'generalist agent' that can carry out a huge range of complex tasks, from stacking blocks to writing poetry". It uses supervised learning with 1.2B parameters. The technology has been described as "general purpose" artificial intelligence and a "step toward" artificial general intelligence.

    Read more →
  • Top 10 AI Paragraph Rewriters Compared (2026)

    Top 10 AI Paragraph Rewriters Compared (2026)

    Trying to pick the best AI paragraph rewriter? An AI paragraph rewriter 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 paragraph rewriter 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 →
  • Cloem

    Cloem

    Cloem is a company based in Cannes, France, which applies natural language processing (NLP) technologies to assist patent applicants in creating variants of patent claims, called "cloems". According to the company, these "computer-generated claims can be published to keep potential competitors from attempting to file adjacent patent claims." == Technology == According to Cloem, dictionaries, ontologies and proprietary claim-drafting algorithms are used to draft alternative claims based on a client's original set of claims. In particular, the original set of claims is subject to various permutations and linguistic manipulations "by considering alternative definitions for terms as well as “synonyms, hyponyms, hyperonyms, meronyms, holonyms, and antonyms.”" == Possible uses == Cloem can optionally publish one or more created texts, as electronic publications or as paper-printed publications. These can potentially serve – through a defensive publication – as prior art to prevent another party for obtaining a patent on the subject-matter at stake. In other words, after an initial patent filing, an "improvement" patent (adjacent invention) can be applied for by another party, such as a competitor. By publishing variants of a patent claim, the risk of adverse patenting may potentially be decreased (improvement inventions may no longer be patentable). Cloems may also be potentially patentable. One of the issues of patentability, however, is that only a natural person can be a listed as an inventor on a patent. Since cloems are produced by a computer based on a person's input, it is not clear if the computer or the person is the inventor. The inventorship of Cloem texts is an open question.

    Read more →
  • Google matrix

    Google matrix

    A Google matrix is a particular stochastic matrix that is used by Google's PageRank algorithm. The matrix represents a graph with edges representing links between pages. The PageRank of each page can then be generated iteratively from the Google matrix using the power method. However, in order for the power method to converge, the matrix must be stochastic, irreducible and aperiodic. == Adjacency matrix A and Markov matrix S == In order to generate the Google matrix G, we must first generate an adjacency matrix A which represents the relations between pages or nodes. Assuming there are N pages, we can fill out A by doing the following: A matrix element A i , j {\displaystyle A_{i,j}} is filled with 1 if node j {\displaystyle j} has a link to node i {\displaystyle i} , and 0 otherwise; this is the adjacency matrix of links. A related matrix S corresponding to the transitions in a Markov chain of given network is constructed from A by dividing the elements of column "j" by a number of k j = Σ i = 1 N A i , j {\displaystyle k_{j}=\Sigma _{i=1}^{N}A_{i,j}} where k j {\displaystyle k_{j}} is the total number of outgoing links from node j to all other nodes. The columns having zero matrix elements, corresponding to dangling nodes, are replaced by a constant value 1/N. Such a procedure adds a link from every sink, dangling state a {\displaystyle a} to every other node. Now by the construction the sum of all elements in any column of matrix S is equal to unity. In this way the matrix S is mathematically well defined and it belongs to the class of Markov chains and the class of Perron-Frobenius operators. That makes S suitable for the PageRank algorithm. == Construction of Google matrix G == Then the final Google matrix G can be expressed via S as: G i j = α S i j + ( 1 − α ) 1 N ( 1 ) {\displaystyle G_{ij}=\alpha S_{ij}+(1-\alpha ){\frac {1}{N}}\;\;\;\;\;\;\;\;\;\;\;(1)} By the construction the sum of all non-negative elements inside each matrix column is equal to unity. The numerical coefficient α {\displaystyle \alpha } is known as a damping factor. Usually S is a sparse matrix and for modern directed networks it has only about ten nonzero elements in a line or column, thus only about 10N multiplications are needed to multiply a vector by matrix G. == Examples of Google matrix == An example of the matrix S {\displaystyle S} construction via Eq.(1) within a simple network is given in the article CheiRank. For the actual matrix, Google uses a damping factor α {\displaystyle \alpha } around 0.85. The term ( 1 − α ) {\displaystyle (1-\alpha )} gives a surfer probability to jump randomly on any page. The matrix G {\displaystyle G} belongs to the class of Perron-Frobenius operators of Markov chains. The examples of Google matrix structure are shown in Fig.1 for Wikipedia articles hyperlink network in 2009 at small scale and in Fig.2 for University of Cambridge network in 2006 at large scale. == Spectrum and eigenstates of G matrix == For 0 < α < 1 {\displaystyle 0<\alpha <1} there is only one maximal eigenvalue λ = 1 {\displaystyle \lambda =1} with the corresponding right eigenvector which has non-negative elements P i {\displaystyle P_{i}} which can be viewed as stationary probability distribution. These probabilities ordered by their decreasing values give the PageRank vector P i {\displaystyle P_{i}} with the PageRank K i {\displaystyle K_{i}} used by Google search to rank webpages. Usually one has for the World Wide Web that P ∝ 1 / K β {\displaystyle P\propto 1/K^{\beta }} with β ≈ 0.9 {\displaystyle \beta \approx 0.9} . The number of nodes with a given PageRank value scales as N P ∝ 1 / P ν {\displaystyle N_{P}\propto 1/P^{\nu }} with the exponent ν = 1 + 1 / β ≈ 2.1 {\displaystyle \nu =1+1/\beta \approx 2.1} . The left eigenvector at λ = 1 {\displaystyle \lambda =1} has constant matrix elements. With 0 < α {\displaystyle 0<\alpha } all eigenvalues move as λ i → α λ i {\displaystyle \lambda _{i}\rightarrow \alpha \lambda _{i}} except the maximal eigenvalue λ = 1 {\displaystyle \lambda =1} , which remains unchanged. The PageRank vector varies with α {\displaystyle \alpha } but other eigenvectors with λ i < 1 {\displaystyle \lambda _{i}<1} remain unchanged due to their orthogonality to the constant left vector at λ = 1 {\displaystyle \lambda =1} . The gap between λ = 1 {\displaystyle \lambda =1} and other eigenvalue being 1 − α ≈ 0.15 {\displaystyle 1-\alpha \approx 0.15} gives a rapid convergence of a random initial vector to the PageRank approximately after 50 multiplications on G {\displaystyle G} matrix. At α = 1 {\displaystyle \alpha =1} the matrix G {\displaystyle G} has generally many degenerate eigenvalues λ = 1 {\displaystyle \lambda =1} (see e.g. [6]). Examples of the eigenvalue spectrum of the Google matrix of various directed networks is shown in Fig.3 from and Fig.4 from. The Google matrix can be also constructed for the Ulam networks generated by the Ulam method [8] for dynamical maps. The spectral properties of such matrices are discussed in [9,10,11,12,13,15]. In a number of cases the spectrum is described by the fractal Weyl law [10,12]. The Google matrix can be constructed also for other directed networks, e.g. for the procedure call network of the Linux Kernel software introduced in [15]. In this case the spectrum of λ {\displaystyle \lambda } is described by the fractal Weyl law with the fractal dimension d ≈ 1.3 {\displaystyle d\approx 1.3} (see Fig.5 from ). Numerical analysis shows that the eigenstates of matrix G {\displaystyle G} are localized (see Fig.6 from ). Arnoldi iteration method allows to compute many eigenvalues and eigenvectors for matrices of rather large size [13]. Other examples of G {\displaystyle G} matrix include the Google matrix of brain [17] and business process management [18], see also. Applications of Google matrix analysis to DNA sequences is described in [20]. Such a Google matrix approach allows also to analyze entanglement of cultures via ranking of multilingual Wikipedia articles abouts persons [21] == Historical notes == The Google matrix with damping factor was described by Sergey Brin and Larry Page in 1998 [22], see also articles on PageRank history [23], [24].

    Read more →
  • Synchronous context-free grammar

    Synchronous context-free grammar

    Synchronous context-free grammars (SynCFG or SCFG; not to be confused with stochastic CFGs) are a type of formal grammar designed for use in transfer-based machine translation. Rules in these grammars apply to two languages at the same time, capturing grammatical structures that are each other's translations. The theory of SynCFGs borrows from syntax-directed transduction and syntax-based machine translation, modeling the reordering of clauses that occurs when translating a sentence by correspondences between phrase-structure rules in the source and target languages. Performance of SCFG-based MT systems has been found comparable with, or even better than, state-of-the-art phrase-based machine translation systems. Several algorithms exist to perform translation using SynCFGs. == Formalism == Rules in a SynCFG are superficially similar to CFG rules, except that they specify the structure of two phrases at the same time; one in the source language (the language being translated) and one in the target language. Numeric indices indicate correspondences between non-terminals in both constituent trees. Chiang gives the Chinese/English example: X → (yu X1 you X2, have X2 with X1) This rule indicates that an X phrase can be formed in Chinese with the structure "yu X1 you X2", where X1 and X2 are variables standing in for subphrases; and that the corresponding structure in English is "have X2 with X1" where X1 and X2 are independently translated to English. == Software == cdec, MT decoding package that supports SynCFGs Joshua, a machine translation decoding system written in Java

    Read more →
  • Levenshtein automaton

    Levenshtein automaton

    In computer science, a Levenshtein automaton for a string w and a number n is a finite-state automaton that can recognize the set of all strings whose Levenshtein distance from w is at most n. That is, a string x is in the formal language recognized by the Levenshtein automaton if and only if x can be transformed into w by at most n single-character insertions, deletions, and substitutions. == Applications == Levenshtein automata may be used for spelling correction, by finding words in a given dictionary that are close to a misspelled word. In this application, once a word is identified as being misspelled, its Levenshtein automaton may be constructed, and then applied to all of the words in the dictionary to determine which ones are close to the misspelled word. If the dictionary is stored in compressed form as a trie, the time for this algorithm (after the automaton has been constructed) is proportional to the number of nodes in the trie, significantly faster than using dynamic programming to compute the Levenshtein distance separately for each dictionary word. It is also possible to find words in a regular language, rather than a finite dictionary, that are close to a given target word, by computing the Levenshtein automaton for the word, and then using a Cartesian product construction to combine it with an automaton for the regular language, giving an automaton for the intersection language. Alternatively, rather than using the product construction, both the Levenshtein automaton and the automaton for the given regular language may be traversed simultaneously using a backtracking algorithm. Levenshtein automata are used in Lucene for full-text searches that can return relevant documents even if the query is misspelled. == Construction == For any fixed constant n, the Levenshtein automaton for w and n may be constructed in time O(|w|). Mitankin studies a variant of this construction called the universal Levenshtein automaton, determined only by a numeric parameter n, that can recognize pairs of words (encoded in a certain way by bitvectors) that are within Levenshtein distance n of each other. Touzet proposed an effective algorithm to build this automaton. Yet a third finite automaton construction of Levenshtein (or Damerau–Levenshtein) distance are the Levenshtein transducers of Hassan et al., who show finite state transducers implementing edit distance one, then compose these to implement edit distances up to some constant.

    Read more →
  • Apprenticeship learning

    Apprenticeship learning

    In artificial intelligence, apprenticeship learning (or learning from demonstration or imitation learning) is the process of learning by observing an expert. It can be viewed as a form of supervised learning, where the training dataset consists of task executions by a demonstration teacher. == Mapping function approach == Mapping methods try to mimic the expert by forming a direct mapping either from states to actions, or from states to reward values. For example, in 2002 researchers used such an approach to teach an AIBO robot basic soccer skills. === Inverse reinforcement learning approach === Inverse reinforcement learning (IRL) is the process of deriving a reward function from observed behavior. While ordinary "reinforcement learning" involves using rewards and punishments to learn behavior, in IRL the direction is reversed, and a robot observes a person's behavior to figure out what goal that behavior seems to be trying to achieve. The IRL problem can be defined as: Given 1) measurements of an agent's behaviour over time, in a variety of circumstances; 2) measurements of the sensory inputs to that agent; 3) a model of the physical environment (including the agent's body): Determine the reward function that the agent is optimizing. IRL researcher Stuart J. Russell proposes that IRL might be used to observe humans and attempt to codify their complex "ethical values", in an effort to create "ethical robots" that might someday know "not to cook your cat" without needing to be explicitly told. The scenario can be modeled as a "cooperative inverse reinforcement learning game", where a "person" player and a "robot" player cooperate to secure the person's implicit goals, despite these goals not being explicitly known by either the person nor the robot. In 2017, OpenAI and DeepMind applied deep learning to the cooperative inverse reinforcement learning in simple domains such as Atari games and straightforward robot tasks such as backflips. The human role was limited to answering queries from the robot as to which of two different actions were preferred. The researchers found evidence that the techniques may be economically scalable to modern systems. Apprenticeship via inverse reinforcement learning (AIRP) was developed by in 2004 Pieter Abbeel, Professor in Berkeley's EECS department, and Andrew Ng, Associate Professor in Stanford University's Computer Science Department. AIRP deals with "Markov decision process where we are not explicitly given a reward function, but where instead we can observe an expert demonstrating the task that we want to learn to perform". AIRP has been used to model reward functions of highly dynamic scenarios where there is no obvious reward function intuitively. Take the task of driving for example, there are many different objectives working simultaneously - such as maintaining safe following distance, a good speed, not changing lanes too often, etc. This task, may seem easy at first glance, but a trivial reward function may not converge to the policy wanted. One domain where AIRP has been used extensively is helicopter control. While simple trajectories can be intuitively derived, complicated tasks like aerobatics for shows has been successful. These include aerobatic maneuvers like - in-place flips, in-place rolls, loops, hurricanes and even auto-rotation landings. This work was developed by Pieter Abbeel, Adam Coates, and Andrew Ng - "Autonomous Helicopter Aerobatics through Apprenticeship Learning" === System model approach === System models try to mimic the expert by modeling world dynamics. == Plan approach == The system learns rules to associate preconditions and postconditions with each action. In one 1994 demonstration, a humanoid learns a generalized plan from only two demonstrations of a repetitive ball collection task. == Example == Learning from demonstration is often explained from a perspective that the working Robot-control-system is available and the human-demonstrator is using it. And indeed, if the software works, the Human operator takes the robot-arm, makes a move with it, and the robot will reproduce the action later. For example, he teaches the robot-arm how to put a cup under a coffeemaker and press the start-button. In the replay phase, the robot is imitating this behavior 1:1. But that is not how the system works internally; it is only what the audience can observe. In reality, Learning from demonstration is much more complex. One of the first works on learning by robot apprentices (anthropomorphic robots learning by imitation) was Adrian Stoica's PhD thesis in 1995. In 1997, robotics expert Stefan Schaal was working on the Sarcos robot-arm. The goal was simple: solve the pendulum swingup task. The robot itself can execute a movement, and as a result, the pendulum is moving. The problem is, that it is unclear what actions will result into which movement. It is an Optimal control-problem which can be described with mathematical formulas but is hard to solve. The idea from Schaal was, not to use a Brute-force solver but record the movements of a human-demonstration. The angle of the pendulum is logged over three seconds at the y-axis. This results into a diagram which produces a pattern. In computer animation, the principle is called spline animation. That means, on the x-axis the time is given, for example 0.5 seconds, 1.0 seconds, 1.5 seconds, while on the y-axis is the variable given. In most cases it's the position of an object. In the inverted pendulum it is the angle. The overall task consists of two parts: recording the angle over time and reproducing the recorded motion. The reproducing step is surprisingly simple. As an input we know, in which time step which angle the pendulum must have. Bringing the system to a state is called “Tracking control” or PID control. That means, we have a trajectory over time, and must find control actions to map the system to this trajectory. Other authors call the principle “steering behavior”, because the aim is to bring a robot to a given line.

    Read more →
  • Suffix automaton

    Suffix automaton

    In computer science, a suffix automaton is an efficient data structure for representing the substring index of a given string which allows the storage, processing, and retrieval of compressed information about all its substrings. The suffix automaton of a string S {\displaystyle S} is the smallest directed acyclic graph with a dedicated initial vertex and a set of "final" vertices, such that paths from the initial vertex to final vertices represent the suffixes of the string. In terms of automata theory, a suffix automaton is the minimal partial deterministic finite automaton that recognizes the set of suffixes of a given string S = s 1 s 2 … s n {\displaystyle S=s_{1}s_{2}\dots s_{n}} . The state graph of a suffix automaton is called a directed acyclic word graph (DAWG), a term that is also sometimes used for any deterministic acyclic finite state automaton. Suffix automata were introduced in 1983 by a group of scientists from the University of Denver and the University of Colorado Boulder. They suggested a linear time online algorithm for its construction and showed that the suffix automaton of a string S {\displaystyle S} having length at least two characters has at most 2 | S | − 1 {\textstyle 2|S|-1} states and at most 3 | S | − 4 {\textstyle 3|S|-4} transitions. Further works have shown a close connection between suffix automata and suffix trees, and have outlined several generalizations of suffix automata, such as compacted suffix automaton obtained by compression of nodes with a single outgoing arc. Suffix automata provide efficient solutions to problems such as substring search and computation of the largest common substring of two and more strings. == History == The concept of suffix automaton was introduced in 1983 by a group of scientists from University of Denver and University of Colorado Boulder consisting of Anselm Blumer, Janet Blumer, Andrzej Ehrenfeucht, David Haussler and Ross McConnell, although similar concepts had earlier been studied alongside suffix trees in the works of Peter Weiner, Vaughan Pratt and Anatol Slissenko. In their initial work, Blumer et al. showed a suffix automaton built for the string S {\displaystyle S} of length greater than 1 {\displaystyle 1} has at most 2 | S | − 1 {\displaystyle 2|S|-1} states and at most 3 | S | − 4 {\displaystyle 3|S|-4} transitions, and suggested a linear algorithm for automaton construction. In 1983, Mu-Tian Chen and Joel Seiferas independently showed that Weiner's 1973 suffix-tree construction algorithm while building a suffix tree of the string S {\displaystyle S} constructs a suffix automaton of the reversed string S R {\textstyle S^{R}} as an auxiliary structure. In 1987, Blumer et al. applied the compressing technique used in suffix trees to a suffix automaton and invented the compacted suffix automaton, which is also called the compacted directed acyclic word graph (CDAWG). In 1997, Maxime Crochemore and Renaud Vérin developed a linear algorithm for direct CDAWG construction. In 2001, Shunsuke Inenaga et al. developed an algorithm for construction of CDAWG for a set of words given by a trie. == Definitions == Usually when speaking about suffix automata and related concepts, some notions from formal language theory and automata theory are used, in particular: "Alphabet" is a finite set Σ {\displaystyle \Sigma } that is used to construct words. Its elements are called "characters"; "Word" is a finite sequence of characters ω = ω 1 ω 2 … ω n {\displaystyle \omega =\omega _{1}\omega _{2}\dots \omega _{n}} . "Length" of the word ω {\displaystyle \omega } is denoted as | ω | = n {\displaystyle |\omega |=n} ; "Formal language" is a set of words over given alphabet; "Language of all words" is denoted as Σ ∗ {\displaystyle \Sigma ^{}} (where the "" character stands for Kleene star), "empty word" (the word of zero length) is denoted by the character ε {\displaystyle \varepsilon } ; "Concatenation of words" α = α 1 α 2 … α n {\displaystyle \alpha =\alpha _{1}\alpha _{2}\dots \alpha _{n}} and β = β 1 β 2 … β m {\displaystyle \beta =\beta _{1}\beta _{2}\dots \beta _{m}} is denoted as α ⋅ β {\displaystyle \alpha \cdot \beta } or α β {\displaystyle \alpha \beta } and corresponds to the word obtained by writing β {\displaystyle \beta } to the right of α {\displaystyle \alpha } , that is, α β = α 1 α 2 … α n β 1 β 2 … β m {\displaystyle \alpha \beta =\alpha _{1}\alpha _{2}\dots \alpha _{n}\beta _{1}\beta _{2}\dots \beta _{m}} ; "Concatenation of languages" A {\displaystyle A} and B {\displaystyle B} is denoted as A ⋅ B {\displaystyle A\cdot B} or A B {\displaystyle AB} and corresponds to the set of pairwise concatenations A B = { α β : α ∈ A , β ∈ B } {\displaystyle AB=\{\alpha \beta :\alpha \in A,\beta \in B\}} ; If the word ω ∈ Σ ∗ {\displaystyle \omega \in \Sigma ^{}} may be represented as ω = α γ β {\displaystyle \omega =\alpha \gamma \beta } , where α , β , γ ∈ Σ ∗ {\displaystyle \alpha ,\beta ,\gamma \in \Sigma ^{}} , then words α {\displaystyle \alpha } , β {\displaystyle \beta } and γ {\displaystyle \gamma } are called "prefix", "suffix" and "subword" (substring) of the word ω {\displaystyle \omega } correspondingly; If T = T 1 … T n {\displaystyle T=T_{1}\dots T_{n}} and T l T l + 1 … T r = S {\displaystyle T_{l}T_{l+1}\dots T_{r}=S} (with 1 ≤ l ≤ r ≤ n {\displaystyle 1\leq l\leq r\leq n} ) then S {\displaystyle S} is said to "occur" in T {\displaystyle T} as a subword. Here l {\displaystyle l} and r {\displaystyle r} are called left and right positions of occurrence of S {\displaystyle S} in T {\displaystyle T} correspondingly. == Automaton structure == Formally, deterministic finite automaton is determined by 5-tuple A = ( Σ , Q , q 0 , F , δ ) {\displaystyle {\mathcal {A}}=(\Sigma ,Q,q_{0},F,\delta )} , where: Σ {\displaystyle \Sigma } is an "alphabet" that is used to construct words, Q {\displaystyle Q} is a set of automaton "states", q 0 ∈ Q {\displaystyle q_{0}\in Q} is an "initial" state of automaton, F ⊂ Q {\displaystyle F\subset Q} is a set of "final" states of automaton, δ : Q × Σ ↦ Q {\displaystyle \delta :Q\times \Sigma \mapsto Q} is a partial "transition" function of automaton, such that δ ( q , σ ) {\displaystyle \delta (q,\sigma )} for q ∈ Q {\displaystyle q\in Q} and σ ∈ Σ {\displaystyle \sigma \in \Sigma } is either undefined or defines a transition from q {\displaystyle q} over character σ {\displaystyle \sigma } . Most commonly, deterministic finite automaton is represented as a directed graph ("diagram") such that: Set of graph vertices corresponds to the state of states Q {\displaystyle Q} , Graph has a specific marked vertex corresponding to initial state q 0 {\displaystyle q_{0}} , Graph has several marked vertices corresponding to the set of final states F {\displaystyle F} , Set of graph arcs corresponds to the set of transitions δ {\displaystyle \delta } , Specifically, every transition δ ( q 1 , σ ) = q 2 {\textstyle \delta (q_{1},\sigma )=q_{2}} is represented by an arc from q 1 {\displaystyle q_{1}} to q 2 {\displaystyle q_{2}} marked with the character σ {\displaystyle \sigma } . This transition also may be denoted as q 1 σ ⟶ q 2 {\textstyle q_{1}{\begin{smallmatrix}{\sigma }\\[-5pt]{\longrightarrow }\end{smallmatrix}}q_{2}} . In terms of its diagram, the automaton recognizes the word ω = ω 1 ω 2 … ω m {\displaystyle \omega =\omega _{1}\omega _{2}\dots \omega _{m}} only if there is a path from the initial vertex q 0 {\displaystyle q_{0}} to some final vertex q ∈ F {\displaystyle q\in F} such that concatenation of characters on this path forms ω {\displaystyle \omega } . The set of words recognized by an automaton forms a language that is set to be recognized by the automaton. In these terms, the language recognized by a suffix automaton of S {\displaystyle S} is the language of its (possibly empty) suffixes. === Automaton states === "Right context" of the word ω {\displaystyle \omega } with respect to language L {\displaystyle L} is a set [ ω ] R = { α : ω α ∈ L } {\displaystyle [\omega ]_{R}=\{\alpha :\omega \alpha \in L\}} that is a set of words α {\displaystyle \alpha } such that their concatenation with ω {\displaystyle \omega } forms a word from L {\displaystyle L} . Right contexts induce a natural equivalence relation [ α ] R = [ β ] R {\displaystyle [\alpha ]_{R}=[\beta ]_{R}} on the set of all words. If language L {\displaystyle L} is recognized by some deterministic finite automaton, there exists unique up to isomorphism automaton that recognizes the same language and has the minimum possible number of states. Such an automaton is called a minimal automaton for the given language L {\displaystyle L} . Myhill–Nerode theorem allows it to define it explicitly in terms of right contexts: In these terms, a "suffix automaton" is the minimal deterministic finite automaton recognizing the language of suffixes of the word S = s 1 s 2 … s n {\displaystyle S=s_{1}s_{2}\dots s_{n}} . The right context of the word ω {\displaystyle \omeg

    Read more →
  • Ross Quinlan

    Ross Quinlan

    John Ross Quinlan is a computer science researcher in data mining and decision theory. He has contributed extensively to the development of decision tree algorithms, including inventing the canonical C4.5 and ID3 algorithms. He also contributed to early ILP literature with First Order Inductive Learner (FOIL). He is currently running the company RuleQuest Research which he founded in 1997. == Education == He received his BSc degree in Physics and Computing from the University of Sydney in 1965 and his computer science doctorate at the University of Washington in 1968. He has held positions at the University of New South Wales, University of Sydney, University of Technology Sydney, and RAND Corporation. == Artificial intelligence == Quinlan is a specialist in artificial intelligence, particularly in the aspect involving machine learning and its application to data mining. He is a Founding Fellow of the Association for the Advancement of Artificial Intelligence. === ID3 === Ross Quinlan invented the Iterative Dichotomiser 3 (ID3) algorithm which is used to generate decision trees. ID3 follows the principle of Occam's razor in attempting to create the smallest decision tree possible. === C4.5 === He then expanded upon the principles used in ID3 to create C4.5. C4.5 improved: discrete and continuous attributes, missing attribute values, attributes with differing costs, pruning trees (replacing irrelevant branches with leaf nodes). === C5.0 === C5.0, which Quinlan is commercially selling (single-threaded version is distributed under the terms of the GNU General Public License), is an improvement on C4.5. The advantages are speed (several orders of magnitude faster), memory efficiency, smaller decision trees, boosting (more accuracy), ability to weight different attributes, and winnowing (reducing noise). == Selected works == === Books === 1993. C4.5: Programs for Machine Learning. Morgan Kaufmann Publishers. ISBN 1-55860-238-0. === Articles === Quinlan, J. R. (1982) Semi-autonomous acquisition of pattern-based knowledge, In Machine intelligence 10 (eds J. E. Hayes, D. Michie, and Y.-H. Pao). Ellis Norwood,Chichester. Quinlan, J.R. (1985). Decision trees and multi-valued attributes, In J.E. Hayes & D. Michie (Eds.), Machine intelligence 11. Oxford University Press. Quinlan, J. R. (1986). Induction of decision trees. Machine Learning, 1(1):81-106 2008. (with Qiang Yang, Philip S. Yu, Zhou Zhihua, and David Hand et al). Top 10 algorithms in data mining. Knowledge and Information Systems 14.1: 1-37 Quinlan, J. R. (1990). Learning logical definitions from relations. Machine Learning, 5:239-266.

    Read more →
  • Arthur Zimek

    Arthur Zimek

    Arthur Zimek is a professor in data mining, data science and machine learning at the University of Southern Denmark in Odense, Denmark. He graduated from LMU Munich in Germany, where he worked with Prof. Hans-Peter Kriegel. His dissertation on "Correlation Clustering" was awarded the "SIGKDD Doctoral Dissertation Award 2009 Runner-up" by the Association for Computing Machinery. He is well known for his work on outlier detection, density-based clustering, correlation clustering, and the curse of dimensionality. He is one of the founders and core developers of the open-source ELKI data mining framework.

    Read more →
  • Gallery software

    Gallery software

    Gallery software is software that helps the user publish or share photos, pictures, videos or other digital media. Most galleries are located on Web servers, where users are allowed to register and publish their pictures. Gallery software usually features automatic image resizing, allows digital media be categorized into sets, and allows comments. == Types == Early digital media publishing and sharing was done with imageboards. The boards are by topics, sometimes called "chan". Each discussion in a "chan" are started with a piece of digital media, and follow-up discussions can contain another piece too. Software works in this way: Futallaby, Danbooru. Traditionally, galleries are managed. An administrator maintains a set of or hierarchy of albums. The users can upload their digital media in one of the existing albums defined by an administrator, or create their own albums. The users with sufficient permission can re-categorise the digital media others uploaded. Often, the site's administrator can define which album the users are allowed to categorise their media into, or delete other user's content. Examples are open source galleries Coppermine, Gallery Project. There are decentralised gallery software that does not have an administrator for managing contents. Pinterest, Flickr and DeviantArt has been successful with this model. Open source gallery software MediaGoblin works in this way. Each user can create their own "collections", to categorise theirs or other users' media. However users cannot put media into other user's collections. Each user's category is separate. There is no centralised theme or hierarchy for the media.

    Read more →
  • Scott Fahlman

    Scott Fahlman

    Scott Elliott Fahlman (born March 21, 1948) is an American computer scientist and Professor Emeritus at Carnegie Mellon University's Language Technologies Institute and Computer Science Department. He is notable for early work on automated planning and scheduling in a blocks world, on semantic networks, on neural networks (especially the cascade correlation algorithm), on the programming languages Dylan, and Common Lisp (especially CMU Common Lisp), and he was one of the founders of Lucid Inc. During the period when it was standardized, he was recognized as "the leader of Common Lisp." From 2006 to 2015, Fahlman was engaged in developing a knowledge base named Scone, based in part on his thesis work on the NETL Semantic Network. He also is credited with coining the use of the emoticon. == Life and career == Fahlman was born in Medina, Ohio, the son of Lorna May (Dean) and John Emil Fahlman. He attended the Massachusetts Institute of Technology (MIT), where he received a Bachelor of Science (B.S.) and Master of Science (M.S.) degree in electrical engineering and computer science in 1973, and a Doctor of Philosophy (Ph.D.) in artificial intelligence in 1977. He has noted that his doctoral diploma says the degree was awarded for "original research as demonstrated by a thesis in the field of Artificial Intelligence" and suggested that it may be the first doctorate to use that term. He is a fellow of the American Association for Artificial Intelligence. Fahlman acted as thesis advisor for Donald Cohen, David B. McDonald, David S. Touretzky, Skef Wholey, Justin Boyan, Michael Witbrock, and Alicia Tribble Sagae. From May 1996 to July 2001, Fahlman directed the Justsystem Pittsburgh Research Center. === Boltzmann Machine (1983) === In 1983, Fahlman, Geoffrey Hinton, and Terry Sejnowski published a paper in Proceedings of the AAAI-83 Conference, Washington DC, August 1983. The paper was titled as "Massively Parallel Architectures for AI: NETL, Thistle and Boltzmann Machines". === Emoticons === Fahlman was not the first to suggest the concept of the emoticon – a similar concept for a marker appeared in an article of Reader's Digest in May 1967, although that idea was never put into practice. In an interview printed in The New York Times in 1969, Vladimir Nabokov noted: "I often think there should exist a special typographical sign for a smile – some sort of concave mark, a supine round bracket." Fahlman is credited with originating the first smiley emoticon, which he thought would help people on a message board at Carnegie Mellon to distinguish serious posts from jokes. He proposed the use of :-) and :-( for this purpose, and the symbols caught on. The original message from which these symbols originated was posted on 19 September 1982. The message was recovered by Jeff Baird on 10 September 2002 and read: 19-Sep-82 11:44 Scott E Fahlman :-) From: Scott E Fahlman I propose that the following character sequence for joke markers: :-) Read it sideways. Actually, it is probably more economical to mark things that are NOT jokes, given current trends. For this, use :-(

    Read more →
  • Brendan Frey

    Brendan Frey

    Brendan John Frey FRSC (born 29 August 1968) is a Canadian computer scientist, entrepreneur, and engineer. He is Founder and CEO of Deep Genomics, Cofounder of the Vector Institute for Artificial Intelligence and Professor of Engineering and Medicine at the University of Toronto. Frey is a pioneer in the development of machine learning and artificial intelligence methods, their use in accurately determining the consequences of genetic mutations, and in designing medications that can slow, stop or reverse the progression of disease. As far back as 1995, Frey co-invented one of the first deep learning methods, called the wake-sleep algorithm, the affinity propagation algorithm for clustering and data summarization, and the factor graph notation for probability models. In the late 1990s, Frey was a leading researcher in the areas of computer vision, speech recognition, and digital communications. == Education == Frey studied computer engineering and physics at the University of Calgary (BSc 1990) and the University of Manitoba (MSc 1993), and then studied neural networks and graphical models as a doctoral candidate at the University of Toronto under the supervision of Geoffrey Hinton (PhD 1997). He was an invited participant of the Machine Learning program at the Isaac Newton Institute for Mathematical Sciences in Cambridge, UK (1997) and was a Beckman Fellow at the University of Illinois at Urbana Champaign (1999). == Career == Following his undergraduate studies, Frey worked as a junior research scientist at Bell-Northern Research from 1990 to 1991. After completing his postdoctoral studies at the University of Illinois at Urbana-Champaign, Frey was an assistant professor in the Department of Computer Science at the University of Waterloo, from 1999 to 2001. In 2001, Frey joined the Department of Electrical and Computer Engineering at the University of Toronto and was cross-appointed to the Department of Computer Science, the Banting and Best Department of Medical Research and the Terrence Donnelly Centre for Cellular and Biomolecular Research. From 2008 to 2009, he was a visiting researcher at Microsoft Research (Cambridge, UK) and a visiting professor in the Cavendish Laboratories and Darwin College at Cambridge University. Between 2001 and 2014, Frey consulted for several groups at Microsoft Research and acted as a member of its Technical Advisory Board. In 2002, a personal crisis led Frey to face the fact that there was a tragic gap between our ability to measure a patient's mutations and our ability to understand and treat the consequences. Recognizing that biology is too complex for humans to understand, that in the decades to come there would be an exponential growth in biology data, and that machine learning is the best technology we have for discovering relationships in large datasets, Frey set out to build machine learning systems that could accurately predict genome and cell biology. Frey’s group pioneered much of the early work in the field and over the next 15 years published more papers in leading-edge journals than any other academic or industrial research lab. In 2015, Frey founded Deep Genomics, with the goal of building a company that can produce effective and safe genetic medicines more rapidly and with a higher rate of success than was previously possible. The company has received 240 million dollars in funding to date from leading Bay Area investors, including the backers of SpaceX and Tesla.

    Read more →