Autokoder - Autoencoder

Autoencoder to rodzaj sztucznej sieci neuronowej wykorzystywane nauczyć skutecznych zakodowania danych nieoznakowanego ( bez nadzoru uczenia się ). Kodowanie jest sprawdzane i udoskonalane przez próbę ponownego wygenerowania danych wejściowych z kodowania. Autoenkoder uczy się reprezentacji (kodowania) zbioru danych, zwykle w celu redukcji wymiarowości , poprzez uczenie sieci, aby ignorowała nieistotne dane („szum”).

Istnieją warianty, których celem jest zmuszenie wyuczonych reprezentacji do przyjęcia użytecznych właściwości. Przykładami są uregulowanej autoencoders ( Rzadki , denoising i skurczu ), które są skuteczne w reprezentacje kolejnych uczenia klasyfikacji zadań i wariacyjne autoencoders, z aplikacjami jak modele generatywnych . Autokodery mają zastosowanie w wielu problemach, od rozpoznawania twarzy , wykrywania cech, wykrywania anomalii po przyswajanie znaczenia słów. Autoenkodery są również modelami generatywnymi: mogą losowo generować nowe dane, które są podobne do danych wejściowych (dane treningowe).

Podstawowa architektura

Autokoder składa się z dwóch głównych części: kodera, który odwzorowuje dane wejściowe na kod, oraz dekodera, który odwzorowuje kod na rekonstrukcję danych wejściowych.

Najprostszym sposobem perfekcyjnego wykonania zadania kopiowania byłoby zduplikowanie sygnału. Zamiast tego autokodery są zazwyczaj zmuszane do przybliżonej rekonstrukcji danych wejściowych, zachowując tylko najbardziej istotne aspekty danych w kopii.

Idea autokoderów jest popularna od dziesięcioleci. Pierwsze wnioski pochodzą z lat 80. XX wieku. Ich najbardziej tradycyjnym zastosowaniem była redukcja wymiarowości lub uczenie cech , ale koncepcja ta stała się szeroko stosowana do uczenia generatywnych modeli danych. Niektóre z najpotężniejszych AI w 2010 roku obejmowały autokodery ułożone w głębokich sieciach neuronowych.

Schemat podstawowego Autoenkodera

Najprostszą formą w autoencoder jest wyprzedzającego niezakwaszaną charakterze powtarzającym się sieć neuronową podobne do jednowarstwowych perceptronów uczestniczących w wielowarstwowych perceptronów (MLP), - zastosowanie warstwy wejściowy i wyjściowy warstwy połączone przez jedno lub więcej warstw ukrytych. Warstwa wyjściowa ma taką samą liczbę węzłów (neuronów) jak warstwa wejściowa. Jego celem jest rekonstrukcja jego wejść (minimalizacja różnicy między wejściem a wyjściem) zamiast przewidywania docelowej wartości danych wejściowych . Dlatego autokodery uczą się bez nadzoru.

Autoenkoder składa się z dwóch części, kodera i dekodera, które można zdefiniować jako przejścia i takie, że:

W najprostszym przypadku, biorąc pod uwagę jedną ukrytą warstwę, stopień kodera autoenkodera pobiera dane wejściowe i mapuje je do :

Ten obraz jest zwykle określany jako kod, ukryte zmienne lub ukryta reprezentacja. to elementowa funkcja aktywacji, taka jak funkcja sigmoidalna lub wyprostowana jednostka liniowa . jest macierzą wag i wektorem odchylenia. Wagi i odchylenia są zwykle inicjowane losowo, a następnie aktualizowane iteracyjnie podczas uczenia przez propagację wsteczną . Następnie stopień dekodera autokodera odwzorowuje rekonstrukcję tego samego kształtu co :

gdzie dla dekodera może być niezwiązany z odpowiednim dla kodera.

Autokodery są szkolone w celu minimalizowania błędów rekonstrukcji (takich jak błędy kwadratowe ), często określane jako „ strata ”:

gdzie jest zwykle uśredniony w zestawie uczącym.

Jak wspomniano wcześniej, uczenie autokodera odbywa się poprzez wsteczną propagację błędu, podobnie jak inne sieci neuronowe ze sprzężeniem do przodu .

