Jakie są cele autoencoderów?

10

Autokodery to sieci neuronowe, które uczą się skompresowanej reprezentacji danych wejściowych w celu późniejszej ich rekonstrukcji, dzięki czemu można je wykorzystać do redukcji wymiarów. Składają się z enkodera i dekodera (które mogą być osobnymi sieciami neuronowymi). Redukcja wymiarów może być użyteczna w celu radzenia sobie z problemami związanymi z przekleństwem wymiarowości lub osłabiania ich, gdy dane stają się rzadkie i trudniej jest uzyskać „istotność statystyczną”. Tak więc autoencodery (i algorytmy takie jak PCA) mogą być użyte do radzenia sobie z przekleństwem wymiarowości.

Dlaczego zależy nam na zmniejszeniu wymiarów, szczególnie za pomocą autokoderów? Dlaczego nie możemy po prostu użyć PCA, jeśli celem jest redukcja wymiarowości?

Dlaczego musimy zdekompresować utajoną reprezentację danych wejściowych, jeśli chcemy po prostu zmniejszyć wymiarowość lub dlaczego potrzebujemy części dekodera w autoenkoderze? Jakie są przypadki użycia? Ogólnie rzecz biorąc, dlaczego musimy skompresować dane wejściowe, aby później je zdekompresować? Czy nie byłoby lepiej po prostu użyć oryginalnego wejścia (na początek)?

nbro
źródło
1
Zobacz także następujące pytanie stats.stackexchange.com/q/82416/82135 na CrossValidated SE.
nbro

Odpowiedzi:

6

Ważne jest, aby zastanowić się, jakie wzorce w danych są reprezentowane.

Załóżmy, że masz zestaw danych obrazów w skali szarości, dzięki czemu każdy obraz ma jednolitą intensywność. Jako ludzki mózg zdajesz sobie sprawę, że każdy element w tym zestawie danych można opisać w kategoriach pojedynczego parametru numerycznego, czyli wartości intensywności. Jest to coś, na co PCA dobrze by działało, ponieważ każdy z wymiarów (możemy myśleć o każdym pikselu jako innym wymiarze) jest idealnie skorelowany liniowo.

Załóżmy, że zamiast tego masz zestaw danych czarno-białych obrazów bitmapowych o wymiarach 128 x 128 pikseli z wyśrodkowanymi okręgami. Jako ludzki mózg szybko zdasz sobie sprawę, że każdy element w tym zestawie danych można w pełni opisać jednym parametrem numerycznym, którym jest promień okręgu. Jest to bardzo imponujący poziom redukcji w porównaniu z 16384 wymiarami binarnymi, a być może, co ważniejsze, jest semantycznie znaczącą właściwością danych. Jednak PCA prawdopodobnie nie będzie w stanie znaleźć tego wzorca.

Twoje pytanie brzmiało: „Dlaczego nie możemy po prostu użyć PCA, jeśli celem jest zmniejszenie wymiarów?” Prosta odpowiedź jest taka, że ​​PCA jest najprostszym narzędziem do zmniejszania wymiarów, ale może umknąć wielu relacjom, które mogłyby znaleźć bardziej zaawansowane techniki, takie jak autoencodery.

Josiah
źródło
3

Przykładem zastosowania autoencoderów (w szczególności dekodera lub modelu generatywnego autoencodera) jest odszumienie wejścia. Ten typ autoencoderów, zwanych auto-dekoderami odszumiającymi , przyjmuje częściowo uszkodzony sygnał wejściowy i próbuje odtworzyć odpowiadające mu nieskorupione wejście. Istnieje kilka zastosowań tego modelu. Na przykład, jeśli masz uszkodzony obraz, możesz potencjalnie odzyskać nieuszkodzony obraz za pomocą autokodera odmrażającego.

Autoencodery i PCA są powiązane:

autoencoder z pojedynczą w pełni połączoną ukrytą warstwą, liniową funkcją aktywacji i funkcją kosztu błędu kwadratu trenuje wagi, które obejmują tę samą podprzestrzeń, co zakres objęty przez wektory ładujące główny komponent, ale które nie są identyczne z wektorami ładującymi.

Aby uzyskać więcej informacji, zapoznaj się z artykułem Od głównych podprzestrzeni do głównych komponentów z auto-koderami liniowymi (2018) autorstwa Elada Plauta. Zobacz także tę odpowiedź , która wyjaśnia również związek między PCA i autoencoderami.

nbro
źródło
3

PCA to metoda liniowa, która tworzy transformację zdolną do zmiany rzutów wektorów (zmiana osi)

Ponieważ PCA szuka kierunku maksymalnej wariancji, zwykle ma wysoką dyskryminację, ALE nie gwarantuje to, że kierunek największej wariancji jest kierunkiem największej dyskryminacji.

LDA jest metodą liniową, która tworzy transformację, która jest w stanie znaleźć kierunek, który jest najbardziej istotny dla podjęcia decyzji, czy wektor należy do klasy A czy B.

PCA i LDA mają nieliniowe wersje jądra, które mogą pokonać ich ograniczenia liniowe.

Autoencodery mogą przeprowadzać redukcję wymiarów z innymi rodzajami strat, mogą być nieliniowe i mogą działać lepiej niż PCA i LDA w wielu przypadkach.

Prawdopodobnie nie ma najlepszego algorytmu uczenia maszynowego, który mógłby cokolwiek zrobić, czasami głębokie uczenie się i sieci neuronowe są przesadne w przypadku prostych problemów, a PCA i LDA można wypróbować przed innymi, bardziej złożonymi redukcjami wymiarów.

Pedro Henrique Monforte
źródło
1
Co LDA ma wspólnego z pytaniem?
nbro
LDA można zastosować jako redukcję wymiarów. Oryginalny algorytm wyprowadza tylko jedną projekcję, ale można jej użyć, aby uzyskać dyskryminujący kierunek niższego rankingu w celu dokładniejszego modelowania
Pedro Henrique Monforte
PCA nie gwarantuje również maksymalnej wariancji, ponieważ jest to chciwy algorytm, który tylko przybliża maksimum.
Mathieu Bouville
PCA ma zamknięte rozwiązanie, główna oś zawsze będzie skierowana w stronę maksymalnego wariancji. To nie jest chciwy algorytm (ale można go zaimplementować jako jeden)
Pedro Henrique Monforte
1
  1. Połowa dekodera jest niezbędna do obliczenia funkcji utraty dla szkolenia sieci. Podobne do tego, w jaki sposób „przeciwnik” jest nadal potrzebny w GAN, nawet jeśli interesuje Cię tylko składnik generatywny.
  2. Autoencodery mogą uczyć się nieliniowego osadzania danych, a zatem mają większą moc niż waniliowe PCA.
  3. Autoencodery mają zastosowania poza redukcją wymiarów:
    • Generowanie nowych punktów danych lub wykonywanie interpolacji (patrz VAE)
    • Twórz filtry odmrażające (np. Podczas przetwarzania obrazu)
    • Kompresuj / dekompresuj dane
    • Prognozowanie linków (np. W odkrywaniu narkotyków)
brazofuerte
źródło