MLDS笔记:Generalization
1 泛化能力

用VC维来衡量一个模型的表达能力,比如2维线性模型的VC维为3。

在图1-2中,随便给啥训练数据该model都能learn起来。
从理论上来看,当2个model在训练数据上表现一样时,为了更好的泛化能力,应该选择表达能力更小的model。
这个结论是一定的吗?





神经网络自带regularization吗?

从图1-8可以看出,2到12层得到的线都是很平滑的。
如果让网络去拟合虚线,网络也是能够做到的,说明该网络有很大的模型表达能力,但是2到12层对应的线却没有形成虚线状。
可见神经网络没有我们想象的那么容易过拟合。
关于这点背后的原因,现在无最佳解答。一种说法是因为初始化在原点附近,梯度下降后得到的参数与原点也很近,所以使用基于梯度的优化方法得到的神经网络能够自带正规化。
总之,深度模型的表达能力是很强的,但是,它并没有我们想象中的那么容易过拟合,其中的原因尚不清楚。
2 泛化指标
一个神经网络有哪些特性可以使其不易过拟合?知道答案的话就可以在训练的时候将这些特性塞进去。
2.1 暴力记忆
神经网络的学习过程并不是暴力记忆。
虽然给定任意输入,神经网络都能learn起来,但是learn出的并不是同一个model。



2.2 Sensitivity
如何定义Sensitivity?



如图2.2-2和图2.2-3所示,训练数据出现处的Sensitivity通常较小,即自信度较高;训练数据未出现处的Sensitivity通常较大,即自信度较低。
2.3 Sharpness

如何定义Sharpness?
有很多种定义方式,不限于下图。

常small batch训练得到的minima泛化能力较好,关于背后原因,有一种说法是其较易找到较flat的minima。




*泛化能力的好坏与Sensitivity的大小有关;
泛化能力的好坏与Sharpness的大小有关(这一点的不同意见参见
Laurent Dinh, Razvan Pascanu, Samy Bengio, Yoshua Bengio, Sharp Minima Can Generalize For Deep Nets, PMLR, 2017
)*
MLDS笔记:Generalization的更多相关文章
- MLDS笔记:浅层结构 vs 深层结构
深度学习出现之前,机器学习方面的开发者通常需要仔细地设计特征.设计算法,且他们在理论上常能够得知这样设计的实际表现如何: 深度学习出现后,开发者常先尝试实验,有时候实验结果常与直觉相矛盾,实验后再找出 ...
- MLDS笔记:Optimization
当函数空间覆盖到目标函数时,如何通过优化调整神经网络的参数找到这个目标函数呢? 深度学习中的损失函数是非凸的,非凸优化是个NP-hard问题,如何通过梯度下降来解决这个问题呢? 注意,不同于learn ...
- ML&MLDS笔记:偏差 vs 方差
原文地址:https://www.jianshu.com/p/a02c6bd5d5e9 error来自哪?来自于偏差Bias和方差Variance. 就如打靶时瞄准一个点\(\overline{f}\ ...
- 学习笔记(三): Generalization/Overfitting/Validation
目录 Generalization: Peril of Overfitting Low loss, but still a bad model? How Do We Know If Our Mod ...
- Coursera台大机器学习课程笔记5 -- Theory of Generalization
本章思路: 根据之前的总结,如果M很大,那么无论假设泛化能力差的概率多小,都无法忽略,所以问题转化为证明M不大,然后上章将其转化为证明成长函数:mh(N)为多项式级别.直接证明似乎很困难,本章继续利用 ...
- 机器学习基石笔记:06 Theory of Generalization
若H的断点为k,即k个数据点不能被H给shatter,那么k+1个数据点也不能被H给shatter,即k+1也是H的断点. 如果给定的样本数N是大于等于k的,易得mH(N)<2N,且随着N的增大 ...
- 【Todo】【读书笔记】机器学习-周志华
书籍位置: /Users/baidu/Documents/Data/Interview/机器学习-数据挖掘/<机器学习_周志华.pdf> 一共442页.能不能这个周末先囫囵吞枣看完呢.哈哈 ...
- 设计模式学习起点 UML类图笔记
UML类图笔记 大学开设的软件设计课程一般都会学习UML类图,大部分关于设计模式的描述都是使用的UML类图,可以说类图的表示是学习设计模式的起点.UML定义类之间的关系主要有六种:泛化关系.实现关系. ...
- 机器学习&数据挖掘笔记(常见面试之机器学习算法思想简单梳理)
机器学习&数据挖掘笔记_16(常见面试之机器学习算法思想简单梳理) 作者:tornadomeet 出处:http://www.cnblogs.com/tornadomeet 前言: 找工作时( ...
随机推荐
- Dynamics CRM 在报表中获取当前登陆用户的guid
<span style="font-size:18px;">CRM提供函数,只需在报表中调用即可.</span> <pre class="s ...
- Cocos2D将v1.0的tileMap游戏转换到v3.4中一例(六)
大熊猫猪·侯佩原创或翻译作品.欢迎转载,转载请注明出处. 如果觉得写的不好请告诉我,如果觉得不错请多多支持点赞.谢谢! hopy ;) 在Xcode中打开MainScene.h文件,在接口中添加2个方 ...
- android打包方法超过65k错误
近日,Android Developers在Google+上宣布了新的Multidex支持库,为方法总数超过65K的Android应用提供了官方支持. 如果你是一名幸运的Android应用开发者,正在 ...
- C++为什么要设计友元函数和友元类
1. 首先要提一下java,比如java定义一个类1.class,会生成字节码.java有反射机制,可以找到类对象,直接修改类的私有属性.逐渐反射机制成为了一种标准,sun做成标准,JDK的API函数 ...
- UNIX环境高级编程——信号说明列表
$ kill -l 1) SIGHUP 2) SIGINT 3) SIGQUIT 4) SIGILL 5) SIGTRAP 6) SIGABRT 7) SIGBUS 8) SIGFPE 9) SIGK ...
- “XcodeGhost”病毒之后,苹果更应注…
虽然大家都在期待中秋假期的到来,不过让开发者挺闹心的一件事就是这几天网上.朋友圈以及各种群中炒得沸沸扬扬的"XcodeGhost"病毒事件,就连央视也惊动了!! 事件起源 事件起源 ...
- OpenCV空洞填充算法
讨论帖: http://bbs.csdn.net/topics/391542633 在Matlab下,使用imfill可以很容易的完成孔洞填充操作,感觉这是一个极为常用的方法,然而不知道为什么Op ...
- android开发性能分析
1 背景 其实有点不想写这篇文章的,但是又想写,有些矛盾.不想写的原因是随便上网一搜一堆关于性能的建议,感觉大家你一总结.我一总结的都说到了很多优化注意事项,但是看过这些文章后大多数存在一个问题就是只 ...
- 【Android 应用开发】Android - 时间 日期相关组件
源码下载地址 : -- CSDN : http://download.csdn.net/detail/han1202012/6856737 -- GitHub : https://github.co ...
- Hadoop 的 TotalOrderPartitioner
Partition所处的位置 Partition位置 Partition主要作用就是将map的结果发送到相应的reduce.这就对partition有两个要求: 1)均衡负载,尽量的将工作均匀的分配给 ...