MultiHeadAttention은 Transformer의 중심이야
MultiHeadAttention은 시퀀스의 각 위치가 다른 모든 위치를 살펴 관련성을 정하게 해. 이 탐색을 여러 독립된 헤드에서 동시에 수행하므로 서로 다른 관계를 병렬로 배울 수 있어. num_heads는 학습할 Attention 패턴 수, key_dim은 각 헤드의 query와 key 공간 폭을 정해.
Query, key, value에 같은 텐서를 넘기면 시퀀스가 자신과 관계를 맺는 self-attention이고, key와 value에 다른 소스를 넘기면 인코더와 디코더를 잇는 cross-attention이 돼.
정규화는 깊은 모델의 수치를 안정시켜
정규화 레이어는 활성값의 분포를 다듬어 모델이 깊어져도 기울기가 터지거나 사라지는 문제를 줄여. 어느 축을 기준으로 삼는지에 따라 나뉘어.
| 레이어 | 정규화 단위 | 알맞은 곳 |
|---|---|---|
BatchNormalization | 배치의 여러 샘플 | CNN, 일반 학습 |
LayerNormalization | 샘플 안의 특징 | Transformer, RNN |
GroupNormalization | 채널 그룹 | 작은 배치 |
BatchNormalization은 배치 통계에 의존해 배치가 작거나 시퀀스 길이가 들쭉날쭉할 때 약해. LayerNormalization은 각 샘플 안에서 특징의 평균과 분산을 구하므로 배치가 1이어도 안정적이야. Transformer와 RNN에서 Attention·FFN 블록 앞(pre-norm)이나 뒤(post-norm)에 사용하는 이유지.