supercalifragilisticexpialidocious

Koji Higasa Blog

Generative Adversarial Nets - notes

Posted at # ML/AI

生成モデル GG によって生成されるサンプルを訓練データのサンプルであると, 識別モデル DD が誤認するように学習を進めていく GAN. 貨幣の偽造者 (counterfeiter) と警察 (police) などのアナロジーから, 発想自体は直感的で理解しやすい.

価値関数 V(G,D)V(G,D) の導入

GGDD による価値関数 V(G,D)V(G,D) のミニマックスゲームが GAN である.

— 記法 —

— ミニマックスゲームの定式化 —

minGmaxDV(G,D)=Expdata(x)[logD((x))]+Ezpz(z)[log(1D(G(z)))]\mathop{\mathrm{min}}\limits_{G}\mathop{\mathrm{max}}\limits_{D}V(G,D) = \mathbb{E}_{\mathbf{x}∼p_{\mathrm{data}}(\mathbf{x})}\left[\log D(\mathbf(x))\right]+\mathbb{E}_{\mathbf{z}∼p_{\mathbf{z}}(\mathbf{z})}\left[\log(1-D(G(\mathbf{z})))\right]

下図がこのミニマックスゲームによる訓練の概要だが, 以下これを理論的に保証する. training

ミニマックスゲームの大域解とアルゴリズムの収束性

ミニマックスゲームによる訓練アルゴリズムが大域的な一意最適解に収束することを示す.

GAN のミニバッチ SGD 訓練アルゴリズム

命題 2 によって収束性が保証される GAN の最終的な訓練アルゴリズム. 実際は GG を MLP とすると V(G,D)V(G,D) は非凸になるので以下の議論は成り立たないが, それでも実用上うまくいくことが実験結果を見ればわかる. しかし, 非凸性に起因するモード崩壊やミニマックスゲームの定式化に起因する訓練初期の勾配消失などが, GAN による学習の不安定性を招くこともまた事実である. algorithm

大域的一意最適解 log4-\log 4 の存在

定理 1 によりこれを示す (補題 1 は勝手に加えた) .

命題 1. GG を固定したとき, DD の最適解は次の表式で与えられる.

DG(x)=pdata(x)pdata(x)+pg(x)D_G^*(\mathbf{x}) = \frac{p_{\mathrm{data}}(\mathbf{x})}{p_{\mathrm{data}}(\mathbf{x})+p_g(\mathbf{x})}

証明. 与えられた任意の GG に対し, DD の最適化は次の価値関数の最大化をもってして行われる.

    V(G,D)=xpdata(x)log(D(x))dx+zpz(z)log(1D(G(z)))dz=x[pdata(x)log(D(x))+pg(x)log(1D(x))]dx\begin{align} &\space\space\space\space V(G,D) \\ &= ∫_{\mathbf{x}}p_{\mathrm{data}}(\mathbf{x})\log(D(\mathbf{x}))\mathrm{d}\mathbf{x}+∫_{\mathbf{z}}p_{\mathbf{z}}(\mathbf{z})\log(1-D(G(\mathbf{z})))\mathrm{d}\mathbf{z} \\ &= ∫_{\mathbf{x}}\left[p_{\mathrm{data}}(\mathbf{x})\log(D(\mathbf{x}))+p_g(\mathbf{x})\log(1-D(\mathbf{x}))\right]\mathrm{d}\mathbf{x} \end{align}

一般に, (a,b)R2{0,0},∀(a,b)∈\mathbb{R}^2\setminus\{0,0\}, 関数 yalog(y)+blog(1y)y→a\log(y)+b\log(1-y)aa+b\frac{a}{a+b} において最大値をとる (log\log の定義域より当然 y[0,1]y∈[0,1]). この場合, Supp(pdata)Supp(pg)\mathrm{Supp}(p_{\mathrm{data}})∪\mathrm{Supp}(p_g) の外ではサンプルが現れず VV に寄与しないことから, DD の定義域をそれらの台の上に限定してよい, i.e.\mathrm{i.e.}, (pdata,pg)R2{0,0}(p_{\mathrm{data}},p_g)∈\mathbb{R}^2\setminus\{0,0\}. よって示された. \square

補題 1. 価値関数を pgp_g の関数として捉え, V(G,D)U(pg,D)V(G,D)≔U(p_g,D) とおけば, V(G,DG)=supDU(pg,D)V(G,D_G^*)=\mathop{\sup}\limits_{D}U(p_g,D) であり, U(pg,D)U(p_g,D)pgp_g に関して凸.

証明. 価値関数の場合, 最大値が存在すればそれは上限と一致するので, V(G,DG)=supDU(pg,D)V(G,D_G^*)=\mathop{\sup}\limits_{D}U(p_g,D). また,

U(pg,D)=Expdata(x)[logD((x))]+Expg(x)[log(1D(x))]U(p_g,D)=\mathbb{E}_{\mathbf{x}∼p_{\mathrm{data}}(\mathbf{x})}\left[\log D(\mathbf(x))\right]+\mathbb{E}_{\mathbf{x}∼p_g(\mathbf{x})}\left[\log(1-D(\mathbf{x}))\right]

だから, U(pg,D)U(p_g,D) は第 2 項 においてのみ pgp_g 依存性を持つ. その依存性は,

Expg(x)[log(1D(x))]=xpg(x)log(1D(x))dx\mathbb{E}_{\mathbf{x}∼p_g(\mathbf{x})}\left[\log(1-D(\mathbf{x}))\right] = ∫_{\mathbf{x}}p_g(\mathbf{x})\log(1-D(\mathbf{x}))\mathrm{d}\mathbf{x}

