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
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 modelEksempel 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'.