
v1 Gram matrix 는 선형 내적 . 커널 트릭: 내적 대신 비선형 유사도 함수 를 써서 고차원 공간 (정확히는 무한 차원) 의 선형 모델을 흉내낼 수 있음.
RBF (Radial Basis Function) 커널:
순진한 구현:
K[i, j] = exp(-gamma * np.sum((x_i - x_j)**2)) # O(N²D)
벡터화:
sq = (X*X).sum(axis=1, keepdims=True) # (N, 1)
D2 = sq + sq.T - 2 * X @ X.T # (N, N)
K = np.exp(-gamma * np.maximum(D2, 0))
는 수치적 음수 방지 (fp 에러).
K 를 행렬로 사용 (PSD 행렬 보장).함수 rbf_kernel(X, Y, gamma) 를 완성하세요.
X shape (N, D), Y shape (M, D).gamma > 0.(N, M).X 와 Y 가 같을 때 대칭 + 대각 1 보장.| # | 이름 | 검증 |
|---|---|---|
| 1 | shape (N, M) | |
| 2 | 대각 = 1 when X=Y | |
| 3 | 대칭 when X=Y | |
| 4 | 값 범위 (0, 1] | |
| 5 | 같은 점 → 1, 먼 점 → ~0 | |
| 6 | gamma 증가 → 먼 점 빠르게 0 접근 | |
| 7 | sklearn rbf_kernel 과 일치 |
코드를 작성하고 Run 을 눌러보세요.