딥러닝 신경망의 weight 초기화는 학습 동안의 수렴 속도와 최종 성능에 큰 영향을 미칠 수 있다. 잘못된 초기화는 학습의 불안정성이나 수렴하지 않는 현상을 초래할 수 있어서 초기화 방법은 신경망 학습에서 중요한 부분이라고 할 수 있다.
Zero Initialization
모든 가중치를 0으로 초기화한다. 이 방법은 실제로 사용하기에 적절하지 않다. 모든 뉴런이 동일한 출력을 생성하기 때문에 학습하는 동안 갱신이 되지 않는다. 대칭성 문제로 학습이 힘들지만 bias를 초기화하는데 사용할 수는 있다.
Random Initialization
가중치를 작은 랜덤 값으로 초기화한다. 너무 큰 값이나 너무 작은 값으로 초기화하면 학습이 제대로 되지 않을 수도 있다.
Xavier (Glorot) Initialization
가중치를 평균이 0이고 분산이 2/(nin + nout)인 정규 분포나 균등 분포로 초기화한다. 여기서 nin은 입력 뉴런 수, nout은 출력 뉴런 수이다. Xavier 초기화는 가중치를 특정한 분포에서 무작위로 초기화하되, 해당 분포의 범위를 입력과 출력의 연결 개수에 따라 조정한다고 할 수 있다. 활성화 함수로 시그모이드나 하이퍼볼릭 탄젠트를 사용할 때 주로 추천한다.
He Initialization
가중치를 평균이 0이고 분산이 2/nin인 정규 분포로 초기화한다. 가중치를 특정한 분포에서 무작위로 초기화하되, 해당 분포의 범위를 입력 뉴런의 개수에 따라 조정한다고 할 수 있다. 이 방법은 각 레이어를 통과할 때 출력의 분산이 입력의 분산과 동일하게 유지되도록 도와준다. ReLU 활성화 함수 및 그 변형들에 적합하다.
LeCun Initialization
가중치를 평균이 0이고 분산이 1/nin 인 정규 분포로 초기화한다. 시그모이드 활성화 함수나 하이퍼볼릭 탄젠트 활성화 함수에 적합하다.
Orthogonal Initialization
가중치 행렬의 행이 서로 직교하도록 초기화한다. RNN 같이 깊은 네트워크에서의 수렴 속도를 개선할 수 있다.
Sparse Initialization
가중치의 대부분을 0으로 설정하고, 나머지는 랜덤값으로 초기화한다. 이 방법은 일부 연결만을 활성화하면서 희소성을 강조한다.
실제로는 문제나 사용하는 모델의 구조, 활성화 함수 등에 따라 적절한 초기화 방법을 선택해야 한다. 초기화 방법이 모델 성능에 큰 영향을 미칠 수 있기 때문에 다양한 방법을 시도해보는 것이 좋다.
'Computer Vision' 카테고리의 다른 글
Self-Supervised Learning (0) | 2024.06.14 |
---|---|
수식 인식 BTTR 모델 (0) | 2024.01.09 |
MixNet 논문 리뷰 (Text Detection) (0) | 2023.09.10 |
ConvNext 논문 리뷰 (0) | 2023.08.17 |
CNN 모델 아키텍처 발전 과정 (0) | 2023.07.24 |