
Residual 2-layer MLP (ResNet 블록)
84번 MLP Forward 에 skip connection 추가 — ResNet의 기본 블록:
Y=ReLU(XW1+b1)W2+b2+X
마지막에 입력 X 자체 를 더해줍니다. 조건: Din=Dout (차원 일치).
왜 도움?
- Gradient 문제 해결: 깊은 네트워크에서 gradient 가 0으로 죽거나 폭발하는 걸 skip 이 완화. ∂Y/∂X⊃I — 최악의 경우에도 identity 를 통과.
- Identity 학습 용이: MLP 가 0 을 출력하면 Y=X. 깊이를 쌓아도 성능이 쉽게 나빠지지 않음.
- ResNet (He et al. 2015) → Transformer 블록까지 표준 패턴.
Pre/Post-norm 변형
최신 Transformer 는 종종:
Y=X+MLP(LN(X))
이 문제는 가장 기본 형태 (post-ReLU, no LN, 출력에 + X).
과제
함수 residual_mlp(X, W1, b1, W2, b2) 를 완성하세요.
X shape (N, D), W1 (D, H), b1 (H,), W2 (H, D), b2 (D,).
- 반환:
(N, D) — MLP 결과 + X.
테스트 케이스
| # | 이름 | 검증 |
|---|
| 1 | shape (N, D) | |
| 2 | W1=0, b1=0, b2=0 → Y=X | identity shortcut |
| 3 | W1=0, b1=0 → Y = b2 + X | |
| 4 | 일반 forward = MLP(X) + X | |
| 5 | 입력 X 의 gradient 는 I + MLP' | 수치 미분 |