この戦略は不安定なGANを安定させるのに役立ちます

この戦略は不安定なGANを安定させるのに役立ちます

敵対的生成ネットワーク (GAN) は、非常に幅広い応用が期待できる非常に強力なタイプのニューラル ネットワークです。 GAN は本質的に、ジェネレーターとディスクリミネーターという 2 つの競合するニューラル ネットワークで構成されるシステムです。

GANワークフローの概略図

一連のターゲット サンプルが与えられると、ジェネレーターは、識別器を欺いて実際のターゲット サンプルとして扱うことができる人工サンプルを生成し、「偽物を本物らしく見せる」という目的を達成しようとします。識別器は、実際の(ターゲット)サンプルと偽の(生成された)サンプルを区別しようとします。この反復的なトレーニング方法を通じて、最終的にはターゲット サンプルに類似したサンプルを適切に生成できるジェネレーターを取得できます。

GAN はほぼすべての種類のデータ分布をシミュレートすることを学習できるため、非常に幅広い適用シナリオが可能です。通常、GAN は、以下に示すように、画像からのアーティファクトの除去、超解像、ポーズ転送、およびあらゆる種類の画像変換に使用されます。

GANを使用した画像変換

しかし、GAN はトレーニングの安定性が不安定なため、使用が困難です。確かに、多くの研究者が GAN トレーニングに伴う問題のいくつかを軽減するための優れた解決策を提案してきました。しかし、この分野の研究は急速に進歩しているため、すべての新しい興味深いアイデアについていくのは難しい場合があります。この記事では、GAN トレーニングを安定化するためによく使用されるいくつかの手法を紹介します。

1. GANを使用するデメリット

GAN の使用はいくつかの理由で困難です。このセクションでは、その理由のいくつかを示します。

1. モードの崩壊

自然データ分布は、非常に複雑なマルチモーダル関数(マルチモーダル関数とも呼ばれます)です。つまり、データ分布には多くの「ピーク」または「モード」があります。各モードは、類似のデータ サンプルがクラスター化されて表されますが、他のモードとは異なります。

モード崩壊の場合、ジェネレーターは有限のモードセットに属するサンプルを生成します。これは、ジェネレータが単一のパターンのサンプルを生成することで識別子を騙せると考えた場合に発生します。つまり、ジェネレーターはこのパターンからのみサンプルを生成します。

上の行の画像は、モードの崩壊が発生していない場合の GAN 出力のサンプルを示しています。下の行の画像は、モード崩壊が発生したときの GAN 出力のサンプルを示しています。

識別器は最終的にこのパターンが人工的であることを理解するでしょう。その結果、ジェネレーターは別のパターンの生成に直接切り替わります。このサイクルが繰り返され、生成されるサンプルの多様性が本質的に制限されます。詳しい説明については、ブログ「GANにおけるモード崩壊」を参照してください。

