Właśnie dowiedziałem się o regularyzacji jako podejściu do kontrolowania nadmiernego dopasowania i chciałbym włączyć ten pomysł do prostej implementacji propagacji wstecznej i perceptronu wielowarstwowego (MLP), które zestawiłem.
Obecnie, aby uniknąć nadmiernego dopasowania, sprawdzam krzyżowo i utrzymuję sieć z najlepszym wynikiem do tej pory na zestawie sprawdzania poprawności. Działa to OK, ale dodanie regularyzacji przyniosłoby mi korzyść w tym prawidłowym wyborze algorytmu i parametru regularyzacji sprawiłby, że moja sieć bardziej systematycznie zbierałaby się w modelu nienadmiarowym.
Wzór, który mam dla terminu aktualizacji (z kursu Coursera ML) jest podany jako aktualizacja partii, np. Dla każdej masy, po zsumowaniu wszystkich odpowiednich delt dla całego zestawu treningowego z propagacji błędów, lambda * current_weight
dodaje się korektę przed połączonym delta jest odejmowana na końcu partii, gdzie lambda
jest parametr regularyzacji.
Moja implementacja propagacji wstecznej wykorzystuje aktualizacje wag poszczególnych artykułów. Obawiam się, że nie mogę po prostu skopiować metody wsadowej, chociaż intuicyjnie wygląda mi to OK. Czy mniejszy termin regularyzacji na produkt również działa?
Na przykład, gdy lambda * current_weight / N
N jest rozmiarem zestawu treningowego - na pierwszy rzut oka wygląda to rozsądnie. Nie mogłem jednak znaleźć niczego na ten temat i zastanawiam się, czy to dlatego, że regularyzacja nie działa tak dobrze z aktualizacją dla poszczególnych elementów, czy nawet pod inną nazwą lub zmienioną formułą.