Day 29: Ch. 9-4 RNN유형과 seq2seq

2023. 3. 20. 23:55딥러닝 이론

오늘 공부한 내용은 Ch.9-4입니다:

- RNN유형

- seq2seq

 

먼저 요즘 학업 부담으로 블로그나 글이 점점 디테일이 줄어드는 부분에 대해서는 죄송하다고 말씀 드립니다. 틀리거나 부족한 부분은 학기중에 천천히 채워가겠습니다. 아마 30일 챌린지를 끝내면, 기존에 있던 글을 조금식 편집할 생각입니다. 처음 배우는 내용인 만큼 더 열심히 하겠습니다.

 

저번에는 plain recurrent neural networks에 대해서 공부를 해봤습니다. 하지만 RNN은 고질적인 문제가 있다:

저번 블로그에서 본 1. 멀수록 잊혀지는 것과 2. potential vanishing gradient problem이 있었다. 이 문제 해결을 위해 우리는 seq2seq에 대해서 배워볼꺼다.

 

1. RNN유형

Recurrent neural network는 3가지 종류가 있다.

One to many, many to one, and many to many. 어려운건 없다.

One to many는 하나에서 여러게 출력인 "insert captions for particular image"같은 문제를 풀때를 의미한다.

Many to one는 여러개의 input에서 하나의 output이 있는 시스템이다. 예를들어 문장을 입력하면 그 문장의 긍정지수를 평가하는 것이다. 이는 review하는 어플에서 유용하게 쓸수 있다.

Many to many는 여러개의 input이 여러개의 output로 training되는 과제이다. 대표적으로 translation of languages에서 사용이 가능하다. 한 언어에서 다른 언어는 input과 output이 모두 문장임으로 여러개의 데이터가 입력된다.

Many to many를 seq2seq이라는 방법을 사용해 RNN을 번역에 쓰기 좋게 만든 알고리즘이다. 그럼, seq2seq에 대해 배워보자!

 

2. seq2seq

- seq2seq의 특징은 cell마다 RNN대신 LSTM이나 GRU를 주로 사용한다

- seq2seq는 encoder, decoder 두 파트로 구성되어 있다