Skip to content

6. Autoenkodéry

Definice

  • Autoencoder je neuronová síť, která se sama učí reprezentovat vstupní data v menším, latentním prostoru.
  • Encoder transformuje vstupní data do latentního prostoru a decoder je transformuje zpět do výstupního prostoru.
  • Feedforward neuronová síť, která se na výstupu snaží co nejpřesněji napodobit svůj vstup, který je v průběhu dopředného chodu propuštěn nějakým malým bottleneckem.
  • Část která vstup zakóduje do malé dimenze je encoder, část která ho pak rekonstruuje je decoder.

Použiti

  • Využití pro vizualizaci v menší dimenzi, učení abstraktních příznaků, komprese, rekonstrukce zašuměných či porušených dat,...

Otázky

Jak se učí autoencoder?

  • Standartními technikami tedy backtracking, nesupervizovane

K čemu se používá?

  • Využití pro vizualizaci v menší dimenzi, učení abstraktních příznaků, komprese, rekonstrukce zašuměných či porušených dat,...

Co je stacked autoencoder a k čemu je dobrý?

Sparce autoencoder

  • Sparse autoencoder je varianta autoencoderu, ktera zároveň omezuje množství aktivních neuronů v latentním prostoru.
  • Toto omezení se nazývá "sparsity constraint" a může pomoci zajistit, aby síť získala z vstupních dat více smysluplných vlastností.
  • Obvykle se trénuje tak, že se do cílové funkce pro minimální chybu přidá regulační termín, který penalizuje množství aktivních neuronů v latentním prostoru. Tento termín se obvykle používá spolu s měřítkem L1 nebo L2 pro regulaci množství aktivních neuronů.

Greedy layer-wise training

  • Při hltavém vrstvovém trénování se nejprve trénuje nejnižší vrstva sítě na základě vstupních dat. Poté se trénuje druhá vrstva sítě na základě výstupů z první vrstvy a tak dále až po nejvyšší vrstvu.

Stacked autoencoder

  • Řada sparse autoencoderů jdoucí po sobě, kde každý další bere na vstupu výstup předchozího.
  • Odstraňujeme decodery a výstup posledního encoderu jde do klasifikátoru/prediktoru. Tuto vrstvu pak trénujeme supervizovaně na nějakou úlohu. Nakonec můžeme trénovat celou architekturu na tuto úlohu jako takový fine-tuning.
  • Každá vrstva je naučena na greedy extrakci nějakých nejlepších příznaků, takže víme, že v síti extrahujeme smysluplné příznaky dat.

Jak se regularizují autoencodéry, aby se nepřeučovaly na trénovací data?

  • Nižší dimenze latentního prostoru, se musí skutečně naučit extrahovat důležité příznaky.
  • Dropout, L1 regularizace.
  • Přidat regularizační term, který podporuje hledání smysluplných příznaků. Např. sparsity regularization, kde k loss funkci přičteme počet aktivních neuronů v latentním prostoru.
  • Denoising AE – vstupní data zašumíme a AE se tak musí naučit podstatné příznaky pro rekonstrukci vstupu, jelikož nemůže prostě mapovat identitu.