[모두를 위한 딥러닝2] RNN #5 Seq2Seq

YSL·2021년 8월 23일
0

모두를 위한 딥러닝2

목록 보기
22/23

Seq2Seq

  • Seq2Seq : sequence를 입력 받고 sequence를 출력함

    대표적인 예시로 챗봇이 있음
  • Q. RNN은 이미 sequential data를 다루기 위해 만들어진 것인데 seq2seq 모델은 일반적인 RNN과 무슨 차이가 있는가?
    A.
    • 일반 RNN 모델 : 문장을 구성하는 단어가 입력되면 그때마다 출력을 내놓아서 답변을 만듦
    • seq2seq : 모든 문장을 끝까지 들은 후 하나의 완전한 문장 생성

Seq2seq의 대표적인 구조 : encoder & decoder

  • encoder : 입력된 sequence를 벡터의 형태로 압축하여 decoder로 전달
  • decoder : 전달받은 벡터를 첫 셀의 hidden state로 넣어주고 이 문장이 시작한다는 start flag와 함께 모델 시작. 셀에서 나온 output을 문장의 첫 단어로 두고 이것이 다시 두번째 셀의 input과 함께 들어가는 과정 반복
    => "encoder에서 모든 문장을 들은 후" decoder에서는 하나의 완전한 문장 출력


  • preprocessing : source text와 target text를 나눠 어떤 단어로 구성되어 있고 단어가 몇 개인지 등을 측정함
    => 모델이 잘 학습할 수 있도록 data를 준비하는 과정



  • tensorize 함수 : sentence를 입력 받아 one-hot encoding으로 바꾸고 그것을 pytorch에서 사용하는 tensor로 바꿔주는 과정
    => sentence -> one-hot vector

0개의 댓글

관련 채용 정보