AI 101
ジェネレーティブ・アドバーサリアル・ネットワーク(GAN)とは何か?

ジェネレーティブ・アドバーサリアル・ネットワーク(GAN)は、学習したパターンに従った新しいデータを生成できるニューラルネットワークアーキテクチャの一種です。GANは、人間の顔やその他の物体の画像生成、テキストから画像への変換、あるタイプの画像から別のタイプへの変換、画像の解像度向上(超解像)など、さまざまな用途に使用できます。GANはまったく新しいデータを生成できるため、多くの最先端AIシステム、アプリケーション、研究の先頭に立っています。しかし、GANは具体的にどのように機能するのでしょうか?GANの機能と主な用途のいくつかを見てみましょう。
生成モデルとGANの定義
GANは生成モデルの一例です。ほとんどのAIモデルは、教師ありモデルと教師なしモデルの2つのカテゴリーのいずれかに分類できます。教師あり学習モデルは通常、異なるカテゴリーの入力を区別し、分類するために使用されます。対照的に、教師なしモデルは通常、データの分布を要約するために使用され、多くの場合データのガウス分布を学習します。データセットの分布を学習するため、学習した分布からサンプルを抽出し、新しいデータを生成することができます。 異なる生成モデルは、データを生成し確率分布を計算する方法が異なります。例えば、ナイーブベイズモデルは、さまざまな入力特徴量と生成クラスの確率分布を計算することで動作します。ナイーブベイズモデルが予測を行う際、異なる変数の確率を取り、それらを組み合わせることで最も可能性の高いクラスを計算します。その他の非深層学習ベースの生成モデルには、ガウス混合モデルや潜在ディリクレ配分法(LDA)があります。深層学習ベースの生成モデルには、制限付きボルツマンマシン(RBM)、変分オートエンコーダ(VAE)、そしてもちろんGANが含まれます。 ジェネレーティブ・アドバーサリアル・ネットワークは、2014年にイアン・グッドフェローによって初めて提案され、2015年にアレック・レッドフォードら研究者によって改良され、GANの標準的なアーキテクチャが確立されました。GANは実際には2つの異なるネットワークが結合したものです。GANは2つの部分で構成されています:生成モデルと識別モデルで、ジェネレーターとディスクリミネーターとも呼ばれます。
GANのアーキテクチャ
ジェネレーティブ・アドバーサリアル・ネットワークは、ジェネレーターモデルとディスクリミネーターモデルを組み合わせて構築されます。ジェネレーターモデルの仕事は、トレーニングデータから学習したパターンに基づいて、新しいデータの例を作成することです。ディスクリミネーターモデルの仕事は、画像(画像でトレーニングされていると仮定して)を分析し、その画像が生成されたもの(偽物)か本物かを判断することです。 
GANのトレーニングプロセス
仮想的な画像生成タスクにおけるトレーニング プロセス全体を見てみましょう。 まず、GANはトレーニングデータセットの一部として本物の実画像を使用してトレーニングされます。これにより、ディスクリミネーターモデルが生成画像と実画像を区別するように設定され、またジェネレーターが新しいデータを生成するために使用するデータ分布が生成されます。 ジェネレーターは、ランダムな数値データのベクトルを受け取り、ガウス分布に基づいて変換して画像を返します。この生成された画像は、トレーニングデータセットからのいくつかの本物の画像とともに、ディスクリミネーターモデルに入力されます。ディスクリミネーターは、受け取った画像の性質について確率的な予測を行い、通常は1が本物の画像、0が偽物の画像を表す0から1の間の値を出力します。 
GANの応用例
GANにはさまざまな応用例があり、そのほとんどは画像や画像の構成要素の生成に関連しています。GANは、必要な画像データが不足しているか何らかの理由で限られているタスクで、必要なデータを生成する方法として一般的に使用されます。GANの一般的な使用例をいくつか見てみましょう。 データセットのための新しい例の生成 GANは、単純な画像データセットの新しい例を生成するために使用できます。トレーニング例がわずかしかなく、さらに多くの例が必要な場合、GANを使用して画像分類器のための新しいトレーニングデータを生成し、異なる向きや角度で新しいトレーニング例を生成することができます。 ユニークな人間の顔の生成

この写真の女性は実在しません。この画像はStyleGANによって生成されました。写真: Owlsmcgee via Wikimedia Commons, Public Domain (https://commons.wikimedia.org/wiki/File:Woman_1.jpg)
十分にトレーニングされたGANは、非常にリアルな人間の顔の画像を生成するために使用できます。これらの生成された画像は、顔認識システムのトレーニングを支援するために使用できます。 画像から画像への変換 GANは画像変換に優れています。GANは、白黒画像のカラー化、スケッチや絵画から写真画像への変換、昼間の画像から夜間の画像への変換などに使用できます。 テキストから画像への変換 テキストから画像への変換は、GANの使用によって可能です。画像を説明するテキストとその付随する画像が与えられると、GANは望ましい画像の説明が与えられたときに新しい画像を作成するようにトレーニングできます。 画像の編集と修復 GANは既存の写真を編集するために使用できます。GANは画像から雨や雪のような要素を除去することができますが、古い傷んだ画像や破損した画像を修復するためにも使用できます。 超解像 超解像とは、低解像度の画像を取り込み、より多くのピクセルを画像に挿入して、その画像の解像度を向上させるプロセスです。GANは、画像を受け取りその画像の高解像度バージョンを生成するようにトレーニングできます。






