"ML 기초 학습 (6/9) — 신경망 기초: 퍼셉트론에서 MLP까지"

4편의 로지스틱 회귀를 "한 단" 쌓아 올린 것이 신경망이다. 한 단을 쌓을 때마다 새로운 비선형 활성함수를 거쳐 더 복잡한 함수를 표현할 수 있다. 이번 편은 신경망이 어떻게 학습하는가를 한 페이지로 정리한다. 퍼셉트론·XOR·MLP·역전파·활성함수·보편 근사 정리가 한 자리에서 만난다.


0. 학습 목표

  • 단층 퍼셉트론의 학습 규칙을 식으로 쓰고, XOR을 못 푸는 이유를 설명한다.
  • MLP의 forward pass를 행렬 곱으로 한 줄에 쓸 수 있다.
  • 역전파(backpropagation)를 두 층짜리 MLP에서 손으로 유도할 수 있다.
  • sigmoid·tanh·ReLU·GELU의 정의·도함수·장단점을 비교한다.
  • 보편 근사 정리(Cybenko 1989 / Hornik 1991)의 진술을 정확히 인용한다.
  • PyTorch로 MLP를 처음부터 끝까지 학습할 수 있다.

1. 핵심 요약

  • 퍼셉트론(1958): \(\hat{y} = \mathrm{step}(w^\top x + b)\). 선형 분리 가능 데이터에 한해 수렴 보장.
  • XOR(1969): 단층 퍼셉트론으로 풀 수 없다. AI 1차 겨울의 한 원인이 됨.
  • MLP: 선형 결합 + 비선형 활성함수의 반복. \(h = \phi(Wx + b)\)를 여러 단.
  • 학습: forward에서 손실 계산 → backward에서 그래디언트 전파 → 가중치 업데이트.
  • 보편 근사 정리(1989): 충분히 큰 단층 MLP는 모든 연속 함수를 임의 정확도로 근사 가능.
  • ReLU의 도래(2010)가 깊은 네트워크 학습을 실용적으로 만들었다.

2. 직관 — 신경망은 무엇이 다른가

2.1 한 뉴런: 로지스틱 회귀의 재발견

뉴런 하나의 출력:

$$ h = \phi(w^\top x + b) $$

\(\phi\)가 sigmoid면 이것이 정확히 4편의 로지스틱 회귀. \(\phi\)가 step 함수면 1958년 Rosenblatt의 퍼셉트론.

신경망의 새로움은 뉴런 하나가 아니라 여러 뉴런의 출력을 다음 단의 입력으로 다시 받는 데 있다. 단을 쌓으면 입력 공간이 비선형으로 변형되어 복잡한 결정경계를 표현한다.

2.2 XOR — 왜 한 층은 부족한가

XOR 진리표:

\(x_1\) \(x_2\) y
0 0 0
0 1 1
1 0 1
1 1 0

이 네 점을 분리하는 직선은 존재하지 않는다. 단층 퍼셉트론은 직선(초평면)으로만 분리하므로 XOR 학습 불가.

그러나 두 층이면 가능하다. 첫 층에서 \(h_1 = x_1 \text{ AND NOT } x_2\), \(h_2 = \text{NOT } x_1 \text{ AND } x_2\)를 만들고, 두 번째 층에서 \(y = h_1 \text{ OR } h_2\). 첫 층의 비선형 활성이 입력 공간을 변형해 두 번째 층의 선형 분류기에게 분리 가능한 모양을 던져 준다.

Minsky & Papert Perceptrons (1969) 이 단층 한계를 형식적으로 입증했고, 그 결과 신경망 연구가 한동안 침체된다. 다층 학습을 가능하게 만든 결정타가 역전파의 재발견 (Rumelhart, Hinton, Williams 1986) 이다.

2.3 왜 비선형 활성이 본질인가

\(\phi\)가 항등함수 \(\phi(z) = z\)라면 두 층 짜리 MLP는

