GANのminmax戦略

はじめに

GAN(Generative Adversarial Network)による画像生成の進歩には目覚ましいものがある。今回は、GANを訓練する際に使われるminmax戦略を簡潔に説明する。

GANとは

GANは、生成器(Generator)と識別器(Discriminator)を競い合わせて学習を行うネットワークである(下図参照)。

Generatorで人工画像を作成し、Discriminatorで本物か否かを識別する(①)。結果のフィードバックを受けてGeneratorが改良され、再び人工画像が作られる(②)。この繰り返しにより、より本物に近い画像が作られていくことになる。これが、GANの仕組みである。次節で、この手順を数式を用いて説明する。

GANのminmax戦略

GANの損失関数は次式で与えられる。

(1)    \begin{equation*} V_D(G,D)= \int dx P(x)\log{\left(1+{\rm e}^{-D(x)}}\right)} +\int dx Q_G(x)\log{\left(1+{\rm e}^{D(x)}}\right)} \end{equation*}

ここで、xは画像、P(x)は本物の画像が従う確率分布、Q_G(x)は人工画像が従う確率分布、D(x)は識別関数を表す。D(x)は本物の画像を入力したとき大きな値を出力し、人工画像を入力したとき小さな値を出力する関数である。Q_G(x)は、生成器Gに依存することに注意する。
式(1)の右辺第1項が小さくなるのはD(x)が大きい時、すなわち、本物の画像を正しく本物であると識別できた場合である。一方、式(1)の右辺第2項が小さくなるのは、人工画像を本物でないと識別できた時である。つまり、式(1)を最小化することで最適な識別器D(x)が求まることになる。次に

(2)    \begin{eqnarray*} V_G(G,D) &=& -V_D(G,D) \\ &=& -\int dx P(x)\log{\left(1+{\rm e}^{-D(x)}}\right)} -\int dx Q_G(x)\log{\left(1+{\rm e}^{D(x)}}\right)} \end{eqnarray*}

を考える。式(2)の右辺第1項が小さくなるのは、本物の画像を人工画像であると識別した場合である。第2項が小さくなるのは、人工画像を本物であると識別した場合である。つまり、式(2)を最小化することで最適な生成器Gを決めることができる。以上の議論をまとめると、最適なG^*D^*は次式から決定されることになる。

(3)    \begin{equation*} V_D(G^*,D^*)=\min_D \max_G V_D(G,D) \end{equation*}

これがGANの損失関数の最適化に使われるminmax戦略である(下図参照)。

minmaxの数理

式(3)から最適な生成器G^*を求めることができる。G^*の導出とは、確率分布Q_G(x)を決めることに他ならない。Q_G(x)は人工画像が従う確率分布であるから、この分布が本物の画像が従う分布P(x)に一致するのが理想である。本節では、式(3)からをP(x)=Q_G(x)が導出されることを見る。

まず最初に、V_D(G,D)D(x)で汎関数微分する。

(4)    \begin{eqnarray*} \delta V_D &=& V_D(G,D+\delta D)-V_D(G,D) \nonumber \\ &=& \int dx P(x) \left[ \log{\left(1+{\rm e}^{-\left(D(x)+\delta D(x)\right)}}\right)} -\log{\left(1+{\rm e}^{-D(x)}}\right)} \right]\nonumber\\ &+& \int dx Q_G(x) \left[ \log{\left(1+{\rm e}^{D(x)+\delta D(x)}}\right)} -\log{\left(1+{\rm e}^{D(x)}}\right)} \right]\nonumber\\ &=& \int dx P(x)\delta D(x) \frac{ \partial \left( \log{ \left( 1+{\rm e}^{-D(x)} \right) } \right) } {\partial D(x)} \nonumber\\ &+& \int dx Q_G(x)\delta D(x) \frac{ \partial \left( \log{ \left( 1+{\rm e}^{D(x)} \right) } \right) } {\partial D(x)} \nonumber\\ &=& \int dx\delta D(x) \left[ \frac{-P(x){\rm e}^{-D(x)}}{1+{\rm e}^{-D(x)}} +\frac{Q_G(x){\rm e}^{D(x)}}{1+{\rm e}^{D(x)}} \right] \end{eqnarray*}

D=D^*のとき、任意のxについて\delta V_D=0となるから

(5)    \begin{equation*} \frac{P(x){\rm e}^{-D^*(x)}}{1+{\rm e}^{-D^*(x)}} =\frac{Q_G(x){\rm e}^{D^*(x)}}{1+{\rm e}^{D^*(x)}} \end{equation*}

これを変形すると

(6)    \begin{equation*} \frac{Q_G(x)}{P(x)}={\rm e}^{-D^*(x)} \end{equation*}

を得る。これが、最適なD^*(x)の満たす式である。これを式(1)に代入すると

(7)    \begin{eqnarray*} V_D(G,D^*) &=& \int dx P(x)\log{\left(1+{\rm e}^{-D^*(x)}}\right)} +\int dx Q_G(x)\log{\left(1+{\rm e}^{D^*(x)}}\right)} \\ &=& \int dx P(x)\log{\left(1+\frac{Q_G(x)}{P(x)}\right)} +\int dx Q_G(x)\log{\left(1+\frac{P(x)}{Q_G(x)}\right)} \\ &=& -D_{KL}\left(P||\frac{P+Q_G}{2}\right) -D_{KL}\left(Q_G||\frac{P+Q_G}{2}\right) +2\log{2} \end{eqnarray*}

を得る。ここでD_{KL}(P||Q)は次式で定義されるKullback-Leibler divergenceである。

(8)    \begin{equation*} D_{KL}(P||Q)=\int P(x)\log{\frac{P(x)}{Q(x)}} \end{equation*}

D_{KL}(P||Q)は任意のxについてP(x)=Q_G(x)となるとき最小値0を取る。この事実を用いると、式(7)が最大となるのは

(9)    \begin{equation*} P(x)=\frac{P(x)+Q_G(x)}{2}=Q_G(x) \end{equation*}

のとき、すなわち

(10)    \begin{equation*} P(x)=Q_G(x) \end{equation*}

のときである。以上から、P(x)=Q_G(x)が導出された。

まとめ

今回は、GANの損失関数をminmax戦略を用いて最適化すると、P(x)=Q_G(x)が導出されることを確認した。実際の学習では、理論通りには行かず、様々な不安定性が引き起こされることが分かっている。この不安定性を取り除く研究が精力的に行われ、現在の高画質な画像を実現したわけである。下図はBigGANと呼ばれる手法により生成された画像の一例である(参照論文)。


参照元:https://arxiv.org/pdf/1809.11096.pdf

参考文献

Kumada Seiya

Kumada Seiya

仕事であろうとなかろうと勉強し続ける、その結果”中身”を知ったエンジニアになれる

最近の記事

  • 関連記事
  • おすすめ記事
  • 特集記事

アーカイブ

カテゴリー

PAGE TOP