Istnieje szereg pytań, które należy zadać:
- czy masz odpowiednią liczbę neuronów w każdej warstwie
- czy korzystasz z odpowiednich rodzajów funkcji przesyłania?
- czy używasz odpowiedniego rodzaju algorytmu uczenia się?
- czy masz wystarczająco dużą próbkę?
- czy możesz potwierdzić, że twoje próbki mają ze sobą odpowiednie relacje, aby uzyskać informacje? (niepotrzebne, o odpowiednich wymiarach itp.)
Co możesz dać na drodze efemeryd? Czy możesz nam powiedzieć coś o naturze danych?
Możesz zrobić wzmocnione gradientem drzewo sieci neuronowych.
Zapytałeś, co się stanie, jeśli przestaniesz wcześnie.
Możesz spróbować sam. Uruchom 300x, gdy zaczynasz od losowo zainicjowanych wag, a następnie zatrzymaj się na określonej liczbie iteracji, powiedzmy 100. W tym momencie obliczyć błąd zespołu, błąd podzbioru szkolenia i błąd zestawu testowego. Powtarzać. Po uzyskaniu 300 wartości określających błąd można uzyskać obraz rozkładu błędów, biorąc pod uwagę 100 iteracji uczenia się. Jeśli chcesz, możesz następnie wypróbować ten rozkład w kilku innych wartościach uczenia się. Sugeruję iteracje 200, 500 i 1000. To da ci wyobrażenie o tym, jak twój SNR zmienia się w czasie. Wykres SNR vs iteracja może dać ci wyobrażenie o „klifach” lub „wystarczająco dobrym”. Czasami są klify, w których zawodzi błąd. Czasami błąd jest akceptowalny w tym momencie.
System potrzebuje „względnie prostych” danych lub „całkiem niezłego” szczęścia, aby system stale zbierał się w mniej niż 100 iteracjach. Oba nie dotyczą powtarzalności ani nie są uogólnialne.
Dlaczego myślisz w kategoriach zbieżności wag, a nie błędu poniżej określonego progu. Czy słyszałeś kiedyś o paradoksie głosowania? ( link ) Kiedy masz cykliczne interakcje w swoim systemie (takie jak informacje zwrotne w sieciach neuronowych), możesz mieć paradoksy głosowania - zmiany powiązane. Nie wiem, czy same wagi są wystarczającym wskaźnikiem konwergencji sieci.
Możesz myśleć o ciężarach jako o przestrzeni. Ma więcej niż 3 wymiary, ale wciąż jest przestrzenią. W „środku ciężkości” tej przestrzeni znajduje się region „najlepiej dopasowany”. Daleko od środka ciężkości jest mniej dobre dopasowanie. Możesz myśleć o bieżącym ustawieniu swoich ciężarów jako o pojedynczym punkcie w tej przestrzeni.
Teraz nie wiesz, gdzie właściwie jest „dobro”. To, co masz, to lokalny „stok”. Możesz wykonać zniżanie gradientu w kierunku lokalnego „lepszego”, biorąc pod uwagę, gdzie jest teraz twój punkt. Nie mówi ci „uniwersalny” lepiej, ale lokalny jest lepszy niż nic.
Zaczynasz iterować, idąc w dół w kierunku doliny lepszości. Iterujesz, dopóki nie pomyślisz, że skończyłeś. Może wartość twoich ciężarów jest duża. Może odbijają się wszędzie. Może obliczenia „trwają zbyt długo”. Chcesz to zrobić
Skąd więc wiesz, czy to, gdzie jesteś, jest „wystarczająco dobre”?
Oto szybki test, który możesz wykonać:
Weź 30 jednolitych losowych podzbiorów danych (na przykład kilka procent danych) i ponownie przeszkol w nich sieć. Powinno być znacznie szybciej. Obserwuj, jak długo trwa ich konwergencja i porównaj go z historią zbieżności dużego zestawu. Przetestuj błąd sieci dla wszystkich danych w tych podzbiorach i zobacz, jak ten rozkład błędów wypada w porównaniu z dużym błędem. Teraz zwiększ rozmiary podzbiorów do 5% danych i powtórz. Zobacz, czego Cię to uczy.
Jest to wariacja na temat optymalizacji roju cząstek (patrz odnośnik) wzorowana na tym, jak pszczoły miodne podejmują decyzje na podstawie badań.
Zapytałeś, co się stanie, jeśli wagi się nie zbiegną.
Sieci neuronowe są jednym narzędziem. Nie są jedynym narzędziem. Są inni. Chciałbym użyć jednego z nich.
Pracuję w kategoriach kryteriów informacyjnych, więc patrzę zarówno na wagi (liczbę parametrów), jak i na błąd. Możesz spróbować jednego z nich.
Istnieje kilka rodzajów przetwarzania wstępnego, które mogą być przydatne. Wyśrodkuj i skaluj. Obracaj za pomocą głównych komponentów. Jeśli spojrzysz na wartości własne w głównych komponentach, możesz użyć reguł wykresu skree do oszacowania wymiaru danych. Zmniejszenie wymiaru może poprawić konwergencję. Jeśli wiesz coś na temat „fizyki leżącej u podstaw”, możesz wygładzić lub przefiltrować dane w celu usunięcia szumu. Czasami konwergencja dotyczy hałasu w systemie.
Uważam, że idea wykrywania skompresowanego jest interesująca. Może umożliwić radykalne podpróbkowanie niektórych systemów bez utraty uogólnienia. Przyjrzałbym się niektórym statystykom ponownego próbkowania bootstrap i rozkładom twoich danych, aby ustalić, czy i na jakim poziomie podpróbkowania zestaw szkoleniowy staje się reprezentatywny. To daje ci pewną miarę „zdrowia” twoich danych.
Czasami dobrze, że się nie zbiegają
Czy słyszałeś kiedyś o paradoksie głosowania? Możesz myśleć o tym jak o większej liczbie kuzynów do dwukierunkowego impasu. To jest pętla. W paradoksie głosowania dla 2 osób pierwsza osoba chce kandydata „A”, a druga kandydata „B” (lub nie-A lub podobnego). Ważną częścią jest to, że możesz myśleć o tym jak o pętli.
Pętle są ważne w sieciach neuronowych. Sprzężenie zwrotne. Rekurencja Dzięki temu perceptron był w stanie rozwiązać problemy podobne do XOR. Tworzy pętle, a czasami pętle mogą zachowywać się jak paradoks głosowania, w którym będą się zmieniać wagi, jeśli będziesz miał nieskończoną liczbę iteracji. Nie są przeznaczone do zbieżności, ponieważ to nie indywidualna waga ma znaczenie, ale interakcja ciężarów w pętli.
Uwaga:
Problemem może być użycie tylko 500 iteracji. Miałem NN, gdzie 10 000 iteracji było ledwo wystarczające. Liczba iteracji, aby być „wystarczającą”, zależy, jak już wskazałem, od danych, topologii NN, funkcji przesyłania węzłów, funkcji uczenia / szkolenia, a nawet sprzętu komputerowego. Musisz dobrze zrozumieć, w jaki sposób wszystkie one wchodzą w interakcję z twoją iteracją, zanim powiesz, że było „wystarczająco” lub „zbyt wiele” iteracji. Należy również wziąć pod uwagę inne kwestie, takie jak czas, budżet i to, co chcesz zrobić z NN po zakończeniu szkolenia.
Chen, RB, Chang, SP, Wang, W. i Wong, WK, (2011, wrzesień). Optymalne projekty eksperymentalne za pomocą metod optymalizacji roju cząstek (przedruk), Źródło: 25 marca 2012 r., Http://www.math.ntu.edu.tw/~mathlib/preprint/2011-03.pdf