입력 X의 dimension이 B×D (단 B는 batch size, D는 feature dimension)이라고 할 때
batch normalization에서는 μ와 σ²를 batch에 대해서 계산해서 각각의 차원이 D가 되고
layer normalization에서는 feature dimension에 대해서 계산해서 각각 B 되는 거
그리고 정규화한 Xhat의 dimension은 입력이랑 같은 B×D차원이라는 건 이해했음
근데 이제 여기에 scale parameter γ랑 shift parameter β를 적용해야 하잖아. 얘네는 어떻게 적용되고 차원이 어떻게 되는 거야?
batch normalization은 수식이 명확한 소스가 많고 γ랑 β의 차원이 D인 것까지는 확인이 가능한데
layer normalization의 learnable parameter는 수식이 명확한 소스가 없더라
뭔가 직관적으로는 차원이 B여야 맞을 것 같은데 챗gpt한테는 칼 들고 협박하면서 물어 봐도 D라고 대답하고 ㅋㅋㅋㅋㅋ
혹시 명확한 소스가 있는 곳이 있을까?
-------------------------------------------
추가:
leimao.github.io/blog/Layer-Normalization/
D가 맞는 것 같네... 왜지??
https://pytorch.org/docs/stable/generated/torch.nn.LayerNorm.html#torch.nn.LayerNorm
정확한 소스고 자시고 걍 레이어 노멀 논문 자체에 명확하게 나와있는데 - dc App