Regulator aktywności działa jako funkcja wyjścia sieci i jest używany głównie do regulowania ukrytych jednostek, podczas gdy weight_regularizer, jak sama nazwa mówi, działa na odważnikach, powodując ich rozpad. Zasadniczo można wyrazić stratę regularyzacyjną jako funkcję wyniku ( activity_regularizer
) lub wag ( weight_regularizer
).
Nowy kernel_regularizer
zastępuje weight_regularizer
- chociaż nie jest to bardzo jasne z dokumentacji.
Z definicji kernel_regularizer
:
kernel_regularizer: Funkcja regulatora zastosowana do kernel
macierzy wag (zobacz regularyzator).
Oraz activity_regularizer
:
activity_regularizer: Funkcja regularyzatora zastosowana na wyjściu warstwy (jej „aktywacja”). (patrz regularyzator).
Ważna zmiana : Zwróć uwagę, że w pliku activity_regularizer jest błąd , który został naprawiony tylko w wersji 2.1.4 Keras (przynajmniej z zapleczem Tensorflow). Rzeczywiście, w starszych wersjach funkcja regulatora aktywności jest stosowana na wejściu warstwy, zamiast być stosowana na wyjściu (rzeczywiste aktywacje warstwy, zgodnie z zamierzeniami). Dlatego uważaj, jeśli używasz starszej wersji Keras (sprzed 2.1.4), regularyzacja aktywności może prawdopodobnie nie działać zgodnie z przeznaczeniem.
Możesz zobaczyć zatwierdzenie na GitHub
Pięć miesięcy temu François Chollet dostarczył poprawkę do regulatora aktywności, który został następnie włączony do Keras 2.1.4
kernel_regularizer
wymianyweight_regularizer
?