32
Learning What and Where to Draw Scott Reed*, Zeynep Akata** Santosh Mohan* Samuel Tenka* Bernt Schiele** Honglak Lee* *University of Michigan, Ann Arbor, USA **Max Planck Institute for Informatics, Saarbrücken, Germany 奈奈奈奈奈奈奈奈奈奈奈奈奈 奈奈奈 D2 奈奈 奈奈奈 2017 Seitaro Shinagawa AHC-lab NAIST 04/29/2022 2017/03/18 第 第第第 3西 NIPS 第第第 [paper]: https:// papers.nips.cc/paper/6111-learning-what-and-where-to-draw [code] : https :// github.com/reedscot/nips2016 [video]: https:// channel9.msdn.com/Events/Neural-Information-Processing-Systems-Conference/Neural -Information-Processing-Systems-Conference-NIPS-2016/Learning-What-and-Where-to- Draw 1/26

170318 第3回関西NIPS+読み会: Learning What and Where to Draw

Embed Size (px)

Citation preview

Page 1: 170318 第3回関西NIPS+読み会: Learning What and Where to Draw

05/02/2023 2017 Seitaro Shinagawa AHC-lab NAISTⒸ

Learning What and Where to Draw

Scott Reed*, Zeynep Akata** Santosh Mohan* Samuel Tenka* Bernt Schiele** Honglak Lee*

*University of Michigan, Ann Arbor, USA **Max Planck Institute for Informatics,

Saarbrücken, Germany

奈良先端科学技術大学院大学 中村研 D2  品川 政太朗

2017/03/18 第3回関西 NIPS 読み会

[paper]: https://papers.nips.cc/paper/6111-learning-what-and-where-to-draw [code] : https://github.com/reedscot/nips2016 [video]: https://channel9.msdn.com/Events/Neural-Information-Processing-Systems-Conference/Neural-Information-Processing-Systems-Conference-NIPS-2016/Learning-What-and-Where-to-Draw 1/26

Page 2: 170318 第3回関西NIPS+読み会: Learning What and Where to Draw

05/02/2023 2017 Seitaro Shinagawa AHC-lab NAISTⒸ

自己紹介

@sei_shinagawa

趣味:読書 → ニューラルネットワークこれくしょんHodgkin-Huxley model に代表される生理学的モデルも統計的機械学習における統計的モデルもどっちも好き最近は後者を追うので手いっぱい、論文が無限に湧いてくるので飽きない。趣味としては最高。研究テーマ:マルチモーダル情報の統合と変換  実データ(画像など)と自然言語(記号)はどのように結びつけられるのか、を DNN からアプローチする

Sapporo

Sendai

NARAJump?

Step !

Hop !札幌生まれ→東北大中島研(今はない )

→NAIST 中村研twitter のアイコンは雪印パーラーのパラゴン Jr

2/26

Page 3: 170318 第3回関西NIPS+読み会: Learning What and Where to Draw

05/02/2023 2017 Seitaro Shinagawa AHC-lab NAISTⒸ

論文のまとめどんな論文? 画像の説明文から画像を生成どこがすごい?  bounding box, key point を導入してより思い通りの画像を生成どう評価した?  Caltech-UCSD Birds(CUB) :鳥データセット  MPIIHuman PoseMHP(MHP) :人の姿勢データセット これらのデータセットでいくつか結果を例示論文を読んだ動機  NIPS2016 の oral 発表になってた(採択率 23% の中のわずか 8% ) そろそろ自分でも実装してみようかと思ったところに関西NIPS 読み会が来たのでタイミングがちょうど良かった(結局まだ未実装)

3/26

Page 4: 170318 第3回関西NIPS+読み会: Learning What and Where to Draw

05/02/2023 2017 Seitaro Shinagawa AHC-lab NAISTⒸ

“A horse on the big red chair.”

入力出力

画像の説明文から画像を生成する研究

いわゆる画像からの説明文生成 (image-captioning) の逆問題研究動機(として挙げられることが多い動機)• 自然言語(記号)と他のモダリティ(生データ)との紐づけ• 自然言語の可視化• データベースにない画像の生成(画像検索との違い)• 画像作成にかかる手間の削減

4/26

Page 5: 170318 第3回関西NIPS+読み会: Learning What and Where to Draw

