Model Google Inception: dlaczego istnieje wiele softmax?

13

Topologia modelu Google Inception można znaleźć tutaj: Google Inception Netowrk

Zauważyłem, że w tym modelu znajdują się 3 warstwy softmax (# 154, # 152, # 145), a 2 z nich to pewnego rodzaju wczesna ucieczka tego modelu.

Z tego, co wiem, warstwa softmax służy do ostatecznego wyjścia, więc dlaczego jest ich tak wiele? jaki jest cel drugiej 2 warstwy?

skywalkerytx
źródło

Odpowiedzi:

27

Krótka odpowiedź: głębokiej architekturze, a zwłaszcza GoogLeNet (22 warstwy), grozi problem zanikania gradientów podczas treningu (algorytm propagacji wstecznej). Inżynierowie GoogLeNet rozwiązali ten problem, dodając klasyfikatory również do warstw pośrednich, tak aby końcowa strata była kombinacją straty pośredniej i straty końcowej. To dlatego widzisz w sumie trzy warstwy strat, w przeciwieństwie do zwykłej pojedynczej warstwy jako ostatniej warstwy sieci.

Dłuższa odpowiedź: w klasycznym uczeniu maszynowym zwykle istnieje różnica między inżynierią cech a klasyfikacją. Sieci neuronowe są najbardziej znane z umiejętności rozwiązywania problemów „od końca do końca”, tj. Łączą etapy uczenia się reprezentacji danych i szkolenia klasyfikatora. Dlatego można myśleć o sieci neuronowej o standardowej architekturze (na przykład AlexNet) składającej się z fazy „uczenia się reprezentacji” (warstwy do poprzedniej do ostatniej) i fazy „klasyfikacji”, która zgodnie z oczekiwaniami obejmuje funkcja straty.

Podczas tworzenia głębszych sieci powstaje problem zwany „problemem znikania gradientów”. W rzeczywistości nie jest specyficzny dla sieci neuronowych; zamiast do jakichkolwiek metod uczenia opartych na gradientach. Nie jest to tak trywialne i dlatego zasługuje na właściwe wytłumaczenie; zobacz tutaj, aby uzyskać dobre referencje. Intuicyjnie możesz myśleć o gradientach, które przenoszą coraz mniej informacji, im głębiej wchodzimy do sieci, co jest oczywiście poważnym problemem, ponieważ dostrajamy parametry sieci (wagi) wyłącznie na podstawie gradientów, wykorzystując „podpórkę” „algorytm.

Jak deweloperzy GoogLeNet poradzili sobie z tym problemem? Uznali fakt, że nie tylko cechy końcowych warstw niosą wszystkie informacje dyskryminujące: cechy pośrednie są również zdolne do rozróżniania różnych etykiet; i, co najważniejsze, ich wartości są bardziej „wiarygodne”, ponieważ są wydobywane z wcześniejszych warstw, w których gradient zawiera więcej informacji. Opierając się na tej intuicji, dodali „klasyfikatory pomocnicze” w dwóch warstwach pośrednich. To jest powód strat „wczesnej ucieczki” w środku sieci, o których wspomniałeś w swoim pytaniu.

Całkowita strata jest wówczas kombinacją tych trzech warstw strat. Cytuję z oryginalnego artykułu:

Te klasyfikatory mają postać mniejszych sieci splotowych umieszczonych na wyjściu modułów Inception (4a) i (4d). Podczas szkolenia ich utrata jest dodawana do całkowitej utraty sieci z dyskontową wagą (straty pomocniczych klasyfikatorów ważono o 0,3). W momencie wnioskowania te sieci pomocnicze są odrzucane.

Naocznie:

wprowadź opis zdjęcia tutaj

galoosh33
źródło
1
„… wcześniejsze warstwy, w których gradient zawiera więcej informacji” - dlaczego?
maks.
2

Oprócz odpowiedzi @ galoosh33: Wydaje mi się, że pomocnicze klasyfikatory używają tych samych etykiet co końcowy klasyfikator wyjściowy. Źródło: slajd 34 w https://pdfs.semanticscholar.org/0b99/d677883883584d9a328f6f2d54738363997a.pdf

Wcześniej zastanawiałem się, czy te pomocnicze klasyfikatory używały innego rodzaju etykiet (np. Po prostu pies zamiast siberian husky).

gebbissimo
źródło