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
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
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
4Kilder
2- Learning representations by back-propagating errors (Rumelhart et al., 1986)
- Reducing the dimensionality of data with neural networks (Hinton & Salakhutdinov, 2006)