A method of machine learning where an algorithm learns through trial and error with rewards and punishments.