Problem Solving with Algorithms

728x90
반응형
관련 영상 총 4개에 대한 리뷰입니다.

 

커널 트릭이라는 말이 어렵게 느껴지지만, 아이디어 자체는 직관적이에요.

 

우리는 보통 데이터를 직선이나 평면으로 나누려고 합니다. 예를 들어 2차원 좌표평면에서, 파란 점과 빨간 점을 한 줄로 갈라놓는다고 생각해 볼 수 있죠. 그런데 어떤 데이터는 아무리 직선을 그려도 두 클래스를 깔끔하게 나눌 수 없습니다.

 

이럴 때 흔히 쓰는 생각이 “차원을 하나 더 늘려서, 입체 공간에서 보면 직선(정확히는 평면)으로 나눠보자” 입니다. 2차원에서는 막 꼬여 있던 점들이, 3차원으로 올려 보면 평면 하나로 쫙 나뉘는 상황을 상상해 보세요. 이게 바로 ‘특징 공간을 더 높은 차원으로 매핑한다’는 말의 뜻입니다.

 

문제는, 이 매핑을 직접 계산하려면 각 점을 복잡한 함수에 넣어서 고차원 좌표를 다 계산해야 한다는 점입니다. 고차원이 되면, 이 계산이 너무 비싸지거나 아예 무한 차원이라서 정의하기도 힘들어집니다.

 

커널 트릭의 핵심은 “직접 올려 보내지 말고, 올려 보낸 것처럼 내적만 계산하자” 입니다. 어떤 마법 같은 함수 k(x,z)가 있어서, 이 값이 ‘고차원으로 보냈을 때의 내적’을 그대로 돌려준다고 가정해 봅시다. 그러면 고차원 좌표 ϕ(x) 자체를 모른다 해도, ϕ(x)와  ϕ(z)의 내적은 ) k(x,z)만 계산하면 바로 얻을 수 있습니다.

 

머신러닝 알고리즘들(특히 SVM, 리지 회귀의 듀얼 형식 등)은 “점들 사이의 내적”만 알면 되는 경우가 많습니다. 그래서 ϕ(x)를 절대 계산하지 않고, 내적 자리에 항상 k(x,z)를 넣어 버립니다. 이렇게 해서 마치 고차원에서 복잡한 비선형 경계를 쓰는 것과 같은 효과를 내면서, 실제 계산은 저차원(원래 입력 공간)에서 끝내 버립니다. 이 ‘눈속임’이 바로 커널 트릭입니다.

 

[요약하면,

1. 원래 데이터로는 직선/평면으로 못 나누는 복잡한 문제를,

2. 가상의 고차원 공간에서는 직선/평면으로 나눌 수 있다고 가정하고,

3. 그 고차원 좌표는 직접 계산하지 않고,

4. 커널 함수 k ( x , z ) k(x,z)만으로 “고차원 내적”을 대신 계산해 버리는 아이디어가 커널 트릭입니다.]

 

 

 

영상1: The Kernel Trick - THE MATH YOU SHOULD KNOW!

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

영상출처: https://youtu.be/wBVSbVktLIY?si=P7mkJH5mVUwRfguy

 

 

 

 

 

 

 

영상2: 커널트릭의 개념적 이해(한국어)

 

피처 스페이스에서 본 모습

 

 

 

참고영상 - 내적 공간에 대한 이해 : https://www.youtube.com/watch?v=bt35DkqrhnU

 

 

 

 

 

출처: https://www.youtube.com/watch?v=tz9XwX_mfVE

 

 

영상3: The Kernel Trick in Support Vector Machine (SVM)

 

 

출처: https://youtu.be/Q7vT0--5VII?si=dvv3EemP3RZhllhi

 

 

 

영상 4 The Kernel Trick

 

 

출처: https://youtu.be/N_RQj4OL1mg?si=d2GXQnYMRJGhhBxH

728x90
반응형
반응형

공유하기

facebook twitter kakaoTalk kakaostory naver band
250x250