Jak skutecznie modelować sieć neuronową?


13

Jaki powinien być stosunek liczby obserwacji do liczby zmiennych? Jak wykryć nadmierne dopasowanie w modelu sieci neuronowej i jakie są sposoby uniknięcia nadmiernego dopasowania? Jeśli chcę przeprowadzić klasyfikację za pomocą sieci neuronowej, czy klasy powinny mieć równą częstotliwość? Proszę pomóż mi.


1
Czy naprawdę potrzebujesz NN? Ta metoda jest raczej uważana za przestarzałą (częściowo dlatego, że bardzo trudno jest ogólnie odpowiedzieć na pytania).

1
@mbq: może to powinno być osobne pytanie, ale czy mógłbyś rozwinąć swoje stwierdzenie, że sieci neuronowe są uważane za przestarzałe? (i przez kogo?)
naught101

1
@ naught101 To jest komentarz z 2010 roku ... W dzisiejszych czasach niestety mamy renesans tego szaleństwa, więc będziemy musieli poczekać kilka lat, aby NN znów się zdezaktualizowały (;

1
@mbq: to nie odpowiada na moje pytanie. Ale może to robi: stackoverflow.com/questions/683124/neural-networks-obsolete
naught101

Odpowiedzi:


25

Rada, której udzieliłbym, jest następująca:

  1. Wyczerp możliwości modelu liniowego (np. Regresji logistycznej) przed przejściem do sieci neuronowych, zwłaszcza jeśli masz wiele cech i niezbyt wiele obserwacji. W przypadku wielu problemów sieć neuronowa nie przewyższa prostych klasyfikatorów liniowych, a jedynym sposobem, aby dowiedzieć się, czy twój problem dotyczy tej kategorii, jest wypróbowanie jej i zobaczenie.

  2. Zbadaj metody jądra (np. Maszyny wektorów wsparcia (SVM), regresja logistyczna jądra), najpierw modele procesów gaussowskich. W obu przypadkach nadmierne dopasowanie jest skutecznie kontrolowane przez dostrajanie niewielkiej liczby hiperparametrów. W przypadku metod jądra jest to często wykonywane przez walidację krzyżową, w przypadku modeli procesu Gaussa jest to wykonywane przez maksymalizację marginalnego prawdopodobieństwa (znanego również jako „dowód” Bayesa dla modelu). Odkryłem, że o wiele łatwiej jest uzyskać rozsądny model przy użyciu tych metod niż z sieciami neuronowymi, ponieważ sposoby unikania nadmiernego dopasowania są o wiele prostsze.

  3. Jeśli naprawdę chcesz korzystać z sieci neuronowej, zacznij od (znormalizowanej) sieci z funkcjami radialnymi, a nie sieci typu feederward Multilayer Perceptron (MLP).

  4. Jeśli używasz MLP, użyj regularyzacji. Jeśli to zrobisz, będzie mniej wrażliwy na wybory dotyczące architektury, takie jak optymalizacja liczby ukrytych jednostek. Zamiast tego wystarczy wybrać dobrą wartość parametru regularyzacji. Bayesowska „struktura dowodów” MacKaya zapewnia dobrą metodę ustawiania parametru regularyzacji. Jeśli zastosujesz regularyzację, liczba obserwacji i liczba zmiennych stanie się znacznie mniejszym problemem.

Aby wykryć nadmierne dopasowanie, wystarczy przeprowadzić weryfikację krzyżową w celu przetestowania wydajności generalizacji.

Jeśli chodzi o klasy o równych częstotliwościach, należy pamiętać, że jeśli trenujesz model ze zrównoważonym zestawem treningowym, ale klasy nie są zrównoważone w danych operacyjnych, wówczas model najprawdopodobniej zaniża klasę mniejszości. Jeśli używasz klasyfikatora probabilistycznego, takiego jak regresja logistyczna lub sieć neuronowa, zawsze możesz skorygować oszacowane prawdopodobieństwa, aby uwzględnić to po treningu. Jeśli twój zestaw danych jest bardzo niezrównoważony, zaleciłbym różnicowe ważenie wzorców z klas dodatnich i ujemnych, z współczynnikami ważenia wybranymi przez walidację krzyżową.

Jednakże, gdy klasy są bardzo niezrównoważone, zwykle fałszywie ujemne i fałszywie dodatnie błędy mają różne koszty (np. W medycznych badaniach przesiewowych fałszywie ujemny jest znacznie gorszy niż fałszywie dodatni). Tak często wszystko, co musisz zrobić, to uwzględnić koszty błędnej klasyfikacji w funkcji błędu używanej do szkolenia sieci.

Jeśli jesteś użytkownikiem MATLAB (tak jak ja), zdecydowanie mogę polecić oprogramowanie NETLAB (Ian Nabney i Chris Bishop) lub oprogramowanie, które jest dołączone do książki Gaussian Process for Machine Learning autorstwa Rasmussena i Williamsa. Mogę też zdecydowanie polecić książkę „Sieci neuronowe do rozpoznawania wzorców” autorstwa Chrisa Bishopa każdemu, kto zaczyna od sieci neuronowych. Jest to genialna książka, która obejmuje materiał z wielką jasnością i minimalnym poziomem matematyki wymaganym do prawdziwego zrozumienia tego, co robisz, a większość z nich jest zaimplementowana w oprogramowaniu NETLAB (które może również działać pod Octave).

HTH

PS Najlepszym sposobem modelowania za pomocą sieci neuronowej jest prawdopodobnie zastosowanie podejścia bayesowskiego opartego na Hybrid Monte Carlo (HMC), opracowanego przez Radford Neal. Zasadniczo problemy zaczynają się w modelowaniu, gdy próbujesz zoptymalizować niektóre parametry i kończy się to zbytnim dopasowaniem. Najlepszym rozwiązaniem jest nigdy niczego nie optymalizować i zamiast tego marginalizować (integrować) ponad parametry. Niestety tej integracji nie można przeprowadzić analitycznie, dlatego zamiast tego należy użyć metod opartych na próbkowaniu. Jest to jednak (a) kosztowne obliczeniowo i (b) trochę „czarnej sztuki” i wymagało głębokiego zrozumienia i doświadczenia.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.