목차
-
가중치 초기화란?
-
Zero Initialization (제로 초기화)
-
Xavier Initialization (자비에 초기화)
-
He 초기화(He initialization)
-
정리
1. 가중치 초기화란?
- 같은 모델을 훈련하더라도 가중치가 초기에 어떤 값을 가졌느냐에 따라서 모델의 훈련 결과가 달라지기도 한다.
- 다시 말해 가중치 초기화만 적절히 해줘도 기울기 소실 문제와 같은 문제를 완화시킬 수 있다.
2. Zero Initialization (제로 초기화)
여기서 의문..
Q) 가중치의 초깃값을 모두 0으로 설정하면 어떻게 될까?
- 결론적으로 말하면 가중치 초깃값을 0으로로 하면 학습이 올바로 이루어지지 않게 된다. (정확히는 가중치를 균일한 값으로 설정해서는 안된다)
그 이유는 :
- 오차역전파 계산시 모든 가중치의 값이 똑같이 갱신되기 때문이다. (해당그림에서는 0으로 같음)
- 그래서 가중치들은 같은 초깃값에서 시작하고 갱신을 거쳐도 여전히 같은 값을 유지하게된다.
- 이는 가중치를 여러개를 갖는 의미를 사라지게한다.
그림의 계산 과정을 보면 이해하는데 도움이 된다.

→ 따라서 우리는 가중치 초깃값을 무작위로 설정해야한다.!!
3. Xavier Initialization (자비에 초기화)
기본 아이디어
- Xavier Initialization의 기본 아이디어는 각 층의 입력과 출력의 분산을 균형 있게 유지하여, 신경망의 각 층에서 신호가 너무 커지거나 작아지지 않도록 하는 것이다.
- 이를 위해서 이전 layer의 뉴런 개수와 다음 layer의 뉴런 개수를 이용하여 가중치를 초기화한다.
수식
- Xavier Initialization에는 두 가지 방법이 있다.
- 정규 분포 (Gaussian distribution)와 균등 분포 (Uniform distribution)를 사용하는 방법이 있다.
1) 정규분포(Gaussian distribution):

2) 균등 분포(Uniform distribution):

정리
- Xavier Initialization는 여러 층의 기울기 분산 사이에 균형을 맞춰서 특정 층이 너무 주목을 받거나 다른 층이 뒤쳐지는 것을 막는다.
- Xavier Initialization는 시그모이드 함수나 하이퍼볼릭 탄젠트 함수와 같은 S자 형태인 활성화 함수와 함께 사용할 경우에는 좋은 성능을 보이지만,
- RELU 함수와 함께 사용할 경우에는 성능이 좋지 않다.
4. He 초기화(He initialization)
기본 아이디어
- ReLU 에 특화된 초기값이다. (Xavier Initialization에서는 ReLU 함수를 사용할때 비효율적)
- He 초기화는 Xavier Initialization과 다르게 다음층의 뉴런의 수를 반영하지 않고, 이전 layer의 뉴런수를 이용한다. ex) 앞 계층의 노드가 n개일때, 표준편차가 \sqrt{\frac{2}{n_{\text{in}}}} 정규분포를 사용한다.
수식
He 초기화는 가중치를 다음과 같은 방식으로 초기화한다.

정리
- 시그모이드 함수나 하이퍼볼릭탄젠트 함수를 사용할 경우에는 Xavier Initialization이 효율적이다.
- ReLU 계열 함수를 사용할 경우에는 He 초기화 방법이 효율적이다.
- ReLU + He 초기화 방법이 좀 더 보편적임.