Sparse autoencoder

En sparse autoencoder er en type autoencoder, der pålægger en sparsitetsbegrænsning på de latente repræsentationer for at fremme læring af sjældne, men informative features.

Kort fortalt

En neural netværkstype, der lærer at komprimere data og samtidig tvinger de fleste neuroner til at være inaktive, så den kun aktiverer få, men vigtige mønstre.

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

Betydninger

1
  1. 1

    En autoencoder, der under træning pålægger en sparsitetsbegrænsning på de skjulte neurers aktiveringer, så kun et lille antal neuroner aktiveres for et givent input.

    • Vi trænede en sparse autoencoder på ansigtsbilleder og fandt, at de lærte features svarede til kantdetektorer.
    • Sparse autoencoders har vist sig effektive til at reducere støj i signalbehandling.

Hvornår bruges det

Bruges ofte til unsupervised feature learning, f.eks. til at finde underliggende mønstre i billeder eller tekst. Kan også anvendes til anomalidetektion, da rekonstruktionsfejlen er høj for sjældne inputs.

Formel

L = ||x - x̂||² + β * Σ_j KL(ρ || ρ̂_j) where ρ is target sparsity, ρ̂_j is average activation of hidden unit j over training samples, and β is the sparsity penalty weight.

Kodeeksempel

from keras.layers import Input, Dense
from keras.models import Model
from keras import regularizers

input_layer = Input(shape=(784,))
encoded = Dense(64, activation='relu', activity_regularizer=regularizers.l1(10e-5))(input_layer)
decoded = Dense(784, activation='sigmoid')(encoded)
autoencoder = Model(input_layer, decoded)
autoencoder.compile(optimizer='adam', loss='mse')

Eksempel på en sparse autoencoder i Keras med L1-regularisering for at fremme sparsitet.

Oprindelse

Konceptet stammer fra sparse coding i neurovidenskab og blev populært inden for deep learning af bl.a. Andrew Ng og Bruno Olshausen.

Kilder

2
  • Sparse autoencoder (CS294A Lecture notes)
  • Deep Learning (Goodfellow, Bengio, Courville) – Chapter 14: Autoencoders