검색
← 모듈 로드맵

중간 점검: 딥러닝 기초 트랙 (문제 15개와 풀이)

강의 · 준전문가 · KAITABASE 정리

퍼셉트론 · 역전파 · 옵티마이저 · 정규화 · CNN · 전이 · 검출 · 분할 · ViT를 15문제로 점검

먼저 알아야 할 것

딥러닝 기초 트랙 수업역전파 · 연쇄 법칙합성곱 신경망옵티마이저

다루는 내용

딥러닝 기초 트랙 전체를 개념 · 계산 · 코드 읽기 문제 15개로 확인하는 중간 점검입니다. 퍼셉트론 AND, MLP 파라미터 수, 기울기 소실, 역전파 · 소프트맥스 기울기, 모멘텀 · Adam 첫 걸음 · AdamW, He 초기화, 드롭아웃 배율, BN · LN, 초기 손실 디버깅, 합성곱 크기, VGG · ResNet, IoU · ViT 토큰 · 전이 학습 코드를 단계별 풀이와 복습 링크로 다룹니다.

해설

중간 점검: 딥러닝 기초 트랙 (문제 15개와 풀이)

퍼셉트론에서 시작해 역전파 · 옵티마이저 · 초기화와 정규화 · 학습 디버깅 · 합성곱 신경망 · 전이 학습 · 검출 · 분할 · 비전 트랜스포머까지, 딥러닝 기초 트랙 전체를 문제 15개로 확인합니다. 계산 문제는 종이와 계산기로 풀 수 있게 작게 만들었고, 모든 답은 python으로 다시 계산해 확인했습니다. 풀이마다 다시 볼 수업을 링크해 두었습니다.

항목내용
트랙 · 수준딥러닝 기초 · 중급 (중간 점검)
문제 구성개념 5 · 계산 8 · 코드 읽기 2
걸리는 시간약 60~90분
먼저 끝낼 것딥러닝 기초 트랙의 수업들(아래 목록)

들어가기 전에

이 점검은 아래 수업을 차례로 마쳤다고 보고 냅니다.

푸는 법

  1. 풀이를 가리고 먼저 직접 풉니다. 계산 문제는 소수 셋째 자리까지면 충분합니다.
  2. 답을 맞혀 본 뒤, 틀린 문제는 풀이 아래 링크된 수업의 해당 절을 다시 읽습니다.
  3. 문제마다 1점, 15점 만점입니다. 점수별 다음 걸음은 맨 아래에 있습니다.
mermaid
flowchart LR
  A[문제 풀기] --> B[풀이로 채점]
  B --> C{틀린 문제?}
  C -- 있음 --> D[링크된 수업 다시 읽기]
  D --> A
  C -- 없음 --> E[다음 트랙: NLP · 트랜스포머]

문제

1. 퍼셉트론 (계산)

입력 x1,x2∈{0,1}x_1, x_2 \in \{0, 1\}, 가중치 w=(1,1)w = (1, 1), 편향 b=−1.5b = -1.5, 출력은 w⊤x+b>0w^\top x + b > 0이면 1, 아니면 0입니다. 이 퍼셉트론은 어떤 논리 함수인가요? 같은 방식으로 XOR을 만들 수 있나요?

풀이

x1x_1x2x_2x1+x2−1.5x_1 + x_2 - 1.5출력
00−1.50
01−0.50
10−0.50
110.51

AND입니다. XOR은 (0,1) · (1,0)만 1이라 직선 하나로 1과 0을 가를 수 없어(선형 분리 불가능) 단층 퍼셉트론으로는 만들 수 없습니다. 은닉층을 하나 두면 가능합니다. → 퍼셉트론, 다층 퍼셉트론

2. MLP 파라미터 수 (계산)

입력 784(28×28 펼침) → 은닉 256 → 출력 10인 완전 연결 신경망의 파라미터(가중치 + 편향)는 몇 개인가요?

풀이

784×256+256=200,960784 \times 256 + 256 = 200{,}960, 256×10+10=2,570256 \times 10 + 10 = 2{,}570, 합계 203,530개입니다. 층마다 (입력 × 출력 + 출력)으로 셉니다. → 다층 퍼셉트론

3. 기울기 소실 (계산 · 개념)

시그모이드 σ(z)\sigma(z)의 도함수 최댓값은 z=0z = 0일 때 0.25입니다. 시그모이드 층 10개를 지나는 역전파에서 (가중치를 1로 보고) 기울기에 곱해지는 값의 최댓값은? 이것이 ReLU를 많이 쓰는 이유와 어떻게 이어지나요?

풀이

