個人的に面白かったMachine Learning論文 in 2019 Part 3 — GAN,実応用 —
この記事は、2019年に発表された機械学習論文の中で、個人的に面白かった論文の概要を紹介します。まとめていると多くなってしまったので、3つの記事に分けます。この記事はPart3です。
- Part 1 : 画像・動画系と学習の工夫関連
- Part 2 : NLP、自然科学分野、DLの解析
- Part 3 : GAN、実社会応用、その他分野(この記事)
Part 3では、下記4分野の合計25の論文を紹介します。この4分野は便宜上設定したものなので、所属分野に重複等があることをご了承ください。
1. GAN(Style Transfer関連)
- SEAN: Image Synthesis with Semantic Region-Adaptive Normalization
- TransGaGa: Geometry-Aware Unsupervised Image-to-Image Translation
- Analyzing and Improving the Image Quality of StyleGAN
- SC-FEGAN Face Editing Generative Adversarial Network with User’s Sketch and Color
- MarioNETte: Few-shot Face Reenactment Preserving Identity of Unseen Targets
- FaceShifter: Towards High Fidelity And Occlusion Aware Face Swapping
- Few-shot Video-to-Video Synthesis
- Few-Shot Adversarial Learning of Realistic Neural Talking Head Models
2. GAN(生成画像の質改善/新アーキテクチャ/新タスク設定)
- High-Fidelity Image Generation With Fewer Labels
- Consistency Regularization for Generative Adversarial Networks
- SMALL-GAN: SPEEDING UP GAN TRAINING USING CORE-SET
- LOGAN: LATENT OPTIMISATION FOR GENERATIVE ADVERSARIAL NETWORKS
- HoloGAN: Unsupervised learning of 3D representations from natural images
- SinGAN: Learning a Generative Model from a Single Natural Image
- Interactive Sketch & Fill: Multiclass Sketch-to-Image Translation
3. 実社会の応用
- Counterfactual Visual Explanations
- GRAPE DETECTION, SEGMENTATION AND TRACKING USING DEEP NEURAL NETWORKS AND THREE-DIMENSIONAL ASSOCIATION
- CITY METRO NETWORK EXPANSION WITH REINFORCEMENT LEARNING
4. その他
- What’s Hidden in a Randomly Weighted Neural Network?
- Making the Invisible Visible: Action Recognition Through Walls and Occlusions
- GraphNVP: An Invertible Flow Model for Generating Molecular Graphs
- How to make a pizza- Learning a compositional layer-based GAN model
- Superposition of many models into one
- Go-Explore: a New Approach for Hard-Exploration Problems
- The Domain Shift Problem of Medical Image Segmentation and Vendor-Adaptation by Unet-GAN
1. GAN(Style Transfer関連)
GANで生成される画像がかなり実画像に近くなってきたため、最近は単純な高品質画像生成よりもStyle Transfer等の活用方法へ研究がシフトしているイメージがあります。顔の表情転移は、割とメジャーなタスクのようです。Few-shotでの転移もチラホラでてきています。
1.1. SEAN: Image Synthesis with Semantic Region-Adaptive Normalization
https://arxiv.org/abs/1911.12861
SPADEを拡張。画像とその領域分割マスクをもとに、そのスタイルを転移させる正規化層SEANを提案。Encoderで固定次元のStyle Matrixと各領域分割マスク毎に独立でStyleの入れ込みをするため、任意の意味数を持つ領域マスクを使ってスタイル変換が可能。
SPADEは、領域の種類が学習と推論で一致する必要(固定数)があり、さらに領域毎に独立した処理を行なっていなかった。前者は固定次元のStyle Marixに落とし込むことで任意の意味次元をもつマスクを使うことが可能(学習時は口のマスク、推論時は下唇・上唇・口内と分割されているマスク等)になった。後者では、各Style Marixと各意味領域毎に処理することによって、独立した処理が可能になり、より洗練されたスタイル変換が可能になっている
1.2. TransGaGa: Geometry-Aware Unsupervised Image-to-Image Translation
https://arxiv.org/abs/1904.09571
cycleGANでは困難であった物体の形状変更を可能にしたGAN。物体の向き(geometry)と物体の形状(appearance)別々に、AEによる潜在空間落とし込みと変換を行う。cVAEとgeometryのprior的なものを導入することがポイント。
1.3. Analyzing and Improving the Image Quality of StyleGAN
https://arxiv.org/abs/1912.04958
StyleGANを改良したStyleGAN2の提案。AdaINの代わりにCNNのWeightを正規化することでdropletの除去、正則化項の更新回数を減らすことによる学習速度向上、潜在空間で連続性を持たせ、Progressive Growingの除去、で質向上を図る。StyleGANに比べてFID等が大きく向上。
以前書いた解説ブログはこちら↓
1.4. SC-FEGAN Face Editing Generative Adversarial Network with User’s Sketch and Color
https://arxiv.org/abs/1902.06838
写真に絵を描いたら、その通りに写真を修正してくれるSC-FEGANを提案。ランダムにマスクをかけてその部分にスケッチ画(Edge Detectで生成)と粗い色付きに変換したもの、+ノイズを乗せてイラスト付きの画像を生成する。その生成した画像と、真の画像を使ってGANを構成する。
1.5. MarioNETte: Few-shot Face Reenactment Preserving Identity of Unseen Targets
https://arxiv.org/abs/1911.08139
表情の転移をFew-shotで行うGAN。SelfAttention導入, 顔ランドマークの表情成分と個人成分の分離、で従来手法では失敗していた顔の外形や大幅な表情変化がある場合でも上手く転移できている。
1.6. FaceShifter: Towards High Fidelity And Occlusion Aware Face Swapping
https://arxiv.org/abs/1912.13457
顔を入れ替えるGAN。先行研究と異なり転移先の影や遮蔽物、角度をよく再現できている。新しいAdaptive NormであるAADを使ったAEI-Netで生成したものを、targetのAEI-Net再構成誤差と共にHEAR-Netに入れて微調整を行う2stageの機構。2nd stageの微調整により、転移先の遮蔽物等をうまく再現できる仕組み
1.7. Few-shot Video-to-Video Synthesis
https://arxiv.org/abs/1910.12713
few shotでvideoを合成するGANを提案。vid2vidを踏襲しつつもFew shotで合成する対象のサンプルをSPADEを使ってstyleを入れ込む手法を取っている。①合成したビデオの直前のフレームと合成したい時刻のkey pointからOptical Flow WとOcclusion Map M を抽出②合成したいサンプルの特徴量をEで抽出し、合成元の情報と合わせてSPADE ResBlockに入れ込む。①②を合わせて新しい時刻のフレームを合成する
以前書いた解説ブログはこちら↓
1.8. Few-Shot Adversarial Learning of Realistic Neural Talking Head Models
https://arxiv.org/abs/1905.08233
メタ学習と組み合わせることでGANでFew-shot learningを実施した論文。顔のLandmarksの情報とEmbedderから抽出されたその人個人の特徴量ベクトルから、表情の転移を行う。デモではモナリザが喋っており印象的。
2. GAN(生成画像の質改善/新アーキテクチャ/新タスク設定)
BigGANsやStyleGAN以降、ネットワークのアーキテクチャを変更して画像の質向上のみを目指した研究は少なくなってきたように思います。代わりにLOGANやSMALL-GANなど、アーキテクチャ以外の部分で生成画像の質を向上させるという研究が増えてきた気がします。2019年はGANの生成画像の質も高品質になってきたので、単に質を追求するのではなく、SinGAN等GANを使って色々やろうという研究が多くあるように思いました。
2.1. High-Fidelity Image Generation With Fewer Labels
https://arxiv.org/abs/1903.02271
Self-Learning, Semi-Supervised Learningの手法をBigGANsに取り入れたS3GANを提案。わずかなラベル付きデータでImageNetのFIDスコアSOTA。Projection discriminatorに真のラベルを入れずに線形分類器で学習したラベルを使用すること、self-supervised learningを使うことがポイント。
2.2. Consistency Regularization for Generative Adversarial Networks
https://arxiv.org/abs/1910.12027
画像に変換を加える前後でDiscriminatorの出力値が変化しないような制約をかけるConsistency Regularizationにより、GANの学習を安定させる。実装もシンプルならが効果も強力。
2.3. SMALL-GAN: SPEEDING UP GAN TRAINING USING CORE-SET
https://arxiv.org/abs/1910.13540
大きなバッチサイズがGANの生成物の質に寄与することは知られているが、メモリの問題で実際は載せることができない。所望のバッチサイズから代表点を選ぶことにより、擬似的に大きなバッチサイズでGANを学習できる。毎バッチ代表点を選ぶ処理が必要であるので、一度Inceptionで画像を埋め込んで、その空間で代表点を選んでいる。
2.4. LOGAN: LATENT OPTIMISATION FOR GENERATIVE ADVERSARIAL NETWORKS
https://arxiv.org/abs/1912.00953
潜在変数の最適化によりGAN性能を向上させ、ImageNetのSOTAを大きく更新。一度サンプリングした潜在変数を使ってzを最適化(自然勾配法を使うとさらに効果が大きい)したあとのものを使って、DとGの学習を行う。多くのGANに適用できるアルゴリズムなので、今後の潮流となるかも
2.5. HoloGAN: Unsupervised learning of 3D representations from natural images
https://arxiv.org/abs/1904.01326
2D画像から角度を変えて撮像したような画像を生成するHoloGANを提案。GeneratorはStyleGANと同じように、固定値からAdaINを通じてStyleを各階層で与える構造となっている。Conditional GANを使わずに2Dから3Dへの学習を成功させたことがこの論文の貢献の1つであるようだ。cGANのようにある拘束条件を各ネットワークに入れていない完全な教師なし学習となっている。
2.6. SinGAN: Learning a Generative Model from a Single Natural Image
https://arxiv.org/abs/1905.01164
ICCV2019のBest Paper.画像に何らかの変換を与えたものを自然なものに変換するGAN。生成→Upsampleで解像度を上げる→それを入れて生成…を繰り返し、複数解像度のPatchGANのように学習させる。変換を加えた画像を低解像にしてネットワークに入れ込んでGを通すと図のように自然な編集が可能になる
2.7. Interactive Sketch & Fill: Multiclass Sketch-to-Image Translation
https://arxiv.org/abs/1909.11081
対話的に画像を作れるGAN。線を補完する部と補完されたスケッチから画像を生成する部の2つにわかれる。カテゴリを入れるためにGatingというのを使っている
3. 実社会への応用
機械学習の実社会への実装例もだいぶ増えてきた気がします。日本は労働人口が減っており、機械学習を使った生産性向上の必要性が世界の中でも高そうです。
3.1. Counterfactual Visual Explanations
https://arxiv.org/abs/1904.07451
「サンプルの画像のある部分を変化させると別のクラスに分類される」という可視化を行うことによって、画像の分類根拠を説明するという試み。分類器を前半fと後半gに分け、2つのサンプルそれぞれからfで抽出される特徴量マップのどこを入れ替えたら別クラスにg分類されるのか、という情報からAttentionで可視化する。
野鳥を分類する教育資料への利用例が書いてあり、この技術で2つの鳥の違いを明示することで教育の効率化を図っている
3.2. GRAPE DETECTION, SEGMENTATION AND TRACKING USING DEEP NEURAL NETWORKS AND THREE-DIMENSIONAL ASSOCIATION
https://arxiv.org/abs/1907.11819
ぶどう畑のぶどうを検知+数えるた研究。新手法適用というよりobject detectionとtrackingの現場のML活用例といった感じ。「連続したフレームでブドウを検知した後にStructure from Motionで3D→同一のブドウを検知する」というアイデアが肝。
3.3. CITY METRO NETWORK EXPANSION WITH REINFORCEMENT LEARNING
https://openreview.net/forum?id=SJxAlgrYDr
専門家の知見なしに強化学習を用いて、西安の地下鉄を最適に拡張させるという研究。アクセスの良さと公平性をRewardとし、RNNで駅を逐次生成しactor-criticで最適化するという手法を取っている。公平性を最大にすると発展しているエリアを通るようになる等の変化があり、うまく2つの項目が機能していることがわかる。
4. その他
ここでは、グループに分けきれなかったものを紹介します。色々な話題がありますが、CycleGANを使ったドメイン適用は実応用でもけっこう重要かなと思いました。
4.1. What’s Hidden in a Randomly Weighted Neural Network?
https://arxiv.org/abs/1911.13299
重みではなく、結合方法を学習することで通常の学習済みモデルに匹敵する精度を出す研究。重みは初期値のまま、結合可否の評価を誤差逆伝播で学習し、その上位数%で選ばれた結合のみを使用して推論を行う
4.2. Making the Invisible Visible: Action Recognition Through Walls and Occlusions
https://arxiv.org/abs/1909.09300
画像だけでなく、高周波から得られた情報も用いて行動検知を行う研究。高周波情報を用いているので、人が隠れていても行動を検知できることがポイント。
4.3. GraphNVP: An Invertible Flow Model for Generating Molecular Graphs
https://arxiv.org/abs/1905.11600
可逆性をもつflow系生成モデルで分子生成をする研究。特徴量・隣接行列をそれぞれ別の可逆変換を通して潜在表現におとす。
隣接行列と特徴量行列は離散なので、連続値に修正するために一様分布ノイズを加えるdequantizationというテクニックを使っている。多様性のある分子を生成できることが特徴のようだ
4.4. How to make a pizza- Learning a compositional layer-based GAN model
https://arxiv.org/abs/1906.02839
ピザのトッピングを追加・除去できるGAN。追加・除去モデルともに対象物の画像とマスクを生成して元画像にかぶせる構造になっている。何が乗っているかを見分けるclassification lossとcycleGANのcycle consictency lossを追加している。MITはともかくとして、カタールの大学もピザには情熱を注いでいるのだろうか・・・
4.5. Superposition of many models into one
https://arxiv.org/abs/1902.05522
複数のニューラルネットワークの重みを1つのネットワークに集約し、各ネットワークをそこからそれぞれ取り出せるという機構を提案。フーリエ変換っぽい操作をして、重みベクトルWを変換する。近年の研究で、ニューラルネットは疎であるということがわかってきたので、ある空間(フーリエ変換でいうと波数空間)に転移してあげれば、複数のネットワークを保存できるということなのだろう。今のところ、この手法を使えるのは普通のDNNのみ。
4.6. Go-Explore: a New Approach for Hard-Exploration Problems
https://arxiv.org/abs/1901.10995
Montezma Revengeで圧倒的スコアを叩き出したRNDを圧倒した手法。
良質なプレイ軌跡を探索するphase1と、その軌跡を模倣学習するphase2に分かれている。Phase1では、『探索済み空間から状態を1つ選ぶ→ゲームのリセットによってその状態に飛ぶ→探索する→探索済み空間を更新』を実施するが、驚くべきことにphase1では一切ニューラルネットを使用していない。
4.7. The Domain Shift Problem of Medical Image Segmentation and Vendor-Adaptation by Unet-GAN
https://arxiv.org/abs/1910.13681
MRIのベンダーが違うと左心室の領域分割が失敗するので、CycleGANを使ってドメイン(ベンダー)変換を行なった上で、領域分割をすると上手くいった。このようなDomain shiftはML界隈では一般的な問題なので、ドメインの数が少ないばいは汎用的な戦略かもしれない。
まとめ
今回はGANや実応用に特化した研究を紹介しました。2020年が始まってまだ少しですが、すでに面白い研究が沢山でています。2020年もMLの発展には目が離せなさそうです