Класс ActivityRegularization
Класс ActivityRegularization применяет регуляризацию к выходу (активации) предыдущего слоя.
Он добавляет к функции потерь штраф, пропорциональный абсолютной величине (L1) или квадрату (L2) выходных значений.
Первым параметром передается коэффициент регуляризации L1, вторым - коэффициент L2.
Если параметр равен нулю, соответствующий тип штрафа не применяется.
Синтаксис
tf.keras.layers.ActivityRegularization(l1=0.0, l2=0.0)
Пример
Давайте создадим слой ActivityRegularization с L1-штрафом и применим его к тензору:
import tensorflow as tf
layer = tf.keras.layers.ActivityRegularization(l1=0.01)
t = tf.constant([[1.0, -2.0, 3.0]])
res = layer(t)
print(res)
Результат выполнения кода:
tf.Tensor([[ 1. -2. 3.]], shape=(1, 3), dtype=float32)
Пример
Давайте создадим слой с L2-регуляризацией и проверим, как изменится выход:
import tensorflow as tf
layer = tf.keras.layers.ActivityRegularization(l2=0.02)
t = tf.constant([[1.0, -2.0, 3.0]])
res = layer(t)
print(res)
Результат выполнения кода:
tf.Tensor([[ 1. -2. 3.]], shape=(1, 3), dtype=float32)
Пример
Давайте используем ActivityRegularization в составе модели Keras для регуляризации полносвязного слоя:
import tensorflow as tf
model = tf.keras.Sequential([
tf.keras.layers.Dense(4, activation='relu', input_shape=(3,)),
tf.keras.layers.ActivityRegularization(l1=0.001, l2=0.001),
tf.keras.layers.Dense(1)
])
model.compile(optimizer='adam', loss='mse')
print(model.summary())
Результат выполнения кода:
"Model: \"sequential\"
_________________________________________________
Layer (type) Output Shape Param #
=================================================
dense (Dense) (None, 4) 16
activity_regularization (Ac (None, 4) 0
tivityRegularization)
dense_1 (Dense) (None, 1) 5
=================================================
Total params: 21 (84.00 B)
Trainable params: 21 (84.00 B)
Non-trainable params: 0 (0.00 B)
_________________________________________________"
Смотрите также
-
слой
Dropout,
который случайно отключает нейроны для борьбы с переобучением -
слой
Dense,
который реализует полносвязный слой -
слой
BatchNormalization,
который нормализует активации слоя -
слой
LayerNormalization,
который выполняет нормализацию по слою