論文読み. 5 Wasserstein Generative Adversarial Networks (PMLR 2017)

## はじめに
　`Wasserstein Generative Adversarial Networks`という論文を読んだのでまとめていきます。なお、今回は個人的な事情から2章までのみをまとめます。

## 1. 対象とするトピック
### 1.1 キーワード
 `Wasserstein distance`, `GAN` 
[arxiv](https://arxiv.org/abs/1701.07875)
[pmlr](http://proceedings.mlr.press/v70/arjovsky17a.html)

### 1.2 Abstract
> We introduce a new algorithm named WGAN, an alternative to traditional GAN training. In this new model, we show that we can improve the stability of learning, get rid of problems like mode collapse, and provide meaningful learning
curves useful for debugging and hyperparameter searches. Furthermore, we show that the corresponding optimization problem is sound, and provide extensive theoretical work highlighting the deep connections to different distances between distributions.

## 2. Introduction

　この章では確率分布の教師なし学習を行う上での手法の解説と、実用において望ましい性質が示されています。
　確率分布の教師なし学習を行う際には、以下のような問題を考えることが多いです(This is often ~ 以降)。
<img width="731" alt="スクリーンショット 2020-04-11 17.04.27.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/426293/5bdca8cf-1fd5-b3d1-66a2-69f11256779b.png">

　上記の最大化問題は、下記の真の分布とパラメータが定めるモデル分布との間の` Kullback-Leibler divergence`の最小化問題と等しいです。
<img width="740" alt="スクリーンショット 2020-04-11 17.08.35.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/426293/dfc23901-035b-e070-6bd0-0740360f0ed3.png">

　この問題を解けば真の分布に近いモデル分布を定めるために必要なパラメータが手に入ります。しかし、一般的にはモデル分布と真の分布との間で` Kullback-Leibler divergence`を定義することができません。この` Kullback-Leibler divergence`を定義するために、モデル分布にノイズを加えることが多いです。すると、モデル分布と真の分布で重なりが生じ、` Kullback-Leibler divergence`を定義することができます。しかし、ノイズのせいでモデルの質が下がるという別の問題が生じます。
　そこで、更に別の手法を考える必要があります。今度はサンプルを生成するアプローチを考えます。具体的には以下の通りです。
<img width="867" alt="スクリーンショット 2020-04-11 17.18.38.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/426293/321e1c30-65ef-4d64-74b5-cad98297efaf.png">

　上記の通り、ある分布に従うランダム変数からモデル分布に従うようなサンプルを生成します。その後モデルのパラメータを変化させながらモデル分布を真の分布に近づけます。この手法は`VAE`や`GAN`で使用されています。`GAN`は`VAE`よりも柔軟性で優れています。しかし、`GAN`は学習が不安定で扱いが難しいという欠点を抱えています。そこでこの論文では、上述した` Kullback-Leibler divergence`を含む様々な距離関数について考察を行い、GANの抱える問題を解消しようと試みています。具体的には、現在`GAN`で用いられている`Jensen-Shannon divergence`ではなく`Wasserstein divergence`が距離関数として適切であると示しています。そして、`Wasserstein divergence`を取り入れた`WGAN`について実験等を行なっています。

　なお、論文では距離関数の収束性と連続性に注目しています。そして、これらが優れている関数が距離関数として適切であるとしています。収束性についての記述は以下の通りです。
<img width="755" alt="スクリーンショット 2020-04-11 17.39.53.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/426293/c94b22cb-9769-50fc-9d2c-6f027e3664d8.png">

　また、連続性についての記述は以下の通りです。
<img width="774" alt="スクリーンショット 2020-04-11 17.38.27.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/426293/ab49d8da-bd2c-fbd0-576f-28c1ab1a004f.png">

　簡単な説明は以下の通りです。分布の学習において必要なのは損失関数を勾配法等で連続的に最適化することです。損失関数の収束性と連続性が満たされていない場合、勾配法によって損失関数を最適化することが難しくなってしまいます。そして、損失関数は空間における分布間の距離計算方法に依存しています。そのため、距離関数が収束性と連続性を満たす必要があります。

### GANの学習が難しい理由
　`GAN`では`JS-divergence`を近似する`D`と`D`の生成した損失を最小化するように学習する`G`が登場します。最終的には`G`が生成するモデル分布が真の分布に近づくことがゴールです。そのためには、`D`が生成する損失を勾配法で連続的に最適化できなければいけません。しかし、`D`の学習が進むにつれて損失関数の勾配は0に近づいていきます。そのため、`D`を十分に学習したのちに`G`を学習させるという手段が取れません。一方で学習が不足している`D`が生成する損失関数を用いても、近似が不十分な損失関数を`G`が最小化することになります。この場合、`G`は誤った損失を最小化しているので学習結果は芳しくありません。以上のトレードオフが`JS-divergence`を距離函数とした場合の`GAN`の学習が難しい理由です。

## 3. Different Distances

　この章ではまず、様々な確率分布間の距離指標を列挙します。その後、`EM distance`がその他の距離よりも優れている点を示します。（なお論文では`EM distance`がGANで必要となる低次元多様体でサポートされた確率分布を学習するために適していると結論付けています。そして、以降の章では`EM distance`を用いた`WGAN`について考察しています。）
　まず、記号の定義は以下の通りです。
<img width="1389" alt="1.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/426293/d3710bdc-d7d4-edd3-8438-7fe8aa565c11.png">
　この時、距離指標が以下のように定義されます。
<img width="837" alt="スクリーンショット 2020-04-09 21.09.41.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/426293/4bbafbb7-aa31-de19-a9a5-b6c4f98f1e13.png">
<img width="857" alt="スクリーンショット 2020-04-09 21.10.30.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/426293/a83928b0-43c2-af01-65fa-fa7a9b47b9e0.png">
<img width="1116" alt="スクリーンショット 2020-04-09 21.11.05.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/426293/97fe6e8f-f63d-504f-6b0e-da6e08618e51.png">
<img width="1114" alt="スクリーンショット 2020-04-09 21.11.36.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/426293/5770e283-a56a-7acf-761c-3a3fef6f318f.png">
　次に具体例を通じて各距離指標の性質を確認します。最初に考えるのは一様分布の学習です。以下のように記号を定義します。
<img width="1159" alt="スクリーンショット 2020-04-09 21.22.42.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/426293/7ee03bc2-b086-00a1-f5ad-1749d6c159b1.png">
　すると、以下のように距離が計算されます。
<img width="728" alt="スクリーンショット 2020-04-09 21.23.56.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/426293/eba71e7b-50ac-ab4a-d069-ac9a33381dec.png">
　計算結果から明らかなように、$\theta \rightarrow \theta_0$へと収束した時に収束する距離は`EM distance`のみです。
　上記の具体例から`EM distance`を距離として用いた場合のみ損失関数は連続になります。つまり、`EM distance`を距離として用いた損失関数のみが勾配法によって最適化を行うことができます。よって低次元多様体上での確率分布の学習の際に`EM distance`を距離として用いることが適切です。また、同様の結論がより一般化された状況でも得られます。

## 参考文献

- Martin Arjovsky, Soumith Chintala, and L´eon Bottou (2017). Wasserstein Generative Adversarial Networks, http://proceedings.mlr.press/v70/arjovsky17a.html
- Deep Learning JP (2017), [DL輪読会]Wasserstein GAN/Towards Principled Methods for Training Generative Adversarial Networks