0.2510≈9.54×10−70.25^{10} \approx 9.54 \times 10^{-7}입니다. 앞쪽 층에 도달하는 기울기가 거의 0이 되어 학습이 멈춥니다(기울기 소실). ReLU는 양수 구간 도함수가 1이라 이렇게 줄어들지 않습니다. → 다층 퍼셉트론, 초기화 · 정규화 · 규제

4. 역전파 손계산 (계산)

y=wx+by = wx + b, 손실 L=(y−t)2L = (y - t)^2이고 x=2x = 2, w=0.5w = 0.5, b=1b = 1, t=3t = 3입니다. LL, ∂L/∂w\partial L/\partial w, ∂L/∂b\partial L/\partial b는?

풀이

순전파: y=0.5×2+1=2y = 0.5 \times 2 + 1 = 2, L=(2−3)2=1L = (2 - 3)^2 = 1. 역전파(연쇄 법칙): ∂L/∂y=2(y−t)=−2\partial L/\partial y = 2(y - t) = -2, ∂L/∂w=−2×x=−4\partial L/\partial w = -2 \times x = -4, ∂L/∂b=−2×1=−2\partial L/\partial b = -2 \times 1 = -2. 기울기가 음수이므로 ww와 bb를 키우는 쪽이 손실을 줄입니다. → 역전파 손계산

5. 소프트맥스 + 교차 엔트로피의 기울기 (계산)

로짓 z=(2,1,0)z = (2, 1, 0), 정답 클래스 0입니다. 소프트맥스 확률, 손실, 로짓에 대한 기울기는?

풀이

p=ez/∑ez≈(0.665,0.245,0.090)p = e^z / \sum e^z \approx (0.665, 0.245, 0.090), 손실 =−ln⁡0.665≈0.408= -\ln 0.665 \approx 0.408. 소프트맥스와 교차 엔트로피를 묶으면 기울기는 p−yp - y이므로 (0.665−1,0.245,0.090)≈(−0.335,0.245,0.090)(0.665 - 1, 0.245, 0.090) \approx (-0.335, 0.245, 0.090)입니다. 정답 로짓은 올리고 나머지는 확률만큼 내리라는 뜻입니다. → 다층 퍼셉트론, 역전파 손계산

6. 모멘텀 (계산)

v←βv+gv \leftarrow \beta v + g, w←w−ηvw \leftarrow w - \eta v, β=0.9\beta = 0.9, η=0.1\eta = 0.1, 처음 v=0v = 0, w=0w = 0이고 기울기가 세 번 연속 g=1g = 1입니다. 세 걸음 뒤 vv와 ww는?

풀이

걸음vvww
11.0−0.1
21.9−0.29
32.71−0.561

같은 방향 기울기가 이어지면 속도 vv가 쌓여 걸음이 점점 커집니다(한없이 이어지면 1/(1−β)=101/(1-\beta) = 10배까지). → 옵티마이저와 학습률 스케줄

7. Adam의 첫 걸음 (계산)

Adam 기본값 α=0.001\alpha = 0.001, β1=0.9\beta_1 = 0.9, β2=0.999\beta_2 = 0.999, ϵ=10−8\epsilon = 10^{-8}에서 첫 기울기 g1=0.02g_1 = 0.02일 때 편향 보정 후 m^1\hat m_1, v^1\hat v_1과 첫 갱신 크기는?

풀이

m1=0.1×0.02=0.002m_1 = 0.1 \times 0.02 = 0.002, v1=0.001×0.0004=4×10−7v_1 = 0.001 \times 0.0004 = 4 \times 10^{-7}. 보정: m^1=0.002/(1−0.9)=0.02\hat m_1 = 0.002 / (1 - 0.9) = 0.02, v^1=4×10−7/(1−0.999)=0.0004\hat v_1 = 4 \times 10^{-7} / (1 - 0.999) = 0.0004. 갱신 크기 =0.001×0.02/(0.0004+10−8)≈0.001= 0.001 \times 0.02 / (\sqrt{0.0004} + 10^{-8}) \approx 0.001. 첫 걸음은 기울기 크기와 상관없이 거의 α\alpha입니다. 편향 보정이 없으면 m1,v1m_1, v_1이 0 쪽으로 치우쳐 첫 걸음들이 왜곡됩니다. → Adam

8. AdamW (개념)

"Adam에 L2 정규화를 손실에 더하는 것"과 "AdamW"는 무엇이 다른가요?

풀이