(http://aiden.nibali.org/blog/2017-01-18-mode-collapse-gans/)

2. 収束

GAN のトレーニング プロセス中によくある質問は、「GAN モデルのトレーニングをいつ停止するか」です。ジェネレーターの損失は増加し、ディスクリミネーターの損失は減少するため (逆も同様)、損失関数の値に基づいて GAN の収束を判断することはできません。次の図はこれを示しています。

GAN 損失関数の典型的な図。このグラフは GAN の収束を示すものではないことに注意してください。

3. 品質

前の問題と同様に、ジェネレータがいつ高品質のサンプルを生成できるかを定量的に判断することは困難です。損失関数に知覚正規化項を追加すると、この状況をある程度緩和することができます。

4. 評価基準

GAN の目的関数は、ジェネレータ (G) と識別器 (D) の相対的なパフォーマンスを表しますが、出力サンプルの品質や多様性を表すものではありません。したがって、同じ目的関数を測定できる独自の評価基準が必要です。

2. 用語

GAN モデルのパフォーマンスを向上させるのに役立つ可能性のあるテクニックについて詳しく説明する前に、いくつかの用語を確認しましょう。

1. 下限と上限

つまり、最小値は集合の下限であり、最大値は集合の最小の上限です。「最大値、最小値」と「最小値、最大値」の違いは、最小値と最大値が必ずしも集合に属しているわけではないことです。

2. 乖離度測定

発散尺度は 2 つの分布間の距離を表します。従来の GAN は、本質的に、実際のデータ分布と生成されたデータ分布間の Jensen Shannon ダイバージェンス (JS ダイバージェンス) を最小限に抑えます。 GAN の損失関数は、Kulback Leibler ダイバージェンス (KL ダイバージェンス) や総変動距離などの他のダイバージェンス尺度を最小限に抑えるように書き直すことができます。通常、Wasserstein GAN はブルドーザーの距離を最小限に抑えます。

3. カントロヴィッチ-ルーベンシュタインの二重性

一部の発散尺度は、生の形式を使用して最適化することが困難です。ただし、それらの双対形式 (最小値を最大値に置き換え、その逆も行う) の方が最適化が容易な場合があります。二元性の原理は、ある形式を別の形式に変換するための枠組みを提供します。詳しい説明については、ブログ「Wasserstein GAN と Kantorovich-Rubinstein 双対性」を参照してください。

(https://vincentherrmann.github.io/blog/wasserstein/)

4. LiPSCHITZの継続性

リプシッツ連続関数は有限の速度でのみ変化します。リプシッツ連続性を持つ関数の場合、関数曲線上の任意の点における傾きの絶対値は実数 K を超えることはできません。このような関数は K-リプシッツ連続関数とも呼ばれます。

リプシッツ連続性は、識別器の勾配を制約し、勾配爆発の問題を根本的に回避するため、GAN にとって望ましいものです。さらに、Kantorovich-Rubinstein 双対性では、Wasserstein GAN が Lipschitz 連続性も満たす必要があります。詳細な説明については、ブログ「Spectral Normalization Explained」(https://christiancosgrove.com/blog/2018/01/04/spectral-normalization-explained.html) を参照してください。

モデルのパフォーマンスを向上させるテクニック

GAN をより安定して強力にするために使用できるトリックやテクニックは数多くあります。この記事を簡潔にするために、比較的新しい、または複雑な技術についてのみ説明しました。このセクションの最後に、その他のさまざまなヒントとテクニックをリストします。

1.損失関数を置き換える

GAN の欠点を修正する一般的な方法の 1 つは、「Wasserstein GAN」を使用することです。本質的には、従来の GAN のジェンセン・シャノン距離の代わりに「ブルドーザー距離」(ワッサーシュタイン 1 距離または EM 距離)を使用します。ただし、EM 距離の単純な形式は最適化が難しいため、その双対形式 (Kantorovich Rubenstein 双対性によって計算) を使用します。これには、識別器が「1-Lipschitz」を満たす必要があり、識別器の重みをクリッピングすることでこれを保証します。

Earthmover 距離を使用する利点は、JS ダイバージェンスや KL ダイバージェンスとは異なり、実際のサンプルと生成されたサンプルのデータ分布が交差しない場合でも「連続的」であることです。また、この時の損失関数の値と生成された画像の品質には相関関係があります。ブルドーザー距離を使用することの欠点は、ジェネレーターを更新するたびに複数の識別子を更新する必要があることです (これは、元の実装のすべてのジェネレーターの更新にも当てはまります)。さらに、著者らは、重みクリッピングは 1-Lipschitz 制約を保証するための適切な方法ではないと主張しています。

ジェンセン・シャノン ダイバージェンス (右側に表示) とは異なり、地球移動距離 (左側に表示) は、データ分布が連続していなくても連続しています。詳しい説明については、論文「Wasserstein GAN」(https://arxiv.org/pdf/1701.07875.pdf)を参照してください。

もう 1 つの興味深い解決策は、対数損失の代わりに平均二乗損失を使用することです。 LSGAN の作者たちは、従来の GAN 損失関数では、生成されたデータ分布を実際のデータ分布に「近づける」ための十分なインセンティブが提供されないと考えています。

オリジナルのGAN損失関数における対数損失は、生成されたデータと決定境界(決定境界は実際のデータと生成されたデータを分離します)間の距離には影響しません。一方、LSGAN は、決定境界から遠く離れた生成されたサンプルにペナルティを課し、生成されたデータ分布を本質的に実際のデータ分布に向かって「引き寄せる」ことになります。これは、対数損失ではなく平均二乗損失を使用することによって行われます。詳しい説明については、ブログ「Least Squares GAN」をご覧ください。

(https://wiseodd.github.io/techblog/2017/03/02/least-squares-gan/)。

2. 2 つの時間スケール更新ルール (TTUR)

この方法では、識別器と生成器に異なる学習率を使用しました。通常、ジェネレーターはより遅い更新ルールを使用し、ディスクリミネーターはより高速な更新ルールを使用します。このアプローチを使用すると、学習率をわずかに調整するだけで、ジェネレータと識別子の更新を 1:1 の比率で実行できます。 SAGAN 実装がこのアプローチを使用していることは注目に値します。

3. 勾配ペナルティ

論文「WGAN のトレーニングの改善」の中で、著者らは、重みクリッピング (元の WGAN で実行されていたもの) によっていくつかの最適化の問題が発生すると主張しています。著者は、重みクリッピングにより、ニューラル ネットワークはよりよいデータ分布を得るために「より単純な近似値」を学習せざるを得なくなり、GAN によって得られる最終結果の品質が低下すると考えています。また、WGAN のハイパーパラメータが正しく設定されていない場合、重みクリッピングによって勾配爆発や勾配消失の問題が発生する可能性があるとも主張しています。著者らは、上記の問題を軽減するために、損失関数に単純な勾配ペナルティ規則を導入しました。これに加えて、元の WGAN 実装と同様に、1-Lipschitz 連続性が保証されます。

オリジナルの WGAN-GP 論文で述べられているように、勾配ペナルティが正規化項として追加されます。

DRAGAN の著者は、GAN でプレイされるゲーム (つまり、識別器とジェネレータが互いに競合するゲーム) が「ローカル平衡状態」に達したときにモードの崩壊が発生すると主張しています。彼らはまた、この時点では識別器によってもたらされる勾配が非常に「急峻」であると主張しています。このような勾配ペナルティを使用すると、当然ながらこれらの状態を回避し、トレーニングの安定性を大幅に向上させ、モード崩壊の発生を減らすことができます。

4. スペクトル正規化

スペクトル正規化は、識別器で一般的に使用される重み正規化手法です。トレーニング プロセスを最適化 (トレーニング プロセスをより安定させる) し、本質的に識別器が「K-Lipschitz 連続性」を満たすことを保証します。

SAGAN などの実装でも、ジェネレーターでスペクトル正規化技術が使用されます。ブログ投稿: スペクトル正規化の説明

(https://christiancosgrove.com/blog/2018/01/04/spectral-normalization-explained.html) では、スペクトル正規化は勾配ペナルティよりも計算効率が高いことも指摘されています。

5. 開梱と梱包

ブログ記事「GAN におけるモード崩壊」で説明されているように、モード崩壊の発生を防ぐ 1 つの方法は、パラメータを更新するときに「対策」を予測することです。識別器がジェネレーターの結果に反応する機会がある場合 (最小最大法などの対策を考慮)、展開された GAN によりジェネレーターは識別器を騙すことができます。

モードの崩壊を防ぐ別の方法は、同じクラスに属するいくつかのサンプルを「パック」して、それを識別子に渡すことです。このアプローチは PacGAN で採用されており、論文ではモード崩壊の発生を減らすと主張しています。

6. GANのスタッキング

単一の GAN では、特定のタスクを効果的に処理するのに十分なパワーがない可能性があります。したがって、連続して配置された複数の GAN を使用することができ、各 GAN は問題の簡略化されたモジュールを解決できます。たとえば、FashionGAN は 2 つの GAN を使用してローカル画像変換タスクを処理します。

FashionGANは2つのGANを使用してローカル画像変換を実行します

この状況が進むと、GAN モデルが直面する問題の難易度が徐々に高まる可能性があります。たとえば、Progressive GAN (ProGAN) は、超高解像度の高品質画像を生成できます。

7. 相対GAN

従来の GAN は、生成されたデータが実際のデータである確率を測定します。相対的 GAN は、生成されたデータが実際のデータよりも「より現実的」である確率を測定します。 RGAN 関連の論文「相対的識別器: 標準 GAN に欠けている重要な要素」で述べられているように、適切な距離を使用してこの「相対的な信頼性」を測定することができます。

図 B は、標準の GAN 損失を使用して取得した識別器の出力を示しています。図 C は、出力曲線が実際にどのように見えるかを示しています。図 A は JS ダイバージェンスの最適解です。

著者らはまた、識別器が最適化された状態に達すると、その出力D(x)の確率は0.5に収束するはずだと述べています。しかし、従来の GAN トレーニング アルゴリズムでは、識別器はどの画像に対しても「実際の」(つまり、確率 1)結果を出力するように強制されます。これにより、ある程度、識別器の出力確率がその性能指数に到達するのが妨げられます。 Relative GAN もこの課題を解決し、下の図に示すように非常に重要な結果を達成しています。

5000 回の反復後の標準 GAN (左) と相対 GAN (右) の出力。

8. 自己注意メカニズム

Self-Attention GAN の作者は、画像を生成するために使用される畳み込み演算は、ローカルに伝播される情報に重点を置いていると主張しています。つまり、受容野が制限されているため、グローバルに伝播する関係を無視します。

注意マップ (黄色のボックス内のネットワークによって計算される) が標準の畳み込み演算に追加されます。

自己注意生成敵対ネットワークにより、画像生成タスクに対する注意主導型の長距離依存性モデリングが可能になります。自己注意メカニズムは、従来の畳み込み演算を補足するものです。グローバル情報 (長距離依存関係) は、より高品質の画像を生成するのに役立ちます。ネットワークは、アテンション メカニズムを無視するか、通常の畳み込み操作と一緒に考慮するかを選択できます。自己注意メカニズムの詳細については、論文「自己注意生成的敵対的ネットワーク」を参照してください。

(https://arxiv.org/pdf/1805.08318.pdf)。

9. その他のさまざまな技術

GAN モデルのパフォーマンスを向上させるために使用されたその他のテクニックをいくつか紹介します (完全なリストではありません)。

  • 特徴マッチング
  • ミニバッチ技術を使用して最適化された識別器
  • 過去平均
  • 片側ラベルスムージング
  • 仮想バッチ正規化

これらの手法の詳細については、論文「GAN のトレーニングのための改良された手法」およびブログ記事「GAN から WGAN へ」をご覧ください。その他のテクニックは、次の GitHub リポジトリにリストされています。

https://github.com/soumith/ganhacks.

3. 評価指標

これまで、読者は GAN のトレーニング効果を向上させるいくつかの方法を学びました。これらの方法の有効性を定量化するには、いくつかの指標を使用する必要があります。以下、この記事では、GAN モデルの一般的に使用されるパフォーマンス評価指標をいくつか示します。

1. インセプション(GoogleNet)スコア

インセプション スコアは、生成されたデータがどれだけ「現実的」であるかを測定します。

インセプションスコアの計算方法

上記の式は 2 つの部分 (p(y|x) と p(y)) で構成されます。ここで、x はジェネレータによって生成された画像を表し、p(y|x) は、画像 x を事前トレーニング済みの Inception ネットワーク (元の実装と同様に ImageNet データセットで事前トレーニング済み、https://arxiv.org/pdf/1801.01973.pdf) に入力したときに得られる確率分布です。一方、p(y)は周辺確率分布であり、生成された画像xのいくつかの異なるサンプルにわたってp(y|x)を平均化することで計算できます。これら 2 つの用語は、実画像が満たす必要のある 2 つの特性を表します。

生成された画像には、「意味のある」オブジェクト(鮮明でぼやけていないオブジェクト)が含まれている必要があります。これは、p(y|x) の「エントロピーが小さくなる」ことを意味します。つまり、Inception ネットワークは、生成された画像が特定のクラスに属していることを非常に確信している必要があります。

生成される画像は多様である必要があります。これは、p(y) が「より大きなエントロピー」を持つ必要があることを意味します。言い換えれば、ジェネレーターは、各画像が異なるクラス ラベルを表すように画像を生成する必要があります (理想的には)。

理想的な条件下での p(y|x) と p(y) の概略図。この場合、2 つの間の KL 相違は非常に大きくなります。

ランダム変数の予測可能性が高ければ、そのエントロピーは小さくなります(つまり、p(y) はピーク分布を持つはずです)。対照的に、ランダム変数が予測不可能な場合、そのエントロピーは大きくなるはずです(つまり、p(y|x) は均一分布になるはずです)。これらの特性が両方とも満たされる場合、p(y|x)とp(y)の間のKLダイバージェンスは大きいと見なす必要があります。当然ですが、インセプションスコア (IS) が大きいほど良いです。インセプション スコアのより詳細な分析を知りたい読者は、論文「インセプション スコアに関する注記」(https://arxiv.org/pdf/1801.01973.pdf) を参照してください。

2. フレシェ開始距離(FID)

Inception スコアの欠点の 1 つは、実際のデータと生成されたデータの間で統計 (平均や分散など) が比較されないことです。フレシェ距離は、実際の画像と生成された画像の平均と分散を比較することでこの問題を解決します。 Fréchet Inception 距離 (FID) は、Inception スコアと同じ分析を実行しますが、事前トレーニング済みの Inception-v3 ネットワークに実際の画像と生成された画像を渡すことによって取得された特徴マップに対して実行されます。 FID の式は次のとおりです。

FID スコアは、実際のデータ分布と生成されたデータ分布の平均と分散を比較します。 「Tr」はマトリックスの「トレース」を表します。

FID スコアが低いほど、生成された画像の統計が実際の画像に非常に近いことを示し、良好です。

IV. 結論

GAN トレーニングのさまざまな欠点を克服するために、研究コミュニティは多くの解決策と方法を提案してきました。しかし、非常に多くの新しい研究が発表されているため、興味深い新しい研究のすべてについていくのは難しい場合があります。したがって、この記事で共有される詳細は網羅的なものではなく、近い将来に古くなる可能性があります。ただし、この記事が、GAN モデルのパフォーマンスを向上させたい人にとって何らかのガイダンスを提供できれば幸いです。

オリジナルリンク: https://medium.com/beyondminds/advances-in-generative-adversarial-networks-7bad57028032

[この記事は51CTOコラム「Machine Heart」、WeChatパブリックアカウント「Machine Heart(id:almosthuman2014)」によるオリジナル翻訳です]

この著者の他の記事を読むにはここをクリックしてください

<<:  インストールする必要があります! Windows 7は来月SHA-2暗号化アルゴリズムのパッチをリリースする予定

>>:  音声技術市場には発展のチャンスがあるが、落とし穴には注意が必要

ブログ    
ブログ    
ブログ    
ブログ    
ブログ    

推薦する

...

テレンス・タオが AI を使って形式化した証明とは、いったい何でしょうか? PFR予想の歴史の簡単な紹介

12月5日、有名な数学者でフィールズ賞受賞者のテレンス・タオ氏は、ソーシャルネットワーク上で、多項式...

速報です!画像AI企業「Huiyi Huiying」がハッキングされ、COVID-19研究成果が公開された

この記事はLeiphone.comから転載したものです。転載する場合は、Leiphone.com公式...

...

量子コンピュータの公開:まだ多くのボトルネックがあり、最初の課題は機械学習の加速です

編集者注: 量子コンピューティングと機械学習の融合は、急成長している研究分野となっています。人々の期...

何?ニューラルネットワークは新しい知識も生み出せるのでしょうか?

作業を実行するための明示的なアルゴリズムを知らなくても、特定のタスク用にニューラル ネットワーク (...

Keras TensorFlow チュートリアル: 複雑なディープラーニング モデルをゼロから開発する方法

[[193126]] Keras は、独自のディープラーニング モデルを迅速に構築およびトレーニング...

高校生たちは皆ニューラルネットワークを勉強しており、教師である私は圧倒されています

[[356670]]この記事はAI新メディアQuantum Bit(公開アカウントID:QbitAI...

AI導入において、テクノロジーは最大の課題ではないが、人材は

[[427056]]写真: ゲッティ従来型企業の経営幹部が人工知能 (AI) や機械学習 (ML) ...

...

AIを活用して、ナスダックは金融業界向けのSaaSプロバイダーに変革したいと考えている

Nasdaq の CIO 兼 CTO である Brad Peterson 氏は、10 年以上にわたっ...

機械学習に基づく自動ネットワークトラフィック分析

1. 概要現在、機械学習はネットワーク トラフィック分析タスクで広く使用されています。特徴抽出、モデ...

...

...