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

예제: XOR 학습

선형 모델이 풀 수 없는 가장 작은 문제. XOR 한 칸을 통해 은닉층이 왜 필요한지, 비선형 변환이 무엇을 하는지를 손에 잡히게 본다.

§ 6.1 XOR 은닉층 (hidden layer) ReLU 특징 공간 (feature space)

Section 1풀 수 없는 작은 함수

순방향 네트워크의 아이디어를 구체적으로 만들기 위해, 매우 간단한 작업에서 완전히 작동하는 순방향 네트워크의 예로 시작한다 — XOR 함수를 학습하는 것이다.

XOR 함수(배타적 논리합, exclusive or)는 두 이진 값 x₁x₂에 대한 연산이다. 이 두 값 중 정확히 하나가 1일 때 XOR은 1을 반환하고, 그렇지 않으면 0을 반환한다. 이 XOR 함수가 우리가 학습하고자 하는 목표 함수 y = f*(x)를 제공한다. 우리의 모델은 함수 y = f(x;θ)를 정의하고, 학습 알고리즘은 f가 가능한 한 f*와 유사하도록 매개변수 θ를 적응시킨다.

이 단순한 예에서는 통계적 일반화에 관심을 두지 않는다. 우리는 네트워크가 네 점 X = {[0,0]ᵀ, [0,1]ᵀ, [1,0]ᵀ, [1,1]ᵀ} 모두에서 올바르게 동작하기를 바랄 뿐이다. 이 네 점 모두에서 네트워크를 훈련한다. 유일한 도전은 훈련 세트에 적합(fit)하는 것이다.

ProblemXOR 진리표

(0,0)→0, (0,1)→1, (1,0)→1, (1,1)→0. 출력이 1인 점은 평면의 대각 모서리에, 0인 점은 반대 대각 모서리에 놓인다. AND와 OR은 한 직선으로 갈라낼 수 있지만, XOR의 이 엇갈린 배치는 그렇게 할 수 없다.

우리는 이 문제를 회귀 문제로 다루고 평균 제곱 오차(MSE) 손실 함수를 사용한다. 수학을 최대한 단순하게 만들기 위한 선택이다. 전체 훈련 세트에서 평가된 MSE 손실 함수는 다음과 같다.

Equation 6.1 — MSE 손실
J(θ) = ¼  Σx∈X  ( f*(x) − f(x;θ) )²
X 네 개의 이진 입력 점 집합 · f*(x) 목표 XOR 값 · f(x;θ) 모델의 예측 · θ 학습되는 매개변수.

Section 2선형 모델은 왜 실패하는가

먼저 wb로 구성된 선형 모델을 선택했다고 하자.

Equation 6.2 — 선형 모델
f(x; w, b) = xᵀw + b
w 가중치 벡터 · b 편향 스칼라. 정규 방정식으로 닫힌 형태(closed form) 해를 구할 수 있다.

정규 방정식을 풀면 w = 0, b = ½이 나온다. 즉 선형 모델은 입력이 무엇이든 모든 곳에서 0.5를 출력한다 — 네 점 출력의 평균이다. 왜 이런 일이 일어날까?

직관 — Intuition 선형 모델은 x₂고정된 계수 w₂ 하나만 적용할 수 있다. 그런데 XOR은 x₁=0일 때는 x₂가 커질수록 출력이 증가해야 하고, x₁=1일 때는 x₂가 커질수록 출력이 감소해야 한다. 선형 모델은 x₁의 값에 따라 x₂의 계수를 바꿀 수 없다 — 두 입력 사이의 상호작용을 표현할 수 없다.

이 문제를 해결하는 한 가지 방법은, 선형 모델이 해를 표현할 수 있는 다른 특징 공간(feature space)을 학습하는 모델을 쓰는 것이다. 아래 스테이지에서 입력 공간 위의 네 점을 직접 살펴보고, 어떤 직선도 그것들을 갈라낼 수 없음을 확인한다.

Stage A · 선형 분리 불가능성 STEP 01 / 5
스페이스 재생 · ← → 단계 이동

Section 3은닉층을 가진 네트워크

구체적으로, 두 개의 은닉 유닛을 포함하는 하나의 은닉층을 가진 간단한 순방향 네트워크를 도입한다. 이 네트워크는 함수 f⁽¹⁾(x;W,c)로 계산되는 은닉 유닛의 벡터 h를 가진다. 이 은닉 유닛 값은 두 번째 층(출력층)의 입력으로 쓰인다. 출력층은 여전히 선형 회귀 모델이지만, 이제 x가 아니라 h에 적용된다. 전체 모델은 두 함수의 합성이다 — f(x) = f⁽²⁾(f⁽¹⁾(x)).

