face-detectionadaboostviola-jones

adaboost update weights beta value


Viola-Jones face detection used the adaboost method to train strong classifier. I am confused with the beta param update policy:

enter image description here

Why choose beta value like this? The purpose of setting the variable beta is to increase the weight of the Weights. How about choose:

enter image description here


Solution

  • The paper from Viola and Jones didn't explain the beta value in too much details but I will try to explain why the beta value is set like this.

    The purpose of setting variable beta is NOT to always increase the weight, but rather to decrease/penalize the weight only if the particular weak classifier is a good one(I will explain what is considered good in a moment) and to increase/boost the weight if the classifier is a bad one. (Keep in mind that the weight here is the weight of the error rate not the weight of each classifier, so the better the classifier is, the less weight there should be)

    Apparently you can have different ways to define what is a "good" classifier, but in Viola and Jones paper a very simple criteria is used, that is, if the error rate of the weak classifier is less than 50%, it is "good", otherwise it is "bad". The better the classifier is(the smaller the error rate is), we want to boost the weight more, and vice versa. Up to now you should have a feeling of why the beta value is selected this way -- whenever the error rate(epsilon_e) is greater than 1/2, the beta value will be greater than 1 and thus the weight will be boosted and vice versa.