pgp_g に関して線形である. 一方, 第 1 項は pgp_g 依存性から見れば定数であるから, U(pg,D)U(p_g,D)pgp_g についての Affine 関数である. Affine 関数は凸関数, かつ凹関数であるので, これにより補題が示された. \square

定理 1. V(G,DG)V(G,D_G^*) が大域的最小値を取るのは pg=pdatap_g=p_{\mathrm{data}} のとき, またそのときに限る. そしてその値は log4-\log 4 である.

証明. 命題 1 により V(G,DG)V(G,D_G^*) は次のように変形される.

    V(G,DG)=Expdata(x)[logDG((x))]+Ezpz(z)[log(1DG(G(z)))]=Expdata(x)[logDG((x))]+Expg(x)[log(1DG(x))]=Expdata(x)[log(pdata(x)pdata(x)+pg(x))]+Expg(x)[log(pg(x)pdata(x)+pg(x))]=DKL(pdata(x)pdata(x)+pg(x))+DKL(pg(x)pdata(x)+pg(x))=log4+DKL(pdata(x)pdata(x)+pg(x)2)+DKL(pg(x)pdata(x)+pg(x)2)=log4+2DJS(pdata(x)pg(x))\begin{align} &\space\space\space\space V(G,D_G^*) \\ &= \mathbb{E}_{\mathbf{x}∼p_{\mathrm{data}}(\mathbf{x})}\left[\log D_G^*(\mathbf(x))\right]+\mathbb{E}_{\mathbf{z}∼p_{\mathbf{z}}(\mathbf{z})}\left[\log(1-D_G^*(G(\mathbf{z})))\right] \\ &= \mathbb{E}_{\mathbf{x}∼p_{\mathrm{data}}(\mathbf{x})}\left[\log D_G^*(\mathbf(x))\right]+\mathbb{E}_{\mathbf{x}∼p_g(\mathbf{x})}\left[\log(1-D_G^*(\mathbf{x}))\right] \\ &= \mathbb{E}_{\mathbf{x}∼p_{\mathrm{data}}(\mathbf{x})}\left[\log\left(\frac{p_{\mathrm{data}}(\mathbf{x})}{p_{\mathrm{data}}(\mathbf{x})+p_g(\mathbf{x})}\right)\right]+\mathbb{E}_{\mathbf{x}∼p_g(\mathbf{x})}\left[\log\left(\frac{p_g(\mathbf{x})}{p_{\mathrm{data}}(\mathbf{x})+p_g(\mathbf{x})}\right)\right] \\ &= D_{KL}\left(p_{\mathrm{data}}(\mathbf{x})||p_{\mathrm{data}}(\mathbf{x})+p_g(\mathbf{x})\right)+D_{KL}\left(p_g(\mathbf{x})||p_{\mathrm{data}}(\mathbf{x})+p_g(\mathbf{x})\right) \\ &= -\log 4+D_{KL}\left(p_{\mathrm{data}}(\mathbf{x})||\frac{p_{\mathrm{data}}(\mathbf{x})+p_g(\mathbf{x})}{2}\right)+D_{KL}\left(p_g(\mathbf{x})||\frac{p_{\mathrm{data}}(\mathbf{x})+p_g(\mathbf{x})}{2}\right) \\ &= -\log 4+2D_{JS}\left(p_{\mathrm{data}}(\mathbf{x})||p_g(\mathbf{x})\right) \end{align}

ここで, DJS(pdata(x)pg(x))0D_{JS}\left(p_{\mathrm{data}}(\mathbf{x})||p_g(\mathbf{x})\right)≥0 であり, 00 となるのは pg=pdatap_g=p_{\mathrm{data}} のとき, またそのときに限る. したがって V(G,DG)log4V(G,D_G^*)≥-\log 4 であり, 最小値 log4-\log 4 をとるのは pg=pdatap_g=p_{\mathrm{data}} のとき, またそのときに限ることが示された. またここにおいて, 補題 1 より V(G,DG)V(G,D_G^*) の最適化はいわゆる凸最適化の問題であることが示されたため, 最適化されたときにとる最小値は必ず大域解となる. 以上により示された. \square

アルゴリズム 1 の収束性

命題 2. 次の 3 つの仮定の下で, アルゴリズム 1 により pgp_gpdatap_{\mathrm{data}} に収束する.

  1. GGDD が十分な容量を持つ.
  2. アルゴリズム 1 の各ステップで, 与えられた GG に対し, DD はその最適解に到達することが可能.
  3. それを受けて, pgp_gsupDU(pg,D)\mathop{\sup}\limits_{D}U(p_g,D) を最適化するように更新される.

証明. 一般に, 凸関数 ff の上限の劣微分は, 最大値をとる点においてその関数の微分を含む, i.e.\mathrm{i.e.}, fβ(x)subsupαAfα(x)  if  β=argsupαAfα(x)∂f_{\beta}(x)∈∂_{\mathrm{sub}}\mathop{\sup}\limits_{\alpha∈\mathcal{A}}f_{\alpha}(x)\space\space\mathrm{if}\space\space\beta=\arg\mathop{\sup}\limits_{\alpha∈\mathcal{A}}f_{\alpha}(x). したがって U(pg,D)U(p_g,D)pgp_g に関して凸 (補題 1) であるから, 次が成り立つ.

U(pg,DG)subsupDU(pg,D)  if  D=DG∂U(p_g,D_G^*)∈∂_{\mathrm{sub}}\mathop{\sup}\limits_{D}U(p_g,D)\space\space\mathrm{if}\space\space D=D_G^*

つまり左辺による最適化は右辺による最適化によっても達成される. ゆえに仮定 1-3 のもと, アルゴリズム 1 により pgp_gpdatap_{\mathrm{data}} へと収束する (定理 1). \square