Is this AdaBoost behavior right?

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, .

, , , .

?

+4
1

. 1/6, B . A . , w (i) = w (i) * beta ^ (1-e (i)), B e (i) 1. A- e (i ) = 0. , A :

A type face weight: 1/30
B type face weight: 1/6
noise image weight: 1/30

:

A type face weight: 1/10
B type face weight: 1/2
noise image weight: 1/10

, , 1/5.

+1

Source: https://habr.com/ru/post/1544870/


All Articles