COMS 4721: Machine Learning for Data Science 4ptLecture 13, 3

Transcription

COMS 4721: Machine Learning for Data Science 4ptLecture 13, 3
COMS 4721: Machine Learning for Data Science
Lecture 13, 3/10/2015
Prof. John Paisley
Columbia University
COMS W4721: Machine Learning for Data Science, Spring 2015
1 / 25
B OOSTING
For more, see the textbook: Robert E. Schapire and Yoav Freund, Boosting: Foundations
and Algorithms, MIT Press, 2012. (I borrow some figures from that book.)
BAGGING CLASSIFIERS
Algorithm: Bagging binary classifiers
Given (x1 , y1 ), . . . , (xn , yn ), x ∈ X , y ∈ {−1, +1}
I
I
For b = 1, . . . , B
I
Sample a bootstrap dataset Bb of size n from D0 =
I
Learn a classifier fb using data in Bb .
Pn
1
i=1 n δxi .
Set the classification rule to be
fbag (x0 ) = sign
B
X
!
fb (x0 ) .
b=1
I
With bagging, we saw how a committee of classifiers votes on a label.
I
Each classifier is learned on a bootstrap sample from the data set.
I
Learning a collection of classifiers is referred to as an ensemble method.
COMS W4721: Machine Learning for Data Science, Spring 2015
3 / 25
B OOSTING
How is it that a committee of blockheads can somehow arrive at highly reasoned decisions,
despite the weak judgment of the individual members?
- Schapire & Freund, “Boosting: Foundations and Algorithms”
Boosting is another powerful method for ensemble learning. It is similar to
bagging in that a set of classifiers are combined to make a better one.
Free to choose a classifier, but a “weak” one is usually picked – i.e., one with
accuracy a little better than random guessing, but very fast to learn.
Short history
1984 : Leslie Valiant and Michael Kearns ask if “boosting” is possible.
1989 : Robert Schapire creates first boosting algorithm.
1990 : Yoav Freund creates an optimal boosting algorithm.
1995 : Freund and Schapire create AdaBoost (Adaptive Boosting),
the major boosting algorithm.
COMS W4721: Machine Learning for Data Science, Spring 2015
4 / 25
BAGGING VS B OOSTING ( SCHEMATIC )
Bootstrap sample
f3(x)
Weighted sample
f3(x)
Bootstrap sample
f2(x)
Weighted sample
f2(x)
Bootstrap sample
f1(x)
Weighted sample
f1(x)
Training sample
Training sample
Bagging
Boosting
COMS W4721: Machine Learning for Data Science, Spring 2015
5 / 25
T HE A DA B OOST A LGORITHM ( A SAMPLING VERSION )
Algorithm: Boosting a binary classifier
Given (x1 , y1 ), . . . , (xn , yn ), x ∈ X , y ∈ {−1, +1}, set w1 (i) =
I
1
n
For t = 1, . . . , T
1. Sample a bootstrap dataset Bt of size n from Dt =
2. Learn a classifier ft using data in Bt .
P
3. Set t = ni=1 wt (i)1{yi 6= ft (xi )} and αt =
1
2
ln
Pn
i=1
1−t
t
wt (i)δxi .
.
˜ t+1 (i) = wt (i) exp{−αt yi ft (xi )}.
4. Update w
P
˜ t+1 (i)/ j w
˜ t+1 (j).
5. Normalize wt+1 (i) = w
I
Set the classification rule to be
fboost (x0 ) = sign
P
T
t=1
αt ft (x0 ) .
Comment: Step 1 can often be skipped and wt used directly in Step 2,
which is the way AdaBoost is normally presented.
COMS W4721: Machine Learning for Data Science, Spring 2015
6 / 25
T HE A DA B OOST A LGORITHM ( SCHEMATIC )
Weighted sample
Classify
B3 ~ D3
{a3, f3(x)}
Classify
B2 ~ D2
{a2, f2(x)}
Classify
B1 ~ D1
{a1, f1(x)}
e2
Weighted sample
e1
Weighted sample
Training sample
fboost (x0 ) = sign
Boosting
COMS W4721: Machine Learning for Data Science, Spring 2015
T
X
!
αt ft (x0 )
t=1
7 / 25
B OOSTING A DECISION STUMP ( EXAMPLE 1)
+
+
+
+
-
Original data
Uniform data distribution
Learn weak classifier
-
Here: Use a decision stump
x1 > 1.7
-
+
COMS W4721: Machine Learning for Data Science, Spring 2015
yˆ = 1
yˆ = 3
8 / 25
B OOSTING A DECISION STUMP ( EXAMPLE 1)
+
+
+
+
-
Round 1 classifier
Weighted error: 1 = 0.3
Weight update: α1 = 0.42
-
+
COMS W4721: Machine Learning for Data Science, Spring 2015
8 / 25
B OOSTING A DECISION STUMP ( EXAMPLE 1)
+
+ +
-
Weighted data
After round 1
-
+
-
+
-
COMS W4721: Machine Learning for Data Science, Spring 2015
8 / 25
B OOSTING A DECISION STUMP ( EXAMPLE 1)
+
+ +
-
Round 2 classifier
Weighted error: 2 = 0.21
Weight update: α2 = 0.65
-
+
-
+
-
COMS W4721: Machine Learning for Data Science, Spring 2015
8 / 25
B OOSTING A DECISION STUMP ( EXAMPLE 1)
+
+
+
+
-
Weighted data
After round 2
-
+
COMS W4721: Machine Learning for Data Science, Spring 2015
8 / 25
B OOSTING A DECISION STUMP ( EXAMPLE 1)
+
+
+
+
-
Round 2 classifier
Weighted error: 3 = 0.14
Weight update: α3 = 0.92
-
+
COMS W4721: Machine Learning for Data Science, Spring 2015
8 / 25
B OOSTING A DECISION STUMP ( EXAMPLE 1)
+
+
+
+
-
Classifier after three rounds
0.42 x
+
0.65 x
+
-
+
COMS W4721: Machine Learning for Data Science, Spring 2015
0.92 x
8 / 25
B OOSTING A DECISION STUMP ( EXAMPLE 2)
A Toy Problem
Random guessing
50% error
Decision stump
45.8% error
Full decision tree
24.7% error
Boosted stump
5.8% error
COMS W4721: Machine Learning for Data Science, Spring 2015
9 / 25
B OOSTING
Point = one dataset. Location = error rate w/ and w/o boosting. The boosted
version of the same classifier almost always produces better results.
COMS W4721: Machine Learning for Data Science, Spring 2015
10 / 25
B OOSTING
(left) Boosting a bad classifier is often better than not boosting a good one.
(right) Boosting a good classifier is often better (but can take more time).
COMS W4721: Machine Learning for Data Science, Spring 2015
11 / 25
B OOSTING AND FEATURE MAPS
Q: What makes boosting work so well?
A: This is a very well studied question. We will present one analysis later,
but we can also give intuition by tying it in with what we’ve discussed.
The classification for a new x0 from boosting is
fboost (x0 ) = sign
T
X
!
αt ft (x0 ) .
t=1
Define φ(x) = [ f1 (x), . . . , fT (x)]T , where each ft (x) ∈ {−1, +1}.
I
We can think of φ(x) as a high dimensional feature map of x.
I
The vector α = [α1 , . . . , αT ]T correspond to hyperplane.
I
So the classifier can be written fboost (x0 ) = sign(φ(x0 )T α).
I
Boosting learns the feature mapping and hyperplane simultaneously.
COMS W4721: Machine Learning for Data Science, Spring 2015
12 / 25
A PPLICATION : FACE DETECTION
FACE DETECTION (V IOLA & J ONES , 2001)
Problem: Locate the faces in an image or video.
Processing: Divide image into patches of different scales, e.g., 24 × 24,
48 × 48, etc. Extract features from each patch.
Classify
each
144
Viola
andpatch
Jones as face or no face using a boosted decision stump. This
can be done in real-time, for example by your digital camara (at 15 fps).
number of sub-windows that need further pro
with very few operations:
1. Evaluate the rectangle features (requires bet
and 9 array references per feature).
2. Compute the weak classifier for each feat
quires one threshold operation per feature).
3. Combine the weak classifiers (requires one m
per feature, an addition, and finally a thresh
A two feature classifier amounts to about
Figure 5. The first and second features selected by AdaBoost. The
croprocessor instructions. It seems hard to i
ItwoOne
patch
from
larger
Mask
it with many
“feature extractors.”
features
are shown
in theatop
row andimage.
then overlayed
on a typ-
that any simpler filter could achieve higher re
ical training face in the bottom row. The first feature measures the
rates. of
Byall
comparison,
Eachinpattern
givesthe
one
number,
is the sum
pixels inscanning
black a simple imag
difference
intensity between
region
of the eyeswhich
and a region
would
at least
20 times as many ope
across region
the upper cheeks.
Thesum
featureof
capitalizes
thewhite
observation
minus
pixelsonin
regionplate
(total
of require
45,000+
features).
per sub-window.
that the eye region is often darker than the cheeks. The second feature
compares
the intensities
the eye
regions
COMS W4721:
Machine Learning
for Datain
Science,
Spring
2015 to the intensity across the
14 / 25 is
The overall form of the detection process
I
FACE DETECTION ( EXAMPLE RESULTS )
Figure 10. Output of our face detector on a number of test images from the MIT + CMU test set.
Conclusions
COMS6.W4721:
Machine Learning for Data Science, Spring 2015
This paper brings together new algorithms, represen15 / 25
A NALYSIS OF BOOSTING
A NALYSIS OF BOOSTING
Training error theorem
We can use analysis to make a statement about the predictive accuracy of
boosting on the training data.
Theorem: Under the AdaBoost framework, if t is P
the weighted error of
T
classifier ft , then for the classifier fboost (x0 ) = sign( t=1 αt ft (x0 )),
training error =
n
T
i=1
t=1
X
1X
1{yi 6= fboost (xi )} ≤ exp − 2
( 12 − t )2 .
n
Even if each t is only a little better than random guessing, the accumulation
of them over T classifiers can lead to a substantial value in the exponent.
For example:
t = 0.45, T = 1000 → training error ≤ 0.0067.
COMS W4721: Machine Learning for Data Science, Spring 2015
17 / 25
P ROOF OF THEOREM
Setup
We break the proof into three steps. It is an application of the fact that
if
< b}
|a {z
Step 2
and
b
< }c
| {z
then
Step 3
a
< }c
| {z
conclusion
I
Step 1 allows us to know what b is above.
I
Steps 2 and 3 correspond to the two inequalities.
Also recall the following step from AdaBoost:
˜ t+1 (i) = wt (i)e−αt yi ft (xi ) and normalize wt+1 (i) =
Update w
P
˜ t+1 (j) for use in the proof.
We define Zt = j w
I
COMS W4721: Machine Learning for Data Science, Spring 2015
˜ t+1 (i)
Pw
˜ t+1 (j) .
jw
18 / 25
P ROOF OF THEOREM
Step 1
We first want to expand the equation of the weights to show that
= fboost (xi )
z
}|
{
PT
1 exp{−yi t=1 αt ft (xi )}
.
wT+1 (i) =
QT
n
t=1 Zt
Derivation of Step 1:
To do so, first notice the recurrence: wt+1 (i) = wt (i)e−αt yi xi /Zt .
We can break down wt (i) in exactly the same way, and continue until w1 (i),
wT+1 (i)
exp{−α1 yi xi }
exp{−αT yi xi }
× ··· ×
Z1
ZT
PT
1 exp{−yi t=1 αt ft (xi )}
QT
n
t=1 Zt
= w1 (i)
=
COMS W4721: Machine Learning for Data Science, Spring 2015
19 / 25
P ROOF OF THEOREM
Step 2
We next need to show
QT that the training error of the classifier after T + 1 steps
is not greater than t=1 Zt .
Derivation of Step 2:
From Step 1: wT+1 (i) =
f
(x )}
1 exp{−y
QTi boost i
n
Zt
→ wT+1 (i)
t=1
n
1X
1{yi 6= fboost (xi )}
n
QT
t=1
Zt = 1n e−yi fboost (xi )
n
≤
i=1
1X
exp{−yi fboost (xi )}
n
i=1
=
n
X
wT+1 (i)
i=1
=
T
Y
T
Y
Zt
t=1
Zt
t=1
COMS W4721: Machine Learning for Data Science, Spring 2015
20 / 25
P ROOF OF THEOREM
Step 3
The final step is to calculate an upper bound on Zt , and therefore of
QT
t=1
Zt .
QT
Since t=1 Zt is an upper bound on the training error, the upper bound from
Step 3 is also of the training error.
Derivation of Step 3:
This step is slightly more involved. It also shows why αt =
Zt
=
n
X
1
2
ln
1−t
t
.
wt (i) exp{−αt yi ft (xi )}
i=1
X
=
e−αt wt (i) +
=
e
COMS W4721: Machine Learning for Data Science, Spring 2015
eαt wt (i)
i : yi 6=ft (xi )
i : yi =ft (xi )
−αt
X
αt
(1 − t ) + e t
21 / 25
P ROOF OF THEOREM
Derivation of Step 3 (continued):
We’re currently at Zt = e−αt (1 − t ) + eαt t . Remember from Step 2 that
training error =
n
T
Y
1X
1{yi 6= fboost (xi )} ≤
Zt .
n
i=1
t=1
We want the training error to be small. We therefore pick αt to minimize Zt .
This minimum is independent for each t and occurs at
1
1 − t
αt = ln
.
2
t
p
Plugging this value in gives Zt = 2 t (1 − t ).
COMS W4721: Machine Learning for Data Science, Spring 2015
22 / 25
P ROOF OF THEOREM
Derivation of Step 3 (conclusion):
p
Thus Zt = 2 t (1 − t )
3.5
We re-write this as
r
0.5
3
2.5
2
1.5
1
Zt =
e -x
0
−0.5
1
1 − 4( − t )2 .
2
−1
−1.5
−2
−1
0
1
2
1-x
We use the general inequality 1 − x ≤ e−x to conclude that
Zt = 1 − 4( 12 − t )2
COMS W4721: Machine Learning for Data Science, Spring 2015
12
21
2
2
1
1
≤ e−4( 2 −t )
= e−2( 2 −t ) .
23 / 25
P ROOF OF THEOREM
Putting it all together
2
1
Step 3 showed that Zt ≤ e−2( 2 −t ) . Because both sides are positive, the
product over t doesn’t change this inequality,
T
Y
Zt ≤
t=1
T
Y
2
1
t=1 ( 2 −t )
PT
.
t=1
From the earlier steps we showed
training error =
2
1
e−2( 2 −t ) = e−2
QT
t=1
Zt was also an upper bound,
n
T
Y
PT
2
1
1X
1{yi 6= fboost (xi )} ≤
Zt ≤ e−2 t=1 ( 2 −t ) .
n
i=1
t=1
The two ends of this chain is what we set out to prove.
COMS W4721: Machine Learning for Data Science, Spring 2015
24 / 25
T RAINING VS T ESTING ERROR
Q: Driving the training error to zero leads one to ask, does boosting overfit?
A: Sometimes, but very often it doesn’t!
Error
C4.5 (tree) testing error
AdaBoost testing error
AdaBoost training error
Rounds of boosting
COMS W4721: Machine Learning for Data Science, Spring 2015
25 / 25