前回の記事では、玩具モデルの例を使用して、実際にGANを効果的にトレーニングできる理由を分析しようとしました。 次に、いくつかの結果を一般化し、最も重要なこととして、ニューラルネットワークのアーキテクチャが学習プロセスの安定性にどのように影響するかを分析します。
はじめに
GAN学習プロセスは、発散の下限を最小化するプロセスとして、または弁別器と生成器から構成される動的システムとして見ることができます。 最初のアプローチは非常によく開発されており、興味のある人がこのトピックに関する多くの興味深い作品を見つけることができる場合、私の意見では最も重要なもの、 f-GAN 、 WGANのみを提供します。 一方、 The Numerics of GANs、Lars Mescheder et al、2017は、発散を最小化する位置からしかGANを見ることができないことを示しました(これは主な目標ですが)が、動的システムの特性を考慮する必要があります。 私たちの目標は、これらの2つのアプローチを組み合わせて、そのような動的システムの軌道がどのような理論的特性を持つかを確認することです。
次に、GAN機能のかなり一般的な形式(GANの目的)を検討します。
I( theta、 phi)= intpd(x)fD(D theta(x))dx + intp( epsilon)fG(D theta(G phi( epsilon))d epsilon
どこで \シータ -弁別器パラメーター、 phi -ジェネレーターのパラメーター。 また、ジェネレーターとディスクリミネーターは2階微分可能な関数であると仮定します。
学習プロセスは数学的に次のように定式化できます。
\ underset {\ phi} {min} \ {\ underset {\ theta} {max} I(\ theta、\ phi)\}
休憩ポイント
GANに関する膨大な作業にもかかわらず、休憩ポイントの存在の問題は未解決のままです。 この質問に答えようとします。
( 仮定1 )任意のジェネレーターに対して最大化する弁別子が存在すると仮定します
I(\シータ、\ファイ)
つまり関数
\ theta_ {opt} = \ underset {\ theta} {argmax} \ {I(\ theta、\ phi)\}
任意の値に対して定義 phi 。 それは可能かつ曖昧ですが、つまり、多くの異なる最適な識別器があります。 このような最適な識別器のセット全体を「再パラメーター化」と呼び、そのセット \ {\ theta_ {opt} \}\ {\ theta_ {opt} \} 弁別器の再パラメータ化のセット。 少し説明してみましょう-最大とは、グローバルな最大値だけでなく、ローカルな最大値も意味します。
数学的に thetaopt 連立方程式によって決定されます。
nabla thetaI( thetaopt、 phi)=0
nabla theta2I( theta、 phi) preceq0
ジェネレーターとディスクリミネーターがニューラルネットワークであり、イメージジェネレーターをトレーニングする場合、この仮定は満たされません。 次の記事では、単純なレギュラーでこれをどのように実現できるかを示しますが、それまではそれを信じなければなりません。
2番目の仮定( 仮定2 )は、ジェネレーターのパラメーターの無限に小さな変化に対して、現在のものに無限に近い最適な識別器があるということです。 ニューラルネットワークでこれがいつ行われるかを調べることはできますが、これは直感的な要件であり、かなり柔軟なネットワークで満たされる可能性が高いと思われます。
数学的には、この要件は次のように定式化できます。
nabla theta2I( thetaopt、 phi)d theta=− nabla theta phiI( thetaopt、 phi)d phi ;(1)
決定権がある d theta で d phi 。
この条件は、分解から簡単に取得できます nabla thetaI( thetaopt、 phi)=0 テイラーの列に。
ここで、 仮定2の下で、ジェネレーターの勾配が nabla phiI( thetaopt、 phi) 識別子の再パラメーター化セットに沿って移動しても変化しません。 再パラメータ化セットに沿って移動すると、数学的に \デルタ\シータ コアに属します nabla theta2I( theta、 phi) すなわち:
nabla thetaI( thetaopt、 phi)= nabla thetaI( thetaopt+d thetaopt、 phi)=0
テイラーシリーズで展開しましょう。
nabla phiI( thetaopt+d thetaopt、 phi)= nabla phiI( thetaopt、 phi)+ nabla phi thetaI( theta、 phi)d thetaopt
どこから、勾配が変わらないように、それが必要です d thetaopt コアに属していた nabla phi thetaI( theta、 phi) 。 しかし、もし d thetaopt コアに属します nabla theta2I( theta、 phi) (1)保持してから d thetaopt コアに属します nabla phi thetaI( theta、 phi) 。 これは、(1)に d thetaopt そしてそれを考慮して d phi 次のいずれかです。
d thetaTopt nabla theta2I( thetaopt、 phi)d theta=−d thetaTopt nabla theta phiI( thetaopt、 phi)d phi=0
勾配が \ nabla_ \ phi \ underset {\ theta} {max} \ {I(\ theta、\ phi)\}\ nabla_ \ phi \ underset {\ theta} {max} \ {I(\ theta、\ phi)\} どちらを選択しても \シータ 弁別器の再パラメータ化のセットから、つまり underset thetamaxI( theta、 phi) は微分可能な関数です phi 勾配最適化手法を使用して最小化できます。
この機能の最小値について何が言えるでしょうか? 残念ながら、非常に一般的な結論を引き出すことはまだ不可能です。 弁別器の特性についてもう1つの仮定( 仮定3 )を行う必要があります。 underset thetamaxI( theta、 phi) geq0 。 マット分析から、以下で境界付けられた連続関数が最小値に達するか、単調に減少する点列が存在することがわかります(つまり、関数は無限大で最小値に達します)。
仮定3は、識別器のトレーニングを開始した場所(ニューラルネットワークの初期化)に関係なく、最適な識別器は常にジェネレーターからのサンプルよりも高い(または等しい)値(平均)をデータに割り当て、反対のことを行う識別器は最適化できないことを示しています。 私の意見では、この仮定は内部的に非常に論理的であり、十分に柔軟なニューラルネットワークがそれを満たすべきです。 ところで、線形判別器がこの仮定を満たしていることを示すのは簡単です。
「最適な軌道」
弁別器が十分に「ソフト」な仮定を満たしている場合、静止点が存在するか無限に位置し、漸近的にアプローチできることがわかりました。
このために、 \シータ そして phi 現在のパラメータ、および弁別器は収束するように訓練されます。 ジェネレータを少し変更します( phik+1= phik+d phi )そう \ underset {\ theta} {argmax} \ {I(\ theta、\ phi)\}\ underset {\ theta} {argmax} \ {I(\ theta、\ phi)\} 減少-たとえば、勾配降下の1ステップを実行します。 弁別器の更新方法は? 答えは式(1)で与えられます:
d theta=− nabla theta2I( theta、 phi) dagger nabla theta phiI( theta、 phi)d phi(2)
どこで nabla theta2I( theta、 phi) dagger 擬似逆行列です。
数学的に厳密にするために、式(2)は、最適な弁別子が「生きている」パラメータ空間の表面への接線超平面を決定します。 この表面を「最適」と呼びます。
しかし、非常に近い地点から始めた場合、どうなるでしょうか、それでもそこの弁別器は最適ではありませんでした。 明らかに、私たちの式は完全に予測不可能な軌道を記述しています。 最適な弁別器についてのみ取得されました。 この状況を修正してみましょう。 この場合、「最適な」表面に平行に移動するだけでなく、それに向かって移動することは論理的です。 明らかに、ニュートンの方法によって示される方向へのステップは、これに非常に適しています。 最終的な式は次のようになります。
d theta=− nabla theta2I( theta、 phi) dagger[ nabla thetaI( theta、 phi)+ nabla theta phiI( theta、 phi)d phi](3)
今何をしましたか? まず、最適な表面で nabla thetaI( theta、 phi)=0 、つまり もしも \シータ 収束するように訓練された弁別器でした。その後、軌道を変更しませんでした。 一方、「最適な」点の近くから始めた場合、追加の用語は「最適な」軌道に「引き寄せ」ます。 つまり、ノイズに強い「最適な」軌道を作りました。
残念ながら、数学的に証明することはできません。 しかし、私たちはそれを必要としません。 式(3)を詳しく見てみましょう。次の形式で書き直すことができます。
d theta=− nabla theta2I( theta、 phi) dagger nabla thetaI( theta、 phi+d phi)
何にも似ていませんか? ニュートンの方法のように見えます。 これは、ニュートン法により弁別器が更新されるジェネレーターと弁別器パラメーターの(英語の文献では交互に)更新を交互に更新することを示唆しています(実際、ニュートン法を完全に実行する必要はありませんが、ニュートン法で示される方向に小さな手順を実行できます)、そして一般的に言えば、発電機はあらゆる方向に一歩を踏み出すことができます、主なことは減少することです \ underset {\ theta} {argmax} \ {I(\ theta、\ phi)\}\ underset {\ theta} {argmax} \ {I(\ theta、\ phi)\} は、最適な軌道に沿った動きの適切な近似です。
ところで、おそらくここがGANトレーニングでのAdamの成功の秘whereです。 結局のところ、Adamがヘッセ行列を近似しようとし、この情報を勾配ステップに使用することはよく知られています(ニュートンの方法の近似)。
軌道安定性
軌道の安定性を分析するために、 どのGANのトレーニング方法が実際に収束するのかで使用したツールと同じツールを使用します。 。 時間があれば、この作業をよく理解することをお勧めします。それだけの価値があります。
この記事の主な欠点は、著者が安静時にシステムの安定性を分析することであると考えています。これは、ほとんどの実際のGANには存在しません(もちろん、おもちゃの2Dまたは3Dの例では、これは可能です)。 つまり、一般に、静止点はなく、ジェネレーターがデータと同じ分布を持ち、判別器が0に等しい点です。したがって、静止点でシステムの安定性を分析せず、少し異なる方法でシステムの軌道の安定性を分析します。 。 この分析は静止点に簡単に転送できますが、静止点は軌道でもあります。
学習した軌跡として、勾配降下法によるトレーニング中に取得した軌跡を選択します。 なぜこれが重要なのですか? まず、「最適な」軌道が何であるかを見つけ、ニュートンの方法で示された方向の判別器の更新によって近似できることがわかりました。 また、ニュートンの方法は、2次導関数からの情報を使用して方向を調整する最も勾配の多い方法です。 しかし、これを行う主な理由は非常に単純です-できるからです。 これから逸脱すると、そのようなおかしな式につながり、そこで何かを理解することは単に不可能になります。
軌道の安定性を分析する標準的な方法は、線形化されたモデルを分析することです。 どのGANのトレーニング方法が実際に収束するの著者に似ていますか? ヤコビの軌跡を探索します。
A= beginbmatrix nabla theta2I( theta、 phi)& nabla2 theta phiI( theta、 phi)− nabla2 theta phiI( theta、 phi)T&− nabla phi2I( theta、 phi) endbmatrix
J=I+ etaA
どこで I 単位行列です。
判別器は、最適ではありませんが、実行される最適なものに十分に近いと仮定します nabla theta2I( theta、 phi) preceq0 。 また、レギュラーライザー(実際のGANでは弁別器には最適なポイントがなく、レギュラーライザーの助けを借りてこのポイントを作成する必要があることを既に述べました)はジェネレーターをうらやましくないことです。 私は少し先を走ります-実際に見つけた最高のレギュラーは異なりますが、理論的な研究ではこの仮定は私たちをそれほど制限しません。
以下では、行列に関する1つの基本的な事実が必要です。 nabla theta2I( theta、 phi) preceq0 そして nabla phi2I( theta、 phi) succeq0 、それから eta>0 行列のスペクトルノルムは何ですか J 1以下になります。
証明は初歩的です-私たちは書きます JTJ :
JTJ=[I+ etaA]T[I+ etaA]=I+ eta[A+AT+ eta(ATA)]
しかし:
A+AT= beginbmatrix2 nabla theta2I( theta、 phi)&00&−2 nabla phi2I( theta、 phi)\終了bmatrix
したがって、固有値の連続性により、選択できることは明らかです。 eta>0 その固有値 JTJ 1以下になります。これから、必要な事実がわかります。 \左 J\右 | leqslant1 。
軌道上でそれを知っています nabla theta2I( theta、 phi) preceq0 実行された(軌道が「最適」であるため)および nabla phi2I( theta、 phi) succeq0 その場合、軌道(平衡点を含む)は安定します。つまり、軌道からわずかに逸脱すると、システムはそれに戻る傾向があります。 離散軌道はヤコビアンの積として表すことができ、1以下のノルムを持つ行列の積は1より大きいノルムを持つことはできないため、これは明らかです。
しかし、非常に多くの事実は、GANにとってこれが常に当てはまるわけではないと言っています。 顕著な例は、すべてのモデルではなく、常に発生するわけではない折りたたみモードです。 GANトレーニングの複雑さは2つの事実に関連していると主張します。最適な判別器(正則化器で処理)がなく、ジェネレーターのヤコビアンは非負定行列ではありません。 ここで、2番目の問題を完全に取り除いていない場合、少なくとも持続可能性への影響を最小限に抑える方法を理解しようとします。
これを行うために、ジェネレータのヤコビアンを書きます。 次の3つのコンポーネントで構成されます。
J1= intp( epsilon)f″G(D theta(G phi( epsilon)))[ nabla phiG phi( epsilon) nablaxD theta(G phi( epsilon))][ nabla phiG phi( epsilon) nablaxD theta(G phi( epsilon)))]Td epsilon
J2= intp( epsilon)f′G(D theta(G phi( epsilon)))) nabla phi2G phi( epsilon) nablaxD theta(G phi( epsilon))d epsilon
J3= intp( epsilon)f′G(D theta(G phi( epsilon))) nabla phiG phi( epsilon)T nabla2xD theta(G phi( epsilon)) nabla phiG phi( epsilon)d epsilon
ヤコビアンの式は非常に複雑で、どのような種類の構造も見ることができないため、すべてのアクションは、これらの行列ができるだけ0に近くなるようにすることを目的としています。
J1 この用語は非常に簡単にリセットできることがわかります。機能を選択するだけです fG そのような f″G(x)=0 または、「動作点」が2次導関数が0に近い領域にあるようにします。ところで、関数の選択は f″G(x)=0 WGANに準拠しています。 WGANはその安定性で知られていますか?
他の2つの用語は、ニューラルネットワークのアーキテクチャによってのみ影響を受けます。 たとえば、線形ジェネレーターと弁別器の場合、それらは無効化されます(2次導関数はゼロです)。 ちなみに、ReLUのアクティベーションが頭に浮かびます。残念ながら、この分析はこのようなネットワークには適用できません。微分可能性の仮定に違反しているためです。 しかし、実際には、区分的線形活性化を持つニューラルネットワークを使用したGANは、たとえば双曲線正接を使用した場合よりもはるかに安定してトレーニングされることがわかっています。 これがヤコビのせいなのか、それとも推測すべきより重要な理由があるのかどうかですが、将来この問題を少し調査する予定です。
また、GANはワイドネットワークを「優先する」と結論付けることもできます。 実際、ネットワークが深いGANは崩壊する可能性が高いことを知っています。
おわりに
この記事では、GAN理論の長年の質問に答えようとしました。 あなたと私は、休憩ポイントが存在するためには、弁別器がかなり単純な特性を持っていることで十分であることを見ました。 また、GANの確率的(発散の最小化)解釈には生命に対するすべての権利があり、かなり単純なアルゴリズムで「最適な」軌道を非常によく近似できることもわかりました。 また、Adamアルゴリズムはすでにこれを行っており、理論的にはGANトレーニングを安定させるはずです。これは、多くの研究で注目されています。
それでも、これは非常に重要ですが、ニューラルネットワークのアーキテクチャと損失関数を選択するための経験的な推奨事項は、理論と完全に一致していることがわかりました。 そして最も重要なことは、非線形性に起因する学習のすべての問題-線形モデルは非常に安定して訓練されます。
記事には何が残っていますか? 練習。 次の記事では、判別器の休憩ポイントとGAN学習プロセスの安定性を向上させるためのトリックの束を提供するために使用するレギュライザーについて説明します(ところで、それらのいくつかはこの分析によって動機付けられています)。
また、例として、LSUNベッドルームデータセットでトレーニングされた深いネットワーク(ジェネレーターの50層とディスクリミネーターの50層)(反復は10万回のみで、ジェネレーター平均化は使用しませんでした)