f⁽¹⁾은 어떤 함수를 계산해야 할까? 선형 모델이 지금까지 잘 봉사해 왔으니 f⁽¹⁾도 선형으로 두고 싶을 수 있다. 불행히도 f⁽¹⁾이 선형이면 전체 네트워크는 입력의 선형 함수로 남는다. 절편을 무시하고 f⁽¹⁾(x)=Wᵀx, f⁽²⁾(h)=hᵀw라 하면 f(x)=xᵀWw가 되어, 이는 w′=Ww인 단일 선형 모델 f(x)=xᵀw′와 똑같다.

핵심 — Key 특징을 설명하려면 비선형 함수를 써야 한다. 대부분의 신경망은 학습된 매개변수가 제어하는 아핀 변환(affine transformation) 뒤에 고정된 비선형 함수 — 활성화 함수(activation function) — 를 적용해 이를 달성한다. 우리는 h = g(Wᵀx + c)를 사용한다.

현대 신경망의 기본 권장 사항은 정류 선형 유닛(ReLU, rectified linear unit)이다. 정의는 g(z) = max{0, z}로, 두 개의 직선 조각으로 이루어진 구간 선형(piecewise linear) 함수다. 거의 선형이기 때문에 선형 모델을 경사 기반 방법으로 최적화하기 쉽게 만드는 많은 성질을 보존한다.

Equation 6.3 — 완전한 XOR 네트워크
f(x; W, c, w, b) = wᵀ max{0,  Wᵀx + c} + b
W 입력→은닉 가중치 행렬 · c 은닉층 편향 · max{0,·} ReLU 활성화 · w 은닉→출력 가중치 · b 출력 편향.
Stage B · 은닉층이 특징 공간을 변환한다 STEP 01 / 6
스페이스 재생 · ← → 단계 이동

Section 4XOR을 푸는 명시적 해

이 작은 네트워크에 대한 해를 직접 지정할 수 있다. 다음과 같이 두자.

Equations 6.4 – 6.6 — 명시적 해
W = [ 1 1 ; 1 1 ]    c = [ 0 ; −1 ]    w = [ 1 ; −2 ]    b = 0
W 두 은닉 유닛이 입력의 합 x₁+x₂를 받게 한다 · c 둘째 유닛만 1만큼 이동 · w 두 유닛을 가중 결합.

이제 네 점을 한 번에 처리한다. 설계 행렬(design matrix) X = [0 0; 0 1; 1 0; 1 1]에 첫 층 가중치를 곱하면 XW = [0 0; 1 1; 1 1; 2 2]를 얻는다(식 6.8). 여기에 편향 c를 더하면 [0 −1; 1 0; 1 0; 2 1]이 된다(식 6.9). 이 공간에서 네 점은 기울기 1의 한 직선 위에 놓이며, 그 직선을 따라가면 출력은 0에서 시작해 1로 올랐다 다시 0으로 떨어져야 한다 — 선형 모델로는 불가능한 모양이다.

각 점에 ReLU를 적용하면 h = [0 0; 1 0; 1 0; 2 1]이다(식 6.10). 이 정류 변환이 점들 사이의 관계를 바꿔 놓았다. 점들은 더 이상 한 직선 위에 있지 않고, 선형 모델이 문제를 풀 수 있는 공간에 놓인다. 마지막으로 w를 곱하면 [0; 1; 1; 0]이 나온다(식 6.11) — 네트워크가 모든 예시에서 정답을 맞혔다.

함정 — Pitfall h = [1,0]ᵀ두 양성 점이 하나로 겹쳐졌다. 비선형 특징이 [1,0]ᵀ[0,1]ᵀ를 특징 공간의 같은 점으로 보냈기 때문이다. 이것이 바로 분리를 가능하게 한 조작이다 — 정보 손실처럼 보이지만, 여기서는 정확히 원하는 동일시(identification)다.

Section 5추측이 아니라 학습으로

이 예에서 우리는 단순히 해를 지정한 다음 오류가 0임을 보였다. 실제 상황에서는 수십억 개의 매개변수와 수십억 개의 훈련 예시가 있어, 여기서처럼 해를 추측할 수 없다. 대신 경사 기반 최적화(gradient-based optimization) 알고리즘이 매우 작은 오류를 내는 매개변수를 찾는다.

우리가 제시한 XOR 해는 손실 함수의 전역 최솟값(global minimum)에 있으므로, 경사 하강법이 이 점에 수렴할 수 있다. 경사 하강법이 찾을 수 있는 다른 동등한 해들도 존재하며, 수렴점은 매개변수의 초깃값에 따라 달라진다. 실제로 경사 하강법은 보통 우리가 여기서 보인 것처럼 깔끔한 정숫값 해를 찾지는 않는다.

핵심 — Key XOR이 가르치는 한 줄. 선형 모델은 입력 간 상호작용을 표현할 수 없고, 은닉층 + 비선형 활성화는 입력을 분리 가능한 특징 공간으로 옮긴다. 이 한 칸의 원리가 수십억 매개변수의 심층 네트워크까지 그대로 확장된다.