transformer 간단요약1 - transformer의 핵심 아이디어, 무엇을 이해해야하는가

1. sequential model의 어려운 점

 

sequence data가 다루기 어렵다는 이유 중 input의 차원이 어느 정도인지 알기 어렵다는 점이 있었다.

 

추가로 시간 순서가 바뀌어서 들어온다든지 일부가 잘려서 들어온다든지 아니면 섞여서 들어온다든지 그래서 또 다루기가 어렵다

 

 

 

2. transformer 핵심 아이디어

 

위와 같은 input의 무작위성 때문에 sequence data를 다루기 어렵다는 한계를 극복하고자 등장했다.

 

처음 도입되었을 때는 기계어 번역 문제를 풀기 위해 도입했다.

 

지금은 이미지 분류, detection 등 다방면에서 활용되고 있다.

 

sequence를 다루는 모델인데 그 동안 RNN이 재귀적구조를 활용했다면 Transformer은 attention구조를 활용했다.

 

transformer의 기본 구조

 

 

3. transformer의 역할인 기계어 번역 문제란

 

뜻을 알 수 없어서 자기가 원하는 언어로 바꾸고 싶은 단어의 모임인 문장(예를 들면 독일어)을 encoder에 보낸다.

 

decoder에는 미리 구축된 자기 언어(예를 들면 영어)의 사전(vocabulary)과 encoder에서 이해한 맥락정보를 바탕으로 원하는 언어로 번역하는 것이다.

 

 

 

4. transformer 무엇을 이해해야하는가

 

기본적인 구조는 각각이 동일한 구조를 가지지만 가중치를 공유하지 않는 encoder의 stack과 마찬가지로 decoder의 stack을 만들었다.

 

 

 

encoder,decoder 개수가 동일해야하고

 

encoder 각각은 구조가 동일하지만 가중치는 공유하지 않는다

 

decoder도 마찬가지로 각각은 구조가 동일하지만 가중치는 공유하지 않는다

 

RNN은 예를 들어 100개의 단어가 들어가면 100번이나 재귀적으로 돌아가야한다.

 

그런데 transformer은 100개의 단어가 들어가면 모델이 1번만 돌면 100개 한번에 뱉어준다.

 

도대체 이것이 어떻게 가능한지, n개의 단어가 1번에 어떻게 처리되는지 이해해야하고

 

encoder에서 decoder로 흘러가는 정보는 무엇인지 알아야하고

 

decoder는 output을 어떻게 만드는지 알아야한다.

TAGS.

Comments