GANとは何ですか?どのようにそしてなぜあなたはそれらを使うべきですか!



この記事では、「GANとは」の詳細な説明と、トレーニングプロセスとユースケースの実装をカバーする制限と課題について説明します。

生成的敵対的ネットワークまたはGANは、を使用した生成的モデリングアプローチです。 ディープラーニング サブモデルアプローチを使用してデータを生成するための巧妙な方法でモデルをトレーニングします。この記事では、「GANとは」について詳しく理解しようと思います。この記事では、次のトピックについて説明します。

生成モデルとは何ですか?

生成モデルは、を使用するモデルに他なりません。 アプローチ。生成モデルでは、データにサンプル、つまり入力変数Xがありますが、出力変数Yがありません。生成モデルのトレーニングには入力変数のみを使用し、入力変数からパターンを認識して未知の出力を生成します。トレーニングデータのみに基づいています。





に 、入力変数から予測モデルを作成することに重点を置いています。このタイプのモデリングは、識別モデリングとして知られています。分類問題では、モデルは例がどのクラスに属するかを区別する必要があります。一方、教師なしモデルは、入力分布で新しい例を作成または生成するために使用されます。

素人の言葉で生成モデルを定義するために、生成モデルは、他の例と類似しているだけでなく、区別がつかない新しい例をサンプルから生成することができます。



生成モデルの最も一般的な例は、 これは、識別モデルとしてより頻繁に使用されます。生成モデルの他の例には、ガウス混合モデルや、一般的な敵対的ネットワークであるかなり現代的な例が含まれます。 GANとは何かを理解してみましょう。

生成的敵対的ネットワークとは何ですか?

生成的敵対的ネットワークまたはGANは、教師なし学習に使用される深層学習ベースの生成モデルです。基本的には2つの競合するシステムです ニューラルネットワーク データのバリエーションを作成または生成するために互いに競合します。

これは、2014年にIan Goodfellowの論文で最初に説明され、標準化された非常に安定したモデル理論が2016年にAlec Radfordによって提案されました。これはDCGAN(Deep Convolutional General Adversarial Networks)として知られています。現在存在するGANのほとんどは、DCGANアーキテクチャを使用しています。



GANアーキテクチャは、次の2つのサブモデルで構成されています。 発電機モデル そしてその 弁別器モデル。 GANが実際にどのように機能するかを理解してみましょう。

それはどのように機能しますか?

GANがどのように機能するかを理解するために、それを分解してみましょう。

  • 原動力 - これは、モデルが アプローチし、生成モデルです。
  • 敵対者– モデルは敵対的な設定で訓練されています
  • 通信網 - モデルのトレーニングでは、人工知能アルゴリズムとしてニューラルネットワークを使用します。

GANには、サンプルを取得してデータのサンプルを生成するジェネレーターネットワークがあり、その後、ディスクリミネーターネットワークは、データが生成されるか、バイナリを使用して実際のサンプルから取得されるかを決定します。 0から1の範囲の出力を与えるシグモイド関数の助けを借りて問題が発生します。

フローチャート-gnasとは-edureka

生成モデルは、トレーニングフェーズの後、弁別子がミスを犯す確率が最大になるようにデータの分布を分析します。一方、Discriminatorは、サンプルがジェネレーターではなく実際のデータからのものである確率を推定するモデルに基づいています。

プロセス全体は、以下の数式で形式化できます。

上記の式では:

G =ジェネレーター

D =弁別器

Pdata(x)=実際のデータの分布

Javaのマーカーインターフェイスとは

Pdata(z)=ジェネレーターのディストリビューター

x =実際のデータからのサンプル

z =ジェネレーターからのサンプル

D(x)=ディスクリミネーターネットワーク

G(z)=発電機ネットワーク

次に、GANのトレーニング部分があります。これは、さらに2つの部分に分割して、順番に実行できます。

GANをトレーニングする方法は?

パート1:

弁別器をトレーニングし、ジェネレーターをフリーズします。これは、ジェネレーターのトレーニングセットがFalseになり、ネットワークがフォワードパスのみを実行し、バックプロパゲーションが適用されないことを意味します。

Javaのセットの種類

基本的に、弁別器は実際のデータで訓練され、それらを正しく予測できるかどうかをチェックし、偽のデータでも同じように偽物として識別します。

パート2:

ジェネレーターをトレーニングし、ディスクリミネーターをフリーズします。このフェーズでは、最初のフェーズから結果を取得し、それらを使用して前の状態から改善し、弁別子をより適切にだまそうとします。

