Kiedy piszesz swój algorytm, skąd wiesz, ile neuronów potrzebujesz na pojedynczą warstwę? Czy są jakieś metody znalezienia optymalnej ich liczby, czy też jest to reguła praktyczna?
źródło
Kiedy piszesz swój algorytm, skąd wiesz, ile neuronów potrzebujesz na pojedynczą warstwę? Czy są jakieś metody znalezienia optymalnej ich liczby, czy też jest to reguła praktyczna?
Nie ma bezpośredniego sposobu na znalezienie optymalnej ich liczby: ludzie empirycznie próbują zobaczyć (np. Za pomocą weryfikacji krzyżowej). Najpopularniejsze techniki wyszukiwania to wyszukiwanie losowe, ręczne i wyszukiwanie w siatce.
Istnieją bardziej zaawansowane techniki, takie jak procesy Gaussa, np. Optymalizacja hiperparametrów sieci neuronowej za pomocą procesów Gaussa do klasyfikacji aktu dialogu , IEEE SLT 2016 .
Aby uzyskać bardziej inteligentne podejście niż wyszukiwanie losowe lub wyczerpujące, możesz wypróbować algorytm genetyczny, taki jak NEAT http://nn.cs.utexas.edu/?neat . Nie ma to jednak gwarancji znalezienia globalnych optymów, jest to po prostu algorytm optymalizacji oparty na wydajności i dlatego jest podatny na utknięcie w lokalnych optymach.
Paper Szegedy C, Vanhoucke V, Ioffe S, i in. Ponowne przemyślenie architektury początkowej dla wizji komputerowej [J]. nadruk arXiv arXiv: 1512.00567, 2015. podaje kilka ogólnych zasad projektowania:
Te sugestie nie mogą jednak zapewnić optymalnej liczby neuronów w sieci.
Nadal istnieją jednak badania nad kompresją modeli, np. Uczenie się strukturyzacji sparsity (SSL) Deep Neural Networks , SqueezeNet , sieć przycinania, które mogą rzucić nieco światła na optymalizację neuronów na pojedynczą warstwę.
Zwłaszcza w uczeniu strukturalnej sparsity głębokich sieci neuronowych dodaje
Group Lasso
termin regulujący w funkcji straty w celu uregulowania struktur (tj. Filtrów, kanałów, kształtów filtrów i głębokości warstw) DNN, co oznacza wyzerowanie niektórych składników ( tj. filtry, kanały, kształty filtrów i głębokość warstwy) struktury sieci i osiąga niezwykłe zwartość i przyspieszenie sieci, przy zachowaniu niewielkiej utraty dokładności klasyfikacji.źródło
Wiesz, kiedy masz zbyt wiele neuronów, zaczyna się od dopasowania. Oznacza to, że nie działa dobrze, ponieważ NN próbuje aktywować się w przypadku najbardziej idealnego dopasowania, które jest niemożliwe. Jak dwa różne koty z taką samą ilością atomów lub, mówiąc inaczej, jest to detektor NN, który aktywuje się tylko na zdjęciu twojego zwierzaka i nic więcej. Chcesz mieć szerszy zakres aktywacji nn. Jak na każdym zdjęciu kota.
Przeregulowanie to problem, który nie ma prawdziwej szybkiej naprawy. Możesz zacząć od zbyt małej liczby, a następnie dodawać kolejne. Lub zacznij od dużej ilości, a następnie usuwaj je, aż zadziała.
źródło