tensorflow中正则化惩罚l1_regularizer与l2_regularizer的作用机制与区别

在tensorflow中,我们经常会用到正则化项,比如kernel_regularizer、bias_regularizer和activity_regularizer。
对于网络层𝑦=𝑊𝑥+𝑏 ,他们的作用机制是相似的,区别是作用的对象不同,kernel_regularizer作用于权重𝑊,bias_regularizer作用于𝑏,而activity_regularizer则作用于该层的输出𝑦。
这里以kernel_regularizer为例,来简单介绍l1_regularizer与l2_regularizer的作用机制。首先看他们的定义公式:
𝐿2即为𝑤^2
𝐿1即|𝑤|
其中𝑤为权重矩阵,那么它们对应的导数为2𝑤 和𝑠𝑖𝑔𝑛(𝑤),设网络的学习率为𝑎,那么𝐿2对应的梯度为𝑎𝑤(为了梯度下降的方便,𝐿2正则化会除以2将求导得到的系数2约去,所以梯度的系数为𝑎),𝐿1对应的则为𝑎⋅𝑠𝑖𝑔𝑛(𝑤)。
在一次梯度更新过程中,𝐿2正则化的梯度更新公式为:
𝛿𝑤=𝑢−2𝑝𝑤
其中𝑢代表这一层的输入,也就是上一层的输出,𝑝是𝐿2正则化惩罚设置的权重参数。我们假设𝑢与𝑤均为正值,那么梯度的正负值将由下式决定:
𝑠𝑖𝑔𝑛(𝛿𝑤)=𝑠𝑖𝑔𝑛(𝑢/2𝑝−𝑤)
这就导致当𝑤小于𝑢/2𝑝时,梯度更新会使得𝑤变大,而𝑤大于𝑢/2𝑝时,又会使得𝑤变小,从而得到一个较平滑的权重矩阵,也就是说会倾向于认为每个点都有效。
而𝐿1的梯度更新公式为:
𝛿𝑤=𝑢−𝑝
梯度的正负值为:
𝑠𝑖𝑔𝑛(𝛿𝑤)=𝑠𝑖𝑔𝑛(𝑢−𝑝)
这时的𝑝就充当了一个阀值,当 𝑢 小于 𝑝, 𝐿1 正则化将使权重变小,当 𝑢 大于 𝑝, 𝐿1 正则化将使权重增大。所以𝐿1 正则化会倾向于产生少量特征,即权重矩阵中有非常多的0值。

参考资料:https://stats.stackexchange.com/questions/383310/difference-between-kernel-bias-and-activity-regulizers-in-keras

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
TensorFlow正则化是一种常用的技术,用于减少模型的过拟合并提高泛化能力。正则化通过向模型的损失函数添加正则化项来实现,常见的正则化方法有L1正则化L2正则化L1正则化会使模型的权重稀疏化,即使得一些权重为0,从而实现特征选择的效果。L1正则化可以通过tf.keras.regularizers.L1()函数来实现。 L2正则化会使模型的权重趋向于较小的值,可以有效地减小权重的范围。L2正则化可以通过tf.keras.regularizers.L2()函数来实现。 在TensorFlow,我们可以在模型的层定义使用这两种正则化方法,例如: ```python from tensorflow.keras import layers, regularizers model = tf.keras.Sequential([ layers.Dense(64, activation='relu', kernel_regularizer=regularizers.l2(0.01)), layers.Dense(64, activation='relu', kernel_regularizer=regularizers.l2(0.01)), layers.Dense(10, activation='softmax') ]) ``` 在上述代码,使用了L2正则化方法,其`kernel_regularizer=regularizers.l2(0.01)`表示对权重进行L2正则化,并设置正则化系数为0.01。 除了在层定义使用正则化方法,还可以通过在损失函数加入正则化项来实现正则化,例如: ```python loss = original_loss + tf.reduce_sum(model.losses) ``` 其,`model.losses`表示模型所有层的正则化项的集合。 通过使用正则化,可以在一定程度上控制模型的复杂度,提高泛化能力,并减少过拟合的风险。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值