Machine Learning Styles and Algorithms
In my most recent project, I used two APIs from IBM Waston to help the user keep track of their moods and determine their personality profile from diary entries they write. One reason I was interested in a project that used Watson was the opportunity to work with machine learning algorithms. Machine learning is a type of AI that allows a program to improve on its own by learning from input data instead of being programmed directly. Machine learning is a very popular and fast-growing field in computer science, particularly when it comes to improving user experience.
The many algorithms that can be used in machine learning that can generally be categorized into four different learning styles: supervised, unsupervised, semi-supervised, and reinforcement learning. It should be noted, however, that some algorithms can be used in more than one learning style.
In supervised learning, the data that gets put through an algorithm is labeled and already has a predetermined result. As the algorithm tries to figure out this result, it gets corrected when wrong until a pattern for finding the result is determined. This pattern can then be used to determine finding results from unlabeled data.
Some algorithms used in supervised learning are decision trees, or modeling data in a tree structure, and linear regression, or modeling data in a linear fashion. Practical applications of supervised learning include classifying data and making predictions.
In unsupervised learning, the data being put through the algorithm has no labels and does not have a predetermined result. It’s the algorithm’s job to determine patterns in the data.
Common algorithms used in unsupervised learning are clustering algorithms, or grouping data, and association rule mining algorithms, or finding relationships in data. Practical applications of unsupervised learning include structure discovery and targeted marketing.
Semi-supervised learning is a combination of supervised and unsupervised learning. Both labeled and unlabeled data is put through an algorithm, and patterns are found with assistance from the labeled data.
A common practical application of semi-supervised learning is classifying very large amounts of data. It uses algorithms that are also used for supervised and unsupervised learning.
In reinforcement learning, an algorithm iterates over its environment and learns and improves over time based on its experiences with the environment. It detects all possible states of an environment and determines the best results for each state based on some sort of feedback from the environment, such as user input in an application.
Some algorithms used in reinforcement learning are temporal difference algorithms, which uses differences in results over time to predict data based on future values, and Q-learning, which determines decisions for any type of problem. Reinforcement learning is used in real time decisions, such as in AI for games or skill acquisition.