PyTorch에서의 Convolution & Linear Layer 초기화

딥러닝에서 신경망의 성능과 학습 속도를 좌우하는 중요한 요소 중 하나는 초기화 방법입니다. 특히 nn.Conv* 계열과 nn.Linear 레이어에서 기본적으로 Kaiming(He) 초기화가 사용되며, 이는 ReLU 계열 활성화 함수와 잘 어울립니다.


1. Convolution Layer

  • 기본적으로 Kaiming Uniform 초기화 사용
  • 입력 채널 수와 커널 사이즈를 반영하여 가중치 초기화
  • 편향이 있으면 0으로 초기화
init.kaiming_normal_(conv.weight, mode='fan_in', nonlinearity='relu')
init.zeros_(conv.bias)

2. Linear Layer

  • 마찬가지로 Kaiming Uniform 초기화 사용
  • 입력 노드 수에 따라 가중치 분산 조절
  • 편향은 0 또는 균등 분포로 초기화
init.kaiming_normal_(linear.weight, nonlinearity='relu')
init.zeros_(linear.bias)

3. PyTorch 기본 설정

  • reset_parameters() 메서드 내부에서 자동 적용됨
  • nn.init.kaiming_uniform_ 함수로 초기화

4. 요약 표

레이어 타입기본 초기화 방법편향 초기화
Conv LayerKaiming Uniform (He)0
Linear LayerKaiming Uniform (He)0 또는 Uniform

5. He 발음은?

  • 영어식 발음: /hiː/ → 한국어로는 **“히”**라고 부르며 자연스러움
  • "Kaiming He"는 연구자의 이름에서 유래
profile
AI developer

0개의 댓글