← 문제 목록/Residual MLP Block (ResNet 블록) [medium]
문제 해설

Residual MLP Block (ResNet 블록) [medium]

신경망 · medium

preview

Residual MLP Block [medium]

v1 2-layer MLP 를 깊게 쌓으면 vanishing gradient 로 학습 불가. ResNet (He et al. 2016) 의 해법: skip connection.

수식

y=x+W2ReLU(W1x+b1)+b2y = x + W_2 \cdot \text{ReLU}(W_1 x + b_1) + b_2

핵심: 입력 x 를 출력에 더함. W2W_2 가 0 에 가까우면 yxy \approx x — identity 를 기본으로 학습 가능.

왜 중요한가

  • Gradient 가 skip path 로 "shortcut" → vanishing 해결.
  • 1000+ 층 networks 학습 가능 (Deep ResNet).
  • 현대 architectures (Transformer, ViT, LLaMA) 가 모두 residual 블록 사용.

Shape 요구

  • X shape (N, D).
  • W1 shape (D, H), b1 (H,) — 확장.
  • W2 shape (H, D), b2 (D,) — 복원 (입력과 같은 차원).
  • 출력 shape (N, D).

D 가 일관되어야 skip x + ... 가능.

과제

함수 residual_block(X, W1, b1, W2, b2) 를 완성하세요.

  • 반환: (N, D) 출력.
  • 수식: X + ReLU(X @ W1 + b1) @ W2 + b2.

테스트 케이스

#이름검증
1shape = X.shape (skip 요건)
2W2=0, b2=0 → y = x (identity)residual 로 identity 복원
3X=0, b1=0 → y = b2
4skip 없는 v1 MLP 와 출력 다름 (일반적)
5벡터화 처리 (N=1 vs N>1 일관)
6gradient flow: d_y/d_x ≥ 1 방향skip 이 identity gradient 제공
7수치 미분 일치 (Jacobian 검증)
코드 작성
Loading...
실행 결과

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