인프런 커뮤니티 질문&답변

HELLO님의 프로필 이미지
HELLO

작성한 질문수

딥러닝 이론 + PyTorch 실무 완전 정복

[이론] LayerNorm

Layer Norm이 언어모델에 적합한 이유

해결된 질문

작성

·

34

1

안녕하세요 선생님

강의 정말 잘 보고 있습니다.

Layer Normalization을 보는 중에 입력 데이터를 Normalization하는 것을 통해 scale이나 shift에 robust하게 되는 것까진 이해했습니다.

이런 효과가 왜 이미지보다 언어 모델에 더욱 효과적인지 이유를 알 수 있을까요?

답변 1

1

변정현님의 프로필 이미지
변정현
지식공유자

안녕하세요 좋은 질문 감사합니다!

여러 이유가 있지만 Batch Norm 대신에 Layer Norm을 NLP나 Sequence 데이터셋 모델링에서 사용하는 가장 큰 이유는 Batch Norm은 Batch을 묶어서 평균을 내는데 NLP에서는 문장의 길이가 가변적이기 때문입니다.

따라서 평균 혹은 표준편차를 계산할때, 분모로 나눠줘야 하는 N을 mini-batch을 구성하는 문장들 중에서 어떤 문장의 길이를 기준으로 설정할 것인가가 명확하지 않습니다.

부연 설명 드리자면, Normalization을 하기 위해서 평균 = sum(x_i) / N, 표준편차 = sqrt ( sum(x_i - 평균)^2 / N )에 대한 계산이 필요한데, Batch-Norm을 Mini-Batch을 통틀어서 평균과 표준편차를 계산합니다.

따라서 길이가 가장 긴 문장의 길이를 N으로 둬서 평균과 표준편차를 계산한다고 가정하면, 동일한 데이터 샘플에 대해서도 해당 데이터 샘플이 속해있는 mini-batch에서 가장 긴 문장의 길이 N이 다르면 계산되는 평균과 표준편차 값도 달라지는 문제가 있습니다.

하지만 Layer Norm은 각 데이터 샘플에 대해서 개별적으로 평균과 표준편차가 계산되므로 해당 문제를 겪지 않게 되는 셈입니다.

글로 이해하는데 헷갈릴 수 있으므로, 첨부한 이미지도 참고부탁드립니다!

IMG_2961.jpg.webp

 

HELLO님의 프로필 이미지
HELLO

작성한 질문수

질문하기