Dlaczego działają splotowe sieci neuronowe?

22

Często słyszę, jak ludzie mówią, dlaczego splotowe sieci neuronowe są nadal słabo poznane. Czy wiadomo, dlaczego splotowe sieci neuronowe zawsze uczą się coraz bardziej wyrafinowanych funkcji w miarę wchodzenia na kolejne warstwy? Co spowodowało, że stworzyli taki zestaw cech i czy dotyczyłoby to również innych typów głębokich sieci neuronowych?

Chwalmy Pana
źródło
Świetne wyjaśnienie Jeremy'ego Howarda w drugiej połowie tego filmu: youtube.com/watch?v=ACU-T9L4_lI
Dan
2
Myślę, że nie rozumiesz. Absolutnie dobrze rozumiemy, dlaczego sieci działają jako klasa algorytmów. Z drugiej strony często bardzo trudno jest zrozumieć, dlaczego określony model dokonał określonej prognozy. Dlatego nazywamy je „modelami czarnej skrzynki: ich proces wnioskowania jest dla nas nieprzejrzysty. To nie znaczy, że jesteśmy zdezorientowani, dlaczego są skuteczne”
David Marx

Odpowiedzi:

19

Wydaje mi się, że pytanie jest dość szerokie! Tak czy inaczej.

Zrozumienie sieci konwolucji

Czego się nauczyłem, ConvNetspróbuje zminimalizować funkcję kosztu, aby poprawnie kategoryzować dane wejściowe w zadaniach klasyfikacji. Wszystkie filtry zmieniające parametry i wyuczone filtry mają na celu osiągnięcie wspomnianego celu.

Wyuczone funkcje w różnych warstwach

Próbują obniżyć koszty, ucząc się niskich, czasem pozbawionych znaczenia cech, takich jak poziome i pionowe linie na swoich pierwszych warstwach, a następnie układając je w stosy, aby uzyskać abstrakcyjne kształty, które często mają znaczenie na ostatnich warstwach. Dla zilustrowania tego rys. 1, który został użyty stąd , można rozważyć. Wejście to magistrala, a dźwignia pokazuje aktywacje po przejściu wejścia przez różne filtry w pierwszej warstwie. Jak widać, czerwona ramka, czyli aktywacja filtra, której parametrów nauczyliśmy się, została aktywowana dla względnie poziomych krawędzi. Niebieska ramka została aktywowana dla względnie pionowych krawędzi. Możliwie, żeConvNetsuczymy się nieznanych filtrów, które są przydatne, a my, np. praktykujący widzenie komputerowe, nie odkryliśmy, że mogą być przydatne. Najlepszą częścią tych sieci jest to, że próbują samodzielnie znaleźć odpowiednie filtry i nie używają naszych ograniczonych odkrytych filtrów. Uczą się filtrów, aby zmniejszyć kwotę funkcji kosztów. Jak wspomniano, filtry te niekoniecznie są znane.

** Rysunek 1. ** * Aktywacje niskiego poziomu *

W głębszych warstwach funkcje poznane na poprzednich warstwach łączą się i tworzą kształty, które często mają znaczenie. W niniejszym artykule omówiono, że warstwy te mogą mieć aktywacje, które są dla nas znaczące, lub pojęcia, które mają znaczenie dla nas, jako istot ludzkich, mogą być rozdzielone między inne aktywacje. Na ryc. 2 zielona ramka pokazuje aktywacje filtra w piątej warstwie aConvNet. Ten filtr dba o twarze. Załóżmy, że czerwony dba o włosy. Mają znaczenie. Jak widać, istnieją inne aktywacje, które zostały aktywowane w pozycji typowych twarzy na wejściu, zielona ramka jest jedną z nich; Niebieska ramka jest kolejnym przykładem. Odpowiednio, abstrakcję kształtów można nauczyć się przez filtr lub wiele filtrów. Innymi słowy, każda koncepcja, podobnie jak twarz i jej komponenty, może być rozdzielona między filtry. W przypadkach, w których pojęcia są podzielone na różne warstwy, jeśli ktoś spojrzy na każdą z nich, mogą być wyrafinowane. Informacje są dystrybuowane między nimi i dla zrozumienia, że ​​informacje te wszystkie filtry i ich aktywacje muszą być wzięte pod uwagę, chociaż mogą się wydawać tak skomplikowane.

