Deep Learning Goodfellow · Bengio · Courville
Chapter 8 · Optimization for Training Deep Models

최적화의 도전 과제

신경망의 손실 표면에는 안장점과 고원, 절벽이 흩어져 있다 — 그러나 진짜 적은 우리가 오래 믿어온 지역 최솟값이 아니었다.

비볼록 최적화 안장점 고원과 절벽 나쁜 조건

Section 8.2비볼록의 세계

최적화는 일반적으로 극도로 어려운 과제다. 전통적으로 기계 학습은 최적화 문제가 볼록(convex)하도록 목적 함수와 제약을 신중하게 설계해 일반 최적화의 어려움을 피했다. 그러나 신경망을 훈련할 때, 우리는 일반적인 비볼록(non-convex) 경우에 직면해야만 한다.

볼록 최적화조차 복잡성이 없지 않다 — 그러나 비볼록 신경망 손실 표면에는 훨씬 다양하고 까다로운 지형이 존재한다. 이 절은 심층 모델 훈련을 위한 최적화에 관련된 가장 두드러진 도전들을 요약한다.

중요한 사실 신경망 최적화에서 우리는 보통 함수의 정확한 최솟값을 찾는 데 관심이 없다. 좋은 일반화 오류를 얻기에 충분히 비용을 낮추는 것이면 족하다. 이 관점은 아래의 모든 도전 과제를 바라보는 시각을 바꾼다.

Section 8.2.1나쁜 조건

일부 도전은 볼록 함수를 최적화할 때조차 발생한다. 그중 가장 두드러진 것이 헤시안 행렬 H나쁜 조건(ill-conditioning)이다. 비용 함수의 2차 테일러 전개는, −εg 방향의 경사 하강 단계가 비용에 다음을 더한다고 예측한다.

경사 단계가 비용에 더하는 양 Δcost ≈ ½·ε²·gᵀHg − ε·gᵀg 곡률 항 ½ε²gᵀHg가 기울기 항 εgᵀg를 초과하면, 경사 하강은 강한 기울기가 있어도 비용을 증가시킨다 — 학습이 "갇힌다".

나쁜 조건은 매우 작은 단계조차 비용 함수를 증가시킨다는 의미에서 SGD를 "갇히게" 한다. 실제로 많은 경우, 기울기 노름 gᵀg는 학습 내내 크게 줄지 않지만 gᵀHg 항은 한 차수 이상 증가한다. 강한 곡률을 보상하려 학습률을 줄여야 하므로, 강한 기울기가 있어도 학습은 매우 느려진다.

Motion · 협곡 지형에서 경사 하강의 진동 Step 1 / 4
Space 재생 · → 다음 · R 리셋

Section 8.2.2지역 최솟값의 누명

볼록 문제에서는 모든 지역 최솟값이 곧 전역 최솟값임이 보장된다. 그러나 비볼록 신경망에는 본질적으로 극도로 많은 수의 지역 최솟값이 존재한다.

그 대부분은 모델 식별 불가능성(non-identifiability)에서 온다. 신경망의 두 은닉 유닛을 통째로 교환해도 동등한 모델이 된다 — m개 층에 각 n개 유닛이면 (n!)ᵐ가지 배열이 가능하다. 이를 가중치 공간 대칭(weight space symmetry)이라 한다.

반전된 통념 비식별성에서 오는 지역 최솟값은 모두 비용 함수 값이 서로 동등하다 — 문제가 되는 비볼록성이 아니다. 수년간 실무자들은 지역 최솟값이 신경망 최적화를 괴롭히는 주범이라 믿었지만, 오늘날 전문가들은 충분히 큰 신경망에서 대부분의 지역 최솟값이 낮은 비용을 가지며, 진짜 전역 최솟값을 찾는 것은 중요하지 않다고 본다.

지역 최솟값을 문제에서 배제할 수 있는 간단한 검사가 있다 — 시간에 따른 기울기 노름을 플롯하는 것이다. 기울기 노름이 무시할 만한 크기로 줄지 않으면, 문제는 지역 최솟값도, 다른 어떤 임계점도 아니다.

Section 8.2.3안장점과 고원

