매개변수 공간의 풍경을 걷다
자주 하는 실수와 요약
자주 하는 실수
| 실수 |
나온 문제 |
바로잡는 법 |
| 강수확률이 같은 2%p 바뀌면 반반 근처에서 더 잘 드러난다고 봄 |
1 |
우연한 흔들림으로 나눠 본다. 반반 근처는 흔들림이 커서 같은 변화가 묻힌다 |
| 확률 변화의 크기를 비율(세 배 대 1.04배)로만 견줌 |
1 |
흔들림(표준편차)으로 나눈 값으로 견준다 |
| 피셔 정보가 크면 확신이 크니 걸음도 크다고 봄 |
2 |
F−1이 곱해지므로 반대. 피셔 정보가 큰 방향은 조금만 움직여도 분포가 크게 바뀐다 |
| 값이 큰 가중치가 앞 과제에 중요하다고 봄 |
3 |
값이 아니라 그 가중치를 움직일 때 분포가 얼마나 바뀌는지(피셔 정보)로 잰다 |
| 한 꼭지만 돌리면 결과도 한 가지만 바뀐다고 봄 |
4 |
꼭지 하나가 온도와 물 양 둘에 얽혀 있다. 결과 쪽에서 똑바로 가려면 두 꼭지를 함께 돌린다 |
| 역행렬을 구할 때 대각 성분만 뒤집음 |
5 |
대각행렬일 때만 되는 계산. 비대각 성분이 있으면 행렬 전체의 역행렬을 구한다 |
| 자연 경사를 "방향마다 다른 학습률"로 봄 |
5 |
피셔 행렬이 대각일 때만 그렇다. 비대각 성분이 있으면 방향 자체가 바뀐다 |
| 단위를 바꿀 때 넓이당 값을 길이 배율로 한 번만 나눔 |
6 |
길이가 두 번 들어가면 두 번 나눈다. 벡터는 한 번, 계량은 첨자가 둘이라 두 번 |
| 야코비안 J를 새 좌표/옛 좌표 거꾸로 잡음 |
7 |
J=∂(새 좌표)/∂(옛 좌표), Fθ=JTFφJ. 스코어를 직접 계산해 검산한다 |
| 새 좌표에서 걸은 걸음을 그대로 옛 좌표에 더함 |
8 |
새 좌표에서 걸은 뒤 옛 좌표로 되돌린다(σ=es) |
| 유한한 걸음에서 두 좌표의 차이가 학습률에 비례해 준다고 봄 |
8 |
η에 비례하는 항은 두 좌표가 같고 차이는 η2 항부터라, 학습률을 1/10로 줄이면 차이는 1/100쯤으로 준다 |
| 끌어온 자로 재라는데 이쪽에 원래 자가 있는 것처럼 잼 |
9 |
먼저 앞으로 보내고 저쪽 자로 잰다. 이쪽에서 크게 변해도 저쪽이 안 움직이면 크기는 0 |
| 끌어온 계량을 JJT로 곱함 |
10, 11 |
자는 이쪽(다이얼 쪽)에 생겨야 하므로 결과가 매개변수 수 × 매개변수 수인 JTgJ |
요약
보통의 경사하강법이 가리키는 "가장 가파른 방향"은 유클리드 자로 잰 것이라, 매개변수의 이름표를 바꾸면 학습 경로가 달라진다. 걸음의 크기를 계량으로 재면 최급강하 방향은 그래디언트에 계량의 역행렬을 곱한 것이 되고, 확률 모델에서 자연스러운 계량은 스코어의 공분산인 피셔 정보행렬이다. 이렇게 얻은 자연 경사 F−1∇L은 재매개변수화에 대해 불변이다. 좌표를 바꾸면 그래디언트는 JT로, 피셔 행렬은 계량처럼 JT(⋅)J로 바뀌어, 자연 경사는 벡터의 푸시포워드 규칙 J(⋅) 그대로 옮겨지기 때문이다. 유한한 학습률로 걸으면 학습률의 제곱에 비례하는 차이가 좌표마다 남는다. 역행렬 계산 비용 때문에 그대로 쓰기는 어렵지만, K-FAC·TRPO 같은 알고리즘이 그 근사로 쓰인다. 피셔 행렬이 이렇게 바뀌는 것은 그것이 분포 공간의 자를 매개변수 공간으로 끌어온 것(풀백)이기 때문이다. 끌어오기는 되돌릴 수 없는 함수를 따라서도 되지만, 번역표가 납작해지는 방향은 길이 0이 되어 과매개화된 신경망의 피셔 행렬은 특이해진다. 밀도를 끌어올 때는 계량과 달리 행렬식이 한 번 붙는다.
연결되는 세계들
| 분야 |
연결 |
| 심층학습 최적화 |
K-FAC ≈ 층별 크로네커 자연 경사, Adam ≈ 대각 근사의 먼 친척, 가우스-뉴턴 행렬 JTHzJ (곡률의 풀백), 감쇠항으로 특이 피셔 행렬 우회 |
| 강화학습 |
TRPO/PPO: 정책 공간에서의 자연 경사 + 신뢰 영역 |
| 생성 모델 |
노멀라이징 플로의 log∣det∣ 항(밀도의 풀백), 확산 모델의 스코어 함수 ∇xlogp (데이터로 미분한 스코어) |
| 미분방정식 |
Neural ODE(신경망이 정한 미분방정식을 따라 흐르는 모델): 흐름으로서의 신경망 |
| 정보기하학 |
기하학적 언어가 학습 알고리즘의 설계를 인도한다 |
막힌 곳
자연 경사가 불변인 것은 무한히 작은 걸음의 방향뿐이었다. 학습률이 유한하면 좌표마다 학습률의 제곱에 비례하는 차이가 남는데, 실제 학습은 언제나 유한한 걸음으로 간다. 또 매개변수가 n개면 n×n 피셔 행렬의 역행렬이 필요해서, 수억 개의 매개변수를 가진 신경망에서는 대각 성분이나 층별 크로네커 곱 같은 근사를 쓸 수밖에 없다. 근사한 피셔 행렬로 걸은 걸음은 좌표 불변성을 얼마나 지키는가? 이 물음은 아직 열려 있다.