본문 바로가기
인공지능 개발하기/기술 & 논문 리뷰

Seq2Seq 매커니즘

by 선의공 2024. 4. 27.
반응형

 

 

위키독스 내용을 참고했습니다.

https://wikidocs.net/24996

 

14-01 시퀀스-투-시퀀스(Sequence-to-Sequence, seq2seq)

이번 실습은 케라스 함수형 API에 대한 이해가 필요합니다. 함수형 API(functional API, https://wikidocs.net/38861 )에 대해서 우선 숙지 후…

wikidocs.net

 

 

Seq2Seq매커니즘은 입력된 시퀀스로부터 다른 도메인의 시퀀스를 출력하는 알고리즘에 

주로 사용합니다.

 

챗봇 모델에 적용한다고 가정하면

챗봇의 입력 = 질문

챗봇의 출력 = 대답

 

번역기 모델에 적용한다고 가정하면

번역기의 입력 = 입력문장

번역기의 출력 = 번역된 문장

 

이 될 수 있습니다.

 

 


 

1. Seq2Seq 구조

 

Seq2Seq 매커니즘은 인코더와 디코더로 구성됩니다.

각 인코더와 디코더는 기본RNN, LSTM, GRU 등의 RNN 셀로 구성됩니다.

 

1) 인코더

입력 문장의 모든 단어를 순차적으로 입력받습니다.

각 RNN 셀는 이전 시점(time step)의 값과 입력 단어 두개의 입력을 받으며,

(가장 첫번째 RNN셀의 입력값인 이전 시점 값은 0입니다) 

압축해서 하나의 Context벡터로 만들어 디코더에 전달합니다.

만들어진 Context벡터는 

이렇게 모든 단어 정보가 압축되어 하나의 벡터로 표현됩니다.

해당 이미지에서의 차원은 4개입니다.

실제로는 수백 이상의 차원을 갖고 있다고 합니다.

 

2) 디코더

전달 받은 Context를 이용해 번역된 단어를 한개씩 순차적으로 출력합니다.

가장 처음 디코더의 RNN셀은 <sos>라는 초기 입력의 문장 시작을알리는

심볼과 Context 벡터를 받으며,

이를 이용해서 다음 등장할 단어를 예측합니다.

앞에서 예측된 단어는 다음 time step의  RNN셀의 입력으로 들어가게 됩니다.

순차적으로 앞에서 예상한 단어의 다음 등장 단어를 예측합니다.

 


2.  임베딩

 

기계는 텍스트가 아닌 숫자를 처리할 수 있기 때문에

텍스트를 벡터로 바꿔줍니다. 이를 워드 임베딩이라고 합니다.

텍스트가 모델에 입력되기 전에 해당 임베딩 과정이 들어가게 됩니다.

 


 

3. 출력 형태

 

디코더에서의 예측된 값은 소프트맥스를 거쳐 확률적으로 계산됩니다.

가장 높은 확률의 단어가 예측한 단어가 됩니다.

 


 

4. 문제점 

인코더가 입력 시퀀스를 Context 벡터로 압축하는 과정에서

입력 시퀀스 정보의 일부가 손실된다는 단점이 있습니다.

문장이 길어질수록 앞에 나온 단어의 정보가 손실될 확률이 높아집니다.

 

이 문제점을 극복하기 위해 Attention 매커니즘이 등장하게 됩니다.

Attention 매커니즘은 다음 포스팅에서 다뤄보겠습니다.

 

 

 

 

틀린점 있으면 지적 부탁드립니다.

 

반응형