Section 1다른 모델과 무엇이 다른가
신경망을 설계하고 훈련하는 것은 경사 하강법으로 다른 기계 학습 모델을 훈련하는 것과 크게 다르지 않다. 기계 학습 알고리즘은 최적화 절차, 비용 함수, 모델 패밀리를 지정해 구축된다 — 신경망도 똑같다.
지금까지 본 선형 모델과 신경망 사이의 가장 큰 차이점은, 신경망의 비선형성이 대부분의 흥미로운 손실 함수를 비볼록(non-convex)하게 만든다는 것이다. 이는 신경망이 선형 방정식 풀이기나 전역 수렴 보장이 있는 볼록 최적화 알고리즘이 아니라, 단순히 비용 함수를 매우 낮은 값으로 끌어내리는 반복적 경사 기반 최적화기로 훈련된다는 것을 뜻한다.
볼록 최적화는 어떤 초기 매개변수에서 출발해도 전역 최솟값으로 수렴한다(이론적으로). 비볼록 손실 함수에 적용된 확률적 경사 하강법(SGD)은 그런 보장이 없으며 초깃값에 민감하다. 그래서 순방향 네트워크에서는 모든 가중치를 작은 무작위 값으로 초기화하는 것이 중요하고, 편향은 0이나 작은 양수로 둔다.
경사를 계산하는 일은 신경망에서 약간 더 복잡하지만, 여전히 효율적이고 정확하게 수행할 수 있다 — 이것이 § 6.5의 역전파(back-propagation) 알고리즘이 하는 일이다. 다른 모델과 마찬가지로, 경사 기반 학습을 적용하려면 비용 함수를 고르고 모델 출력의 표현을 정해야 한다.
Section 2비볼록 손실 표면
비볼록 손실 표면 위에서 경사 하강이 어떻게 움직이는지를 보자. 표면에는 골짜기 하나가 아니라 여러 개의 골과 언덕이 있다. 경사 하강은 각 지점에서 가장 가파른 내리막 방향 — 음의 기울기 — 으로 한 걸음씩 내려갈 뿐, 그 골이 가장 깊은 골인지는 알지 못한다.
Section 3비용 함수 — 최대 가능도
심층 신경망 설계의 중요한 측면은 비용 함수의 선택이다. 다행히 신경망의 비용 함수는 선형 모델 같은 다른 모수적 모델과 거의 동일하다. 대부분의 경우 우리의 모수적 모델은 분포 p(y|x;θ)를 정의하고, 단순히 최대 가능도(maximum likelihood)의 원칙을 쓴다. 이는 훈련 데이터와 모델 예측 사이의 교차 엔트로피를 비용 함수로 삼는다는 뜻이다.
비용 함수의 구체적 형태는 log pmodel의 형태에 따라 모델마다 달라진다. 예를 들어 pmodel(y|x) = 𝒩(y; f(x;θ), I)이면 우리는 평균 제곱 오차 비용을 복원한다.
Section 4출력 유닛의 선택
비용 함수의 선택은 출력 유닛(output unit)의 선택과 밀접하게 연결된다. 순방향 네트워크가 은닉 특징 h = f(x;θ)를 제공한다고 하면, 출력층의 역할은 그 특징으로부터 작업을 완료하는 추가 변환을 제공하는 것이다. 세 가지가 가장 흔하다.
| 출력 유닛 | 모델링하는 분포 | 변환 | 전형적 용도 |
|---|---|---|---|
| 선형 (linear) | 가우시안 | ŷ = Wᵀh + b | 실숫값 회귀 |
| 시그모이드 (sigmoid) | 베르누이 | ŷ = σ(wᵀh + b) | 이진 분류 |
| 소프트맥스 (softmax) | 다항 (multinoulli) | softmax(z)i | n-클래스 분류 |
시그모이드 — 이진 출력
이진 변수 y에서, 신경망은 P(y=1|x) 하나만 예측하면 된다. 이 값은 구간 [0,1] 안에 있어야 한다. 선형 유닛을 단순히 임계값으로 자르면 단위 구간 밖에서 기울기가 0이 되어 학습이 멈춘다. 대신 시그모이드 출력 유닛을 최대 가능도와 결합해 쓴다 — 정규화되지 않은 로그 확률이 선형이라는 가정에서 출발한다.
소프트맥스 — 다중 클래스 출력
n개의 값을 가진 이산 변수에는 소프트맥스를 쓴다. 선형층이 정규화되지 않은 로그 확률 z = Wᵀh + b를 예측하면, 소프트맥스가 이를 지수화·정규화해 1로 합하는 확률 벡터를 만든다.
log softmax(z)i = zi − log Σj exp(zj)
Section 5포화와 기울기
신경망 설계 전반에 반복되는 주제 하나 — 비용 함수의 기울기는 학습을 안내하기에 충분히 크고 예측 가능해야 한다. 매우 평평해지는(포화되는, saturating) 함수는 기울기를 매우 작게 만들어 이 목적을 훼손한다. 많은 경우 이는 출력 유닛의 활성화 함수가 포화되기 때문에 일어난다.
음의 로그 가능도는 많은 모델에서 이 문제를 피하도록 돕는다. 시그모이드와 소프트맥스는 exp 함수를 품고 있는데, 음의 로그 가능도의 log가 그 exp를 상쇄한다. 시그모이드를 소프트플러스(softplus)로 다시 쓰면, 손실은 모델이 이미 정답을 맞혔을 때만 포화됨을 볼 수 있다.
exp를 음의 로그 가능도의 log가 상쇄하도록 맞추면, 모델이 틀렸을 때 항상 강한 기울기가 살아 있어 빠르게 교정된다.