Upload
takuya-minagawa
View
1.375
Download
3
Embed Size (px)
Citation preview
CV勉強会@関東「CVPR2015読み会」 発表資料Show and Tell: A Neural Image Caption
Generator
2015/07/20 takmin
自己紹介テクニカル・ソリューション・アーキテクト
皆川 卓也(みながわ たくや)フリーエンジニア(ビジョン&ITラボ)「コンピュータビジョン勉強会@関東」主催博士(工学)
テクニカル・ソリューション・アーキテクト
皆川 卓也(みながわ たくや)フリーエンジニア(ビジョン&ITラボ)「コンピュータビジョン勉強会@関東」主催博士(工学)
略歴:1999-2003年日本HP(後にアジレント・テクノロジーへ分社)にて、ITエンジニアとしてシステム構築、プリセールス、プロジェクトマネジメント、サポート等の業務に従事
2004-2009年コンピュータビジョンを用いたシステム/アプリ/サービス開発等に従事
2007-2010年慶應義塾大学大学院 後期博士課程にて、コンピュータビジョンを専攻単位取得退学後、博士号取得(2014年)
2009年-現在フリーランスとして、コンピュータビジョンのコンサル/研究/開発等に従事
2http://visitlab.jp
紹介する論文
3
Show and Tell: A Neural Image Caption Generator
O.Vinyals, A.Toshev, S.Bengio, D.Erhan
“複雑な画像のキャプション(説明文)を自動生成するシステムをGoogleが研究開発中”, TechCrunch 2014-11-19
http://jp.techcrunch.com/2014/11/19/20141118new-google-research-project-can-auto-caption-complex-images/
前回の勉強会の@peisukeさんのRNN / LSTMに関する資料が大変参考になります。• http://www.slideshare.net/FujimotoKeisuke/learning-to-forget-continual-
prediction-with-lstm
概要
4
1枚の静止画像から説明文を生成
近年のReccurent Neural Networks (RNN)を用いた機械翻訳の手法をベースに、その入力をDeep Convolutional Neural Networksで生成した特徴ベクトルに置き換え Neural Image Caption (NIC)
従来手法を大きく上回る精度
Convolutional Neural Networks (CNN)
5
詳細は割愛。ここでは、「学習データから認識に有効な特徴量を自動で学習するネットワーク」程度の理解でOK。
ここではGoogLeNetを改良した以下の論文を使用。
S.Ioffe and C.Szegedy, “Batch Normalization: Accelerating Deep Network Training by Reducing Internal Covariate Shift”, arXiv 2015
Reccurent Neural Networks (RNN)
6
時系列データなどの「連続したデータ」を扱うためのニューラルネットワーク 音声認識、機械翻訳、動画像認識
予測先の次元数が可変
時刻tの隠れ層の出力が時刻t+1の隠れ層の入力になる
・・・・・・
・・・
入力
出力
隠れ層
Reccurent Neural Networks (RNN)
7
展開すると、静的なネットワークで表せる
・・・・・・
・・・
入力
出力
隠れ層・・・
・・・・・・
・・・・・・
・・・
t-1 t t+1
Reccurent Neural Networks (RNN)
8
展開すると、静的なネットワークで表せる
通常の誤差逆伝播法でパラメータを学習できる
・・・・・・
・・・
入力
出力
隠れ層・・・
・・・・・・
・・・・・・
・・・
t-1 t t+1
教師データ 教師データ 教師データ
Long-Short Term Memory (LSTM)
9
RNNは系列が大きくなると階層が深くなり、伝播した誤差の勾配が発散してしまう
各データの入出力および過去のデータの使用/不使用を制御して、長い系列を扱えるようにする。
Long-Short Term Memory (LSTM)
Long-Short Term Memory (LSTM)
10
RNN
・・・・・・
・・・
入力
出力
隠れ層
𝑥
𝑚𝑡
𝑐𝑡−1
𝑐𝑡
Long-Short Term Memory (LSTM)
11
LSTM
・・・・・・
・・・
入力
出力
隠れ層
ℎ
𝜎
𝜎
Input Gate
Output GateForget Gate
𝜎
Updating Term
𝑥
𝑚𝑡
𝑐𝑡
𝑐𝑡−1
𝑚𝑡−1
Long-Short Term Memory (LSTM)
12
LSTM
・・・・・・
・・・
入力
出力
隠れ層
ℎ
𝜎
𝜎
Input Gate
Output GateForget Gate
𝜎
Updating Term
𝑥
𝑚𝑡
𝑐𝑡
𝑐𝑡−1
𝑚𝑡−1
Long-Short Term Memory (LSTM)
13
ℎ
𝑥𝑡𝑚𝑡−1
𝑖𝑡
𝑦𝑡
𝜎𝑚𝑡−1
𝑥𝑡
Input Gate
入力データの使用/不使用を制御
Long-Short Term Memory (LSTM)
14
𝑦𝑡 = 𝑖𝑡⨀ℎ 𝑊𝑐𝑥𝑥𝑡 +𝑊𝑐𝑚𝑚𝑡−1
ℎ
𝑥𝑡𝑚𝑡−1
𝑖𝑡
𝑦𝑡
𝜎𝑚𝑡−1
𝑥𝑡
Input Gate
入力データの使用/不使用を制御
hyperbolic tangent関数
𝑖𝑡 = 1の時信号を通し𝑖𝑡 = 0の時通さない
Long-Short Term Memory (LSTM)
15
𝑦𝑡 = 𝑖𝑡⨀ℎ 𝑊𝑐𝑥𝑥𝑡 +𝑊𝑐𝑚𝑚𝑡−1
ℎ
𝑥𝑡𝑚𝑡−1
𝑖𝑡
𝑦𝑡
𝜎𝑚𝑡−1
𝑥𝑡
𝑖𝑡 = 𝜎 𝑊𝑖𝑥𝑥𝑡 +𝑊𝑖𝑚𝑚𝑡−1 Sigmoid関数
Input Gate
入力データの使用/不使用を制御
hyperbolic tangent関数
𝑖𝑡 = 1の時信号を通し𝑖𝑡 = 0の時通さない
Long-Short Term Memory (LSTM)
16
𝑦𝑡 = 𝑖𝑡⨀ℎ 𝑊𝑐𝑥𝑥𝑡 +𝑊𝑐𝑚𝑚𝑡−1
ℎ
𝑥𝑡𝑚𝑡−1
𝑖𝑡
𝑦𝑡
𝜎𝑚𝑡−1
𝑥𝑡
𝑖𝑡 = 𝜎 𝑊𝑖𝑥𝑥𝑡 +𝑊𝑖𝑚𝑚𝑡−1 Sigmoid関数
Input Gate
入力データの使用/不使用を制御
hyperbolic tangent関数
学習するパラメータ
Long-Short Term Memory (LSTM)
17
LSTM
・・・・・・
・・・
入力
出力
隠れ層
ℎ
𝜎
𝜎
Input Gate
Output GateForget Gate
𝜎
Updating Term
𝑥
𝑚𝑡
𝑐𝑡
𝑐𝑡−1
𝑚𝑡−1
Long-Short Term Memory (LSTM)
18
𝑓𝑡
𝑐𝑡
𝜎𝑚𝑡−1
𝑥𝑡
・・・
𝑦𝑡
𝑐𝑡−1
Forget Gate
過去の系列データの使用/不使用を制御
Long-Short Term Memory (LSTM)
19
𝑓𝑡
𝑐𝑡
𝜎𝑚𝑡−1
𝑥𝑡
・・・
𝑐𝑡 = 𝑓𝑡⨀𝑐𝑡−1 + 𝑦𝑡
𝑦𝑡
𝑐𝑡−1
Forget Gate
過去の系列データの使用/不使用を制御
𝑓𝑡 = 1の時信号を通し𝑓𝑡 = 0の時通さない
Long-Short Term Memory (LSTM)
20
𝑓𝑡
𝑐𝑡
𝜎𝑚𝑡−1
𝑥𝑡
・・・𝑓𝑡 = 𝜎 𝑊𝑓𝑥𝑥𝑡 +𝑊𝑓𝑚𝑚𝑡−1
𝑐𝑡 = 𝑓𝑡⨀𝑐𝑡−1 + 𝑦𝑡
𝑦𝑡
𝑐𝑡−1
Forget Gate
過去の系列データの使用/不使用を制御
Long-Short Term Memory (LSTM)
21
LSTM
・・・・・・
・・・
入力
出力
隠れ層
ℎ
𝜎
𝜎
Input Gate
Output GateForget Gate
𝜎
Updating Term
𝑥
𝑚𝑡
𝑐𝑡
𝑐𝑡−1
𝑚𝑡−1
Long-Short Term Memory (LSTM)
22
𝑐𝑡𝑜𝑡
𝑚𝑡
𝜎𝑚𝑡−1
𝑥𝑡
Output Gate
出力データの使用/不使用を制御
Long-Short Term Memory (LSTM)
23
𝑐𝑡𝑜𝑡
𝑚𝑡
𝜎𝑚𝑡−1
𝑥𝑡
Output Gate
出力データの使用/不使用を制御
𝑜𝑡 = 1の時信号を通し𝑜𝑡 = 0の時通さない
𝑜𝑡 = 𝜎 𝑊𝑜𝑥𝑥𝑡 +𝑊𝑜𝑚𝑚𝑡−1
𝑚𝑡 = 𝑜𝑡⨀𝑐𝑡
Neural Image Caption (NIC)
24
静止画から説明文を生成
𝑆∗ = argmax𝑆𝑝 𝑆|𝐼
画像説明文
𝑆 = 𝑆0, 𝑆1, ⋯
単語
可変長の系列データ
Neural Image Caption (NIC)
25
静止画から説明文を生成
𝑆∗ = argmax𝑆𝑝 𝑆|𝐼
画像説明文
𝑝 𝑆|𝐼; 𝜃 =
𝑡=0
𝑁
𝑝 𝑆𝑡|𝐼, 𝑆0, ⋯ , 𝑆𝑡−1 ; 𝜃
𝑆 = 𝑆0, 𝑆1, ⋯
単語数
各単語はその前の単語列の影響を受ける。
Neural Image Caption (NIC)
26
静止画から説明文を生成
𝑝 𝑆|𝐼; 𝜃 =
𝑡=0
𝑁
𝑝 𝑆𝑡|𝐼, 𝑆0, ⋯ , 𝑆𝑡−1 ; 𝜃パラメータ
単語数
学習データ 𝐼, 𝑆 から学習
Neural Image Caption (NIC)
27
LSTM
・・・・・・
・・・
入力
出力
隠れ層
ℎ
𝜎
𝜎
Input Gate
Output GateForget Gate
𝜎
Updating Term
𝑥
𝑚𝑡
𝑐𝑡
𝑐𝑡−1
𝑚𝑡−1
𝑥𝑡 = 𝑊𝑒𝑆𝑡
𝑝𝑡 𝑆𝑡+1 = softmax 𝑚𝑡
Neural Image Caption (NIC)
28
Neural Image Caption (NIC)
29
画像からDeep CNNで特徴ベクトルを取得
LSTMへの最初の入力(𝒙−𝟏)
Neural Image Caption (NIC)
30
単語𝑺𝟎を入力
次の単語が𝑺𝟏である確率
Neural Image Caption (NIC)
31
𝒎𝟎, 𝒄𝟎
NICの学習
32
ImageNet + Drop outでPretraining
ランダムにパラメータを初期化
NICの学習
33
学習データ
予測確率
NICの学習
34
学習データ
予測確率
誤差逆伝播
NICで予測 (Sampling)
35
Deep CNNで特徴ベクトルを取得
入力画像を与える
NICで予測 (Sampling)
36Special Start Word
最も確率の高い単語𝑺𝟏を選択
NICで予測 (Sampling)
37
選択した単語𝑺𝟏を入力
end-of-sentence tokenが現れるまで続ける
NICで予測 (BeamSearch)
38
Best kの単語を保持
NICで予測 (BeamSearch)
39
Best kの文章を保持
k個の単語入力
NICで予測 (BeamSearch)
40
Best kの文章を保持
k個の単語入力
以下の実験ではBeamSearchを使用
Dataset
41
実験に使用したデータセット
実験結果
42
3つの指標でMSCOCOデータセットに対し定量評価
人が評価した性能に近い値を出すことができた
他の手法との比較
43
既存手法より大幅な精度改善
上位N個の文章例
44
同じ画像に対し異なる表現を得られる
学習データにない新しい表現が生成された。
Ranking Results
45
人間による評価
46
Amazon Mechanical Turkで1枚の画像につき2人、4段階評価 Ground Truthには遠く及ばなかった(→BLEUなどの評価指標に課
題)
人間による評価
47
Analysis of Embedding
48
Word Embedding Vector [20]という手法を用いて、ある単語の近傍を取得
まとめ
49
Deep CNNとRNNを用いて、画像から説明文を生成する手法を提案。
1つのネットワークとして誤差逆伝播でパラメータを学習
RNNにはLSTMを用い、長い文でも学習時に伝播した誤差が発散しない
従来法と比較し、大幅な精度改善