딥러닝 기초 (1) - 신경망 기초: 퍼셉트론에서 MLP, 순전파
선형 모델이 XOR을 못 푸는 데서 출발해, 신경망의 최소 단위인 뉴런(가중합과 편향), 그것을 쌓은 다층 퍼셉트론(MLP), 그리고 입력을 층 따라 밀어 예측을 얻는 순전파를 NumPy로 정리한 딥러닝 기초 (1)편입니다.
딥러닝 기초 시리즈의 1편입니다. 전체 목차는 0편에 있습니다. 이 편은 신경망을 이루는 뉴런과, 그것을 쌓아 예측을 만드는 순전파까지를 다룹니다. 미분과 행렬 곱을 한 번쯤 본 적 있다면 따라올 수 있습니다.
선형 모델이 못 푸는 문제
머신러닝의 선형 회귀·로지스틱 회귀는 입력의 가중합 하나(w·x + b)로 결정을 내립니다. 놀랄 만큼 많은 문제를 풀지만, 아주 단순한 문제 앞에서 무너집니다. 대표적인 것이 XOR입니다. 두 입력이 서로 다를 때만 1을 내는 함수입니다.
| x1 | x2 | XOR |
|---|---|---|
| 0 | 0 | 0 |
| 0 | 1 | 1 |
| 1 | 0 | 1 |
| 1 | 1 | 0 |
이 네 점을 평면에 찍으면, 1인 점 (0,1)·(1,0)과 0인 점 (0,0)·(1,1)을 직선 하나로는 가를 수 없습니다. 선형 모델은 본질적으로 초평면 하나로 공간을 둘로 나누는 도구라, 이런 문제에는 손을 쓸 수 없습니다. 신경망은 단순한 단위를 여러 개, 여러 층으로 쌓아 직선이 아닌 경계를 만들어 이 벽을 넘습니다.
뉴런: 가중합과 편향
신경망의 최소 단위인 뉴런이 하는 일은 두 단계입니다.
- 입력들의 가중합에 편향을 더한다:
z = w1·x1 + w2·x2 + ... + b - 그 결과에 활성화 함수를 씌운다:
a = f(z)
가중치 w는 각 입력을 얼마나 중요하게 볼지를, 편향 b는 기준선을 어디에 둘지를 정합니다. 가중합은 벡터의 내적이라 NumPy로 한 줄입니다.
1
2
3
4
5
6
import numpy as np
x = np.array([0.5, -1.2, 2.0]) # 입력
w = np.array([0.8, 0.1, -0.3]) # 가중치
b = 0.5
z = x @ w + b # 가중합 + 편향
사실 선형 회귀가 바로 활성화 없는 뉴런 하나이고, 로지스틱 회귀는 뉴런 하나 + 시그모이드입니다. 우리가 아는 선형 모델은 신경망의 가장 작은 특수한 경우입니다. 활성화 함수가 왜 꼭 필요한지는 다음 편에서 따로 다룹니다. 이 편에서는 “가중합 뒤에 비선형 함수 f를 하나 씌운다”는 것만 알면 됩니다.
층을 쌓다: 다층 퍼셉트론(MLP)
뉴런 여러 개를 나란히 두면 한 층이 되고, 층을 이어 붙이면 신경망이 됩니다. 가장 기본이 입력층 → 은닉층 → 출력층으로 이어지는 다층 퍼셉트론(MLP)입니다. 각 층이 하는 일은 뉴런과 똑같습니다 — 행렬 곱으로 가중합을 구하고, 편향을 더하고, 활성화를 씌웁니다.
뉴런 하나의 w·x가 층 단위에서는 가중치 행렬 곱 W x가 됩니다. 은닉 뉴런이 여러 개니 가중치가 벡터가 아니라 행렬이 되는 것뿐입니다.
순전파: 입력을 밀어 예측을 얻는다
입력을 층에 차례로 통과시켜 최종 예측을 얻는 과정을 순전파(forward pass)라고 합니다. 데이터 N개를 한 번에 넣는다고 하면(행 하나가 샘플 하나), 은닉 4개짜리 이진 분류 신경망의 순전파는 이렇게 됩니다.
1
2
3
4
5
6
7
def sigmoid(z): return 1 / (1 + np.exp(-z))
# X: (N, 2) 입력 N개, 특성 2개
z1 = X @ W1 + b1 # 은닉층 가중합 W1: (2, 4), b1: (4,)
a1 = sigmoid(z1) # 은닉층 활성화 a1: (N, 4)
z2 = a1 @ W2 + b2 # 출력층 가중합 W2: (4, 1), b2: (1,)
a2 = sigmoid(z2) # 최종 예측 a2: (N, 1)
행렬의 모양(shape)만 맞으면 전체 신경망의 순전파가 이 몇 줄로 끝납니다. 다만 이 시점의 예측 a2는 엉망입니다. W1, W2를 무작위 값으로 초기화했기 때문입니다.
학습이란 이 가중치들을 예측이 정답에 가까워지도록 바꾸는 과정입니다. 그러려면 세 가지가 더 필요합니다. 지금 얼마나 틀렸는지를 재는 손실(3편), 그 손실을 줄이는 방향을 구하는 역전파(4편), 그리고 그 방향으로 가중치를 옮기는 최적화(5편)입니다. 이 편의 순전파가 그 출발점입니다.
정리
| 개념 | 한 줄 요약 |
|---|---|
| 선형 모델의 한계 | 초평면 하나로만 나눔 → XOR 같은 비선형 문제 못 풂 |
| 뉴런 | 입력의 가중합 + 편향, 그 뒤 활성화. a = f(w·x + b) |
| MLP | 뉴런을 층으로 쌓은 신경망. 층 연산은 행렬 곱 |
| 순전파 | 입력을 층 따라 밀어 예측을 얻음. 행렬 곱의 연쇄 |
| 학습의 재료 | 손실(3편) + 역전파(4편) + 최적화(5편) |
다음 편은 뉴런이 가중합 뒤에 꼭 씌우는 것, 활성화 함수입니다. 이것이 없으면 층을 아무리 쌓아도 소용없는 이유를 봅니다.