** Rysunek 2. ** * Aktywacje na wysokim poziomie *

CNNsnie powinny być w ogóle uważane za czarne skrzynki. Zeiler i wszyscy w tym niesamowitym artykule omawiali rozwój lepszych modeli sprowadzających się do prób i błędów, jeśli nie rozumiesz, co dzieje się w tych sieciach. Ten artykuł próbuje wizualizować mapy obiektów ConvNets.

Zdolność do obsługi różnych przekształceń w celu uogólnienia

ConvNetsużywaj poolingwarstw nie tylko w celu zmniejszenia liczby parametrów, ale także w celu zachowania niewrażliwości na dokładne położenie każdej cechy. Ich użycie pozwala również warstwom uczyć się różnych funkcji, co oznacza, że ​​pierwsze warstwy uczą się prostych funkcji niskiego poziomu, takich jak krawędzie lub łuki, a głębsze warstwy uczą się bardziej skomplikowanych funkcji, takich jak oczy lub brwi. Max Poolingnp. próbuje sprawdzić, czy specjalna funkcja istnieje w specjalnym regionie, czy nie. Idea poolingwarstw jest bardzo przydatna, ale jest w stanie obsłużyć przejścia między innymi transformacjami. Chociaż filtry na różnych warstwach próbują znaleźć różne wzory, np. Obróconą ścianę uczy się przy użyciu innych warstw niż zwykła twarz,CNNsprzez to nie mają żadnej warstwy do obsługi innych transformacji. Aby to zilustrować, załóżmy, że chcesz nauczyć się prostych twarzy bez żadnego obrotu z minimalną siatką. W takim przypadku Twój model może to zrobić idealnie. załóżmy, że zostałeś poproszony o nauczenie się każdego rodzaju twarzy z dowolnym obrotem twarzy. W takim przypadku Twój model musi być znacznie większy niż poprzednia wyuczona sieć. Powodem jest to, że muszą być filtry, aby nauczyć się tych obrotów na wejściu. Niestety to nie wszystkie transformacje. Twoje dane wejściowe również mogą być zniekształcone. Sprawy te rozzłościły Maxa Jaderberga i innych . Opracowali ten artykuł, aby poradzić sobie z tymi problemami, aby uspokoić nasz gniew.

Konwolucyjne sieci neuronowe działają

Wreszcie, po nawiązaniu do tych punktów, działają, ponieważ próbują znaleźć wzorce w danych wejściowych. Układają je w stos, aby tworzyć abstrakcyjne koncepcje za pomocą warstw splotu. Próbują dowiedzieć się, czy dane wejściowe zawierają każdą z tych pojęć, czy nie w gęstych warstwach, aby dowiedzieć się, do której klasy należą dane wejściowe.

Dodaję przydatne linki:

Głoska bezdźwięczna
źródło
12

ConvNets działają, ponieważ wykorzystują lokalizację cech. Robią to z różną szczegółowością, dzięki czemu są w stanie modelować funkcje hierarchicznie wyższego poziomu. Są niezmienne w tłumaczeniu dzięki pulom jednostek. Nie są one niezmienne obrót- per se , ale zazwyczaj są zbieżne do filtrów, które są obrócone wersje tych samych filtrów , a tym samym wspieranie wejść obracać.

Nie znam żadnej innej architektury neuronowej, która czerpałaby korzyści z lokalizacji cech w tym samym sensie, co ConvNets.

