코딩 및 기타

LayerNorm , AdaLN이란

정지홍 2026. 1. 5. 15:06

LayerNorm

  • LayerNorm은 딥러닝에서 각 토큰(또는 각 샘플)의 feature 차원(dimension) 방향으로 평균과 분산을 맞춰서(정규화해서) 학습을 안정화하는 기법이다.
  • Transformer에서 거의 표준처럼 쓰이고, 특히 배치 크기시퀀스 길이가 바뀌어도 동작이 깔끔한 편이라 많이 사용한다.
  • 수식적 정의
    • 1. 입력 벡터 x는 d차원이라고 하자. ( transformer에서는 "한 토큰의 hidden vector"라고 생각하면 됨 )
    • 2. feature차원에 대해서 평균/분산을 계산한다.
    • 3. 그리고 정규화를 한다.
    • 4. affine변환을 적용한다.
      대부분의 LayerNorm은 마지막에 학습 가능한 scale / shift를 붙인다.
      • scale은 feature마다 곱해지는 것. (γ )
      • shift는 feature마다 더해지는 바이어스다. ( β )
      • 정규화만 하면 “항상 평균 0, 분산 1”로 고정되어 표현력이 줄어들 수 있는데,
        γ,β 덕분에 모델이 “필요하면 다시 스케일/이동”을 학습할 수 있다.
  • “어디를” 정규화하나? (차원 관점)
    • transformer텐서는 보통 B*T*d차원이라고 하면.....
      LayerNorm은 각 ( b , t )위치마다, d방향으로만 평균/분산을 낸다.... 
      • 즉,  토큰끼리 섞이지 않음 (t끼리 평균 내지 않음). 그리고 배치끼리도 섞이지 않음 (b끼리 평균 내지 않음)
      • B : batch size
      • T : sequence length
      • d : hidden size
      • 여기 그림 참고 ( https://docon.tistory.com/22 )
  • 왜 이것이 학습을 안정화하나?
    • (1) 폭주/소실 완화
      • 레이어를 여러 개 쌓으면 활성값의 크기가 커지거나 작아질 수 있는데, LN은 이를 완화한다.
    •  (2) 최적화가 쉬워짐
      • 입력 스케일이 매번 달라지면 같은 학습률이라도 업데이트가 들쑥날쑥해지는데, LN은 스케일을 정돈해줘서 SGD/Adam 같은 옵티마이저가 일하기 좋아진다.
    • (3) residual 연결과 궁합
      • Transformer는 residual이 핵심인데, residual은 “원 신호 + 변형 신호”를 더하기 때문에 스케일 관리가 중요하다. LN은 그 스케일 관리를 도와준다.
  • ==> LayerNorm은 “각 토큰의 hidden feature들을 평균 0, 분산 1로 정돈한 뒤(필요하면), 다시 학습 가능한 스케일/바이어스를 붙이는 정규화”이고, Transformer 학습 안정성의 핵심 부분이다.
  • 비유를 “단어 토큰”으로 하면 "I am a boy"에서 I 위치(첫 번째 토큰)의 벡터를 따로 정규화한다고 보면 된다.

 


AdaLN이란? (Adaptive Layer Normalization)

  • AdaLN(Adaptive Layer Normalization)은 LayerNorm의 “affine(스케일γ /시프트β )” 파라미터를 고정 학습값으로 두지 않고, 외부 조건(condition)으로부터 매번 생성해서 적용하는 방식이다.

  • 확산모델(특히 DiT: Diffusion Transformer)에서는 조건이 보통 diffusion timestep 임베딩 + (클래스/텍스트 등) 조건 임베딩이고, 이 조건이 매 블록마다 특징을 “조절(modulation)”한다.

'코딩 및 기타' 카테고리의 다른 글

multi-head attention과 cross-attention , self-attention차이  (0) 2026.01.06
attention이란  (0) 2026.01.02
world model이란  (1) 2025.12.31
학교 복도 ynet 결과  (0) 2025.11.20
ynet 작업 1  (0) 2025.11.18