05/02/2023 2017 Seitaro Shinagawa AHC-lab NAISTⒸ

“A horse on the big red chair.”

入力出力

実際はそう簡単にはいかない

Oh, コレジャナイ・・・原因画像と自然言語は多対多対応短いテキストで欲しい画像を一意に定めるには無理がある

ユーザが本当に欲しかったもの ある短いテキストを満たす画像5/26

Page 6: 170318 第3回関西NIPS+読み会: Learning What and Where to Draw

05/02/2023 2017 Seitaro Shinagawa AHC-lab NAISTⒸ

“A horse on the big red chair.”

入力出力

本論文の提案 horse head(key point)

基本的なアイデア追加情報があれば生成する画像をもっと絞り込めるはず・・・ bounding box :生成物体の位置を指定key point :生成物体の具体的な形を指定

※ 実際には複数物体には対応してない画像生成に以下の2つを導入

6/26

Page 7: 170318 第3回関西NIPS+読み会: Learning What and Where to Draw

05/02/2023 2017 Seitaro Shinagawa AHC-lab NAISTⒸ

著者紹介Scott Reed*, Zeynep Akata** Santosh Mohan* Samuel Tenka* Bernt Schiele** Honglak Lee* *University of Michigan, Ann Arbor, USA **Max Planck Institute for Informatics, Saarbrücken, Germany

Scott Reed

NIPS2015 Deep Visual Analogy-Making2 画像間のアナロジーを抽出してソース画像に適用、アナロジーに合った新しい画像を生成 CVPR2016   Learning Deep Representations of Fine-Grained Visual Descriptionsクラスを含めたヒンジロスにより画像とキャプションを高精度にジョイント ICML2016   Generative Adversarial Text to Image SynthesisDCGAN を拡張してキャプションからきれいな画像を生成 NIPS2016   Learning What and Where to Draw(今回の紹介論文)

ミシガン大学→現在は Deep Mind

強い(確信) 今回の論文は CVPR のモデルを説明文のエンコーダとした ICML のモデルを拡張した、という位置づけ7/26

Page 8: 170318 第3回関西NIPS+読み会: Learning What and Where to Draw

05/02/2023 2017 Seitaro Shinagawa AHC-lab NAISTⒸ

手法Generative Adversarial What-Where Network(GAWWN)ニューラルネットワークの基本的な Encoder-Decoder モデルに条件を追加した形

Encoder Decoder説明文

bounding boxkey point

画像CVPR2016 ICML2016

Proposed network(GAWWN)

Encoder :説明文(テキスト)Structured joint embedding of visual description and images

Decoder :画像Generative Adversarial Network(GAN)  ※正確には DCGAN

8/26

Page 9: 170318 第3回関西NIPS+読み会: Learning What and Where to Draw

05/02/2023 2017 Seitaro Shinagawa AHC-lab NAISTⒸ

Encoder : Structured joint embedding of visual description and images

char-CNN-RNN今回の説明文エンコーダ次ページから説明する方法でプレトレーニングする

詳細は Learning Deep Representations of Fine-Grained Visual Descriptionsを参照してください本論文でのマイナーチェンジchar-CNN-RNN→char-CNN-GRU に変更エンコードした特徴量ベクトルは画像あたり4つの説明文の特徴量ベクトルの平均を用いる

9/26

Page 10: 170318 第3回関西NIPS+読み会: Learning What and Where to Draw

05/02/2023 2017 Seitaro Shinagawa AHC-lab NAISTⒸ

Encoder : Structured joint embedding of visual description and images

たN: 訓練データ数n番目データの画像 n番目データの説明文n番目データのクラスラベル

経験リスク ( これを最小化したい )

は 0-1損失(左右の項が一致すれば 0 、しなければ 1 )以下の式で表す・・・(1)

・・・(2)全クラス説明文サブセット画像サブセット画像のエンコーダエンコーダ0.8 -0.2 0.1

0.4 0.7 0.3

-0.4 0.5 0.4

例:計算( N=3 とする)𝒱 [ 表内の値 ]𝒯0.8

0.7

0.5

𝑦 1= 𝑓 𝑣(𝑣1)𝑦 2= 𝑓 𝑣(𝑣2)𝑦 2= 𝑓 𝑣(𝑣3)

