COMS 4771 Perceptron and Kernelization
Nakul Verma
Last time…
• Generative vs. Discriminative Classifiers
• Nearest Neighbor (NN) classification
• Optimality of k-NN
• Coping with drawbacks of k-NN
• Decision Trees
• The notion of overfitting in machine learning
A Closer Look Classification
x
O
Knowing the boundary is enough for classification
Linear Decision Boundary
male data
female data
Weight
Assume binary classification y= {-1,+1} (What happens in multi-class case?)
Height
Learning Linear Decision Boundaries
g = decision boundary d=1 case:
general: f = linear classifier
+1 ifg(x)≥0 -1 ifg(x)<0
# of parameters to learn in Rd?
Dealing with w0
=
.
bias homogeneous
“lifting”
The Linear Classifier
non-linear linear
bias
A basic computational unit in a neuron
popular nonlinearities
threshold sigmoid
Σi wi xi+w0 1 x1 x2 ... xd
Can Be Combined to Make a Network
...
Amazing fact:
Can approximate any smooth function!
...
x1 x2 x3 ... xd
An artificial neural network
How to Learn the Weights?
Given labeled training data (bias included):
Want: , which minimizes the training error, i.e.
How do we minimize?
• Cannot use the standard technique (take derivate and examine the
stationary points). Why?
Unfortunately: NP-hard to solve or even approximate!
Finding Weights (Relaxed Assumptions)
Can we approximate the weights if we make reasonable assumptions?
What if the training data is linearly separable?
Linear Separability
Say there is a linear decision boundary which can perfectly separate the training data
distance of the closest point to the boundary
(margin γ )
Finding Weights
Given: labeled training data S =
Want to determine: is there a which satisfies (for all i)
i.e., is the training data linearly separable?
Since there are d+1 variables and |S| constraints, it is possible to solve efficiently it via a (constraint) optimization program. (How?)
Can find it in a much simpler way!
The Perceptron Algorithm
Given: labelled training data S =
Initialize = 0 For t = 1,2,3,...
If exists s.t.
(terminate when no such training sample exists)
Perceptron Algorithm: Geometry
Perceptron Algorithm: Geometry
The Perceptron Algorithm
Input: labelled training data S =
Initialize = 0 For t = 1,2,3,...
If exists s.t.
(terminate when no such training sample exists)
Question: Does the perceptron algorithm terminates? If so, when?
Perceptron Algorithm: Guarantee
Theorem (Perceptron mistake bound):
Assume there is a (unit length) that can separate the training sample S with margin γ
Let R =
Then, the perceptron algorithm will make at most mistakes.
Thus, the algorithm will terminate in T rounds!
umm... but what about the generalization or the test error?
Proof
Key quantity to analyze:
How far is from ?
Suppose the perceptron algorithm makes a mistake in iteration t, then
Proof (contd.)
for all iterations t
So, after T rounds
Therefore:
What Good is a Mistake Bound?
• It’s an upper bound on the number of mistakes made by an online algorithm on an arbitrary sequence of examples
i.e. no i.i.d. assumption and not loading all the data at once!
• Online algorithms with small mistake bounds can be used to develop classifiers with good generalization error!
Other Simple Variants on the Perceptron
Voted perceptron Average perceptron Winnow
...
Linear Classification
Linear classification simple,
but... when is real-data (even approximately) linearly separable?
What about non-linear decision boundaries?
Non linear decision boundaries are common:
x
Generalizing Linear Classification
Suppose we have the following training data:
d=2 case:
say, the decision boundary is some sort of ellipse
e.g. circle of radius r:
separable via a circular decision boundary
not linear in !
But g is Linear in some Space!
non linear in x1 & x2 linear in χ1 & χ2 !
So if we apply a feature transformation on our data:
Then g becomes linear in φ - transformed feature space!
Feature Transformation Geometrically
Feature Transform for Quadratic Boundaries
R2 case: (generic quadratic boundary)
feature transformation:
Rd case: (generic quadratic boundary) feature transformation:
This captures all pairwise interactions between variables
Data is Linearly Separable in some Space!
Theorem:
Given n distinct points S =
there exists a feature transform such that for any labelling of S is linearly
separable in the transformed space!
(feature transforms are sometimes called the Kernel transforms)
the proof is almost trivial!
Proof
Given n points, consider the mapping into Rn: 0
010
0
Then, the decision boundary induced by linear weighting perfectly separates the input data!
(zero in all coordinates except in coordinate i)
Transforming the Data into Kernel Space
Pros:
Any problem becomes linearly separable!
Cons:
What about computation? Generic kernel transform is typically
Ω(n)
Some useful kernel transforms map the input space
into infinite dimensional space!
What about model complexity?
Generalization performance typically degrades with model complexity
The Kernel Trick (to Deal with Computation)
Explicitly working in generic Kernel space takes time Ω(n) But the dot product between two data points in kernel space can be
computed relatively quickly
Examples:
• quadratic kernel transform for data in Rd
explicit transform O(d2)
dot products O(d)
can compute fast
• RBF (radial basis function) kernel transform for data in Rd explicit transform infinite dimension!
dot products O(d)
The Kernel Trick
The trick is to perform classification in such a way that it only accesses the data in terms of dot products (so it can be done quicker)
Example: the `kernel Perceptron’ Recall:
Equivalently
Thus, classification becomes
αk = # of times mistake was made on xk
Only accessing data in terms of dot products!
The Kernel Trick: for Perceptron
classification in original space:
If we were working in the transformed Kernel space, it would have been
Algorithm:
Initialize = 0 For t = 1,2,3,..., T
If exists s.t.
implicitly working in non-linear kernel space!
The Kernel Trick: Significance
dot products are a measure of similarity
Can be replaced by any user- defined measure of similarity!
So, we can work in any user-defined non-linear space implicitly without the potentially heavy computational cost
What We Learned...
• Decision boundaries for classification
• Linear decision boundary (linear classification)
• The Perceptron algorithm
• Mistake bound for the perceptron
• Generalizing to non-linear boundaries (via Kernel space)
• Problems become linear in Kernel space
• The Kernel trick to speed up computation
Questions?
Next time...
Support Vector Machines (SVMs)!