38
Show and Tell : A Neural Image Caption Generator 참참참참 1. “Show and Tell: A Neural Image Caption Generator”, O.Vinyals, A.Toshev, S.Bengio, D.Erhan 2. CV 참참참 @ 참참CVPR2015 참참참 참참참참 , 참참참참 3. Lecture Note “Recurrent Neural Networks”, CS231n, Andrej Karpathy 2016. 7. 참참참 참참참참참참참참참

A neural image caption generator

  • Upload
    -

  • View
    1.102

  • Download
    2

Embed Size (px)

Citation preview

Page 1: A neural image caption generator

Show and Tell : A Neural Image Caption Generator

참고자료1. “Show and Tell: A Neural Image Caption Generator”, O.Vinyals, A.Toshev,

S.Bengio, D.Erhan2. CV 勉強会 @ 関東「 CVPR2015 読み会」発表資料 , 皆川卓也3. Lecture Note “Recurrent Neural Networks”, CS231n, Andrej Karpathy

2016. 7.

김홍배한국항공우주연구원

Page 2: A neural image caption generator

개요 1 장의 스틸사진으로 부터 설명문 (Caption) 을 생성 자동번역등에 사용되는 Recurrent Neural Networks (RNN) 에

Deep Convolutional Neural Networks 에서 생성한 이미지의 특징벡터를 입력 Neural Image Caption (NIC)

종래방법을 크게 상회하는 정확도

Page 3: A neural image caption generator

Convolutional Neural Networks (CNN) CNN 이 「학습데이터로부터 이미지 인식에 효과적인 특징들을 자동으로 학습하는 네트워크」 라는 것을 이해하고 있어야 함 GoogLeNet 을 개량한 아래 논문을 사용

S.Ioffe and C.Szegedy, “Batch Normalization: Accelerating Deep Network Training by Reducing Internal Covariate Shift”, arXiv 2015

Page 4: A neural image caption generator

Reccurent Neural Networks (RNN)

・・・・

・・

시계열 데이터등의 「연속적 데이터」를 취급하기 위한 뉴럴넷 음성인식 , 자동번역 , 영상인식등에 활용

예측대상의 dimension 이 가변 시간 t 의 은익층 출력이 시간 t+1 의 은익층 입력으로 됨

출력

은익층

입력

Page 5: A neural image caption generator

Reccurent Neural Networks (RNN) 전개하면 정적인 네트워크로 표현됨 .

・・・・

・・

・・・・

・・

・・・・

・・t-1 t t+

1

출력

은익층

입력

훈련데이터 훈련데이터 훈련데이터

일반적인 오차 역전파법으로 변수를 학습시킬 수 있다 .

Page 6: A neural image caption generator

Long-Short Term Memory (LSTM)

RNN 은 계열이 길어지면 계층이 깊어지므로 전파된 오차구배가 발산 또는 소멸됨 .

Gradient Vanishing or Explosion

각 데이터의 입출력 및 과거 데이터의 사용 / 미사용을 제어함으로써 , 긴 계열을 취급가능 .

Long-Short Term Memory (LSTM)

Page 7: A neural image caption generator

depth

time

RNN

LSTM

tt-1

l

l-1

h𝑡−1𝑙

h𝑡𝑙−1

h𝑡𝑙

h𝑡𝑙

Long-Short Term Memory (LSTM) RNN 과 LSTM 의 수식적 차이

Page 8: A neural image caption generator

f

x

i g

x

+

tanh

o

xf

x

i g

x

+

tanh

o

x

@ time t

ht-1 xt xt+1ht ht+1

ct-1

Cell state

ct ct+1

Long-Short Term Memory (LSTM)

@ time t+1

LSTM 의 각각의 Cell 은 다음과 같으며 , 여러 개의 gate 로 구성

입력 또는 하부층 출력

전시점 (t-1) cell 데이터

전시점 (t-1) 출력

출력

Page 9: A neural image caption generator

f

Forget Gate 과거 계열 데이터의 사용 / 미사용을 제어

𝑓𝑡 = 𝜎( 𝑊𝑓𝑥 𝑥𝑡 + 𝑊𝑓h ht-1)x

