이번에 알아볼 개념은 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이 나오게 됨)
'딥러닝 with Python' 카테고리의 다른 글
[개념 정리] 비전 트랜스포머 / Vision Transformer(ViT) (2/2) (1) | 2024.02.17 |
---|---|
[개념 정리] 비전 트랜스포머 / Vision Transformer(ViT) (1/2) (1) | 2024.02.16 |
[개념정리] 멀티헤드 셀프 어텐션(Multi-Head Self-Attention) (0) | 2024.02.14 |
[개념정리] Self attention / 셀프 어텐션 (0) | 2024.02.13 |
[개념정리] 어텐션(Attention)이란 (1) | 2024.02.12 |
댓글