[dl輪読会]stylenet: generating attractive visual captions with styles
TRANSCRIPT
StyleNet: Generating Attractive Visual Caption with StyleChuang Gan@IIIS, Tsinghua University
Zhe Gan@Duke UniversityXiaodong He@Microsoft Research Redmond(MSRR)
Jianfeng Gao@MSRRLi Deng@MSRR
CVPR’17
Yoshifumi Seki@Gunosy Inc.DeepLearning.jp
2017.07.07
自己紹介
● 関 喜史○ Gunosy 共同創業者
○ データ分析部研究開発チーム (仮)○ 東大松尾研客員研究員 , 工学博士(2017年3月卒)
● 研究テーマ: ニュース推薦システムのサービス応用について
● 関心領域○ 推薦システム , ユーザ行動分析
● 趣味○ アイドル、日本酒、将棋
概要
● 魅力的なキャプションを生成したい○ ユーモア、ロマンティックという
● LSTMのseq2seqのマルチタスクにインス
パイアされている○ 転移学習感ある感じ
● ちなみにStyleNetというプロジェクトは他に
もある…
Show and Tell [Vinyals 15]
次に出る語の確率を出力する LSTM cell
Show, Attend and Tell[Xu 15]
● Zの部分がattention要素
● Eはembedding layer○ 単語をベクトル化
● h_tが系列的に伝搬していく
Decoder
Context vector[Xu 15] ● 画像ベクタの重み付け
● 画像のどの部分にどのぐらい注目するかという
Stochastic Hard Attention[Xu 15]● Sは画像の区分数の次元をもつone-hotな
vector● α_{t, i}の確率でその次元が1になる
○ 多項分布
● zは、注目する区分の画像ベクタになる
Stochastic Hard Attention[Xu 15]
● p(y|a)の対数尤度を最大化したい○ ある画像aのときに、あるキャプション yを生成する確率
● イェンセンの不等式で下界を定める○ 下界が最大化できれば、 p(y|a)も最大化できるよね
Stochastic Hard Attention[Xu 15]
● Wを直接求めるためにWで微分○ 第2項の微分を展開すると積の微分公式になる
Stocatic Hard Attention[Xu 15]
● Sのサンプルを生成してモンテカルロ法で求める○ Sはαに従う多項分布なのでそれに従って生成
●
● モンテカルロ法による勾配の推定のバリアンスを減らしたい○ [Ba 15][Mnish 14]とかで使われている手法
■ 画像へのattention model○ ミニバッチごとにベースラインを更新していく
○ λはハイパーパラメータでクロスバリデーションできめる
■ 何をクロスバリデーションするんだろう
● 多項分布のエントロピー項を導入
● この式は強化学習に似ているらしい
Deterministic “Soft” Attention[Xu 15]
● 結論からいうとHardのほうがよかったので、詳しくは述べない
● Hardは多項分布だったけど、期待値を考える○ 1点だけでなく、画像をひろく捉える (ゆるく、ひろく )○ 機械翻訳でよく使われている
Factored LSTM module●
Training Style Net● 2つのタスクを学習する
○ captionとimageのPairを学習する
○ 言語モデルとして学習する
● S(style specific factor)以外は1と2で共通にする
● Captionとimageのペアはinitial vectorをCNNの最終層に○ そうでないのはランダムノイズ
● 単語はEmbeddingしている。この重みも共有する
Flicker Styled Caption Dataset● Amazon Mechanical Turk使う
○ 大変だったので聞いてほしい
● 最初はユーモラスなやつとロマンティックなやつ書けと直接言ってた○ キャプションのクオリティをコントロールするのが難しい
○ 画像に関係ないフレーズや語をたびたびアノテータはつける
● 次はあるキャプションをユーモラスに、ロマンティックに書き換えろという問題にした○ さらに、キャプションを書き換える例も示した
○ それでうまくいった
Quality Control● Least
○ 500 HITS○ 90% accuracy
● QualityをチェックするReviewerをAMTで依頼○ 各キャプション、3人のワーカーに、そのキャプションが任意の styleになっているかを評価させる
○ 2人以上賛同したもののみ利用する
● Flicker Style 10K○ Image: 10K○ 7K for training, 2K for validation, 1K for testing○ Training/Validation
■ ユーモラス、ロマンティックなキャプションが 1つずつある
○ Testing■ ユーモラス、ロマンティックなキャプションが 5つずつある
○ Flicker 30Kのfactual captionもつかう
■ 5つずつある
Experiment Settings● 画像からResNet152の最終層の出力2048次元のベクトルを得て、300次元のベク
トルに変換する
● 2回以上出現した語でvocabraryを作り、one-hot vectorにして、300次元に
embeddingする
● BLUE, METEOR, ROUGE, CIDErで評価○ Caption生成で一般的なもの。要約にインスパイアされてる
● BaseLine○ NIC(show and tell) Flicker 10KのFactualだけを用いた
○ CaptionBot: MSの商用サービス
○ Multi-Task: multi-task LSTM○ Fine-tuned: 行列Sを考慮しない(すべてのパラメータが共有された状態 )で、Language Modelの学
習をする
Implementation Detail(1)● Theano● Adamで学習
● Batch size: captioningは64, language modelは96● Learning rateは0.0002と0.0005● LSTM cellとfactored matrixを512に● すべてのパラメータは一様分布で初期化
● One epochごとに、タスクを切り替える○ キャプション生成⇔言語モデルを Epochごとに繰り返してる
○ ユーモアとロマンティックを組み合わせて trainingしてみたけど、よくならなかった
● 30 epochで収束
● キャプションはbeam size5のビームサーチで生成
Implementation Detail(2)● Caption Bot以外はResNet152の最終層の出力で作り直し
● NICはbatch size 64で20 epochで停止
● Caption BotはMicrosoft Computer Vision APIを利用
● Fine-Tuned modelでは20 epochを学習率0.0002でimage captioningを行い、学
習室0.0005でlanguage modelを訓練。
● MultiTask BaseはStyleNetと一緒な設定○ 30 epochで収束した
Experiment Results
Human Evaluation
● NIC, CaptionBot, StyleNet(Romantic/Humorous)で5つずつ生成
● どれが一番”魅力的か”聞く
● 85%がStyleNetの結果を選んだ
Video Captioning● 3D-CNN[D.Tran+2015]
○ 1M Dataset[A. Karpathy+2014]
● 1970 Youtube Clips○ Each clip 40 captions○ 1,200 video training, 100 video validation, 670 video captioning
● その他は同じ設定で学習
● Baseline○ Captioning data使って学習したStandardモデル
Video Captioning● 人間による評価
○ BaseLineとStyleNetから3つずつ生成
○ ビデオとキャプションをみせ
てどれが魅力的か聞く
● 80%以上がStyleNetのほ
うが魅力的だと回答
結論
● Factored LSTMを提案
● End-to-endのframework StyleNetを提案
● 定量的、定性的アプローチによって有効性を確認した
● 今後、新たなデータも加えた形で、本データセットは公開する予定
お気持ち
● データセットの作り方、LSTMのお気持ちに沿って作られている気がした
● こんなシンプルなのでいけちゃうのすごい
● 一方でキャプション生成のコアの部分はLSTM並べるのがまだSOTAなのかなと?
● 重みをFactorizeして共有しながら転移学習させるのは、いろんな領域で応用が効
きそう