Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Chainerでキャプション生成

1,106 views

Published on

タイトルはChainerでキャプション生成となっていますが、内容的には画像キャプションの学習・生成アルゴリズム・ネットワーク構成の紹介です。

Published in: Data & Analytics
  • Be the first to comment

Chainerでキャプション生成

  1. 1. Chainerで キャプション生成 岡山理科大学 総合情報学部 情報科学科 井上 佳祐 (I13I006)
  2. 2. 話すこと • キャプション生成のおさらい • CNNについて • RNNとLSTMについて • やってきたこと • これからやりたいこと
  3. 3. 話すこと • キャプション生成のおさらい • CNNについて • RNNとLSTMについて • やってきたこと • これからやりたいこと
  4. 4. キャプション生成モデル – Show and tell: A neural image caption generator
  5. 5. キャプション生成モデル – Show and tell: A neural image caption generator CNN RNNを拡張した LSTM
  6. 6. 話すこと • キャプション生成のおさらい • CNNについて • RNNとLSTMについて • やってきたこと • これからやりたいこと
  7. 7. CNNについて • Convolutional Neural Networkの略 • 日本語訳は、畳み込みニューラルネットワーク • ここでは、画像の特徴を数字(ベクトル)で取り出 すためのもの。特徴量という。 • GoogLeNetやVGG19などの学習済みCNNを使用
  8. 8. GoogLeNetとVGG19 の違い
  9. 9. GoogLeNet http://www.marekrei.com/blog/wp-content/uploads/2015/06/googlenet_diagram.png
  10. 10. VGG19 http://image.slidesharecdn.com/ejlb-pydatalnd-cnn-151007092812-lva1-app6892/95/pydata- london-cnn-lightning-talk-16-638.jpg?cb=1444210166 この層から特徴量を取り出した Name:fc7 4096次元
  11. 11. 比較 GooLeNet VGG19 層数 22層 19層 特徴量 次元数 pool5/7x7_s1 1024次元 fc7 4096次元 見た目 複雑 単純
  12. 12. 話すこと • キャプション生成のおさらい • CNNについて • RNNとLSTMについて • やってきたこと • これからやりたいこと
  13. 13. RNNとLSTM • RNN - Recurrent Neural Networkの略 - 日本語訳は、再帰型ニューラルネットワーク • LSTM - Long-Short Term Memoryの略 - RNNを拡張したもの - 長期依存を学習可能である
  14. 14. RNNとLSTMの図 LSTM Block 通常のRNN Long−Sort Term Memory 出力層 隠れ層 入力層 Xt Yt Xt-1 Xt Yt Xt-1
  15. 15. 学習 画像 I he ate apple を学習させる S1 S2 S3 S4 S5 文 <SOS> he ate apple <EOS> IをCNNに通したものをIfとする 文を以下の表の通り単語に分割し名前をつける
  16. 16. LSTM Block If S1 S2 LSTM Block S2 S3 LSTM Block S3 S4 LSTM Block S4 S5
  17. 17. 学習過程 再帰回数 学習データ LSTM 教師データ 1 S1 If S2 2 S2 If,S1 S3 3 S3 If,S1,S2 S4 4 S4 If,S1,S2,S3 S5
  18. 18. 生成 別画像 I 別画像Iのキャプションを生成する IをCNNに通したものをIfとする 最初に<SOS>をLSTMに入力して出力された単語 を次に入力し<EOS>が出力されるまで続ける 予想される単語をES1,ES2,…,ESk,…ESnとする ただし、k,nは自然数でk<nとする 学習済みモデルをMとする
  19. 19. LSTM Block If <SOS> ES1 LSTM Block ES1 ES2 LSTM Block ESk ESk+1 LSTM Block ESn <EOS> … … 終了!
  20. 20. 生成過程 再帰回数 入力データ LSTM 出力データ 1 <SOS> M,If ES1 2 ES1 M,If,<SOS> ES2 k+1 ESk M,If,<SOS>,S1, S2,…ESk-1 ESk+1 n+1 ESn M,If,<SOS>,S1, S2,…ESk- 1,…,ESn-1 <EOS>
  21. 21. 話すこと • キャプション生成のおさらい • CNNについて • RNNとLSTMについて • やってきたこと • これからやりたいこと
  22. 22. やってきたこと • CNNを変えて学習させてみた - このプログラム用のCNNはGoogLeNetしか無かっ たのでVGG19を使ってやってみた • 日本語キャプションの学習および生成を自分でしよ うとしてみた
  23. 23. GoogLeNetとVGG19のキャプション比較 前と同じ画像を利用
  24. 24. 生成例 • 元の文 - a black dog in the snow playing with the Frisbee - a group of young people playing soccer on a field - なし(ピースしてる人) • GoogLeNet - a group of elephants standing in a river - a group of young men playing a game of frisbee - a man in a red shirt is playing a video game • VGG19 - a dog is laying on a rock in the water - a group of people playing a game of soccer - a man in a suit and tie standing in a kitchen
  25. 25. 日本語キャプションの学習と 生成 英語と同じアルゴリズムで学習すれば生成できると言 う言葉を信じてやってみているもののまだ成功してな い
  26. 26. • 学習データはMSCOCOの英文をexcite翻訳で機械 翻訳したもの (ピリオドのありなしで翻訳の日本語が変わる) • 文を品詞に分解しなければならないのでMeCabを 使用して形態素解析して、わかちがきで出力 - その点、英語はスペースでそのまま区切れるから 楽だよなぁ・・・。
  27. 27. MeCabのインストール • ターミナルでapt-getを以下のように叩けばPython で使えるようになる $ sudo apt-get install mecab libmecab-dev mecab-ipadic $ sudo apt-get install mecab-ipadic-utf8 $ sudo apt-get install python-mecab • Pythonから import MeCab してエラーがでなければOK
  28. 28. MeCabの主な引数 • -Ochasen(形態素解析) 私 ワタシ 私 名詞-代名詞-一般 は ハ は 助詞-係助詞 りんご リンゴ りんご 名詞-一般 が ガ が 助詞-格助詞-一般 好き スキ 好き 名詞-形容動詞語幹 です デス です 助動詞 特殊・デス基本形 EOS • -Owakati(わかち書き) 私 は りんご が 好き です
  29. 29. 話すこと • キャプション生成のおさらい • CNNについて • RNNとLSTMについて • やってきたこと • これからやりたいこと
  30. 30. これからやりたいこと • GoogLeNetとVGG19を評価値で比較してみる • どうにか日本語キャプションが生成できるようにし たい
  31. 31. ご清聴ありがとうございました

×