Section 1아키텍처란 무엇인가
신경망의 또 다른 주요 설계 고려 사항은 아키텍처를 결정하는 것이다. 아키텍처라는 단어는 네트워크의 전체 구조를 가리킨다 — 얼마나 많은 유닛을 둘 것인가, 그 유닛들이 서로 어떻게 연결될 것인가.
대부분의 신경망은 층(layer)이라 불리는 유닛 그룹으로 구성되며, 이 층들을 체인 구조로 배열한다. 각 층은 바로 앞 층의 함수다.
h⁽²⁾ = g⁽²⁾( W⁽²⁾ᵀ h⁽¹⁾ + b⁽²⁾ ) …
이러한 체인 기반 아키텍처에서 주요 고려 사항은 두 가지다 — 네트워크의 깊이(depth), 즉 층의 수, 그리고 각 층의 너비(width), 즉 층당 유닛의 수. 곧 보겠지만, 은닉층이 하나뿐인 네트워크도 훈련 세트에 적합하기에 충분하다. 그러나 더 깊은 네트워크는 종종 층당 훨씬 적은 유닛과 훨씬 적은 매개변수를 쓰면서도 테스트 세트에 더 잘 일반화한다 — 다만 최적화하기는 더 어려운 경향이 있다.
Section 2보편 근사 정리
비선형 함수를 학습하려면 그 비선형성에 맞는 특수한 모델 패밀리를 설계해야 한다고 처음엔 짐작할 수 있다. 다행히 은닉층이 있는 순방향 네트워크는 보편 근사 프레임워크(universal approximator)를 제공한다.
선형 출력층과, 하나 이상의 은닉층 — 어떤 "압축(squashing)" 활성화 함수(예: 로지스틱 시그모이드)를 가진 — 을 갖춘 순방향 네트워크는, 충분한 은닉 유닛이 주어지면 한 유한 차원 공간에서 다른 공간으로의 임의의 보렐 측정 가능 함수를 원하는 0이 아닌 양의 오차 안에서 근사할 수 있다.
우리의 목적에서는, ℝⁿ의 닫힌 유계 부분집합 위의 모든 연속 함수가 신경망으로 근사 가능하다고 말하는 것으로 충분하다. 이 정리는 이후 ReLU를 포함하는 더 넓은 활성화 함수 클래스로도 증명되었다(Leshno et al., 1993).
아래 스테이지에서 은닉 유닛을 하나씩 늘려가며, 넓은 단일 은닉층이 어떻게 목표 곡선을 점점 더 정확히 따라가는지를 본다 — 보편 근사 정리가 약속하는 그림이다.
Section 3표현 가능성과 학습 가능성
보편 근사 정리는 우리가 학습하려는 함수가 무엇이든 큰 MLP가 그것을 표현할 수 있음을 알려준다. 그러나 훈련 알고리즘이 그 함수를 학습할 수 있다는 보장은 없다. MLP가 함수를 표현할 수 있어도, 학습은 두 가지 이유로 실패할 수 있다.
| 실패 원인 | 무슨 일이 일어나는가 |
|---|---|
| 최적화 실패 | 훈련에 쓰이는 최적화 알고리즘이 원하는 함수에 대응하는 매개변수 값을 찾지 못한다. |
| 일반화 실패 | 훈련 알고리즘이 과적합(overfitting)의 결과로 잘못된 함수를 고른다. |
요약하면 — 단일 층 순방향 네트워크는 어떤 함수든 표현하기에 충분하지만, 그 층은 실현 불가능할 만큼 클 수 있고, 올바르게 학습하고 일반화하는 데 실패할 수 있다. 그래서 우리는 깊이로 눈을 돌린다.
Section 4깊이의 기하급수적 이점
많은 상황에서, 더 깊은 모델을 쓰면 원하는 함수를 표현하는 데 필요한 유닛 수를 줄이고 일반화 오차도 줄일 수 있다. 어떤 함수 패밀리는 깊이가 어떤 값 d보다 큰 아키텍처로는 효율적으로 근사되지만, 깊이가 d 이하로 제한되면 훨씬 더 큰 모델이 필요하다 — 얕은 모델에 필요한 은닉 유닛 수가 종종 n에서 기하급수적이다.
통계적 이유로도 깊은 모델을 고를 수 있다. 깊은 모델을 선택하는 것은 학습하려는 함수가 여러 더 간단한 함수의 합성이어야 한다는 매우 일반적인 믿음을 인코딩한다 — 또는 그것이 여러 단계로 이루어진 컴퓨터 프로그램이며 각 단계가 이전 단계의 출력을 쓴다는 믿음을. 경험적으로, 더 큰 깊이는 다양한 작업에서 더 나은 일반화로 이어진다.
Section 5체인을 넘어서
지금까지 신경망을 층의 단순한 체인으로 설명했지만, 실제 신경망은 훨씬 더 다양하다. 층이 반드시 체인으로만 연결될 필요는 없다.
많은 아키텍처는 메인 체인을 세운 다음, 층 i에서 층 i+2 이상으로 가는 스킵 연결(skip connection) 같은 특징을 추가한다. 이러한 스킵 연결은 기울기가 출력층에서 입력에 가까운 층으로 흐르기 쉽게 만든다.
또 다른 주요 고려 사항은 층 쌍을 정확히 어떻게 연결할지다. 행렬 W를 통한 기본 층에서는 모든 입력 유닛이 모든 출력 유닛에 연결된다. 그러나 많은 특수 네트워크는 더 적은 연결을 써서, 각 입력 유닛이 출력 유닛의 작은 부분집합에만 연결된다 — 매개변수 수와 계산량을 줄이는 전략이며, 합성곱 네트워크(9장)가 컴퓨터 비전에서 쓰는 희소 연결 패턴이 그 예다.