커널: 무한히 많은 물결을 셈 한 번으로
자주 하는 실수와 요약
자주 하는 실수
| 실수 |
바른 생각 |
나온 문제 |
| 곱 특징 9칸의 내적은 원래 점수의 내적과 상관없다 |
두 장르 곱 특징의 내적은 원래 내적의 제곱이다. 특징을 만들지 않고 셈 한 번으로 계산한다 |
문제 1 |
| 「가까울수록 크게」 재는 함수면 커널 함수다 |
어떤 점들을 골라도 커널 행렬의 고윳값이 0 이상이어야 한다. −(x − y)² 는 점 둘에서 길이 제곱이 −2 인 벡터를 만든다 |
문제 2 |
| 커널 함수는 특징이 많아도 되니 점이 많아도 괜찮다 |
커널 행렬은 점 수의 제곱으로 크고, 풀이는 세제곱으로 느려진다. 50만 점이면 행렬만 2,000 GB 다 |
문제 3 |
| 이웃을 더 닮게 쳐도 커널 함수는 그대로다 |
요일 닮음표는 s 가 0.555 를 넘으면 원을 세 번 도는 물결의 고윳값이 음수가 된다 |
문제 4 |
| 모양이 비슷한 뾰족한 꼴이면 둘 다 커널 함수다 |
상자 꼴은 주파수 분포가 음수인 곳이 있고, 상자를 자기 자신과 합성곱한 삼각형은 주파수 분포가 제곱이라 음수가 없다 |
문제 5 |
| 고윳값이 −3 × 10⁻¹⁵ 이면 커널 행렬이 아니다 |
반올림 오차 크기다. 특징 8개짜리 내적은 순위가 8을 넘지 못해 고윳값 0 이 여럿 나온다. 무게가 음수인 묶음이 있으면 진짜 음수(−2.9)가 나온다 |
문제 6 |
| 샘플을 두 배로 늘리면 오차가 절반이 된다 |
오차는 1/√D 로 준다. 절반으로 줄이려면 네 배, 열 배 정확하게 하려면 백 배가 든다 |
문제 7 |
| 위상 b 는 없어도 된다 |
b 를 빼면 평균이 K(x − y) + K(x + y) 가 되어 평행이동 불변이 깨진다. b 를 고르게 뽑거나 cos ωx 와 sin ωx 를 한 쌍으로 넣는다 |
문제 8 |
| 무작위 특징 어텐션은 늘 빠르다 |
곱셈 수의 비가 N/D 라서 글이 특징 수보다 짧으면 오히려 느리다 |
문제 9 |
| 두 관측소 사이는 거리에 비례해 나눠 붙인다 |
무게는 공분산(커널 함수)으로 정해지고, 합이 1 일 필요가 없다. 남은 무게는 사전 평균으로 간다 |
문제 10 |
| 같은 입력에서 잰 값이 둘이어도 그냥 풀면 된다 |
노이즈가 없다고 보면 커널 행렬이 특이해진다. 대각에 노이즈 분산을 더하면 곡선이 점을 꼭 지나지 않는다 |
문제 11 |
| 평균이 가장 좋은 자리를 다시 돌려 본다 |
이미 아는 자리에서는 새로 배울 것이 없다. 평균과 표준편차를 함께 보고, 가우시안 커널의 폭이 그 판단을 바꾼다 |
문제 12 |
요약
- 커널 함수: 두 입력을 받아 어떤 특징 벡터 둘의 내적과 같은 값을 돌려주는 함수. 특징이 무한히 많아도(가우시안 커널) 셈 한 번이고, 회귀는 N × N 커널 행렬로 푸는 연립방정식 K α = y 가 된다. 곡선은 데이터 점마다 세운 봉우리의 합이다.
- 보흐너 정리: 차이 Δ 에만 기대는 이어진 함수가 커널 함수인 것은 그 주파수 분포 p(ω) 가 음수가 없을 때, 그리고 그때뿐이다. 가우시안 커널의 주파수 분포는 정규분포, 라플라스 커널은 꼬리가 긴 코시 분포이고, 상자 꼴은 음수가 있어 커널 함수가 아니다.
- 랜덤 푸리에 특징: 주파수 분포에서 주파수를 D 개 뽑아 √(2/D) cos(ωx + b) 를 특징으로 쓰면, 특징의 내적이 커널 함수에 다가간다. 상대 오차는 1/√D 로 줄고, N × N 행렬 대신 N × D 행렬로 계산한다.
- 가우스 과정: 커널 함수를 공분산으로 삼아 함수를 뽑는 분포. 점을 본 뒤의 평균은 커널 회귀 곡선과 같고, 표준편차가 「여기는 잘 모른다」를 알려 준다. 주파수 분포가 빨리 줄수록 뽑힌 곡선이 매끄럽다.
- ML에서는 서포트 벡터 머신과 0에서 출발한 선형 모델이 커널 방법이고, 어텐션 점수와 RoPE 점수가 커널 함수이며, 무작위 특징으로 어텐션을 어림하고, 하이퍼파라미터를 가우스 과정으로 고른다.
flowchart LR
A["특징의 내적만 쓰인다<br/>커널 함수 K(x, y)"] --> B["어떤 함수가 커널 함수인가<br/>보흐너: 음수 없는 주파수 분포"]
B --> C["그 분포에서 물결을 뽑는다<br/>랜덤 푸리에 특징, 상대 오차 1/√D"]
B --> D["커널 함수를 공분산으로<br/>가우스 과정, 스펙트럼 = 매끄러움"]
A --> D
막힌 곳
- 랜덤 푸리에 특징은 주파수를 무작위로 뽑았다. 같은 개수라면 주파수를 고르게 늘어놓거나, 뽑은 주파수들이 서로 겹치지 않게 고르면 더 잘 맞지 않을까? 입력이 여러 차원이면 주파수도 방향을 가진 벡터인데, 방향은 어떻게 고르면 좋을까?
- 커널 함수는 우리가 골랐다. 폭과 꼴을 정하는 순간 맞출 곡선이 얼마나 매끄러울지를 미리 정한 셈인데, 신경망은 아무도 커널 함수를 고르지 않았는데도 학습한다. 신경망이 스스로 갖는 커널 함수가 있다면, 그 주파수 분포는 어떤 모양이고 신경망은 어떤 물결부터 배울까?
- 가우스 과정의 표준편차는 데이터 점 수의 세제곱만큼 무거운 계산에서 나왔다. 무작위 특징으로 바꾸면 표준편차는 얼마나 믿을 만하게 남을까?