Heuristic automation and machine learning can be found in many applications ranging from self-driving cars to facial recognition and speech recognition. Machine learning algorithms improve over time as more data is added, enabling programs to teach themselves. Examples of applications include self-driving cars that learn driving rules from experience, speech recognition software that detects patterns in sounds to understand words, and facial recognition systems that find face patterns to identify individuals.