スタブ 敵対的生成ネットワーク (GAN) とは何ですか? - Unite.AI
私達と接続
AI マスタークラス:

AI 101

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

mm
更新中 on

生成的敵対的ネットワーク(GAN) ニューラル ネットワーク アーキテクチャの一種です 新しいデータを生成できる それは学習されたパターンに準拠しています。 GAN は、人間の顔やその他のオブジェクトの画像の生成、テキストから画像への変換、あるタイプの画像から別のタイプの画像への変換、および画像の解像度の向上 (超解像度) などのアプリケーションに使用できます。 GAN はまったく新しいデータを生成できるため、多くの最先端の AI システム、アプリケーション、研究の先頭に立っています。 しかし、GAN は正確にどのように機能するのでしょうか? GAN がどのように機能するかを調べ、その主な用途をいくつか見てみましょう。

生成モデルと GAN の定義

GAN は生成モデルの一例です。 ほとんどの AI モデルは、教師ありモデルと教師なしモデルの XNUMX つのカテゴリのいずれかに分類できます。 教師あり学習モデルは通常、入力のさまざまなカテゴリを区別して分類するために使用されます。 対照的に、教師なしモデルは通常、データの分布を要約するために使用され、学習することがよくあります。 データのガウス分布。 データセットの分布を学習するため、この学習した分布からサンプルを抽出し、新しいデータを生成できます。

生成モデルが異なれば、データの生成方法と確率分布の計算方法も異なります。 たとえば、 単純ベイズモデル は、さまざまな入力特徴と生成クラスの確率分布を計算することによって動作します。 Naive Bayes モデルは予測をレンダリングするときに、さまざまな変数の確率を取得し、それらを組み合わせることで最も可能性の高いクラスを計算します。 その他の非深層学習生成モデルには、ガウス混合モデルや潜在ディリクレ割り当て (LDA) などがあります。 深層学習ベースの生成モデル include 制限付きボルツマン マシン (RBM), 変分オートエンコーダ(VAE)、そしてもちろんGANもです。

敵対的生成ネットワークは、 2014年にイアン・グッドフェローによって最初に提案されたそれらは 2015 年に Alec Redford と他の研究者によって改良され、GAN の標準化されたアーキテクチャにつながりました。 GAN は実際には XNUMX つの異なるネットワークが結合されたものです。 GAN は XNUMX つの部分で構成されます。 生成モデルと識別モデル。ジェネレーターおよびディスクリミネーターとも呼ばれます。

GAN アーキテクチャ

敵対的生成ネットワークは、 ジェネレータ モデルとディスクリミネータ モデルを組み合わせて構築されます。 ジェネレーター モデルの仕事は、モデルがトレーニング データから学習したパターンに基づいて、新しいデータの例を作成することです。 識別子モデルの仕事は、画像を分析し (画像でトレーニングされていると仮定して)、画像が生成されたものであるか、偽物であるか、本物であるかを判断することです。

XNUMX つのモデルは互いに対峙し、ゲーム理論に基づいてトレーニングされます。 ジェネレーター モデルの目標は、敵対者であるディスクリミネーター モデルを欺く画像を生成することです。 一方、ディスクリミネーター モデルの仕事は、その敵であるジェネレーター モデルを克服し、ジェネレーターが生成する偽の画像を捕捉することです。 モデルが互いに競い合うという事実は、両方のモデルが向上する軍拡競争をもたらします。 弁別器は、どの画像が本物で、どの画像が生成器によって生成されたかに関するフィードバックを受け取りますが、生成器には、どの画像が弁別器によって偽としてフラグ付けされたかに関する情報が供給されます。 どちらのモデルも、実際の本物のデータと基本的に区別できない偽のデータを生成できる生成モデルをトレーニングすることを目的として、トレーニング中に改善されます。

トレーニング中にデータのガウス分布が作成されると、生成モデルを使用できるようになります。 ジェネレータ モデルには最初にランダム ベクトルが与えられ、それがガウス分布に基づいて変換されます。 言い換えれば、ベクトルが世代の種となるのです。 モデルがトレーニングされると、ベクトル空間はデータのガウス分布の圧縮バージョンまたは表現になります。 データ分布の圧縮バージョンは、潜在空間、または潜在変数と呼ばれます。 その後、GAN モデルは潜在空間表現を取得し、そこからポイントを描画します。これを生成モデルに与え、トレーニング データに非常に類似した新しいデータを生成するために使用できます。

識別子モデルには、実際のデータ例と生成されたデータ例の両方で構成されるトレーニング ドメイン全体からサンプルが供給されます。 実際の例はトレーニング データセット内に含まれていますが、偽のデータは生成モデルによって生成されます。 識別器モデルをトレーニングするプロセスは、基本的な二項分類モデルのトレーニングとまったく同じです。

