[dl hacks 実装]stylenet: generating attractive visual captions with styles
Post on 21-Jan-2018
93 Views
Preview:
TRANSCRIPT
DEEP LEARNING JP[DL Papers]
“StyleNet: Generating Attractive Visual Captions with Styles” (CVPR’17) [DLHacks]
実装
• github: https://github.com/kacky24/stylenet
• 一通り完了してはいるが,現状出力が微妙・汚いところがあるかも
書誌情報 & 選定理由
• “StyleNet: Generating Attractive Visual Captions with Styles”(CVPR’17)• Author
– Chuang Gan@IIIS, Tsinghua University– Zhe Gan@Duke University– Xiaodong He, Jianfeng Gao, Li Deng@Microsoft Research Redmond
• DL輪読会でグノシー関さんが発表
• 選定理由
– Trelloのリストにあった
– 自然言語処理
– 構造シンプルかつ実装が落ちてない?
背景
• image captioning:画像を描写する説明文を生成する
– 応用:semantic image search, チャットボットのvisual intelligence, SNSでの動画像のシェア, 障害者の知覚支援, etc
– これらのほとんどが画像における事実を描写したもの
– スタイルは軽視されており,コントロールする機能を持っていない
• スタイルを持った(ユーモアがあるなど)描写はcaptionの表現を豊かにする
– 応用:チャットボットのユーザのengagementを増やす,
SNSでの写真へのcaption付けを助ける,etc– 画像もより印象的に見せられる
概要
• 画像・動画に異なるスタイルの魅力的なcaptionを生成するモデルの提案
– 画像とスタイルを持ったcaptionのペアを教師データとして使わない初めての試み
– seq2seqのマルチタスク学習に影響を受けている
• Factored LSTM– text corpusからスタイルの因子を抽出
• データ
– 画像・動画と事実を述べたcaptionのペア & スタイルを持ったtext corpus– スタイル:ユーモラスとロマンティック
– FlickrStyle10Kというデータセットを作った
seq2seqのマルチタスク学習
• Multi-task sequence to sequence learning [Luong 15]– seq2seqモデルにおいて,
1. one-to-many (encoder共通でdecoder変える)2. many-to-one (decoder共通でencoder変える)3. many-to-many (encoder, decoder共通)でマルチタスク学習を条件を変えて効果を実証
– 2については,image captioningで学習してからtranslationを学習さ
せることで精度が向上
Caption with sentiments
• SentiCap: Generating Image Descriptions with Sentiments [Mathews 15]– スタイルの違う (positive or negative) captionを生成
– swiching RNN• 一方が普遍的な言語モデルを学習
• 他方がsentimentalな描写を学習
– 単語1つ1つにどちらのモデルを使うかのラベル
• StyleNetに比べてかなりコスト高い
Factored LSTM
• 入力を変換する重み行列のみを分解する
– スタイルに直接影響を及ぼすと考えられる
– 残りの重み行列Wは長いスパンの構文的な依存関係をとらえていると考えられる
• {U}, {V}, {W}は異なるスタイル間でも共有する
– 事実の描写を学習させる
• {S}をスタイルごとに取り換える
– スタイルファクターを抽出させる
– 今回はSF, SR, SH– factual, romantic, humorous
Training StyleNet
• 2つのタスクを学習させる(seq2seqのマルチタスクのアプローチと近い)
– 画像と通常のcaptionのペアを学習 (1)– スタイルを持ったtext corpusでFactored LSTMを言語モデルとして学習 (2)– {S}以外は2つのタスク間で共通
• (1)ではSF、(2)ではSR or SHを用いる
• スタイルの抽出に{S}が、一般的な文生成にその他が使われることを期待
• LSTMのinitial state– (1)ではCNNの出力を変換したもの
– (2)ではランダムノイズ
• 生成時は、対象のスタイルの{S}をセットして画像のベクトルを与える
Flickr Stylized Caption Dataset
• FlickrStyle10K dataset– 今回新しく作った
– Flickr 30K image caption datasetを元にしている
• Amazon Mechanical Turk– とにかく指示の出し方など色々工夫した
– Quality control
• train data: 7Kvalid data: 2Ktest data: 1K
実験設定: pre-proceccing, Metric
• CNNのモデルとしてResNet152を用いる(ImageNet datasetで訓練済み)
– last pooling layerの出力2048次元を300次元に変換
• Vocabulary– factual captionに2回以上出現した語
– stylized captionsに出現した語全て
– one hot ⇒ 300次元にembedding
• 評価
– 評価指標
• BLUE, METEOR, ROUGE, CIDEr– AMTでの人手での評価
• SNSで画像をシェアする場合どのcaptionを選ぶか
実験設定: Baselines
• Neural Image Caption (NIC)– Show and Tellのモデル
• CaptionBot– Microsoftのシステム、巨大なimage-captionペアで学習済み
• Multi-task– LSTMのマルチタスク学習
• Fine-tuned– まずimage-captioinペアで学習させ,次にstylized text dataでパラメータ更新
実装の詳細 (StyleNet)
• Theanoで実装
• Adamで学習
• batch size– caption model: 64– language model: 96
• larning rate– caption model: 0.0002– language model: 0.0005
• LSTMのhidden state、{S}の次元: 512• パラメータは全て一様分布で初期化
• 1epochごとにタスクを切り替える
– 2つのスタイル (humorous, romantic)を同時に学習 ⇒ あまりうまくいかず
• 30epochで収束
• 生成にはbeam searchを用いる (size: 5)
実装の詳細 (Baselines)
• CaptionBot以外は同じResNetによる特徴ベクトルを用いる
• NIC– FlickrStyle10Kのfactual image-captionペアで学習
• Multi-task– Factored LSTMと通常のLSTMを置き換える以外は同じ
• Fine-tuned– まずcaption modelをlr=0.0002で学習 (20epoch)– 次にlanguage modelをlr=0.0005で学習 (25epoch)
実験結果: 人による評価
• NIC, CaptionBot, StyleNet(R), StyleNet(H)をランダムな順番で提示
⇒ どれがSNSで画像をシェアする場面を想定し魅力的なcaptionを選択
Video Captioning
• Video Captioningにおける実験も行った
– FlickrStyle10KとYoutube2text datasetのvideo-captionペア
• Youtube2text– 1970個のyoutube clip– それぞれのclipに約40個のアノテーション
• 動画の特徴抽出には3D CNN [Tran 15] を使用
– Sport 1M datasetで訓練済み
• LSTMの部分は画像の時と同じ
実験結果
• AMTでの人による評価
– 比較対象: Video (スタンダードなモデル)– video clipと一緒に,
Video, StyleNet(R), StyleNet(H)をランダムな順番で提示
• 結果
– 80%以上がStyleNetの方が魅力的
top related