신경망·연습 문제

Xavier (Glorot) Initialization

문제 설명PROBLEM

preview

Xavier (Glorot) Initialization

He init(86) 은 ReLU 용. 그 전에 제안된 Xavier/Glorot (2010) 은 tanh/sigmoid-v1 같은 포화 활성화에 맞춘 초기화:

WijN ⁣(0, 2fan_in+fan_out)W_{ij} \sim \mathcal{N}\!\left(0,\ \frac{2}{\text{fan\_in} + \text{fan\_out}}\right)

즉 표준편차 = 2/(fan_in+fan_out)\sqrt{2 / (\text{fan\_in} + \text{fan\_out})}.

He vs Xavier

std추천 활성
Xavier√(2 / (fan_in + fan_out))tanh, sigmoid-v1
He√(2 / fan_in)ReLU

Xavier 는 forward·backward 둘 다 variance를 유지하려는 타협치. He 는 ReLU가 절반을 죽이므로 forward 쪽만 본 더 큰 값.

과제

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

  • 반환: (fan_in, fan_out) 행렬.
  • rng.normal(0, sqrt(2/(fan_in + fan_out)), ...).

테스트 케이스

#이름검증
1shape
2평균 ≈ 0
3std ≈ √(2/(f_in+f_out))
4시드 재현성
5He 와 값 달라같은 seed 로 비교 시 크기 차이
개념 노트와 실수 포인트

신경망

  • 순전파 → 손실 → 역전파(연쇄법칙) → 갱신.
  • ⚠️ 행렬곱 차원: A(m×n) @ B(n×p) — 안쪽 차원이 같아야 함.
  • 비선형 활성화가 없으면 층을 쌓아도 선형. 가중치 초기화 중요.