情報系の手考ノート

数学とか情報系の技術とか調べたり勉強したりしてメモしていきます.

GAN の損失関数と二値交差エントロピー

概要

先日,GAN の学習時に妙な実装を目にしました. 実際にその実装が一般的なのかは知らないですが,導出過程が謎であったため自分なりに行間を埋めるという作業を行いました. これで正しい!と言いきれる結果にはなっていませんが,とりあえずのメモという形で記録に残したく思い,この記事を書くに至りました.

以下行うのは,GAN の学習を二値交差エントロピーの最小化のみによって実装する場合の正当性についての考察になります. また,GAN について私自身が厳密に理解できているわけではないため,GAN の説明は省略します (検索するなり arXiv を読むなりでなんとでも調べられますし...).

GAN の損失関数の変型

ほとんどの場合 GAN は画像の生成に利用されているため,Discriminator の入力と Generator の出力は画像として考えます. これは本質的に問題でなく,呼称の上で便利だという理由で仮定しています.

まずいくつか必要な変数等を定義します. 学習に使う画像のデータセットSとすることとし,このSから定まる

\begin{aligned}
P_\mathrm{data}(s) = \frac{|s \cap S|}{|S|}
\end{aligned}

を学習時に考える経験分布とします(経験分布ってこういうことだと解釈してるんですがあってるんですかねぇ...分布だから部分集合を始域とする関数だと思うんですけどねぇ...). また Generator に入力されるノイズの事前分布を

\begin{aligned}
P_z
\end{aligned}

とおきます. そして画像 xを入力としたときの Discriminator の出力を

\begin{aligned}
x \in \text{画像の集合},\quad D(x) \in (0, 1)
\end{aligned}

とし,ノイズ zを入力としたときの Generator の出力を

\begin{aligned}
G(z) \in \text{画像の集合}
\end{aligned}

とします. ここで Discriminator の出力の意味は D(x) = 1のとき xは本物であり, D(x) = 0のとき xは偽物であるとしています.

これらの定義の下で確率変数 X,\; Z

\begin{aligned}
X \sim P_\mathrm{data},\quad Z \sim P_z
\end{aligned}

とすると GAN の学習は

\begin{aligned}
\min_G \max_D \left\{ \mathbb{E}\left[ \log D(X) \right] + \mathbb{E}\left[ \log (1 - D(G(Z))) \right] \right\}
\end{aligned}

と表現することができます. この式の意味は検索すればいくらでも出てきますし,論文だってあるので気にしないものとします.

実際に学習する際には,いくつかのデータによって Discriminator を少し学習し,次に Generator を少し学習するというような手順を収束するまで繰り返すという方法が一般的に用いられます. ここで,まず Discriminator の学習に注目し式を考えると,Generator である Gについての最小化は無視することになるため

\begin{aligned}
&\max_D \left\{ \mathbb{E}\left[ \log D(X) \right] + \mathbb{E}\left[ \log (1 - D(G(Z))) \right] \right\} \\
= &\min_D \left\{ \mathbb{E}\left[ - \log D(X) \right] + \mathbb{E}\left[ - \log (1 - D(G(Z))) \right] \right\}
\end{aligned}

と変形でき,単純な最小化として表されます. 同様に Generator の学習は,式中に Gが表れる項が 1つしかないことを考えると

\begin{aligned}
\min_G \mathbb{E}\left[ \log (1 - D(G(Z))) \right]
\end{aligned}

と変形でき,Discriminator と同様に単純な最小化として表されます. ここで少し無理やりではありますが

\begin{aligned}
&\min_G \mathbb{E}\left[ \log (1 - D(G(Z))) \right] \\
= &\min_G \mathbb{E}\left[ - \log D(G(Z)) \right]
\end{aligned}

が成立します. どちらも D(G(Z)) = 0のときが最小となるため,最小値という意味では同値です.

以上より Discriminator の学習は

\begin{aligned}
\min_D \left\{ \mathbb{E}\left[ - \log D(X) \right] + \mathbb{E}\left[ - \log (1 - D(G(Z))) \right] \right\}
\end{aligned}

と表現可能であり,Generator の学習は

\begin{aligned}
\min_G \mathbb{E}\left[ - \log D(G(Z)) \right]
\end{aligned}

と表現できることがわかります. いずれも特定の式の最小化であるため

\begin{aligned}
&L_\mathrm{D} = \mathbb{E}\left[ - \log D(X) \right] + \mathbb{E}\left[ - \log (1 - D(G(Z))) \right] \\
&L_\mathrm{G} = \mathbb{E}\left[ - \log D(G(Z)) \right]
\end{aligned}

とすれば L_ Dは Discriminator の損失関数, L_ Gは Generator の損失関数と解釈できます. 特に Discriminator の損失関数と解釈した L_ Dは 2 つの項から構成され,新たに

\begin{aligned}
L_\mathrm{real} = \mathbb{E}\left[ - \log D(X) \right] \\
L_\mathrm{fake} = \mathbb{E}\left[ - \log (1 - D(G(Z))) \right]
\end{aligned}

とすれば

\begin{aligned}
L_\mathrm{D} = L_\mathrm{real} +L_\mathrm{fake}
\end{aligned}

であり, L_ \mathrm{real}は Discriminator が本物の画像を正しく識別できるかを示す項, L_ \mathrm{fake}は Discriminator が偽物の画像を正しく識別できるかを示す項であると言えます.

GAN の損失関数と二値交差クロスエントロピー

以上の議論から

\begin{gathered}
L_\mathrm{real} = \mathbb{E}\left[ - \log D(X) \right], \quad
L_\mathrm{fake} = \mathbb{E}\left[ - \log (1 - D(G(Z))) \right], \\
L_\mathrm{miss} = \mathbb{E}\left[ - \log D(G(Z)) \right]
\end{gathered}

とすると,Discriminator の損失関数 L_\mathrm{D}と Generator の損失関数 L_\mathrm{G}は,それぞれ

\begin{aligned}
L_\mathrm{D} = L_\mathrm{real} +L_\mathrm{fake}, \quad
L_\mathrm{G} = L_\mathrm{miss}
\end{aligned}

と表すことができます.

ここで二値交差エントロピー

\begin{aligned}
\mathrm{CE}(q, x) = - q \log x - (1 - q) \log (1 - x)
\end{aligned}

とすると,

\begin{aligned}
L_\mathrm{real} = \mathbb{E}\left[ \mathrm{CE}(1, D(X)) \right], \\
L_\mathrm{fake} = \mathbb{E}\left[ \mathrm{CE}(0, D(G(Z))) \right], \\
L_\mathrm{miss} = \mathbb{E}\left[ \mathrm{CE}(1, D(G(Z))) \right]
\end{aligned}

が明かに成り立ちます. よって GAN の損失関数は二値クロスエントロピーによって表現することができるということを示せました.

まとめ

本記事では GAN の学習を示す式を変形することで Discriminator と Generator の損失関数を二値クロスエントロピーによって表現しました. Discriminator については純粋に等価な変形であり,特に違和感は無く自然なものと言えます. 対して Generator の変形は最小値が等しいという意味での変形であり,通常ニューラルネットワークの学習に用いられる勾配降下法の観点からは等価な式とは言えません. その点ではこの変型に納得できているわけでは無いのですが,他にこの実装の正当性について見当がついていません. ということで,この結果をもってひとまずの決着ということにしておきます.

より納得できる考察が思いつくなりすれば,この記事の更新等を行うつもりです.