>100 Views
April 27, 18
スライド概要
2018/03/26
Deep Learning JP:
http://deeplearning.jp/hacks/
DL輪読会資料
Learning Cross-modal Embeddings for Cooking Recipes and Food Images [CVPR 2017] 東京大学工学部システム創生学科知能社会システムコース B3 近藤 生也
書誌情報 • 論文名 • Learning Cross-modal Embeddings for Cooking Recipes and Food Images • 著者 • MIT Torralba labの方々など • 公開日 • 2017/07/20 • 論文URL • http://im2recipe.csail.mit.edu
背景 • そもそも分類じゃだめなのか • 料理の画像認識は難しい • 同じクラスでも違う • チキンラーメンと千里眼のラーメン • 違うクラスでも似てる • うどんとフォー • 考えられる料理名の数に対して、データ数が少なすぎる → 一般料理で精度が残念
背景 • Food-101(分類)の精度と、 実際に使ってみた結果 ⇒分類には限界がある • 101分類自体は高い精度が出る • しかしそもそも適切なラベルが含まれていなかった...
PV https://youtu.be/qp5yOfcBXq0
概要 • Recipe1M というデータセットの作成 • 画像→レシピの検索(人間超え) • レシピ→画像の検索 • 材料の特定 • 料理の演算
Recipe1M • 20サイトからスクレイピング • タイトル • 材料 • レシピ • 画像 • コースラベル(メイン、スナック、前菜...)
材料のエンコード • あらかじめレシピ データで学習させた word2vecモデルを使 う • あらかじめ材料名は 同じ基準で並べ替え る • bi-directional LSTM でエンコード • 300次元にする https://speakerdeck.com/lunardog/learning-cross-modal-embeddings-for-cooking-recipes-and-food-images
bi-directional LSTM
手順のエンコード • 各文章をskipthoughtで1024次元 にエンコード • エンコードされたす べての文章をLSTM で1024次元にエン コード
skip-thought
画像のエンコード • ResNet+全結合層で 1024次元にエンコー ド • 教師ラベルが特にな いので、ImageNetで 事前学習された重み を使う
Joint embedding • あるレシピとその画像 を入力した際、 画像側の最終層の出力 と、レシピ側(調理手 順と材料)をconcatし て全結合層を追加した ものの出力のcos類似度 が高くなるように、そ れぞれの全結合層を学 習させる ⇒共通のJoint Embedding空間ができる
もうひとつ • Joint Embedding空間 を使ってfood-101の分 類も行い、この空間の 汎化性を高め精度を上 げる
loss • レシピと画像の正しい組み合わせを入力した際の類似度が高く、 かつ間違った組み合わせを入力した際の類似度が低くなるよう に学習を行う
精度 • レシピと画像の正しい組み合わせを選ぶタスクで、一部ヒトよ り高い正解率を出した。
結果(画像からレシピの推定) • 実際には、大量のレシピデータの中からもっともらしい一つを ピックアップしてきている
結果(レシピから画像の推定)
結果 • チーズサラダ - サラダ + ケーキ => チーズケーキ • 等、意味的な演算を可能とした。
本家のPyTorch実装 • https://github.com/torralba-lab/im2recipe-Pytorch • trijoint.pyに材料、手順、画像のエンコードがすべて載ってる