トレーニングの手順

  1. 問題を定義する –問題を定義し、データを収集します。
  2. GANのアーキテクチャを選択する –問題に応じて、GANの外観を選択します。
  3. 実際のデータで弁別器を訓練する –実数データを使用して弁別器をトレーニングし、n回実数として予測します。
  4. ジェネレーターの偽の入力を生成する –ジェネレーターから偽のサンプルを生成する
  5. 偽のデータで弁別器を訓練する –生成されたデータを偽物として予測するように弁別器をトレーニングします。
  6. 弁別器の出力を備えた列車発電機– 弁別子の予測を取得した後、弁別子をだますようにジェネレータをトレーニングします

生成的敵対的ネットワークの課題

GANの概念はかなり魅力的ですが、その進路に多くの障害を引き起こす可能性のある多くの後退があります。 GANが直面する主な課題のいくつかは次のとおりです。

  1. 安定 弁別器と発電機の間に必要です。そうしないと、ネットワーク全体が落ちてしまいます。弁別器が強力すぎる場合、ジェネレータは完全にトレーニングに失敗します。また、ネットワークが緩すぎると、画像が生成されてネットワークが役に立たなくなります。
  2. GANは、 オブジェクトの配置 その場所でオブジェクトが発生する回数の観点から。
  3. 3Dパースペクティブは、理解できないためGANを悩ませます 視点 、3Dオブジェクトのフラットな画像が得られることがよくあります。
  4. GANは、 グローバルオブジェクト 。全体的な構造を区別したり理解したりすることはできません。
  5. 新しいタイプのGANはより高度であり、これらの欠点を完全に克服することが期待されています。

生成的敵対的ネットワークアプリケーション

以下は、GANのいくつかのアプリケーションです。

ビデオの次のフレームの予測

ビデオフレームでの将来のイベントの予測は、GANの助けを借りて可能になります。 DVD-GANまたはDualVideo Discriminator GANは、最大48フレームの長さの顕著な忠実度の256×256ビデオを生成できます。これは、雨、ほこり、煙などの他の要因によって歪んだフレーム内のアクティビティを特定できる監視など、さまざまな目的に使用できます。

テキストから画像への生成

オブジェクト駆動型の注意深いGAN(obj-GAN)は、2つのステップでテキストから画像への合成を実行します。セマンティックレイアウトの生成が最初のステップであり、次にデコンボリューション画像ジェネレーターを使用して画像を合成することによって画像を生成することが最後のステップです。

SQLのプロシージャとは

これは、キャプションやレイアウトを理解して画像を生成し、単語を合成して詳細を洗練するために集中的に使用できます。単なる段落からストーリーボード全体を合成できるstoryGANに関する別の研究があります。

画像の解像度の向上

超解像生成敵対的ネットワークまたはSRGANは、低解像度の画像からより詳細で高品質の超解像画像を生成できるGANです。

アプリケーションは膨大なものになる可能性があります。低解像度の画像から生成されたより細かいディテールを備えた高品質の画像を想像してみてください。低解像度画像の詳細を識別するために生成されるヘルプの量は、監視、文書化、セキュリティ、パターンの検出など、より幅広い目的に使用できます。

画像から画像への翻訳

Pix2Pix GANは、汎用の画像-画像-翻訳用に設計されたモデルです。

インタラクティブな画像生成

GANはインタラクティブな画像の生成にも使用できます。コンピュータサイエンスと人工知能研究所(CSAIL)は、形状とテクスチャの編集によって実現されるリアルな照明と反射を備えた3Dモデルを生成できるGANを開発しました。

最近では、研究者は、顔の外観を維持しながら、人の動きによってアニメーション化された再現された顔を合成できるモデルを考案しました。

これで、「GANとは」を学んだこの記事の終わりになります。このチュートリアルで共有されているすべてのことを明確に理解していただければ幸いです。

「GANとは」に関するこの記事が関連していると感じた場合は、 25万人以上の満足した学習者のネットワークを持つ信頼できるオンライン学習会社が世界中に広がっています。

私たちはあなたの旅のすべてのステップであなたを助け、なりたい学生や専門家のために設計されたカリキュラムを考え出すためにここにいます 。このコースは、Pythonプログラミングをすぐに開始できるように設計されており、Pythonのコア概念と高度な概念の両方、およびさまざまな概念についてトレーニングします。 お気に入り

ご不明な点がございましたら、「GANとは」のコメントセクションでお気軽にご質問ください。喜んでお答えいたします。