본문 바로가기
머신러닝딥러닝/딥러닝

Batch Normalization VS Layer Normalization

by orangecode 2023. 5. 18.
728x90

 

Normalization(정규화)이란?

Normalization(정규화)의 목적은 모든 데이터들의 스케일을 동일하게 만들어서 각 feature 값들이 동등한 중요도를 가지도록 하는 작업이다.

 

정규화 되지 않은 Un-normalization 그래프를 확인하면 value  값들의 범위가 0~20까지 분포되어 있는 걸 확인할 수 있다.

 

이를 정규화시켜 그래프로 나타내면 0~1사이의 값들로 일정한 분포를 가진 데이터로 변경해줄 수 있다.

Batch Normalization

Batch Normalization은 인공신경망을 학습할 때 각 layer에 들어가는 input data를 평균, 분산을 이용해 정규화하여 효율적인 학습을 할 수 있는 방법이다. Batch Normalization은 배치 차원에서 Layer의 activation을 정규화하여 내부 공변량을 줄이고 일반화하여 개선하는 방법이다.

 

Batch Normalization는 model layer 계층이 쌓여있을 때, 각 층의 활성화 함수를 통과하기 전에 Batch Normalization이 수행된다.

 

※공변량 변화란?

- 공변량 변화 : 훈련 데이터의 분포, 테스트 데이터 분포가 서로 다른 경우를 의미

- 내부 공변량 변화 : 신경망 layer 층 사이에서 발생하는 input data의 분포 변화를 의미

 

 

Batch Normalization 장단점

장점

-일반화를 개선하고 overfitting을 감소시킨다.

- 학습의 수렴속도를 높이고 가중치 초기화에 대해 강건해진다.

- 학습의 안정성을 향상시키고 기울기 소실 문제를 완화한다.

- 피드포워드 네트워크 모델(input - hidden - output 순서로 한방향으로 흐르는 인공신경망 모델, mnist 0~9 손글씨 분류 등)에는 성능과 안정성 개선에 뛰어나다

 

단점

- 미니배치 크기에 의존한다.

Batch Normalization은 batch size가 너무 작은 모델에서는 잘 동작하지 않는 단점이 있다. 

batch_size를 1로 지정했을 때, 분산크기는 0이되므로 작은 batch_size에서는 배치 정규화의 효과가 극단적으로 적용되어 train이 잘 되지 않는다.

 

- RNN Model에 적용하기 힘들다

sequence data를 다루는 RNN Model 에서는 Batch Normalization을 적용시키기 힘든데 각 시점(time step)마다 다른 데이터가 연속적으로 나오는 sequence 형태이기 때문에 배치 정규화를 적용시키기 어렵다. 그래서 주로 RNN 모델에서는 Layer Normalzation을 이용하여 정규화 작업을 수행한다. 

 

Layer Normalzation

layer Normalization은 batch Normalization이 가지고 있던 Batch에 대한 의존도를 제거하고 batch가 아닌 layer를 기반으로하여 Normalization을 수행하게 된다. 

 

그림에서 Batch Normalization은 feature 단위로 평균(mean)과 표준편차(std)를 계산해서 정규화를 실행한다.

특성의 개수가 6개이므로 6개의 평균과 6개의 표준편차를 계산하고, 평균과 표준편차를 이용하여 Batch Normalization을 실행한다.

 

반면에 Layer Normalization은 data sample 단위로 평균(mean)과 표준편차(std)를 계산해서 정규화를 실행한다.

특성의 개수와 상관없이 batch 내부의 데이터 개수가 3개이기 때문에, 3개의 데이터 샘플에 3개의 평균, 3개의 표준편차 값을 계산하여 Layer Normalization을 실행한다.

 

 

 

 

 

Layer Normalization 장단점

장점

- Batch Normalization은 작은 배치 크기에서 극단적 결과를 내는데 반해, 작은 batch size에서도 효과적인 이용이 가능

- sequence에 따른 고정길이 정규화로 batch normalization에 비해 RNN 모델에 더 효과적인 방법이다.

- 일반화 성능 향상이 가능하다

 

단점

- 추가 계산 및 메모리 오버헤디가 발새알 수 있다

- 반대로 피드포워드 네트워크 모델(input - hidden - output 순서로 한방향으로 흐르는 인공신경망 모델, mnist 0~9 손글씨 분류 등)에서는 Batch Normalization 만큼 잘 동작하지 않을 수 있다.

- learning_rate, 가중치 초기화 같은 하이퍼파라미터 조정에 민감할 수 있다.

 

 

 

RNN에서의 비교

실제로 질문에 포함된 빈칸에 대한 알맞는 단어를 예측하는 실험을 수행하였을 때에 대한 그래프이다.

 

LSTM, BN-LSTM, BN-everywhere, LN-LSTM 4가지 모델을 이용하여 실험했을 때 결과표인데, Layer Normalization을 이용한 LSTM 모델이 가장 좋은 성능을 나타낸 다는 점을 확인할 수 있다.

 

레퍼런스 

논문 주소 : https://arxiv.org/abs/1607.06450

그림 주소 : https://github.com/dsc-sookmyung/2021-DeepSleep-Paper-Review/blob/main/Week3/layernormalization.pdf

그림 주소 : http://dmqm.korea.ac.kr/activity/seminar/364

 

반응형

댓글