学习笔记14:L2正则化和丢弃(dropout)

本文介绍了正则化技术,包括L0、L1和L2正则化,用于防止模型过拟合。L1正则化常作为L0正则化的替代,而L2正则化通过惩罚参数的平方和来减少模型复杂度。此外,还讲解了Dropout方法,通过随机丢弃神经网络中的部分单元以提高泛化能力。在TensorFlow中,可以使用dropout函数实现这一过程。
摘要由CSDN通过智能技术生成

训练模型的过拟合会降低模型的泛化能力,采用正则化的方法解决过拟合的问题。

正则化的原理是在损失函数中增加一个惩罚项来限制过大的权重。

L0正则化的值是模型参数中非零参数的个数。

L1正则化表示各个参数绝对值之和。

L2正则化标识各个参数的平方的和的开方值。

3、L0正则化

根据上面的讨论,稀疏的参数可以防止过拟合,因此用L0范数(非零参数的个数)来做正则化项是可以防止过拟合的。

从直观上看,利用非零参数的个数,可以很好的来选择特征,实现特征稀疏的效果,具体操作时选择参数非零的特征即可。但因为L0正则化很难求解,是个NP难问题,因此一般采用L1正则化。L1正则化是L0正则化的最优凸近似,比L0容易求解,并且也可以实现稀疏的效果。

4、L1正则化

L1正则化在实际中往往替代L0正则化,来防止过拟合。在江湖中也人称Lasso。

L1正则化之所以可以防止过拟合,是因为L1范数就是各个参数的绝对值相加得到的,我们前面讨论了,参数值大小和模型复杂度是成正比的。因此复杂的模型,其L1范数就大,最终导致损失函数就大,说明这个模型就不够好。

5、L2正则化

L2正则化可以防止过拟合的原因和L1正则化一样,只是形式不太一样。


L2范数是各参数的平方和再求平方根,我们让L2范数的正则项最小,可以使W的每个元素都很小,都接近于0。但与L1范数不一样的是,它不会是每个元素为0,而只是接近于0。越小的参数说明模型越简单,越简单的模型越不容易产生过拟合现象。

L2正则化江湖人称Ridge,也称“岭回归”


Dropout

Dropout的思想其实非常简单粗暴:对于网络的每一层,随机的丢弃一些单元。如下图所示:


关于为什么dropout能够减轻过拟合,ng给出了两个比较直观的解释:

  • 正是因为在每一层随机的丢弃了一些单元,所以相当于训练出来的网络要比正常的网络小的多,在一定程度上解释了避免过拟合的问题。
  • 如下图所示的一个简单单层网络,因为每一个特征都有可能被丢弃,所以整个网络不会偏向于某一个特征(把某特征的权重的值赋的很大),会把每一个特征的权重都赋的很小,这就有点类似于L2正则化了,能够起到减轻过拟合的作用。 
    单层网络
这个方法看起来有点疯狂,但是他确实是有效的。下面开始从技术实现方面来看下dropout正则项,这里最重要的一个参数就是  k
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值