Jeżeli przestrzeń cech ma mniejszą wymiarowość niż przestrzeń wejściowa , wektor cech można traktować jako skompresowaną reprezentację wejścia . Jest to przypadek undercomplete autoencoders. Jeśli ukryte warstwy są większe niż ( nadkompletne ) lub równe warstwie wejściowej lub jeśli ukryte jednostki mają wystarczającą pojemność, autokoder może potencjalnie nauczyć się funkcji tożsamości i stać się bezużyteczny. Jednak wyniki eksperymentalne wykazały, że przepełnione autokodery mogą nadal uczyć się przydatnych funkcji . W idealnym przypadku wymiar kodu i pojemność modelu można ustawić na podstawie złożoności modelowanej dystrybucji danych. Jednym ze sposobów na to jest wykorzystanie wariantów modeli znanych jako regularne autokodery.

Wariacje

Uregulowane autokodery

Istnieją różne techniki, które uniemożliwiają autokoderom uczenie się funkcji tożsamości i poprawiają ich zdolność do przechwytywania ważnych informacji i uczenia się bogatszych reprezentacji.

Rzadki autokoder (SAE)

Prosty schemat jednowarstwowego autoenkodera rzadkiego. Ukryte węzły w kolorze jasnożółtym są aktywowane, podczas gdy jasnożółte są nieaktywne. Aktywacja zależy od wejścia.

Nauka reprezentacji w sposób, który zachęca do rzadkości, poprawia wydajność zadań klasyfikacyjnych. Rzadkie autoenkodery mogą zawierać więcej (a nie mniej) jednostek ukrytych niż wejść, ale tylko niewielka liczba jednostek ukrytych może być aktywna w tym samym czasie (a zatem rzadka). To ograniczenie zmusza model do reagowania na unikalne cechy statystyczne danych uczących.

W szczególności, autoenkoder rzadki jest autokoderem, którego kryterium uczenia obejmuje karę za rzadkość na warstwie kodu .

Przypominając , kara zachęca model do aktywowania (tzn. wartości wyjściowej bliskiej 1) określonym obszarom sieci na podstawie danych wejściowych, jednocześnie dezaktywując wszystkie inne neurony (tzn. aby miały wartość wyjściową bliską 0).

Tę rzadkość można osiągnąć, formułując warunki kary na różne sposoby.

być średnią aktywacją ukrytej jednostki (uśrednioną na przykładach treningowych). Notacja identyfikuje wartość wejściową, która wyzwoliła aktywację. Aby zachęcić większość neuronów do nieaktywności, musi być bliski 0. Dlatego ta metoda wymusza ograniczenie, gdzie jest parametrem sparsity, wartością bliską zeru. Termin kary przyjmuje postać, która karze za znaczne odejście od , wykorzystując rozbieżność KL:
gdzie jest sumowaniem ukrytych węzłów w ukrytej warstwie i jest KL-rozbieżnością między zmienną losową Bernoulliego ze średnią a zmienną losową Bernoulliego ze średnią .
  • Innym sposobem osiągnięcia rzadkości jest zastosowanie do aktywacji warunków regularyzacji L1 lub L2, skalowanych przez pewien parametr . Na przykład w przypadku L1 funkcja straty staje się
  • Kolejną proponowaną strategią wymuszenia rzadkości jest ręczne zerowanie wszystkich aktywacji ukrytych jednostek poza najsilniejszymi ( autoenkoder k-sparse ). Autoenkoder k-sparse jest oparty na autokoderze liniowym (tj. z liniową funkcją aktywacji) i powiązanych wagach. Identyfikację najsilniejszych aktywacji można osiągnąć, sortując aktywności i zachowując tylko pierwsze k wartości lub używając ukrytych jednostek ReLU z progami, które są dostosowywane do momentu zidentyfikowania k największych aktywności. Ten wybór działa jak wspomniane wcześniej terminy regularyzacji, ponieważ uniemożliwia modelowi rekonstrukcję danych wejściowych przy użyciu zbyt wielu neuronów.

Autokoder odszumiający (DAE)

Autokodery odszumiające (DAE) starają się uzyskać dobrą reprezentację, zmieniając kryterium rekonstrukcji .

Rzeczywiście, DAE pobierają częściowo uszkodzone dane wejściowe i są szkolone, aby odzyskać oryginalne, niezniekształcone dane wejściowe . W praktyce celem odszumiania autokoderów jest wyczyszczenie uszkodzonych danych wejściowych lub odszumienie. Z tym podejściem wiążą się dwa założenia:

  • Reprezentacje wyższego poziomu są stosunkowo stabilne i odporne na uszkodzenie danych wejściowych;
  • Aby dobrze wykonać odszumianie, model musi wyodrębnić cechy, które przechwytują użyteczną strukturę w rozkładzie wejściowym.

