DeepLearningとWord2Vecを用いた画像レコメンドの考察

34
ディープラーニングと単語ベクトル を用いた像レコメンドの察

Transcript of DeepLearningとWord2Vecを用いた画像レコメンドの考察

ディープラーニングと単語ベクトルを用いた画像レコメンドの考察

2

• produce(農産物)• strawberry• fruit• food• plant

画像 判定結果

⇒精度もかなり高く判定できるように※Google Cloud Vision API使用

DeepLearningを使った画像のカテゴリ分析

3

これを応用して

類似写真検索できないか?

4

でも課題あり・・・

5

類似画像判定:課題(1) – 複数カテゴリ

机?ギター?

人? 椅子?

⇒実際の写真は複数カテゴリの組み合わせなので、これを全て加味する必要がある

6

類似画像判定:課題(2) – 類似のニュアンス

⇒「なんとなく似ている」という人間的なニュアンスを判定しなくてはいけない

類似?

7

これら課題の

解決案を考えてみた

8

R-CNN+

単語ベクトル

9

⇒ 100枚の画像から似た画像を探す

10

類似画像検索 – 検証結果(1)

検索画像 結果

11

類似画像検索 – 検証結果(2)

検索画像 結果

12

今回使用したロジックや

理論・技術

13

類似画像検索ロジック

画像αにおける物体Aのスコア

Deep Learningが物体Aとして返したScore

Max(= ☓物体候補のPixel数

画像全体のPixel数)

⇒画像内における物体の重要度

画像ベクトル = 各物体の

単語ベクトル ☓ 物体のスコアSum( )

⇒単語ベクトルと重要度を用いて画像をベクトル化

画像内物体数

1☓

14

類似画像検索ロジック

類似画像 = 画像αの画像ベクトル - 画像≠αの

画像ベクトルMin(Sqrt(Sum( )**2)))

⇒ユークリッド距離が最も⼩さいものを類似とする

15

類似画像検索ロジック

画像αにおける物体Aのスコア

Deep Learningが物体Aとして返したScore

Max(= ☓物体候補のPixel数

画像全体のPixel数)

⇒画像内における物体の重要度

画像ベクトル = 各物体の

単語ベクトル ☓ 物体のスコアSum( )

⇒単語ベクトルと重要度を用いて画像をベクトル化

画像内物体数

1☓

16Girshick, R., Donahue, J., Darrell, T., & Malik, J. “Rich feature hierarchies for accurate object detection and semantic segmentation”. CVPR2014.

R-CNN: 複数カテゴリへの対応

�物体候補を抜き出しそれぞれをCNNにかける�CNNの結果(Score)を元にオブジェクトを判別(元はSVMで判定. 今回は前述のロジックで判別)

17Jasper R. R. Uijlings, Koen E. A. van de Sande, Theo Gevers, Arnold W. M. Smeulders “Selective Search for Object Recognition”

Selective Search:物体候補の抜き出し

�類似した領域をグルーピングして物体候補を抽出するアルゴリズム

�DeepLearningと違って学習の必要がない

18

R-CNN: 複数カテゴリの抜き出しロジック

Input Image

物体候補

SelectiveSearch

19

R-CNN: 複数カテゴリの抜き出しロジック

物体候補候補Pixel/全体Pixel

0.1

0.05

0.07

DLによる物体検知

Person: 95.0

Person: 70.0

Person: 80.0

0.095

0.035

0.056

⇒最も値の大きい0.095をPersonのスコアとする

20

類似画像検索ロジック

画像αにおける物体Aのスコア

Deep Learningが物体Aとして返したScore

Max(= ☓物体候補のPixel数

画像全体のPixel数)

⇒画像内における物体の重要度

画像ベクトル = 各物体の

単語ベクトル ☓ 物体のスコアSum( )

⇒単語ベクトルと重要度を用いて画像をベクトル化

画像内物体数

1☓

21

単語ベクトルとは?

King + Woman = QUEEN

• 単語をベクトル(数値配列)にする技術• 距離が近い単語は意味が似ており、遠いと似ていない

=>なんとなく類似というニュアンスが表現できる• ベクトルになっているので単語の演算が可能になる

22

単語ベクトル(Word2Vec): ニュアンスを表現

• ベクトル化しているので重要度を乗じることが可能• また平均をとることも可能⇒画像内の物体ベクトル*スコアの平均を取れば画

像のベクトルとして扱える(はず)

factory

steel

sea

画像ベクトル

23

単語ベクトル(Word2Vec): ニュアンスを表現

物体 単語ベクトル

(0.1,0.2)

(0.8,0.7)

(0.01,0.01)

物体スコア

0.8

0.95

0.5

⇒平均である(0.281,0.276)を画像ベクトルとする

実際は40次元

(0.08,0.16)

(0.76,0.665)

(0.005,0.005)

(0.281,0.276)

24

類似画像検索ロジック

類似画像 = 画像αの画像ベクトル - 画像≠αの

画像ベクトルMin(Sqrt(Sum(( )**2)))

⇒ユークリッド距離が最も⼩さいものを類似とする

⇒画像毎に算出ベクトル間の距離を測れば推薦可能

25

効果検証 検索画像 結果

• helicopter• vehicle• boeing ch 47• aircraft• rotorcraft

• tank• military• weapon• vehicle• combat vehicle

⇒⽂字列で一致したのはvehicleだけ

26

効果検証他にVehicleが含まれていた写真

⇒ベクトル化することにより軍隊関係が近いと判断できており、ロジックが効果的に動作している

27

Pros/Cons

28

• 複数カテゴリの組合せの考慮

• 強調したい部分(大きさ、位置)の考慮

• なんとなく似ているというニュアンスの考慮

今回手法のメリット

29

今回手法の苦手な部分

• 芸能人やアニメなど固有名詞が重要な場合には対応が厳しい• 上記例は全て”anime”となってしまう• 同じ作品、キャラを類似として扱うことができない

削除

30

先⾏研究: Illustartion2vec

http://demo.illustration2vec.net/

• 個別の固有名詞がわかるような識別器を作れば解決できる• ただし難易度は若⼲高め

削除

31

結論

(感想?)

32

Deep Learningもさることながら

Word2Vecの⼒が凄い

33

DeepLearning上の

Feature Mapで…というのはスマート

だけど曖昧さを許容させるためには

有効な手段ではないかと

34

ご清聴ありがとうございました