Jeśli mam splotową sieć neuronową (CNN), która ma około 1 000 000 parametrów, ile danych treningowych jest potrzebnych (zakładam, że wykonuję stochastyczne obniżanie gradientu)? Czy jest jakaś reguła?
Dodatkowe uwagi: Kiedy wykonałem stochastyczne opadanie gradientu (np. 64 łaty na 1 iterację), po ~ 10000 iteracjach dokładność klasyfikatora może osiągnąć z grubsza stałą wartość. Czy to oznacza, że niewiele danych jest potrzebnych? Jak dane od 100 do 1000 tysięcy.
Najważniejsze jest to, że próbki w twoich danych są dobrze rozłożone, ponieważ bez względu na to, ile masz danych, więcej danych zawsze będzie lepszych. W końcu, jeśli spróbujesz nauczyć się odróżniać zdjęcia kotów i psów, nie możesz oczekiwać, że Twój model będzie działał dobrze, jeśli tylko karmisz go obrazami kotów.
Jak sugeruje odpowiedź Kevin L. , warto rozważyć różnicę między błędem treningu a błędem testu. Jeśli dane testowe są niezależne od danych treningowych, daje to wskazówkę, jak dobrze twój model uogólnia dane niedostępne. Chciałbym dodać do tego fakt, że duża różnica między błędem treningu a błędem testowym mówi tylko, że twój model nie uogólnia się dobrze, tj. Przepełniasz dane treningowe. Więcej danych prawdopodobnie pomoże, ponieważ teraz sieć musi również modelować dodatkowe punkty danych, a zatem nie może już tak bardzo się do nich nadużywać. Warto jednak zmienić model, aby lepiej uogólniał. Ten rozdział doskonałej książki wyjaśnia, jakie rodzaje regularyzacji istnieją i jak można je stosować w sieciach, aby uzyskać lepszą generalizację.
Jeśli szukałeś bardziej ilościowej miary, niedawno znalazłem to pytanie na quora. Chodzi o auto-koder, ale myślę, że powinien on również dotyczyć twojego przykładu. Nie mam pojęcia, czy jest to poprawne (proszę dać mi znać), ale chciałbym uzasadnić, że na przykład w przypadku MNIST można argumentować, że próbujesz zmniejszyć obrazy maksymalnie o 28 * 28 * 8 * 10 000 = 62 720 000 bity entropia do dziesięciu klas w kodowaniu pojedynczym z 10 * 10 * 10 000 = 1 000 000 bitów entropii. Ponieważ interesuje nas tylko 1 000 000 bitów entropii na wyjściu, możemy powiedzieć, że przy 1 000 000 parametrów każdy parametr reprezentuje pojedynczy bit, który wynosi 1e-4 bity na próbkę. Oznacza to, że potrzebujesz więcej danych. Lub masz za dużo parametrów, ponieważ np. Przy 100 parametrach masz 10 000 bitów na parametr, a zatem 1 bit na próbkę. Jednak,
źródło
Inną metodą ogólnie stosowaną do ustalenia, czy sieć nauczyła się wystarczającej liczby funkcji, jest wizualizacja początkowych filtrów. Jeśli sieć jest dobrze wyszkolona, powinna wyświetlać filtr gładki. Filtr hałaśliwy ogólnie wskazuje, że sieć nie została wystarczająco przeszkolona lub że jest przeładowana. Aby uzyskać więcej informacji przeczytaj tę stronę .
źródło