RNN은 입출력의 형태와 처리 방식에 따라 모델 구성이 다양하다.
다대일 모델
다대일(many to one) 모델은 입력은 순차열이지만 출력은 순차열이 아닌 모델이다.
모든 단계에서 입력을 받지만 출력은 마지막 단계에서 하는 모델로 영화 감성 분석등을 할 때 사용된다.
다대다 모델
다대다(many to many) 모델은 입출력이 모두 순차열인 모델이다.
다대다 모델에서 티처 포싱(teacher forching) 방식으로 학습하면 학습이 안정화되고 수렴 속도도 빨라진다. 티처 포싱은 현재 단계의 출력을 다음 단계에 입력하는 방법으로 현재 단계의 예측 결과를 교사의 지도 신호로 사용해서 다음 단계에 전달하기 때문에 예측 성능이 높아진다.
주의할 점은 훈련 시에는 모델의 예측 결과 대신 타깃을 직접 지도 신호로 사용해야 한다. 훈련 중에는 모델이 정확한 예측을 할 수 없으므로 모델의 예측을 지도 신호로 사용하기엔 부적절하기 때문이다.
일대다 모델
일대다(one to many) 모델은 입력은 순차열이 아니지만 출력이 순차열일 때 사용하는 모델이다.
첫 번째 단계에서만 입력하고 모든 단계에서 출력한다. 이미지 설명을 예로 들면 이미지 context를 넣고 각 단계마다 이미지를 설명하는 문장의 단어를 순서대로 출력한다.
양방향 모델
양방향(bidirectional) 모델은 입력을 양쪽으로 살펴보는 방식으로 순방향, 역방향 2개를 살펴본다. 시간순으로 생성되는 데이터는 인과관계에 따라 현재는 과거에만 의존하기 때문에 시간의 흐름 방향으로 봐야겠지만, 공간적 순서를 가지는 데이터는 상대적인 순서가 중요하기 때문에 양방향으로 살펴보고 판단하는 것이 정확하다.
순방향을 거치고 역방향을 실시할 때 2개를 합쳐서 예측한다.
인코더 디코더 모델
인코더 디코더(encoder decoder) 모델에서 인코더 모델은 입력 데이터를 저차원으로 압축하는 모델이다. 디코더 모델은 압축된 데이터를 고차원 데이터로 데이터 차원을 확장하는 모델이다. 입력과 출력의 길이가 다른 순차열을 처리할 때 사용한다.
Seq2Seq(sequence to sequence) 모델이라고도 불리며 한 언어를 다른 언어로 변환하거나 오디오 데이터를 립싱크 동영상으로 변환할 때 사용한다.
'NLP' 카테고리의 다른 글
[NLP] 자연어처리의 이해 (0) | 2023.04.03 |
---|---|
[RNN] Transformer (0) | 2023.01.31 |
[NLP] Seq2Seq with Attention (0) | 2023.01.31 |
[RNN] Backpropagation through time (0) | 2023.01.30 |
[RNN] RNN 구조 (0) | 2023.01.26 |