Innymi słowy, odszumianie jest zalecane jako kryterium szkoleniowe do uczenia się wydobywania użytecznych cech, które będą stanowić lepszą reprezentację danych wejściowych na wyższym poziomie.

Proces szkolenia DAE działa w następujący sposób:

  • Początkowe dane wejściowe są zniekształcane przez mapowanie stochastyczne .
  • Uszkodzone dane wejściowe są następnie mapowane na ukrytą reprezentację za pomocą tego samego procesu standardowego autokodera, .
  • Z ukrytej reprezentacji model jest odtwarzany .

Parametry modelu i są szkolone w celu zminimalizowania średniego błędu rekonstrukcji w danych uczących, w szczególności w celu zminimalizowania różnicy między oryginalnymi nieuszkodzonymi danymi wejściowymi . Zauważ, że za każdym razem, gdy losowy przykład jest prezentowany w modelu, nowa uszkodzona wersja jest generowana stochastycznie na podstawie .

Wspomniany wyżej proces szkoleniowy może być zastosowany do każdego rodzaju procesu korupcyjnego. Niektóre przykłady to addytywny izotropowy szum Gaussa , szum maskujący (część sygnału wejściowego wybrana losowo dla każdego przykładu jest ustawiona na 0) lub szum solny i pieprzowy (część sygnału wejściowego wybrana losowo dla każdego przykładu jest ustawiona na jego minimalną lub maksymalną wartość z jednakowym prawdopodobieństwem).

Uszkodzenie danych wejściowych odbywa się tylko podczas uczenia. Po szkoleniu nie dodaje się korupcji.

Autokoder kurczliwy (CAE)

Autoenkoder kurczliwy dodaje jawny regulator w swojej funkcji celu, który zmusza model do uczenia się kodowania odpornego na niewielkie zmiany wartości wejściowych. Ten regularizer koresponduje z normą Frobenius z jakobian matrycy z aktywacją kodera, w odniesieniu do danych wejściowych. Ponieważ kara dotyczy tylko przykładów uczących, termin ten wymusza na modelu zdobycie przydatnych informacji o rozkładzie uczących. Ostateczna funkcja celu ma następującą postać:

Autokoder jest określany jako kurczliwy, ponieważ zachęca się do mapowania sąsiedztwa punktów wejściowych na mniejsze sąsiedztwo punktów wyjściowych.

DAE jest połączone z CAE: w granicach małego szumu Gaussa, DAE sprawiają, że funkcja rekonstrukcji jest odporna na małe, ale skończone zakłócenia na wejściu, podczas gdy CAE sprawiają, że wyodrębnione funkcje są odporne na nieskończenie małe zakłócenia na wejściu.

Autoenkoder betonu

Autoenkoder betonu jest przeznaczony do dyskretnego wyboru funkcji. Konkretny autokoder wymusza, aby ukryta przestrzeń składała się tylko z określonej przez użytkownika liczby cech. Beton autoencoder wykorzystuje ciągły odprężenie w dystrybucji kategorycznego aby umożliwić nachylenie przejść przez warstwę wyboru funkcji, co sprawia, że jest możliwe wykorzystanie standardowego wstecznej dowiedzieć się optymalną podzbiór wejściowego wyposażony w celu minimalizacji strat odbudowy.

Autoenkoder wariacyjny (VAE)

Autoenkodery wariacyjne (VAE) należą do rodzin wariacyjnych metod bayesowskich . Pomimo podobieństw architektonicznych do podstawowych autokoderów, VAE są architekturą o różnych celach i zupełnie innym sformułowaniu matematycznym. Przestrzeń utajona składa się w tym przypadku z mieszaniny rozkładów zamiast ustalonego wektora.

Biorąc pod uwagę wejściowy zbiór danych charakteryzujący się nieznaną funkcją prawdopodobieństwa i wielowymiarowym utajonym wektorem kodowania , celem jest modelowanie danych jako rozkładu , zdefiniowanego jako zbiór parametrów sieci , tak aby .

Zalety głębokości

Schematyczna struktura autokodera z 3 w pełni połączonymi warstwami ukrytymi. Kod (z lub h dla odniesienia w tekście) jest najbardziej wewnętrzną warstwą.

