GAN(Generative Adversarial Network)
GAN(Generative Adversarial Network)は、生成モデルの一種であり、機械学習の手法の一つです。GANは、生成モデルと識別モデルの二つのニューラルネットワークを競い合わせることによって学習します。
GANは、2つの主要なコンポーネントから成り立っています。一つは「生成器(Generator)」であり、もう一つは「識別器(Discriminator)」です。
生成器は、ランダムノイズや低次元のベクトルを入力として受け取り、それを使ってデータのサンプルを生成します。例えば、GANが画像生成に使用される場合、生成器はランダムノイズから新しい画像を生成する役割を持ちます。
識別器は、生成器が生成したデータと本物のデータ(トレーニングデータ)を区別する役割を持ちます。識別器は、与えられたデータが生成されたデータか本物のデータかを予測することで訓練されます。
GANの学習は、生成器と識別器が互いに競い合う「敵対的な」プロセスによって行われます。生成器は、識別器に偽のデータを本物と認識させるように改善を図ります。一方、識別器は、生成器が生成したデータを本物と識別する能力を向上させるように学習します。この競争的なプロセスによって、生成器は本物に近いデータを生成する能力を向上させることが期待されます。
GANは、非常にリアルなデータの生成や、データの変換や補完、画像や音声の生成、ドメイン変換など、様々なタスクに応用されています。また、GANの応用には、DCGAN(Deep Convolutional GAN)、CycleGAN、StyleGAN、Pix2Pixなど、さまざまな派生モデルや改良版が存在します。