[ML] Linear Classification
- 컴퓨터공학과/그외
- 2015. 6. 12.
Support Vector Machine에 대해 공부하기 전에 알아야 할 것들!
Linear function은
을 통해 object x= <x1, x2, ... >를 분류하게 된다.
이 때, X는 feature들을 vector로 표현한 것이다. b는 bias이며 wi는 feature xi의 가중치이다.
F(X)의 값이 0보다 크면 X는 positive로, 0보다 작으면 negative로 분류된다. 이를 그림으로 표현하면 다음과 같다.
그럼 다차원의 공간에서는 어떻게 표현될까!
1) Linear((직)선의; 선으로 된) function
2) Quadratic((수학) 이차의) function
3) Polynomial (다항(식)의) function을 비교해보자
1) Linear: a sum of weighted features
앞서 살펴본 바와 같이 가중치들을 고려한 feature들의 총합이다.
그러나 Linear function은 feature들 간의 관계는 고려하지 못하는 단점이 있다.
그리하여
2) Quadratic: considers also concatenations of two features
Quadratic function은 두 개의 feature의 병합까지 고려한다.
Linear function의 식에
까지 고려하는 것인데, 이는 i번째 x와 y번째 x의 concatenation을 뜻한다.
Quadratic function이 2개 feature의 병합을 고려하듯이 다수의 feature concatenation을 고려할 수 있다.
3) Polynomial: considers concatenations of multiple features (degree p denotes the size of concatenations)
여기서 p를 어떻게 설정하느냐에 따라 concatenation할 feature의 개수가 결정되는데
p를 1로 설정한다면 Linear가 될 것이고 2로 설정하면 Quadratic function이 될 것이다.
p의 값이 높을수록 복잡도 또한 커지기 때문에 적당한 P 값을 찾는 것이 중요하다.
(복잡도가 높으면 overfitting될 수도 있기 때문!)
linear function을 학습하는 알고리즘은 다음과 같은 과정을 거친다.
1. Initiate F by setting w and b randomly
랜덤하게 w, b를 설정하여 랜덤한 F를 얻는다.
2. For each training point xi, If F misclassifies xi, adjust w and b so that new F correctly classifies xi
오분류에 대해 w, b 값을 조정해나가면서 새로운 F를 얻어낸다.
3. Repeat Step 2 until F correctly classifies all the training points
그러나 이렇게 하면 동일한 입력 값임에도 불구하고 다른 결과 값을 낸다. 즉, Nondeterministic 하다.
언제 반복을 멈출 것인지(cut-off), w를 얼마나 조정할 것인지 등이 파라미터로 입력되어 영향을 미친다.
* 참고로 Artificial Neural networks(ANN)도
각 layer마다 linear function을 사용하여 구할 수 있다. 여러 개의 layer를 두어 결국에는 unlinear한 형태이지만 각 layer는 linear하다고 할 수 있다. 입력 x를 받아 출력된 값을 y'라 한다면(Hidden Layer) 최종 출력값 y와 y'의 차이가 줄어들게끔 역(back)으로 수정하면서 전달(propagation)시키는 것이다. (Backpropagation 방법)
지금까지의 내용들을 바탕으로 하는
Support Vector Machines에 관련된 내용은 이어서!
*포항공대 유환조 교수님 강의를 바탕으로 작성
'컴퓨터공학과 > 그외' 카테고리의 다른 글
[Refactoring] 1. 순수 가상함수와 추상 클래스 (0) | 2015.10.29 |
---|---|
Top 10 IT Trends for 2015 (0) | 2015.06.29 |
[WEKA] WEKA사용하기 - Experimenter모드 (0) | 2015.04.29 |
삼성전자, 미래 소프트웨어 주역들 작품 전시회 개최 (1) | 2014.09.01 |
[WEKA] WEKA에서 외부 라이브러리 사용하기(feat. SVM모델) / libsvm classes not in CLASSPATH! 에러해결 (0) | 2014.08.22 |