Deep LearningGoodfellow · Bengio · Courville
Chapter 6§ 6.2
Chapter 6 · 심층 순방향 네트워크 — Deep Feedforward Networks

경사 기반 학습

신경망의 비선형성은 손실 함수를 비볼록하게 만든다. 전역 수렴 보장이 사라진 자리에서, 경사 하강은 비용을 그저 충분히 낮은 곳까지 끌어내린다 — 그리고 그것으로 충분하다.

§ 6.2 비볼록 손실 (non-convex loss) 최대 가능도 (MLE) 교차 엔트로피 (cross-entropy) 출력 유닛 (output units)

Section 1다른 모델과 무엇이 다른가

신경망을 설계하고 훈련하는 것은 경사 하강법으로 다른 기계 학습 모델을 훈련하는 것과 크게 다르지 않다. 기계 학습 알고리즘은 최적화 절차, 비용 함수, 모델 패밀리를 지정해 구축된다 — 신경망도 똑같다.

지금까지 본 선형 모델과 신경망 사이의 가장 큰 차이점은, 신경망의 비선형성이 대부분의 흥미로운 손실 함수를 비볼록(non-convex)하게 만든다는 것이다. 이는 신경망이 선형 방정식 풀이기나 전역 수렴 보장이 있는 볼록 최적화 알고리즘이 아니라, 단순히 비용 함수를 매우 낮은 값으로 끌어내리는 반복적 경사 기반 최적화기로 훈련된다는 것을 뜻한다.

Contrast볼록 vs 비볼록 최적화

볼록 최적화는 어떤 초기 매개변수에서 출발해도 전역 최솟값으로 수렴한다(이론적으로). 비볼록 손실 함수에 적용된 확률적 경사 하강법(SGD)은 그런 보장이 없으며 초깃값에 민감하다. 그래서 순방향 네트워크에서는 모든 가중치를 작은 무작위 값으로 초기화하는 것이 중요하고, 편향은 0이나 작은 양수로 둔다.

경사를 계산하는 일은 신경망에서 약간 더 복잡하지만, 여전히 효율적이고 정확하게 수행할 수 있다 — 이것이 § 6.5의 역전파(back-propagation) 알고리즘이 하는 일이다. 다른 모델과 마찬가지로, 경사 기반 학습을 적용하려면 비용 함수를 고르고 모델 출력의 표현을 정해야 한다.

Section 2비볼록 손실 표면

비볼록 손실 표면 위에서 경사 하강이 어떻게 움직이는지를 보자. 표면에는 골짜기 하나가 아니라 여러 개의 골과 언덕이 있다. 경사 하강은 각 지점에서 가장 가파른 내리막 방향 — 음의 기울기 — 으로 한 걸음씩 내려갈 뿐, 그 골이 가장 깊은 골인지는 알지 못한다.

Gradient Descent — 갱신 규칙
θ  ←  θ  −  ε  ∇θ J(θ)
θ 매개변수 · ε 학습률(learning rate) · θJ 비용의 기울기. 음의 기울기 방향으로 한 걸음씩 이동한다.
Stage A · 비볼록 표면 위의 경사 하강 STEP 01 / 6
스페이스 재생 · ← → 단계 이동
함정 — Pitfall 비볼록 표면에서 경사 하강은 출발점에 가까운 골로 떨어진다. 그 골이 전역 최솟값이라는 보장은 없다. 다행히 신경망 실무에서는 비용 함수의 진짜 최솟값에 도달할 필요가 없다 — 비용을 충분히 낮추기만 하면 모델이 잘 동작한다.

Section 3비용 함수 — 최대 가능도

심층 신경망 설계의 중요한 측면은 비용 함수의 선택이다. 다행히 신경망의 비용 함수는 선형 모델 같은 다른 모수적 모델과 거의 동일하다. 대부분의 경우 우리의 모수적 모델은 분포 p(y|x;θ)를 정의하고, 단순히 최대 가능도(maximum likelihood)의 원칙을 쓴다. 이는 훈련 데이터와 모델 예측 사이의 교차 엔트로피를 비용 함수로 삼는다는 뜻이다.

Equation 6.12 — 음의 로그 가능도
J(θ) = −𝔼x,y∼p̂data  log  pmodel(y|x)
data 경험적 데이터 분포 · pmodel(y|x) 모델이 정의하는 조건부 분포 · 비용은 음의 로그 가능도이자 교차 엔트로피.

비용 함수의 구체적 형태는 log pmodel의 형태에 따라 모델마다 달라진다. 예를 들어 pmodel(y|x) = 𝒩(y; f(x;θ), I)이면 우리는 평균 제곱 오차 비용을 복원한다.

