지금까지는 선형 분리가 되는 상황을 가정하였다.
그렇다면 선형 분리가 어려운 경우에는 어떻게 해야할까?
우리는 multi layer perceptron으로 XOR 문제를 해결할 때 공간변환을 통해서 선형 분리가 가능한 상황으로 바꾸었다.
![]() |
![]() |
그러나 모든 데이터셋에 샘플마다 공간 매핑을 적용하게 되면 데이터셋이 커질 수록 계산 복잡도가 증가한다 ㅠㅠ
그래서 Kernel Trick을 사용한다.
당연히 모든 데이터셋에 공간 변환을 적용할 필요가 없으니 사용하겠다.
선형 SVM시 L을 최대화시키는 데에는 오직 x의 내적만이 영향을 미친다고 하고 끝냈었다.
그 점을 이용하여 어떤 수식이 벡터 내적을 포함할 때 그 내적을 커널 함수로 대치하여 계산한다.
커널함수란, 원래 특징공간 $L$에 정의된 두 특징 벡터 x와 z에 대해 $K(x, z) = \Phi(x) \cdot \Phi(z)$인 변환함수 $\Phi$가 존재하면 $K(x, z)$를 커널함수라고 부른다.
또한 원래 내적은 "유사도"와 관련있다고 이야기했다. 방향이 비슷할수록, 벡터 길이가 비슷할수록 내적 값이 커진다.
그래서 다시, 그 내적을 커널 함수로 대치한다는 것은
수식 안에 있는 $x_i^Tx_j$를 $K(x_i, x_j)$로 바꾸어 사용하겠다는 것인데
왜냐하면 $K(x_i, x_j)=\Phi(x_i)\cdot\Phi(x_j)$를 만족하여
결국 $x_i, x_j \Rightarrow \Phi(x_i), \Phi(x_j)$로의 공간 변환 효과를 얻기 때문이다.
$$L(\alpha) = \sum_i\alpha_i - \frac{1}{2}\sum_i\sum_j\alpha_i\alpha_j y_i y_j\vec{x}_i\cdot\vec{x}_j \Rightarrow \sum_i\alpha_i - \frac{1}{2}\sum_i\sum_j\alpha_i\alpha_j y_i y_jK(\vec{x}_i,\vec{x}_j)$$
'딥러닝기초' 카테고리의 다른 글
딥러닝에서 사용하는 가우시안 분포 기초개념 (0) | 2022.04.22 |
---|---|
분산부터 공분산행렬까지 (0) | 2022.04.21 |
선형 SVM까지 끝장보기 (0) | 2022.04.09 |
서포트 벡터 머신(SVM) 식까지 세워보기 (0) | 2022.04.07 |
Constraint Optimization와 같이 정리하는 KKT condition (0) | 2022.04.04 |