浅谈正则化

一、机器学习正则化

无论是机器学习还是深度学习,正则化都是一项关键的技术。其实现阶段,我们的模型都可以在训练集上去的比较好的效果,但我们的模型在测试集上的效果才是我们所关心的,因此正则化就显得尤为重要,正则化可以防止模型过拟合,增加鲁棒性。

总的来说,监督学习的核心原理就是如下公式 :

损失函数
该公式分为两部分, 前一项是经验最小化,后一项为正则项
经验最小化是为了极大程度的拟合训练数据,正则项则是为了防止过分拟合训练数据。机器学习中的正则项有L1正则和L2正则。
在聊这两个正则前,我们先说说L0正则。L0正则也就是矩阵中所有非0元素的个数,对于L0正则的理解就是希望参数矩阵W的大多数元素都为0,这样正则项就会很小。此时,可能会有人会说L1正则不就是在干这个事吗?这里面的原理,扯就一大堆,简答说:在机器学习中, L0和L1正则都可以实现矩阵的稀疏性,但在实践中,L1的泛化求解特征更好一些,所以人们大多使用L1正则而不是用L0正则。对于L1正则而言,L1范式就是矩阵中各个元素绝对值之和。至于为啥稀疏,稀疏的作用,主要是为了特征的选择和易于解释模型。
L1正则化
L2正则化

此时就会出现经常会问到的问题,为什么L1相对于L2会得到稀疏解?

角度1:

在这里插入图片描述

L2正则化项约束的解空间是一个圆形,那么它和等高线相交的地方不太容易出现在坐标轴上(也就是很多项为0的解)。
L1正则则不一样,它的解是一个多边形,菱角比较多,那么它和等高线相交的地方很容易是菱角(即很多w为0的地方)
角度2
从贝叶斯的角度看,这些所谓的正则项不就是说模型的预测的参数W是一个不确定的变量(也就是最后W的结果不是一个定值),那么这些不定值存在一个扰动,也就是后面的正则项。L2正则化对应模型参数W引入高斯先验,L1正则对应的模型参数为拉普拉斯先验

在这里插入图片描述
在这里插入图片描述

对于 高斯分布,W取0的位置,图像是平滑的,也就是说取0附近的概率和0差不多;
对于 拉普拉斯分布,W取0的位置,图像十分陡峭,也就是说取0附近的概率比0要小一些,导致取0的情况要多一些。

二、droupout

Dropout是指在深度网络训练中,以一定概率随机的临时丢弃部分神经元。是‘临时丢弃’,不是代表‘永久性失活’。由于是‘临时丢弃’,那么也就是说可能这神经元在本轮丢弃掉,但下一轮又重新参与训练。那么按照这个逻辑,每一轮的训练相当于一个模型,然后将所有模型融合在一起,每一轮模型之间没有联系,这不就是bagging的思想吗?对,就是类似于bagging的思想。由于随机的失活,droupout也就起到了正则化的效果。其实droupout的原理很好懂,但就是理解起来很困难。还有就是代码实现感觉很抽象。

下面就是关于dropout使用numpy实现的部分代码

##dropout前项传播
def forward_propagation_with_dropout(X, parameters, keep_prob = 0.5):
    np.random.seed(<
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值