본문 바로가기
딥러닝 with Python

[개념정리] Layer Normalization

by CodeCrafter 2024. 2. 15.
반응형

 

 이번에 알아볼 개념은 RNN, Transformer 계열 처럼 순차적인 데이터를 다루는 구조에서 활용하는 Layer Normalization에 대해서 알아보겠습니다.

 

1. Layer Normalization이란

- Layer Normalization은 각 레이어의 입력을 정규화하여 학습 중에 파라미터가 빠르고 안정적으로 수렴하도록 해주는 방법을 말합니다. 

 

- 이는, 각 샘플 내에서 feature (또는 Channel)의 차원에 대해 정규화를 수행합니다. 즉, 한 샘플 내의 모든 feature를 통틀어서 평균과 분산을 계산하는 것을 말하는데요

 * Sequential 데이터의 경우 feature는 시간 축에 의해 변화되는 특정한 값을 나타내므로 정규화를 하는데 개념상 무리가 없습니다. 

 

2. Batch Normalization과 Layer Normalization

- 유사한 개념인 Batch Normalization과 비교를 통해 Layer Normalization에 대해서 알아보면 아래와 같습니다. 

 

 

- 즉, Batch Normalization의 경우 batch 내에서 모든 샘플들을 feature를 기준으로 Normalization을 하는 것을 말하는 반면

 

- Layer Normalization은, 한 샘플 내에서 모든 feature들의 값들을 Normalization 하는 것입니다.

 

- 그렇기에, 1개의 샘플만 있어서도 Layer Normalization은 가능 하지만, Batch Normalization은 제한되는 것입니다.(1개의 샘플에 대해 feature 단위로 Batch Normalization을 할 경우 모든 값이 0이 나오게 됨)

 

 

반응형

댓글