Czy istnieje zasada kciuka przy projektowaniu sieci neuronowych?

12

Wiem, że architektura sieci neuronowej opiera się głównie na samym problemie i typach wejść / wyjść, ale mimo to - zawsze zaczyna się „kwadratowa”, gdy zaczyna się ją budować. Więc moje pytanie brzmi - biorąc pod uwagę wejściowy zestaw danych MxN (M to liczba rekordów, N to liczba funkcji) i C możliwe klasy wyjściowe - czy istnieje kciukowa reguła, od ilu warstw / jednostek powinniśmy zacząć?

drżenie
źródło
Możliwe odpowiedzi na to pytanie są bardzo specyficzne dla problemu. Mogą istnieć pewne przydatne reguły rozpoznawania obiektów obrazu, ale reguły te mogą nie działać na innym zestawie danych.
horaceT

Odpowiedzi:

10

Odpowiedź na to pytanie została szczegółowo wyjaśniona w CrossValidated: Jak wybrać liczbę ukrytych warstw i węzłów w sieci neuronowej feedforward?

Pozwól mi jednak dodać własne dwa centy:

Nie ma magicznej zasady wyboru najlepszej architektury sieci neuronowej, ale jeśli możesz znaleźć architekturę, której ktoś użył do rozwiązania podobnego problemu, jest to często doskonały punkt wyjścia.

Najlepszymi miejscami do oglądania są oficjalne lub nieoficjalne przykłady wykorzystujące popularne biblioteki sieci neuronowych, takie jak Keras, PyTorch lub Tensorflow, oraz architektury opisane w literaturze akademickiej. keras / przykłady na github to świetny zasób.

Architektury te zostały prawdopodobnie wybrane po wielu próbach i błędach, więc większość pracy zostanie wykonana dla Ciebie.

Imran
źródło
5
Jednym zastrzeżeniem dla CrossValidated odpowiedzi jest to, że ma ona teraz 7+ lat i wskazuje na ponad 15-letnie FAQ w celu „doskonałego podsumowania” konfiguracji ukrytych warstw. Stwierdzenie, że w ciągu ostatnich 7-15 lat było dużo pracy nad konfiguracją NN, jest trochę niedopowiedzeniem. Istnieje coraz większa liczba aplikacji, które nie mieszczą się w systemie „ jedna ukryta warstwa jest wystarczająca ”. - To powiedziawszy, w przypadku wielu problemów podejście do głębokiego uczenia się może być przesadą. Zaczynając od pojedynczej ukrytej warstwy i wchodząc głęboko w razie potrzeby to solidna strategia.
RM
1
Dobre punkty, RM - Druga odpowiedź jest jednak znacznie nowsza.
Imran
@Imran Myślę, że nigdy nie odpowiadasz na pytanie OP. Wybór ukrytych węzłów i architektury jest bardzo głębokim pytaniem, które wciąż nie jest do końca dobrze zrozumiane. Zobacz ResNet i szeroki ResNet z połączeniami międzywarstwowymi.
horaceT
Dzięki za komentarz, @horaceT. Moja próba odpowiedzi miała oznaczać „Nie ma ogólnej zasady, ale można zastosować heurystykę”. Jestem świadomy Res Resets. Daj mi znać, jak inaczej mogę poprawić swoją odpowiedź.
Imran
3

Przeczytałem artykuł badający ideę wykorzystania sieci neuronowych do projektowania innych sieci neuronowych, badając, która konfiguracja węzłów i warstw była najbardziej wydajna. Oto strona, na której można pobrać plik PDF https://arxiv.org/abs/1611.02120

Daniel Ephrat
źródło
2

Po odpowiedzi @ Imran znalazłem ten artykuł w jednym z komentarzy do postu CrossValidated, do którego odsyłał. Oprócz próby znalezienia właściwej architektury przy użyciu modeli genetycznych (zamiast stosowania zasady praktycznej), sekcja 2.1 zawiera pewne teoretyczne ograniczenia dotyczące liczby ukrytych jednostek w systemie z jedną / dwiema ukrytymi warstwami.

EDYCJA: Przetestowałem to twierdzenie i odkryłem, że użycie modeli genetycznych jest tak samo dobre, jak wybranie losowej architektury.

drżenie
źródło