Note
Gradient Vanishing & Exploding 본문
역전파 과정에서 입력층으로 갈수록 기울기가 점차적으로 작아지는 현상이 발생할 수 있다.
입력층에 가까워질수록 가중치 업데이트가 잘 이루어지지 않는 것을 기울기 소실 ( Gradient Vanishing ) 이라고 한다.
반대의 경우를 기울기 폭주 ( Exploding ) 라고한다.
1. ReLU와 Leaky ReLU
시그모이드 함수를 사용할 때, 역전파 과정에서 기울기가 점차 사라져 제대로 작동하지 않는 기울기 소실이 발생할 수 있다.
1) 은닉층의 활성화 함수로 시그모이드를 사용하지 않는다.
2) Leaky ReLU를 사용하면 모든 입력값에 대해 기울기가 0에 수렴하지 않는다.
2. 그래디언트 클리핑 ( Gradient Clipping )
기울기 값을 임계값이 넘지 않도록 잘라내어 임계치만큼 크기를 감소시키는 것.
3. 가중치 초기화 ( Weight initialization )
1) 세이비어 초기화
여러 층의 기울기 분산 사이에 균형을 맞춰서 특정 층에 집중되는 것을 막아준다.
시그모이드와 같은 S자 활성화 함수와 사용할 경우 좋은 성능을 보여주지만, ReLU와 사용할 경우 성능이 좋지 않다.
2) He 초기화
정규 분포와 균등 분포로 나뉘며, 다음 층의 뉴런 수를 반영하지 않는다.
ReLU 계열 함수와 사용할 경우 성능이 좋으며, ReLU + He 초기화가 보편적이다.
4. 배치 정규화 ( Batch Normalization )
학습 시 배치 단위의 평균과 분산을 활용하여 테스트할 때 저장해둔 평균과 분산으로 정규화하는 방법.
시그모이드와 같은 S자 활성화 함수를 사용하더라도 기울기 소실 문제가 개선
가중치 초기화에 덜 민감하며, 큰 학습률을 사용할 수 있어 학습 속도를 개선할 수 있다.
미니 배치마다 표준편차와 평균을 사용하여 드롭아웃과 같은 과적합 방지 효과도 있다.
미니 배치 크기에 의존적이므로 작은 미니 배치에서는 정규화의 효과가 매우 크므로 악영향을 줄 수 있다.
각 시점마다 다른 통계치를 가지는 RNN에 적용하기 어렵다는 단점이 있다.
'Machine Learning' 카테고리의 다른 글
퍼셉트론 ( Perceptron ) (0) | 2021.10.05 |
---|---|
json 파일 (0) | 2021.09.15 |
모델 과적합을 막는 방법 (2) | 2021.09.08 |
데이터 전처리 (0) | 2021.05.10 |
교차 검증 (0) | 2021.05.07 |