Autoencoder

Et autoencoder er et neuralt netværk, der trænes uovervåget til at lære en komprimeret repræsentation af inputdata ved at rekonstruere output, der ligner input så meget som muligt.

Kort fortalt

Et autoencoder er en type kunstig intelligens, der lærer at komprimere data og derefter genskabe dem, så man kan fjerne støj eller finde vigtige mønstre.

Kategori
arkitektur
Niveau
øvet
Udtale
/ˈɔːtoʊɪnˌkoʊdər/

Betydninger

2
  1. 1

    Et neuralt netværk bestående af en encoder og en decoder, der trænes til at minimere rekonstruktionsfejlen mellem input og output, typisk med et flaskehalslag i midten.

    • Vi brugte en autoencoder til at reducere dimensionality af billeddata før klassifikation.
    • Denotningsautoencoderen blev trænet med støjfyldte billeder for at lære at generere rene versioner.
  2. 2

    En generel arkitektur til uovervåget læring, der kan udvides med reguleringsteknikker som sparsitet eller kontraktive transformationer.

    • Sparse autoencodere tilføjer en sparsitetsstrafs til tabet for at fremme specialiserede features.

Hvornår bruges det

Autoencodere bruges ofte til dimensionalitetsreduktion, støjreduktion (denoising), feature learning og som byggesten i generative modeller. De trænes på store mængder ustrukturerede data, f.eks. billeder, uden labels.

Formel

L(x, x̂) = ||x - x̂||²

Kodeeksempel

import tensorflow as tf

# Define a simple autoencoder
input_dim = 784
encoding_dim = 32

input_layer = tf.keras.layers.Input(shape=(input_dim,))
encoded = tf.keras.layers.Dense(encoding_dim, activation='relu')(input_layer)
decoded = tf.keras.layers.Dense(input_dim, activation='sigmoid')(encoded)

autoencoder = tf.keras.Model(input_layer, decoded)
autoencoder.compile(optimizer='adam', loss='mse')

# Train on MNIST
(x_train, _), (x_test, _) = tf.keras.datasets.mnist.load_data()
x_train = x_train.reshape(-1, 784) / 255.0
autoencoder.fit(x_train, x_train, epochs=10, batch_size=256)

Simpel autoencoder i TensorFlow/Keras med et skjult lag som flaskehals.

Oprindelse

Termen 'autoencoder' kommer af græsk 'auto-' (selv) og 'encoder' (indkoder), da netværket lærer at kode data ind i en latent repræsentation og derefter afkode det igen.

Afledte ord

4

Kilder

2
  • Learning representations by back-propagating errors (Rumelhart et al., 1986)
  • Reducing the dimensionality of data with neural networks (Hinton & Salakhutdinov, 2006)