딥러닝 이해하기
손실 함수를 최대우도로 만드는 조리법 · 깊이의 이점 · He 초기화를 숫자로 익히는 수업
먼저 알아야 할 것
다루는 내용
Prince의 『딥러닝 이해하기』 3~5장 · 7장을 바탕으로 한 자체 수업입니다. 정규분포 · 베르누이 · 범주형 분포에서 음의 로그우도를 최소화하면 MSE와 이진 · 다중 교차 엔트로피가 나오는 과정을 유도합니다. ReLU 얕은 망과 깊은 망이 만드는 선형 조각 수를 손으로 세어 보고, 가중치 분산을 2/D_h로 잡는 He 초기화와 기울기 소실 · 폭발을 계산합니다.
해설
딥러닝 이해하기 — 수업: 손실 함수는 어디서 오나 · 깊이 · 초기화
Simon Prince의 『딥러닝 이해하기(UDL)』 3~5장과 7장의 핵심 생각을 우리 말로 다시 짠 수업입니다. MSE와 교차 엔트로피를 "외워서 쓰는 공식"이 아니라 하나의 조리법(최대우도)에서 나오는 결과로 이해하고, 얕은 망 · 깊은 망이 함수를 만드는 방식, 가중치를 처음에 어떤 크기로 뿌려야 기울기가 사라지거나 폭발하지 않는지까지 숫자로 따라갑니다.
| 항목 | 내용 |
|---|---|
| 출처 | Understanding Deep Learning · Simon J. D. Prince · The MIT Press(2023) · 무료 PDF udlbook.github.io/udlbook |
| 트랙 · 수준 | 딥러닝 기초 · 중급 |
| 이 수업이 다루는 범위 | 3장 얕은 신경망, 4장 깊은 신경망, 5장 손실 함수, 7장 기울기와 초기화 |
| 형식 | 원문 번역이 아닌 자체 해설 · 숫자 예는 해설용으로 직접 만든 것 · 수식 표기는 책을 따름 |
들어가기 전에
- 딥러닝 문서로 배우기 (D2L) — 소프트맥스 · 교차 엔트로피 · MLP 학습 루프를 이미 써 봤다는 전제로 "왜 그 손실인가"를 묻습니다.
- 확률적 머신러닝 입문 — 최대우도 추정(MLE)과 확률 분포를 익혀 두면 5장 조리법이 바로 읽힙니다.
- 정보 이론 최소한: 엔트로피 · 교차 엔트로피 · KL 발산 — 음의 로그우도 최소화가 교차 엔트로피 최소화와 같다는 마지막 절에 필요합니다.
한눈에 보기
- 손실 함수를 만드는 하나의 조리법: "출력 분포를 고르고 → 모델이 그 분포의 모수를 예측하게 하고 → 음의 로그우도를 최소화" 를 익힙니다.
- 그 조리법에서 회귀는 최소제곱(MSE), 이진 분류는 이진 교차 엔트로피, 다중 분류는 다중 교차 엔트로피가 자동으로 나오는 것을 확인합니다.
- ReLU 얕은 망이 '꺾인 직선'을 만들고, 깊은 망은 같은 뉴런 수로 훨씬 많은 꺾임을 만든다는 것을 손으로 그려 봅니다.
- 가중치 분산을 (He 초기화)로 잡는 이유와, 잘못 잡으면 층마다 신호가 몇 배씩 줄거나 커지는지 계산합니다.
1. 얕은 신경망은 '꺾인 직선'을 만든다 (3장)
직관(해설용 비유): 짧은 자 여러 개를 이어 붙여 곡선을 흉내 내는 일입니다. 은닉 뉴런 하나가 '꺾이는 점' 하나를 만들고, 출력층이 각 자의 기울기를 정합니다.
단계:
- 입력 로 직선 를 은닉 단위 수만큼 만듭니다.
- 각 직선을 ReLU 에 통과시켜 음수 부분을 0으로 자릅니다.
- 결과에 가중치 를 곱해 더하고 을 더합니다.
- 결과는 꺾이는 점이 최대 은닉 단위 수만큼 있는 조각별 선형 함수입니다.
| 기호 | 뜻 |
|---|---|
| 입력과 출력(스칼라) | |
| 은닉 단위 수 | |
| 번째 은닉 단위의 절편 · 기울기 | |
| 출력층 편향 · 가중치 | |
| 활성화 함수(ReLU) |
숫자로 해 보기(해설용): , 은닉 단위를 로, 출력을 로 두면
| 0.5 | 1.5 | 2.5 | 3 | |
|---|---|---|---|---|
| 0.5 | 0.5 | 0 | 0 |
입니다. 까지 오르고, 에서 내려가고, 이후 평평한 '삼각 봉우리'가 됩니다. 이런 봉우리를 많이 더하면 어떤 연속 함수든 원하는 만큼 가깝게 흉내 낼 수 있다는 것이 보편 근사 정리(universal approximation theorem)의 직관입니다.
왜 이렇게 하나: 이 관점은 "신경망은 블랙박스"라는 막연함을 없앱니다. 은닉 단위 하나가 하는 일이 꺾임 하나로 눈에 보이기 때문에, 몇 개가 필요할지 · 왜 더 많으면 더 복잡한 함수를 만드는지 셀 수 있습니다.
2. 깊이가 주는 것: 접어서 곱으로 늘리기 (4장)
직관(해설용 비유): 종이를 반으로 접고 그 위에 가위질 한 번을 하면, 펼쳤을 때 자국이 두 개입니다. 한 번 더 접고 자르면 네 개, 또 접으면 여덟 개입니다. 깊은 망의 각 층은 앞 층이 만든 공간을 '접어서' 다음 층에 넘깁니다.
단계:
- 첫 층이 입력을 접습니다. 예: (ReLU 두 개).
- 다음 층은 접힌 결과에 다시 같은 모양의 함수를 씌웁니다.
- 앞 층의 꺾임 각각에서 뒤 층의 꺾임이 복제되어, 조각 수가 곱으로 늘어납니다.
숫자로 해 보기(해설용, 직접 만든 예):
| −2 | −1.5 | −1 | −0.5 | 0 | 0.5 | 1 | 1.5 | 2 | |
|---|---|---|---|---|---|---|---|---|---|
| 2 | 1.5 | 1 | 0.5 | 0 | 0.5 | 1 | 1.5 | 2 | |
| 1 | 0.5 | 0 | 0.5 | 1 | 0.5 | 0 | 0.5 | 1 | |
| 0.5 | 0 | 0.5 | 0 | 0.5 | 0 | 0.5 | 0 | 0.5 |
은 직선 조각 2개, 는 꺾임이 에 있어 4개, 은 꺾임이 7개라 8개입니다. 층마다 ReLU 2개, 모두 6개로 조각 8개를 만들었습니다. 얕은 망은 조각 8개를 만들려면 꺾임 7개, 즉 은닉 단위가 최소 7개 필요합니다. 층을 더 쌓으면 이 차이는 지수적으로 벌어집니다.
왜 이렇게 하나: 책 4장은 얕은 망을 합성하는 것(Composing networks)에서 출발해 깊은 망이 같은 파라미터 수로 훨씬 많은 선형 영역을 만들 수 있음을 설명합니다. 실제 데이터에 반복 구조가 많기 때문에 이 '접기'가 효율적으로 맞아떨어진다는 것이 깊이를 쓰는 이유 중 하나입니다. 다만 깊으면 학습이 어려워지는 문제가 생기는데, 그것이 4절의 초기화입니다.
3. 손실 함수의 조리법: 최대우도 (5장)
직관: 모델이 "정답 하나"를 뱉는 대신 "정답이 어디쯤 있을지에 대한 확률 분포"를 뱉는다고 생각합니다. 좋은 모델이란 실제 정답들에 높은 확률을 준 모델입니다. 그 확률을 최대로 만드는 것이 학습입니다.
단계(책 5장의 조리법을 요약):
- 정답 의 종류에 맞는 확률 분포를 고릅니다(실수 → 정규분포, 0/1 → 베르누이, 여러 범주 → 범주형).
- 신경망 가 그 분포의 모수 를 예측하게 합니다.
- 학습 데이터 전체의 우도 를 최대로 만드는 를 찾습니다.
- 곱은 다루기 어려우니 로그를 씌워 합으로 바꾸고, 부호를 바꿔 '최소화' 문제로 씁니다.
| 기호 | 뜻 |
|---|---|
| 번째 학습 예제의 입력과 정답 | |
| 학습 예제 수 | |
| 파라미터 를 가진 신경망의 출력 | |
| 정답이 나올 확률(밀도) | |
| 음의 로그우도(negative log-likelihood) — 손실 |
로그를 씌워도 최대가 되는 위치는 바뀌지 않고(로그는 증가 함수), 작은 확률을 여러 번 곱할 때의 아래넘침도 피할 수 있습니다. 예측할 때는 분포에서 가장 확률이 높은 값을 고릅니다.
3-1. 회귀 → 정규분포 → 최소제곱
정답이 실수라면 로 두고, 신경망이 평균 를 예측하게 합니다.
첫 항과 은 와 상관없는 상수이므로, 최소화할 것은 , 즉 최소제곱 손실만 남습니다.
숫자로 해 보기(해설용): 잔차 가 , 이라 합시다. 제곱합은 입니다. 음의 로그우도는 입니다. 차이는 상수 뿐이라, 어느 쪽을 줄여도 같은 에 도착합니다.
덤: 신경망이 까지 입력마다 예측하게 하면(책의 이분산 회귀), "이 예측은 얼마나 불확실한가"도 함께 배웁니다. MSE를 그냥 쓰면 이 선택지가 보이지 않습니다.
3-2. 이진 분류 → 베르누이 → 이진 교차 엔트로피
정답이 0/1이면 베르누이 분포 를 씁니다. 신경망 출력은 아무 실수나 될 수 있으니 시그모이드 로 에 넣어 로 씁니다.
숫자로 해 보기(해설용): 정답 1에 를 주면 손실 , 을 주면 입니다. 크게 틀린 쪽이 약 22배 비쌉니다.
3-3. 다중 분류 → 범주형 분포 → 다중 교차 엔트로피
개 범주는 인 범주형 분포를 쓰고, 소프트맥스로 를 만듭니다.
두 번째 꼴은 D2L 수업의 log-sum-exp와 같은 식입니다. 결국 우리가 쓰던 세 손실은 모두 "분포를 하나 고른 뒤의 음의 로그우도"였습니다.
3-4. 교차 엔트로피라는 이름의 이유
책은 같은 결론을 KL 발산(Kullback–Leibler divergence)으로도 보입니다. 데이터의 경험 분포 와 모델 분포 사이의 KL 발산을 최소화하면, 에만 관계된 항이 빠지고 , 즉 교차 엔트로피만 남습니다. 가 데이터 점마다 뾰족한 분포이므로 이것은 다시 음의 로그우도의 평균입니다. 그래서 "음의 로그우도 최소화 = 교차 엔트로피 최소화"입니다.
flowchart LR
Y[정답의 종류] --> D{분포 고르기}
D -->|실수| N[정규분포] --> M[최소제곱 MSE]
D -->|0 또는 1| B[베르누이 + 시그모이드] --> BC[이진 교차 엔트로피]
D -->|K개 범주| C[범주형 + 소프트맥스] --> CE[다중 교차 엔트로피]
M --> O[음의 로그우도 최소화]
BC --> O
CE --> O4. 기울기 소실 · 폭발과 초기화 (7장)
직관(해설용 비유): 전화 게임에서 한 사람이 들은 말을 늘 절반 크기로 전하면, 열 명을 거친 뒤엔 거의 안 들립니다. 늘 두 배로 외치면 열 명 뒤엔 귀가 찢어집니다. 층을 지날 때마다 신호의 분산이 일정 배율로 변하는데, 그 배율이 1에서 멀면 깊은 망은 학습이 안 됩니다. 역전파의 기울기도 같은 길을 거꾸로 지나므로 똑같이 줄거나 커집니다.
단계:
- 은닉층 개 단위의 출력 가 다음 층 가중치 를 거쳐 더해집니다.
- 가중치를 평균 0, 분산 로 뿌리면 다음 층 사전활성값 분산은 대략 입니다.
- ReLU는 입력의 절반(음수 쪽)을 0으로 만들어, 대칭 분포에서 가 앞 층 사전활성 분산의 절반이 됩니다.
- 그래서 층 하나를 지날 때 분산 배율은 입니다. 이것을 1로 맞추면 됩니다.
| 기호 | 뜻 |
|---|---|
| 앞 층 은닉 단위 수(들어오는 연결 수) | |
| 가중치를 뿌리는 분산 | |
| 앞 층 · 다음 층 사전활성값의 분산 | |
| ReLU가 절반을 0으로 만드는 효과 |
이것이 He 초기화입니다. 역전파 쪽에서 같은 논리를 쓰면 나가는 연결 수 로 가 나오고, 책은 두 층 크기가 다를 때 절충안으로 를 제시합니다.
숫자로 해 보기(해설용):
- 이면 , 표준편차 약 로 뿌립니다.
- 배율이 인 잘못된 초기화(예: 에 ReLU)라면 10층 뒤 분산은 , 50층 뒤엔 으로 사실상 0입니다(기울기 소실).
- 배율이 라면 10층 뒤 배로 커집니다(기울기 폭발).
- 시그모이드는 기울기 최댓값이 라, 가중치를 잘 맞춰도 10층에서 최대 배까지 줄 수 있습니다. ReLU가 깊은 망의 기본이 된 이유 중 하나입니다.
왜 이렇게 하나: 학습률을 아무리 조절해도 앞쪽 층 기울기가 이면 그 층은 사실상 고정됩니다. 초기화는 "학습이 시작될 수 있는 출발점"을 만드는 일입니다. 이후 배치 정규화 · 잔차 연결 같은 구조가 이 문제를 구조적으로 더 줄였습니다.
연습 문제
문제 1. 정답이 0 이상의 개수(예: 하루 방문자 수)라면 조리법상 어떤 분포를 고르는 게 자연스럽고, 신경망 출력에는 어떤 처리가 필요할까요? 풀이: 개수 데이터는 푸아송 분포가 자연스럽습니다. 모수 이어야 하므로 출력에 같은 양수 변환을 씌우고, 음의 로그우도를 손실로 씁니다(해설용 예).
문제 2. 3-1의 잔차가 , 일 때 제곱합과 음의 로그우도를 구하세요. 풀이: 제곱합 , 음의 로그우도 입니다.
문제 3. 들어오는 연결이 512개인 ReLU 층의 He 초기화 표준편차는? 풀이: , 표준편차 입니다.
문제 4. 2절의 '접기' 층을 하나 더 쌓으면(층당 ReLU 2개) 조각은 몇 개가 될 수 있나요? 풀이: 층마다 2배이므로 16개입니다. 얕은 망으로는 꺾임 15개, 은닉 단위 15개 이상이 필요합니다.
스스로 점검
- MSE 손실을 쓰는 것은 정답에 대해 어떤 가정을 한 것과 같나요?
- 답: 정답이 모델 예측을 평균으로 하고 분산이 일정한 정규분포를 따른다고 가정한 것과 같습니다.
- 음의 로그우도에 로그를 쓰는 두 가지 이유는?
- 답: 곱을 합으로 바꿔 미분 · 계산이 쉬워지고, 작은 확률을 여러 번 곱할 때의 아래넘침을 피합니다. 로그는 증가 함수라 최적점도 그대로입니다.
- He 초기화에서 분모가 , 분자가 2인 이유는?
- 답: 연결이 개 더해지며 분산이 배 커지는 것을 상쇄하고, ReLU가 절반을 0으로 만들어 줄어드는 을 2로 보정하기 위해서입니다.
용어 정리
| 용어 | 쉬운 뜻 |
|---|---|
| 조각별 선형 함수(piecewise linear) | 여러 직선 조각을 이어 붙인 함수 |
| 보편 근사 정리(universal approximation) | 은닉 단위가 충분하면 얕은 망도 연속 함수를 원하는 만큼 흉내 낼 수 있다는 결과 |
| 최대우도(maximum likelihood) | 관측된 데이터가 나올 확률을 가장 크게 하는 파라미터를 고르는 원리 |
| 음의 로그우도(NLL) | 우도에 로그를 씌우고 부호를 바꾼 값 — 최소화할 손실 |
| 베르누이 분포 | 0 또는 1만 나오는 분포, 모수 는 1이 나올 확률 |
| 범주형 분포(categorical) | 개 중 하나가 나오는 분포 |
| KL 발산 | 두 확률 분포가 얼마나 다른지 재는 양 |
| 기울기 소실 · 폭발 | 층을 지날수록 기울기가 0으로 줄거나 무한히 커지는 현상 |
| He 초기화 | ReLU 망에서 가중치 분산을 로 잡는 초기화 |
더 깊이 보려면
- 책 5장 손실 함수 — 이분산 회귀, 여러 출력, 원형 데이터(폰 미제스 분포) 같은 다른 분포의 예
- 책 6장 모델 맞추기 — SGD · 모멘텀 · Adam
- 책 7장 기울기와 초기화 — 역전파 유도와 순방향 · 역방향 초기화 분석
- 장별 노트북: 5_1 최소제곱 손실, 5_2 이진 교차 엔트로피, 5_3 다중 교차 엔트로피, 7_3 초기화(책 저장소 Notebooks 폴더)
다음에 볼 것
- 딥러닝 (Goodfellow) — 학습을 시작할 수 있게 됐으니, 과적합을 막는 정규화와 더 나은 최적화로 넘어갑니다.
- 잔차 학습으로 깊은 신경망 학습하기 (ResNet) — 초기화만으로는 부족했던 깊은 망 학습을 지름길 연결로 푼 논문입니다.
라이선스
원 책 PDF 판권면에 따르면 MIT Press에 독점 허락된 저작물이며 크리에이티브 커먼즈 CC BY-NC-ND(저작자표시 · 비영리 · 변경 금지) 조건입니다. 번역 · 변형이 허용되지 않으므로, 이 페이지는 책을 옮긴 것이 아니라 책의 개념을 바탕으로 새로 쓴 해설입니다. 수식 표기만 책을 따랐고 숫자 예는 모두 직접 만들었습니다. 책 저장소의 노트북 코드는 MIT 라이선스입니다.
출처
- 원문: https://udlbook.github.io/udlbook/ (Simon J. D. Prince, 2023)
- 5장 손실 함수 · 7장 초기화 식: 저자 저장소의 UDL_Equations.tex 확인(https://github.com/udlbook/udlbook)
- 장별 노트북 이름: 저장소 Notebooks/Chap04 · Chap05 · Chap07 폴더 확인
AI 원리부터 이해하기 · 딥러닝 기초 모듈
딥러닝 기초 모듈 학습
이 글은 딥러닝 기초 모듈의 학습 자료입니다. 전체 29개 자료 중 26번째입니다.
출처·원문
원문 보기요약만