10/26

Page 11: 170318 第3回関西NIPS+読み会: Learning What and Where to Draw

05/02/2023 2017 Seitaro Shinagawa AHC-lab NAISTⒸ

経験リスクを満たすための目的関数Encoder : Structured joint embedding of visual description and images

・・・(3)

・・・(4)

以下の式で表すSVM と同じヒンジロスただし、

画像と説明文が揃ってる F よりcos類似度が高ければロスが発生

11/26

Page 12: 170318 第3回関西NIPS+読み会: Learning What and Where to Draw

05/02/2023 2017 Seitaro Shinagawa AHC-lab NAISTⒸ

Decoder : Generative Adversarial Network(GAN)

Fake Image(signal)

G

D

Fake?Real?

z

RealImage(signal)

black box

random select

生成モデル G と識別モデル D で mini-maxゲームを行う学習方法

学習がうまくいくと、 Gは D が fake か real か判別不可能なデータを生成する⇒画像の場合は本物に近いきれいな画像になる

ある分布に従った乱数(一様分布、ガウス分布)

12/26

Page 13: 170318 第3回関西NIPS+読み会: Learning What and Where to Draw

05/02/2023 2017 Seitaro Shinagawa AHC-lab NAISTⒸ

Decoder : Generative Adversarial Network(GAN)

Deep Convolutional Generative Adversarial Network(DCGAN)

詳細はUnsupervised Representation Learning with Deep Convolutional Generative Adversarial Networks(ICLR2016)を参照

実際に使われてる GAN のネットワークはこれ• transposed convolutional layer ベースの G• convolutional layer ベースの Dで構成される※ 画像生成に GAN を使った、といった場合ほぼこれだと思ってよい

13/26

Page 14: 170318 第3回関西NIPS+読み会: Learning What and Where to Draw

05/02/2023 2017 Seitaro Shinagawa AHC-lab NAISTⒸ

ここまでの話で bounding box, key point がないと ICML2016 と同じ

詳細は Generative Adversarial Text to Image Synthesisを参照

学習時にわざと画像と説明文のアラインメントをずらして実画像と説明文ベクトル(実画像と合わない)が入力された場合は Fake と出力するように学習する

DCGAN と違うところ

14/26

Page 15: 170318 第3回関西NIPS+読み会: Learning What and Where to Draw

05/02/2023 2017 Seitaro Shinagawa AHC-lab NAISTⒸ

GAWWN その1: Bounding-box-conditional text-to-image model

15/26

Spatial replicate, crop to bbox→正規化された bounding box の空間に対応する部分に説明文ベクトルをコピー ( bbox の外側は 0 を代入する)

Page 16: 170318 第3回関西NIPS+読み会: Learning What and Where to Draw

05/02/2023 2017 Seitaro Shinagawa AHC-lab NAISTⒸ

GAWWN その 2 : Bounding-box-conditional text-to-image model

16/26

key point の channel 数は事前に決めておく(鳥は 15個の key point があるので 15channel )key point の grid は実験では 16×16

key point はいちいち指定したくない→説明文から生成したい ・・・(5)sはマスク 𝑘𝑖={𝑥𝑖 , 𝑦 𝑖 ,𝑣 𝑖} , 𝑖=1,2 ,⋯ ,𝐾

座標 t:説明文ベクトルz:乱数

Page 17: 170318 第3回関西NIPS+読み会: Learning What and Where to Draw

05/02/2023 2017 Seitaro Shinagawa AHC-lab NAISTⒸ 17/26

補足key point はいちいち指定したくない→説明文から生成したい ・・・(5)sは switch

K: チャネル数座標 t:説明文ベクトルz:乱数

(5)式は key point の Generator を表現しているs は確率で 1 になるマスクのようなもの(実験では 1,2個の keypoint が割当たるように確率 0.1 )Discriminator の設計は謎?本人による Torch の実装※を見る限り、別の GAN ではなくもとの GAN にくっつけてそのまま学習してるっぽいこれどういう効果があるの? key point を生成するのに key point をいれるってどういうこと?正直よくわからない。 1, 2個の key point が欲しいといっているので、key point を 1, 2個に制限するのが generator の役割?(テキストに対応した key point だけとってこようとしている?) ※ https://github.com/reedscot/nips2016/blob/master/main_gen_keypoints.lua#L134

