Keras 2 API 文档 / 层 API / 层权重正则化器

层权重正则化器

[source] (来源)

L1

tf_keras.regularizers.L1(l1=0.01, **kwargs)

应用 L1 正则化惩罚的正则化器。

L1 正则化惩罚计算如下:loss = l1 * reduce_sum(abs(x))

L1 可以作为字符串标识符传递给层

>>> dense = tf.keras.layers.Dense(3, kernel_regularizer='l1')

在这种情况下,使用的默认值是 l1=0.01

参数

  • l1:浮点数;L1 正则化因子。

[source] (来源)

L2

tf_keras.regularizers.L2(l2=0.01, **kwargs)

应用 L2 正则化惩罚的正则化器。

L2 正则化惩罚计算如下:loss = l2 * reduce_sum(square(x))

L2 可以作为字符串标识符传递给层

>>> dense = tf.keras.layers.Dense(3, kernel_regularizer='l2')

在这种情况下,使用的默认值是 l2=0.01

参数

  • l2:浮点数;L2 正则化因子。

[source] (来源)

L1L2

tf_keras.regularizers.L1L2(l1=0.0, l2=0.0)

同时应用 L1 和 L2 正则化惩罚的正则化器。

L1 正则化惩罚计算如下:loss = l1 * reduce_sum(abs(x))

惩罚计算如下:loss = l1 * reduce_sum(abs(x)) + l2 * reduce_sum(square(x))

L1L2 可以作为字符串标识符传递给层

>>> dense = tf.keras.layers.Dense(3, kernel_regularizer='l1_l2')

在这种情况下,使用的默认值是 l1=0.01l2=0.01

参数

  • l1:浮点数;L1 正则化因子。
  • l2:浮点数;L2 正则化因子。

[source] (来源)

OrthogonalRegularizer

tf_keras.regularizers.OrthogonalRegularizer(factor=0.01, mode="rows")

鼓励输入向量相互正交的正则化器。

它可以应用于矩阵的行 (mode="rows") 或列 (mode="columns")。当应用于形状为 (input_dim, units)Dense 核时,行模式将使特征向量(即输出空间的基础)相互正交。

参数

  • factor:浮点数。正则化因子。正则化惩罚将与 factor 乘以输入(如果 mode="rows" 是行,如果 mode="columns" 是列)的 L2 归一化向量之间的点积的平均值成比例,但不包括每个向量与自身的点积。默认为 0.01。
  • mode:字符串,可以是 {"rows", "columns"} 中的一个。默认为 "rows"。在行模式下,正则化效果旨在使输入的行相互正交。在列模式下,它旨在使输入的列相互正交。

示例

>>> regularizer = tf.keras.regularizers.OrthogonalRegularizer(factor=0.01)
>>> layer = tf.keras.layers.Dense(units=4, kernel_regularizer=regularizer)