이미지 캡셔닝 Show and Tell 리뷰





이미지 캡셔닝이란 이미지를 문장(이미지를 설명하는)으로 변환시켜주는 기술입니다.
이때 인공지능 용어에서 도메인이라는 단어를 사용하는데 도메인은 이미지, 문장 등 특정 데이터 집합을 일컫습니다.
참고한 논문에선 언어 번역기를 베이스라인으로 잡았습니다.
언어번역기의 구조는 그림 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가 깊어지는 것 제외하고도 단점으로는아래 vector space를 보시면 축들이 서로 90도를 이루고 있는데, 이는 Inner product = 0이라는 뜻으로 서로 상관관계가 없다는 뜻입니다.그러나 저희가 해야할 것은 word embedding으로 단어들을 vector 공간에 embedding 해야하는데, 단어들은 각각의 상관관계가 있기 때문에 one-hot-encoding으로 표현이 불가능한 것입니다. [그림 3 참고]
그림 3 One-hot encoding
그래서 나온 이론이 Distributed representations로 한국어로 분산표상이라고 합니다. 이것은 dense vector로 표현하는 방법이며 one-hot-encoding과 같이 0또는 1 즉, 정수로 이루어지지 않고 소수로 표현을 하는 개념입니다. 즉, 아래 그림 4와 같습니다.
수식을 보면 단어의 개수보다는 단어의 특징으로 표현을 하자는 개념입니다. 즉, man은 명사, 성별을 나타내는 등의 특징으로 depth를 구성하겠다는 뜻입니다.
그림 4에서도 알 수 있듯 기존 one-hot 방법은 9개의 도형을 9가지로 분류가 가능하지만, 분산표상은 모양과 색, 2가지로 구분이 가능합니다.
word embedding은 대량의 텍스트와 학습을 통해 이루어지며 google의 word2vec이나 facebook의 fasttext 등 학습이된 모델들도 있으니 참고 부탁드리겠습니다.
그림 4 분산표상
다음은 모델 학습과정에 대해 설명드리겠습니다. 사실 encoder 부분은 CNN과 크게 다른 부분이 없으므로 넘어가고, decoder부분인 LSTM 파트에서 loss 값을 계산하는 방법은 아래와 같습니다. 여러 수식들이 있지만 간단하게 설명드리자면,
  1. LSTM 각 셀에서 예측된 다음 단어들 중에서 가장 유력한 후보를 선정
  2. 가장 유력한 단어의 loss 값을 도출
  3. 모든 셀의 loss 값을 더한 것을 학습의 loss값으로 선정하고 0이 될때 까지 학습


여기서 궁금한 것은 맨 처음 즉, 위 그림에서 S0에는 어떤 데이터를 넣느냐입니다. 정답은 <start_token>을 넣습니다. 마찬가지로 맨 마지막 단어에는 <end_token>을 넣습니다. 이것은 여러 데이터 셋들을 보시면 이런식으로 되어 있으며, 이는 다음단어를 산출하는 LSTM의 특성상 맨 처음과 마지막에 산출될 단어를 더미로 생성한 것입니다.

여기까지가 기본적인 이미지 캡셔닝 모델입니다.


댓글

이 블로그의 인기 게시물

Versatile video coding Test Model(VTM) Build

Image Super-Resolution Using Deep Convolutional Networks 논문리뷰