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ąć?
neural-network
drżenie
źródło
źródło
Odpowiedzi:
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.
źródło
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
źródło
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.
źródło