혼동하기 쉬운 점과 요약
토론 1. ReLU는 양수 쪽 미분이 1이니 르쿤 초기화로 충분한가
폭이 넓은 ReLU 망을 층 40으로 쌓는다. ReLU는 양수 쪽에서 미분이 1이고 입력을 그대로 내보낸다. 선형 망에서 신호를 지키던 르쿤 초기화(c = 1)를 그대로 써도 되는가?

ReLU 망을 층 40으로 쌓아요. 초기화 배율 c는 얼마로 잡겠어요?

ReLU는 양수면 그대로 내보내고 미분도 1이잖아요. 선형 층이랑 다를 게 없으니까 르쿤 초기화, c = 1이면 될 것 같아요.

합 네 개 (−1.2, 0.4, 2.0, −0.6)이 ReLU를 지나면 제곱 평균이 어떻게 되는지 볼까요?

지나기 전에는 (1.44 + 0.16 + 4 + 0.36)/4 = 1.49예요. ReLU를 지나면 음수 둘이 0이 돼서 (0.16 + 4)/4 = 1.04고요. 0.7배쯤으로 줄었어요.

처음 짐작과 맞나요?

양수 쪽만 보고 선형이랑 같다고 했는데, 음수 쪽 절반은 0으로 지워지네요.

합이 평균 0인 정규분포면 음수가 정확히 절반이고, 정규분포는 좌우 대칭이니까 지워지는 제곱도 정확히 절반이야. 그러니 ReLU를 지나면 제곱 평균이 Var/2가 돼.

그럼 c = 1로 40층을 지나면요?

층마다 분산이 1/2배니까 표준편차는 (1/√2)⁴⁰ = 9.5 × 10⁻⁷배요. 백만분의 일이에요. 단체 문자에서 친구 한 명한테만 보내던 k = 1이랑 같네요.

거꾸로 가는 그래디언트도 ReLU의 미분이 절반의 칸에서 0이니까 똑같이 절반씩 깎여.

그래요. ReLU는 미분이 1인 쪽만 보면 선형 같지만, 분산을 반으로 깎아요. 그 반을 가중치에서 되돌리는 게인 √2를 곱해 c = √2로 잡아야 앞으로도 거꾸로도 지켜져요.
토론 2. 잔차 연결을 넣으면 크기 문제는 저절로 풀리나
층 30의 잔차 ReLU 망에서 곁가지를 허 초기화로 두고 곁가지 배율을 α = 1로 둔다. 줄기의 자코비안에는 단위 행렬 I가 들어 있어서 그래디언트가 그대로 지나가는 길이 늘 열려 있다. 그렇다면 신호와 그래디언트의 크기 문제는 사라졌는가?

잔차 연결의 자코비안은 I + αWdiag(φ′)였어요. 이걸 보면 크기 문제는 어떻게 됐을 것 같아요?

I가 늘 들어 있으니까 그래디언트가 곁가지에서 아무리 작아져도 줄기로는 그대로 지나가요. 층을 몇 개 쌓든 신호가 사라질 일이 없으니, 잔차 연결을 넣으면 크기 문제는 해결된 것 같아요.

층 30, α = 1에서 줄기의 표준편차가 몇 배가 되는지 계산해 볼까요?

곁가지가 허 초기화라 출력의 분산이 들어온 값과 같고, 줄기와 상관이 없으니까 더하면 층마다 분산이 1 + 1 = 2배예요. 표준편차로는 √2배씩, 30층이면 √2³⁰ = 2¹⁵ = 32,768배요.

사라지지는 않았는데 3만 배로 커졌네요. I가 막아 준 건 줄어드는 쪽뿐이었어요. 곁가지가 더하는 분산은 층마다 복리로 쌓이고요.

그럼 α를 어떻게 잡으면 층 수와 상관없이 일정하게 둘 수 있을까요?

층마다 (1 + α²)배가 30번이니까, 복리 문제처럼 이자율을 기간 수로 나누면 돼요. α² = 1/30, α = 1/√30이요.

그러면 표준편차가 (1 + 1/30)¹⁵ = 1.64배야. 층이 백 개여도 1/√100으로 맞추면 e의 제곱근 근처, 1.6쯤에서 멈추고.

