Регуляризатор активности работает как функция вывода сети и в основном используется для регуляризации скрытых единиц, в то время как weight_regularizer, как следует из названия, работает с весами, заставляя их распадаться. В принципе, вы можете выразить потерю регуляризации как функцию output ( activity_regularizer
) или весов ( weight_regularizer
).
Новые kernel_regularizer
заменяет weight_regularizer
- хотя из документации это не очень понятно.
Из определения kernel_regularizer
:
kernel_regularizer: функция регуляризатора, применяемая к kernel
матрице весов (см. регуляризатор).
И activity_regularizer
:
activity_regularizer: функция регуляризатора, применяемая к выходу слоя (его «активация»). (см. регуляризатор).
Важное изменение : обратите внимание, что в activity_regularizer есть ошибка, которая была исправлена только в версии 2.1.4 Keras (по крайней мере, с бэкэндом Tensorflow). Действительно, в более старых версиях функция регуляризатора активности применяется ко входу уровня, а не к выходу (фактическая активация слоя, как предполагалось). Так что будьте осторожны, если вы используете старую версию Keras (до 2.1.4), регуляризация активности, вероятно, может работать не так, как задумано.
Вы можете увидеть коммит на GitHub
Пять месяцев назад Франсуа Шоле предоставил исправление для регулятора активности, которое затем было включено в Keras 2.1.4.
kernel_regularizer
заменеweight_regularizer
?