过拟合解决方法之L2正则化和Dropout

七月 上海 | 高性能计算之GPU CUDA培训

7月27-29日 640?wx_fmt=jpeg 三天密集式学习  快速带你入门 阅读全文 >


正文共1161个字,17张图,预计阅读时间10分钟。


什么是过拟合?


    一幅图胜千言万语

640?wx_fmt=png

欠拟合


640?wx_fmt=png

正确的拟合


640?wx_fmt=png

过拟合


过拟合(overfitting):就是对数据的过度严格的拟合。这个经常出现在分类问题上。


怎么解决过拟合呢?


L2正则化

逻辑回归 中L2正则化的过程:

L2正则化是最常用的正则化。


我们先求出代价方程J(w,b)为:


640?wx_fmt=png

代价方程


L2正则化,就是在代价方程后面加个lambda/(2m)参数W范数的平方,下标2表示L2正则化的意思,2是为了接下来的求导好化简而写的,就是个比值而已:


640?wx_fmt=png

L2正则化


其中||w||^2是:


640?wx_fmt=png

||w||^2


但是为啥参数W都用上了,为啥不+bias b:


640?wx_fmt=png


因为,b也是一个参数,而且是一个数,而W是很多个参数,感觉少了b也没啥所以一般不写上b。


这里的lambda是超级参数,跟学习率一样,需要我们自己调。


神经网络L2回归的过程

神经网络其实就是有大于等于1个隐藏层,也就是比逻辑回归多了参数而已:


640?wx_fmt=png

代价函数

其中||W||为:

640?wx_fmt=png


注:L-1=上一层的大小,L是当前层的大小


该||W||矩阵范式被称为Frobenius norm 即弗罗贝尼乌斯范数,表示为(||W||_F)^2:


640?wx_fmt=png

2->F


这个矩阵L2范式,也叫弗罗贝尼乌斯范数。


求导:

没有L2正则化以后,导数是这样的,[from backprop: 从反馈传播求得的]:

640?wx_fmt=png


而现在有了L2正则以后,就变成了:


640?wx_fmt=png


其中可以看出和上面的原本的W^[L]比,缩小成了下面的倍数(其中alpha>1):


640?wx_fmt=png


这个W的缩小变化使得L2正则化被称为“权重衰退”。

有L2正则化就有L1正则化,但是为啥不用呢?


    L1正则化的||W||为:

640?wx_fmt=png

L1正则化||W||


L1的正则化的||W||会使得W最终变得稀疏,也就是有很多0出现,有助于压缩参数和减小内存,但这也不是我们用L1正则化的目的,不是为了压缩模型。(这个斜体加粗的话我还没弄懂为啥会出现很多0,知道的小伙伴分享下)


Dropout


 Dropout有很多,其中Inverted Dropout 反向随机失活最常用。根据这个翻译的意思,也能大概猜出来Inverted Dropout的意思,也就是从后面随机使一些当前层的神经单元失效。


上图说话:


没Dropout前的网络为:

640?wx_fmt=png


开始Dropout操作:


640?wx_fmt=png


注释:红叉的单元是被去除的,也就是该单元权重置为0。


这个dropout操作是从每一层开始的,首先需要设置一个值,keep_prob,就是保留多少,范围0-1。这个例子很明显是0.5。然后在从后往前经过每一层,都把当前层随机流线keep_prob的比例,其他的单元的权重置为零。


代码模拟实现为:


640?wx_fmt=png


原文链接:https://www.jianshu.com/p/c1a334b1a9a6


查阅更为简洁方便的分类文章以及最新的课程、产品信息,请移步至全新呈现的“LeadAI学院官网”:

www.leadai.org


请关注人工智能LeadAI公众号,查看更多专业文章

640?wx_fmt=jpeg

大家都在看

640.png?

LSTM模型在问答系统中的应用

基于TensorFlow的神经网络解决用户流失概览问题

最全常见算法工程师面试题目整理(一)

最全常见算法工程师面试题目整理(二)

TensorFlow从1到2 | 第三章 深度学习革命的开端:卷积神经网络

装饰器 | Python高级编程

今天不如来复习下Python基础

  • 0
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值