All right.
In this module, I'm going to be talking about machine learning
and give you an overview of all the topics we're
going to cover.
So remember that machine learning
is the process of taking data and converting it into models.
And with those models, you can go and perform inferences
and answer all sorts of questions.
So we're going to focus on reflex-based models.
These are models, including linear classifiers,
neural networks, in which inference
is very fast and feedforward, which
makes them very attractive.
So in a nutshell, this is what a reflex-based model is.
We call up a reflex-based model predictor,
and the predictor takes, as input, some x and produces
some output y.
And in general, x can be something arbitrary,
like an image or a text.
And y is going to be restricted, and that particular restriction
is going to determine what type of prediction task
we are talking about.
We'll consider two common cases of prediction tasks here.
The first is binary classification.
So in binary classification, the predictor
is also called a classifier, and the output y is called a label,
and that label can either be plus 1 for the positive class
or minus 1 for the negative class.
So some examples of binary classification problems--
there's fraud detection, where x is a credit card transaction,
and you're trying to predict y, whether there's
fraud or no fraud so that the transaction can be blocked
or not.
Another example is moderating online discussion forums.
So the input x is an online comment, a piece of text,
and you're trying to predict y, whether it's toxic
or not so that the comment can be flagged or taken
down appropriately.
And finally, here's an example from physics.
So after the Higgs boson was discovered,
scientists wanted to know how does it decay?
So the Hadron Collider collected a bunch
of data, which includes measurements of events.
So here x is a measurement of a particular event,
and you're trying to predict whether it was a decay
event or simply background.
So the second type of task we're going to consider
is regression.
So in regression, y is going to be a real number,
and is generally known as the response.
So here are some examples of regression problems.
So in poverty mapping, x is a satellite image,
and you're trying to predict y, which is the asset wealth
index of the homes in that area in the satellite image.
In housing, you might want to predict using
the information about a house--
location, number of bedrooms, year--
and predict the price.
And finally, you might be interested in predicting
arrival times, given where you are going,
weather conditions at the time, what time of day it is,
and you're trying to predict y, which is the time of arrival.
So the main difference between regression and classification
is that, in classification, y is a discrete entity
and, in regression, it is a continuous entity.
So the final thing we're going to talk about
is structured prediction.
So in structured prediction, it's
a little bit of a catchall.
And in structured prediction, y is simply a complex object.
So some examples include machine translation,
where x, the input, is a sentence in one language,
and y is its translation in another language.
Dialogue can also be cast as structured prediction.
You're given a conversational history
between a user and an agent, for example,
in a virtual assistant setting, and you're
trying to predict y, which is the next utterance
that the agent should say.
Another example is image captioning,
which might be useful for visual assistive technologies.
x is the image of a scene, and y is a sentence
describing or narrating that scene.
Image segmentation, which is useful for autonomous driving,
takes an image of a scene as x and produces
y, which is a segmentation of that scene into regions
corresponding to objects in the real world.
So it might seem daunting at first
to be able to generate segmentations,
or sentences, or texts.
But there's a secret here, which is
that many structured prediction problems can be actually
decomposed into a sequence of multi-class classification
problems.
And this allows us to leverage the machinery
that we'll talk about in this multi-class classification
or structured prediction.
So here is the roadmap of the rest of the modules
in the machine learning ed.
So first, we're going to start with regression
and classification, the bread and butter of machine learning.
And we're going to focus on the most simple settings--
linear models where we're training
using gradient descent.
Then, we're going to step over to algorithms
and introduce stochastic gradient descent, which
is going to give us major speed ups over gradient descent.
Next, we're going to hop over to models
and improve from linear models.
So first, we'll show that, actually, even linear models
can be pushed to its limits by using non-linear features using
this linear machinery.
We can use feature templates to organize a set of features
that we have.
Then, we'll talk about neural networks, which
also allows you to have non-linear predictors,
but allow these non-linearities to be learned from data.
Following neural networks, we're going
to look at the backpropagation algorithm for computing
gradients automatically so you don't have to do it yourself
manually so you can train neural networks.
We're going to hop back over here
and talk about differentiable programming, which
is a generalization or extension of neural networks
that will enable us to build all sorts
of complicated deep-learning models using building blocks.
And all of this is generally done in the context
of supervised learning.
We're going to touch on unsupervised learning
a little bit and introduce the classical K-means algorithm
for clustering points.
And finally, we're going to end on a few notes.
So first is generalization-- the question of,
if you train a machine-learning model on a particular set
of data, when is it able to generalize
to a new set of examples?
And finally, I'm going to talk about best practices,
like cross validation, and how do you
do machine learning in practice.
So that concludes this module.