Skip to main content

Nash Equilibrium in GAN

GAN の training は、二人の player が参加する non-cooperative game として捉えられます。Generator と Discriminator は、それぞれ自分の loss をもとに同時に更新されます。しかし、一方の更新がもう一方の目的にどのような影響を与えるかを完全に考慮しているわけではありません。

このため、gradient descent による同時更新は、Nash equilibrium への収束を保証しません。

単純な例

一方の player が xx を更新して f1(x)=xyf_1(x) = xy を小さくし、もう一方の player が yy を更新して f2(y)=xyf_2(y) = -xy を小さくする状況を考えます。

f1x=y,f2y=x\frac{\partial f_1}{\partial x} = y, \qquad \frac{\partial f_2}{\partial y} = -x

学習率を η\eta とすると、同時更新は次のようになります。

xxηy,yy+ηxx \leftarrow x - \eta y, \qquad y \leftarrow y + \eta x

xxyy の符号が異なる場面では、その後の更新がさらに大きな振動を生み、不安定性が時間とともに悪化します。

Nash equilibrium の例

画像出典: Lilian Weng, “From GAN to WGAN”。xx を更新して xyxy を小さくし、yy を更新して xy-xy を小さくする例では、iteration が進むほど振動が大きくなります。

GAN における意味

GAN でも、Generator と Discriminator が同時に更新されます。Discriminator が変化すれば Generator にとっての loss landscape も変わり、Generator が変化すれば Discriminator にとっての分類問題も変わります。

そのため、単純な gradient descent は、二つの model の均衡点へ素直に向かうとは限りません。これが GAN training の instability の一因です。

関連ページ