블로그 이미지
Kanais
Researcher & Developer 퍼즐을 완성하려면 퍼즐 조각들을 하나 둘씩 맞춰나가야 한다. 인생의 퍼즐 조각들을 하나 둘씩 맞춰나가다 보면 인생이란 퍼즐도 완성되는 날이 오려나...?

calendar

1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30

Notice

2015. 4. 16. 11:34 Computer Vision



출처 : SERETO.blogspot.com


Machine Learning Algorithm들을 설명하다보면 Boosting이란 단어가 자주언급됩니다. 이 Boosting이 무엇인지 Boost algorithm 중 가장 잘알려져있고 일반적인 AdaBoost를 통해서 이해해볼게요. 에이다부스트라고 읽으면 되겠습니다. 아다아님.


supervised classifier들의 종류가 참많죠? 뭐 Bayesian, SVM, Decision Tree등등 지금도 계속 나오고 있는 중입니다. 왜그런가하면 데이터의 종류에 따라서 이렇게 쓰이는 곳이 다르기 때문이 아닌가 생각되네요. 어떤 데이터와 궁합이 잘맞는 가에 따라 classifier를 고르니깐요. 따라서 이 다양한 classifier들을 데이터들에 맞게 사용하자해서 Boosting을 사용합니다. 


Boosting

Boosting은 다른 종류의 classifier들을 weak classifier로 만듭니다. 이렇게 여러개의 weak classifier를 합쳐서 strong classifier를 만드는데요. 이때 weak classifier는 어떤 feature를 보고 그것을 맞출 확률이 50% 이상이면 됩니다. 이렇게 범재들을 모아 하나의 천재를 만드는 것과 같죠.


AdaBoost

AdaBoost는 Boost의 종류의 하나로 Adaptive Boot의 줄임말입니다. 적응한다는 것인데요. 어디에 적응하냐 하면 'error'에 적응하는 것입니다. 처음 만들어진 weak classifier로 분류를 하면 error가 날때가 있겠죠? 이때 에러난 부분에 가중치를 두고 그쪽에 좀 더 맞춤형인 classifier를 다시 생성합니다. 그리고 그 만들어진 classifier를 배열에 저장해놓습니다. 그리고 다시 똑같이 classifier를 만들고  분류를 반복하죠. 이것을 여러번하면 에러가 0이되거나 아니면 반복문을 끝까지 돌고 나오게 되겠죠. 그리고 거기서 남은건 여러개의 classifier 배열 입니다. 이 classifier들로 다음 feature를 분류하겠죠.


Weak Classifier 만들기

weak classifier를 만드는 방법도 간단합니다. 학습하는 과정이므로 우리는 classifier에 학습데이터를 가지고 있습니다. 물론 라벨링도 되어있고요. weak classifier로는 Bayesian을 하든지 SVM, Decision Tree등 쓰고싶은 걸 사용하면됩니다. 입력받은 데이터들을 classifier에 넣습니다. 그리고 받은 데이터를 분류합니다. Decision Tree로 말하자면 어떤 임계값을 단계별로 높이거나 낮추면서, 분류된 값과 라벨링된 값을 비교해 오류율을 구합니다. 이때 이 오류율을 구할때 이전에 설정된 가중치가 적용되어, 어떤 feature들을 분류했을 때 같은 error를 낸다해도 그 error가 합산에 들어갈 때의 수치는 달라지는 겁니다. 마치 2학점짜리 D를 맞는것과 3학점짜리 D를 맞았을때 전체학점에 끼치는 영향이 다른것과같습니다 ㅜㅜ. 이렇게 가중치가 적용된 error들의 합이 가장 적은 것이 weak classifier로 당첨되는 것 입니다.


'Computer Vision' 카테고리의 다른 글

[Computer Vision] 영상처리 시험 동영상  (0) 2016.05.10
[Computer Vision] 영상 feature 비교  (0) 2015.05.07
posted by Kanais