# Internal Covariate Shift

[DL] Batch Normalization
Internal Covariate Shift 1. Internal Covariate Shift란? Covariate shift (공변량 변화) : 입력 데이터의 분포가 학습할 때와 테스트 할 때 다르게 나타나는 현상 학습 데이터를 이용해 만든 모델이 테스트 데이터셋을 가지고 추론할 때 성능에 영향을 미칠 수 있음 Internal Covariate Shift : Covariate Shift가 Neural Network 내부에서 일어나는 현상 → 매 스텝마다 hidden layer에 들어오는 데이터 분포가 달라짐 layer의 수가 많아질수록 학습이 잘 되지

Batch -Normalization
Gradient Vanishing / Exploding Gradient Vanishing : Sigmoid Activation Function과 같이, Gradient값이 Back propagation이 되면서 소멸하는 문제를 말한다. _ Gradient Exploding_ : Gradient Vanishing과 반대로 Gradient 값이 너무 커져서 발산하는 것을 말한다.(Nand와 같은것) Solution Change Activation Function: Sigmoid Function을 ReLU function으로 바꾼것처럼 Activation 함수를 변경해서 문제를 해결하는 것을 말한다. Weight Initialization: He / Xavier Initializaion처럼 weight값을 섬세하게 초기화하여 문제의 발생을 막는 것을 말한다. Small Learning Rate : learning rate를 줄여서 explo

Batch Normalization에 대해서 알아보자
Summary 역할 각 레이어의 입력 feature의 분포를 re-centering & re-scaling 장점 → 경험적으로 높은 성능을 낸다고 널리 알려져 있음 & 이유에 대해서는 아직도 연구 진행중 Faster training (learning rate 를 더 높게 설정할 수 있음) Stable training (less vanishing & exploding gradients) Regularization (less overfitting, more generalized) 단점 큰 mini-batch size 필요 → Mini-batch가 전체 dataset과 비슷한 분포를 가져야함. RNN에서 사용 불가능 잘 동작하는 이유 아마도 Internal covariate shift를 제거했기 때문이다. 2018 논문: ICS때문은 아니다! 실험적, 수학적으로 증명