Show, attend and tell: Neural image caption generation with visual attention (ICML 2015)

  • 논문 제목: Show, attend and tell: Neural image caption generation with visual attention
  • 주 저자: Kelvin Xu (몬트리올 대학)
  • 참여 연구 기관: 몬트리올 대학, 토론토 대학


요즘 들어 주목받고 있는 attention model 에 관한 연구이다. Attention model 은 시계열 분석 모델에서 처음 적용되기 시작했다. 대표적인 논문 중 하나는 Bahdanau 가 기계 번역에 적용한 아래 논문이다. Bahdanau 는 기계 번역을 위해 Bi-LSTM 구조를 채용하고, 현재 시점을 중심으로 일정 time window 에 포함되는 LSTM hidden state 의 가중합으로 출력값을 추정한다. 이 때, hidden state 에 대한 가중치가 attention model 의 추정값이 된다.
최근 들어 attention model 을 computer vision 분야에 적용하는 논문들이 발표되고 있다. 여기서 소개하는 논문은 이미지가 한 장 주어졌을 때, 이미지를 설명하는 문장을 생성하는 image captioning 기술에 관한 것이다. 



Image captioning을 위해서는 이미지 내에 어떠한 'context'가 내재되어 있는지 분석해야 한다. 본 논문에서는 context 분석 시 이미지 내에서 어느 위치를 주목해서 봐야하는지 attention model 을 이용하여 추정하고 있다. 아래 그림에서 본 논문의 전체적인 기술 구조를 도식화하였다.



위 그림에서 보여지듯이, 전체적인 구조는 encoder-decoder 구조를 채택하고 있다.

CNN (Convolutional Neural Network) 을 이용하여 각 위치별 특징 벡터를 생성하고 (feature vector set), 특징 벡터에 attention model 을 적용하여 LSTM (Long-Short Term Memory) 입력 벡터 z를 생성하며, 최종적으로 LSTM에 기반하여 문장을 형성하는 단어를 순차적으로 출력하는 구조이다. 현재 시점 t 에서의 caption 출력을 위해 '특정 위치'에서 생성된 feature vector 에 가중치를 주는 방식이다. 즉, caption 하나를 생성할 때 마다 특정 위치를 참조하게 만든 구조이다. CNN 출력 feature vector set 의 각 벡터는 이미지 내 특정 위치에서의 정보를 담고있으며,  CNN 구조로는 GoogLeNetVGGAlexNet 구조를 채택하였다.

Attention model ⏀는 LSTM이 이전 시점 t-1 에서 출력한 hidden state ht-1를 참조하여, CNN 의 결과물인 각 feature vector 에 부여할 가중치를 추정하고, 최종적으로 feature vector 에 추정된 가중치를 부여하여 현재 시점 t 에서 LSTM 으로 입력될 벡터 zt를 생성한다. 즉, attention model 은 현재 시점의 caption 출력을 위해서 이미지 내에서 어느 위치를 주목해서 봐야하는가를 결정하는 역할을 한다LSTM 은 벡터 z를 입력받고, 현재 시점에 해당하는 caption 추정을 위한 hidden state vector 를 출력한다. Attention model ⏀는 현재 시점 t 에서 feature vector 중 어느 것에 더 가중치를 부여해야 하는지를 추정함으로써, 현재 시점 t 에서의 caption 출력을 위해 이미지 내 어느 위치에 'attention' 해야 하는지를 결정하게 된다.
LSTM의 입력은  최종 출력값 (output caption)과 feature vector를  조합하여 구성하는 multi-modal embedding 구조를 채용하였다. Multi-modal embedding 구조는 (Karpathy, 2015) 제안을 따랐다. Multi-modal embedding 구조는 현재 시점의 출력 caption yt 를 LSTM 에 재입력 함으로써, 이전에 출력한 모든 caption 에 대한 정보를 LSTM 이 저장하여 다음 시점 t+1 에서 출력해야 할 caption 에 대한 정보 추정을 용이하게 한다. 
위 그림에서 Lz, Lh, Lo 및 Embedding E 는 서로 다른 차원의 벡터에 대해 element-wise 연산을 적용하기 위한, 차원 변환 매트릭스라고 볼 수 있다.
LSTM 학습 시, memory 및 hidden state 초기화는 feature vector 평균 값을 이용하여 설정한다. (논문에 finit,c 와 finit,h 에 대한 설명은 기술되어 있지 않다.)



Attention model ⏀는 L개 feature vector 에 부여될 가중치를 결정한다. 가중치는 0 ~ 1 사이의 값을 가지며 모든 가중치의 합이 1이 되는 deterministic soft attention model 과 각 가중치가 0 또는 1의 값을 가지는 stochastic hard attention model 두 가지 형태가 있다. 

[ Stochastic Hard Attention Model ]

