Distill 해설 글 모음
고윳값 분해로 경사 하강과 모멘텀의 수렴 속도를 계산해 보는 Distill 모멘텀 글 수업
먼저 알아야 할 것
다루는 내용
Distill의 「Why Momentum Really Works」(Goh, 2017)를 바탕으로 한 자체 수업입니다. 2차 손실을 고윳값 방향으로 쪼개 경사 하강의 속도가 조건수 κ에 대해 (κ−1)/(κ+1)임을 보이고, 최적 모멘텀이 이를 (√κ−1)/(√κ+1)로 바꿔 조건수 100에서 걸음 수를 약 10분의 1로 줄이는 것을 계산합니다. 수렴 범위와 초반 출렁임, 같은 학술지 어텐션 글의 핵심도 짧게 다룹니다.
해설
Distill 해설 글 모음 — 수업: 모멘텀은 왜 정말 효과가 있나
온라인 학술지 Distill의 대표 글 「Why Momentum Really Works」(Gabriel Goh, 2017)의 논리를 우리 말로 다시 짠 수업입니다. 경사 하강법이 좁은 골짜기에서 느린 이유를 고윳값으로 쪼개 보고, 모멘텀이 수렴 속도를 "조건수의 제곱근" 수준으로 바꾸는 과정을 2차 함수에서 직접 계산합니다. 끝에 같은 학술지의 「어텐션과 증강 순환 신경망」(2016)이 어텐션을 어떻게 설명하는지도 짧게 봅니다.
| 항목 | 내용 |
|---|---|
| 출처 | Distill(2016~2021, 온라인 학술지) · distill.pub · 중심 글: Gabriel Goh, "Why Momentum Really Works", 2017-04-04, distill.pub/2017/momentum |
| 트랙 · 수준 | 딥러닝 기초 · 중급 |
| 이 수업이 다루는 범위 | 모멘텀 글의 2차 모델 분석(고윳값 분해 · 조건수 · 최적 매개변수 · 수렴 범위), 어텐션 글의 핵심 개념 |
| 형식 | 원문 번역이 아닌 자체 해설 · 숫자 예는 해설용으로 직접 만든 것 · 식은 원 글 표기를 따름 |
들어가기 전에
- 딥러닝 (Goodfellow) — 조건수 · 모멘텀 갱신식 · 적응형 학습률의 개요를 먼저 보고 오면, 이 수업은 그중 모멘텀을 정밀하게 파고드는 단계입니다.
한눈에 보기
- 경사 하강법을 2차 함수에서 고윳값 방향으로 쪼개면, 방향마다 독립적인 '등비수열'이 된다는 것을 봅니다.
- 조건수 가 크면 경사 하강의 수렴 속도가 로 1에 가까워져 느려지는 이유를 계산합니다.
- 모멘텀을 최적으로 맞추면 속도가 가 되어, 조건수 100인 문제에서 필요한 걸음 수가 약 10분의 1로 줄어드는 것을 확인합니다.
- 모멘텀이 처음 몇 걸음은 오히려 오차를 키울 수 있다는 점, 발산하지 않는 범위가 라는 점을 압니다.
- 어텐션을 "위치들에 대한 확률 분포로 가중합하기"로 이해합니다.
1. 경사 하강법을 고윳값으로 쪼개기
직관(해설용 비유): 타원 모양 그릇 바닥으로 구슬을 굴린다고 합시다. 그릇의 긴 축과 짧은 축 방향은 서로 간섭하지 않고 각자 따로 움직입니다. 짧은 축(가파른 방향)은 금방 바닥에 닿거나 튀고, 긴 축(완만한 방향)은 아주 천천히 갑니다. 전체 속도는 가장 느린 방향이 정합니다.
단계:
- 손실을 2차 함수 로 둡니다. 실제 신경망 손실도 최저점 근처에서는 이 모양과 비슷합니다.
- 최적점은 입니다.
- 대칭 행렬 를 고윳값 분해 합니다.
- 좌표를 로 바꾸면, 경사 하강 가 방향마다 따로 놉니다.
| 기호 | 뜻 |
|---|---|
| 곡률을 나타내는 대칭 행렬(헤세 행렬) | |
| 의 고윳값 — 번째 방향의 곡률, 원 글은 을 가장 작은 값, 을 가장 큰 값으로 둠 | |
| 걸음 뒤 번째 고유 방향의 오차 | |
| 걸음 크기(학습률) | |
| 그 방향의 한 걸음 배율 — 절댓값이 1보다 작아야 수렴 |
숫자로 해 보기(해설용): 고윳값이 , 인 2차원 문제입니다. 학습률 이면 두 방향 배율은 와 입니다. 가파른 방향은 부호를 바꾸며 튀고(지그재그), 완만한 방향은 걸음마다 2%씩만 줄어듭니다. 두 배율의 절댓값이 같다는 점이 다음 절의 '최적 학습률'입니다.
왜 이렇게 하나: 많은 변수가 얽힌 문제를 서로 독립인 1차원 문제 여러 개로 바꾸면, 수렴 여부와 속도를 등비수열 하나로 읽을 수 있습니다. 원 글 전체가 이 한 가지 변환 위에서 진행됩니다.
2. 조건수와 경사 하강의 한계
단계:
- 학습률을 키우면 완만한 방향은 빨라지지만, 가파른 방향 배율 이 1을 넘으면 발산합니다. 그래서 이어야 합니다.
- 가장 느린 방향의 배율과 가장 빠른 방향의 배율 절댓값을 같게 맞추는 것이 최선입니다.
- 그 값이 이고, 그때 전체 수렴 속도(한 걸음 배율)는 다음과 같습니다.
| 기호 | 뜻 |
|---|---|
| 조건수(condition number) — 가장 큰 곡률 ÷ 가장 작은 곡률 | |
| 속도 | 오차가 한 걸음마다 곱해지는 비율. 0에 가까울수록 빠름 |
숫자로 해 보기(해설용): 이면 , 속도는 입니다. 오차를 1000분의 1로 줄이려면 , 즉 걸음이 필요합니다. 조건수가 1이면(완전한 원 모양 그릇) 속도 0, 한 걸음에 끝납니다.
3. 모멘텀: 무거운 공
직관: 2절의 공은 매 순간 경사만 보고 움직이는 '가벼운 공'입니다. 모멘텀은 공에 무게를 줍니다. 무거운 공은 좌우로 튀는 움직임이 서로 상쇄되고, 같은 방향으로 계속 미는 힘은 속도로 쌓입니다.
단계:
- 속도 를 두고, 매 걸음 이전 속도를 배로 줄인 뒤 현재 기울기를 더합니다.
- 그 속도에 를 곱해 움직입니다.
- 이면 보통 경사 하강법과 같습니다.
| 기호 | 뜻 |
|---|---|
| 누적된 속도(지난 기울기의 감쇠 합) | |
| 속도를 얼마나 기억할지 | |
| 걸음 크기 |
숫자로 해 보기 ① 1차원(해설용): (기울기 ), 시작 , , , 입니다.
| 걸음 | 모멘텀 | 모멘텀 | 보통 경사 하강 |
|---|---|---|---|
| 1 | 1 | 0.5 | 0.5 |
| 2 | 1 | 0 | 0.25 |
| 3 | 0.5 | −0.25 | 0.125 |
| 4 | 0 | −0.25 | 0.0625 |
| 5 | −0.25 | −0.125 | 0.0313 |
| 6 | −0.25 | 0 | 0.0156 |
모멘텀은 0을 지나쳐 반대편으로 갔다가 돌아오는 진동을 보입니다. 이 쉬운 1차원 문제(조건수 1)에서는 보통 경사 하강이 더 낫습니다. 모멘텀의 진가는 조건수가 클 때 드러납니다.
4. 최적 모멘텀: 조건수의 제곱근
원 글은 모멘텀도 고유 방향마다 쪼개 2×2 행렬의 반복으로 분석하고, 두 매개변수를 최적으로 고르면 다음을 얻습니다.
2절의 경사 하강 속도 에서 자리에 가 들어갔습니다. 원 글은 이를 "조건수에 제곱근을 씌운 셈"이라고 표현합니다.
숫자로 해 보기 ② 2차원(해설용): 다시 , , 입니다.
| 경사 하강(최적) | 모멘텀(최적) | |
|---|---|---|
| 0 | ||
| 속도 | ||
| 오차 1/1000까지 걸음 수(근사) | 약 345 | 약 34 |
시작점 에서 실제로 돌려 보면 오차 크기는 다음과 같습니다.
| 걸음 | 10 | 20 | 40 |
|---|---|---|---|
| 경사 하강 | 1.16 | 0.948 | 0.635 |
| 모멘텀 | 2.61 | 0.680 | 0.0242 |
주의할 점: 모멘텀은 처음 10걸음 동안 오히려 오차가 시작값보다 커졌습니다. 최적 에서는 두 고윳값이 겹쳐 오차에 걸음 수에 비례하는 항이 붙기 때문에, 처음엔 출렁이다가 나중에 훨씬 빨리 줄어듭니다. '속도'는 충분히 오래 돌렸을 때의 비율입니다.
5. 발산하지 않는 범위와 실전의 의미
원 글은 일 때 모멘텀이 수렴하는 조건을 로 줍니다. 경사 하강의 조건 보다 넓어서, 모멘텀은 걸음 크기를 거의 두 배까지 키울 수 있습니다.
숫자로 해 보기(해설용): 이면 까지 괜찮습니다. 가장 큰 곡률이 100이라면 경사 하강은 , 모멘텀은 입니다.
실전에서 읽는 법:
- 실제 신경망은 2차 함수가 아니고 고윳값도 모르므로, 위 최적값을 그대로 계산해 쓰지는 않습니다. 대신 "조건수가 나쁜 문제일수록 를 1에 가깝게(예: 0.9 · 0.99)"라는 감각을 줍니다.
- 학습 초반 손실이 출렁이는 것은 모멘텀의 정상적인 모습일 수 있습니다(4절).
- 원 글은 이 밖에도 모멘텀의 물리적 해석(스프링에 매단 추, 감쇠 진동자와 임계 감쇠), 1차 방법이 넘을 수 없는 한계(네스테로프의 하한), 확률적 기울기에서의 모멘텀을 다룹니다.
flowchart LR
F[2차 손실 f w] --> E[고윳값 분해 A = Q Λ Qᵀ]
E --> I[방향마다 독립된 1차원 문제]
I --> G[경사 하강: 배율 1 − αλ]
G --> K[속도 κ−1 / κ+1]
I --> M[모멘텀: 2×2 반복]
M --> S[속도 √κ−1 / √κ+1]
K --> C[조건수 100: 약 345걸음]
S --> C2[조건수 100: 약 34걸음]6. 덧붙임: 「어텐션과 증강 순환 신경망」(2016)
Chris Olah와 Shan Carter(Google Brain)가 2016년 9월 8일 Distill에 쓴 글입니다. 순환 신경망(RNN)을 확장한 네 가지 방향을 다룹니다.
- 신경 튜링 기계(Neural Turing Machines): 외부 메모리를 읽고 씁니다.
- 어텐션 인터페이스(Attentional Interfaces): 입력의 일부에 집중합니다.
- 적응형 계산 시간(Adaptive Computation Time): 단계마다 계산량을 바꿉니다.
- 신경 프로그래머(Neural Programmer): 연산을 불러 프로그램을 만듭니다.
이 글이 어텐션을 설명하는 방식은 간단합니다. 모델이 "어디를 볼지"를 하나만 고르는 대신, 모든 위치에 대한 확률 분포를 내고 그 확률로 가중합합니다. 내용 기반 어텐션은 질의(query)와 각 항목의 내적으로 점수를 매긴 뒤 소프트맥스로 분포를 만듭니다.
숫자로 해 보기(해설용): 질의와 세 항목의 내적 점수가 이면 소프트맥스 가중치는 입니다. 항목 값이 이라면 어텐션 출력은 입니다. 하나를 딱 고르지 않고 '부드럽게' 고르기 때문에 미분이 가능하고, 역전파로 "어디를 볼지"까지 학습됩니다. 자세한 내용은 어텐션 직관: 쿼리 · 키 · 값을 손으로 계산하기에서 다룹니다.
연습 문제
문제 1. 고윳값이 , 일 때 경사 하강의 최적 학습률과 속도, 최적 모멘텀의 속도를 구하세요. 풀이: . 경사 하강은 , 속도 입니다. 모멘텀은 라 속도 , , 입니다.
문제 2. 1절 예()에서 학습률을 로 키우면 무슨 일이 생기나요? 풀이: 가파른 방향 배율이 로 절댓값이 1을 넘어 발산합니다.
문제 3. 경사 하강 속도 과 모멘텀 속도 로 오차를 100분의 1로 줄이는 걸음 수를 비교하세요. 풀이: , 으로 약 10배 차이입니다.
문제 4. 인 모멘텀이 수렴하려면 는 어디까지 허용되나요? 풀이: 미만입니다.
스스로 점검
- 고윳값 분해를 하면 왜 분석이 쉬워지나요?
- 답: 2차 함수에서 경사 하강이 고유 방향마다 서로 독립인 등비수열 로 바뀌어, 방향별 배율만 보면 되기 때문입니다.
- 조건수가 클수록 경사 하강이 느린 이유는?
- 답: 가장 가파른 방향 때문에 학습률을 아래로 묶어야 하고, 그 학습률로는 가장 완만한 방향이 거의 움직이지 않아 속도 이 1에 가까워지기 때문입니다.
- 모멘텀이 처음에 오차를 키울 수 있다는 것은 무엇을 뜻하나요?
- 답: 수렴 '속도'는 오래 돌렸을 때의 비율이고, 초반엔 진동 · 겹친 고윳값 때문에 출렁일 수 있다는 뜻입니다. 초반 몇 걸음만 보고 모멘텀이 나쁘다고 판단하면 안 됩니다.
용어 정리
| 용어 | 쉬운 뜻 |
|---|---|
| 2차 모델(quadratic model) | 손실을 꼴로 근사한 것 |
| 고윳값 분해(eigendecomposition) | 대칭 행렬을 서로 직교하는 방향과 그 방향의 크기로 쪼개기 |
| 고윳값 | 그 방향의 곡률 — 클수록 가파름 |
| 조건수 | 가장 큰 고윳값 ÷ 가장 작은 고윳값 |
| 수렴 속도(rate) | 오차가 한 걸음마다 곱해지는 비율 |
| 모멘텀(momentum) | 지난 기울기를 속도로 쌓아 움직이는 방법, 무거운 공 방법이라고도 함 |
| 어텐션(attention) | 위치들에 대한 확률 분포로 가중합해 "어디를 볼지"를 부드럽게 고르는 방법 |
더 깊이 보려면
- 원 글의 조작 가능한 그림 — 학습률 · 모멘텀 값을 바꿔 가며 수렴을 직접 볼 수 있습니다.
- 원 글 뒷부분 — 다항식 회귀 · 색칠(colorization) 예제, "The Limits of Descent"(1차 방법의 한계), "Momentum with Stochastic Gradients"
- 같은 학술지의 「Attention and Augmented Recurrent Neural Networks」 — 어텐션 이전의 RNN 확장 흐름
다음에 볼 것
- 중간 점검: 딥러닝 기초 트랙 (문제 15개와 풀이) — 딥러닝 기초 트랙을 마쳤다면 15문제로 이해를 점검합니다
- Adam: 확률적 최적화 방법 — 모멘텀(기울기 평균)과 적응형 걸음(기울기 제곱 평균)을 합친 옵티마이저의 원 논문입니다.
라이선스
두 글 모두 그림과 글이 크리에이티브 커먼즈 저작자표시 CC BY 2.0입니다(따로 표시한 부분, 다른 출처에서 가져온 그림은 제외). 이 페이지는 원문을 번역한 것이 아니라 글의 논리를 바탕으로 새로 쓴 해설이며, 식은 원 글 표기를 따르고 숫자 예는 직접 계산했습니다. 그림은 옮기지 않았습니다.
출처
- 원문: distill.pub/2017/momentum (Gabriel Goh, 2017-04-04)
- 원문: distill.pub/2016/augmented-rnns (Chris Olah · Shan Carter, 2016-09-08)
- 학술지 홈: distill.pub
AI 원리부터 이해하기 · 딥러닝 기초 모듈
딥러닝 기초 모듈 학습
이 글은 딥러닝 기초 모듈의 학습 자료입니다. 전체 29개 자료 중 28번째입니다.
출처·원문
원문 보기번역가능