← 문제 목록/Residual 2-layer MLP (ResNet 블록)
문제 해설

Residual 2-layer MLP (ResNet 블록)

신경망 · easy

preview

Residual 2-layer MLP (ResNet 블록)

84번 MLP Forwardskip connection 추가 — ResNet의 기본 블록:

Y=ReLU(XW1+b1)W2+b2+XY = \text{ReLU}(X W_1 + b_1) \, W_2 + b_2 + X

마지막에 입력 X 자체 를 더해줍니다. 조건: Din=DoutD_\text{in} = D_\text{out} (차원 일치).

왜 도움?

  • Gradient 문제 해결: 깊은 네트워크에서 gradient 가 0으로 죽거나 폭발하는 걸 skip 이 완화. Y/XI\partial Y / \partial X \supset I — 최악의 경우에도 identity 를 통과.
  • Identity 학습 용이: MLP 가 00 을 출력하면 Y=XY = X. 깊이를 쌓아도 성능이 쉽게 나빠지지 않음.
  • ResNet (He et al. 2015) → Transformer 블록까지 표준 패턴.

Pre/Post-norm 변형

최신 Transformer 는 종종: Y=X+MLP(LN(X))Y = X + \text{MLP}(\text{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.

테스트 케이스

#이름검증
1shape (N, D)
2W1=0, b1=0, b2=0 → Y=Xidentity shortcut
3W1=0, b1=0 → Y = b2 + X
4일반 forward = MLP(X) + X
5입력 X 의 gradient 는 I + MLP'수치 미분
코드 작성
Loading...
실행 결과

코드를 작성하고 Run 을 눌러보세요.