Czy można uzyskać lepszy ANN, usuwając niektóre połączenia?

11

Zastanawiałem się, czy w pewnych okolicznościach jest możliwe, aby ANN działały lepiej, jeśli odetniesz na nich niektóre połączenia, na przykład:

Konstruujesz jeden ANN, biorąc równolegle dwa wielowarstwowe ANN A i B (te same węzły wejściowe i wyjściowe), dodając kilka połączeń „komunikacyjnych” między ukrytymi warstwami A i B?

Czy można uzyskać lepsze wyniki uogólnienia?

Czy jest to w jakiś sposób wykorzystywane w praktyce, czy zawsze używa się wyłącznie wielowarstwowych, w pełni połączonych sieci?

SlimJim
źródło

Odpowiedzi:

7

Tak to mozliwe. Niektóre osoby szczegółowo przyjrzały się temu problemowi. Oto stara praca na temat tego, jak to zrobić: Optymalne uszkodzenie mózgu

carlosdc
źródło
Dlaczego odłączenie węzłów jest lepsze niż regularyzacja? Pomyślałem, że przy regularyzacji nie trzeba przycinać połączeń - te „niepotrzebne” będą miały bardzo małe ciężary i tyle.
andreister
@ andreister Nie sądzę, że jest to lepsze niż regularyzacja. Myślę, że to (wczesna) alternatywa dla regularyzacji. Jest to bardzo stary artykuł, regularyzacja stała się głównym nurtem ML w połowie lat dziewięćdziesiątych.
carlosdc
7

Z reguły małe i / lub rzadkie sieci generalizują się lepiej. Możesz pozwolić swojemu algorytmowi treningowemu zlikwidować niepotrzebne połączenia w sieci o stałym rozmiarze, stosując pewną formę zaniku masy, lub możesz zastosować algorytm, który ma na celu optymalizację samej architektury / topologii sieci poprzez usunięcie niepotrzebnych danych wejściowych, ukrytych węzłów lub połączeń.

Zapoznaj się z tymi źródłami pomysłów i punktów wyjścia do dalszych badań lub przyjrzyj się wykorzystaniu algorytmów ewolucyjnych do projektowania, przycinania i optymalizacji architektur.

  1. Castellano, G., Fanelli, AM (2000) „Wybór zmiennych przy użyciu modeli sieci neuronowej”, Neurcomputing (31)
  2. Ji C., Psaltis D. (1997) „Synteza sieci poprzez wzrost i zanik danych”, Neural Networks Vol. 10, nr 6, s. 1133–1141
  3. Narasimha PL i in. (2008) „Zintegrowana metoda uprawy i przycinania dla szkolenia sieci feedforward”, Neurocomputing (71), s. 2831–2847
  4. Schuster, A. (2008) „Solidna sztuczna architektura sieci neuronowych”, International Journal of Computational Intelligence (4: 2), s. 98–104
Graham Jones
źródło
Naprawdę chciałbym usłyszeć więcej o części „spojrzenie na wykorzystanie algorytmów ewolucyjnych do projektowania, przycinania i optymalizacji architektur”. Może zadam o to pytanie!
Artem Kaznatcheev
6

W większości przypadków, jeśli usuniesz niepotrzebne połączenia, uzyskasz lepszą sieć. Łatwo jest przeciążać (zastępować) sieć - w takim przypadku będzie słabo działać na zbiorze danych sprawdzania poprawności.

Przycinanie niepotrzebnych połączeń najprawdopodobniej zmniejszy prawdopodobieństwo przetrenowania. Zobacz: http://en.wikipedia.org/wiki/Overfitting .

jb.
źródło
5

Tak to mozliwe. Możemy rozważyć połączenie między jednostkami obliczeniowymi, liczbę ukrytych warstw, jednostek na ukrytą warstwę itp. Jako hiper-parametry. Możliwe jest znalezienie optymalnych wartości dla tych parametrów, przeprowadzając serię eksperymentów.

Na przykład:

Możesz podzielić swój zestaw danych w następujący sposób: Zestaw treningowy 60% danych, Cross-validation 20% danych, Testowanie 20% danych,

Następnie wytrenuj swój NN za pomocą zestawu danych treningowych i parametru strojenia za pomocą zestawu danych walidacji krzyżowej.

Wreszcie możesz użyć zestawu danych testowych do oceny wydajności Twojej NN.

Upul
źródło