seq2seq

(시퀀스-투-시퀀스에서 넘어옴)

1 개요[ | ]

sequence-to-sequence (seq2seq), sequence to sequence learning
시퀀스 투 시퀀스
  • 자연어 처리에 사용되는 머신러닝 접근방식
  • 입력 시퀀스를 출력 시퀀스로 변환하는 모델
  • 인코더에서 시퀀스를 입력 받아 벡터로 변환하고, 변환된 벡터를 디코더에서 다시 다른 형태의 시퀀스로 출력하는 모델
  • 주요 응용분야: 기계 번역, 텍스트 요약, 이미지 캡션, 대화 모델(질의응답)
  • seq2seq는 시퀀스 변환을 사용한다. 즉, 한 시퀀스를 다른 시퀀스로 변환한다.

2 아키텍처[ | ]

seq2seq 모델은 일반적으로 RNN으로 구현되는 인코더와 디코더로 구성된다. 인코더는 입력 시퀀스의 컨텍스트를 캡처하여 디코더로 보낸 다음 최종 출력 시퀀스를 생성한다.

2.1 인코더[ | ]

인코더는 입력 시퀀스를 처리하고 네트워크의 숨겨진 상태로 저장되는 필수 정보를 캡처하고 주의 메커니즘이 있는 모델에서는 컨텍스트 벡터를 캡처하는 역할을 한다. 컨텍스트 벡터는 입력 숨겨진 상태의 가중합이며 출력 시퀀스의 모든 시간 인스턴스에 대해 생성된다.

2.2 디코더[ | ]

디코더는 인코더에서 컨텍스트 벡터와 숨겨진 상태를 가져와 최종 출력 시퀀스를 생성한다. 디코더는 자동 회귀 방식으로 작동하여 한 번에 출력 시퀀스의 한 요소를 생성한다. 각 단계에서 이전에 생성된 요소, 컨텍스트 벡터, 입력 시퀀스 정보를 고려하여 출력 시퀀스의 다음 요소를 예측한다. 특히 주의 메커니즘이 있는 모델에서는 컨텍스트 벡터와 숨겨진 상태가 함께 연결되어 디코더의 입력으로 사용되는 주의 숨겨진 벡터를 형성한다.

2.3 주의 메커니즘[ | ]

주의 메커니즘은 Bahdanau이 도입한 향상된 기능이다. 2014년에서는 긴 입력 시퀀스로 인해 인코더의 숨겨진 상태 출력이 디코더와 관련이 없게 되는 기본 seq2Seq 아키텍처의 제한사항을 해결했다. 이를 통해 모델은 디코딩 프로세스 중에 입력 시퀀스의 다양한 부분에 선택적으로 집중할 수 있다. 각 디코더 단계에서 정렬 모델은 현재 디코더 상태와 모든 주의 숨겨진 벡터를 입력으로 사용하여 주의 점수를 계산한다. 정렬 모델은 숨겨진 상태로 표시되는 입력이 주의 숨겨진 상태로 표시되는 이전 출력과 얼마나 잘 일치하는지 계산하는 데 사용되는 seq2seq 모델과 함께 훈련되는 또 다른 신경망 모델이다. 그런 다음 주의 점수를 얻기 위해 소프트맥스 함수가 주의 점수에 적용된다.

일부 모델에서는 인코더 상태가 활성화 함수에 직접 입력되므로 정렬 모델이 필요하지 않다. 활성화 함수는 하나의 디코더 상태와 하나의 인코더 상태를 수신하고 관련성에 대한 스칼라 값을 반환한다.

3 같이 보기[ | ]

4 참고[ | ]

문서 댓글 ({{ doc_comments.length }})
{{ comment.name }} {{ comment.created | snstime }}