0. Reference
https://arxiv.org/abs/1607.06450
Layer Normalization
Training state-of-the-art, deep neural networks is computationally expensive. One way to reduce the training time is to normalize the activities of the neurons. A recently introduced technique called batch normalization uses the distribution of the summed
arxiv.org
1. Introduction
- DNN은 여러 분야 즉, CV나 NLP문제에 대해 좋은 성과를 보인다.
- 하지만, DNN은 학습하는데 많은 시간을 소요하게 된다.
- 그래서, 학습시간을 높이기 위해 Batch Normalization이 제안되었다.
cf) https://ceulkun04.tistory.com/121 참고
- 하지만, Batch Normalization은 RNN에서 recurrent neurons에 대한 summed input은 시퀀스의 길이에 따라 변하게 된다.
cf) summed input? : Affine Layer에서 weight와 input vector와의 inner product
- 따라서, Batch Normalization은 RNN에 적용하게 되면, 각 time-step에 대해 서로 다른 통계를 요구하게 된다.
- 이렇듯, Batch Normalization은 모든 Model에 대해서 사용하기엔 어려움이 있다.
- 이를 해결하고자 본 논문에선 "Layer Normalization"을 소개한다.
2. Background
- Feed-forward Neural Network는 Input x를 Output y로 변환하는 non-linear mapping(function)이라고 할 수 있다.
- Deep Feed-Forward Neural Network은 L번째 은닉층이 있을때, 다음과 같은 수식으로 설명 가능하다.
- f : activation function
- a : summed input
- w : weight
- b : bias
- h : input vector
- 여기서 이러한 Deep Learning의 문제점이 나오게 된다.
- 그 문제점은 특정 Layer의 가중치에 대한 Gradient가 이전 층의 Layer의 Output과 매우 Dependent하다라는 것이다.
- 즉, 이전층의 출력에 따라 분포가 쉽게 바뀐다라는 것을 의미한다.
- 이러한 현상을 "Covariate Shift"라고 하는데, 이러한 현상은 학습의 성능을 저하 시킨다.
- 이를 해결하고자 Batch Normalization이 나오게 되었다.(이에 대한 내용은 https://ceulkun04.tistory.com/121 참고)
- 이러한 Batch Normalizaition은 배치크기에 따라서 제약이 생기게 된다.
- mini batch를 작게해야하는 online learning 또는,
- RNN처럼 time-step에 따라 입력이 변하는 모델에 적용하는데 어려움이 생기게 된다.
3. Layer Normalization
- Batch Normalization의 단점을 극복하기 위해 Layer Normalization을 고려하게 되었다 한다.
- Layer을 통과하게 되면 Covariate shift 문제 때문에 다음 층의 Summed inputs을 변동을 크게 일으키게 된다.
- 특히, ReLU의 경우 Output이 큰 폭으로 변할 수 있기 때문에 Covariate Shift문제가 더 두드러 진다.
- 이를 해결하기 위해 Normalization을 해주면 되는데 다음과 같이 Normalization하게 된다.
- 여기서 H는 Hidden Layer에 있는 unit수를 의미한다.
- 기존의 Batch Normalization은 한 개의 mini batch내에 존재하는 모든 데이터에 대해 Normalization이 진행되었다면,
- Layer Normalization은 한개의 데이터를 Normalization하는 것과 같다.
- 기존의 Batch Normalization은 Batch size에 영향을 받았었지만,
- 해당 Layer Normalization은 Batch size에 영향을 받지 않게 된다. (Online Learning에 사용하기 적합)
3.1. Layer normalized RNN
- RNN은 NLP분야에서 자주 쓰이는 신경망의 종류이다.
- NLP을 처리할 때 서로 다른 training data가 서로 다른 문장 길이를 가지게 된다.
- 따라서 Batch Normalizaiton을 적용하기 어려워 진다.(mini batch 속 데이터들의 길이가 다르기 때문)
- 하지만 Layer Normalization은 mini-batch속 데이터 한개 한개마다 Normalization을 하기 때문에 이를 해결 가능하다.
- 기존의 RNN의 Recurrent Layer를 수식으로 나타내면 다음과 같다.
- 여기서 Layer Normalization이 적용된 Recurrent Layer을 수식으로 나타내면 다음과 같다.
- g : scaling ,b : shift
- RNN에서 Layer Normalization을 사용하는 것은 자전거를 탈 때 일정한 속도를 유지하도록 자동 속도 조절 장치를 다는 것과 비슷하다.
- 표준 RNN에서는 시간에 따라 속도가 점점 빨라지거나 느려지며 사고의 위험이 커질 수 있다. (Grdient Vanish, exploid)
- 하지만, Layer Normalization은 속도를 일정하게 유지하도록 제어하면서 안정적으로 목표 지점에 도달할 수 있도록 해준다.
4. Conclusion
- 이러한 Layer Normalization은 Feed Forward Network에선 Batch Normalization보다 효과가 감소할 수 있다고 한다.
- 하지만, RNN처럼 input의 길이가 달라질 수 있는 경우라면 효과적이다.
'Paper Review(논문 리뷰) > Deep Learning' 카테고리의 다른 글
[논문 리뷰] [Deep Learning] Machine Learning Students Overfit to Overfitting (1) | 2025.02.01 |
---|---|
[논문 리뷰] [Deep Learning] Group Normalization (1) | 2025.01.21 |
[논문 리뷰] [Deep Learning] An introduction to ROC analysis (0) | 2025.01.19 |
[논문 리뷰] [Deep Learning] Adam : A method for stochastic optimization (0) | 2025.01.10 |
[논문 리뷰] [Deep Learning] An overview of gradient descent optimization algorithms (0) | 2025.01.10 |