스펙트럼 편향: 신경망은 굵은 무늬부터 배운다
자주 하는 실수와 요약
자주 하는 실수
| 실수 |
바른 생각 |
나온 문제 |
| 두 물결을 함께 틀리면 손실은 (1 + 0.5)² 이다 |
출렁임 수가 다른 물결은 직교해 곱의 평균이 0 이고, 손실은 물결마다 진폭² / 2 를 더한 값이다 |
문제 1 |
| 손실이 머물면 학습이 막힌 것이다 |
굵은 물결은 다 맞추고 가는 물결 하나가 남은 자리일 수 있다. 머문 값이 남은 물결의 진폭을 알려 준다 |
문제 1, 2 |
| 경사하강은 진폭이 큰 물결부터 지운다 |
가는 물결의 진폭을 두 배로 줘도 굵은 물결이 먼저 맞았다. 순서는 커널의 고윳값이 정한다 |
문제 3 |
| 합계가 빨리 줄던 비율로 앞으로도 준다 |
축마다 줄어드는 비율이 따로 있어 느린 축이 남으면 합계도 느려진다 |
문제 4 |
| 학습률을 키우면 가는 물결도 빨리 배운다 |
학습률의 끝은 가장 큰 고윳값이 정한다(η < 2/λ). 가장 큰 것과 가장 작은 것의 비만큼 늦다 |
문제 5 |
| 학습 손실이 노이즈의 제곱 평균보다 작아지면 더 좋아진 것이다 |
노이즈까지 외우기 시작한 것이다. 스펙트럼 편향 덕에 일찍 멈추면 높은 주파수 노이즈가 걸러진다 |
문제 6 |
| 빠른 특징만 있으면 위치를 다 가를 수 있다 |
빠른 바퀴는 가까운 두 점만 가른다. 먼 두 점은 느린 특징이 가른다 |
문제 7 |
| 특징 공간에서도 가까운 점은 가깝다 |
주파수를 너무 높이 넣으면 가까운 점이 멀어지고 먼 점이 이웃이 된다 |
문제 8 |
| 푸리에 특징의 L 은 클수록 좋다 |
데이터에 든 가장 높은 주파수까지만. 넘치면 노이즈를 빨리 외우고, 칸 간격을 넘으면 에일리어싱이 생긴다 |
문제 9 |
| 범위 밖의 값은 각도를 줄이기만 하면 된다 |
줄이면 학습 때 배운 각도의 뜻이 바뀌므로 다시 학습해야 하고, 빠른 바퀴까지 줄이면 가는 정보를 잃는다 |
문제 10, 12 |
| 위치 보간과 밑수 바꾸기는 같다 |
위치 보간은 모든 묶음을 같은 비율로, 밑수를 키우면 빠른 묶음은 덜 느린 묶음은 더 줄인다 |
문제 11 |
요약
- 스펙트럼 편향: 신경망은 오차의 낮은 주파수 성분을 먼저, 높은 주파수 성분을 늦게 줄인다. 장난감에서 굵은 물결은 54 스텝, 가는 물결은 1699 스텝에 10% 아래로 내려갔고, 가는 물결의 진폭을 더 크게 줘도 순서는 같았다.
- 신경 탄젠트 커널의 스펙트럼: 넓은 망의 학습은 r ← (I − ηK/N) r 로 적히고, 커널의 고유 방향마다 오차가 (1 − ηλ) 배씩 준다. 좌표를 그대로 넣은 망의 고유벡터는 물결이고 고윳값은 주파수가 오를수록 가파르게 준다(주파수 1 에서 45.6, 10 에서 0.000132).
- 푸리에 특징: 좌표를 sin(2ʲπx), cos(2ʲπx) 로 펴서 넣으면 커널이 두 점의 차이에만 기대게 되고, 넣은 주파수까지 고윳값이 고르게 커진다. 넣을 주파수는 데이터에 든 가장 높은 주파수와 학습 점의 간격에 맞춰 고른다.
- 위치 보간: 사인 위치 인코딩·RoPE·시간 넣기도 1차원 좌표의 푸리에 특징이다. 학습 길이보다 긴 글에서는 한 바퀴를 못 돈 느린 묶음이 처음 보는 각도에 닿는다. 위치 보간은 자리를 줄여 넣고, YaRN 은 느린 묶음만 줄인다.
- ML에서는 좌표를 넣는 NeRF 가 위치에 60개, 방향에 24개의 특징을 쓰고, 일찍 멈추기는 높은 주파수 노이즈를 거르는 필터 노릇을 하며, 긴 문맥 언어 모델은 RoPE 의 느린 묶음을 고쳐 문맥을 늘린다.
flowchart LR
A["스펙트럼 편향<br/>굵은 물결이 먼저"] --> B["까닭: 커널 고윳값<br/>높은 주파수에서 작다"]
B --> C["푸리에 특징<br/>고윳값을 고르게"]
C --> D["위치 인코딩 = 1차원 푸리에 특징<br/>못 본 각도와 위치 보간"]
B --> E["일찍 멈추기<br/>높은 주파수 노이즈 거르기"]
막힌 곳
- 푸리에 특징의 주파수는 사람이 정했다(2배씩, 또는 10000−2j/d). 데이터마다 알맞은 주파수가 다를 텐데, 주파수 자체를 데이터에서 배우게 할 수는 없을까? 그러면 스펙트럼 편향은 어떻게 바뀔까?
- 이 장의 커널은 넓은 망의 학습 전 커널이었다. 실제로 쓰는 망은 학습 중에 커널이 바뀐다. 커널이 바뀌는 망에서도 「고윳값이 큰 방향부터」라는 그림이 남을까, 아니면 망이 스스로 축을 고르기 시작할까?
- 위치 정보는 1차원 수직선 위에 있어서 평행이동 대칭이 사인·코사인을 골랐다. 그림 속 위치(2차원)나 구 위의 방향처럼 대칭이 다른 입력에서는 어떤 물결로 펴야 할까?