# What is Algorithmic Probability?

by Stephen M. Walker II, Co-Founder / CEO

## What is Algorithmic Probability?

Algorithmic probability, also known as Solomonoff probability, is a mathematical method of assigning a prior probability to a given observation. It was invented by Ray Solomonoff in the 1960s and is used in inductive inference theory and analyses of algorithms.

In the mathematical formalism used, the observations have the form of finite binary strings viewed as outputs of Turing machines, and the universal prior is a probability distribution over the set of finite binary strings inputs to a universal Turing machine. The prior is universal in the Turing-computability sense, i.e., no string has zero probability. It is not computable, but it can be approximated.

Algorithmic probability is a branch of AI that deals with the probability of events occurring based on an algorithm. It allows us to make predictions. If we know the probability of something happening, we can make better decisions about what to do next.

Algorithmic probability rests upon two philosophical principles. The first is Epicurus' principle of multiple explanations, which states that if more than one theory is consistent with the observations, keep all theories. The second is the principle of simplicity, which states that the simplest theory consistent with the observations is the most likely to be correct.

Algorithmic probability, despite its theoretical incomputability, has significant practical applications in fields like machine learning and AI. It's used to discover regularities in data, aiding in making accurate predictions. This property of completeness allows it to find any useful property for prediction in a data set, given a sufficient amount of data.

Its practicality extends to areas like Bernoulli sequence prediction, grammar discovery, and even in advanced AI systems for general problem-solving. In machine learning, it's used to assign weights to training samples based on their algorithmic complexity, adjusting the incurred loss accordingly. This makes algorithmic probability a powerful tool for both theoretical and practical problem-solving in AI.

## What is the Algorithmic Probability of an Output given a Specific Program?

The concept of algorithmic probability in relation to a specific program revolves around the idea of calculating the likelihood of an output. This is done by adding up the probabilities of all programs that, when executed on a universal Turing machine, yield that particular output. This principle is a cornerstone of Solomonoff's theory of inductive inference and is utilized to assign a prior probability to observations. The assignment is based on the simplicity of the observations, meaning that outputs generated by shorter programs are given higher probabilities.

To put it in simpler terms, the algorithmic probability of an output string can be thought of as the sum of the probabilities of all the programs that produce that output. The probability contributed by each program is inversely proportional to its length. This means that shorter programs, which are simpler, contribute more to the probability of the output.

This method of assigning probabilities embodies the principle of Occam's razor, which suggests that the simplest explanation or hypothesis is usually the best one. In the context of algorithmic probability, this means that simpler outputs, those generated by shorter programs, are considered more likely.

However, it's crucial to understand that while algorithmic probability offers a theoretical framework for assigning probabilities based on the length of programs, it's not practically computable. This is due to the fact that it's impossible to compute the set of all possible programs for a universal Turing machine. Despite this, algorithmic probability can still serve as a conceptual tool for understanding the likelihood of different outputs within the realm of algorithmic information theory.

## What is the Algorithmic Probability of an Output given some Evidence?

Algorithmic probability, or Solomonoff probability, is a mathematical approach used to assign a prior probability to an observation. This method was developed by Ray Solomonoff in the 1960s and is utilized in the theory of inductive inference and algorithm analysis.

The algorithmic probability of an output, given some evidence, is determined by assigning higher probabilities to outputs that can be produced by shorter, simpler programs. This concept is a unique type of "prior distribution" used in Bayesian inference, which updates the probability of a hypothesis as more evidence becomes available.

The calculation for algorithmic probability involves summing the probabilities of all programs that can generate the given output. The probability contributed by each program is inversely proportional to its length, meaning shorter programs contribute more to the overall probability of the output.

While the concept of algorithmic probability is theoretically robust, it's important to note that it's not practically computable due to the infinite nature of the calculations involved. Despite this, approximations of algorithmic probability can be made and used to make predictions in various fields, including machine learning and artificial intelligence.

## What is the Algorithmic Probability of an Output given some Prior Knowledge?

In algorithmic information theory, observations are usually finite binary strings seen as outputs of Turing machines. The universal prior is a probability distribution over the set of finite binary strings inputs to a universal Turing machine. This prior is universal in the Turing-computability sense, meaning no string has zero probability. It's not computable, but it can be approximated.

The algorithmic probability of an object or event is determined based on the shortest program that can generate that object or event on a universal Turing machine. This is often represented as a sum over all programs that produce the object, with each program's contribution weighted by the inverse of two to the power of its length.

In practical applications like machine learning, algorithmic probability can be used to estimate class probabilities from complexities and use these estimated probabilities as a prior in classification tasks. This method can significantly enhance classification accuracy, particularly in cases with very small training data.

However, it's crucial to understand that while algorithmic probability offers a theoretically robust method for assigning prior probabilities, it's not practically computable due to the infinite number of possible programs for any given Turing machine. Despite this, approximations to algorithmic probability can still be beneficial in practical applications.

## What is the Algorithmic Probability of an Output given some Background Knowledge?

The algorithmic probability of an output given some background knowledge is a measure of the likelihood that a particular output will be produced by a random program, given a universal Turing machine and the background knowledge. This concept is an extension of Solomonoff's theory of inductive inference, which is based on the idea that the probability of an observation is determined by the sum of the probabilities of all programs that could produce the observation when run on a universal Turing machine.

When background knowledge is taken into account, the algorithmic probability is conditioned on this knowledge. This means that the probabilities are calculated considering the information that is already known, which can influence the likelihood of different outputs. For example, if the background knowledge suggests that certain outputs are more common or logical given a particular context, these outputs would be assigned a higher algorithmic probability.

The formalism for incorporating background knowledge into algorithmic probability typically involves conditional probabilities and may use Bayes' rule to update the probabilities based on new evidence or observations. However, it's important to note that while the concept is theoretically sound, the actual computation of algorithmic probabilities is uncomputable due to the infinite number of possible programs that could be considered.

In practical applications, approximations and heuristic methods may be used to estimate algorithmic probabilities in the presence of background knowledge. These methods can be particularly useful in fields like artificial intelligence and machine learning, where they can help guide predictions and decision-making processes.