티스토리 뷰

딥러닝

Seq2Seq

up_one 2025. 4. 16. 17:01

Seq2Seq 모델은 Attention, Transformer의 기초가 되는 딥러닝 모델로서 시퀀스 데이터를 처리하는 RNN과 LSTM의 단점을 보완한 모델입니다. 특히 Seq2Seq 모델은 하나의 입력 시퀀스에서 다른 시퀀스로 출력시키는 프로세스에 적합하므로 특정 언어를 다른 언어로 번역하는데 많이 활용됩니다.

 

Seq2Seq 모델부터는 인코더와 디코더의 개념이 활용됩니다.

Seq2Seq 모델 구조

기존 RNN 계열 모델은 시퀀스가 길어질수록 이전 정보가 현재 시점에서는 많이 희석되어 기울기가 소실되는 단점이 존재했습니다. Seq2Seq 모델은 이 문제점을 해결하기 위해 Context Vector라는 개념을 활용합니다. 

 

입력 시퀀스에 대해서 Encoder가 학습을 하면 Context Vector에는 학습 내용이 압축되어 산출됩니다. 그럼 Decoder은 이 Context Vector을 기반으로 번역 결과를 추론합니다.

 

1. Word Embedding

Seq2seq의 입력 데이터는 주로 긴 문장입니다. Word Embedding은 이러한 텍스트 데이터를 Seq2Seq 모델이 학습 가능한 숫자의 형태로 변환하는 것을 의미합니다. 변환되는 형태는 벡터입니다. 기존에는 단어에 무작위로 숫자를 붙이는 방법에서 유사한 단어끼리 유사한 숫자를 부여하는 방식으로 발전해 왔습니다. 임베딩된 벡터는 Seq2Seq의 Encoder 입력으로 활용됩니다

 

2. Encoder

Encoder의 역할은 임베딩 벡터를 입력 받고 LSTM을 활용하여 고정된 크기의 Context Vector로 학습 정보를 압축시키는 것입니다. RNN을 활용할 수 있지만 LSTM은 자신의 Hidden State와 Cell State을 이용해 장기 의존성을 해결할 수 있습니다. 따라서 RNN 기반의 Seq2Seq보다 LSMT을 기반으로 Seq2Seq을 구현합니다

Encoder 구조

Encoder의 마지막 LSTM에서 Cell state와 Hidden State, 즉 Context Vector을 산출합니다. 

 

3. Decoder

Decoder의 역할은 압축된 정보가 담긴 Context Vector을 추론하여 출력 시퀀스를 생성하는 것입니다. 

Decoder 구조

Decoder에서 중요한 것은 <sos>, <eos> 토큰입니다. <sos> 토큰은 Decoder가 예측을 시작할 수 있도록 첫 입력을 제공하고 <eos> 토큰은 Decoder가 언제 학습을 멈추는지 알려주는 역할을 합니다.

 

또한, 이전 시점의 Decoder의 출력을 현재 시점의 입력값으로 활용하지 않고, 이전 시점의 실제 값을 현재 시점의 Decoder의 입력값으로 활용한다는 것입니다. 그 이유는 이전 시점의 출력 예측이 틀렸는데 이를 현재 시점의 입력 값으로 활용하면 연쇄적으로 예측 성능이 저하될 수 있기 때문입니다. 이러한 기법을 Teacher Forcing (교사 강요)라고 합니다.

 

4. Seq2Seq의 한계

Seq2Seq의 한계는 Context Vector에 압축된 정보가 담기므로 입력 시퀀스가 길어질수록 정보 손실이 크다는 것입니다. 정보가 많이 손실된 Context Vector을 기반으로 출력 시퀀스를 추론하는 Decoder 입장에서는 성능이 악화될 수밖에 없습니다.

 

 

'딥러닝' 카테고리의 다른 글

Attention  (0) 2025.04.21
오차역전파법(Backpropagation)  (2) 2024.07.16
적대적 생성 신경망(GAN)  (0) 2024.07.11
RNN (Recurrent Neural Network)  (0) 2024.07.08
[3] LSTM(Long Short-Term Memory)  (0) 2024.06.27
TAG more
글 보관함
최근에 올라온 글