Page 18: 170318 第3回関西NIPS+読み会: Learning What and Where to Draw

05/02/2023 2017 Seitaro Shinagawa AHC-lab NAISTⒸ

実験コーパスCaltech-ICSD Birds(CUB): 鳥画像データセット

200種 11,788 画像1 画像あたり 10 センテンス鳥の位置情報( bounding box )付き15部位の key point付き

MPII Human Pose(MHP) :人の姿勢画像データセット25,000 画像、 410種類のよくある行動(姿勢)ラベルが付与AMT で画像あたり 3 センテンスを付与16 関節が key point になる複数人が映っている画像を抜いた 19,000 画像にbounding box を付与

18/26

Page 19: 170318 第3回関西NIPS+読み会: Learning What and Where to Draw

05/02/2023 2017 Seitaro Shinagawa AHC-lab NAISTⒸ

実験実験設定説明文ベクトルの次元: 1024プレトレーニング有り 説明文ベクトルは 1 画像に対して 4 つの説明文をランダムに選んでそれぞれエンコードしたベクトルを平均して用いる Solver : ADAMバッチサイズ: 16学習率初期値: 0.0002

19/26

Page 20: 170318 第3回関西NIPS+読み会: Learning What and Where to Draw

05/02/2023 2017 Seitaro Shinagawa AHC-lab NAISTⒸ

Controlling bird location via bounding boxes

乱数zを固定して bounding box を様々に変化 bounding box に沿って中の鳥が伸び縮みされて生成できている bounding box の外は割と壊滅的、繰り返しのテクスチャが見える

20/26

Page 21: 170318 第3回関西NIPS+読み会: Learning What and Where to Draw

05/02/2023 2017 Seitaro Shinagawa AHC-lab NAISTⒸ

Controlling individual part locations via keypoints

keypoint を固定して様々な乱数zで生成 背景が変化するだけで、生成される物体(鳥)はほとんど変化してない

21/26

Page 22: 170318 第3回関西NIPS+読み会: Learning What and Where to Draw

05/02/2023 2017 Seitaro Shinagawa AHC-lab NAISTⒸ

Controlling individual part locations via keypoints

keypoint を様々に変化させて生成画像を変化 keypoint に沿うように画像が伸縮している 背景は一部おかしくなっている(繰り返しテクスチャ)

22/26

Page 23: 170318 第3回関西NIPS+読み会: Learning What and Where to Draw

05/02/2023 2017 Seitaro Shinagawa AHC-lab NAISTⒸ

Comparison to previous work

違う条件で学習したモデルごとの生成結果 key point を入れた方が鮮明な画像が生成できているように見える key point も一緒に生成した場合は ICML2016 の結果(一番上)と同じように生成される位置、大きさはまちまち なぜか key point なし GAWWN は明らかに崩壊している

23/26

Page 24: 170318 第3回関西NIPS+読み会: Learning What and Where to Draw

05/02/2023 2017 Seitaro Shinagawa AHC-lab NAISTⒸ

Beyond birds: generating images of humans

人の姿勢画像生成( key point も一緒に生成)鳥画像と比べるとぼやけている

24/26

Page 25: 170318 第3回関西NIPS+読み会: Learning What and Where to Draw

05/02/2023 2017 Seitaro Shinagawa AHC-lab NAISTⒸ

まとめ説明文による条件付き画像生成をよりコントロールできるようにbounding box, key point による条件付けを導入したbounding box の導入 物体(鳥)は bounding box の通りに伸縮されて生成された そのかわり、 bounding box の外側は崩壊気味だったkey point の導入 物体(鳥、人)は key point に沿って生成される傾向にあった。 key point を固定すると生成される物体(鳥)はほぼ一意に定まった 乱数zを固定して key point を変化させると、その通りに画像が伸縮して生成された key point も含めて生成することも可能?生成される物体(鳥、人)は key point なし版とあまり変わらなかったが、生成された

key point を動かして生成画像を操作できる点を考えると便利かも

25/26

Page 26: 170318 第3回関西NIPS+読み会: Learning What and Where to Draw

