[LGaimers] 딥러닝 - (5) transformer

govldbstj·2023년 1월 25일
0

23LGAimers

목록 보기
20/21
post-thumbnail

< transformer 모델의 동작 원리 >

  • 지난 시간 rewind : Seq2seq + attention 구성요소 3가지 encoder, decoder, attention module

1. Transformer

: seq2seq with attention model의 개선판
Attention module : decoder의 각 time step에서부터 encoder의 hidden state vector들 중 원하는 정보를 선택적으로 가져갈 수 있도록 하는 추가적인 모듈.
기존의 모델은 RNN기반의 모델이었는데 transformer은 attention module 자체로도 encoding, decoding을 진행한다.
그래서 어텐션 모듈만으로 움직일 수 있다.

2. RNN에서 sequence를 처리할 때의 단점

sequence를 잘 encoding해서 정보를 축척할 때, hidden state가 많아지면 정보의 변질/소실 위험이 있음.
모델의 학습 과정에서도, gradient signal을 뒤에서부터 저 앞에 멀리 있는 time step까지 전달해줘야 하는데 gradient정보가 변질될 수 있음.
-> time step간의 차이가 멀 때 (long-term dependency)의 문제를 해결함으로써 특정 time step에서든 바로 정보를 접근할 수 있도록 attention을 변형해 사용하자.

3. Solving long-term dependency problem

-> 2에서 어텐션 모듈을 잘 활용해 정보의 소실 없이 원하는 time step에서 정보를 바로 접근할 수 있도록 하기로 했다.
구체적인 동작 과정을 살펴보자.
(기존 방식)
찾고자 하는 질의(query)는 decoder의 hidden state vector. 여기에서 원하는 정보는 encoder의 hidden state vector에 있다. 이 중에서 내적을 통해 유사도를 구하고 거기에 softmax를 취해 상대적인 가중치를 벡터에 반영해줌으로써 그 가중합을 사용한다. 이로써 재료 정보를 꺼내가도록 한다.
-> self attention model
정보를 찾고자 하는 주체: 쿼리벡터(질의 벡터) = 정보를 꺼내가려는 주체 : 재료 벡터
(1) 기존의 인코더에 input으로 들어오는 문장의 각 낱말들(I, go, home)을 쿼리 벡터로 사용함.
(2) 이 쿼리 벡터들 (I, go, home 총 3개)은 자기 자신과의 내적, 상호 간의 내적을 통해 유사도를 구함.

4. Query, Key, Value vector

https://nlpinkorean.github.io/illustrated-transformer/
추후 transformer, seq2seq에 관련된 github, 논문들 읽어보며 포스팅 보강할 예정입니다 -

profile
ajou software 20

0개의 댓글