画像認識
第9章 さらなる話題
(GANの最新サーベイ)
東京大学大学院
情報理工学系研究科 M2
本田志温
@shion_honda
@shionhonda
@shionhonda
概要
• セマンティックセグメンテーション
• 画像キャプション生成
• 画像生成とGAN(本発表のメイン)
2019/4/6 Shion HONDA 2
自己紹介
2019/4/6 Shion HONDA 3
• 医学系の研究室でAI創薬をしています
• NLP/CVも勉強中
• 勉強したことを発信しています!
• 趣味: 音楽鑑賞, 料理, 旅行, サッカー, 水泳など
• SFと神経科学も好き
セマンティックセグメ
ンテーション
2019/4/6 Shion HONDA 4
Semantic Segmentation
• 物体の輪郭検出+認識
• encoder-decoderを利用
• encoderのプーリングなどで特徴マップの空間情報
は失われている
→decode (upsample)しないと低解像度のまま
• upsamplingの方法が大事
2019/4/6 Shion HONDA 5
転置畳み込み(逆畳み込み)
2019/4/6 Shion HONDA 6
pad=1, stride=2
• 特徴マップを拡大する方法
• 画像生成で一般的に使われる
• pixel shufflingという方法もある
• 間を0で埋めて拡大後, 通常の畳
み込み
• 「転置畳み込み」と呼ばれる理
由は, 教科書の行列表現を参照
• 畳込み: (4,1) = (4,16) × (16,1)
• 転置畳込み: (16,1) = (16,4) × (4,1)
SegNet
• segmentationで使われる代表的なモデル
• 全結合は使わない
• Encoderのプーリングで採用される画素の位置を記
録しておく
→unpooling層では記録してい
た位置以外を0で埋める
→パラメータが増えない!
• 特徴マップの拡大をunpooling
で行う特殊な転置畳み込み
2019/4/6 Shion HONDA 7
その他のモデル
• Fully Convolutional Network (FCN)
• decodeを通常の転置畳み込みで行う
• 全結合の代わりに1×1の畳み込み
• encoderの特徴マップをdecoderの特徴マップに足
し合わせる
• U-Net
• encoderの特徴マップをdecoderの特徴マップに結
合させる
2019/4/6 Shion HONDA 8
FCN (Fully Convolutional Network):ディープラーニングによるSemantic
Segmentation手法 | NegativeMindException
画像キャプション生成
2019/4/6 NLP/CV 本田志温 9
Neural Image Caption
• Show and Tell: A Neural Image Caption
Generator
• Vinyals+, 2015, CVPR
• CNNで画像をencodeし, LSTMで文章にdecode
• クロスモーダルな「翻訳」(intelligentな感じがしま
せんか?)
2019/4/6 Shion HONDA 10
画像生成とGAN
NVIDIAの研究には「*」をつけています
2019/4/6 Shion HONDA 11
GAN
• 生成器はなるべく本物に近い画像を生成し, 識
別器はなるべく本物を見分けられるように学習
させる
• 「生成画像の本物らしさ」を識別器に評価させ
ているところがポイント
2019/4/6 Shion HONDA 12
[2] The GAN Zoo
他の生成モデル
• VAE
• encoder-decoder
• 対数尤度のELBO(変分下限)の最大化
• 分布に関して正則化をかけながら再
構成誤差を小さくする
→学習が安定している
• 生成画像がぼやけがちと言われている
• 自己回帰モデル
• PixelRNN
• Flowベース
• Glow
2019/4/6 Shion HONDA 13
[3]
DCGAN
2019/4/6 Shion HONDA 14
• Deep Convolutional GAN
• 生成器と識別器をCNNで設計
→学習の安定化とより高解像(100px^2くらい)な画
像の生成に成功
• 実装がたくさん落ちていて人気
ベッドルーム 寿司
学習方法
• Unrolled GAN
• 先に識別器のパラメータ更新をK回行い, その損失
で生成器のパラメータを更新
• その後識別器のパラメータは1回更新時に戻す
• 賢い識別器で生成器を導くイメージ
• WGAN
• Wasserstein距離: 砂山pをqへ移すときの最小コス
ト
• 生成器の目的関数をJS距離でなくW距離とする
• WGAN-GP
• スペクトル正規化
• 重みをL2ノルムで正規化→Lipschitz連続性
2019/4/6 Shion HONDA 15
W距離 gradient penalty
高解像度での生成
• PGGAN*
• 学習が進むのに合わせ
て徐々に層を深くしな
がら, 与える画像も高
解像度にしていく
(progressive growing)
• ミニバッチ標準偏差
• 1024px^2の画像の生
成に成功
• CelebA-HQ公開
2019/4/6 Shion HONDA 16
• BigGAN
• Self Attention GANの
モデルを拡大
• その他, 階層的潜在空
間などのテクニック
BigGAN TF Hub Demo – Colaboratory
でImageNetの画像を生成できる.
スマホでもGAN!
StyleGAN*
• 潜在変数zを一度別の空間Wにマッピング(FC)
→18層のSynthesis Networkへ入力
• 各層に入力するwを途中で切り替えることでス
タイルミックスが可能
• Mapping Networkは潜在変数z
のdisentanglementを担う
2019/4/6 Shion HONDA 17
[6]
https://thispersondoesnotexist.com/
https://thisrentaldoesnotexist.com/
クラス指定
• CGAN
• 入力にラベルベクトルを
含めて生成画像のクラス
をコントロール
• InfoGAN
• ラベルyと生成画像xの相互情報量が高くなるように
学習→ラベルとノイズのdisentanglement
• ACGAN
• 識別器にauxiliary classifierを追加し, クラス分類も
行わせる
• 良い生成画像は識別しやすいはず
2019/4/6 Shion HONDA 20
今さら聞けないGAN(6) Conditional GANの実装 - Qiita
画像変換
• pix2pix
• 教師ペアが必要な2ドメイン間の
変換
• U-NetをConditional LossとL1損
失で訓練
• CycleGAN
• ペア不要の2ドメイン間の変換
• U-NetをCycle Lossなどで訓練
(変換→逆変換で元に戻るか)
• StarGAN
• マルチドメイン間の変換
• cycle consistencyを工夫して, 生
成器/識別器を1つずつで実現
2019/4/6 Shion HONDA 21
画像変換
• Video-to-Video Synthesis*
• 直前の画像で条件付けて動画
を生成
• Optical flowも生成・識別
• ペアの動画が必要
• SPADE*
• SPatially-Adaptive
(DE)normalization
• BNのパラメータ𝛾, 𝛽(テンソ
ル)の値をラベルによって変
える
2019/4/6 Shion HONDA 22
恋ダンス
vid2vid
2019/4/6 Shion HONDA 23
SPADE
2019/4/6 Shion HONDA 24
超解像
• Super-Resolution GAN
• GANの生成画像はボケにくい
• 通常の損失にVGGによる
perceptual lossも追加
• Enhanced SRGAN
• Residual in Residual Dense Blockを利用
2019/4/6 Shion HONDA 25
ESRGAN
2019/4/6 Shion HONDA 26
text-to-image
• StackGAN
• CGANの条件を文章の潜在表現で与える
• Stage-Iで64px^2の粗い画像を生成
• Stage-IIで256px^2にrefine
• ネットワークを改良したStackGAN++もある
2019/4/6 Shion HONDA 27
評価指標
• Inception score (IS)
• 生成画像が学習済みInceptionネットワークで識別
しやすいほど, またラベルの事前確率が均等である
ほど低くなる(低いほど良い)
• モード崩壊に対応していない
• 簡単なのでよく使われる
• Frechet inception distance (FID)
• 真の分布と生成分布とのFrechet距離(小さいほど良
い)
• Multi-scale structural similarity (MS-SSIM)
• 複数のスケールで画像間の類似度を評価
→多様性の指標になる
2019/4/6 Shion HONDA 28
Google Brainによるメタ分析
• Are GANs Created Equal? (2017 Nov.)
• 様々に提案される手法を公平に比較
• 十分なハイパラ探索をすればどの手法でも同程度の
FIDが得られた
• The GAN Landscape (2018 Jul.)
• 損失, アーキテクチャ, 正則化, 正規化の組を探索
• Non-saturating lossとスペクトル正規化が有効
2019/4/6 Shion HONDA 29
まとめ
• 高解像度での画像生成が可能になってきた
• 潜在空間を操ることも可能になりつつある
• 課題
• モード崩壊
• 学習の安定化
• 評価指標の確立
• 出力画像のコントロール
• 応用先
• 広告やアートなどクリエイティブ系
• VR/AR
• 異常検知
• NVIDIAすごい
• 論文が読みやすい(ネットワーク芸になりがち?)
• できるだけ多くのデータセットでの検証とablation studyをしましょう
2019/4/6 Shion HONDA 30
参考文献
2019/4/6 Shion HONDA 31
[1] 原田, 画像認識, 講談社, 2017.
[2] The GAN Zoo
GANの名前がついた論文のリスト.
[3] Variational Autoencoder徹底解説 – Qiita
図が豊富でとても親切.
[4] Z. Pan et al., Recent Progress on Generative Adversarial Networks
(GANs): A Survey, IEEE, 2019.
知る限り最新のサーベイ資料. なぜかNVIDIAがスルーされている.
[5] 鈴木, GAN(と強化学習との関係), 2017.
理論についても丁寧に解説されている.
[6] Style-based GANs – Generating and Tuning Realistic Artificial Faces
| Lyrn.AI
[7] 何をしたいかで有名どころのGANの種類、派生を整理 – Urusu Lambda
Web
[9]はじめてのGAN
参考文献
2019/4/6 Shion HONDA 32
[10] テキストから画像を生成するGANまとめ - akmtn記録
[11] FCN (Fully Convolutional Network):ディープラーニングによる
Semantic Segmentation手法 | NegativeMindException
SegNetとU-Netの解説もありました.

画像認識 第9章 さらなる話題

Editor's Notes

  • #7 GANでも使われているので重要
  • #16 SNはPFNの宮戸さん
  • #22 pix2pixとCycleGANはBerkeley AI Research
  • #23 恋ダンス Everybody Dance Nowという論文がほぼ同時期にBerkeleyから出たが、こちらはより汎用
  • #33 ギャン or ガン?