Section 8.2비볼록의 세계
최적화는 일반적으로 극도로 어려운 과제다. 전통적으로 기계 학습은 최적화 문제가 볼록(convex)하도록 목적 함수와 제약을 신중하게 설계해 일반 최적화의 어려움을 피했다. 그러나 신경망을 훈련할 때, 우리는 일반적인 비볼록(non-convex) 경우에 직면해야만 한다.
볼록 최적화조차 복잡성이 없지 않다 — 그러나 비볼록 신경망 손실 표면에는 훨씬 다양하고 까다로운 지형이 존재한다. 이 절은 심층 모델 훈련을 위한 최적화에 관련된 가장 두드러진 도전들을 요약한다.
Section 8.2.1나쁜 조건
일부 도전은 볼록 함수를 최적화할 때조차 발생한다. 그중 가장 두드러진 것이 헤시안 행렬 H의 나쁜 조건(ill-conditioning)이다. 비용 함수의 2차 테일러 전개는, −εg 방향의 경사 하강 단계가 비용에 다음을 더한다고 예측한다.
나쁜 조건은 매우 작은 단계조차 비용 함수를 증가시킨다는 의미에서 SGD를 "갇히게" 한다. 실제로 많은 경우, 기울기 노름 gᵀg는 학습 내내 크게 줄지 않지만 gᵀHg 항은 한 차수 이상 증가한다. 강한 곡률을 보상하려 학습률을 줄여야 하므로, 강한 기울기가 있어도 학습은 매우 느려진다.
Section 8.2.2지역 최솟값의 누명
볼록 문제에서는 모든 지역 최솟값이 곧 전역 최솟값임이 보장된다. 그러나 비볼록 신경망에는 본질적으로 극도로 많은 수의 지역 최솟값이 존재한다.
그 대부분은 모델 식별 불가능성(non-identifiability)에서 온다. 신경망의 두 은닉 유닛을 통째로 교환해도 동등한 모델이 된다 — m개 층에 각 n개 유닛이면 (n!)ᵐ가지 배열이 가능하다. 이를 가중치 공간 대칭(weight space symmetry)이라 한다.
지역 최솟값을 문제에서 배제할 수 있는 간단한 검사가 있다 — 시간에 따른 기울기 노름을 플롯하는 것이다. 기울기 노름이 무시할 만한 크기로 줄지 않으면, 문제는 지역 최솟값도, 다른 어떤 임계점도 아니다.
Section 8.2.3안장점과 고원
고차원 비볼록 함수에서 지역 최솟값(과 최댓값)은 실제로 또 다른 종류의 0 기울기 점 — 안장점(saddle point) — 에 비해 드물다. 안장점에서 헤시안은 양의 고유값과 음의 고유값을 모두 가진다. 한 단면을 따라서는 지역 최솟값이고, 다른 단면을 따라서는 지역 최댓값이다.
안장점이 1차 최적화에 미치는 영향은 미묘하다. 기울기는 안장점 근처에서 매우 작아질 수 있다. 그러나 경사 하강은 많은 경우 안장점을 경험적으로 탈출할 수 있는 것으로 보인다.
Goodfellow 등(2015)의 손실 표면 시각화는, 가중치가 모두 0인 두드러진 안장점 근처에서 손실이 평탄화되지만 경사 하강 궤적이 이 영역을 빠르게 탈출하는 것을 보여준다. 반면 임계점을 명시적으로 찾는 뉴턴 방법에게는 안장점이 명백한 문제다 — 안장점으로 점프해버린다.
이 외에도 기울기와 헤시안이 모두 0인 넓고 평평한 고원(plateau)이 존재할 수 있다. 그런 퇴화된 영역은 모든 수치 최적화 알고리즘에 주요 문제를 제기한다.
Section 8.2.4절벽과 폭발하는 기울기
많은 층을 가진 신경망은 종종 절벽(cliff)과 유사한 극도로 가파른 영역을 가진다. 이는 여러 큰 가중치의 곱셈에서 발생한다. 극도로 가파른 절벽 표면에서, 경사 하강 업데이트는 매개변수를 극도로 멀리 — 보통은 절벽에서 완전히 벗어나도록 — 던져버린다.
다행히 가장 심각한 결과는 기울기 클리핑(gradient clipping) 휴리스틱으로 피할 수 있다. 기본 아이디어는 — 기울기는 최적의 단계 크기가 아니라 무한소 영역 내의 최적 방향만 지정한다는 사실을 상기하는 것이다. 경사 하강이 매우 큰 단계를 제안할 때, 클리핑이 개입해 단계 크기를 줄인다.