반응형

SVM
파라메타가 필요한 여백을 최소화 하는 알고리즘이다.
두 클래스를 잘 나누는 w와 b를 구하겠다.

sigmoid 함수로 보았을 때 각 양끝단으로 갔을 때 즉 w를 가중했을 때 클래스가 분리될 확률이 높아진다.
Functional Margin
𝒘𝑇𝒙 + 𝑏 = 0 의 선을 그리고, 선에서 더 멀리 떨어질 수 록, 클래스를 분리하는데 확률이 높아진다.

기능적 마진을 구하는 공식이다.
하지만, 2𝑥1 + 3𝑥2 + 1 = 0 and 4𝑥1 + 6𝑥2 + 2 = 0. 같은 선이라도, 위의 functional margin의 식을 대입하면, 값이 다르게 나온다는 함정이있다.

이를 w의 절댓값으로 나누어주는 식이나오게되었다.
Geometric Margin
가장 작은 기하학적 Magin을 최대화 시킨다.
데이터 포인트와 평면 사이의 실제 물리적 거리
가장작은 margin 을 가지고 있는 벡터들을 support vector라고 부르고, 이를 중점으로 보는 것이다.

Primal vs Dual
Primal Problem (원 문제)
Functional Margin을 1로 고정하는 기법을 써서 Geometric Margin 문제를 풀기 쉬운 이차 계획법(Quadratic Programming) 문제로 바꾼 것이 바로 Primal Problem이다.
Dual Problem (쌍대 문제)
Primal Problem에 라그랑주 승수를 도입해서 변환한 문제이다.
w와 b를 직접 구하는 대신, 각 데이터 포인트의 영향력 알파를 구한다.
이를 통해 커널 트릭을 쓸 수 있고, 데이터 차원이 아닌 데이터 개수의 문제로 바뀝니다.
Regularization
슬랙변수를 통해서 여유를 주게된다.
예를 들어 좌표공간에서 튀는 데이터들 (이상치) 가 있을 경우, 선이 클래스들을 잘 구분하지 못하는 상황을 방지하기위해서 슬랙 변수를 통해서, 여유를 주게된다.
슬랙변수를 제어해주는 것이 C이다. 즉 정확도와 trade-off관계이다.
- C값을 크게하면 더 정확하게 만들어주고
- C값을 작게하면 더 여유를 준다.
선형문제?
선형문제일 경우 선을 통해서 구별할 수 있는데, 우리가 사는 세상은 비선형적인 문제가 훨씬 많다.
이럴 경우 커널 함수를 통해 data의 공간자체를 변형시킨다.
보통 차원을 고차원으로 고쳐서 사용한다.

그림과 같이 1차원 선으로 나누기 힘들 때 고차원으로 이동시켜서 데이터를 선으로 나눈다.
Multi-clss support vector machines
클래스가 3가지 이상일 경우 어떻게 나누는 가에 대한 내용
one-versus-one
3가지가 있을 경우, 한가지와 나머지 두가지를 하나로 보고 진행한다.
one-versus-rest
3가지가 있을 경우, 2가지씩 분류할 때, 다른 한 클래스는 무시하고 진행한다.
반응형
'AI' 카테고리의 다른 글
| 태태개발일지 - 자연어처리(FFN, RNN 등장) (0) | 2026.04.11 |
|---|---|
| 태태개발일지 - 기계학습(배깅,랜덤포레스트,부스팅) (0) | 2026.04.11 |
| 태태개발일지 - 기계학습(KNN, 의사결정 tree) (0) | 2026.04.05 |
| 태태개발일지 - 자연어처리(역사, dense vector,skip-gram) (0) | 2026.04.05 |
| 태태코딩 - 자연어처리(word-net, tf,df,idf,pmi) (0) | 2026.03.28 |