05/02/2023 2017 Seitaro Shinagawa AHC-lab NAISTⒸ

その他個人的な感想など結局この論文が oral になった理由はどこ?→ ネットワークが複雑になり過ぎてて、広く意見を聞いた方がいいと判断された?色々と工夫しがいがありそう明示的に key point のあるデータなんてそもそもそんなないのでは説明文から end-to-end で画像生成する利点は、 attribute からの画像生成に比べて attribute の明示的な設計をしなくて済むところだと思っていたが、 attribute使いまくっている。入力する説明文自体も限定的な文だし、現状説明文のエンコーダにニューラルネットを使って End-to-End にする必要はあるのか? (構文解析+ α で十分なのでは・・・ )

課題 複数オブジェクトの画像生成 key-point の隠蔽(可変長化)

26/26

Page 27: 170318 第3回関西NIPS+読み会: Learning What and Where to Draw

05/02/2023 2017 Seitaro Shinagawa AHC-lab NAISTⒸ

おまけ: Reviewer陣の声(原文はこちら)Reviewer1

Reviewer2

Reviewer3

Reviewer4

Reviewer5

Reviewer6

結果は面白いが、前の仕事をちょっとひねっただけなのでは?どの表現がどのような画像操作に対応しているのかをきちんと理解できるかどうかに興味があるが、この結果からは分からないクリアに書かれている。 key pointや bounding box だけで全体の画像が制約できる点がエンジニアリング的にも面白い。ただ、 NLP 的な側面は限定的。 VAE でもいいのでは?使いやすいし非常に面白い!奇妙な繰り返しテクスチャが発生している画像があるが、これは何が原因かなにか手がかりはあるのだろうか?char-CNN-RNN の代わりに char-CNN-GRU を用いたとあるが、これは baseline として出されていたモデル( ICML2016 )にも同じように仕様変更したのか(してないのであれば、アンフェアではないか)非常に面白い。 local と global の処理分けがどのような意図で行われているのか分からなかった。 local,grobal を両方、または片方をはずすとどのような結果になるのか知りたい直感的理解ができなかった。なぜテキストエンベッディングは空間的に複製する必要があったのか?なぜ深さの結合と点ごとの乗算が両方に使われているのか?

27/26

Page 28: 170318 第3回関西NIPS+読み会: Learning What and Where to Draw

05/02/2023 2017 Seitaro Shinagawa AHC-lab NAISTⒸ

adversarial traininghow to learn good generative model distribution with two model• Generative model (G)• Discriminative model (D)

Fake Image(signal)

G

D

Fake?Real?

z

RealImage(signal)

black box

random select

28/26

Page 29: 170318 第3回関西NIPS+読み会: Learning What and Where to Draw

05/02/2023 2017 Seitaro Shinagawa AHC-lab NAISTⒸ

{0 : 𝑓𝑎𝑘𝑒1:𝑟𝑒𝑎𝑙

adversarial training

Fake Image(signal)

G

D

z

RealImage(signal)

black box

random select

29/26

Page 30: 170318 第3回関西NIPS+読み会: Learning What and Where to Draw

05/02/2023 2017 Seitaro Shinagawa AHC-lab NAISTⒸ

{0 : 𝑓𝑎𝑘𝑒1:𝑟𝑒𝑎𝑙

adversarial training

Fake Image(signal)

G

D

z

RealImage(signal)

black box

random select

see real image as realpredict wrong update

30/26

Page 31: 170318 第3回関西NIPS+読み会: Learning What and Where to Draw

05/02/2023 2017 Seitaro Shinagawa AHC-lab NAISTⒸ

{0 : 𝑓𝑎𝑘𝑒1:𝑟𝑒𝑎𝑙

adversarial training

Fake Image(signal)

G

D

z

RealImage(signal)

black box

random select

see fake image as fakepredict wrong update

31/26

Page 32: 170318 第3回関西NIPS+読み会: Learning What and Where to Draw

05/02/2023 2017 Seitaro Shinagawa AHC-lab NAISTⒸ

{0 : 𝑓𝑎𝑘𝑒1:𝑟𝑒𝑎𝑙

adversarial training

Fake Image(signal)

G

D

z

RealImage(signal)

black box

random select

see fake image as fakepredict correct update

32/26