Section 8.4출발점이 운명을 가른다
일부 최적화 알고리즘은 반복적이지 않거나, 반복적이더라도 초기화와 무관하게 수용 가능한 해로 수렴한다. 딥러닝 훈련 알고리즘은 일반적으로 이러한 장점 중 어느 것도 가지지 않는다.
심층 모델 훈련은 대부분의 알고리즘이 초기화 선택에 강하게 영향을 받을 만큼 충분히 어려운 과제다. 초기 점은 —
- 알고리즘이 수렴하는지 여부를 결정할 수 있다 (일부 초기 점은 너무 불안정해 수치적으로 완전히 실패한다).
- 학습이 수렴할 때 얼마나 빨리 수렴하는지, 그리고 높은 비용인지 낮은 비용인지를 결정할 수 있다.
- 비교 가능한 비용을 가진 점들이 크게 다른 일반화 오류를 가질 수 있어, 초기 점은 일반화에도 영향을 미친다.
현대의 초기화 전략은 단순하고 휴리스틱하다. 신경망 최적화가 아직 잘 이해되지 않았기에, 개선된 전략을 설계하는 것은 어려운 과제로 남아 있다.
Section 8.4.1대칭 깨기
거의 완전한 확실성으로 알려진 유일한 속성은 — 초기 매개변수가 서로 다른 유닛들 사이의 "대칭을 깨야(break symmetry)" 한다는 것이다.
동일한 활성화 함수를 가진 두 은닉 유닛이 동일한 입력에 연결되어 있다면, 이들은 서로 다른 초기 매개변수를 가져야 한다. 같은 초기 매개변수를 가지면, 결정론적 비용과 결정론적 학습 알고리즘은 이 두 유닛을 영원히 같은 방식으로 업데이트한다 — 두 유닛은 영원히 같은 함수를 계산하는, 사실상 하나의 유닛이 되어버린다.
각 유닛이 다른 유닛과 다른 함수를 계산하게 하는 것이 목표다. 그람-슈미트 직교화로 명시적으로 서로 다른 기저를 검색할 수도 있지만, 이는 눈에 띄는 계산 비용을 발생시킨다.
고차원 공간에서 고엔트로피 분포의 무작위 추출은, 거의 공짜로 — 모든 유닛이 충분히 다른 함수를 계산하도록 만든다. 그래서 우리는 거의 항상 가중치를 무작위로 초기화한다.
Section 8.4.2초기 스케일의 딜레마
초기 분포의 스케일(scale)은 최적화의 결과와 네트워크의 일반화 능력 모두에 큰 영향을 미친다. 여기에는 서로 경쟁하는 요인들이 있다.
| 관점 | 큰 초기 가중치 | 작은 초기 가중치 |
|---|---|---|
| 대칭 깨기 | 더 강함 — 중복 유닛 회피 | 약함 |
| 신호 전파 | 순전파·역전파 신호 손실 방지 | 층을 지나며 신호 축소 |
| 위험 | 폭발하는 값, 활성화 포화, 혼돈 | 소멸하는 신호와 기울기 |
| 정규화 | 불리 — 정규화는 작은 가중치 선호 | 유리 — 초기점 근처 사전 분포 |
최적화 관점은 정보를 성공적으로 전파하기에 충분히 큰 가중치를 권하지만, 일부 정규화 관점은 가중치를 더 작게 만들도록 권한다. 매개변수 θ를 θ₀로 초기화하는 것은, 평균 θ₀를 가진 가우시안 사전 분포를 부과하는 것과 유사하게 생각할 수 있다 — 이 관점에서 θ₀를 0 가까이 두는 것은, "유닛들이 서로 상호작용하지 않을 가능성이 더 높다"고 말하는 것이다.
Section 8.4.3Glorot 정규화 초기화
가중치 초기 스케일을 고르는 여러 휴리스틱이 있다. 한 휴리스틱은 m개 입력·n개 출력을 가진 완전 연결 층의 각 가중치를 U(−1/√m, 1/√m)에서 샘플링하는 것이다. Glorot and Bengio(2010)는 더 정교한 정규화 초기화(normalized initialization)를 제안했다.
이 공식은 네트워크가 비선형성 없이 행렬 곱셈의 사슬로만 구성된다는 가정에서 유도된다. 실제 신경망은 분명히 이 가정을 위반하지만, 선형 모델을 위해 설계된 많은 전략이 비선형 대응물에서도 합리적으로 잘 작동한다.
Saxe 등(2013)은 각 층의 비선형성을 설명하는 이득 계수(gain factor) g와 함께 무작위 직교 행렬로 초기화할 것을 권한다. Sussillo(2014)는 이득 계수를 올바르게 설정하면 직교 초기화 없이도 1,000층 깊이의 네트워크를 훈련할 수 있음을 보였다 — 핵심 통찰은 활성화와 기울기가 무작위 보행(random walk)처럼 전파될 때, 그 보행이 노름을 보존하도록 조정하면 소멸·폭발 문제를 대부분 피할 수 있다는 것이다.
Section 8.4.4편향과 그 외 매개변수
지금까지는 가중치 초기화에 초점을 맞췄다. 다행히 다른 매개변수의 초기화는 일반적으로 더 쉽다.
편향을 0으로 설정하는 것은 대부분의 가중치 초기화 체계와 호환된다. 0이 아닌 값으로 설정하는 몇 가지 상황이 있다.
출력 유닛 편향 — 출력의 올바른 주변 통계를 얻도록 초기화하면 유익하다. 초기 가중치가 충분히 작아 출력이 편향만으로 결정된다고 가정하면, 편향을 훈련 세트 출력 주변 통계의 활성화 함수 역으로 설정할 수 있다 (예: softmax(b) = c).
포화 회피 — 초기화 시 ReLU가 포화(죽음)되는 것을 피하려, ReLU 은닉 유닛의 편향을 0이 아닌 0.1로 설정할 수 있다.
게이트 — 한 유닛이 다른 유닛의 함수 참여를 제어할 때 (출력 uh), 게이트 h가 초기화 시 대부분 h≈1이 되도록 편향을 설정한다 — 그렇지 않으면 u가 학습 기회를 잃는다. Jozefowicz 등(2015)은 LSTM 망각 게이트 편향을 1로 둘 것을 옹호한다.
분산·정밀도 매개변수는 일반적으로 1로 안전하게 초기화할 수 있다. 더 나아가 기계 학습으로 매개변수를 초기화하는 것도 가능하다 — 비지도 모델이 학습한 매개변수로 지도 모델을 초기화하거나, 관련 과제(때로는 관련 없는 과제조차)의 지도 훈련 결과를 초기화에 쓰면, 무작위 초기화보다 빠른 수렴과 더 나은 일반화를 얻을 수 있다.