SGD에서는 L2 정규화와 가중치 감쇠가 같지만, Adam처럼 기울기를 적응적으로 나누는 방법에서는 손실에 더한 L2 항의 기울기도 함께 나뉘어 가중치마다 감쇠 세기가 달라집니다. AdamW(Loshchilov · Hutter, 2017)는 가중치 감쇠를 손실 기울기 갱신에서 떼어 내(decoupled) 가중치에 직접 w←w−ηλww \leftarrow w - \eta\lambda w처럼 적용합니다. → 옵티마이저와 학습률 스케줄

9. 초기화 (계산)

입력 512개, 출력 256개인 층을 ReLU와 함께 씁니다. He(카이밍) 정규 초기화와 Xavier(글로럿) 정규 초기화의 표준편차는? (PyTorch 식: He는 2/fan_in\sqrt{2}/\sqrt{\text{fan\_in}}, Xavier는 2/(fan_in+fan_out)\sqrt{2/(\text{fan\_in} + \text{fan\_out})})

풀이

He: 2/512=0.0625\sqrt{2/512} = 0.0625. Xavier: 2/768≈0.0510\sqrt{2/768} \approx 0.0510. ReLU는 입력의 절반가량을 0으로 만들어 분산을 줄이므로, He 초기화는 2를 곱해 층을 지나도 신호 크기가 유지되게 합니다. → 초기화 · 정규화 · 규제

10. 드롭아웃 (계산 · 코드 읽기)

PyTorch nn.Dropout(p=0.2)는 학습 때 남은 값에 몇을 곱하나요? 평가 때는 무엇을 하나요? 입력 (1,2,3,4,5)(1, 2, 3, 4, 5)에서 두 번째 값만 지워졌다면 출력은?

풀이

학습 때 남은 값에 1/(1−p)=1.251/(1 - p) = 1.25를 곱하고(기댓값 유지), 평가 때는 아무것도 하지 않는 항등 함수입니다. 출력은 (1.25,0,3.75,5,6.25)(1.25, 0, 3.75, 5, 6.25)입니다. 원 논문은 대신 시험 때 가중치에 남을 확률을 곱하는 방식으로 설명하는데, 두 방식은 기댓값이 같습니다. → 드롭아웃

11. 배치 정규화 vs 레이어 정규화 (개념)

(a) 각각 어느 방향으로 평균 · 분산을 구하나요? (b) 배치 정규화는 추론 때 무엇을 쓰나요? (c) 트랜스포머가 레이어 정규화를 쓰는 이유는?

풀이

(a) 배치 정규화는 같은 특징(채널)을 배치 안 여러 예제에 걸쳐, 레이어 정규화는 예제 하나 안의 모든 특징에 걸쳐 구합니다. (b) 학습하며 쌓은 이동 평균 · 이동 분산을 써서 출력이 입력에만 의존하게 합니다. (c) 레이어 정규화는 배치 크기 · 다른 예제와 무관하고 학습과 추론 계산이 같아, 길이가 제각각인 시퀀스와 작은 배치에 잘 맞습니다. → 배치 정규화, 레이어 정규화

12. 학습 디버깅 (개념)

새 모델이 학습되지 않습니다. 10클래스 분류에서 첫 손실이 7.5로 나옵니다. 무엇을 의심하고, 다음에 어떤 시험을 해 보나요?

풀이

초기 손실은 고르게 찍을 때의 −ln⁡(1/10)≈2.303-\ln(1/10) \approx 2.303 근처여야 합니다. 7.5면 마지막 층 초기화가 너무 크거나, 소프트맥스를 두 번 적용했거나, 라벨 · 입력 처리가 잘못됐을 수 있습니다. Karpathy의 레시피처럼 예제 몇 개(두 개까지도)로 된 한 배치를 과적합시켜 손실이 0 가까이 가는지 봅니다. 그것도 안 되면 모델 · 손실 · 데이터 연결에 버그가 있다는 뜻입니다. → 학습 디버깅 레시피, PyTorch CNN 프로젝트

13. 합성곱 출력 크기와 파라미터 (계산)

(a) 32×32 입력, 5×5 커널, 스트라이드 1, 패딩 0의 출력 크기는? (b) 224×224 입력, 7×7 커널, 스트라이드 2, 패딩 3이면? (c) 입력 채널 3 → 출력 채널 64, 3×3 합성곱의 파라미터 수는?

풀이

출력 크기 =⌊(n+2p−k)/s⌋+1= \lfloor (n + 2p - k)/s \rfloor + 1입니다. (a) (32−5)/1+1=28(32 - 5)/1 + 1 = 28. (b) ⌊(224+6−7)/2⌋+1=112\lfloor(224 + 6 - 7)/2\rfloor + 1 = 112. (c) 3×64×9+64=1,7923 \times 64 \times 9 + 64 = 1{,}792개. 합성곱은 위치마다 같은 가중치를 써서(가중치 공유) 입력 크기와 상관없이 파라미터 수가 같습니다. → 합성곱 신경망 기초

