Jestem bardzo spóźniony do gry, ale chciałem opublikować, aby odzwierciedlić niektóre obecne zmiany w splotowych sieciach neuronowych w odniesieniu do pomijania połączeń .
Zespół Microsoft Research niedawno wygrał konkurs ImageNet 2015 i opublikował raport techniczny Deep Residual Learning for Image Recognition opisujący niektóre z ich głównych pomysłów.
Jednym z ich głównych wkładów jest koncepcja głębokich warstw resztkowych . Te głębokie warstwy resztkowe wykorzystują połączenia pomijane . Korzystając z tych głębokich warstw rezydualnych, byli w stanie wytresować 152-warstwową sieć konwekcyjną dla ImageNet 2015. Przeszkolili nawet ponad 1000-warstwową sieć konwekcyjną dla CIFAR-10.
Problem, który ich motywował, jest następujący:
Kiedy głębsze sieci są w stanie rozpocząć konwergencję, ujawniono problem degradacji : wraz ze wzrostem głębokości sieci dokładność zostaje nasycona (co może nie dziwić), a następnie gwałtownie spada. Nieoczekiwanie taka degradacja nie jest spowodowana nadmiernym dopasowaniem , a dodanie większej liczby warstw do odpowiednio głębokiego modelu prowadzi do większego błędu treningu ...
Pomysł polega na tym, że jeśli weźmiesz „płytką” sieć i po prostu ustawisz na większej liczbie warstw, aby utworzyć głębszą sieć, wydajność głębszej sieci powinna być co najmniej tak dobra, jak sieć płytka, ponieważ głębsza sieć może nauczyć się dokładnie płytkiej sieci sieć, ustawiając nowe ułożone w stos warstwy na warstwy tożsamości (w rzeczywistości wiemy, że jest to bardzo mało prawdopodobne, gdyby nie było żadnych priorytetów architektonicznych ani aktualnych metod optymalizacji). Zauważyli, że tak nie jest i błąd szkolenia czasami się pogarszał, gdy układali więcej warstw na płytszym modelu.
To zmotywowało ich do skorzystania z pominięcia połączeń i użycia tak zwanych głębokich warstw resztkowych, aby pozwolić ich sieci na naukę odchyleń od warstwy tożsamości, stąd określenie „ rezydualny” , „rezydualny” odnosi się tutaj do różnicy od tożsamości.
Implementują pomijanie połączeń w następujący sposób:
fa( x ) : = H ( x ) - xfa( x ) + x = H ( x )fa( x )H (x)
W ten sposób użycie głębokich warstw rezydualnych za pośrednictwem połączeń przeskoku pozwala ich głębokim sieciom uczyć się przybliżonych warstw tożsamości, jeśli rzeczywiście jest to optymalne lub lokalnie optymalne. Rzeczywiście twierdzą, że ich pozostałe warstwy:
Pokazujemy na podstawie eksperymentów (ryc. 7), że wyuczone funkcje resztkowe generalnie mają małe odpowiedzi
Dlaczego dokładnie to działa, nie mają dokładnej odpowiedzi. Jest bardzo mało prawdopodobne, aby warstwy tożsamości były optymalne, ale uważają, że użycie tych warstw resztkowych pomaga w rozwiązaniu problemu i że łatwiej jest nauczyć się nowej funkcji, biorąc pod uwagę odniesienie / linię bazową porównania do mapowania tożsamości, niż nauczyć się jednego „od zera” bez korzystania z linii bazowej tożsamości. Kto wie. Ale pomyślałem, że to byłaby miła odpowiedź na twoje pytanie.
Nawiasem mówiąc, z perspektywy czasu: odpowiedź sashkello jest jeszcze lepsza, prawda?
Teoretycznie połączenia pomijane nie powinny poprawiać wydajności sieci. Ponieważ jednak skomplikowane sieci są trudne do wyszkolenia i łatwe do zastąpienia, bardzo przydatne może być jawne dodanie tego jako regresji liniowej, gdy wiadomo, że dane mają silny składnik liniowy. Wskazuje to model we właściwym kierunku ... Ponadto jest to bardziej interpretowalne, ponieważ przedstawia twój model jako liniowe i perturbacje, odsłaniając trochę struktury za siecią, co zwykle jest postrzegane jedynie jako czarna skrzynka.
źródło
Mój stary przybornik sieci neuronowej (obecnie używam głównie maszyn jądra) używał regulowania L1 do przycinania zbędnych wag i ukrytych jednostek, a także miał połączenia pomijania warstw. Ma to tę zaletę, że jeśli problem jest zasadniczo liniowy, ukryte jednostki mają tendencję do przycinania, a ty pozostajesz z modelem liniowym, który wyraźnie mówi, że problem jest liniowy.
Jak sugeruje sashkello (+1), MLP są uniwersalnymi aproksymatorami, więc pomijanie połączeń warstw nie poprawi wyników w zakresie limitu nieskończonych danych i nieskończonej liczby ukrytych jednostek (ale kiedy kiedykolwiek zbliżymy się do tego limitu?). Prawdziwą zaletą jest to, że ułatwia oszacowanie dobrych wartości wag, jeśli architektura sieci jest dobrze dopasowana do problemu, i możesz być w stanie użyć mniejszej sieci i uzyskać lepszą wydajność uogólnienia.
Jednak, podobnie jak w przypadku większości pytań dotyczących sieci neuronowej, ogólnie jedynym sposobem, aby dowiedzieć się, czy będzie on pomocny czy szkodliwy dla określonego zestawu danych, jest wypróbowanie go i zobaczenie (przy użyciu wiarygodnej procedury oceny wydajności).
źródło
Na podstawie Biskupa 5.1. Funkcje sieciowe z wyprzedzeniem: sposobem na uogólnienie architektury sieci jest włączenie połączeń pominięcia warstwy, z których każde jest powiązane z odpowiednim parametrem adaptacyjnym. Na przykład w sieci dwuwarstwowej (dwie warstwy ukryte) przechodziłyby bezpośrednio od wejść do wyjść. Zasadniczo sieć z sigmoidalnymi ukrytymi jednostkami zawsze może naśladować pomijanie połączeń warstw (dla ograniczonych wartości wejściowych), stosując odpowiednio małą masę pierwszej warstwy, która w swoim zakresie operacyjnym ukryta jednostka jest efektywnie liniowa, a następnie kompensuje dużą wartość masy z ukrytej jednostki do wyjścia.
W praktyce jednak może być korzystne jawne włączenie połączeń pominięcia warstwy.
źródło