Autokodery są często szkolone za pomocą kodera jednowarstwowego i dekodera jednowarstwowego, ale użycie wielowarstwowych (głębokich) koderów i dekoderów ma wiele zalet.

  • Głębokość może wykładniczo obniżyć koszt obliczeniowy reprezentowania niektórych funkcji.
  • Głębokość może wykładniczo zmniejszyć ilość danych treningowych potrzebnych do nauczenia się niektórych funkcji.
  • Eksperymentalnie, autoenkodery głębokie zapewniają lepszą kompresję w porównaniu z autoenkoderami płytkimi lub liniowymi.

Szkolenie

Geoffrey Hinton opracował technikę sieci głębokich przekonań do trenowania wielowarstwowych głębokich autokoderów. Jego metoda polega na traktowaniu każdego sąsiedniego zestawu dwóch warstw jako ograniczonej maszyny Boltzmanna, tak aby wstępne szkolenie przybliżało dobre rozwiązanie, a następnie za pomocą propagacji wstecznej do precyzyjnego dostrojenia wyników.

Naukowcy debatowali, czy wspólne szkolenie (tj. szkolenie całej architektury wraz z jednym globalnym celem rekonstrukcji w celu optymalizacji) byłoby lepsze dla głębokich autokoderów. Badanie z 2015 r. wykazało, że wspólne szkolenie uczy lepszych modeli danych wraz z bardziej reprezentatywnymi cechami klasyfikacji w porównaniu z metodą warstwową. Jednak ich eksperymenty wykazały, że sukces wspólnego treningu zależy w dużej mierze od przyjętych strategii regularyzacji.

Aplikacje

Dwa główne zastosowania autokoderów to redukcja wymiarów i wyszukiwanie informacji, ale współczesne odmiany zostały zastosowane do innych zadań.

Redukcja wymiarowości

Wykres pierwszych dwóch głównych komponentów (po lewej) i dwuwymiarowej ukrytej warstwy autokodera liniowego (po prawej) zastosowanej do zestawu danych Fashion MNIST . Oba modele, które są liniowe, uczą się obejmować tę samą podprzestrzeń. Rzut punktów danych jest rzeczywiście identyczny, z wyjątkiem rotacji podprzestrzeni - w stosunku do której PCA jest niezmienne.

Redukcja wymiarowości była jedną z pierwszych aplikacji głębokiego uczenia .

Na potrzeby badań Hintona z 2006 r. wstępnie wytrenował wielowarstwowy autoenkoder ze stosem RBM, a następnie wykorzystał ich wagi do zainicjowania głębokiego autokodera ze stopniowo mniejszymi ukrytymi warstwami, aż natrafił na wąskie gardło 30 neuronów. Uzyskane 30 wymiarów kodu dało mniejszy błąd rekonstrukcji w porównaniu z pierwszymi 30 komponentami analizy głównych komponentów (PCA) i nauczyło się reprezentacji, która była jakościowo łatwiejsza do interpretacji, wyraźnie oddzielając klastry danych.

Reprezentowanie wymiarów może poprawić wydajność zadań, takich jak klasyfikacja. Rzeczywiście, cechą charakterystyczną redukcji wymiarowości jest umieszczanie blisko siebie powiązanych semantycznie przykładów.

Analiza głównych składowych

Rekonstrukcja obrazów 28x28pixel przez Autoenkoder z kodem o rozmiarze dwa (dwujednostkowa warstwa ukryta) i rekonstrukcja z dwóch pierwszych głównych komponentów PCA. Obrazy pochodzą ze zbioru danych Fashion MNIST .

Jeśli stosuje się aktywacje liniowe lub tylko pojedynczą sigmoidalną warstwę ukrytą, wówczas optymalne rozwiązanie autoenkodera jest silnie związane z analizą głównych składowych (PCA). Wagi autoenkodera z pojedynczą ukrytą warstwą o rozmiarze (gdzie jest mniejsze niż rozmiar danych wejściowych) obejmują tę samą podprzestrzeń wektorową, co ta, którą rozpinają pierwsze składowe główne, a wyjście autoenkodera jest rzutem ortogonalnym na tę podprzestrzeń. Wagi autokodera nie są równe składowym głównym i generalnie nie są ortogonalne, ale składowe główne mogą być z nich odzyskane przy użyciu rozkładu na wartości osobliwe .

