encoder-decoder 2

Deep Learning #7 Transformer

1. Transformer의 도입 1.1. Transformer의 아이디어 이전 포스팅에서 Attention에 대해서 다루었다. 그런데 Attention을 공부하다보면, 결국 RNN처럼 시퀀스 순서대로 인풋들을 받을 필요가 있을까, RNN 구조를 유지하는 것이 꼭 필요할까 하는 의문이 든다. 왜냐하면 시퀀스 데이터에 RNN과 Encoder-Decoder를 사용했던 것은 단 하나의 인풋 벡터뿐 아니라 모든 인풋 시퀀스들을 고려하기 위함이었기 때문인데, Attention만을 사용하더라도 어차피 모든 인풋 시퀀스들에 적당한 가중치들을 두고 아웃풋을 만들어낼 수 있기 때문이다. 그래서 그냥 Attention만을 사용하자! 라는 아이디어 하에서 등장한 모델이 있는데, 그게 바로 Transformer이다. Tran..

Deep Learning #6 Attention

1. Encoder-Decoder 구조 1.1. Encoder-Decoder 구조(=Seq2Seq) RNN이 One-to-Many, Many-to-Many 등의 다양한 구조를 갖는다는 것을 이전 RNN 포스팅에서 살펴보았다. 그 중 한 형태인 Encoder-Decoder 구조는 Many-to-Many 구조를 약간 변형한 것이라고도 볼 수 있는데, 다음과 같은 형태이다. 인코더-디코더는 이름에서 알 수 있듯이 인코더와 디코더로 이루어진 구조이다. 인코더 파트에서는 주어진 인풋 시퀀스를 히든 스테이트로 변환한다. 디코더 파트는 히든 스테이트를 받아서 아웃풋 시퀀스를 생성한다. 왜 이런 구조를 고안해냈을까? NLP의 맥락에서 이해해보자. 가령 한국어 문장을 영어로 번역하는 RNN 모델을 만든다고 하면, Man..