ncasas
źródło
1
Powiedziałbym, że RNN korzystają podobnie jak CNN, ponownie wykorzystując wagi w szeregach czasowych. CNN można również uważać za niekoniecznie niezmienną w tłumaczeniu, ale „niezmienną w wymiarze” (chociaż nie jestem pewien, czy jest to poprawny lub rozpoznany termin)
Neil Slater,
Dzięki za odpowiedź. Popraw mnie, jeśli się mylę, jeśli chodzi o następujące wnioski - 1. Wygląda na to, że domyślnie zaprojektowaliśmy ConvNets, aby uczyć się funkcji hierarchicznie wyższego poziomu podczas łączenia. To nie jest przypadek, że funkcje stają się wyrafinowane. 2. Włączenie informacji o domenie do projektu sieci neuronowej może mieć ogromny wpływ na efektywność uczenia się. ConvNets i RNN próbują to zrobić.
Chwała panu
Twoje stwierdzenia 1 i 2 wydają mi się poprawne.
ncasas
1
Myślę, że sieci kapsułowe powinny w podobny sposób wykorzystywać lokalizację cech
David Marx,
3

Nigdy nie należy zapominać o innych elementach typowego ConvNet. Filtry splotu wychwytują przestrzenne niezmienne cechy, takie jak krawędzie i okręgi. Te cechy są określone ilościowo w warstwie pulującej, która następuje po warstwie C. Na koniec są one zasilane (zwykle) wieloma w pełni połączonymi warstwami (fc). Należy przypisać te w pełni połączone warstwy, które są niczym więcej niż tym, co można znaleźć w zwykłym MLP.

horaceT
źródło
3

Konwolucyjne sieci neuronowe działają, ponieważ stanowią dobre rozszerzenie standardowego algorytmu głębokiego uczenia.

Biorąc pod uwagę nieograniczone zasoby i pieniądze, nie ma potrzeby splotowego, ponieważ standardowy algorytm również będzie działał. Jednak splotowy jest bardziej wydajny, ponieważ zmniejsza liczbę parametrów . Redukcja jest możliwa, ponieważ wykorzystuje lokalizację funkcji, dokładnie tak, jak pisze @ncasas.

SmallChess
źródło
To powinna być najlepsza odpowiedź
Jie.Zhou
1

Czy wiadomo, dlaczego splotowe sieci neuronowe zawsze uczą się coraz bardziej wyrafinowanych funkcji w miarę wchodzenia na kolejne warstwy?

To jest czysta matematyka. Na koniec sieć neuronowa jest dużą funkcją matematyczną. Im głębsza sieć, tym większa reprezentuje funkcję. Mówiąc bardziej, mam na myśli, rzecz jasna, wymiarowość. Wyuczone funkcje są bardziej wyrafinowane, ponieważ są wynikiem bardziej wyrafinowanych funkcji.

Co spowodowało, że stworzyli taki zestaw funkcji

Co ciekawe, konwencjonalne sieci neuronowe zostały zainspirowane naszą własną, właściwie kotowską biologią. Hubel i Wiesel przeprowadzili eksperymenty na korze wzrokowej kotów i zdali sobie sprawę, że światło było postrzegane przez stosy pól optycznych. To właśnie zainspirowało warstwę splotową i głębszą architekturę.

Valentin Calomme
źródło
0

Opierając się na odpowiedziach ncasas i horaceT , ConvNets są bardzo skuteczne, ponieważ:

  1. Są niewzruszeni w transformacjach geometrycznych i uczą się coraz bardziej skomplikowanych i szczegółowych funkcji, dzięki czemu są potężnymi hierarchicznymi ekstraktorami cech dzięki warstwom splotowym.
  2. Łączą wyodrębnione cechy i agregują je w nieliniowy sposób, aby przewidzieć wynik, a zatem są solidnymi klasyfikatorami dzięki w pełni połączonym warstwom.

Jeśli chcesz dowiedzieć się więcej o konwencjach i budujących je różnych blokach, a także o intuicjach, które leżą u ich podstaw, oto post, który niedawno napisałem na moim osobistym blogu, który zawiera szczegółowe informacje.

Ahmed Besbes
źródło
3
Pamiętaj, że jeśli chcesz promować swój własny produkt / blog, musisz ujawnić swoją przynależność w odpowiedzi , w przeciwnym razie odpowiedź może zostać oznaczona jako spam. Jeśli nie jesteś powiązany z witryną, zalecamy, aby tak powiedzieć, aby temu zapobiec. Proszę przeczytać Jak nie być spamerem
AJ