Potencjał autokoderów tkwi jednak w ich nieliniowości, co pozwala modelowi nauczyć się potężniejszych uogólnień w porównaniu z PCA i zrekonstruować dane wejściowe przy znacznie mniejszej utracie informacji.

Wyszukiwanie informacji

Wyszukiwarka informacji czerpie korzyści szczególnie z redukcji wymiarów, ponieważ wyszukiwanie może stać się bardziej wydajne w niektórych rodzajach przestrzeni niskowymiarowych. Autokodery rzeczywiście zostały zastosowane do hashowania semantycznego, zaproponowanego przez Salakhutdinova i Hintona w 2007 roku. Dzięki wyuczeniu algorytmu do tworzenia niskowymiarowego kodu binarnego, wszystkie wpisy w bazie danych można było przechowywać w tablicy mieszającej, mapującej wektory kodu binarnego na wpisy. Ta tabela obsługiwałaby wtedy pobieranie informacji przez zwrócenie wszystkich wpisów z tym samym kodem binarnym co zapytanie lub nieco mniej podobnych wpisów przez odwrócenie niektórych bitów z kodowania zapytania.

Wykrywanie anomalii

Innym zastosowaniem autokoderów jest wykrywanie anomalii . Ucząc się powielania najbardziej istotnych cech danych uczących w ramach niektórych opisanych wcześniej ograniczeń, model jest zachęcany do uczenia się precyzyjnego odtwarzania najczęściej obserwowanych cech. W obliczu anomalii model powinien pogorszyć wydajność rekonstrukcji. W większości przypadków do uczenia autokodera wykorzystywane są tylko dane z normalnymi instancjami; w innych częstość anomalii jest niewielka w porównaniu ze zbiorem obserwacji, tak że jego wkład w wyuczoną reprezentację można zignorować. Po przeszkoleniu autoenkoder dokładnie zrekonstruuje „normalne” dane, nie robiąc tego w przypadku nieznanych anomalnych danych. Błąd rekonstrukcji (błąd między oryginalnymi danymi a ich niskowymiarową rekonstrukcją) jest używany jako wynik anomalii do wykrywania anomalii.

Niedawna literatura wykazała jednak, że niektóre modele autokodowania mogą, wbrew intuicji, bardzo dobrze rekonstruować przykłady anomalii i w konsekwencji nie są w stanie wiarygodnie przeprowadzić wykrywania anomalii.

Przetwarzanie obrazu

Charakterystyki autokoderów są przydatne w przetwarzaniu obrazu.

Jednym z przykładów może być stratna kompresja obrazu , w której autokodery przewyższały inne podejścia i okazały się konkurencyjne w stosunku do JPEG 2000 .

Innym użytecznym zastosowaniem autokoderów do wstępnego przetwarzania obrazu jest odszumianie obrazu .

Autokodery znalazły zastosowanie w bardziej wymagających kontekstach, takich jak obrazowanie medyczne, gdzie zostały wykorzystane do odszumiania obrazu oraz superrozdzielczości . W diagnostyce wspomaganej obrazem w eksperymentach zastosowano autoenkodery do wykrywania raka piersi oraz do modelowania związku między pogorszeniem funkcji poznawczych choroby Alzheimera a ukrytymi cechami autokodera wyszkolonego w MRI .

Odkrycie narkotyków

W 2019 r. molekuły wygenerowane za pomocą autokoderów wariacyjnych zostały poddane walidacji eksperymentalnej na myszach.

Prognozy popularności

Ostatnio nałożona struktura autokodera dała obiecujące wyniki w przewidywaniu popularności postów w mediach społecznościowych, co jest pomocne w strategiach reklamowych online.

Tłumaczenie maszynowe

Autokodery zostały zastosowane do tłumaczenia maszynowego , które jest zwykle określane jako neuronowe tłumaczenie maszynowe (NMT). W przeciwieństwie do tradycyjnych autokoderów, dane wyjściowe nie pasują do danych wejściowych - są w innym języku. W NMT teksty są traktowane jako sekwencje do zakodowania w procedurze uczenia, podczas gdy po stronie dekodera generowane są sekwencje w języku docelowym (językach docelowych). Język specyficznych dla autoencoders włączyć dalsze lingwistyczne możliwości do procedury uczenia się, takich jak chiński funkcji rozkładu.

Zobacz też

Bibliografia

Zewnętrzne linki