专栏首页人工智能LeadAI过拟合解决方法之L2正则化和Dropout

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

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

什么是过拟合?

一幅图胜千言万语

欠拟合

正确的拟合

过拟合

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

怎么解决过拟合呢?

L2正则化

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

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

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

代价方程

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

L2正则化

其中||w||^2是:

||w||^2

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

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

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

神经网络L2回归的过程

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

代价函数

其中||W||为:

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

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

2->F

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

求导:

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

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

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

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

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

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

L1正则化||W||

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

Dropout

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

上图说话:

没Dropout前的网络为:

开始Dropout操作:

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

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

代码模拟实现为:

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

本文分享自微信公众号 - 人工智能LeadAI(atleadai)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2018-07-09

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • ResNet到底深不深?

    今年5月份的时候,Cornell University的几个人研究了ResNet,发现它所谓的“超深网络”只是个噱头,文章如下: Residual Networ...

    用户1332428
  • 学懂GAN的数学原理,让它不再神秘

    知乎上有个讨论,说学数学的看不起搞深度学习的。曲直对错不论,他们看不起搞深度学习的原因很简单,因为从数学的角度看,深度学习仅仅是一个最优化问题而已。比如,被炒的...

    用户1332428
  • 机器学习中如何解决过拟合

    机器学习中出现的非常频繁的问题:过拟合与规则化。我们先简单的来理解下常用的L0、L1、L2和核范数规则化。 监督机器学习问题无非就是"minimizeyour...

    用户1332428
  • 过拟合解决方法之L2正则化和Dropout

    什么是过拟合? 一幅图胜千言万语 ? 欠拟合 ? 正确的拟合 ? 过拟合 过拟合(overfitting):就是对数据的过度严格的拟合。这个经常出现在...

    zenRRan
  • MySQL InnoDB Cluster环境搭建和简单测试

    InnoDB Cluster初印象 记得MySQL Group Replicatioin 刚开始的时候,MySQL界很是轰动,等待了多年,终于有了官方的这...

    jeanron100
  • MySQL 8.0 安装部署3个注意事项

    墨墨导读:本文分享实际案例中MySQL8.0安装部署时最典型的3个问题,希望对大家有帮助。

    数据和云
  • python【第十二篇】Mysql基础

    数据库(Database)是按照数据结构来组织、存储和管理数据的仓库,每个数据库都有一个或多个不同的API用于创建,访问,管理,搜索和复制所保存的数据。我们也可...

    用户1432189
  • 使用这些不太常用的 CSS 属性,让我在前端布局效率上,又提高了一个层次!

    有很多CSS属性,有些人不了解,或者他们了解它们,但是忘记在需要时使用它们。其实,有时候我们用 JavaScript 来实某些交互,CSS 一个属性就能搞定了,...

    前端小智@大迁世界
  • 两个SAP UI5脚手架应用加载性能的比较

    加载一个只包含button控件的SAP UI5脚手架应用: http://localhost:3000/wt/

    Jerry Wang
  • OJ系统(ACM/NOI)的基本输入输出教程

    在介绍OJ系统之前,首先为大家介绍一下ACM: ACM原代表美国计算机协会,因其举办的ICPC即国际大学生程序设计竞赛而闻名全世界,此项赛事要求学生的在五小时内...

    编程范 源代码公司

扫码关注云+社区

领取腾讯云代金券