가중치를 따로 설정하지 않고 전부 0인 상태에서 시작하면 전체 뉴런들이 대칭성을 가지게 되어 variance가 약해지게 된다. 또한 gradient vanishing 현상이 심화될 수 있다
랜덤하게 가중치를 초기화하므로 위에서 언급한 대칭성이나 기울기 소실 문제는 피할 수 있다.
그리고 일반적으로 잘 동작한다
weight 값을 가우시안 분포에 따라 표준 편차를 1이나 0.01 정도로 설정하여 생성할 수 있다.
다만 이 경우 gradient descent 현상이 발생할 수 있다.
고정된 표준편차를 사용하지 않고, 이전 은닉층의 노드 수에 맞추어 변화시킨다.
이전 은닉층의 노드의 개수가 n개이고 현재 은닉층의 노드가 m개일 때, 2/√(n+m) 을 표준편차로 하는 정규분포로 가중치를 초기화 한다.
이 경우에는 표준편차를 2/√n 로 하여 초기화 한다.
layer 층이 깊어져도 다소 안정적으로 기울기가 유지된다.
# TensorFlow
tf.keras.initializers.HeNormal()
# PyTorch
torch.nn.init.kaiming_normal_()
일반적으로 활성화 함수가 sigmoid일 때는 Xavier 초기화
ReLU 류일 때는 He 초기화를 사용