Support Vector Machine
⇒ 여기부터는 GD를 사용하지 않는 모델!
[SVM]
What
Classifier
DNN이 나오기 전까지 NN보다 사랑 받았던 모델!
GD를 쓰지 않고, 파라미터를 직접 수학적으로 계산한 모델이다.
⇒ 지금까지 model error를 줄이기 위해 GD라는 Greedy한 편법을 사용했는데, SVM에서는 직접 파라미터를 계산하여 에러를 최소화 시켜준다.
How
Margin을 최대화 하는 값을 찾는 문제를 해결한다.
GD에서는 cost function(=loss function)의 값을 최소화 하는 것을 목표로 하였다. SVM에서는 margin의 값을 ‘최대화’하는 것을 목표로 한다.
Margin이란?: Bound와 가장 가까이 있는 item 사이의 거리이다.

Alternative View of Logistic Function (SVM cost function)
SVM에서는 NN, logistic reg에서와 다른 cost function을 사용한다.
밑 그림에서 파란 선이 logistic regression에서의 가설함수에 대한 cost function 값 분포, 빨간 선이 SVM에서의 가설함수에 대한 cost function 값 분포이다.

여기서 Point는 logistic에서는 가설함수에 대해서 cost가 확률적으로 매핑되고, SVM에서는 cost가 0, 또는 양의 값으로 매핑된다는 것이다. 이러한 SVM에서의 loss를 hinge loss라고 부른다.
여기서 궁금했던 점
왜 logistic에서의 loss function이 convex 형태가 아닐까?: 아마도 이 그래프에서의 x축이 가설 함수이기 때문일 것이다. 만약 x축이 파라미터라면 convex함수 형태를 띌 것이다.
그냥 SVM에서는 가설함수의 값이 특정 값 이상, 또는 이하가 되면 loss(=cost)를 0으로 주는 형태로 cost function을 구성한다고 이해해두자. (=가설함수에 대한 cost function이 밑과 같은 형태를 띄도록 바꾼다)

이를(SVM에서의 loss function) 수식으로 구하면 다음과 같다.
위 그래프를 바탕으로 수식을 설정한다.
위 그래프 따르면 y=1, 또는 y=-1이므로 기존 cost function의 앞의 항이 0이 되고(왜??), 따라서 뒤의 항만 남게 된다.
즉 파란색 네모처럼 cost function을 정의할 수 있다.

Margin
SVM에서는 GD를 사용하지 않고 loss func을 최적화 한다. 이 방법을 알기 위해서 margin이라는 개념에 대해 먼저 알아야 한다.
Margin과 theta의 관계는 다음과 같다. ⇒ 결론 정도만 이해해도 될 것 같다.
우리는 라는 식으로 최대한 class를 잘 분류해야 한다. 또 는 내적값이므로
로 표현될 수 있다. (cos에서의 theta와 파라미터 theta는 다른 값)
라는 가설함수는 y=1(class)일 때 1보다 크거나 같아야 하고(1보다 크거나 같아야 cost를 0으로 줄 수 있기 때문에), y=-1(class)일 때 -1보다 작거나 같아야 한다.
이 때 Support Vector는 y=1일 때 =1, y=-1일 때 =-1인 벡터를 의미한다. 따라서 Support Vector일 때 , 가 되고, 이를 정리하면 밑과 같이 된다.
margin은 이를 두 배 한 것을 의미한다.
이를 그림으로 표현하면 다음과 같다.

⇒ Point: margin은 SV와 boundary 사이의 값*2이다.
Margin을 이용해서 학습하는 방법
Margin이 최대화 되도록 학습한다.
Margin 개념을 사용했을 때의 장점
Outlier들에 의해서 생기는 오차 값들이 줄어들게 된다. 일반 GD로 학습했을 때는 C가 매우 큰 것처럼 결과가 나오지만, SVM으로 학습했을 때는 C가 크지 않은 것처럼 결과가 나온다.
⇒ 질문: 그러면 outlier는 어떻게 처리하는가? 이는 뒤에 해결책이 나온다! 입실론 파라미터를 활용해서 이 문제를 해결한다.
(이 때 C는 모델이 얼마나 fit 되었는지를 의미한다. regularization의 강도를 결정하는 파라미터로 사용된다) → 질문 입실론 파람과의 차이?, 두 개가 싸우는 지점이 생기지 않을까?

Point: SVM에서는 loss를 minimize하는 것보다 Margin을 maximize하는 방향으로 학습한다.
[SVM Dual Problem]
SVM Dual Problem
Primal SVM problem이 풀리지 않을 때 사용하는 방식이다.
SVM Lagrangian Method
Dual Problem의 업그레이드이다.
여러 개의 변수로 바꾸어서 해결하는 방법이다.
최종적으로 다음 식을 해결하는 문제로 정의할 수 있게 된다.

[Outlier]
Slack Variable
Error를 얼마나 참고 기다리는 가에 관한 변수이다.
[Strength]
Strengths
SVM의 강점은 다음과 같다.
- 수학적으로 잘 정의되어 있다.