본문 바로가기

Data-science/machine learning

SVM 공부

728x90

서포트 백터 머신...


두 클래스를 명확히 구분할 수 있는 경계를 찾는다.


이때 거리 개념으로 특정 거리 이상일 경우 어떤 클래스에 속하도록 경계를 설정하는데


거리를 정의하기 위해 경계와 수직인 벡터가 등장하고 그 벡터와의 내적 개념이 등장.


내적을 이용해서 거리를 정의하고, 제약조건을 준다. 여기서 라그랑주 승수법을 이용




그리고 그 거리를 최대화해서 두 클래스를 구분짓는 경계의 폭을 크게 한다.






* 라그랑즈 승수법은 제약조건(보통 boundary condition)을 특정 상수값과 곱해서 목적함수에 더해준다. 그리고 목적함수에 대해 모든 변수들에 대한 편미분을 0으로 한다. 제약조건을 따로 명시할 필요가 없는 좋은 수학 도구이다. 

-> 이렇게 할 수 있는 이유는 목적함수의 gradient(쉽게 말해 기울기)와 제약 조건의 gradient가 평행하기 때문이다.

-> 접점을 이루는 곳이 제한된 조건을 만족하는 함수의 최대값이라는 것을 알 수 있다.

-> 그렇다면 접점을 찾는 조건은 무엇일까? 바로 두 곡선의 기울기가 접점에서 평행을 이룬다는 사실이다. 곡선의 기울기는 미분을 통해 알 수 있는데 변수가 많아지면 편미분을 통해서, 조금더 자세하게는 gradient를 통해서 구할 수 있다.

ref) https://wikidocs.net/5719