Long-Short Term Memory (LSTM)

ct-1

ht-1

xt

- Sigmoid ft’n 의 출력값은 0 ~ 1 사이에 존재- ft 가 “ 1” 이면 이전 State 값을 유지- ft 가 “ 0” 이면 이전 State 값을 삭제

Cell state

학습하는 변수

입력 또는 하부층 출력

전시점 (t-1) cell 데이터

전시점 (t-1) 출력

Page 10: A neural image caption generator

Input Gate 입력데이터의 사용 / 미사용을 제어

Long-Short Term Memory (LSTM)

i g

x

f

gt= tanh(Wgx x𝑡 + 𝑊ghht-1)xct-1

ht-1

xt - gt 는 Hyperbolic tangent ft’n 의 출력값이므로 -1 ~ 1 사이에 존재- it 는 Sigmoid ft’n 의 출력값이므로 0~1 사이에 존재

Cell state

+

it= σ(Wix x𝑡 + 𝑊-ihht-1)yt = gt⨀it

y

학습하는 변수ht-1

xt

ct 현시점 (t) cell 데이터

Page 11: A neural image caption generator

Output Gate 출력데이터의 사용 / 미사용을 제어

Long-Short Term Memory (LSTM)

x

f

ot = σ(Wox x𝑡 + 𝑊ohht-1)

xct-1

Cell state

+

ht = ot⨀tanh(ct)

y

학습하는 변수

tanh

o x

ht

ht-1

xt

ct

현시점 (t) 출력

Page 12: A neural image caption generator

Long-Short Term Memory (LSTM)

i

f

o

g

sigmoid

sigmoid

tanh

sigmoid

4n x 2n 4n 4*n

nx1

nx1

Wix Wih

Wfx Wfh

Wox Woh

Wgx Wgh

xt

2n

Matrix 와 Vector 형태로 간략화 시키면

LSTM weight matrix to be identified

하층 출력 또는 입력벡터 (x)

전시점 (t-1) 출력벡터

Page 13: A neural image caption generator

Neural Image Caption (NIC) 사진 (I) 를 입력으로 주었을 때 정답 “설명문“ , S 를 만들어 낼 가능성을 최대가 되도록 학습데이터 (I, S) 를 이용하여 넷의 변수 (w) 들을 찾아내는 과정

설명문w∗ = argmin

w 사진 , 변수

확률

손실함수전체 학습데이터 셋에 대한 손실함수

손실함수를 최소화 시키는 변수 , w* 를 구하는 작업

Page 14: A neural image caption generator

Neural Image Caption (NIC)사진으로부터 설명문 생성

𝑝 (𝑆|𝐼 ;𝑤 )=∏𝑡=0

𝑁

𝑝 (𝑆𝑡|𝐼 ,𝑆0 ,𝑆1 , ·· · ,𝑆𝑡 −1 ;𝑤 )단어수

각 단어는 그전 단어열의 영향을 받는다 .

𝑆 ={𝑆0 , 𝑆1, ⋯}단어 , 따라서 설명문 S 는 길이가 변하는 계열데이터

Page 15: A neural image caption generator

Neural Image Caption (NIC)사진으로부터 설명문 생성

𝑝 (𝑆|𝐼 ;𝑤 )=∏𝑡=0

𝑁

𝑝 (𝑆𝑡|𝐼 ,𝑆0 ,𝑆1 , ·· · ,𝑆𝑡 −1 ;𝑤 )

학습 데이터 셋 (I,S) 로 부터 훈련을 통해 찾아내는 변수

Page 16: A neural image caption generator

ht-1

xt

단어 @ t

Neural Image Caption (NIC)

St

LSTM

WeSt

입력 @ t

출력 @t

Pt+1(St+1)=softmax()

LSTM based Sentence Generator 의 기본 구조

h𝑡❑

: 단어별 확률적 분포를 계산

ht

log𝑝 (S t +1)  : 손실함수 계산

: word embedding 과정

출력 @t-1

Page 17: A neural image caption generator

17

