Czy jest jakaś różnica między szkoleniem stosu autokodera a dwuwarstwową siecią neuronową?


14

Powiedzmy, że piszę algorytm do budowy 2-warstwowego stosu samochodowego i 2-warstwowej sieci neuronowej. Czy są to te same rzeczy czy różnica?

Rozumiem, że kiedy buduję autoencoder skumulowany, budowałem warstwa po warstwie. W przypadku sieci neuronowej zainicjowałbym wszystkie parametry w sieci, a następnie dla każdego punktu danych przekazałem ją przez sieć i obliczyłem stratę (np. Odległość eucleana) i wykonałem propagację wsteczną.

Odpowiedzi:


16

Skumulowane autoencodery i wielowarstwowe sieci neuronowe są różne. W praktyce obie sieci będą miały wspólne wagi i ewentualnie współużytkują bufory pamięci. Tak więc w twojej implementacji dwie sieci zostają splecione.

Zazwyczaj autoenkodery są szkolone w sposób nienadzorowany, zachłanny, warstwowy. (Brak etykiet, zacznij trening od pierwszej warstwy sieci, a następnie dodawaj nowe warstwy w miarę upływu czasu.) Wagi można nauczyć się przy użyciu różnych technik, począwszy od gradientu „wsadowego” (nie rób tego), do mini-partii stochastycznego spadku gradientu (SGD), do metod quasi-Newtona, takich jak L-BFGS.

Chodzi o to, że wagi wyuczone w sposób nienadzorowany w celu zminimalizowania błędu rekonstrukcji dla zadania uczenia się reprezentacji stanowią dobry punkt wyjścia do zainicjowania sieci dla nadzorowanego zadania dyskryminacyjnego, takiego jak klasyfikacja lub podobieństwo. To znaczy, sieć uczy się czegoś o podstawowej dystrybucji, patrząc na nieznakowane dane, co pozwala na rozróżnienie danych oznaczonych. Jednak w przypadku tego nowego zadania wagi nadal muszą zostać „dostrojone”. Dodaj więc warstwę regresji logistycznej w górnej części sieci, a następnie ucz się pod nadzorem przy użyciu oznaczonego zestawu danych. Krok dostrajający wykona opadanie gradientu i dostosuje wagi dla wszystkich warstw w sieci jednocześnie.

Zalety tego sposobu treningu sieci neuronowych to:

  1. Szkolenie bez nadzoru pozwala pokazać sieci więcej danych, ponieważ znacznie łatwiej jest uzyskać duże zbiory danych bez nadzoru niż te z etykietami.
  2. Możesz użyć wstępnie wyszkolonej sieci jako „punktu wyjścia” do szkolenia nowych klasyfikatorów, abyś nie musiał zaczynać od zera za każdym razem.

Aby zapoznać się z tym artykułem, zobacz Autokodery stosu denoisingu: poznanie przydatnych reprezentacji w głębokiej sieci z lokalnym kryterium denoisingu .


Jestem zdezorientowany co do drugiego kroku, w którym trenujesz warstwę kodującą z warstwą klasyfikacyjną (np. Warstwą softmax) dla zadania klasyfikacyjnego. Czy ponownie używasz zestawu danych szkoleniowych do tej części, aby poznać etykiety? Uważam to za dziwne, ponieważ zestaw treningowy został właśnie użyty, aby nauczyć się przybliżenia samego siebie.
facet

Nie ma większego sensu, jeśli i tak wszystkie dane są oznaczone. Jest to bardziej przydatne w sytuacjach, w których masz znacznie więcej nieznakowanych danych do wstępnego przeszkolenia, a następnie użyj etykietowanych danych „szkoleniowych”, aby dostroić.
miau
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.