a neural image caption generator
Post on 12-Jan-2017
1.105 Views
Preview:
TRANSCRIPT
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.
김홍배한국항공우주연구원
개요 1 장의 스틸사진으로 부터 설명문 (Caption) 을 생성 자동번역등에 사용되는 Recurrent Neural Networks (RNN) 에
Deep Convolutional Neural Networks 에서 생성한 이미지의 특징벡터를 입력 Neural Image Caption (NIC)
종래방법을 크게 상회하는 정확도
Convolutional Neural Networks (CNN) CNN 이 「학습데이터로부터 이미지 인식에 효과적인 특징들을 자동으로 학습하는 네트워크」 라는 것을 이해하고 있어야 함 GoogLeNet 을 개량한 아래 논문을 사용
S.Ioffe and C.Szegedy, “Batch Normalization: Accelerating Deep Network Training by Reducing Internal Covariate Shift”, arXiv 2015
Reccurent Neural Networks (RNN)
・・・・
・・
시계열 데이터등의 「연속적 데이터」를 취급하기 위한 뉴럴넷 음성인식 , 자동번역 , 영상인식등에 활용
예측대상의 dimension 이 가변 시간 t 의 은익층 출력이 시간 t+1 의 은익층 입력으로 됨
출력
은익층
입력
Reccurent Neural Networks (RNN) 전개하면 정적인 네트워크로 표현됨 .
・・・・
・・
・・・・
・・
・・・・
・・t-1 t t+
1
출력
은익층
입력
훈련데이터 훈련데이터 훈련데이터
일반적인 오차 역전파법으로 변수를 학습시킬 수 있다 .
Long-Short Term Memory (LSTM)
RNN 은 계열이 길어지면 계층이 깊어지므로 전파된 오차구배가 발산 또는 소멸됨 .
Gradient Vanishing or Explosion
각 데이터의 입출력 및 과거 데이터의 사용 / 미사용을 제어함으로써 , 긴 계열을 취급가능 .
Long-Short Term Memory (LSTM)
depth
time
RNN
LSTM
tt-1
l
l-1
h𝑡−1𝑙
h𝑡𝑙−1
h𝑡𝑙
h𝑡𝑙
Long-Short Term Memory (LSTM) RNN 과 LSTM 의 수식적 차이
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) 출력
출력
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) 출력
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 데이터
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) 출력
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) 출력벡터
Neural Image Caption (NIC) 사진 (I) 를 입력으로 주었을 때 정답 “설명문“ , S 를 만들어 낼 가능성을 최대가 되도록 학습데이터 (I, S) 를 이용하여 넷의 변수 (w) 들을 찾아내는 과정
설명문w∗ = argmin
w 사진 , 변수
확률
손실함수전체 학습데이터 셋에 대한 손실함수
손실함수를 최소화 시키는 변수 , w* 를 구하는 작업
Neural Image Caption (NIC)사진으로부터 설명문 생성
𝑝 (𝑆|𝐼 ;𝑤 )=∏𝑡=0
𝑁
𝑝 (𝑆𝑡|𝐼 ,𝑆0 ,𝑆1 , ·· · ,𝑆𝑡 −1 ;𝑤 )단어수
각 단어는 그전 단어열의 영향을 받는다 .
𝑆 ={𝑆0 , 𝑆1, ⋯}단어 , 따라서 설명문 S 는 길이가 변하는 계열데이터
Neural Image Caption (NIC)사진으로부터 설명문 생성
𝑝 (𝑆|𝐼 ;𝑤 )=∏𝑡=0
𝑁
𝑝 (𝑆𝑡|𝐼 ,𝑆0 ,𝑆1 , ·· · ,𝑆𝑡 −1 ;𝑤 )
학습 데이터 셋 (I,S) 로 부터 훈련을 통해 찾아내는 변수
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
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
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 로 정의함
Neural Image Caption (NIC)
Neural Image Caption (NIC)
사진의 특징 벡터를 Deep CNN 에서가져움
LSTM 으로 최초의 입력이 됨 (𝒙−𝟏)
Neural Image Caption (NIC)
단어𝑺𝟎을 입력
다음 단어가𝑺𝟏 일 확률
Neural Image Caption (NIC)
h𝟎, c𝟎
NIC 의 학습과정ImageNet + Drop out으로 Pretraining 랜던하게 변수를 초기화
NIC 의 학습과정 학습용 사진과 설명문 셋
학습데이터
NIC 의 학습과정
예측확률손실함수
학습데이터
오차 역전파
NIC 의 학습과정 손실함수
NIC 로 예측 (Sampling)
Deep CNN 에서 특징벡터를 가져옴
사진이 주어짐
Special Start Word
가장 확률이 높은 단어 𝑺𝟏을 선택
NIC 로 예측 (Sampling)
선택된 단어 𝑺𝟏을 입력
end- of- sen-tence token 이 나타날때까지 계속
NIC 로 예측 (Sampling)
NIC 로 예측 (BeamSearch)
확률이 높은 k개의 단어를 유지
확률이 높은 k개의 문장을 유지
K 개의 단어를 입력
NIC 로 예측 (BeamSearch)
NIC 로 예측 (BeamSearch)
확률이 높은 k개의 문장을 유지
K 개의 단어를 입력
이하에서는 BeamSearch 를 이용
Dataset 실험에 사용된 데이터 셋
실험결과 3 개의 지표로 MSCOCO 데이터 셋에 대한 정량평가 사람이 평가한 성능에 근접한 결과를 내는 경우도 있음
다른 방법과의 비교 기존 방법에 비해 대폭적인 정확도 개선
상위 N 개의 문장열
4
동일한 사진에 대하여 다른 표현을 얻어냄 학습 데이터에는 없는 새로운 표현이 만들어짐
Ranking Results
결론 Deep CNN 과 RNN 을 사용해서 사진으로부터
설명문을 만들어내는 방법을 제안1 개의 네트웍으로 오차 역전파로 변수를 학습RNN 에는 LSTM 을 사용하여 긴 문장에서도 학습시에 전파되는 오차가 발산하지 않음 .
종래에 비하여 대폭적 정확도 개선
top related