Podręcznik

5. Inne struktury sieci

5.3. Autoenkodery

Kolejną interesującą architekturą są autoenkodery. Przykład autoenkodera został przedstawiony na rysunku 28. Na wejściu mamy dane o n cechach. Pierwsza część sieci - enkoder - przekształca te dane w reprezentację o mniejszym wymiarze k. Druga część - dekoder - próbuje odtworzyć z powrotem dane wejściowe.

Schemat autoenkodera z enkodem zmniejszającym wymiarowość i dekoderem odtwarzającym dane
Rysunek 28: Autoenkoder

Jako funkcji kosztu możemy użyć błędu średniokwadratowego:


\frac{1}{m} \sum_{i=1}^m (x_i - \hat{x}_i)^2

gdzie  \hat{x}_i oznaczają wartości cech danych zrekonstruowanych (wyjście sieci). W tym podejściu wykorzystujemy algorytmy uczenia nadzorowanego, ale nie potrzebujemy żadnych etykiet. Prawidłowym wzorem są dane wejściowe (na wyjściu chcemy odtworzyć możliwie dokładnie wejście).

W warstwie sieci po enkoderze uzyskujemy reprezentację danych wejściowych o mniejszym wymiarze  k < n , reprezentacja ta powinna odwzorowywać kluczowe cechy danych wejściowych. Nauczonego autoenkodera można używać jako całej sieci (np. odszumianie) lub jako samego enkodera w celu uzyskania reprezentacji o zmniejszonym wymiarze.

Do zastosowań autoenkoderów należą:

  • redukcja wymiarowości,

  • wizualizacja,

  • wyszukiwanie podobieństw (np. między dokumentami tekstowymi),

  • odszumianie,

  • kompresja,

  • kolorowanie obrazów (autoenkodery konwolucyjne),

  • detekcja anomalii.