고차원 비볼록 함수에서 지역 최솟값(과 최댓값)은 실제로 또 다른 종류의 0 기울기 점 — 안장점(saddle point) — 에 비해 드물다. 안장점에서 헤시안은 양의 고유값과 음의 고유값을 모두 가진다. 한 단면을 따라서는 지역 최솟값이고, 다른 단면을 따라서는 지역 최댓값이다.

동전 던지기 직관 — 왜 안장점이 흔한가 P(지역 최솟값) ∝ (½)ⁿ , 안장점/최솟값 비율 ∝ 기하급수적으로 증가 각 고유값의 부호를 동전 던지기로 본다. 지역 최솟값은 n번 모두 앞면(양의 고유값)이어야 한다. n차원에서 이는 기하급수적으로 드물다. 더 놀라운 점 — 낮은 비용 영역일수록 고유값이 양일 확률이 높다.
Empirical안장점은 SGD를 막지 못한다

안장점이 1차 최적화에 미치는 영향은 미묘하다. 기울기는 안장점 근처에서 매우 작아질 수 있다. 그러나 경사 하강은 많은 경우 안장점을 경험적으로 탈출할 수 있는 것으로 보인다.

Goodfellow 등(2015)의 손실 표면 시각화는, 가중치가 모두 0인 두드러진 안장점 근처에서 손실이 평탄화되지만 경사 하강 궤적이 이 영역을 빠르게 탈출하는 것을 보여준다. 반면 임계점을 명시적으로 찾는 뉴턴 방법에게는 안장점이 명백한 문제다 — 안장점으로 점프해버린다.

이 외에도 기울기와 헤시안이 모두 0인 넓고 평평한 고원(plateau)이 존재할 수 있다. 그런 퇴화된 영역은 모든 수치 최적화 알고리즘에 주요 문제를 제기한다.

Motion · 손실 표면의 네 가지 지형 Step 1 / 5
Space 재생 · → 다음 · R 리셋

Section 8.2.4절벽과 폭발하는 기울기

많은 층을 가진 신경망은 종종 절벽(cliff)과 유사한 극도로 가파른 영역을 가진다. 이는 여러 큰 가중치의 곱셈에서 발생한다. 극도로 가파른 절벽 표면에서, 경사 하강 업데이트는 매개변수를 극도로 멀리 — 보통은 절벽에서 완전히 벗어나도록 — 던져버린다.

다행히 가장 심각한 결과는 기울기 클리핑(gradient clipping) 휴리스틱으로 피할 수 있다. 기본 아이디어는 — 기울기는 최적의 단계 크기가 아니라 무한소 영역 내의 최적 방향만 지정한다는 사실을 상기하는 것이다. 경사 하강이 매우 큰 단계를 제안할 때, 클리핑이 개입해 단계 크기를 줄인다.

기울기 클리핑 if ‖g‖ > v : g ← g · v / ‖g‖ v: 임계값. 기울기 노름이 v를 초과하면 방향은 유지한 채 크기만 v로 줄인다 — 절벽에서 매개변수가 투석되는 것을 막는다.
장기 의존성 절벽은 폭발하는 기울기(exploding gradient) 현상의 한 예다. 같은 행렬 W를 반복 곱하는 깊은 그래프에서, 고유분해 Wᵗ = V·diag(λ)ᵗ·V⁻¹는 크기가 1보다 큰 고유값은 폭발시키고 1보다 작은 고유값은 소멸시킨다. 소멸하는 기울기는 매개변수가 어디로 가야 할지를 알기 어렵게 하고, 폭발하는 기울기는 학습을 불안정하게 만든다.
정리 신경망 최적화의 진짜 도전은 — 나쁜 조건, 흔한 안장점·고원, 가파른 절벽, 그리고 지역 구조와 전역 구조의 나쁜 대응이다. 오래 의심받던 지역 최솟값은 누명을 벗었다. 다음 절들에서는 모멘텀·적응적 학습률·초기화로 이 지형을 헤쳐 나가는 법을 본다.
Deep Learning · Goodfellow, Bengio, Courville · MIT Press 2016 Ch.8 최적화 — 한국어 학습판