← 강의 목록

Lecture 10. 인공 신경망 (ANN)

선형 회귀를 여러 층으로 쌓아 비선형 함수를 학습합니다.

목차

  1. 퍼셉트론 한 개
  2. 다층 신경망
  3. 활성화 함수
  4. 역전파와 경사 하강법
  5. 인터랙티브 학습 데모

1. 퍼셉트론 (뉴런 한 개)

가장 기본 단위는 입력에 가중치를 곱하고 활성화 함수를 통과시키는 작은 함수입니다.

$$ z = w_1 x_1 + w_2 x_2 + b, \quad a = \sigma(z) $$

이게 선형 회귀와 무엇이 다를까요? 활성화 함수 $\sigma$가 비선형이라는 점입니다.

2. 활성화 함수

$$ \text{ReLU: } \sigma(z) = \max(0, z), \quad \text{Sigmoid: } \sigma(z) = \frac{1}{1+e^{-z}}, \quad \text{Tanh: } \sigma(z) = \tanh z $$

비선형이 끼어들지 않으면 아무리 많은 층을 쌓아도 결국 하나의 직선과 같습니다. 활성화 함수가 신경망을 강력하게 만듭니다.

🎮 인터랙티브: 활성화 함수 비교

네 가지 함수의 모양과 기울기를 동시에 확인합니다.

3. 다층 신경망

뉴런을 층(layer)으로 쌓으면 임의로 복잡한 함수를 근사할 수 있습니다 (보편 근사 정리).

$$ a^{[l]} = \sigma\!\left(W^{[l]} a^{[l-1]} + b^{[l]}\right) $$
입력 은닉 출력

4. 학습: 역전파 + 경사 하강법

네트워크의 출력 $\hat{y}$와 정답 $y$의 오차를 손실 함수로 측정합니다.

$$ \mathcal{L} = \frac{1}{2N}\sum_{i=1}^N (y_i - \hat{y}_i)^2 $$

가중치 $w$를 미분해서 손실을 줄이는 방향으로 한 발씩 업데이트합니다.

$$ w \leftarrow w - \alpha \frac{\partial \mathcal{L}}{\partial w} $$

여러 층의 미분은 연쇄 법칙(chain rule)으로 뒤에서 앞으로 전파됩니다 — 이것이 역전파(backpropagation)입니다.

🎮 인터랙티브: 1D 함수 학습

작은 신경망(1→8→1, ReLU)이 sin 함수를 학습하는 과정입니다. 학습률을 바꾸며 수렴 속도를 보세요.

🟢 정답 sin(x)   🔵 신경망 출력  

5. PyTorch 코드

import torch
import torch.nn as nn

model = nn.Sequential(
    nn.Linear(1, 20),
    nn.ReLU(),
    nn.Linear(20, 1),
)
loss_fn = nn.MSELoss()
opt = torch.optim.Adam(model.parameters(), lr=1e-2)

x = torch.linspace(-3.14, 3.14, 200).unsqueeze(1)
y = torch.sin(x)

for ep in range(2000):
    pred = model(x)
    loss = loss_fn(pred, y)
    opt.zero_grad(); loss.backward(); opt.step()
print("loss:", loss.item())

6. 더 깊이 공부하기