Machine learning :
Arthur Samuel already said back in 1959 that "Machine learning is about giving computers "the ability to learn without being explicitly programmed." And this means, for us that we can, for example, create a machine learning model that can detect the difference between a cat and a dog although, we will not explicitly tell our model how this is done.
Machine learning tasks are typically classified into two broad categories, depending on whether there is a learning "signal" or "feedback" available to a learning system:
- Supervised learning: The computer is presented with example inputs and their desired outputs, given by a "teacher", and the goal is to learn a general rule that maps inputs to outputs. As special cases, the input signal can be only partially available, or restricted to special feedback:
- Semi-supervised learning: the computer is given only an incomplete training signal: a training set with some (often many) of the target outputs missing.
- Active learning: the computer can only obtain training labels for a limited set of instances (based on a budget), and also has to optimize its choice of objects to acquire labels for. When used interactively, these can be presented to the user for labeling.
- Reinforcement learning: training data (in form of rewards and punishments) is given only as feedback to the program's actions in a dynamic environment, such as driving a vehicle or playing a game against an opponent.
- Unsupervised learning: No labels are given to the learning algorithm, leaving it on its own to find structure in its input. Unsupervised learning can be a goal in itself (discovering hidden patterns in data) or a means towards an end
Another categorization of machine learning tasks arises when one considers the desired output of a machine-learned system
- In classification, inputs are divided into two or more classes, and the learner must produce a model that assigns unseen inputs to one or more (multi-label classification) of these classes. This is typically tackled in a supervised way. Spam filtering is an example of classification, where the inputs are email (or other) messages and the classes are "spam" and "not spam".
- In regression, also a supervised problem, the outputs are continuous rather than discrete.
- In clustering, a set of inputs is to be divided into groups. Unlike in classification, the groups are not known beforehand, making this typically an unsupervised task.
- Density estimation finds the distribution of inputs in some space.
- Dimensionality reduction simplifies inputs by mapping them into a lower-dimensional space. Topic modeling is a related problem, where a program is given a list of human language documents and is tasked to find out which documents cover similar topics.
Among other categories of machine learning problems, learning to learn learns its own inductive bias based on previous experience. Developmental learning, elaborated for robot learning, generates its own sequences (also called curriculum) of learning situations to cumulatively acquire repertoires of novel skills through autonomous self-exploration and social interaction with human teachers and using guidance mechanisms such as active learning, maturation, motor synergies, and imitation.
What kind of problems can we actually solve with machine learning?
Sentiment analysis, handwriting recognition, and scene classifications are really just three examples. You always have an input that we, as humans can easily interpret, but for a computer program, that's a lot harder. But with already existing machine learning models, we can solve these problems by preparing an input, like an image on the right and pass it througha classifier and get a prediction of what kind of a scene is displayed in that image.
This is also just a small amount of the possibilities that machine learning opens for modern applications. Things like face detections, speaker identification or text prediction is no longer something that only big companies like Apple can do. This is now possible for every developer who uses the Apple ecosystem. Now, you've seen what machine learning offers us.
So with iOS 11, Apple introduced three frameworks that are related to machine learning.Vision, NLP, and Core ML. All of them can be used by your application. And vision is a framework that does everything related to computer vision and images. NLP is all about text processing, natural language processing. You can use it to do things like language identification, tokenization and more. And with Core ML, you can integrate trained machine learning models into your app.