2021. 5. 29. 06:09ㆍ기본 딥러닝
Internal Covariance Shift
ㅇ 학습에서 불안정화가 일어나는 이유를 'Internal Covariance Shift' 라고 주장하고 있는데, 이는 네트워크의 각 레이
어나 Activation 마다 입력값의 분산이 달라지는 현상을 뜻한다.
- Covariate Shift : 이전 레이어의 파라미터 변화로 인하여 현재 레이어의 입력의 분포가 바뀌는 현상
- Internal Covariate Shift : 레이어를 통과할 때 마다 Covariate Shift 가 일어나면서 입력의 분포가 약간씩 변하는 현상
Whitening
ㅇ 이 현상을 막기 위해서 간단하게 각 레이어의 입력의 분산을 평균 0, 표준편차 1인 입력값으로 정규화 시키는 방법을
생각해볼 수 있다. 이는 'Whitening' 이라고 일컫는데, 백색 잡음으로 생각하면 될 것 같다.
ㅇ 그러나 단순한 방법의 Whitening은 역전파와 무관하게 진행되기 때문에 특정 파라미터가 계속 커지는 상태로
Whitening이 진행되는 문제가 생김.
ㅇ 최적화가 안되는 문제 때문에 특정 변수가 계속 커지는 현사이 발생할 수 있다.
Batch Normalization
ㅇ 배치 정규화는 평균과 분산을 조정하는 과정이 별도의 과정으로 떼어진 것이 아니라, 신경망 안에 포함되어 학습 시
평균과 분산을 조정하는 과정 역시 같이 조절된다는 점이 단순 Whitening 과는 구별된다
ㅇ 즉, 각 레이어마다 정규화 하는 레이어를 두어, 변형된 분포가 나오지 않도록 조절하게 하는 것이 배치 정규화이다.
ㅇ 배치 정규화는 간단히 말하자면 미니배치의 평균과 분산을 이용해서 정규화 한 뒤에, scale 및 shift 를 감마(γ) 값, 베
타(β) 값을 통해 실행한다. 이 때 감마와 베타 값은 학습 가능한 변수이다. 즉, Backpropagation을 통해서 학습이 된다.
즉,
ㅇInternal Covariate Shift 문제로 인해 신경망이 깊어질 경우 학습이 어려웠던 문제점을 해결
ㅇgradient 의 스케일이나 초기 값에 대한 dependency 가 줄어들어 Large Learning Rate 를 설정할 수 있기 떄문에 결과
적으로 빠른 학습 가능함, 즉, 기존 방법에서 learning rate 를 높게 잡을 경우 gradient 가 vanish/explode 하거나 local
minima 에 빠지는 경향이 있었는데 이는 scale 때문이었으며, 배치 정규화를 사용할 경우 propagation 시 파라미터의
scale 에 영향을 받지 않게 되기 때문에 learning rate 를 높게 설정할 수 있는 것임
ㅇ regularization 효과가 있기 때문에 dropout 등의 기법을 사용하지 않아도 됨 (효과가 같기 때문)
'기본 딥러닝' 카테고리의 다른 글
Regularization과 Normalization (0) | 2021.05.29 |
---|---|
오버피팅 해결 방법 (0) | 2021.05.26 |
옵티마이저 (최적화 함수) (0) | 2021.05.10 |
활성화 함수 (0) | 2021.05.10 |
손실함수 (0) | 2021.05.08 |