Prescribed Generative Adversarial Networksを読んだのでメモ
はじめに
Prescribed Generative Adversarial Networksを読んだのでメモ.
気持ち
GANの問題の一つであるmode collapseとモデル分布(生成分布)が陽に定義されておらず尤度等の計算ができないという2つの問題にアプローチした論文.mode collapseはモデルの学習に尤度やエントロピーなどデータ分布に対する損失が入っていないことが原因で,これはGANのデータ分布の扱いにくさに起因する.そのため本質的にはひとつの問題に帰着する.この論文ではGANの生成過程を修正することでモデル分布を扱いやすくしこれらの課題の解決を試みている.
Prescribed Generative Adversarial Networks (PresGAN)
PresGANはGANの生成過程をVAE-likeに修正することでモデル分布がwell-definedなGANを作る.論文のプロローグにてdeep generative model(DGM)に関する詳しい議論がされているが,簡単に言えばDGMはモデル分布(密度)は多様かつ質の高い(真のデータと見分けがつかない)データを生成し,また対数尤度が計算可能であるという性質を満たすべきということを述べている.
PresGANはGANのAdversarial lossにエントロピーの項を加えたものでひとつの大きな工夫として,学習にはエントロピーそのものではなくその勾配が求まればパラメータを学習できるため,直接勾配を計算する方法を提案している.
PresGANは事前分布と尤度を以下のガウス分布として定義する.
の平均はを入力とするニューラルネットの出力で与えられる.ただし分散は対角成分のみに値を持つで定義され,は直接学習パラメータとしてもつ.
生成過程を上記のように定義することで生成分布のエントロピーがwell-definedになり,mode collapseを避けるために損失にエントロピー正則化を加えることができるようになる.さらに対数尤度の推定も可能となる.
Avoiding mode collapse via entropy regularization
まずエントロピー正則化について説明する.PresGANは次の損失関数の最適化を行う.
はエントロピーで次のように定義される.
はハイパーパラメータで0のときは通常のGANになり,無限大のときはエントロピー最小化と一致する.すなわち第一項が生成データの質を,第二項が多様性を向上させる役割を持つ.
このエントロピーはに関する期待値となっていて計算が困難だが,学習のためには勾配のみが必要となるためこれを次の直接不偏モンテカルロ推定によって求める.
Fitting Prescribed Generative Adversarial Networks
まず生成分布のパラメータを,discriminatorのパラメータをとする.の学習には次の勾配を計算する必要がある.
の計算は正規分布からのサンプリングをVAEと同様次のreparameterizationされた形式で計算することで直接計算可能.
ただしはニューラルネットのパラメータとしは標準正規分布からサンプリングされた値.論文では勾配の細かい計算が説明されているが通常のGANと何ら変わりないので割愛.
問題は第二項のエントロピーの微分.ここではTitsias and Ruizが提案した方法で勾配の推論を行う.reparameterizationされた表現を使ってエントロピーの勾配を次の形で表現する.
一行目の変形はデータの生成過程からreparameterizationのための標準ガウス分布からのサンプリング値と平均を出力するニューラルネットへの入力の期待値に書き換えただけで,三行目は連鎖律から導かれる.二行目は単純に線形性という解釈をしたが,論文でscore function identity を使ったと書いてある(勉強不足でよくわからなかった).は期待値をモンテカルロ近似すれば勾配降下法により容易に微分の計算ができる.一方,は次のように計算される.
これはこれでの期待値が扱いにくく,Dieng and Paisleyの方法で推論することもできるが不偏推定量とはならない.ここでは事後分布からをHamiltonian Monte Carlo (HMC)によってサンプリングすることで勾配の不偏推定量を求める.
の初期値にを生成するときに使われた値を用いることでサンプリングの収束を早めることができ,少ない繰り返しで良い勾配を得ることができる.実験的にはburn-inはわずか二回で良いとのこと.
最終的にに関する目的関数の勾配は次のように計算される.
特に,ニューラルネットのパラメータのみに着目すると次のようになる.
また,エントロピーの項はdiscriminatorに依存しないためdiscriminatorのパラメータはAdversarial lossの勾配のみで計算される.PresGANでは生成データはガウス分布のreparameterizationの形から計算されるため常にノイズが加算された形になっており,普通に学習しようとするとdiscriminatorが簡単に局所解(完璧にrealとfakeを識別する)にはまってしまう.なのでこれを防ぐために生成されたデータと同様にノイズをrealデータにも加える.
は生成分布のに等しい.このノイズの加算は局所解にはまるのを防ぐと同時に学習も安定させるらしく,詳しくはHuszarを参照とのこと.ただPresGANの学習を安定させるにはノイズ加算だけでは不十分で,これはが学習パラメータになっていることに起因するとのこと.具体的に学習失敗に2つの場合があり,標準偏差が大きくなりすぎてrealなデータもほぼノイズ画像になってしまう場合と,逆に小さくなりすぎてエントロピー項に対する勾配が支配的になってしまう場合がある.そのためここでは標準偏差がを満たすように値をtruncateする.ただし最大値,最小値はハイパーパラメータとのこと.
Enabling tractable predictive log-likelihood approximation
最後に対数尤度の推定について考える.ここでは未観測のデータの対数尤度を重点サンプリングを使って推定する.
サンプルは提案分布からサンプリングされる.
良い)を作るための方法は複数あるがここでは次のガウス分布とする.
平均パラメータは事後確率最大化の解とし,この解を事前に学習されたエンコーダーで近似する.エンコーダーはと間のreverse KLの最小化によって学習される.
この式の二項目はVAEのELBOに等しく,このKLの最小化はELBOの最大化を含む.おそらくこれが通常のKLではなくreverse KLを使った理由.
提案分布の共分散は対角行列とし,エンコーダーの共分散行列のoverdispersed versionとする(勉強不足でoverdispersed version(過分散?)がわからないので詳細は割愛.ただ重点サンプリングの推定結果が良くなるという効果があるそう).操作としてはエンコーダーの共分散の各要素にハイパーパラメータをかけるとのこと.の値は実験では1.2に設定.
まとめ
モデルの全体像を誤解を恐れずまとめるとデータ分布に関する損失を考慮したVAEGANという感じ.実験結果は期待通りでmode collapseを防ぎつつ生成画像の質も高い.