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的更多相关文章

  1. MLDS笔记:浅层结构 vs 深层结构

    深度学习出现之前,机器学习方面的开发者通常需要仔细地设计特征.设计算法,且他们在理论上常能够得知这样设计的实际表现如何: 深度学习出现后,开发者常先尝试实验,有时候实验结果常与直觉相矛盾,实验后再找出 ...

  2. MLDS笔记:Optimization

    当函数空间覆盖到目标函数时,如何通过优化调整神经网络的参数找到这个目标函数呢? 深度学习中的损失函数是非凸的,非凸优化是个NP-hard问题,如何通过梯度下降来解决这个问题呢? 注意,不同于learn ...

  3. ML&MLDS笔记:偏差 vs 方差

    原文地址:https://www.jianshu.com/p/a02c6bd5d5e9 error来自哪?来自于偏差Bias和方差Variance. 就如打靶时瞄准一个点\(\overline{f}\ ...

  4. 学习笔记(三): Generalization/Overfitting/Validation

      目录 Generalization: Peril of Overfitting Low loss, but still a bad model? How Do We Know If Our Mod ...

  5. Coursera台大机器学习课程笔记5 -- Theory of Generalization

    本章思路: 根据之前的总结,如果M很大,那么无论假设泛化能力差的概率多小,都无法忽略,所以问题转化为证明M不大,然后上章将其转化为证明成长函数:mh(N)为多项式级别.直接证明似乎很困难,本章继续利用 ...

  6. 机器学习基石笔记:06 Theory of Generalization

    若H的断点为k,即k个数据点不能被H给shatter,那么k+1个数据点也不能被H给shatter,即k+1也是H的断点. 如果给定的样本数N是大于等于k的,易得mH(N)<2N,且随着N的增大 ...

  7. 【Todo】【读书笔记】机器学习-周志华

    书籍位置: /Users/baidu/Documents/Data/Interview/机器学习-数据挖掘/<机器学习_周志华.pdf> 一共442页.能不能这个周末先囫囵吞枣看完呢.哈哈 ...

  8. 设计模式学习起点 UML类图笔记

    UML类图笔记 大学开设的软件设计课程一般都会学习UML类图,大部分关于设计模式的描述都是使用的UML类图,可以说类图的表示是学习设计模式的起点.UML定义类之间的关系主要有六种:泛化关系.实现关系. ...

  9. 机器学习&数据挖掘笔记(常见面试之机器学习算法思想简单梳理)

    机器学习&数据挖掘笔记_16(常见面试之机器学习算法思想简单梳理) 作者:tornadomeet 出处:http://www.cnblogs.com/tornadomeet 前言: 找工作时( ...

随机推荐

  1. UNIX网络编程——处理服务器中大量的TIME_WAIT

    出现条件: 服务器主动关闭 短连接服务加剧 根据TCP协议定义的3次握手断开连接规定,发起socket主动关闭的一方 socket将进入TIME_WAIT状态,TIME_WAIT状态将持续2个MSL( ...

  2. matlab函数interp2及其c++代码

    最近将一个matlab程序转为c++,途中遇到interp2这个家伙,我是左查右查,发现网上没有人总结这个玩意,于是我来初探一下,还是别有洞天的,嘿嘿. 1.关于interp2 Vq = interp ...

  3. Chapter 3 Protecting the Data(4):创建和使用应用程序角色

    原文出处:http://blog.csdn.net/dba_huangzj/article/details/39927713,专题目录:http://blog.csdn.net/dba_huangzj ...

  4. Android自定义Button的“款式”

    要想让你的button呈现出一种不一样的外观,一般会采取以下两种形式 采用selector里面加图片的方式 采用selector用shape进行代码控制的方式 对第一种方式而言,只需要注意好" ...

  5. TCP的ACK确认系列 — 发送状态转换机

    主要内容:TCP的ACK发送方式,以及ACK发送状态转换机的实现. 内核版本:3.15.2 我的博客:http://blog.csdn.net/zhangskd 概述 TCP采用两种方式来发送ACK: ...

  6. Using mysqldump for Backups(备份还原数据库实例及参数详细说明)

    官网mysqldump命令如下: Using mysqldump for Backups https://dev.mysql.com/doc/refman/5.7/en/using-mysqldump ...

  7. C++实现单链表

    之前一直没怎么在意C++中的链表,但是突然一下子让自己写,就老是出错.没办法,决定好好恶补一下该方面的知识,也为今后的数据结构大下个良好的基础,于是我总结出以下几点,有些地方可能不正确,还望大家不吝赐 ...

  8. python的w+到底是什么

    python 文件处理的打开方式有很多种, os.mknod("test.txt") 创建空文件 fp = open("test.txt",w) 直接打开一个文 ...

  9. CSS中编写省略号代码片段

     #component-content #dtMain .dt-ul > li .component-item .component-name{ display:inline-block; ...

  10. 【Coding算法导论】第4章:最大子数组问题

    Coding算法导论 本系列文章主要针对算法导论一书上的算法,将书中的伪代码用C++实现 代码未经过大量数据测试,如有问题,希望能在回复中指出! (一)问题描述 给定一个数组,求数组中连续的子数组的和 ...