Machine Learning - vanderbiltrobotics/RoboticsIntelligenceDatabase GitHub Wiki

Overview

"Machine learning is a field of computer science that gives computers the ability to learn without being explicitly programmed." (Wikipedia)

Contrary to "standard I/O (input and output)", machine learning is the process by which a program discovers on its own how to optimally perform an action by independently adapting to new conditions. Machine learning algorithms are widely used in everything from Google's search engine to self-driving cars and are heavily based on statistical methods.

Components of a Machine Learning Algorithm

Note: should not be treated as steps

Data --> Model --> Objective Function --> Optimization Algorithm --> Data

Data: self-explanatory (i.e. historical data)
Model: defined by weights and biases, analogous to slope and intercept respectively in statistics
Objective Function: determines the accuracy of model when compared to target values
Optimization Algorithm: as the name suggests, optimizes the model for greater accuracy by various means

Types of Machine Learning

Supervised

The programmer provides the inputs and the targets. This type of machine learning seeks to minimize losses in order to improve accuracy. Includes linear regression (quantitative data) and classification (categorical data).
Example: Given ingredients (inputs), coffeemaker must make coffee (target)

Unsupervised

The programmer provides the inputs but not the targets. This type of machine learning seeks to find some sort of relationship among points in the data. Includes clustering.
Example: Separating various pictures into multiple categories based on some characteristic not specified by programmer

Reinforcement

This type of machine learning seeks to maximize utility (satisfaction/reward). This does not necessarily imply minimizing losses as in supervised machine learning. It is intended to model human behavior in seeking maximal benefit based on incentives provided.
Example: Obtaining high score in a game