0. Reference
https://arxiv.org/abs/1607.06450
1. Introduction
딥 뉴럴 네트워크 (DNN)은 이미지 인식과 음성 처리 같은 지도 학습 (supervised learning)에서 뛰어난 성능을 보여줬다.
학습 속도를 높이기 위해 병렬적으로 훈련시키는 방법이 사용된다. 하지만 이 방법은 통신량이 많아지고 병렬화 정도가 증가할 수록 성능 개선 효과가 감소한다는 단점이 있다.
학습 과정을 간소화하기 위해 배치 정규화 (Batch Normalization)이 제안되었다. 이는 입력 값을 평균 (mean)과 표준편차 (standard deviation)로 정규화(normalization)하여 훈련 시간을 단축시킨다.
배치 정규화는 순환 신경망 (Recurrent Neural Networks, RNN)에서 입력 값의 통계가 시퀀스 길이에 달라지므로 각 시점에서 다른 통계를 요구하는 단점이 있다.
이러한 문제를 해결하기 위해 **Layer Normalization(층 정규화)** 라는 새로운 정규화 방법을 제안한다.
2. Background
피드포워드 뉴럴 네트워크 (feed-forward neural network) :
입력 패턴 x를 출력 벡터 y로 변환하는 비선형 매핑
a : 합산 입력 벡터 / W : 가중치 행렬 / h : 이전 층에 들어오는 입력 / f(⋅) : 비선형 함수 / b : 편향 매개변수
딥러닝의 문제 중 하나는 한 층의 가중치에 대한 그래디언트가 이전 층 뉴런 출력에 크게 의존한다.
이러한 공변 변화 (covariate shift)를 줄이기 위해 배치정규화가 제안되었다.
위 식에서 나타는 기대값을 실제 학습 데이터에서 정확히 계산하는 것은 비현실적이다.
현재 가중치 집합으로 전체 데이터를 사용해 순전파를 수행해야 하기 때문이다.
-> 평균과 분산은 미니배치 (mini-batch)의 샘플 데이터를 사용하여 추정된다.
이로 인해 배치 정규화는 순환 신경망 (RNN)과 같이 미니배치 크기를 작게 가져가야 하는 상황에서 적용하기 힘들다.
3. Layer Normalization
공변 변화 문제는 레이어의 합산 입력값들의 평균과 분산을 고정하면 완화할 수 있다.
이를 위해 Layer Normalization은 다음 수식으로 정규화한다.
1. 평균 (µ)
H는 Hideen Layer에 있는 unit 개수이다.
2. 분산(σ)
Layer normalization은 레이어의 모든 유닛이 동일한 정규화 값을 가진다.
Batch Noramlization은 미니배치 크기에 의존적이었지만, 미니배치 크기와 무관하게 작동한다.
3.1 Layer normalized recurrent neural networks
Sequence-to-Sequence 모델 : 한 시퀀스를 다른 시퀀스로 변환하는 작업
- 자연어 처리(NLP)에서 순차적 예측 문제를 해결하기 위해 재귀 신경망(RNN)을 활용한다.
자연어 처리 과정에서 문장 길이가 훈련 데이터마다 다를 수도 있다.
- RNN은 같은 가중치를 모든 시점에서 사용하기 때문에 이러한 문제를 해결할 수 있다.
RNN의 합산 입력값 계산은 위와 같이 계산한다.
Layer Normalization을 적용한 은닉 상태는 위와 같이 계산한다.
일반적인 RNN에서는 합산 입력값의 평균 크기가 시점마다 커지거나 작아져,
exploding gradients 또는 vanishing gradients 문제가 발생할 수 있다.
Layer Noramlization은 합산 입력값의 rescaling에 불변성을 가지므로, 더 안정적인 은닉 상태를 제공한다.