GRU 기반 Seq2Seq 모델을 총 10 epoch 동안 학습한 결과, Train Loss는 6.3349에서 4.0999까지 지속적으로 감소하였다.
반면 Validation Loss는 초기에는 7.3586에서 7.1055까지 감소했지만, 4 epoch 이후 다시 증가하기 시작하였다.
Epoch 01 | Train Loss: 6.3349 | Valid Loss: 7.3586
Epoch 02 | Train Loss: 5.7469 | Valid Loss: 7.2537
Epoch 03 | Train Loss: 5.4436 | Valid Loss: 7.1261
Epoch 04 | Train Loss: 5.2030 | Valid Loss: 7.1055
Epoch 05 | Train Loss: 4.9944 | Valid Loss: 7.1603
...
Epoch 10 | Train Loss: 4.0999 | Valid Loss: 7.4489
따라서 Validation Loss가 가장 낮았던 Epoch 4의 모델을 최종 모델로 선택하였다.
이후 Train Loss는 계속 감소하지만 Validation Loss가 증가하는 것으로 보아 모델이 학습 데이터에 과도하게 적응하는 과적합 현상이 나타난 것으로 판단할 수 있다.
최종 Test Loss는 7.3321로 측정되었다.
실제 독일어 문장 Ich liebe dich.를 번역한 결과는 다음과 같았다.
German : Ich liebe dich.
English: I am the the.
모델은 영어 형태의 문장을 생성했지만 정확한 의미의 번역에는 실패하였다.
이번 실험에서는 약 10,000개의 학습 문장만 사용한 반면 독일어와 영어 SentencePiece vocabulary를 각각 약 8,000개로 구성하였다. 따라서 각 subword를 충분히 학습하기에는 데이터가 부족했을 가능성이 있다.
또한 현재 모델은 Attention이 없는 기본 Encoder-Decoder 구조이므로 Encoder가 독일어 문장 전체의 정보를 하나의 고정 크기 hidden state에 압축해야 한다. 이로 인해 특히 긴 문장에서 정보 손실이 발생할 수 있다.
향후에는 학습 데이터의 수를 증가시키거나 vocabulary 크기를 조정하고, Dropout이나 Attention Mechanism을 적용함으로써 번역 성능을 개선할 수 있을 것으로 예상된다.
+) 학습 데이터의 수 증가시켜서 결과 업데이트 완료.