ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [CV+NLP] Show and Tell: A Neural Image Caption Generator 논문 리뷰
    Paper Review 2021. 7. 5. 01:56
    반응형

    논문과 구글링해서 얻은 내용을 정리한 글 입니다.

    1. Introduction

    이미지의 컨텐츠를 영어 문장을 사용해 자동으로 설명하는 '이미지 캡셔닝(image captioning)' 문제를 다룬다.

    논문에서 제안하는 모델의 간단한 구조

    이미지 캡셔닝은 기계 번역 문제에서 영감을 얻었다. 기계 번역 문제는 source 언어로 쓰인 문장(S)을 target 언어로 번역된 문장(T)으로 변환하며 이때 p(T|S)를 최대화함으로써 해결한다. 예를 들어, 기계 번역 모델 중 하나인 seq2seq 모델은 encoder RNN이 source 문장(S)을 입력으로 받아 고정 길이 벡터 표현으로 변환한다. 그리고 변환된 벡터 표현은 target 문장(T)을 생성하는 decoder RNN의 입력으로 사용된다. seq2seq의 구조는 아래와 같다.

    Seq2seq 구조

    본 논문에서는 encoder의 RNN을 CNN으로 대체하는 방법을 제안한다. 이미지를 encoder CNN에 입력해서 나온 출력값을 decoder RNN으로 전달하여 문장을 생성하는 Neural Image Caption(NIC) 모델을 개발했다. 이 모델은 이미지(I)를 입력으로 받아 단어 S={S1, S2, ...}의 타켓 시퀀스(문장, S)를 생성하는 likelihood p(S|I)를 최대화하도록 훈련된다. (기계 번역과 비슷한 원리이다.)

    Contributions

    1. 첫 번째는 end-to-end 시스템이다. 이미지 캡셔닝 문제를 해결하려면 이미지에서 특징을 추출하는 단계, 그 특징을 단어로 바꾸는 단계 등 단계 별로 문제를 해결해야 한다. 그러나 본 논문에서는 하위 작업을 연결하는 것(stich together existing solutions of the above sub-problems)이 아닌 한 번에 문제를 해결하는(end-to-end) 시스템을 제안한다. SGD를 사용해 전체 신경망을 훈련할 수 있다.
    2. 두 번째 vision 모델과 언어 모델을 결합한 모델이다.

    2. Related Work

    Pass

    3. Model

    모든 학습 데이터(I, S)에 대하여, 이미지(I)가 주어졌을 때 올바른 설명(S)의 확률을 최대화하는 모델의 파라미터(θ)를 찾는 것이 목표이다.

    설명 문장(S)은 길이가 정해져 있지 않으므로 연쇄 법칙을 적용해 모든 단어들(S0, ..., SN)에 대한 결합 확률로 모델링을 해야 한다. t번째 단어를 생성할 때 이미지와 이전 시점에 나왔던 단어들을 모두 고려한다.

    순환 신경망의 메모리는 비선형 함수 f를 이용해 새로운 입력값 xt를 받아 다음과 같이 업데이트된다.

    RNN을 좀 더 구체적으로 만들기 위해 1) f의 정확한 형태는 무엇인지? 2)이미지와 단어를 입력값(xt)으로 어떻게 공급할 것인지? 를 정해야 한다. 본 논문에서는 순환 신경망으로 LSTM을 사용하며 이미지는 CNN을 사용해 이미지 표현으로 만들고 단어는 워드 임베딩을 통해 단어 표현으로 만들어 입력값으로 사용한다.

    3.1 LSTM-based Sentence Generator

    RNN은 기울기 소실과 폭발 문제가 있으므로 LSTM을 사용했다. 아래는 논문에 첨부된 LSTM인데 자주 보던 구조와는 달라 생소하게 느껴진다.

    LSTM 구조

    Training

    LSTM 모델은 이미지와 이전에 나왔던 단어들을 참고하여 문장의 각 단어를 예측하도록 훈련된다.

    NIC의 구조
    NIC의 좀 더 자세한 구조

    I는 이미지, S=(S0, ..., SN)은 이미지(I)를 설명하는 문장, St: 단어 사전의 크기와 동일한 차원인 원핫 벡터(S0: special start token / SN: special end token)일 때,

    이미지(I)는 CNN에 입력되어 x-1(이미지 표현)을 출력한다. WeSt는 단어 임베딩과 원핫 벡터를 곱해 St의 단어 표현(xt)을 나타낸다. 단어 표현은 LSTM을 통해 그다음에 올 단어의 확률을 출력한다.

    이미지는 t=-1 시점에서 한 번만 입력된다. 매 타임스텝에 이미지를 추가적으로 입력했을 때 열등한 결과가 생성되었기 때문이다. (과적합으로 인한 안 좋은 결과)

     

    손실은 각 스텝에서의 정확한 단어에 대한 negative log likelihood의 합계이다.

    손실은 LSTM, 이미지 임베더 CNN의 top layer, 단어 임베딩 We의 모든 파라미터에 대해 손실이 최소화되도록 훈련한다.

    Inference

    이미지가 주어졌을 때 문장을 생성하는 방법으로 SamplingBeamSearch를 고려했다.

    Sampling

    샘플링은 p1 확률에 따라 첫 번째 단어를 샘플링하고 1st 단어의 해당 임베딩을 입력하여 p2를 얻는다. (predict -> sample -> predict -> sample ...) special end token을 샘플링할 때까지 혹은 문장 최대 길이에 도달할 때까지 반복한다.

    BeamSearch

    빔서치는 special start token 다음으로 상위(확률이 높은) k개의 단어를 선택한다. 선택된 단어들 각각에 대해 그다음으로 올 상위 k개의 단어를 고려한다. 첫 번째 단어와 두 번째 단어의 조합(문장) 중에서 상위 k개의 문장을 선택한다. 선택된 상위 k개의 문장 다음으로 올 상위 k개의 단어를 고려한다. 이런 방식으로 시퀀스가 끝난 후 가장 높은 확률을 가지는 문장을 선택한다. 논문에서는 BeamSearch 방법을 선택했다.

    4. Experiments

    4.1 Evaluation Metrics

    • 평가자들이 주관적인 점수 매기기: 가장 신뢰할 수 있는 메트릭, Amazon Mechanical Turk 실험을 사용함
    • BLEU: 생성된 문장과 참조 문장 간의 단어 n-gram의 정밀도 형태,-생성된 문장과 참조 문장 간의 n-gram을 통해 순서쌍들이 얼마나 겹치는지 측정
    • recall@k(ranking metrics): 예를 들어, 이미지에 대한 캡션을 10개 생성했는데 괜찮은 캡션(순서 정하는 것이 주관적임) 상위 10% 중에서 생성한 캡션이 들어 있으면  recall 10%라고 표현함
    • METEOR
    • CIDER

    4.2 Datasets

    SBU 데이터를 제외한 나머지 데이터는 5개의 문장이 라벨링되어 있다. SBU 데이터는 이미지 소유자가 Flickr에 업로드할 때 올린 설명으로 구성된다. 일종의 노이즈 역할을 하는 데이터로 생각하면 된다.

    4.3 Results

    논문에서는 다음과 같은 질문에 답변을 하고 싶어 한다.

    "데이터 셋의 크기일반화에 어떻게 영향을 미치는가?"

    "어떤 종류의 전이 학습을 할 수 있는가?"

    "약하게 라벨링 된 예제를 어떻게 처리 할 것인가?"

    4.3.1 Training Details

    모델을 훈련할 때 과적합 문제가 있었다. 논문의 모델은 지도 학습 기반이므로 많은 데이터가 요구된다. 그러나 높은 품질의 데이터는 100,000개 이하로 데이터가 부족한 문제가 있다. 또한, 이미지 캡셔닝은 객체 분류보다 어려운 문제이고 데이터 기반 접근법(지도 학습)은 ImageNet과 같은 큰 데이터 덕분에 최근에 들어서야 많이 쓰이게 되었다. 결과적으로 훈련 데이터의 양이 커진다면 (논문의) 모델의 결과도 좋을 것이다.

    과적합 문제를 해결하기 위해 다음과 같은 기술들을 연구했다. 모델의 CNN의 가중치를 ImageNet과 같은 데이터에 대해 사전 훈련된 모델로 초기화를 했다. 워드 임베딩도 대량의 뉴스 데이터에 대해 사전 훈련된 모델의 가중치로 초기화를 해보았지만 큰 효과가 없어서 적용하지 않은 단순한 상태를 유지했다. 또한, 모델 수준의 기술로 드롭아웃(Dropout)과 앙상블(Ensemble) 기법을 적용했다. 모멘텀(momentum) 없이 고정된 학습률(learning rate)을 가지는 SGD를 사용해 가중치를 훈련했다. CNN을 제외한 모든 가중치는 무작위로 초기화되었다. (CNN을 무작위로 초기화했을 때 결과가 좋지 않았음) 임베딩과 LSTM 메모리의 사이즈는 512를 사용했다.

    설명(텍스트 데이터)은 간단한 토크나이저(tokenizer)로 전처리를 진행했고 훈련 데이터에는 최소 5번 나온 단어들을 유지했다.

    4.2.3 Generation Results (생성된 문장을 메트릭을 이용해 평가한 결과에 대해 논의)

    테이블 1에서 NIC로 생성된 문장의 메트릭이 사람이 생성한 문장의 메트릭보다 점수가 높다. 그러나 4.3.6절에서 NIC로 생성된 문장과 GT(Ground Truth)를 사람이 평가한 결과를 보면 NIC로 생성된 문장의 결과가 GT보다 낮은 것을 알 수 있다. 이는 BLEU, METEOR, CIDER와 같은 메트릭의 한계이며 더 좋은 메트릭에 대한 연구가 필요한 것을 제안한다.

    4.3.3 Transfer Learning, Data Size and Label Quality (여러 관점에서의 전이 학습과 그 결과에 대해 논의)

    1. 데이터 크기(더 많은 훈련 데이터 사용)
      Flickr30k, Flickr8k는 동일한 그룹(제작사..?)에서 만들어졌기 때문에 라벨링이 비슷하다. 모델을 Flickr30k에 대해 훈련한 후 Flickr8k에서 테스트한 결과 BLEU 점수가 4점 상승했다. 이는 모델이 데이터 기반이며 과적합 가능성이 있기 때문에 데이터를 추가함으로써 점수가 상승하는 이점이 있다.
    2. 다른 도메인의 데이터 셋에 대한 전이 학습
      MSCOCO는 Flickr30k보다 데이터가 훨씬 크지만 두 데이터 셋의 수집 과정이 다르다. (논문에서는 도메인이 다르다고 하는 것 같다.) 1번에서는 유사한 데이터 셋끼리이고 2번은 다른 데이터 셋 끼리 실험하는 것이다. 모델을 MSCOCO에서 훈련한 후 Flickr30k에서 테스트한 결과 BLEU 점수가 10점 감소했지만 생성한 문장은 괜찮았다.
    3. 라벨 퀄리티(품질이 낮은 데이터)
      SBU는 라벨 퀄리티가 낮은 즉, 품질이 낮은 데이터 셋이다. 모델을 MSCOCO에서 훈련한 후 SBU에서 테스트 한 결과 BLEU 점수가 28에서 16점으로 감소했다.

    전이 학습을 할 때 있어서 데이터의 크기는 클 수록 좋고 같은 도메인의 데이터 셋을 사용한 것이 중요하며 데이터의 품질도 중요하다.

    4.3.4 Generation Diversity Discussion (모델이 새로운 캡션을 생성했는지 여부, 생성된 캡션이 다양하고 퀄리티가 높은지에 대해 논의)

    상위 15개의 생성된 문장의 BLEU 점수는 58점이다. 두꺼운 글씨의 문장은 훈련 셋에 없었던 새로운 캡션이다. 다양하고 퀄리티가 높은 문장을 생성했다고 볼 수 있다.

    4.3.5 Ranking Results (Ranking 평가 방법을 사용해 문장을 평가)

    랭킹 평가 방법이 캡션 생성을 평가하는 데 만족스럽지 않지만 많은 논문에서 랭킹 점수를 보고하고 있기 때문에 본 논문에서도 사용했다.

    4.3.6 Human Evaluation (4.2.3절과는 다르게 메트릭을 사용하지 않고 사람이 평가한 결과에 대해 논의)

    NIC가 다른 참조 모델들보다는 점수(사람이 평가한 점수)가 높지만 GT보다는 낮은 것을 알 수 있다. 그러나 4.3.2절에서는 BLEU 점수는 사람이 생성한 문장보다 NIC가 생성한 문장의 점수가 높았다. 그러므로 BLEU가 완벽한 메트릭이 아니라는 것을 보여준다.

    NIC가 주어진 사진에 대해 캡션을 생성한 결과인데 첫 번째 컬럼의 두 번째 이미지에서 작은 프리스비(frisbee)를 모델이 발견한 것이 흥미롭다.

    4.3.7 Analysis of Embeddings

    워드 임베딩에서 한 단어에 대해 가까이 있는 단어(벡터)들이 의미적으로도 유사한 것을 보여준다.

    5. Conclusion

    • end-to-end 뉴럴 네트워크 시스템인 NIC 제안함
      NIC는 이미지를 보고 영어로 적절한 설명을 생성함
    • NIC는 이미지를 compact한 표현으로 인코딩하는 convolution 신경망을 기반으로 하고 해당 문장을 생성하는 순환 신경망이 따름
    • 모델은 이미지가 주어졌을 때 문장의 likelihood를 최대화하도록 훈련됨
    • ranking 및 BLEU 메트릭을 통해 NIC의 robustness를 보여줌
    • 실험을 통해, 이미지 설명을 위한 데이터 셋이 클수록, NIC와 같은 접근법의 성능이 증가함
    반응형

    'Paper Review' 카테고리의 다른 글

    Visual Semantic Embedding  (0) 2022.01.20

    댓글

Designed by Tistory.