O regularizador de atividade funciona em função da saída da rede, e é usado principalmente para regularizar unidades ocultas, enquanto o weight_regularizer, como o nome já diz, atua sobre os pesos, fazendo-os decair. Basicamente, você pode expressar a perda de regularização em função da saída ( activity_regularizer
) ou dos pesos ( weight_regularizer
).
O novo kernel_regularizer
substitui weight_regularizer
- embora não esteja muito claro na documentação.
Da definição de kernel_regularizer
:
kernel_regularizer: função regularizer aplicada à kernel
matriz de pesos (veja regularizer).
E activity_regularizer
:
activity_regularizer: Função regularizer aplicada à saída da camada (sua "ativação"). (ver regularizador).
Edição importante : observe que há um bug no activity_regularizer que só foi corrigido na versão 2.1.4 do Keras (pelo menos com o back-end do Tensorflow). Na verdade, nas versões mais antigas, a função de regularizador de atividade é aplicada à entrada da camada, em vez de ser aplicada à saída (as ativações reais da camada, conforme pretendido). Portanto, tome cuidado se você estiver usando uma versão mais antiga do Keras (anterior à 2.1.4), a regularização de atividades provavelmente não funcionará como esperado.
Você pode ver o commit no GitHub
Há cinco meses, François Chollet forneceu uma correção para o regularizador de atividades, que foi então incluído no Keras 2.1.4
kernel_regularizer
substituiçãoweight_regularizer
?