반응형

Transformer :

 

Rnn : 단점

- 순차적 특성을 유지하지만 데이터 거리가 멀수록 정보 손실이 된다 

- 순차적인 특성 때문에 병렬처리를 할 수 없고 , 계산 속도가 느림

위의 것 때문에 나온것이

 

Attention : 거리가 멀면 정보에 대해서 보완하는 것 

self-attention : 

 

Transoformer: Attention 만을 사용한 모델로 ,해서 상대적으로 , 연산량이 줄고 성능도 매우 높음

Model Architecture:

Encoder:

총 6개의 layer 같은 sublayer 

512 dimension 

positional Encoding:

multi-head Attention :

  h 8개 

selected Dot -Product Attention 

embeding을 통해서  query  key value 3가지를 얻게 된다.

key value의 dimenstion은 64가 되고 h(head) 8개로 되여있어서 

query  key =>를 dot - product 진행

query 라는 단어가 있으면 key에서 얼마나 연관성이 있는지 

Attention score

softmax : 연관성을 지내는지 확률적으로 하는 수식 

value 곱해서 얼마나 큰 , 작은 영향을 주는지 

총 8개 값을 나오고 linear 거치고 concate

 

add & norm : 

add : 이전의 값을 더해준다. 위치 정보가 조금 손실될 수 있는것을 방지하기 위해서

norm:  layernorm residual 부분을 multi-head attention 합쳐서 normalize 된 부분

 

feed forward : relu 와 2개의 linear 이용했다.

 

encoder에서 총 512개 나온다. 

Decoder:

encoder part에서 나온 key , value를 multi-head attention 에 넣을 것이다.

masked multi-head self- attention : 

영어 문장을 -> 프랑스로 번역 하는 task를 하고자 하면 

encoding 영어로 I love you 프랑스 에 sequential 하게 i love you 를 입력해야 하는데 

Transformer문장을 matrix로 만들어서 통체로 입력하기 때문에 decode가 time-step을 통해서 순서를 해당하는 것만 참조를 해서 연산을 수행해야 하는데 불어로   I love you문장을 다 알고 있기 때문에 원래는 I 에 해당하는 것만 해야 하는데 불어는 love you를 지우고 한다. cheating 못하게 이미 나온것 들만 self-attention 지울 것은 계속 지워주고 또 새로 나온것은 그것을 다시 참조 있게 하고 여전히 안나온것은 참조하지 못하게 하고 하기 위해서 mask를 씌운다. 

학습을 효과 있게 하기 위해서 이다.

 

 

 

Transformer는 문장을 matrix로 만들어서 통체로 입력하기 때문에 matrix 순서 값이라는 time-step 

정보를 넘겨줄 수 없다 . Transformer는 matrix여서 어떤 단어가 어떤 순서라는 것을 의미적으로 하기 위해서 positional-encoding을 추가했다.

 

3. why self-attention

1. layer당 전체 연산량이 줄어든다.

2. 병렬화가 가능한 연산이 늘어난다.

3. Long-range (긴 sentence)의 term 들의 dependency 도 잘 학습할 수 있게 된다.

4. attention을 사용하면 모델 자체의 동작을 해석하기 쉬워진다.

 

4. Training

optimizer: Adam optimizer

Regularization :

  - Residual Dropout : 중간을 random하게 sub-layer

  - label smoothing : https://ratsgo.github.io/insight-notes/docs/interpretable/smoothing

레이블 스무딩이란 Szegedy et al. (2016)이 제안한 기법으로 말 그대로 레이블을 깎아서(스무딩) 모델 일반화 성능을 꾀합니다.  

   정확하지 않은 input 일 수 있지만 accuracy는 좀 더 높은 파트 일 수 있다.

 

5. Results

6. Conclusion

Transformer: Recurrent, convolution을 사용하지 않고 , attention만 상용한 모델

다른 모델들 보다 훨씬 빠른 학습속도 그리고 좋은 성능을 지님

번역 뿐만 아니라 이미지 등 큰 입력을 갖는 분야에도 적용될 것이 기대됨

 

 

 

 

https://www.youtube.com/watch?v=EyXehqvkfF0&t=552s

 

 

 

반응형

+ Recent posts