해당 게시물은 "혁펜하임의 AI DEEP DIVE"를 수강하고 작성되었습니다.
batch size=5 일 때 해당 데이터들이 ReLU 함수를 통과하는 상황이다.
데이터들이 모두 양수일 때는 linear function을 쓰는 것과 다름이 없으며,
데이터들이 모두 음수일 때는 gradient=0이 되므로 gradient descent 문제가 발생한다.
따라서 위 그림과 같이 Activation function의 non-linear한 성질을 잘 살리고자 입력 데이터를 재조정 하는 것이 batch normalization의 첫번째 목적이다.
하지만 이 데이터들을 어디로 옮길지 어떻게 알아야 할까? 어디로 옮길지(non-linear한 성질을 잘 살리면서 vanishing gradient를 얼마나 해결하는지) AI가 학습하도록 하는 것이 batch normalization의 두 번째 목적이다.
평균이 0이고 분산이 1인 Y를 $Y=\frac{X-\bar{X}}{\sigma_X}$ 라고 하자. (수식에 따르면 당연히 평균이 0 분산이 1이 됨)
여기서 $aY+b$를 해준다면 평균은 $b$, 분산은 $a^2$이다.
해당 수식은 미분가능하기때문에 학습시킬 수 있다. 이 $a$와 $b$를 학습시키는 것이다. (어느정도 평균에 어느정도 분포로 옮길지)
Batch Normalization은 각 노드별로 위 기법을 적용시켰다면,
(한 노드에 들어오는 데이터들을 재배치한다)
(각 노드별 두 개 파라미터 추가 필요)
(주로 image 데이터에 사용)
Layer Normalization은 한 Layer에 위 기법을 적용한다.
(한 레이어로 들어오는 데이터들을 재배치한다)
(레이어 당 두 개 파라미터 추가 필요)
(주로 NLP에서 사용)
Vanishing Gradient가 발생한다면
- activation function을 ReLU나 다른 Non-linearlity한 함수로 바꿔본다.
- Batch Normalization을 적용한다.
- Layer Normalization을 적용한다.
'AI' 카테고리의 다른 글
Overfitting, Data augmentation (0) | 2024.09.09 |
---|---|
Loss Landscape, Skip connection (0) | 2024.09.09 |
ReLU (Rectified Linear Unit) (0) | 2024.09.06 |
기울기 소실 (Vanishing Gradient) (0) | 2024.09.06 |
Softmax를 이용한 다중 분류 (0) | 2024.09.05 |