I am implementing AdaBoost as described in the Viola-Jones document for my own edification. In the process of unit testing the algorithm, I found strange behavior. Perhaps this is just an algorithm that has a weird effect on canned data, or maybe I'm missing something. I would like to know in which case.
To start, I:
2 instances of A type faces
1 instance of a B type face
3 instances of noise
--------------------
6 total instances
Thus, each image has an initial weight 1/6.
The first function selected by the classifier identifies faces of types A, but not faces of type B, and not any noise. As a result, it has an error (and the associated weight in the reinforced classifier) 1/6.
Then the weight is updated (first correctly classified images are multiplied by (error / 1 - error)) == 0.2, giving:
A type face weight: 1/30
B type face weight: 1/6
noise image weight: 1/6
( 1):
A type face weight: 1/22
B type face weight: 5/22
noise image weight: 5/22
B, A. 1/11 (2/22), 1/6.
"", - ( , ), , , ( ), B.
, , A , B A B.
, , AdaBoost , , , A, .
, , , .
?