## What is Bayesian Programming?

Bayesian programming is a statistical method to construct probability models and solve open ended problems with incomplete information. The goal of Bayesian programming is to express human intuition in algebraic form and develop more versatile, “smarter” AI systems.

### Bayesian versus Frequentist Probability

Bayes’ Theorem is central concept behind this programming approach, which states that the probability of something occurring in the future can be inferred by past conditions related to the event. While that might seem like an obvious statement of fact, the Bayesian approach is at odds with another popular statistical school of thought called Frequentist Probability. Frequentist modeling states that an event’s probability is most accurately measured by its relative frequency, or how often the event occurred in past samples.

For a simplified example, a frequentist probability model would give the odds of the sun rising tomorrow at 100%, since this has occurred every day in recorded history. A Bayesian probability approach would look at deviances in various prerequisite conditions that may or may not be relevant, such as gravity fluctuations or speed of the Earth’s rotation, then assign slightly less than 100% odds.

Which answer is more “accurate” is really a philosophical debate. Though in practical terms, Bayesian probability is popular among deep learning system programmers simply because it doesn’t require a vast and well-labeled past dataset to make future predictions.

### Practical Uses of Bayesian Programming

**Robotics**– While still far from perfect, just about every autonomous or semi-autonomous device employs some form of Bayesian programming to interact with the physical world around it in a safe and effective manner.**AI Decision Making**– Bayesian probability is the backbone of building safeguards into any machine learning system and ensures the AI takes no action unless it is “certain” this decision is the best course of action.

**Natural Language Processing**– From smart spam filters to human-like chat bots, the ability to build complicated abstract representations from incomplete data without context is an indispensable skill.