티스토리 뷰

1. Input normalization 은 빠른 learning 을 위해 필요하다

x1= 1 에서 1000 까지의 value 를 가지고 x2 = 0..1 까지의 value 를 가진다고 할 때, 그럼 마찬가지로 각각 input feature에 상응하는 weight 도 다른 scale 을 갖게 됨. 결과적으로 cost function 이 왼쪽으로 한쪽은 굉장히 좁고 (elongated) , 한쪽은 넓은 모양이 되는데 이 경우에는 learning_ratio 를 아주 작게 해서 아주 많은 steps 을 밟아야지만 최적에 이르게 된다 (위에서 왼쪽 하단 이미지 참고) . 그렇게 때문에 input normalization 해서 두 input feature 의 scale 을 조정해주면 오른쪽 하단처럼 되고 결국 input normalization => fast learning 을 위해 필요한 게 되겠음.

 

그럼 normalizing 은 어떻게 하냐? 각 데이터 포인트에서 평균값을 빼고, deviation 값으로 나눠 줌

 

 

2. 1번과 같은 이유로 batch normalization (= normalizing activations) 이 faster learning 에 도움이 된다.

 

 1번과 같은 이유로 3번째 layers 의 input 인 $a^ {[2]}$ 를 normalize 하면 $w^{[3]}$, $b^{[3]}$ 을 빨리 학습할 수 있다. 좀 더 구체적으로 말하면  activation 값이 아니라 activation 전의 값인 z (hidden unit value) 를 normalize 하는게 더 common practice 라고 함. 결국 각 layer 에서 z 값이 아니라 normalized 된 z 값을 사용하는 것이 batch normalization 임. 이걸 왜 "batch" normalization 이냐고 부르냐? 결국 normalization 값을 구하려면 mean 과 variance 를 구해야 되는데 그 평균과 편차를 batch (=mini-batch) 별로 구하기 때문.

 

3. 이미지에서는 batch normalization, NLP 에서는 layer normalization

결국 normalization 값을 구하기 위해서는 mean 과 variance 값을 구해야 되는데 batch normalization 에서는 하나의 batch 에 있는 모든 elemement (words in NLP) 에 대해 구하는 거고, layer normalization 은 across feature 로 구하는 거라고 함 ( 여기서부터는 이해가 좀 안 되네) 아무튼 transformer 에서는 layer normalization 이 들어간다고 함

 

'NLP ' 카테고리의 다른 글

AI 콘텐츠 탐지기 (feat. LLM 워터마킹, GPTZero)  (0) 2023.11.17
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함