티스토리 뷰
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
- 뉴럴넷
- Pre-trained LM
- Neural Language Model
- 언어모델
- neurone
- Contextual Embedding
- cs224n
- language model
- 벡터
- Attention Mechanism
- weight vector
- LM
- word embedding
- 워터마킹
- GPTZero
- neural network
- 뉴런
- Elmo
- Bert
- transformer
- nlp
- Statistical Language Model
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |