GANs for Good (Dr. Ian Goodfellow 講演内容の紹介)




# はじめに

2020年9月30日に GANs for Good と言うGANのトークイベントがあり、Dr. Ian Goodfellow (イアン・グッドフェロー博士)のキーノートスピーチがあったので聴講してみました。キーノートスピーチの内容を紹介します。トークイベントの動画は下記より視聴可能です。

> [GANs for Good (YouTube)](https://www.youtube.com/watch?v=9d4jmPmTWmc)

![gans01.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/417390/e924d76f-a6cc-1b2d-3836-a234f2728e3c.jpeg)
出典： [1] DeepLearning.AI

GANs for Good のトークイベント自体は、DeepLearning.AI が Coursera にて GAN のオンライン専門講座(The GANs Specialization)の提供を開始する事の宣伝イベントの様です。

> [The GANs Specialization (無料)](https://www.coursera.org/specializations/generative-adversarial-networks-gans?utm_source=deeplearningai&utm_medium=institutions&utm_campaign=SocialAndrewGANs)




# Dr. Ian Goodfellow のキーノートスピーチ

キーノートスピーチとして、GANの基本的な説明(1.)とGANの応用例(2.)を紹介していました。聴講した感じ、2018年以前の古めの話が中心でしたが、現職のAppleで取り組んでいるGANのARへの応用(2.2)とGANのQuickPathの識別精度向上への応用(2.4)の話が新しめの話として出ていたかと思います。

以下、スピーチの概要をまとめます。今回のスピーチのスライドは配布されていない様でしたので、Dr. Ian Goodfellowが今までに配布してきたスライド等を引用元を明記し載せてあります。ですので、今回のスピーチのスライドそのままではありませんが、スライドの内容はほぼ同じです。



## 1. GANの基本的な説明 (quick summary)
GANの基本的な説明として、下記の4つのスライドについて説明していました。

![gans02.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/417390/18195b93-cc73-f0b3-a5b5-69d50d8ee520.jpeg)
出典： [2] Adversarial Machine Learning
GANは生成モデルで、訓練データのデータ分布からモデル分布を学習し、新しいサンプル分布(画像)を生成する。



![gans03.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/417390/7c83cadc-d68b-9610-a101-0888a63fb851.jpeg)
出典： [2] Adversarial Machine Learning
GANでは識別器と生成器という２つのプレーヤがナッシュ均衡を目指して学習し、モデル分布を学習する。



![gans04.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/417390/9de9a77b-f9be-6340-2375-9275316fb54a.jpeg)
出典： [2] Adversarial Machine Learning
2014年のGAN研究初期頃には、小さい解像度のグレースケールの顔画像しか生成できなかったが、その後大きい解像度でフォトリアリスティックな顔画像が生成できる様に進歩してきた。



![gans05.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/417390/4c7bcb9c-c93c-3613-3f0b-83436e2d387c.jpeg)
出典： [2] Adversarial Machine Learning
2014年のGAN研究初期頃には、様々なカテゴリーの画像を生成する事もできなかったが、クラス条件付きGAN (class conditional image generation) の進歩により、ImageNetの1000クラスの条件付き画像生成も可能となった。




## 2. GANの実社会への応用(アプリケーション)

Dr. Ian Goodfellow はGANの実社会への応用にとても関心を持っていると話したうえで、以下の４つのアプリケーションを紹介していました。

### 2.1 GANを利用した歯冠の作成
![gans06.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/417390/f2b5dd5b-4f14-0c91-1868-31937028884d.jpeg)
出典： [3] DeepLearning.AI
従来、歯冠は技師が２週間程度かけて作成していた。これに対して、GANに口腔内の距離や位置関係を条件として追加し、歯冠のデータを生成可能とし、3Dプリンタを利用する事で、歯冠を１日で作成できる様になった。



### 2.2 ARでのGANのアプリケーション
![gans07.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/417390/e3b6da49-8ff6-9d79-495f-7976266c6904.jpeg)
出典： [4] Sharon Zhou (DeepLearning.AI)
ARでポットを現実世界に重畳表示した時に、左側のポットは環境マップが不完全なので(ポット周辺の紙とかノートしかカメラで撮影できてないので)、ポットに紙とかノートしか映り込んでいなく、背景の柱や照明が映り込んでいない。不足する背景や照明などをGANで生成し、環境マップを完全な物にする事で、ポットの映り込みのレンダリングの質を向上させた。



### 2.3 GANでの訓練データの生成 (視線推定)
![gans08.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/417390/9e0969ac-53e1-5716-55e2-41f8a171bfea.jpeg)
出典： [2] Adversarial Machine Learning
GANで生成した画像を識別の訓練データとして利用する場合、1種類のソースから画像を生成するのでなく、2種類のソースから画像を生成した方が識別の精度が向上する。その例として、視線推定に適用した SimGAN があり、視線のラベル付けが容易な合成画像(synthetic image)に対して、GANと実際の画像(real image)を用いた修正をする事で、ラベル付けされたリアルな視線画像を生成し、視線推定精度を向上させた。(CVPR2017, Best Paper Award)



### 2.4 QuickPathの訓練データの生成
![gans09.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/417390/80ea202a-7863-32b5-15fd-23d7ab11d6fb.jpeg)
出典： [5] IMPROVE CONTINUOUS PATH KEYBOARD INPUT
2.3と同じ考え方を QuickPath の訓練データに適用した。QuickPath は iOS のキー入力インタフェースで、ユーザは入力したい単語のキーを指でなぞり入力する。指でなぞった単語の入力パスの識別には大量の訓練データが必要で、入力パスの合成アルゴリズムを用いて機械的に生成していたが、実際にユーザが入力する多様なパスを再現できていなかった。これに対して、３次スプライン曲線をGANでスタイル変換し、より人間らしいパスを生成し訓練データに利用する事で、識別精度を向上させた。



### 2.5 アプリケーションに関する話のしめ
![gans10.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/417390/13338884-1b32-d108-a588-e12f48fb88b0.jpeg)
出典： [4] DeepLearning.AI (Sharon Zhou)
GANで生成したデータは社会での様々なアプリケーションに有用だと考える。医療分野でのプライバシーの考慮が不要なデータの提供や、データが少ないドメインに対してGANで生成したデータが提供できる事で、公平性やデータ取得性を向上させる事もできる。



# 参考文献

- [1] DeepLearning.AI, "[https://twitter.com/DeepLearningAI_/status/1311352087075123205](https://twitter.com/DeepLearningAI_/status/1311352087075123205)"

- [2] Ian Goodfellow, "[Adversarial Machine Learning](https://www.iangoodfellow.com/slides/2019-05-07.pdf)", ICLR Keynote, 2019

- [3] DeepLearning.AI, "[https://twitter.com/DeepLearningAI_/status/1311352454642987009](https://twitter.com/DeepLearningAI_/status/1311352454642987009)"

- [4] Sharon Zhou (DeepLearning.AI), "[https://twitter.com/realSharonZhou/status/1311379569899982852](https://twitter.com/realSharonZhou/status/1311379569899982852)"

- [5] Akash Mehra, et al., "[Leveraging GANs to Improve Continuous Path Keyboard Input Models](https://arxiv.org/abs/2004.07800)", arXiv, 2020