狠狠撸

狠狠撸Share a Scribd company logo
論文紹介
Towards Diverse and Natural Image
Descriptions via a Conditional GAN
2017/12/16 @CV勉強会
酒井 俊樹
自己紹介
名前:酒井 俊樹
所属:NTTドコモ R&Dセンター サービスイノベーション部
仕事:Deep Learningを使ったAPI/サービスの研究開発
● 画像認識のAPI開発/法人様向けソリューション提供
● 動画解析機能開発
● 最近は言語系の処理や時系列データにも手を
本発表は個人で行うものであり、所属組織とは関係ありません。 2
論文概要
Towards Diverse and Natural Image Descriptions via a Conditional GAN
● 著者:Bo Dai et al.
● The Chinese University of Hong KongとUniversity of Torontoの研究
概要
● キャプション生成向けの新しいGANベースのワークフローを提案
● 生成される文章の自然さ、バリエーションが増す
3
キャプション生成
入力画像に対して、その画像を適切に表現する文章を生成する
● Grey cow walking in a large green field in front of house
● A cow in a large open field with a house in the background
● A cow standing in a large open grass field
● A train pulling into a station outside during the day
● A passenger train moving through a rail yard
● A long passenger train pulling up to a station
4
モチベーション:より自然なCaptionを生成したい
現状使われているCaptionの生成技術/評価手法では
● 人よりもDeep Learningベースの
手法の方が高精度
● Deep Learningベースの
従来手法は同じような文章ばかり
従来の評価手法
従来手法
5
先行研究:Caption生成
● LSTMとCNNを組み合わせることで、Caption生成は飛躍的に進歩
● Encoder-Decoderモデルが主流
○ 画像をCNN等で特徴量に一度エンコードする
○ 特徴量を入力として、文章をデコードしていく
● 最尤推定ベース Show and tell: A neural image caption generator[Vinyals+ 2015]
単語のone-hot vector
次の単語の
確率分布
学習データ
より近づくように
学習する
6
● Grey cow walking in a large
green field in front of house
● A cow in a large open field with
a house in the background
● A cow standing in a large open
grass field
A cow standing in a
field next to houses
先行研究:Caption生成における目的関数/評価手法
● 「生成文」と「教師文」との間のn-gramの一致度を比較する手法が主流
○ BLEU, ROUGE, METEOR, CIDEr …
○ 教師の文とよりn-gramが一致しているほど、点数が上がる
○ 2gramの例
■ 教師文1:This is a building on the corner of Trinity and 4th Street.
→”This is”, “is a”, “a building”, “building on”, “on the”, “the corner”, “corner of”, “of Trinity”,
“Trinity and”, “and 4th”, “4th Street”
■ 教師文2:A street sign on a street and a building with many windows behind it.
→”A street”, “street sign”, “sign on”, “on a”, “a street”, “street and”, “and a”, “a building”,
“building with”, “with many”, “many windows”, “windows behind”, “behind it”
■ 生成文: A street sign in front of a building
→”A street”, “street sign”, “sign in”, “in front”, “front of”, “of a”, “a building”
■ Pn
= 一致するn-gram/生成文のn-gramの長さ=3/7
7
従来手法の問題点
● fidelity(入力画像を忠実に反映しているか)を重視しすぎている
○ naturalness(自然さ)やdiversity(多様性)が損なわれている
8
提案手法概要
Conditional GAN + policy gradientを組み合わせたCaption生成器
9
文章を生成するところ
→先行事例と同じような形に見える
GAN
● Generative Adversarial Networks[Goodfellow+ 2014]
○ 画像生成などで使われる生成モデル
○ 二つのネットワークが敵対的に学習することで自然な画像などを生成できる
■ 画像が生成されたものか、自然なデータかを判定する Discriminator
■ 画像を生成して、DiscriminatorをだまそうとするGenerator
10図はhttps://elix-tech.github.io/ja/2017/02/06/gan.htmlより引用
Conditinal GAN:
● Conditional Generative Adversarial Nets[Mirza+ 2014]
○ 通常のGANは複数のクラスの画像を学習データを与えて学習した GANを
用いて、特定のクラスの画像だけを生成することができない
○ 学習の際に、GeneratorとDiscriminatorにconditonal variableを与えることで解決
11
/nmhkahn/generative-adversarial-network-laplacian-pyramid-ganより引用
通常のGANの誤差伝搬
● DiscriminatorからGeneratorに誤差を伝搬
● 文章の生成には不向き
○ 文章生成→単語の確率分布から確率が高い単語を選択 (argmaxを取る)→誤差が伝搬しない
Dの学習ステップ
max D
min D
Gの学習ステップ
誤差の伝搬計算には使うが、
重みは更新しない(freeze)
生成された
データ
12
Policy GradientとSeqGAN
● Seqgan[Zhou+ 2017]
○ Discriminatorは従来通り学習+Generatorは強化学習として学習
(Seq生成のPolicyを学習させる)
■ GのSeqの生成結果(例えば単語)をActionの選択ととらえる
■ Dの判定結果をrewardとしてGeneratorに与える
■ Gはrewardの最大化問題としてとく
13
単語
(action)
の確率
単語
(action)
の確率
単語
(action)
の確率
単語 単語 単語
判定結果
(本物と判断
したスコア)
SeqGANのその他の工夫:Monte carlo探索
● 最終の生成結果だけでなく、途中の Actionの選択に対しても報酬を与えたい
(最後のaction選択にしかrewardを渡せない→勾配が消失する可能性がある )
→各ステップTからMonte carlo探索でSequenceを生成し、それぞれを Dに入力
→各ステップでの報酬とする
14
提案手法概要
Conditional GAN + policy gradientを組み合わせたCaption生成器
15
文章を生成するところ
→先行事例と同じような形に見える
Conditional Variableとして
画像特徴を入力
GANのノイズを入れる所
Evaluator
Deiscriminatorの代わり。
rewardを計算
ドット積
- 二つのベクトルのノルムが1の時
- ベクトルが位置しているときは1
- 直行しているときは0
- 逆向きのときは-1
提案手法の全体像
● 目的関数
○ Generator: 以下のrewardを最大化する
■ 勾配を計算すると
○ Evaluator(Discriminator): 以下のlossを最小化する
16
I: 画像データ
z: ノイズ
s: 生成された単語
T: センテンスの長さ
η: Evaluatorのパラメータ
θ: Generatorのパラメータ
SI
: 人が画像Iに対してつけたキャプション
SG
: 機械が生成したキャプション
SI
: 人が他の画像に対してつけたキャプション
rη
: 画像とキャプションの一致度
実験
● データセット
○ MSCOCO
■ 学習データ:82, 081枚
■ 5文/画像 以上のキャプション
○ Flciker30k
■ データ数: 31,793枚
■ 5文/画像 以上のキャプション
○ それぞれ1000枚ずつを、評価データ /テストデータとして利用
● 事前準備
○ 出現回数が5回より小さい単語はUNKに置き換え
○ 大文字は小文字に統一
17
学習
● ネットワーク構造
○ CNN部分はVGG16を利用(imagenetで事前学習?)
■ fc7層を特徴量として利用
○ z(ノイズ)は1024次元
● 事前学習
○ Gは既存のBLEUを使った教師あり学習で事前に 20epoch学習
(Show and Tellの手法。以後G-MLEと呼ぶ)
○ その後Eを事前に5epoch分学習
● 学習時はGとEを交互に更新
● その他
○ mini-batch size: 64
○ 学習率: 0.0001
○ Monte Carlo探索は16個でbeam serch
18
結果①
● 既存の手法は人を高く評価できない→センテンス全体の質を評価できていない
● E-GANは人を高く評価しており、既存の評価方法以上の評価関数が学習できてい
る?
19
既存の評価手法 提案手法のEGを事前学習後のまま更新
せず、Eをのみを更新
→G-MLEとhumanを見分けるよ
うに学習したもの
←Show and Tell
←提案手法のG
結果②:生成された文を人が評価
● 30人の人にどちらの文章が良いか選択を依頼
● G-GANは既存手法より、より人に近いものが生成できている
● 既存手法は同じような画像に同じような文章を生成しやすい
● 人の評価とE-GAN評価結果がもっとも近かった(BLEUなどと比べて)
20
結果③:ノイズの変化による文章の変化
● 意味があった状態で様々なバリエーションのキャプションを生成できる
21
結果④
● Retrieval
○ G-GAN/G-MLEで文章を生成
○ E-GANを使って、文章に対して
近い画像を検索
○ k番目に近い画像までの間に、対応する
画像があるかどうか
22
● G-GANの間違いの傾向
○ 色や数などの細かい描写が間違っている
○ 学習データにそのような部分に言及している
ものが少なかった?
○ 生成される文章の質、多様性が上がった結
果、細かな描写をする文が増えて、間違いが
目立つようになった?
Paragraph Generator
● 画像+パラグラフのデータセットに変えて検証
● センテンスごとのtopicを決めるvectorを生成したうえで
各センテンスを作る多段のLSTMに変更して対応
● 既存手法に比べて多様性のある文章が生成できた
23
まとめ
● onditional GAN + policy gradientを組み合わせたCaption生成器を提案
○ semantic relevance, naturalness(自然さ)やdiversity(多様性)の向上した
captionを生成できるようになった
○ 提案手法で学習した Evaluatorは、上記のような基準に合致する文かを判定するのにも使える
24

More Related Content

CV勉強会ICCV2017読み会:Towards Diverse and Natural Image Descriptions via a Conditional GAN