$$ h_2 = W_2 (W_1 x + b_1) + b_2 = W_2 W_1 x + (W_2 b_1 + b_2) $$

결국 한 층짜리 선형 모델과 같다. 단을 쌓아도 표현력이 늘지 않는다. 비선형 활성함수가 단을 쌓는 이유 그 자체다.


3. 정의와 표기

3.1 MLP forward pass

\(L\)개의 hidden layer를 가진 MLP:

입력층:

$$ h^{(0)} = x $$

은닉층 \(\ell = 1, \dots, L\):

$$ h^{(\ell)} = \phi^{(\ell)}\!\big(W^{(\ell)} h^{(\ell-1)} + b^{(\ell)}\big) $$

출력층 (회귀):

$$ \hat{y} = W^{(L+1)} h^{(L)} + b^{(L+1)} $$

출력층 (분류):

$$ \hat{y} = \mathrm{softmax}\!\big(W^{(L+1)} h^{(L)} + b^{(L+1)}\big) $$

  • \(W^{(\ell)} \in \mathbb{R}^{n_\ell \times n_{\ell-1}}\), \(b^{(\ell)} \in \mathbb{R}^{n_\ell}\)
  • \(\phi^{(\ell)}\): 단별 활성함수 (보통 ReLU, 마지막 hidden은 종종 GELU 또는 tanh)

3.2 손실

회귀: MSE. 분류: cross-entropy (4편). 신경망의 출력층은 거의 예외 없이 이 둘 중 하나.

3.3 활성함수

$$ \sigma(z) = \frac{1}{1 + e^{-z}}, \quad \sigma'(z) = \sigma(z)(1 - \sigma(z)) $$

$$ \tanh(z) = \frac{e^z - e^{-z}}{e^z + e^{-z}}, \quad \tanh'(z) = 1 - \tanh^2(z) $$

$$ \mathrm{ReLU}(z) = \max(0, z), \quad \mathrm{ReLU}'(z) = \mathbb{1}[z > 0] $$

$$ \mathrm{GELU}(z) = z \cdot \Phi(z) \approx 0.5\, z\,\big(1 + \tanh(\sqrt{2/\pi}(z + 0.044715 z^3))\big) $$

함수 범위 장점 단점
sigmoid (0, 1) 확률 해석 큰 \
tanh (-1, 1) 중심이 0 여전히 포화
ReLU [0, ∞) 그래디언트 단순, 빠른 학습 "dead ReLU" 가능 (z<0 영역 영구 사멸)
GELU (-∞, ∞) 부드러운 ReLU, 트랜스포머 표준 계산비용 약간 큼

4. 수식과 메커니즘 — 역전파

4.1 손실의 그래디언트를 한 단씩 거슬러 올라가기

MLP를 \(f = f_L \circ f_{L-1} \circ \cdots \circ f_1\) 합성으로 보면, 그래디언트는 체인 룰로 계산된다.

각 단에서 두 가지 양을 갖는다:

  • pre-activation \(z^{(\ell)} = W^{(\ell)} h^{(\ell-1)} + b^{(\ell)}\)
  • post-activation \(h^{(\ell)} = \phi^{(\ell)}(z^{(\ell)})\)

Backward pass 정의: \(\delta^{(\ell)} = \frac{\partial \mathcal{L}}{\partial z^{(\ell)}}\).

출력층에서:

$$ \delta^{(L+1)} = \hat{y} - y \quad \text{(cross-entropy + softmax / sigmoid 조합)} $$

(4편의 \(\hat{p} - y\) 단순화 그대로. 회귀라면 \(\hat{y} - y\).)

은닉층 \(\ell\)에 대해:

