TensorFlow学习记录:正则化

本文介绍了正则化在避免过拟合中的作用,特别是L1和L2正则化。L1正则化通过产生稀疏权重矩阵帮助选择重要特征,而L2正则化通过使权重接近0防止过拟合。TensorFlow提供l1_regularizer和l2_regularizer函数用于实现正则化,其中scale参数控制惩罚力度。
摘要由CSDN通过智能技术生成

一般情况下,在机器学习中,不管是分类还是回归任务,为了不因特征过多而导致过拟合,一般通过减少特征或者惩罚不重要特征的权重来缓解这个问题。

正则化(Regularization)是我们为了避免过拟合问题常常采用的一种方法,其核心思想就是在损失函数中加入被称为正则化的惩罚。这样我们就可以筛选出最有效的特征,较少特征权重,防止过拟合。

假设模型在训练集上的损失函数为 J ( w ) J(w) J(w)(注意,这里 w w w表示的是整个神经网络中所有的参数,包括边上的权重w和偏置b),那么我们在进行梯度下降时不是直接优化 J ( w ) J(w) J(w),而是优化 J ( w ) + λ R ( w ) J(w)+\lambda R(w) J(w)+λR(w)

R ( w ) R(w) R(w)就是要在损失函数中加入的正则化项,它通过对权重参数求解范数的方式对模型的复杂度进行了刻画(一般而言,权重w决定了模型的复杂程度)。 λ \lambda λ是提前挑选的值,控制我们偏好小范数权重的程度(越大的 λ \lambda λ偏好范数越小的权重)。

常用的范数项有L0范数,L1范数,L2范数。

  • L0范数:向量中非零元素的个数。
  • L1范数:向量中所有数的绝对值之和。
  • L2范数:向量中所有数的平方和再开平方。

下面是L1正则化和L2正则化的作用:

  • L1正则化可以产生稀疏权重矩阵,稀疏权重矩阵用于选择有用的特征,过滤掉没用的特征。
  • L2正则化会让权重尽可能地小(接近于0),权重值小的模型可以适应各种偏移较大的数据集,从而防止过拟合。

至于为什么L1正则化可以产生稀疏权重矩阵,L2正则化可以防止过拟合,这篇文章讲得挺好的。点击这里

TensorFlow提供了计算L1正则化和L2正则化的函数tf.contrib.layers.l1_regularizer(scale,scope=None)和tf.contrib.layers.l2_regularizer(scale,scope=None)。其中,参数scope就是上面所提到的 λ \lambda

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值