14. VGG와 ResNet (계산 · 개념)

(a) 채널 수가 모두 CC일 때 3×3 합성곱 두 층과 5×5 한 층의 수용 영역과 가중치 수(편향 제외)를 비교하세요. (b) ResNet 블록 출력이 F(x)+xF(x) + x인 것이 깊은 신경망 학습을 왜 쉽게 하나요?

풀이

(a) 둘 다 입력 기준 5×5를 봅니다. 가중치는 2×9C2=18C22 \times 9C^2 = 18C^2 대 25C225C^2으로 3×3 두 층이 적고, 사이에 비선형이 하나 더 들어갑니다(VGG의 논리; 논문은 3×3 세 층 27C227C^2 대 7×7 49C249C^2로 설명). (b) 블록이 "아무것도 안 하기"를 배우려면 F(x)=0F(x) = 0만 만들면 되어 층을 더해도 성능이 나빠지기 어렵고, 덧셈 경로로 기울기가 앞쪽 층까지 그대로 흐릅니다. → VGG, ResNet

15. 비전 과제 종합 (계산 · 코드 읽기)

(a) 상자 (0,0,10,10)(0, 0, 10, 10)과 (5,5,15,15)(5, 5, 15, 15)의 IoU와, 같은 겹침을 마스크로 볼 때의 Dice는? (b) ViT-B/16에 224×224 이미지를 넣으면 입력 토큰은 몇 개인가요? (c) 아래 코드는 무엇을 하나요?

python
for p in model.parameters():
    p.requires_grad = False
model.fc = nn.Linear(model.fc.in_features, 5)

풀이

(a) 겹침 5×5=255 \times 5 = 25, 합집합 100+100−25=175100 + 100 - 25 = 175, IoU =25/175≈0.143= 25/175 \approx 0.143. Dice =2×0.143/1.143=0.25= 2 \times 0.143 / 1.143 = 0.25(또는 2×25/2002 \times 25 / 200). (b) 패치 14×14=19614 \times 14 = 196개 + [class] 1개 = 197개. (c) 사전학습 몸통을 모두 고정하고, 마지막 층을 출력 5개짜리 새 선형층으로 바꿉니다(새 층은 requires_grad가 기본 True). 즉 특성 추출 방식의 전이 학습입니다. → 객체 검출, 이미지 분할, ViT · CLIP, 전이 학습

점수별 다음 걸음

점수다음 걸음
13~15점다음 트랙으로 넘어갑니다.
9~12점틀린 문제의 수업만 다시 읽고, 두 프로젝트(164 · 170) 중 하나를 바꿔 보기 과제까지 해 봅니다.
8점 이하4~7번(역전파 · 옵티마이저)이 흔들리면 역전파 손계산부터, 13~15번이 흔들리면 합성곱 신경망 기초부터 다시 봅니다.

용어 정리

용어쉬운 뜻
선형 분리 가능(linearly separable)직선(초평면) 하나로 두 클래스를 가를 수 있음
기울기 소실(vanishing gradient)역전파 중 기울기가 층마다 줄어 앞쪽이 학습되지 않음
편향 보정(bias correction)0에서 시작한 이동 평균의 치우침을 바로잡는 나눗셈
분리된 가중치 감쇠(decoupled weight decay)가중치 감쇠를 손실 기울기와 따로 적용
수용 영역(receptive field)출력 한 칸이 입력에서 보는 범위
특성 추출(feature extraction)사전학습 몸통을 고정하고 새 머리만 학습

다음에 볼 것

라이선스

이 문제와 풀이는 KAITABASE가 직접 만들었으며, 숫자는 모두 설명용입니다(답은 python으로 재확인). 하이퍼파라미터 기본값과 식은 각 원 논문(Adam · AdamW · VGG)과 PyTorch 문서(nn.init, nn.Dropout)에서 확인했습니다.

출처

AI 원리부터 이해하기 · 딥러닝 기초 모듈

딥러닝 기초 모듈 학습

이 글은 딥러닝 기초 모듈의 학습 자료입니다. 전체 29개 자료 중 29번째입니다.

AI 기초 과정은 현재 진도 저장을 지원하지 않습니다.

출처·원문

원문 보기

요약만

본문 자체 작성 · 참고 자료 D2L(CC BY-SA 4.0)