top of page

[딥러닝] Batch Normalization & Layer Normalization

  • 작성자 사진: Minwu Kim
    Minwu Kim
  • 2024년 4월 1일
  • 2분 분량

대략적인 순서를 이렇게 잡아가도록 하자:

첫째로, BN의 장점, 그리고 알고리즘이 어떻게 돌아가는지 두괄식으로 결론부터 얘기를 해본다.

둘째로, 왜 이런 설계를 했는지, 혹은 이 알고리즘을 이렇게 짠 이유가 무엇인지를 하나 하나 살펴보도록 한다.


1.Batch Normalization의 장점

  1. 더 큰 learning rate 사용 가능

  2. Weights 초기값 설정에 덜 민감해짐

  3. Sigmoid나 hyperbolic 탄젠트에도 덜 민감해짐.

  4. Local minima에 빠지지 않음


2. Batch normalization 알고리즘

Batch normalization은 weighted sum과 activation 사이에 normalization을 실행시켜주는 절차이다. Mini-batch마다 weighted sum에 대해 표준정규분포로 정규화를 시켜준 후, 다시 gamma와 beta로 scale and shift를 해준다. 직관적인 비유를 하자면, 데이터들을 모아놓고 다시 뿌린다고 보면 될 것 같다.



3. Batch Normalization의 이유: internal covariate shift

이렇게 하는 이유는, 2015에 발표된 논문에 따르면, internal covariate shift를 해결하기 위함이라고 한다.


Covariate shift란, training set과 test set간에 분포의 차이가 있다는 것을 의미한다. 예를 들어서, 고양이와 강아지를 구별하는 분류기를 학습시킨다고 해보자. 학습시에 고양이를 노르웨이 숲 종의 고양이만 집어넣었다고 해보자. 하지만 실제 테스트 시에 페르시안 고양이나 스핑스크 고양이가 들어왔다면, 분류기는 잘 돌아가지 못 할 수도 있다. 이런 경우를 covariate shift라고 의미한다.


Internal covariate shift 같은 경우, weights가 변경이 되며 데이터의 분포가 달라지는 현상을 의미한다. 이를 조정하기 위해 정규화를 하는 것이다.


4. Scale and Shift의 이유


Sigmoid의 경우를 살펴보자. Sigmoid가 활성화 함수일 경우, 양 끝단에서는 gradient vanishing 현상이 벌어진다. 하지만 N~(0,1)로 정규화를 한다면 이러한 문제는 크게 해결이 된다.


문제는, 모든 점들을 이렇게 표준정규화를 진행한다면, 해당 구간은 거의 linear하다는 문제가 있다. 이런 경우 해당 뉴럴네트워크는 non-linearity가 없는 경우가 일어나게 된다.


그래서 진행을 하는 것이 scale and shift다. 즉, 데이터를 표준정규분포로 정규화 한 후, 다시 N~(beta, gamma^2)로 뿌려주는 것이다. 여기서 beta와 gamma 미분 가능한 선형적인 파라미터이다. 즉, scale and shift는 데이터를 어떻게 뿌릴지 모델이 직접 학습하도록 하는 것이다. 참고로, BN을 실행할 경우 beta가 있기 때문에 bias는 따로 학습시키지 않아도 된다.


유의할 점은, 각 노드마다 gamma와 beta값이 존재한다는 것이다.


5. Learning rate를 높게 가져가도 되는 이유

정규화를 하고 나면, 데이터 간의 편차가 줄어든다. Outlier에 대해 robust해진다. 고로 보다 과감하게 업데이트를 해도 괜찮다.


6. Inference시 평균과 분산의 처리

학습이 끝난 후 inference를 실시할 때, 학습 당시의 평균과 분산의 이동평균을 구해준다. 이동 평균의 비중값을 조정해 최근 값에 얼마나 더 큰 비중을 둘 것인지 조절할 수가 있다.


7. Layer Normalization

BN은 batch에서의 평균과 분산을 구한다. 하지만 LN은 레이어 단위에서 정규화를 진행하고, 똑같이 gamma와 beta로 다시 뿌려주는 절차를 밟는다.




DeepSeek-V3: MLA, DeepSeekMoE

MLA 핵심: KV 대신 head-agnostic한 latent vector c로 압축해버림. 그리고 연산시 다시 원래 차원으로 매핑. vanilla MHA에 비해서 성능 저하 없음 (왜??) MoE: 기존 MoE과 달리 256개의 expert...

 
 
 
[LLM] o1 reverse engineering

original link CORE IDEA: Explicitly pre-define some "thought-factors" in human reasoning ( "Decompose Problem," "Restate Objective,"...

 
 
 

Comments


bottom of page