회색으로 칠해진 바닥에 검정색 점과 흰색 점들이 분포해 있다. 이제 이 점들을 몇 단계의 간단한 직선가르기로 분류를 하려고 한다. 먼저 바닥에 임의로 선을 그려서 바닥의 점이 선의 오른쪽에 (직선의 방향벡터를 생각하면 오른쪽의 의미가 명확해진다) 위치하면 흰색으로 분류하는 규칙을 마련하자.
그런데 이 직선가르기에 의한 분류는 "직선의 오른쪽에 검정색의 점이 있거나, 직선의 왼쪽에 흰색의 점이 있을 때 점들을 잘못 분류하는 에러를 일으킨다. 따라서 에러를 최소화시키기 위해서 여러 가지 직선을 그려보아서 분류에러가 최소인것을 분류기로 선택한다. 이렇게 만든 직선분류기는 대부분의 경우에 단순한 동전던지기에 의한 랜덤분류방법(50% 에러)보다는 좀 더 낳은 결과를 낸다.
다음 단계의 직선 가르기를 할 때는 이전 단계의 분류규칙에 의한 잘못을 참조하여서 만들어야 한다. 간단한 방법은 이전에 제대로 분류된 흰색 점은 약간 덜 희게 하고, 제대로 분류된 검정점도 덜 검게 하면, 잘못 분류된 흰색과 검정색의 점만 두드려지게 보이게 되어 다음번 직선 가르기를 할 때 이전 단계에서 잘못 분류한 점들이 더 눈에 잘 보이게 되므로 더 많이 참고를 하게 된다(기술적으로는 잘못 분류된 점들이 에러에 기여하는 가중치를 상대적으로 더 크게 만드는 것이다). 이러한 과정을 반복적으로 하면 횟수만큼의 직선분류기를 가지게 되고, 각각의 분류기에 의한 분류에러도 가지게 된다.
이들 분류기를 선형결합을 하면 개별적인 분류기보다도 훨씬 분류에러가 적은 강력한 분류기를 만들 수 있는데, 이때, 각각의 직선분류기에 주는 가중치는 그 분류기가 일으키는 에러를 참조해서 만든다. Adaboost 알고리즘에서는 직선분류기가 ε의 에러를 주면 최종분류에 기여하는 정도는 α = log (1-ε)/ε 로 잡는다.
'Image Recognition' 카테고리의 다른 글
QR-code: decoder (0) | 2012.01.26 |
---|---|
QR-code: detector (0) | 2012.01.12 |
Blur Detection (0) | 2010.05.25 |
Savitzky-Golay Smoothing Filter (2) | 2010.03.24 |
Watershed Algorithm 구현 (0) | 2010.03.19 |