Equation 6.13 — 가우시안 → MSE
J(θ) = ½  𝔼x,y∼p̂data  ‖ y − f(x;θ) ‖²  +  const
𝒩(y; f, I) 평균이 f(x;θ)인 가우시안을 가정하면 MLE는 곧 MSE 최소화가 된다. 버려지는 const는 θ에 의존하지 않는 항.
핵심 — Key 최대 가능도로 비용을 유도하는 이 접근법의 장점은, 각 모델마다 비용 함수를 따로 설계하는 부담을 없앤다는 것이다. 모델 p(y|x)를 지정하면 비용 함수 −log p(y|x)가 자동으로 결정된다.

Section 4출력 유닛의 선택

비용 함수의 선택은 출력 유닛(output unit)의 선택과 밀접하게 연결된다. 순방향 네트워크가 은닉 특징 h = f(x;θ)를 제공한다고 하면, 출력층의 역할은 그 특징으로부터 작업을 완료하는 추가 변환을 제공하는 것이다. 세 가지가 가장 흔하다.

출력 유닛 · 분포 · 비용
출력 유닛모델링하는 분포변환전형적 용도
선형 (linear)가우시안ŷ = Wᵀh + b실숫값 회귀
시그모이드 (sigmoid)베르누이ŷ = σ(wᵀh + b)이진 분류
소프트맥스 (softmax)다항 (multinoulli)softmax(z)in-클래스 분류

시그모이드 — 이진 출력

이진 변수 y에서, 신경망은 P(y=1|x) 하나만 예측하면 된다. 이 값은 구간 [0,1] 안에 있어야 한다. 선형 유닛을 단순히 임계값으로 자르면 단위 구간 밖에서 기울기가 0이 되어 학습이 멈춘다. 대신 시그모이드 출력 유닛을 최대 가능도와 결합해 쓴다 — 정규화되지 않은 로그 확률이 선형이라는 가정에서 출발한다.

Equation 6.19 — 시그모이드 출력 유닛
ŷ = σ(z),   z = wᵀh + b,   σ(z) = 1 / (1 + e−z)
z 로짓(logit) — 정규화되지 않은 로그 확률 · σ 로지스틱 시그모이드 — 로짓을 (0,1) 확률로 압축.

소프트맥스 — 다중 클래스 출력

n개의 값을 가진 이산 변수에는 소프트맥스를 쓴다. 선형층이 정규화되지 않은 로그 확률 z = Wᵀh + b를 예측하면, 소프트맥스가 이를 지수화·정규화해 1로 합하는 확률 벡터를 만든다.

Equations 6.29 – 6.30 — 소프트맥스
softmax(z)i = exp(zi) / Σj exp(zj)
log softmax(z)i = zi − log Σj exp(zj)
첫 항 zi는 비용에 직접 기여하며 포화될 수 없다 · 둘째 항 log Σ exp(zj)는 대략 maxj zj로 근사된다.
Stage B · 로짓 → 확률, 출력 유닛 비교 STEP 01 / 5
스페이스 재생 · ← → 단계 이동

Section 5포화와 기울기

신경망 설계 전반에 반복되는 주제 하나 — 비용 함수의 기울기는 학습을 안내하기에 충분히 크고 예측 가능해야 한다. 매우 평평해지는(포화되는, saturating) 함수는 기울기를 매우 작게 만들어 이 목적을 훼손한다. 많은 경우 이는 출력 유닛의 활성화 함수가 포화되기 때문에 일어난다.

음의 로그 가능도는 많은 모델에서 이 문제를 피하도록 돕는다. 시그모이드와 소프트맥스는 exp 함수를 품고 있는데, 음의 로그 가능도의 log가 그 exp를 상쇄한다. 시그모이드를 소프트플러스(softplus)로 다시 쓰면, 손실은 모델이 이미 정답을 맞혔을 때만 포화됨을 볼 수 있다.

Equations 6.24 – 6.26 — 시그모이드 + MLE 손실
J(θ) = −log σ((2y−1)z) = ζ((1−2y)z)
ζ(·) 소프트플러스 함수 ζ(a)=log(1+eᵃ) · 인수 (1−2y)z가 매우 음수일 때만 포화 — 즉 정답일 때만.
함정 — Pitfall 시그모이드 출력 유닛에 평균 제곱 오차를 쓰면, σ(z)가 포화되는 순간 — 정답이든 오답이든 — 손실의 기울기가 사라진다. 오답인데도 학습이 멈출 수 있다. 이것이 시그모이드·소프트맥스 출력에서 최대 가능도(교차 엔트로피)가 거의 항상 선호되는 이유다.
핵심 — Key 출력 유닛과 비용 함수는 한 쌍으로 골라야 한다. 시그모이드/소프트맥스의 exp를 음의 로그 가능도의 log가 상쇄하도록 맞추면, 모델이 틀렸을 때 항상 강한 기울기가 살아 있어 빠르게 교정된다.