← 문제 목록/He Uniform Initialization
문제 해설

He Uniform Initialization

신경망 · easy

preview

He Uniform Initialization

86번 He Init (Normal) 은 가우시안 분포를 썼습니다. Uniform 버전 은 균일분포를 쓰되 같은 분산 이 되도록:

WijU(b,b),b=6fan_inW_{ij} \sim U(-b, b), \quad b = \sqrt{\frac{6}{\text{fan\_in}}}

6/n\sqrt{6/n} 인가?

균일분포 U(b,b)U(-b, b) 의 분산은: Var=(2b)212=b23\text{Var} = \frac{(2b)^2}{12} = \frac{b^2}{3}

He init 의 목표 분산은 2/n2/n. 그래서: b23=2n    b=6/n\frac{b^2}{3} = \frac{2}{n} \implies b = \sqrt{6/n}

Uniform vs Normal

특성He NormalHe Uniform
분포가우시안균일
꼬리길다 (큰 값 희박하게 등장)잘림
분산동일 2/n2/n동일 2/n2/n
실무거의 차이 없음거의 차이 없음

PyTorch 기본은 uniform (kaiming_uniform_), TensorFlow Keras 는 normal 이 더 일반적. 둘 다 통용됨.

과제

함수 he_uniform_init(fan_in, fan_out, seed) 를 완성하세요.

  • 반환: shape (fan_in, fan_out), 값 (b,b)\in (-b, b) with b=6/fan_inb = \sqrt{6 / \text{fan\_in}}.
  • rng = np.random.default_rng(seed); rng.uniform(-b, b, size=(fan_in, fan_out)).

테스트 케이스

#이름검증
1shape (fan_in, fan_out)
2평균 ≈ 0큰 크기
3범위 ⊂ (-b, b)b = √(6/fan_in)
4분산 ≈ 2/fan_in같은 분산
5시드 재현성
코드 작성
Loading...
실행 결과

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