그래요. 잔차 연결은 그래디언트가 사라지는 길을 막아 줄 뿐, 곁가지의 분산이 복리로 쌓이는 것은 막지 못해요. 곁가지를 층 수에 맞춰 1/√D로 줄여야 크기가 지켜져요.
혼동하기 쉬운 점
| 혼동하기 쉬운 생각 | 나온 문제 | 바로잡는 법 |
|---|---|---|
| 층마다 조금씩 어긋나도 더해져서 조금 어긋날 뿐이라고 봄 | 1 | 층마다의 배율은 곱해진다. 층이 깊을수록 한 층의 배율을 1에 더 가까이 맞춰야 한다 |
| 항 n개를 더하니 가중치를 1/n로 나눈다고 봄 | 2 | 서로 독립인 항 n개의 합은 √n배로만 흔들린다. 표준편차를 1/√n로 잡는다 |
| 가중치의 표준편차를 폭과 상관없는 숫자 하나로 정함 | 2 | 같은 0.05도 폭에 따라 소실·폭발이 갈린다. 폭에 맞춘 규칙(c/√n)으로 정한다 |
| 가중치를 모두 같은 값으로 시작해도 크기만 맞으면 된다고 봄 | 2 | 칸들이 모두 같은 값이 되어 하나뿐인 것과 같다. 무작위로 뽑아 칸들을 서로 다르게 만든다 |
| 균등분포 U(−a, a)의 표준편차를 a로 봄 | 3 | 표준편차는 a/√3이다. nn.Linear 기본값의 배율은 1/√3이다 |
| 시그모이드는 가중치를 네 배 키우면 그래디언트가 지켜진다고 봄 | 4 | 키우면 합이 포화되어 미분이 더 작아진다. 시그모이드는 신호와 그래디언트를 함께 지키는 배율이 없다 |
| 팬인에 맞춘 초기화가 거꾸로 가는 그래디언트도 지킨다고 봄 | 5 | 거꾸로는 팬아웃이 정한다. 폭이 다르면 글로로 초기화처럼 가운데를 잡는다 |
| 손실이 조금씩 내려가면 모든 층이 배우고 있다고 봄 | 6 | 층마다 그래디언트 크기를 찍어 본다. 그래디언트가 사라진 아래층은 처음 값 그대로 얼어 있다 |
| ReLU 는 미분이 1이라 르쿤 초기화로 충분하다고 봄 | 7, 토론 1 | ReLU 는 분산을 반으로 깎는다. 게인 √2 로 되돌린다 |
| 게인은 활성화 함수의 모양(평균, 대칭)을 따진다고 봄 | 8 | 게인은 제곱 평균 E[φ(z)²] 하나만 본다. 절댓값 함수도 배율은 1이다 |
| tanh 는 0에서 미분이 1이라 배율 1이 맞다고 봄 | 9 | 배율 1이면 신호가 천천히 사그라들고, 5/3이면 신호는 지키되 그래디언트가 조금씩 커진다. 둘을 함께 지키는 배율은 없다 |
| 평균 크기(분산)를 지키면 모든 방향이 지켜진다고 봄 | 10 | 넓이가 같아도 모양은 얼마든지 납작해진다. 모든 방향을 지키려면 특잇값이 모두 1이어야 한다 |
| 한 장이 평균을 지키면 여러 장의 곱도 지킨다고 봄 | 11 | 늘이는 방향이 겹치면 곱하면서 틀어진다. 직교 행렬만 몇 장을 곱해도 모든 방향을 지킨다 |
| 무작위 벡터 하나의 길이가 지켜지면 그래디언트가 살아 있다고 봄 | 12 | 몇몇 방향이 길이를 떠맡고 나머지는 사라질 수 있다. 특잇값 분포를 본다 |
| 잔차 연결을 넣으면 크기 문제가 저절로 풀린다고 봄 | 13, 토론 2 | 곁가지 분산이 복리로 쌓인다. 곁가지를 층 수에 맞춰 1/√D로 줄인다 |
| 곁가지를 0으로 두는 것이 가장 안전하다고 봄 | 14 | 곁가지가 0이면 배울 수 없다. 작게 시작하되 학습할 수 있게 둔다 |
| 이론의 경계값으로 맞추면 실제로도 경계값이 나온다고 봄 | 14 | 폭이 유한해 생기는 배율의 오차도 층마다 곱해진다. 경계에서 여유를 둔다 |
| 깊은 트랜스포머도 모든 가중치를 같은 표준편차로 뽑으면 된다고 봄 | 15 | 곁가지 N개가 줄기에 쌓인다. 곁가지의 출력 쪽 가중치를 1/√N로 줄인다 |
요약
이 장에서 한 일을 정리해 보자. 신경망은 앞으로 갈 때도 거꾸로 갈 때도 층마다 행렬을 곱하는 사슬이라, 학습을 시작하는 순간의 무작위 가중치가 층마다의 배율을 정한다. 폭 n인 층에서 가중치의 표준편차를 c/√n으로 잡으면 층 하나를 지날 때 신호의 표준편차가 c배가 되고, 층 D개를 지나면 cD배가 된다. c = 1, 곧 표준편차 1/√n이 1998년 르쿤과 동료들이 적은 처방이고, 신호의 분산을 지키는 분산 보존이다. n이 아니라 √n으로 나누는 것은 서로 독립인 항 n개의 합이 √n배로만 흔들리기 때문이다.
거꾸로 가는 그래디언트는 층마다 자코비안의 전치를 곱받고, 그 안에는 가중치와 함께 활성화 함수의 미분이 들어 있다. 시그모이드의 미분은 1/4을 넘지 않아 르쿤 초기화로도 그래디언트가 층마다 0.24배쯤 줄어 스무 층 뒤 10⁻¹²이 된다. 거꾸로 가며 이렇게 줄어드는 것이 그래디언트 소실이고, 2006년 이전에 깊은 망이 배워지지 않던 것은 여러 원인 가운데 이 소실 때문이기도 했다. 폭이 층마다 다르면 앞으로는 팬인이, 거꾸로는 팬아웃이 배율을 정하므로 글로로·벤지오는 분산을 2/(팬인 + 팬아웃)으로 두었다.
활성화 함수는 신호의 분산을 깎거나 늘린다. ReLU는 음수 절반을 지워 분산을 반으로 깎으므로 게인 √2를 곱한 허 초기화가 필요하고, 그렇지 않으면 층마다 1/√2배씩 줄어 30층 망이 학습을 멈춘다. 게인은 활성화 함수의 제곱 평균만으로 정해지고, tanh처럼 신호와 그래디언트를 함께 지키는 배율이 없는 활성화 함수도 있다.
분산을 지킨다는 것은 평균적인 방향의 길이를 지킨다는 뜻일 뿐이다. 가우스 행렬을 스무 장 곱하면 무작위 벡터의 길이는 지켜도 특잇값의 4분의 3이 0.1 아래로 내려간다. 직교 초기화는 특잇값이 모두 1이라 몇 장을 곱해도 모든 방향의 길이를 지킨다. 잔차 연결은 층의 입력을 그대로 출력에 더해 자코비안에 단위 행렬을 넣고, 곁가지를 1/√D로 줄이면 층이 몇 개든 분산은 e배, 표준편차는 √e배 안에 머문다. GPT-2가 잔차 층의 가중치에 1/√N을 곱한 것도 같은 계산이다.
정리 연습문제
물음. 층 하나를 지날 때마다 신호의 표준편차가 1.1배가 되는 망이 있다. 층을 50개 쌓으면 신호의 크기는 어떻게 되나?
- [ ] 층마다 10%씩 더해지니 층 수에 비례해 천천히 커진다 〔틀림: 층마다의 배율은 더해지지 않고 곱해진다.〕
- [x] 층마다 곱해져 기하급수로 불어난다 〔맞음: 1.1을 50번 곱하면 100배를 넘는다. 층이 깊을수록 한 층의 배율을 1에 더 가깝게 맞춰야 한다.〕
- [ ] 한 층의 차이가 작으니 거의 그대로다 〔틀림: 작은 배율 차이도 층마다 곱해져 쌓인다.〕
물음. 입력이 n개인 선형층에서 신호의 분산을 지키려면 가중치의 표준편차를 얼마로 뽑나?
- [ ] 1/n. 항 n개를 더하니 n으로 나눈다 〔틀림: 서로 독립인 항 n개의 합은 n배가 아니라 n의 제곱근배로만 흔들린다. n으로 나누면 신호가 층마다 줄어든다.〕
- [ ] 폭과 상관없이 0.05 같은 숫자 하나 〔틀림: 같은 0.05도 폭에 따라 신호가 사라지기도, 터지기도 한다. 폭에 맞춘 규칙으로 정한다.〕
- [x] 1/√n 〔맞음: 1998년 르쿤과 동료들이 적은 처방이다. 층 하나를 지나도 신호의 분산이 그대로다.〕
물음. ReLU를 쓰는 깊은 망을 르쿤 초기화(표준편차 1/√n)로 시작했다. 신호는 어떻게 되나?
- [ ] 그대로다. ReLU는 양수 쪽 미분이 1이다 〔틀림: ReLU는 음수 절반을 0으로 지워 분산을 반으로 깎는다.〕
- [x] 층마다 표준편차가 1/√2배씩 줄어든다. 게인 √2를 곱한 허 초기화로 되돌린다 〔맞음: 깎인 분산을 게인으로 되돌리지 않으면 30층 망이 학습을 멈춘다. 게인은 활성화 함수의 제곱 평균만으로 정해진다.〕
- [ ] 층마다 표준편차가 √2배씩 커진다 〔틀림: ReLU는 음수 쪽을 지울 뿐 값을 키우지 않는다. 분산은 늘지 않고 반으로 준다.〕
물음. 가우스 행렬 스무 장을 곱한 망에서 무작위 벡터 하나의 길이는 지켜졌다. 모든 방향의 그래디언트가 살아 있다고 할 수 있나?
- [ ] 그렇다. 평균 크기가 지켜졌으니 모든 방향이 지켜진다 〔틀림: 몇몇 방향이 길이를 떠맡고 나머지 방향은 사라질 수 있다. 실제로 특잇값의 4분의 3이 0.1 아래로 내려간다.〕
- [x] 아니다. 특잇값 분포를 봐야 하고, 모든 방향을 지키려면 직교 초기화처럼 특잇값이 모두 1이어야 한다 〔맞음: 직교 행렬은 몇 장을 곱해도 모든 방향의 길이를 지킨다.〕
- [ ] 그렇다. 한 장 한 장이 분산을 지키므로 곱도 지킨다 〔틀림: 늘이는 방향이 겹치면 곱하면서 틀어진다. 한 장이 평균을 지켜도 여러 장의 곱은 모양이 납작해질 수 있다.〕
물음. 곁가지 N개를 쌓은 깊은 트랜스포머에 잔차 연결을 넣었다. 초기화는 어떻게 하나?
- [ ] 잔차 연결이 입력을 그대로 넘기니 크기 문제는 저절로 풀린다 〔틀림: 곁가지의 분산이 줄기에 복리로 쌓인다.〕
- [ ] 모든 가중치를 같은 표준편차로 뽑으면 된다 〔틀림: 곁가지마다 더해지는 분산이 층 수만큼 쌓여 줄기가 커진다.〕
- [x] 곁가지의 출력 쪽 가중치를 1/√N로 줄인다 〔맞음: 곁가지를 층 수에 맞춰 줄이면 층이 몇 개든 분산이 일정한 배율 안에 머문다. GPT-2가 잔차 층의 가중치에 곱한 배율도 같은 계산에서 나왔다.〕
막힌 곳
이 장의 모든 계산은 학습을 시작하는 순간에 대한 것이었다. 처음 스텝에서 신호와 그래디언트의 크기가 맞으면, 그다음은 경사하강이 알아서 할까? 학습률을 너무 크게 잡으면 첫 스텝부터 가중치가 초기화가 맞춰 둔 크기를 훌쩍 벗어날 것이다. 그렇다면 학습률은 어디까지 키워도 되고, 그 경계는 무엇이 정할까?
그리고 폭에 맞춰 1/√n으로 나눈 초기화는 폭이 커져도 처음 출력의 크기를 같게 해 준다. 그런데 폭이 커지면 한 칸의 합에 더해지는 항도 많아진다. 같은 학습률로 512개 가중치를 한꺼번에 조금씩 움직였을 때와 8,192개를 움직였을 때, 출력이 바뀌는 크기도 같을까?