Generative Adversarial Network

Et neuralt netværk bestående af to modeller, en generator og en diskriminator, der trænes samtidigt i et konkurrencepræget spil, hvor generatoren forsøger at producere data, der kan narre diskriminatoren.

Kort fortalt

En type AI, hvor to netværk konkurrerer mod hinanden: ét der skaber falske data, og ét der vurderer om data er ægte eller falsk.

Kategori
arkitektur
Niveau
øvet
Udtale
/ˈdʒɛnərətɪv ædˈvɜːrsəriəl ˈnɛtwɜːrk/

Betydninger

1
  1. 1

    En klasse af generative modeller, der består af et generatornetværk og et diskriminatornetværk, som trænes i et minimax-spil med henblik på at lære datafordelingen.

    • GANs har opnået imponerende resultater inden for billedgenerering, især med StyleGAN-arkitekturen.Karras et al., 2019
    • Træning af GANs kan være ustabil og kræver ofte teknikker som gradient clipping eller spektral normalisering.Miyato et al., 2018

Hvornår bruges det

GANs anvendes primært til generering af realistiske billeder, videoer og lyd, samt til data augmentation og super-resolution. De kræver omhyggelig tuning af hyperparametre for at undgå mode collapse og ustabil træning.

Formel

min_G max_D V(D,G) = E_{x~p_data(x)}[log D(x)] + E_{z~p_z(z)}[log(1 - D(G(z)))]

Kodeeksempel

import tensorflow as tf
from tensorflow.keras import layers

def build_generator(latent_dim):
    model = tf.keras.Sequential()
    model.add(layers.Dense(128, activation='relu', input_dim=latent_dim))
    model.add(layers.Dense(784, activation='sigmoid'))
    model.add(layers.Reshape((28, 28, 1)))
    return model

def build_discriminator():
    model = tf.keras.Sequential()
    model.add(layers.Flatten(input_shape=(28, 28, 1)))
    model.add(layers.Dense(128, activation='relu'))
    model.add(layers.Dense(1, activation='sigmoid'))
    return model

Eksempel på opbygning af en simpel GAN til MNIST-billeder: generatoren producerer 28x28 gråtonebilleder fra en latent vektor, og diskriminatoren klassificerer billeder som ægte eller falske.

Oprindelse

Termen blev introduceret af Ian Goodfellow og hans kolleger i 2014 i artiklen 'Generative Adversarial Nets'.

Afledte ord

4

Kilder

1