15-859(A) Machine Learning Theory 02/12/04 * Boosting, contd: Adaboost. ======================================================================== Basic setup: Suppose we have an algorithm A that claims on every distribution to be able to get error at most p = 1/2 - gamma. (let's ignore the delta parameter). How can we use this as a black box to get error epsilon? Or, as a practical matter: say we have a learning algorithm that's good at finding rules-of-thumb. How can we use it to produce a really good classifier? Last time we looked at one method for reducing error (Rob Schapire's original approach). This involved calling A 3 times on specially reweighted distributions and taking majority vote. Then this can be repeated recursively. Note: if each hypothesis independently on each example flipped a coin of bias p to decide whether to give you the correct answer, then the error rate of the majority vote would be p^3 + 3p^2(1-p) = 3p^2 - 2p^3. This is exactly the bound we showed for Schapire's algorithm. So in a sense, its really the best we could hope for 3 calls. And what the reweighting is doing is in a sense forcing the hyps to be as useful as if independent. ============================================== Adaboost idea: Let's just keep repeating step 2 of the previous scheme, each time reweighting the examples so that the previous hypothesis gets error exactly 1/2. Then take a big vote of all the hypotheses, weighted in some way by how good they were on the distributions they came from. In fact, this will look a lot like the randomized weighted majority algorithm, except the examples are playing the role of the "experts". What could we hope for? Suppose we want to get error epsilon, and A always gave us hypotheses of error 1/2 - gamma where the errors were *independent*. How many calls would we need so that the majority vote had error epsilon? I.e., on each example, there was at most an epsilon probability of the vote being wrong. This is like flipping a coin of bias 1/2 - gamma and we want at most an epsilon chance of more heads than tails. Hoeffding bounds say that want want the number of flips T to satisfy e^{-2*T*gamma^2} = epsilon, so the number of flips needed is O((1/gamma)^2 log(1/epsilon)). We are going to be able to achieve this, even though A is not necessarily so nice. In fact, as a byproduct, we'll see that this argument gives us a *proof* of Hoeffding bounds. Adaboost -------- First draw large sample that will be sufficient by Occam/VC arguments. Use Weighted-majority, but in peculiar way. Experts will correspond to examples. Weighting of experts will be the current distribution. "trials" will correspond to the weak hypotheses. Specifically, the algorithm is: 0. Draw n examples. 1. Start with weight w_i = 1 on each example x_i. The associated prob dist D has P(x_i) = w_i/W, where W = sum(w_i). 2. For t=1 to T do: Feed D to weak algorithm, get back hypothesis h_t. Let beta_t = (error rate)/(1 - error rate) of h_t on D Now update D: Multiply w_i by beta_t if h_t(x_i) = c(x_i). (notice: h_t now has 50% error on the new distribution) 3. Final hypothesis: say "positive" if sum_t[ alpha_t * h_t(x) ] > 1/2 where alpha_t = ln(1/beta_t) / sum_{t'}[ ln(1/beta_{t'}) ] Claim: training error(h_final) < e^{-2*sum_t[ (gamma_t)^2 ]} where 1/2 - gamma_t = error rate of h_t on D_t. So, if each time we have error at most 1/2 - gamma, we run it T times, we get e^{-2T gamma^2}. If our goal is to achieve error epsilon, then we need to run this O((1/gamma)^2 * log(1/epsilon)) times. (Notice similarity to Hoeffding formula) ANALYSIS ======== To simplify things, let's assume all gamma_t's are the same. Call it gamma. Then beta is fixed, and the final hypothesis is just a straight majority vote over the h_t's. Some notation: error = 1/2 - gamma (error of each weak hypothesis) accuracy = 1 - error = 1/2 + gamma beta = error/accuracy T = number of steps we run this procedure Let's now analyze as in RWM, by putting upper and lower bounds on the final weight. For the upper bound, we use the fact that the weight starts at "n", and then on each step, we multiply an "accuracy" fraction of the weight by beta. So, we have (the inequality is really an equality if all weak hyps have error exactly 1/2 - gamma): W_final <= n*(1 - (1-beta)*accuracy)^T. Just simplifying this a little, 1 - (1-beta)*accuracy = 1 - accuracy + error = 2*error. So we have: W_final <= n*(2*error)^T Now, let's look at the lower bound. To do the lower bound, notice that any example on which our final hypothesis makes a mistake must have weight at least beta^{T/2}, since if our majority vote is wrong then we could have multiplied it by beta *at most* T/2 times. So, if in the end our error is epsilon, then W_final >= beta^{T/2} * epsilon * n Combining our upper and lower bounds gives us: epsilon <= [(2*error)^2 / beta]^{T/2} = [4*accuracy*error]^{T/2} = [1 - 4*gamma^2]^{T/2}. Now we use our favorite inequality: 1-x <= e^{-x} epsilon <= e^{-2T*gamma^2}. QED ======================= So, just to summarize, if we had T hypotheses of *independent* error 1/2 - gamma, then Hoeffding bounds give us this bound on the error rate of their majority vote. What we are able to do with Adaboost is achieve this error with an arbitrary weak learning algorithm, that just guarantees that to give error at most 1/2 - gamma on whatever distribution it's given. What about true error versus empirical error? What we really have now is a bound on empirical error. Can then use the fact that we only called A a small number of times to argue how many samples we need so that this gives us good bounds on true error also. Actually, you can also get a bound via a margin analysis. Maybe someone wants to do this as a presentation? Proof of (special case of) Hoeffding inequality ================================================ Our argument actually gives a proof that if you flip T coins of bias p then Pr(S > p + gamma) <= e^{-2*T*gamma^2} for p = 1/2 - gamma. Here's why. If we think formally about this experiment, there are 2^T "elementary events" in the sample space, each corresponding to one of the possible T-tuples of outcomes, and each having its own probability. E.g., the one corresponding to all heads gets probability p^T. Let's view them as the "examples" or "experts", and view the probabilities as weights. So initially the total weight is 1. If we take all those elementary events corresponding to the first coin coming up tails and multiply their weights by beta, this doesn't affect the bias of the 2nd coin because of independence. I.e., if you add up the weights of the elementary events corresponding to the second coin being heads, it will be a p fraction of the weight. [e.g., draw out example with T=3]. Same with 3rd etc. So, we can just use the same argument as above. We have: W_final <= (1 - (1-beta)*(1-p))^T = (2p)^T, for our choice of beta = p/(1-p). and also for each elementary event with more heads than tails, it got multiplied by beta at most T/2 times, so its final weight is at most beta^{T/2} times its initial weight. The total initial weight of these events is Pr(S > p + gamma). The total final weight of these events is at least beta^{T/2} times this. So, W_final >= beta^{T/2} * Pr(S > p + gamma). Solving as before, we get: Pr(S > p + gamma) < (4p^2 / beta)^{T/2} = (4p(1-p))^{T/2} = (1 - 4*gamma^2)^{T/2} < e^{-2T*gamma^2} It's interesting to try to solve using general values of p. Not sure if can get the exact constants right with this analysis but you get the right form of the bounds.