$$ \boxed{\delta^{(\ell)} = \big(W^{(\ell+1)\top} \delta^{(\ell+1)}\big) \odot \phi'^{(\ell)}(z^{(\ell)})} $$

\(\odot\)은 원소별 곱. 다음 층의 \(\delta\)에 가중치 전치를 곱하고, 자기 활성함수의 도함수와 원소곱.

가중치 그래디언트:

$$ \frac{\partial \mathcal{L}}{\partial W^{(\ell)}} = \delta^{(\ell)} (h^{(\ell-1)})^\top, \quad \frac{\partial \mathcal{L}}{\partial b^{(\ell)}} = \delta^{(\ell)} $$

이 네 줄이 역전파의 전부다. 어떤 깊이의 네트워크에서도 같은 패턴이 반복된다.

4.2 손으로 한 번 — 두 층 MLP

이진 분류, hidden 2개, 출력 1개, ReLU + sigmoid를 예로:

forward:
  z1 = W1 x + b1                 # (2,)
  h1 = ReLU(z1)
  z2 = w2^T h1 + b2              # scalar
  yhat = sigmoid(z2)
  L = -[y log yhat + (1-y) log(1-yhat)]

backward:
  delta2 = yhat - y
  dw2 = delta2 * h1              # (2,)
  db2 = delta2

  delta1 = (w2 * delta2) * (z1 > 0).astype(float)   # ReLU 도함수
  dW1 = outer(delta1, x)         # (2, d)
  db1 = delta1

이 절차를 자동화하는 게 PyTorch / TensorFlow의 autograd 다 (9편).

4.3 보편 근사 정리

(Cybenko 1989; Hornik 1991) 임의의 연속 함수 \(f: [0,1]^d \to \mathbb{R}\)과 임의의 \(\epsilon > 0\)에 대해, 충분히 많은 은닉 뉴런을 가진 한 층짜리 MLP \(g\)가 존재하여 \(\sup_{x \in [0,1]^d} |g(x) - f(x)| < \epsilon\).

조건: 활성함수가 비상수, 유계, 단조 증가, 연속 (Cybenko, sigmoid류) 또는 비다항식 (Hornik의 일반화).

주의 — 정리는 존재성만 보장. 실제로 그런 \(g\)를 찾을 수 있다거나 효율적이라는 것을 의미하지 않는다. 깊이가 표현력과 효율을 동시에 개선한다는 결과가 이후에 따로 나온다 (Eldan-Shamir 2016 등).

4.4 그래디언트 소실·폭주

깊은 네트워크에서 \(\delta^{(\ell)} = (W^{(\ell+1)\top}\delta^{(\ell+1)}) \odot \phi'(z^{(\ell)})\)이 단을 거슬러 올라갈수록 작은 수의 곱이 누적되면 0에 가까워지고(소실), 큰 수의 곱이 누적되면 폭주한다.

  • sigmoid·tanh: \(\phi'\) 최대 0.25 → 깊이 따라 소실 가속.
  • ReLU: \(\phi'\)가 0 또는 1 → 음수 영역에선 dead, 양수 영역에선 보존.
  • 초기화 (Xavier, He): 가중치 분산을 단별 입력 수에 맞춰 설정. 7편에서 자세히.

5. 다이어그램

diagram-1

forward는 위에서 아래로(실선), backward는 아래에서 위로(점선). 그래디언트가 손실에서 시작해 입력 쪽으로 한 단씩 거슬러 흐른다.


6. 원리 워크스루 — autograd 한 줄이 숨기는 것

코드 자체는 거의 표준 PyTorch. 그러나 loss.backward() 한 줄 뒤에서 연쇄법칙이 자동 미분으로 풀리는 메커니즘이 신경망 학습의 본체다.

6.1 표준 두 층 MLP

import torch.nn as nn, torch.nn.functional as F
class MLP(nn.Module):
    def __init__(self, in_dim, hidden, out_dim):
        super().__init__()
        self.fc1 = nn.Linear(in_dim, hidden)
        self.fc2 = nn.Linear(hidden, out_dim)
    def forward(self, x):
        return self.fc2(F.relu(self.fc1(x)))

8줄에 전체 모델이 들어간다. PyTorch가 자동으로 처리하는 일: - 가중치 \(W_1, b_1, W_2, b_2\) 의 무작위 초기화 (He initialization 등) - forward 시 계산 그래프 자동 구축 - loss.backward() 시 계산 그래프를 역으로 따라가며 연쇄법칙으로 그래디언트 자동 계산 - optimizer가 그래디언트로 가중치 업데이트

6.2 autograd가 대신 해 주는 backprop의 한 단계

학습 루프 한 줄 loss.backward()는 다음을 암묵적으로 수행한다:

$$ \delta^{(L)} = \nabla_{\hat{y}} \mathcal{L}, \qquad \delta^{(\ell)} = (W^{(\ell+1)})^{\top} \delta^{(\ell+1)} \odot \phi'(z^{(\ell)}) $$

각 층 \(\ell\)에서 forward 시 캐싱한 \(h^{(\ell-1)}, z^{(\ell)}\)을 사용해 \(\frac{\partial \mathcal{L}}{\partial W^{(\ell)}} = \delta^{(\ell)} (h^{(\ell-1)})^{\top}\) 계산.

왜 자동 미분이 게임을 바꿨는가 - 모델 구조를 식으로 적기만 하면 학습 가능. 손으로 \(\delta\) 식을 유도하지 않아도 됨. - 새 활성·새 손실·새 정규화를 한 줄로 실험할 수 있음. - 1986년 Rumelhart et al.의 backprop 논문 이후 30년 만에 (PyTorch 2017) "신경망 연구의 진입장벽"이 사라짐.

핵심 시각: PyTorch는 수학을 자동화한다. 우리가 할 일은 모델 구조와 손실을 결정하는 것뿐. 7편(학습 기법)은 그 결정들 — optimizer·learning rate·정규화 — 자체가 모델 설계의 본체임을 보여 준다.

6.3 활성함수 비교 실험 (개념)

실험 설계의 핵심 같은 MLP, 같은 하이퍼파라미터(학습률·배치·옵티마이저), 같은 데이터셋(MNIST 또는 CIFAR-10)에서 활성함수만 sigmoid → tanh → ReLU → GELU로 바꾸며 학습 곡선(epoch vs loss/accuracy)을 비교한다. 다른 변수가 모두 고정되어 있으므로 곡선 차이는 전적으로 활성함수에서 비롯된다.

관찰되는 핵심 패턴 - 얕은 신경망 (2~3층): 네 활성함수 모두 비슷한 수준으로 학습된다. 활성함수의 차이가 잘 드러나지 않는다. - 깊은 신경망 (4층 이상): sigmoid·tanh는 학습 손실이 거의 줄지 않는다. ReLU·GELU는 빠르게 수렴한다. 이것이 그래디언트 소실(vanishing gradient) 의 가시적 증거다. sigmoid의 도함수 최댓값이 0.25, tanh가 1이지만 양 끝에서 0에 가까워지면서, 4번 곱해지면 그래디언트가 \(0.25^4 \approx 0.004\) 수준까지 쪼그라든다. ReLU는 양의 영역에서 도함수가 정확히 1이므로 그래디언트가 그대로 통과한다.

왜 이 실험이 역사적으로 결정적이었나 2010년 이전에는 sigmoid·tanh가 표준이었고, 깊은 망은 "학습이 안 된다"고 여겨졌다. Nair & Hinton 2010 Rectified Linear Units Improve Restricted Boltzmann Machines 이후 ReLU가 표준으로 자리잡으며 깊이의 한계가 풀렸다. AlexNet (2012)이 ImageNet에서 우승한 핵심 요인 중 하나가 바로 ReLU 채택이었다. 즉 이 단순한 비교 실험이 딥러닝 시대의 문을 열었다.

현재의 표준과 다음 단계 - Transformer 계열: GELU (BERT, GPT) - CNN: ReLU 또는 변형(LeakyReLU, PReLU) - 모바일·경량 모델: ReLU6, Hardswish (양 끝을 클리핑해 양자화 친화적)

6.4 보편 근사 직관 데모

실험 설계 한 층(은닉층 1개)짜리 MLP의 hidden 유닛 수를 8 → 32 → 128 → 512 → 2048로 늘려가며 \(y = \sin(x)\)를 근사한다. 입력 \(x \in [-2\pi, 2\pi]\)에서 1024개 점을 샘플링하고, 회귀 손실(MSE)로 학습한다.

관찰되는 핵심 패턴 - hidden 8개: 직선에 가까운 거친 곡선. \(\sin\)의 모양을 잡지 못한다. - hidden 32개: 굵게 흔들리는 곡선. 큰 진폭은 잡지만 봉우리·골이 부드럽지 못하다. - hidden 128개: 거의 정확한 \(\sin\) 곡선이 그려진다. - hidden 512개 이상: 육안으로 차이가 거의 없다. 오차가 수치적으로 더 줄어들 뿐이다.

왜 이 실험이 보편 근사 정리의 가장 좋은 직관인가 보편 근사 정리(Cybenko 1989, Hornik 1991)는 "한 층 MLP의 hidden 유닛을 충분히 늘리면 임의의 연속 함수를 임의의 정확도로 근사할 수 있다"고 말한다. 이 진술은 존재 정리일 뿐 효율을 말하지 않는다. 실제로 \(\sin\) 같은 단순 곡선조차 hidden 100개 이상을 요구한다.

왜 그럼에도 깊이를 쌓는가 한 층 신경망은 hidden 폭을 키우면 표현력을 얻지만, 계층적 추상화는 만들지 못한다. 이미지·언어처럼 구조가 중첩된 데이터에서는 깊은 신경망이 같은 정확도를 훨씬 적은 파라미터로 달성한다. 8편(딥러닝 아키텍처)에서 CNN·RNN·Transformer가 왜 깊이를 쌓아야 했는지 다시 살핀다. 보편 근사가 "할 수 있다"를 말하고, 깊이가 "효율적으로 할 수 있다"를 말한다.


7. 변형과 사례 — MLP의 변형들이 현대 딥러닝 전체를 잇는다

7.1 활성함수의 진화 — sigmoid → ReLU → GELU의 흐름

이름 등장 배경 현재 위치
Sigmoid \(1/(1+e^{-z})\) 로지스틱 회귀(1958) 분류 출력 헤드만
Tanh \(\tanh(z)\) RNN 초기 LSTM/GRU 내부
ReLU \(\max(0, z)\) Nair & Hinton 2010 CNN의 표준
Leaky ReLU \(\max(\alpha z, z)\) dead ReLU 대응 CNN 변형
PReLU learnable \(\alpha\) He et al. 2015 자동 튜닝
ELU 음수 \(\alpha(e^z - 1)\) Clevert 2015 평균 0 출력
Swish/SiLU \(z \cdot \sigma(z)\) Ramachandran 2017 LLaMA, EfficientNet
GELU \(z \cdot \Phi(z)\) Hendrycks 2016 Transformer (BERT, GPT)

핵심 흐름 - sigmoid → ReLU: vanishing gradient 해결 (2010~) - ReLU → GELU/Swish: 매끄러운 도함수가 학습 안정성 에 더 유리 (Transformer 시대)

7.2 MLP의 정규화 — 5가지가 동시에 작동

무엇이 바뀌나 단순 SGD에 다음을 모두 추가:

nn.Dropout(p=0.5)                              # 매 forward 무작위 0
optim.Adam(weight_decay=1e-4)                   # 옵티마이저 L2
nn.BatchNorm1d / nn.LayerNorm                   # 매 layer 분포 안정화

왜 다섯이 함께 필요한가 신경망의 표현력이 너무 커서 — 한 가지 정규화로는 부분만 막힌다. 7편에서 각 메커니즘이 어떻게 상호 보완 하는지 자세히.

7.3 출력층 = GLM의 그림자

작업 출력 활성 손실 분포 가정
이진 분류 sigmoid binary cross-entropy 베르누이
다중 분류 softmax categorical cross-entropy 카테고리
회귀 identity MSE / MAE 가우스 / 라플라스
다중 라벨 per-class sigmoid per-class BCE 베르누이 × K
카운트 exp Poisson NLL 푸아송

핵심 시각: 신경망 출력 헤드 = 학습된 표현 + GLM. 3편 7.2의 일반화 선형 모델과 같은 자리. 즉 신경망은 GLM을 공통 출력 형식으로 두고 그 앞에 표현 학습 층을 쌓은 것.

7.4 MLP가 다른 아키텍처의 서브 블록 으로 들어간 자리

  • CNN (8편): 합성곱 = 가중치 공유된 국소 MLP. 같은 가중치를 이미지 위 모든 위치에 적용.
  • Transformer feed-forward (LLM 핵심 학습 1편): 각 토큰에 적용되는 2층 MLP — 모델 파라미터의 약 2/3가 여기 있다.
  • 추천 시스템 (Deep & Wide): 선형(wide) + MLP(deep) 결합. Google 2016 Wide & Deep Learning.
  • Mixture of Experts (MoE): 여러 MLP를 gating network로 선택해 사용 (Mixtral, GPT-4).
  • GNN의 message function: 그래프 노드 간 정보 전달이 MLP로.

핵심 시각: 현대 딥러닝 거의 모든 아키텍처에서 최소 단위 블록은 여전히 MLP다. 8편 트랜스포머 어텐션도 MLP 사이에 끼워진 구조.

7.5 산업 사례 — MLP가 충분히 강한 자리

  • 표 형식 데이터의 캐글: 보통 XGBoost·LightGBM이 우세하지만, TabNet·SAINT 같은 MLP 기반 모델이 약진 (2020~).
  • 임베딩 기반 검색·추천: 임베딩 학습이 본질, MLP 한두 층이면 충분.
  • AlphaFold (단백질 구조): MLP가 attention 사이에서 핵심 기능.
  • LLM의 feed-forward: 모델 파라미터 절반 이상이 2층 MLP 안에 있다.

8. 한계와 실패 양상 — 깊이가 만들어 낸 6가지 적

8.1 그래디언트 소실 (Vanishing Gradient)

왜 본질적 한계인가 sigmoid·tanh 같은 포화 활성함수의 도함수 최댓값이 1보다 작다. 깊이가 \(L\)이면 그래디언트가 \(0.25^L\) (sigmoid) 비율로 폭락 → 깊은 층이 학습되지 않는다.

어떻게 진단하는가 초기 학습 시 깊은 층의 가중치 변화가 극히 작음. 학습 곡선이 매우 느림.

다음 단계 ReLU 계열 (7편 6.3) + He initialization + BatchNorm/LayerNorm + skip connection (8편 ResNet). 4가지가 함께 작동해 깊이 100층 이상이 가능해졌다.

8.2 Dead ReLU

왜 본질적 한계인가 ReLU는 \(z < 0\)에서 도함수가 0. 한 번 음수 영역으로 들어간 뉴런은 영원히 학습되지 않는다 — 죽은 뉴런.

어떻게 진단하는가 학습 후 활성화 분포를 보면 많은 뉴런이 항상 0.

다음 단계 Leaky ReLU (\(\alpha = 0.01\)), PReLU (학습된 \(\alpha\)), 또는 GELU/Swish (매끄러운 도함수 + 음수 영역 비-0).

8.3 과적합

왜 본질적 한계인가 신경망은 임의의 함수를 근사할 수 있다 (보편 근사 정리). 그러나 그 능력은 훈련 데이터를 외우는 능력과 같다. 표본 수가 부족하면 외움이 일반화를 압도.

어떻게 진단하는가 train accuracy 99% + test accuracy 70% → 과적합. train loss는 떨어지는데 val loss는 올라감.

다음 단계 Dropout + weight decay + early stopping + augmentation 의 합주 (7편).

8.4 표 형식 데이터에서의 약세

왜 본질적 한계인가 표 형식(tabular) 데이터는 암묵적 구조가 적다 — 픽셀의 공간성, 텍스트의 순서성처럼 신경망이 활용할 prior가 없다. 트리 모델(XGBoost, LightGBM)이 표 형식의 축 정렬 분할 을 자연스럽게 활용한다.

어떻게 진단하는가 캐글 표 형식 컴피티션에서 거의 항상 그라디언트 부스팅이 우승.

다음 단계 TabNet (Arik & Pfister 2020), SAINT (Somepalli 2021), FT-Transformer (Gorishniy 2021) — MLP+attention으로 표 형식 데이터에 주의 메커니즘 도입.

8.5 초기화 민감성

왜 본질적 한계인가 \(W\)를 표준 정규로 초기화하면 깊은 망의 활성·그래디언트 분산이 지수적으로 커지거나 작아진다. 학습이 시작도 못함.

어떻게 진단하는가 loss가 처음부터 NaN, 또는 학습 곡선이 완전히 정체.

다음 단계 Xavier (Glorot 2010, tanh용), He (He 2015, ReLU용). 분산을 층의 fan-in에 맞춰 조정. 7편에서 자세히.

8.6 해석 가능성의 부재

왜 본질적 한계인가 신경망 가중치는 학습된 표현일 뿐, 사람이 의미를 부여하기 어렵다. 의료 진단 등 왜 그렇게 답했는지가 중요한 분야에서 결정적 약점.

어떻게 진단하는가 "이 예측의 근거를 설명하라"는 요구가 들어오면 즉시 한계.

다음 단계 SHAP (Lundberg & Lee 2017), Integrated Gradients (Sundararajan 2017), LIME (Ribeiro 2016) — 사후 설명 도구. 또는 attention 시각화 (8편 Transformer).


한계가 알려주는 흐름

신경망의 6가지 한계가 현대 딥러닝의 다음 6가지 발전을 정확히 압축한다: - 그래디언트 소실 → ResNet의 skip connection (8편) - Dead ReLU → GELU/Swish (Transformer 시대) - 과적합 → 합주 정규화 (7편) - 표 형식 약세 → TabNet, FT-Transformer - 초기화 민감 → He/Xavier 표준화 (7편) - 해석 부재 → SHAP·attention 시각화 (8편)

신경망의 한계가 곧 다음 진보의 동기다.


9. 정리된 결론 — 보지 않고 답해 보라

Q1. XOR 문제가 단층 퍼셉트론으로 풀리지 않는 이유는? 한 층의 은닉층이 왜 풀어 주는가?

정답 XOR은 선형 분리 불가능. 단층 = 입력의 선형 결합 + 활성이라 직선/초평면으로 가르지 못한다. 은닉층이 학습된 비선형 변환 으로 입력 공간을 새 공간에 매핑해 거기서 선형 분리. Minsky & Papert 1969가 정식화한 한계가, Rumelhart et al. 1986의 backprop이 풀어 주는 직접 답. (본문 2.2)

Q2. sigmoid 도함수가 신경망 깊이에 한계를 만든 이유는? 어떻게 풀렸나?

정답 sigmoid의 도함수 최댓값 0.25 → 깊이 \(L\)이면 그래디언트가 \(0.25^L\)로 폭락 (vanishing gradient). ReLU는 양수 영역에서 도함수가 정확히 1이라 그대로 통과. Nair & Hinton 2010이 ReLU 도입, AlexNet 2012가 깊은 망의 첫 큰 성공. 7편 6.3에서 활성함수 비교 실험. (본문 6.3, 8.1)

Q3. loss.backward() 한 줄이 대신 해 주는 일은 무엇인가?

정답 계산 그래프를 역으로 따라가며 연쇄법칙으로 모든 가중치의 그래디언트를 자동 계산. forward 시 캐싱한 \(h^{(\ell)}, z^{(\ell)}\)을 이용. 자동 미분이 게임을 바꾼 이유 — 모델 구조만 으로 적으면 학습 가능. 손으로 \(\delta\)를 유도할 필요 없음. PyTorch 2017이 진입장벽을 무너뜨림. (본문 6.2)

Q4. 보편 근사 정리가 "할 수 있다"는 알려주지만 깊이를 왜 쌓아야 하는가?

정답 보편 근사는 존재 정리일 뿐 효율을 말하지 않는다. \(\sin\)조차 한 층에서 hidden 100개 이상이 필요. 깊이는 계층적 추상화를 만들어 같은 정확도를 적은 파라미터로 달성. 이미지의 픽셀 → 엣지 → 부분 → 객체 같은 중첩 구조에서는 깊이가 본질. 8편 CNN·RNN·Transformer가 깊이를 쌓은 이유. (본문 6.4)

Q5. 트랜스포머는 신경망 분류기지만 2/3가 MLP다. 어떻게?

정답 각 토큰에 적용되는 2층 MLP (feed-forward 블록) 이 모델 파라미터의 약 2/3 차지. attention은 정보 흐름을 정하고, 의미 변환은 MLP가 담당. 현대 딥러닝 거의 모든 아키텍처에서 최소 단위 블록은 여전히 MLP. CNN의 합성곱도 가중치 공유된 국소 MLP. LLM의 모델 크기 대부분이 feed-forward에 있다. (본문 7.4)


5개를 한 줄로 답할 수 있었다면 신경망의 왜·어떻게·어디로 가 자리잡은 것이다.


10. 추가 학습

1차 자료

  • Rosenblatt, F. The perceptron: A probabilistic model for information storage and organization in the brain. Psychological Review 65(6), 386–408 (1958). — 퍼셉트론 원논문.
  • Minsky, M., Papert, S. Perceptrons: An Introduction to Computational Geometry. MIT Press (1969). — XOR 한계 정식화.
  • Rumelhart, D. E., Hinton, G. E., Williams, R. J. Learning representations by back-propagating errors. Nature 323, 533–536 (1986). — 역전파의 재발견.
  • Cybenko, G. Approximation by superpositions of a sigmoidal function. Mathematics of Control, Signals, and Systems 2, 303–314 (1989). — 보편 근사.
  • Hornik, K. Approximation capabilities of multilayer feedforward networks. Neural Networks 4(2), 251–257 (1991). — 보편 근사 일반화.
  • Nair, V., Hinton, G. E. Rectified Linear Units Improve Restricted Boltzmann Machines. ICML (2010). — ReLU 도입.

공식 docs

  • PyTorch nn.Linear: https://pytorch.org/docs/stable/generated/torch.nn.Linear.html
  • PyTorch autograd: https://pytorch.org/docs/stable/notes/autograd.html
  • nn.functional 활성함수: https://pytorch.org/docs/stable/nn.functional.html

보조 자료

  • Goodfellow, Bengio, Courville. Deep Learning. MIT Press 2016. 6장.
  • Nielsen, M. Neural Networks and Deep Learning (온라인 무료, 2015).

다음 편(7/9)에서는 딥러닝 학습 기법을 다룬다. SGD·Momentum·Adam 같은 옵티마이저, Dropout·BatchNorm·LayerNorm 같은 정규화, Xavier·He 같은 초기화, 학습률 스케줄과 gradient clipping — 신경망을 실제로 수렴시키는 손기술을 모은다.

시리즈 전체 안내: 시리즈 목차

댓글

이 블로그의 인기 게시물

"LLM 핵심 학습 (1/6) — 기본: 토큰화·임베딩·어텐션·위치 인코딩"

"LLM 핵심 학습 (2/6) — 파인튜닝: LoRA·QLoRA·증류·Adapter"

"ML 기초 학습 (1/9) — 머신러닝과 sklearn: 학습의 좌표계"