이미지 캡셔닝 Show and Tell 리뷰
출처: https://www.cv-foundation.org/openaccess/content_cvpr_2015/html/Vinyals_Show_and_Tell_2015_CVPR_paper.html 이미지 캡셔닝이란 이미지를 문장(이미지를 설명하는)으로 변환시켜주는 기술입니다. 이때 인공지능 용어에서 도메인이라는 단어를 사용하는데 도메인은 이미지, 문장 등 특정 데이터 집합을 일컫습니다. 참고한 논문에선 언어 번역기를 베이스라인으로 잡았습니다. 언어번역기의 구조는 그림 1과 같습니다. 그림 1 언어번역기 구조 언어 번역기 또한 영어 (도메인) 한국어(도메인)으로 변환해줍니다. 이때 모델 구조는 텍스트, 시계열 데이터 처리에 능한 RNN을 사용하였습니다. 즉, RNN(Encoder) - RNN(Decoder) 구조입니다. 이미지 캡셔닝은 입력데이터로 이미지를 입력해야하므로 이미지 처리에 특화된 CNN으로 변경하였습니다. 따라서 초기의 이미지 캡셔닝 구조는 그림 2와 같습니다. 그림 2 이미지 캡셔닝 구조 이미지를 Encoder인 CNN에 입력한 후 Spatial feature를 추출하고, 추출된 feature를 RNN의 vanising gradient problem을 해결한 LSTM(Decoder)에 입력하게 됩니다. 이때 word embedding이 되어 있어야 단어가 생성될 수 있는데 word embedding에 관해 간단하게 설명 드리도록 하겠습니다. 기존 classification 문제같은 경우는 이미지-class 로 one-hot-encoding을 진행합니다. 즉, 아래 그림과 같이 개는 어떤 축에 존재하고 고양이는 다른축에 존재하는 식으로 되기 때문에 class가 많을 수록 depth가 깊어지게 됩니다. 다른말로, sparse vector라고도 합니다. one-hot-encoding의 장점은 간단하게 표기가 가능하다는 점입니다. depth가 깊어지는 것 제외하고도 단점...