セミブラフしていく

CS、機械学習関係の技術、論文めも

ナッシュ均衡とGANの関係を考察してみた

GANの論文ナッシュ均衡を使った理論展開が記述されてあったので、調べたものをまとめておく。
ちなみにゲーム理論は勉強したことがない。
そしてGANとの関係はあくまで自分がナッシュ均衡をGANで当てはめみてた考察なのであしからず。

ナッシュ均衡の定義

とりあえずWikipediaで調べてみたら以下のような定義がされていた。

標準型ゲーム \( G = (N, S, u) \)
( \( N \) はプレーヤーの集合、 \( S = \prod_{i \in N} S_i \) は戦略の組の集合, \( u = \bigl( u_i \bigr) \bigl( u_i : S \to \mathbb{R} \bigr) \) は効用の組) において,
戦略の組 \( s^* \in S \) がナッシュ均衡であることは,全てのプレーヤー \( i \in N \)と,全ての\( s_i \in S_i \)に対して,
$$ u_i \bigl( s^{\ast} \bigr) \ge u_i \bigl( s_i , {s_o}^{\ast} \bigr) $$
を満たすことである.
ただし、 \( s_o \)は, \( i \) 以外のプレーヤの組をさす.

というようなものだった。 まず用語がよくわからなかったので調べてみる。

標準型ゲーム

展開型ゲームと並び非協力ゲームの基本的表現形式であり、
プレイヤー集合、戦略空間、利得関数の 3 つの要素から構成される。

式として定義すると、
$$ G(N, S, u) $$ となる。ここでNはプレイヤー、S(Strategy)は戦略、uは利得関数を表している。

利得関数

それぞれのプレイヤーがある戦略をとった結果の1人のプレイヤーの利得を表す関数である。

定義の解説

結局、ナッシュ均衡が何を表しているかというと
全てのプレイヤーは自分ひとりだけ戦略を変えると、利得は上がらず下がってしまう状態であることを表している。
つまり、自分に加えて、誰かが戦略を変えない限り今の状態から利得が上がらない状態である。
ナッシュ均衡のわかりやすい例はこのサイトがとても自分はしっくりきた。

ナッシュ均衡とGAN

せっかくなのでGANを例としてナッシュ均衡の状態を自分なりに考えてみる。

標準型ゲームの当てはめ

ゲームの定義をGANに当てはめてみた。

定義 GAN
\( N \) (プレイヤー) Generator, Discriminator
\( S \) (戦略) モデルの重み
\( u \) (利得関数) モデルの誤差

ナッシュ均衡が起きている状況

設定したものを元にナッシュ均衡が起きている状況を作ってみる。

G \ D \( S_{D_1} \) \( S_{D_2} \)
\( S_{G_1} \) G:0.5, D:1.9 G:1.0, D:2.0
\( S_{G_2} \) G:0.2, D:1.0 G:0.7, D:0.6

重みは学習方法を変えることによって変わるということにして、本来の戦略ではないかもしれないが、利得が変わるということなので重み自体を戦略とした。
また、利得は今回は誤差としたので値が低い方が良いと考える。
ここからはGenerator視点で考えてみる。

  • \( D \) の重みが \( S_{D_1} \) の場合

    \( G \) の重みが \( S_{G_2} \) となるように学習すると誤差が低くなる

  • \( D \) の重みが \( S_{D_2} \) の場合

    \( G \) の重みが \( S_{G_2} \) となるように学習すると誤差が低くなる

つまり、今回のようの重みの選択肢が2つの場合、Dがどのような重みでもGの最適反応である戦略は変わらない状況である。

次にDiscriminator視点で考えてみる。

しかしGの戦略は先程の視点より \( S G_2 \) であることがわかるので、Dはその状況で誤差が低くなる値、つまり \( S D_2 \) になるように重みを学習するのが最適反応な戦略である。

これまで、それぞれのプレイヤー(モデル)の最適反応(最適な重み)を見てきた。
お互いのモデルは最適反応な戦略から自分だけ変えてしまうと誤差が上がってしまう。
このような状況をナッシュ均衡という。

GANの学習はGとDの学習時にそれぞれの学習具合のバランスを調整しないといけない。
つまり、GとDがお互い精度がよくなるように学習しなければならない。
そのような状況というのがお互いの誤差に関してナッシュ均衡が起きている重みに更新するということなのであると考える。

現在のGANの学習方法は、誤差を最小化することが目的なので、ゲーム理論的には利得が誤差になっていると自分は考える。
そして、Improved Techniques for Training GANsでは誤差を最小化してナッシュ均衡を求めようとすると収束しないと論じているらしい。
今のGANで誤差を最小化してナッシュ均衡を求めているというのは、GとDの出力両方に依存した誤差関数を最小化する点であると考える。

感想

GANの論文からゲーム理論に興味を持ったが、やはり勉強が足りないなと感じた。
また、強化学習やGANに通ずる部分もあるなと感じた(もしかしたらゲーム理論からきているのかな)
ともあれゲーム理論を勉強するのも面白そうだ。