Sequence-to-Seqeunce
입력된 시퀀스로부터 다른 도메인의 시퀀스를 출력하는 모델
응용분야
기계번역 : 한국어 도메인을 가지는 문장을 입력하면 영어 도메인에 해당하는 문장을 얻을수있다
내용 요약 : 상대적으로 큰원문의 핵심 내용만 간추려서 상대적으로 작은 요약문으로 변환하는 것
음성 인식 : 음성을 글자로 변환하는 기술
인코더 & 디코더
Seq2Seq는 다른 특별한 기술을 이용하는 것이 아니라 RNN 기술을 조합해 만들며 일반적으로 encoder와 decoder로 구성
인코더
입력문장의 모든 단어들을 순차적으로 입력 받은 뒤
마지막에 이 모든 단어 정보들을 압축하여 하나의 벡터를 만든다. 이를 컨텍스트 벡터라고 한다.
이 컨텍스트 벡터가 디코더에 전송된다.
디코더
컨텍스트 벡터를 받아서 번역된 단어를 한개씩 순차적으로 출력
인코더와 디코더의 아키텍쳐
인코더와 디코더라 불리우는 두개의 RNN 아키텍처로 구성
인코더 : 입력문장을 입력 받는 RNN셀
디코더 : 출력문장을 출력 하는 RNN셀
일반적으로 바닐라 RNN보다는 LSTM 이나 GRU로 구성함
Seq2Seq는 훈련과정과 예측 테스트 과정의 작동방식이 조금 다르다.
'훈련과정'의 아키텍쳐
인코더에는 입력 단어들이 입력하여 컨텍스트 벡터 추력
디코더에 인코더가 보낸 컨텍스트 벡터와 실제 정답을 입력 받았을때 정답이 나와야 된다고 정답을 알려주면서 훈련한다.
즉,훈련과정에는 3가지 데이터가 필요하다 (인코더 입력, 디코더 입력, 디코더 출력)
훈련과정에서는 교사강요를 통해 훈련한다
교사 강요(Teacher Forcing)
예측이 잘못됐을 경우 잘못된 예측이 다음 시점으로 입력돼 연쇄적으로 잘못된 예측을 한다.
이를 해결하기 위해 디코더의 다음 시점의 입력을 이전 시점의 출력이 아닌 정답을 주어 이를 방지한다
'예측(테스트) 과정' 의 아키텍쳐
인코더
입력문장은 단어 도큰화 되어 쪼개어지고
단어 토큰 각각은 RNN셀의 각 타임스텝의 입력이 된다.
인코더 RNN셀은 모든 단어를 입력 받은 뒤에 인코더의 마지막 타임스텝의 은닉상태를 디코더로 넘겨진다.
이 context vector 는 디코더 RNN셀의 첫번쨰 은닉상태에 사용된다.
디코더
우선 디코더는 초기 입력으로 문장의 시작을 의미하는 토큰 <sos> 가 들어간다.
디코더는 <sos>가 입력되면 다음에 등장할 확률이 높은 단어를 예측.
첫번째 타임스텝의 디코더 RNN셀은 다음에 등장할 단어를 예측했다
그렇게 예측한 단어를 다음 타임스텝의 RNN 셀 입력으로 입력
이런식으로 디코더는 타임스텝을 거듭 반복하면서 다음의 단어들을 예측해낸다.
이 반복행위는 문장의 끝을 의미하는 토큰 <eos> 가 다음단어로 예측될때까지 반복된다.
word embedding
- seq2seq 에 사용되는 모든 단어들은 임베딩 벡터로 변환후 입력으로 사용됨.
softmax
- 각 타임스텝의 출력 단어로 나올수 있는 단어는 '다양'하다
- 이를 예측하기 위해 softmax 함수 사용됨
'AI > ML' 카테고리의 다른 글
| Attention Mechanism 완전 쉽게 이해하기 (Score → Output까지) (0) | 2026.04.19 |
|---|---|
| Attention Mechanism (0) | 2026.04.19 |
| Word2Vec (1) | 2026.04.17 |
| 자연어 처리 (NLP) (0) | 2026.04.16 |
| LSTM(2) (1) | 2026.04.15 |