2012-12-04 9 views
5

Prawdopodobnie jest to pytanie SSN 101 dotyczące przetwarzania wsadowego minimal. Google wydaje się nie mieć odpowiedzi. Wyszukiwanie tutaj również niczego nie przyniosło. Domyślam się, że jest gdzieś książka, która mówi: "rób to w ten sposób!" i po prostu nie czytałem tej książki.Sieć neuronowa - wybieranie danych dla każdej mini partii

Kodowanie sieci neuronowej w Pythonie (nie to, że język ma znaczenie). Próbuję dodać aktualizacje mini-partia zamiast pełnej partii. Czy konieczne jest wybranie każdej obserwacji raz dla każdej epoki? Mini-partie będą wartościami danych 1:10, 11:20, 21:30, itd., Więc wszystkie obserwacje są używane, i wszystkie są używane jeden raz.

Czy to jest prawidłowe, aby wybrać mini-losowo losowo z zestawu danych treningowych na podstawie prawdopodobieństwa? W rezultacie każda obserwacja może być użyta raz, wiele razy lub wcale w danej epoce. W przypadku 20 mini-partii na każdą epokę, każdy element danych będzie miał 5% szansy na wybranie dla dowolnej danej mini-partii. Mini partie byłyby wybierane losowo i losowo, ale około 1 z każdych 20 punktów danych znalazłoby się w każdej z 20 mini partii bez gwarancji selekcji.

Odpowiedz

2

Twoje pierwsze przypuszczenie jest poprawne. Najpierw wybierz losowo swój zestaw danych. Następnie za (powiedzmy) 20 mini-partia. Użyj: 1-20, potem 21-40, itd ... Tak więc użyty zostanie cały twój zestaw danych.

Ben nie mówi, że zestaw danych jest używany tylko raz. Zwykle musisz zrobić wiele epok na wszystkich zestawach danych, aby twoja sieć mogła się nauczyć poprawnie.

Mini-partia służy przede wszystkim do przyspieszenia procesu uczenia się.

7

Kilka wskazówek dotyczących treningu mini-serii:

Shuffle swoje próbki przed każdym epoki

Powód jest taki sam, jak, dlaczego losowo próbek w szkoleniu online: Inaczej sieci może po prostu zapamiętać kolejność, w której podajesz próbki.

Użyj ustaloną wielkość partii dla każdej partii i dla każdej epoce

Nie ma chyba także powód statystyczny, ale upraszcza wdrażanie, gdyż umożliwia korzystanie z szybkich implementacje mnożenie macierzy dla swoich obliczeniach. (Np BLAS)

Dostosować szybkość uczenia się do wielkości partii

Przy większych partiach będziesz musiał użyć mniejszej szybkości uczenia się, w przeciwnym razie ANN zwykle zbiegają się w kierunku minimum nieoptymalne. Zawsze skalowałem wskaźniki uczenia się o 1/sqrt (n), gdzie n jest wielkością partii. Należy pamiętać, że jest to tylko wartość empiryczna z eksperymentów.

+0

Dobra porada dotycząca tasowania próbki przed każdą epoką. – user791770

Powiązane problemy