본문 바로가기

머신러닝/[딥러닝을 이용한 자연어 처리]

Learning to Describe Multimedia

학습목표

자연어 뿐만 아니라 멀티미디어 컨텐츠로서 기계번역 메커니즘을 확장해봅니다.

핵심키워드

  • 기계 번역(Machine Translation)
  • 연속 벡터 공간(Continous Vector Space)
  • 인코더(Encoder)
  • 디코더(Decoder)
  • Image Caption Generation
  • Video Description Generation
  • Speech Recognition
  • Self-Attention

학습하기

 여태까지 기본적인 것들에 대해 말해봤구요. 이제부터는 이런 것들 위에서 무엇을 더 할 수 있을지에 대해서 말씀드리려고 합니다. 다만, 결국 똑같은 메커니즘, 나아가서 똑같은 코드를 사용해 다른 문제를 푸는 경우도 만나실 수 있으실겁니다. 먼저 기계 번역부터 보자면, 우리의 목표가 번역이었으니까, 이 모델의 인풋이 텍스트라는 것이 너무나 당연했는데, 보다보면 당연히 이런 생각이 듭니다. 굳이 텍스트여야하나?

  이전의 아키텍쳐를 떠올려보면, 인코딩 레이어를 거치고 나서부터는, 모델은 텍스트를 보지 않죠. 어떤 Continous vector만 바라보면서, 어떤 연산을 계속해서 해나가니까요. 그 뜻은, 만약 인풋으로 주어진 것이 이미지든 비디오든 스피치든, 이것들을 Continous vector로 변환하기만 하면, 뒷 부분은 다 똑같을 것이다 라는 결론이 되는 거죠. 그래서 나온 첫번째가 Image Caption Generation. 이미지를 변환만 잘 시켜서 적당히 학습시켰어요. 

 그랬더니 이런 결과가 나왔죠. 이미지에 대한 설명 문장이 나오고, 해당 문장을 구성하는 요소들이 어텐션을 통해 시각화되고.

 그래서 이번에는 비디오를 넣어봤습니다. 비디오에도 같은 내용이 나왔습니다. 물론 정확하지는 않았지만, 그 결과가 흥미롭죠.

 그래서 이번에는 또 스피치를 넣어봤죠. 다만 스피치 길이가 워낙 길다보니까, 그 처리가 좀 어려웠습니다. 

 그러고 나서 알게된게, Self attention이 대단히 효과적이구나. 다양한 접근이 가능하구나. 깨닫고 정말 온갖 모델과 합쳐지기 시작했죠. 결국은 Continous vector화가 굉장히 중요한 겁니다.  만약 Discrete space로 임베딩해왔었다면, 이런 행위들이 어려웠겠죠.

 개인적으로 생각컨데, AI, 인공지능 말이 많지만, 이제 겨우 눈 좀 뜨고 볼 줄아는 이정도 수준인 것 같습니다. 하지만 이런 아이디어를 통해 분명 점점 나아갈 수 있을 거라 생각합니다. 이상입니다.

'머신러닝 > [딥러닝을 이용한 자연어 처리]' 카테고리의 다른 글

Fully Character-Level Machine Translation  (0) 2020.04.23
Questions  (0) 2020.04.22
RNN Neural Machine Translation  (0) 2020.04.21
Encoder & Decoder  (0) 2020.04.20
Overview: a bit of history remark  (0) 2020.04.19