다층 퍼셉트론: 은닉층 · 활성화 함수 · 손실 함수
XOR · 순전파 · 활성화 함수 비교 · 보편 근사 정리 · 출력층-손실 짝을 손계산으로 익히는 MLP 수업
먼저 알아야 할 것
다루는 내용
단층 퍼셉트론이 XOR을 못 푸는 이유와 은닉층 하나로 푸는 가중치를 직접 확인합니다. 다층 퍼셉트론의 순전파와 파라미터 수를 계산하고, 시그모이드 · tanh · ReLU · GELU의 값과 기울기를 비교합니다. 보편 근사 정리의 의미와 한계, 회귀 · 이진 · 다중 분류의 출력층과 손실 함수 짝을 정리합니다.
해설
다층 퍼셉트론: 은닉층 · 활성화 함수 · 손실 함수
퍼셉트론 하나는 직선 하나로만 나눌 수 있습니다. 층을 쌓고 층 사이에 비선형 활성화 함수를 넣으면 XOR 같은 문제도 풀 수 있고, 이론상 어떤 연속 함수든 원하는 만큼 가깝게 흉내 낼 수 있습니다. 이 수업은 다층 퍼셉트론(MLP)의 순전파를 손으로 계산하고, 활성화 함수와 "출력층 · 손실 함수 짝"을 고르는 법을 정리합니다.
| 항목 | 내용 |
|---|---|
| 참고 자료 | D2L '다층 퍼셉트론' 장 · d2l.ai/chapter_multilayer-perceptrons/mlp.html |
| 트랙 · 수준 | 딥러닝 기초 · 기초 |
| 이 수업의 범위 | XOR 문제, 은닉층과 순전파, 활성화 함수(시그모이드 · tanh · ReLU · GELU), 보편 근사 정리, 출력층과 손실 함수의 짝(회귀 · 이진 · 다중 분류), 파라미터 수 세기 |
| 먼저 알면 좋은 것 | 행렬 곱, 로지스틱 회귀 · 소프트맥스, 교차 엔트로피 |
들어가기 전에
- 퍼셉트론: 뇌의 정보 저장과 조직에 관한 확률 모델 — 가중합 + 임곗값으로 판단하는 단층 퍼셉트론을 알고 오면 됩니다.
- 로지스틱 회귀와 소프트맥스: 확률을 내는 분류기 — 소프트맥스와 교차 엔트로피는 MLP의 출력층에 그대로 쓰입니다.
한눈에 보기
- 단층 퍼셉트론이 XOR을 못 푸는 이유와, 은닉층 하나로 XOR을 푸는 가중치를 직접 확인합니다.
- MLP의 순전파 를 층마다 손으로 계산합니다.
- 활성화 함수 네 가지(시그모이드 · tanh · ReLU · GELU)의 값과 기울기를 숫자로 비교하고, 왜 지금은 ReLU 계열을 주로 쓰는지 압니다.
- 보편 근사 정리가 말하는 것과 말하지 않는 것을 구분합니다.
- 회귀 · 이진 분류 · 다중 분류마다 출력층과 손실 함수를 어떻게 짝짓는지 익힙니다.
1. 왜 층이 하나로는 부족한가: XOR
직관(해설용 비유): 단층 퍼셉트론은 종이 위에 자 하나를 대고 선을 긋는 것과 같습니다. 점들이 선 하나로 갈리면 풀 수 있고, 아니면 못 풉니다.
XOR(배타적 논리합)은 두 입력이 서로 다를 때만 1입니다.
| XOR | ||
|---|---|---|
| 0 | 0 | 0 |
| 0 | 1 | 1 |
| 1 | 0 | 1 |
| 1 | 1 | 0 |
(0,1)과 (1,0)은 한쪽, (0,0)과 (1,1)은 다른 쪽입니다. 대각선으로 마주 보는 두 쌍이라 직선 하나로는 가를 수 없습니다. 이것을 선형 분리 불가능(not linearly separable)이라고 합니다. Minsky와 Papert가 1969년 책 Perceptrons에서 단층 퍼셉트론의 이런 한계를 수학적으로 분석했고, 이 책은 한동안 신경망 연구가 위축된 배경으로 자주 언급됩니다.
은닉층 하나로 XOR 풀기
은닉 뉴런 두 개를 두고 활성화 함수로 ReLU 를 씁니다(가중치는 설명용으로 직접 고른 값입니다).
숫자로 해 보기(해설용, 코드로 확인):
| (0, 0) | 0 | 0 | 0 |
| (0, 1) | 1 | 0 | 1 |
| (1, 0) | 1 | 0 | 1 |
| (1, 1) | 2 | 1 | 0 |
은닉층이 입력을 라는 새 좌표로 옮기자, 출력층의 직선 하나()로 XOR이 정확히 나옵니다. 은닉층의 일은 "직선으로 가를 수 있는 표현"으로 입력을 바꾸는 것입니다.
왜 활성화 함수가 꼭 필요한가: ReLU를 빼면 입력 입력 처럼 결국 입력의 일차식 하나로 접힙니다. 선형 함수를 몇 번 합성해도 선형 함수이므로, 층을 아무리 쌓아도 단층과 같은 힘밖에 없습니다.
2. 다층 퍼셉트론의 순전파
단계
- 입력 벡터 에 가중치 행렬을 곱하고 편향을 더합니다(아핀 변환).
- 결과에 원소별로 활성화 함수를 적용해 은닉 표현 를 얻습니다.
- 1~2를 층 수만큼 반복합니다.
- 마지막 층은 문제에 맞는 출력 함수(항등 · 시그모이드 · 소프트맥스)를 거쳐 예측을 냅니다.
| 기호 | 뜻 | 모양(입력 , 은닉 , 클래스 ) |
|---|---|---|
| 입력 특성 벡터 | ||
| 1층 가중치 · 편향 | , | |
| 활성화 함수(원소별) | — | |
| 은닉 표현 | ||
| 출력층 가중치 · 편향 | , | |
| 로짓(logit, 소프트맥스 전 점수) |
실제 구현은 예제 여러 개를 행으로 쌓은 행렬 (배치 크기 )로 한 번에 계산합니다. 그때는 처럼 씁니다.
파라미터 수 세기
숫자로 해 보기: 28×28 흑백 이미지(입력 784), 은닉 128, 클래스 10인 MLP의 파라미터 수는
입니다. 층의 파라미터 수는 언제나 "입력 수 × 출력 수 + 출력 수(편향)"입니다. 이미지가 커지면 첫 층이 폭발적으로 커지는데, 이것이 합성곱 신경망이 등장한 이유 중 하나입니다.
3. 활성화 함수 비교
직관: 활성화 함수는 "신호를 얼마나 통과시킬지 정하는 밸브"입니다. 밸브 모양에 따라 표현력과 학습 속도가 달라집니다.
| 기호 | 뜻 |
|---|---|
| 시그모이드, 출력 범위 (0, 1) | |
| 쌍곡탄젠트, 출력 범위 (−1, 1), 0을 중심으로 대칭 | |
| 표준정규분포의 누적분포함수 — 가 정규분포 표본보다 클 확률 |
숫자로 해 보기(해설용, 코드로 계산해 넷째 자리에서 반올림):
| 시그모이드 | 시그모이드 기울기 | tanh | tanh 기울기 | ReLU | GELU | |
|---|---|---|---|---|---|---|
| −2 | 0.1192 | 0.1050 | −0.9640 | 0.0707 | 0 | −0.0455 |
| −1 | 0.2689 | 0.1966 | −0.7616 | 0.4200 | 0 | −0.1587 |
| 0 | 0.5 | 0.25 | 0 | 1 | 0 | 0 |
| 1 | 0.7311 | 0.1966 | 0.7616 | 0.4200 | 1 | 0.8413 |
| 2 | 0.8808 | 0.1050 | 0.9640 | 0.0707 | 2 | 1.9545 |
표에서 읽을 것
- 시그모이드의 기울기는 최대 0.25입니다. 역전파에서 층마다 이 값을 곱하므로, 10층이면 기울기가 최대 배로 줄어듭니다. 이것이 기울기 소실(vanishing gradient)입니다. 자세한 대처는 초기화 · 정규화 · 규제에서 봅니다.
- tanh는 0 중심이라 시그모이드보다 학습이 수월하지만, 가 크면 역시 기울기가 0에 가까워집니다(포화 saturation).
- ReLU는 양수 구간의 기울기가 항상 1이라 깊이 쌓아도 기울기가 덜 줄고, 계산이 비교 한 번이라 빠릅니다. 대신 음수 구간 기울기가 0이라, 입력이 계속 음수인 뉴런은 다시 살아나지 못하는 "죽은 ReLU" 문제가 생길 수 있습니다. Nair와 Hinton(ICML 2010)이 ReLU를 쓴 대표적 초기 연구입니다.
- GELU는 Hendrycks와 Gimpel(2016)이 제안했습니다. ReLU처럼 부호로 딱 자르지 않고 "입력값에 만큼 가중"합니다. 음수 근처에서 부드럽게 0으로 가며 약간 음수 값도 냅니다. BERT · GPT 계열 트랜스포머의 피드포워드 층에서 널리 쓰입니다.
왜 이렇게 고르나: 은닉층 기본값은 ReLU(합성곱망 · MLP) 또는 GELU(트랜스포머)입니다. 시그모이드는 은닉층보다 "0~1 확률이 필요한 출력층"이나 "문(gate)" 역할(LSTM)에 씁니다.
4. 보편 근사 정리: 할 수 있는 것과 없는 것
내용: 은닉층이 하나뿐이어도, 은닉 뉴런을 충분히 많이 두면 유계 구간 위의 연속 함수를 원하는 정확도로 근사할 수 있습니다. Cybenko(1989, Mathematics of Control, Signals and Systems)가 시그모이드형 활성화에 대해, Hornik(1991, Neural Networks)이 유계이고 상수가 아닌 활성화 함수 일반에 대해 이런 결과를 보였습니다.
직관(해설용 비유): ReLU 두 개를 빼면 "계단 하나"를 만들 수 있습니다. 계단을 촘촘히 많이 쌓으면 어떤 곡선이든 계단 모양으로 따라 그릴 수 있습니다. 1절의 XOR 해법도 ReLU 두 개로 "솟았다 내려오는" 모양을 만든 것입니다.
말하지 않는 것(오해 주의)
- 뉴런이 몇 개 필요한지는 말하지 않습니다. 함수에 따라 비현실적으로 많을 수 있습니다.
- 그 가중치를 경사 하강법으로 찾을 수 있다는 보장도 없습니다.
- 학습 데이터 밖에서 일반화된다는 보장도 없습니다.
실제로는 넓고 얕은 망보다 깊은 망이 같은 파라미터 수로 더 복잡한 함수를 효율적으로 표현하는 경우가 많아, 층을 쌓는 방향으로 발전했습니다.
5. 출력층과 손실 함수의 짝
직관: 출력층은 "무엇을 예측하나"에 맞춰 모양을 정하고, 손실 함수는 "예측이 얼마나 틀렸나"를 그 모양에 맞는 방식으로 잽니다. 둘을 짝으로 고르면 역전파 기울기가 깔끔해집니다.
| 문제 | 출력층 | 손실 함수 | 출력층 입력에 대한 기울기 |
|---|---|---|---|
| 회귀(값 예측) | 항등(그대로) | 평균제곱오차 MSE | |
| 이진 분류 | 시그모이드 1개 | 이진 교차 엔트로피 | |
| 다중 분류 | 소프트맥스 개 | 교차 엔트로피 |
숫자로 해 보기(해설용, 코드로 확인)
- 다중 분류: 로짓 이면 소프트맥스는 입니다. 정답이 0번이면 손실 , 정답이 2번이면 입니다. 정답이 0번일 때 로짓에 대한 기울기는 — 정답 로짓은 올리고 나머지는 내리라는 신호입니다.
- 이진 분류: 모델이 을 냈을 때 정답이 1이면 손실 , 정답이 0이면 입니다. 자신 있게 틀릴수록 벌점이 커집니다.
- 회귀: 예측 , 정답 이면 MSE 입니다.
왜 이렇게 짝짓나: 교차 엔트로피는 정보 이론의 교차 엔트로피 그대로이고, MSE는 "오차가 정규분포"라고 가정한 최대우도와 같습니다(최대우도 추정과 MAP). 시그모이드 출력에 MSE를 쓰면 확률이 0이나 1 근처로 포화될 때 기울기가 작아져 학습이 느려지지만, 교차 엔트로피와 짝지으면 기울기가 로 포화 영향을 받지 않습니다.
구현 팁: PyTorch의 nn.CrossEntropyLoss는 소프트맥스를 안에 포함하므로 모델 끝에 소프트맥스를 또 붙이지 말고 로짓을 그대로 넘깁니다. 이진 분류의 nn.BCEWithLogitsLoss도 시그모이드를 포함합니다. 수치적으로 더 안정적입니다.
flowchart LR
X[입력 x] --> A1[아핀 변환 W1x+b1]
A1 --> F1[활성화 ReLU/GELU]
F1 --> A2[아핀 변환 W2h+b2]
A2 --> O[로짓 o]
O --> S{문제 종류}
S -- 회귀 --> R[항등 + MSE]
S -- 이진 --> B[시그모이드 + 이진 교차 엔트로피]
S -- 다중 --> M[소프트맥스 + 교차 엔트로피]
R --> L[손실 → 역전파]
B --> L
M --> L6. 너비와 깊이, 어떻게 정하나
- 시작점: 표 형태 데이터라면 은닉층 1~3개, 층당 수십~수백 개 뉴런으로 시작해 검증 점수를 보며 늘립니다(경험칙이며 정답은 아닙니다).
- 너무 작으면 학습 손실도 높게 남고(과소적합), 너무 크면 학습 손실만 낮고 검증 손실이 오릅니다(과적합). 진단법은 모델 평가와 과적합과 같습니다.
- 표 형태 데이터에서는 MLP보다 트리 앙상블이 더 나은 경우가 많습니다. 이미지 · 소리 · 글처럼 구조가 있는 데이터에서 신경망이 강합니다.
연습 문제
1. 입력 , , , ReLU일 때 은닉 표현 는?
풀이: , ReLU를 거쳐 입니다.
2. 입력 100, 은닉 50, 은닉 50, 출력 3인 MLP의 파라미터 수는?
풀이: 입니다.
3. 1절의 XOR 망에서 ReLU를 모두 지우면 의 출력은?
풀이: , 이므로 으로 같지만, 에서 이 되어 로 틀립니다. 선형 함수 하나로는 네 점을 모두 맞힐 수 없습니다.
4. 3개 클래스에서 소프트맥스 출력이 이고 정답이 1번입니다. 손실과 로짓 기울기는?
풀이: 손실 , 기울기 입니다.
스스로 점검
- 활성화 함수 없이 층만 쌓으면 왜 소용이 없나요?
- 답: 선형 변환의 합성은 다시 선형 변환이라, 몇 층을 쌓아도 단층 선형 모델과 표현력이 같기 때문입니다.
- 보편 근사 정리가 있는데 왜 깊은 망을 쓰나요?
- 답: 정리는 "충분히 넓으면 가능하다"는 존재만 말할 뿐 필요한 크기 · 찾는 방법 · 일반화를 보장하지 않습니다. 실제로는 깊게 쌓는 편이 적은 파라미터로 복잡한 함수를 표현하고 학습하기 좋은 경우가 많습니다.
- 다중 분류에서 소프트맥스와 교차 엔트로피를 함께 쓰면 좋은 점은?
- 답: 로짓에 대한 기울기가 로 단순하고, 확률이 포화되어도 기울기가 사라지지 않습니다. 라이브러리는 둘을 합친 함수로 수치 안정성도 챙깁니다.
용어 정리
| 용어 | 쉬운 뜻 |
|---|---|
| 다층 퍼셉트론(MLP, multilayer perceptron) | 완전연결층을 여러 개 쌓고 사이에 활성화 함수를 넣은 신경망 |
| 은닉층(hidden layer) | 입력과 출력 사이의 층, 입력을 새 표현으로 바꿈 |
| 선형 분리 가능(linearly separable) | 직선(초평면) 하나로 두 클래스를 가를 수 있음 |
| 활성화 함수(activation function) | 층 출력에 원소별로 적용하는 비선형 함수 |
| ReLU | , 양수는 통과 · 음수는 0 |
| GELU | , 입력을 정규분포 누적확률만큼 가중 |
| 포화(saturation) | 입력이 커져도 출력이 거의 안 변해 기울기가 0에 가까운 상태 |
| 기울기 소실(vanishing gradient) | 역전파에서 기울기가 층마다 작아져 앞층이 학습되지 않는 현상 |
| 보편 근사 정리(universal approximation theorem) | 은닉층 하나로도 연속 함수를 원하는 만큼 근사할 수 있다는 정리 |
| 로짓(logit) | 소프트맥스 · 시그모이드 전의 점수 |
| 순전파(forward pass) | 입력에서 출력까지 차례로 계산하는 과정 |
더 깊이 보려면
D2L '다층 퍼셉트론' 장은 다층 퍼셉트론 · 구현 · 순전파 · 역전파 · 계산 그래프 · 수치 안정성과 초기화 · 딥러닝의 일반화 · 드롭아웃 · 캐글 집값 예측 실습 순서로 이어집니다. 보편 근사 정리의 직관은 신경망과 딥러닝(Nielsen) 4장의 시각적 증명이 특히 쉽습니다.
다음에 볼 것
- 역전파를 계산 그래프로 손계산하기 — 이 수업의 순전파를 거꾸로 따라가며 기울기를 계산합니다.
- 오차 역전파로 표현 학습하기 — 은닉층을 학습시키는 방법을 처음 널리 알린 1986년 논문입니다.
라이선스
이 글은 원문 번역이 아니라 KAITABASE가 직접 쓴 해설이며, XOR 가중치와 숫자 예는 모두 설명용으로 만든 것입니다(값은 Python으로 다시 계산해 확인). 참고 자료 D2L은 CC BY-SA 4.0입니다.
출처
- 참고: https://d2l.ai/chapter_multilayer-perceptrons/mlp.html (D2L 다층 퍼셉트론)
- Hendrycks · Gimpel, Gaussian Error Linear Units (GELUs), 2016: https://arxiv.org/abs/1606.08415
- Cybenko, Approximation by superpositions of a sigmoidal function, Mathematics of Control, Signals and Systems 2(4), 1989 (DOI 10.1007/BF02551274)
- Hornik, Approximation capabilities of multilayer feedforward networks, Neural Networks 4, 1991
- Nair · Hinton, Rectified Linear Units Improve Restricted Boltzmann Machines, ICML 2010
- PyTorch 문서 CrossEntropyLoss · BCEWithLogitsLoss: https://docs.pytorch.org/docs/stable/nn.html
AI 원리부터 이해하기 · 딥러닝 기초 모듈
딥러닝 기초 모듈 학습
이 글은 딥러닝 기초 모듈의 학습 자료입니다. 전체 29개 자료 중 2번째입니다.
출처·원문
원문 보기요약만