Neural Image Caption (NIC) Word Embedding

일반적으로 “ one hot“ vector 형태로 단어를 나타내는데 ,

단어들로 구성된 Dictionary 의 크기가 바뀌기 쉬움이경우 LSTM 의 모델링등에 어려움이 있음이에 따라 가변의 “ one hot“ vector 형태를 고정된 길이의 Vector 형태로 변형시키는 과정이 필요

dog

0 0

1 0

0 0

0 0

0 0

cat

one hot vector representation

0 0

0 0

0 0

1 0

0 0

Word embedding vector representation

dog0.

1 0

.3 0

.2 0

.1 0

.2 0

.3

cat

we

0.2

0.1

0.2

0.2

0.1

0.1

xtSt

Page 18: A neural image caption generator

18

Neural Image Caption (NIC) 손실함수

For J(w)=-log

𝑦 𝑖1

J(w)

As approaches to 1, J(w) becomes 0

J(w)=-∑

y  : 분류기에서 추정한 확률값

y_ : 정답

Cross entropy 로 정의함

Page 19: A neural image caption generator

Neural Image Caption (NIC)

Page 20: A neural image caption generator

Neural Image Caption (NIC)

사진의 특징 벡터를 Deep CNN 에서가져움

LSTM 으로 최초의 입력이 됨 (𝒙−𝟏)

Page 21: A neural image caption generator

Neural Image Caption (NIC)

단어𝑺𝟎을 입력

다음 단어가𝑺𝟏 일 확률

Page 22: A neural image caption generator

Neural Image Caption (NIC)

h𝟎, c𝟎

Page 23: A neural image caption generator

NIC 의 학습과정ImageNet + Drop out으로 Pretraining 랜던하게 변수를 초기화

Page 24: A neural image caption generator

NIC 의 학습과정 학습용 사진과 설명문 셋

Page 25: A neural image caption generator

학습데이터

NIC 의 학습과정

예측확률손실함수

Page 26: A neural image caption generator

학습데이터

오차 역전파

NIC 의 학습과정 손실함수

Page 27: A neural image caption generator

NIC 로 예측 (Sampling)

Deep CNN 에서 특징벡터를 가져옴

사진이 주어짐

Page 28: A neural image caption generator

Special Start Word

가장 확률이 높은 단어 𝑺𝟏을 선택

NIC 로 예측 (Sampling)

Page 29: A neural image caption generator

선택된 단어 𝑺𝟏을 입력

end- of- sen-tence token 이 나타날때까지 계속

NIC 로 예측 (Sampling)

Page 30: A neural image caption generator

NIC 로 예측 (BeamSearch)

확률이 높은 k개의 단어를 유지

Page 31: A neural image caption generator

확률이 높은 k개의 문장을 유지

K 개의 단어를 입력

NIC 로 예측 (BeamSearch)

Page 32: A neural image caption generator

NIC 로 예측 (BeamSearch)

확률이 높은 k개의 문장을 유지

K 개의 단어를 입력

이하에서는 BeamSearch 를 이용

Page 33: A neural image caption generator

Dataset 실험에 사용된 데이터 셋

Page 34: A neural image caption generator

실험결과 3 개의 지표로 MSCOCO 데이터 셋에 대한 정량평가 사람이 평가한 성능에 근접한 결과를 내는 경우도 있음

Page 35: A neural image caption generator

다른 방법과의 비교 기존 방법에 비해 대폭적인 정확도 개선

Page 36: A neural image caption generator

상위 N 개의 문장열

4

동일한 사진에 대하여 다른 표현을 얻어냄 학습 데이터에는 없는 새로운 표현이 만들어짐

Page 37: A neural image caption generator

Ranking Results

Page 38: A neural image caption generator

결론 Deep CNN 과 RNN 을 사용해서 사진으로부터

설명문을 만들어내는 방법을 제안1 개의 네트웍으로 오차 역전파로 변수를 학습RNN 에는 LSTM 을 사용하여 긴 문장에서도 학습시에 전파되는 오차가 발산하지 않음 .

종래에 비하여 대폭적 정확도 개선