GAN トレーニング プロセス

全体を見てみよう トレーニング プロセス 仮説的な画像生成タスク用。

まず、GAN はトレーニング データセットの一部として本物の実際の画像を使用してトレーニングされます。 これにより、生成された画像と実際の画像を区別するための識別子モデルが設定されます。 また、ジェネレーターが新しいデータを生成するために使用するデータ分布も生成します。

ジェネレーターはランダムな数値データのベクトルを受け取り、ガウス分布に基づいてそれらを変換し、画像を返します。 この生成された画像は、トレーニング データセットからのいくつかの本物の画像とともに、識別子モデルに供給されます。 ディスクリミネーターは、受信した画像の性質に関する確率的予測をレンダリングし、0 から 1 までの値を出力します。通常、1 は本物の画像、0 は偽の画像です。

地上弁別器には画像のグラウンド トゥルースが供給され、ジェネレータには弁別器によってそのパフォーマンスに関するフィードバックが与えられるため、二重のフィードバック ループが機能します。

生成モデルと識別モデルは互いにゼロサム ゲームを行っています。 ゼロサム ゲームとは、一方の側の利益がもう一方の側のコストで得られるゲームです (両方のアクションの合計がゼロになります)。 弁別器モデルが本物の例と偽の例をうまく区別できる場合、弁別器のパラメータは変更されません。 ただし、本物の画像と偽の画像を区別できない場合、モデルのパラメータに大規模な更新が行われます。 逆は生成モデルにも当てはまり、判別モデルを騙すことができなかった場合にはペナルティが課せられます (そしてそのパラメータが更新されます) が、それ以外の場合はパラメータは変更されません (または報酬が与えられます)。

理想的には、ジェネレーターは、ディスクリミネーターが偽の画像と本物の画像を区別できない点までパフォーマンスを向上させることができます。 これは、ディスクリミネーターが本物の画像と偽の画像に対して常に %50 の確率でレンダリングすることを意味します。つまり、生成された画像は本物の画像と区別できないはずです。 実際には、GAN は通常、この点に到達しません。 ただし、生成モデルは、GAN が使用される多くのタスクに役立つために、完全に類似した画像を作成する必要はありません。

GAN アプリケーション

GAN にはさまざまなアプリケーションがあり、そのほとんどは画像と画像のコンポーネントの生成を中心に展開しています。 GAN は、必要な画像データが欠落しているか、容量が制限されているタスクで、必要なデータを生成する方法として一般的に使用されます。 GAN の一般的な使用例をいくつか見てみましょう。

データセットの新しいサンプルの生成

GAN を使用すると、単純な画像データセットの新しいサンプルを生成できます。 トレーニング サンプルが少数しかなく、さらに多くのサンプルが必要な場合は、GAN を使用して画像分類器用の新しいトレーニング データを生成し、さまざまな方向と角度で新しいトレーニング サンプルを生成できます。

ユニークな人間の顔を生成する

この写真の女性は存在しません。 画像はStyleGANによって生成されました。 写真: Owlsmcgee、ウィキメディア コモンズ経由、パブリック ドメイン (https://commons.wikimedia.org/wiki/File:Woman_1.jpg)

十分にトレーニングされた場合、GAN は次の目的で使用できます。 人間の顔の非常にリアルな画像を生成します。 これらの生成された画像は、顔認識システムのトレーニングに使用できます。

画像から画像への変換

GAN 画像翻訳が得意。 GAN を使用すると、白黒画像をカラー化したり、スケッチや図面を写真画像に変換したり、画像を昼から夜に変換したりできます。

テキストから画像への翻訳

テキストから画像への翻訳は、 GANの使用により可能。 画像とそれに付随する画像を説明するテキストが提供されると、GAN は次のことができます。 新しいイメージを作り出す訓練を受ける 希望する画像の説明が提供される場合。

画像の編集と修復

GAN を使用して既存の写真を編集できます。 GAN 雨や雪などの要素を取り除く 画像からだけでなく、次の目的にも使用できます。 古い、破損したイメージ、または破損したイメージを修復します。 

超解像

超解像度は、低解像度の画像を取得し、より多くのピクセルを画像に挿入して、その画像の解像度を向上させるプロセスです。 GAN は画像を取得するようにトレーニングできます。 その画像の高解像度バージョンを生成します。 

専門分野を持つブロガーおよびプログラマー 機械学習 および 深層学習 トピック。 ダニエルは、他の人が社会利益のために AI の力を活用できるよう支援したいと考えています。