Jak znaleźć optymalną liczbę neuronów na warstwę?

28

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?

kenorb
źródło

Odpowiedzi:

7

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.

Tim Atkinson
źródło
1
Zresztą zbliży się do globalnego optimum.
jjmerelo,
4

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:

  1. Unikaj reprezentacyjnych wąskich gardeł, szczególnie na początku sieci;

  2. Zrównoważyć szerokość i głębokość sieci. Optymalną wydajność sieci można osiągnąć poprzez zrównoważenie liczby filtrów na stopień i głębokości sieci. Zwiększenie zarówno szerokości, jak i głębokości sieci może przyczynić się do poprawy jakości sieci. Jednak optymalną poprawę dla stałej ilości obliczeń można osiągnąć, jeśli oba zostaną zwiększone równolegle. Budżet obliczeniowy powinien zatem zostać rozdzielony w sposób zrównoważony między głębokość i szerokość sieci.

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 Lassotermin 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.

Dołek
źródło
3

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