기울기 소실 문제
Backpropagation에서 chain rule로 인해 계속 곱을 할수록 너무 작아져서 gradient가 사라지는 문제가 일어난다.
sigmoid 함수는 1보다 작은 값으로 나오기 때문에 계속 Gradient가 작아지게된다.
1. ReLU(Rectified Linear Unit), ReLU 변형들 사용하기
시그모이드 함수를 이용하게 되면 절댓값이 큰 경우에 시그모이드 함수의 출력 값이 0 또는 1에 수렴하면서 기울기가 0에 가까워지게 된다. 따라서 역전파 과정이 제대로 이루어지지 않고 기울기가 점차 사라지는 문제가 일어나게 된다.
따라서 ReLU나 ReLU변형을 사용하여 이를 방지할 수 있다.
2. 가중치 초기화(Weight initialization)
가중치 초기화 방법을 다르게 해 주면, 기울기 소실 문제를 완화시킬 수 있다.
- 세이비어 초기화(Xavier Initialization)
- input 개수와 output 개수의 사이 값으로 Random하게 가중치를 주고 이를 input 갯수의 squrt로 나눈다
- 균등 분포와 정규분포를 이용하여 초기화하는 방식
- 이전 층의 뉴런 개수와 다음 층의 뉴런 개수를 사용하여 초기화
- 여러층의 기울기 분산 사이에 균형을 맞춰 특정 층의 분산이 너무 다르지 않도록 조정
- 시그모이드 함수나 하이퍼볼릭 탄젠트 함수와는 좋은 성능을 보이지만, ReLU와는 성능이 안 좋음
- He 초기화(He Initialization)
- input 개수와 output 개수의 사이 값으로 Random하게 가중치를 주고 이를 input 갯수의 sqrt/2로 나눈다
- 세이비어 초기화 방법과 같이 정규 분포와 균등 분포 두 가지 방법이 존재
- 세이비어 초기화와 다른 것은 다음 층의 뉴런의 수를 반영하지 않는 것
- ReLU와 궁합이 좋은 편
'DL Study' 카테고리의 다른 글
Recurrent Neural Network (0) | 2022.09.12 |
---|---|
Convolution Neural Network (0) | 2022.09.08 |
과적합 줄이기 (0) | 2022.09.06 |
Sigmoid Function(시그모이드함수) (0) | 2022.09.05 |
Backpropagation(역전파) (0) | 2022.09.02 |