Stochastic hard attention 은 가중치가 0 또는 1 이며, 아래 그림 및 수식과 같이 나타낼 수 있다. st,i 는 0 또는 1이며 어느 위치를 지정할 것인가에 대한 location variable 로 볼 수 있다. Alpha value 계산까지는 soft attention 과 동일하나, 최종 가중치가 0 또는 1로 설정되는 과정이 alpha 와 feature vector 가 주어질 때의 multinoulli distribution sampling 인 것만 다르다.



Stochastic hard attention 학습 방법은 Monte Carlo sampling 방식으로 진행한다. 아래 수식의 variational lower bound on the marginal log-likelihood 손실에 대해 최적화하여 hard attention 'Wh' parameter 를 학습한다. (참고: 아래 수식의 W 에는 아래 첨자 h가 빠져 있다.)



위 수식에서, 모든 경우의 s 에 대해 (즉, 모든 시점 t 마다 선택 가능한 모든 location 조합에 대해) 손실을 최적화하는 것은 현실적으로 어려움이 있다. 따라서, 아래 수식과 같이 각 시점 t에 대해 multinoulli distribution 으로 location sampling 을 적용하고, 이들 sample 조합에 대한 평균으로 log-likelhood를 근사화 하는 방법을 적용하였다 (Monte Carlo sampling).



Monte Carlo sampling 방식의 파라메터 추정은 파라메터 분산을 크게 만들 수 있다. 파라메터 분산을 줄이기 위해 exponential decay averaging log-likelyhood 및 multinoulli distribution entropy term H[s] 를 적용하여 아래와 같은 최종 손실함수를 설정하였다.



위 수식은 "attention choosing a sequence of actions" 에 대한 보상을 최대화하는 것으로써, 강화학습 모델과 동일하다.


[ Deterministic Soft Attention Model ]

Deterministic soft attention model 은 multilayer perceptron Ws, softmax 함수 및 element-wise dot product 로 구성되어 있다. Multilayer perceptron 'Ws' 는 feature vector set 과 LSTM 의 이전 시점 hidden state vector 를 입력받아서 이미지 내 어느 위치에 높은 가중치를 부여할지 결정하는 계수 e 를 출력한다. Softmax 함수는 계수 e 를 입력받아 계수의 dynamic range 를 0 ~ 1, summation 을 1로 만들어 최종 가중치를 생성한다. Dot product 은 가중치를 각 feature vector 에 부여하여 caption 생성을 위한 LSTM 으로 전달한다. Soft attention model 구조를 아래 그림에 나타내었다.






학습을 위해 hard attention 방식에서 사용한 sampling 이 필요없다. z vector 연산을 가중합으로 수행하고, 최종 손실로 부터의 back-propagation 을 통해 직접적인 파라메터 추정이 가능하다. 또한 attention weight 가 'object' 에 보다 집중하게 하기 위해서 hidden state t-1 로 부터 gating scalar beta 를 생성하고, 이를 attention model 에 반영한다.







학습 시, C 개 caption 을 생성할 동안 position i 의 time summation 이 1에 가깝게 되도록 유도 하는 방식으로 (즉, C 개 caption 생성을 위해 모든 position 이 동일한 중요도로 기여할 수 있도록 유도함) regularization 을 적용하는 것이 성능 향상에 중요하다.

최종 손실 함수는 아래와 같이 설정하였다.








[ 학습 ]

  • DB
    • Flickr8k dataset
      • 8,000 images
      • 5 reference sentences per image
      • RMSProp optimizer 적용
    • Flickr30k dataset
      • 30,000 images
      • 5 reference sentences per image
      • RMSProp optimizer 적용
    • MS COCO dataset
      • 82,783 images
      • image 당 5개 이상 sentence 있음 -> 5개 초과분은 무시
      • Adam optimizer 적용
  • Fixed vocabulary size of 10,000
  • CNN 은 ImageNet 데이터셋으로 학습한 VGG 적용 (finetuning 하지 않았음).
  • 14 x 14 x 512 feature vector set -> decoder vector dimension 은 196 x 512 (L x D)
  • 하나의 mini-batch (size 64) 는 동일한 sentence length 를 가지도록 sampling (length 는 무작위 선택) -> 성능에 영향 없으면서 학습 속도 향상
    • MS COCO 데이터셋 학습에 3일 소요 (NVIDIA Titan Black GPU)



[ 실험결과 ]









[ Reference ]




Popular Posts

Multiple object recognition with visual attention (arXiv 2014)

Towards Accurate Multi-person Pose Estimation in the Wild (CVPR 2017)

Recurrent models of visual attention (NIPS 2014)

DeepPose: Human pose estimation via deep neural networks (CVPR 2014)

Convolutional pose machines (CVPR 2016)

Pose machines: Articulated pose estimation via inference machines (ECCV 2014)