深入理解泛化

article/2025/10/13 22:09:33

文章目录

          • 1.引言
          • 2.泛化的定义
          • 3.数据集分类
          • 4.泛化能力分类
          • 5.从训练过程来理解泛化
          • 参考资料

1.引言

什么是泛化呢?

先举个栗子:

  小明和小李都上了高三。小明头脑机灵,一边刷着五年高考三年模拟一边总结做题规律,而小李一门心思刷题,一套完了又一套,刷的试卷堆成山了却没有对错题进行总结。高考结束成绩公布,小明超出一本线几十分,而小李却勉强上了二本线。这是为什么呢?

  原来高考试题一般是新题,谁也没做过,平时的刷题就是为了掌握试题的规律,能够举一反三、学以致用,这样面对新题时也能从容应对。这种对规律的掌握便是泛化能力。

  在这个例子中,小明善于总结做题规律,可以说是他的泛化能力好;而小李只知道刷题却没有掌握做题规律,可以说是他的泛化能力差。

2.泛化的定义

  机器学习(深度学习)的根本问题是优化和泛化之间的对立。

  优化(optimization)是指调节模型以在训练数据上得到最佳性能(即机器学习中的学习),而泛化(generalization)是指训练好的模型在前所未见的数据上的性能好坏。

  机器学习的目的当然是得到良好的泛化,但你无法控制泛化,只能基于训练数据调节模型。

对泛化能力可以从以下六个方面来理解:

  1. 泛化能力最直接的定义是训练数据和真实数据间的差异,训练模型的目地是要模型在完全陌生的数据上进行测试的;

  2. 泛化能力还可以看成模型的稀疏性。正如奥卡姆的剪刀指出的,面对不同的解释时,最简单的解释是最好的解释。在机器学习中,具有泛化能力的模型中应该有很多参数是接近0的。而在深度学习中,则是待优化的矩阵应该对稀疏性有偏好性。

  3. 泛化能力的第三种解释是生成模型中的高保真能力。具有泛化能力的模型应在其每个抽象层次具有重构特征的能力。

  4. 第四种解释是模型能够有效的忽视琐碎的特征,或者说在无关的变化下都能找到相同的特征。

  5. 泛化能力还可以看成模型的信息压缩能力。

      这里涉及到解释为什么深度学习有效的一种假说,信息瓶颈(information bottleneck),说的是一个模型对特征进行压缩(降维)的能力越强,其就越更大的可能性做出准确的分类。信息压缩能力可以概括上述的四种关于泛化能力的解释,稀疏的模型因其结构而完成了信息的压缩,生成能力强,泛化误差低的模型因信息压缩而可能,而忽略无关特征是信息压缩的副产品。

  6. 理解泛化能力的最后一种角度是风险最小化。

      这是从博弈论的角度来看,泛化能力强的模型能尽可能降低自己在真实环境中遇到意外的风险,因此会在内部产生对未知特征的预警机制,并提前做好应对预案。这是一种很抽象的也不那么精确的解释,但随着技术的进步,人们会找出在该解释下进行模型泛化能力的量化评价方法。

3.数据集分类

数据集可以分为:

  • 训练集:实际训练算法的数据集;用来计算梯度或者Jacobian矩阵,并确定每次迭代中网络权值的更新;
  • 验证集:用于跟踪其学习效果的数据集;是一个指示器,用来表明训练数据点之间所形成的网络函数发生了什么,并且验证集上的误差值在整个训练过程中都将被监测;
  • 测试集:用于产生最终结果的数据集 。

为了让测试集能有效反映网络的泛化能力,需要牢记:

  第一,测试集绝不能以任何形式用于训练网络,即使是用于从一组备选网络中挑选网络中挑选网络。测试集只能在所有的训练和模型选择完成后使用;

  第二、测试集必须代表网络使用中涉及的所有情形(当输入空间是高维或者形状复杂时,难以保证)。

举个栗子:

  老师出了10 道习题供同学们练习,考试时老师又用同样的这10道题作为试题,这个考试成绩能否有效反映出同学们学得好不好呢?

  答案是否定的,可能有的同学只会做这10 道题却能得高分.回到我们的问题上来,我们希望得到泛化性能强的模型?好比是希望同学们对课程学得很好、获得了对所学知识"举一反三"的能力;训练样本相当于给同学们练习的习题,测试过程则相当于考试.显然,若测试样本被用作训练了,则得到的将是过于"乐观"的估计结果。

4.泛化能力分类

根据泛化能力强弱,可以分为:

Snipaste_2019-11-15_10-49-24.png

  • 欠拟合:模型不能在训练集上获得足够低的误差;
  • 拟合:测试误差与训练误差差距较小;
  • 过拟合:训练误差和测试误差之间的差距太大;
  • 不收敛:模型不是根据训练集训练得到的。

  在机器学习中,可以用Bias(偏差)、Variance(方差)衡量欠拟合、刚好拟合、过拟合。

对于Bias:

  • Bias衡量模型拟合训练数据的能力(训练数据不一定是整个 training dataset,而是只用于训练它的那一部分数据,例如:mini-batch);
  • Bias反映的是模型在样本上的输出与真实值之间的误差,即模型本身的精准度;
  • Bias 越小,拟合能力越高(可能产生overfitting);反之,拟合能力越低(可能产生underfitting)。

对于Variance:

  • Variance描述的是预测值的变化范围,离散程度,也就是离其期望值的距离。方差越大,数据的分布越分散,模型的稳定程度越差;
  • Variance反映的是模型每一次输出结果与模型输出期望之间的误差,即模型的稳定性;
  • Variance越小,模型的泛化的能力越高;反之,模型的泛化的能力越低。
图片1.png 图片2.png

  左图是高偏差,对应欠拟合;右图是高方差,对应过拟合,中间是Just Right,对应刚好拟合。

对于过拟合,可以理解为:

  过拟合指的是给定一堆数据,这堆数据带有噪声,利用模型去拟合这堆数据,可能会把噪声数据也给拟合了,这点很致命,一方面会造成模型比较复杂(想想看,本来一次函数能够拟合的数据,现在由于数据带有噪声,导致要用五次函数来拟合,多复杂!),另一方面,模型的泛化性能太差了(本来是一次函数生成的数据,结果由于噪声的干扰,得到的模型是五次的),遇到了新的数据让你测试,你所得到的过拟合的模型,正确率是很差的。

5.从训练过程来理解泛化

image-20191115110255593.png image-20191115110310372.png

  模型的容量(capacity):通常指模型中可学习参数的个数(或模型复杂度)。

  训练刚开始的时候,模型还在学习过程中,在训练集以及测试集上同时具有较高的误差,此时模型的偏差较大。这个时候,模型还没有学习到知识,处于欠拟合状态,曲线落在欠拟合区域。

  随着训练的进行,训练误差和测试误差都下降。随着模型的进一步训练,在训练集上表现的越来越好,终于在突破一个点之后,训练集的误差继续下降,而测试集的误差上升了,此时模型的方差较大,就进入了过拟合区间。 它通常发生在模型过于复杂的情况下,如参数过多等,会使得模型的预测性能变弱,并且增加数据的波动性。虽然模型在训练时的效果可以表现的很完美,基本上记住了数据的全部特点,但这种模型在未知数据的表现能力会大减折扣,因为简单的模型泛化能力通常都是很弱的。

  因此,所使用的模型应该具有足够多的参数,以防欠拟合,即模型应避免记忆资源不足。在容量过大与容量不足之间要找到一个折中,即最优容量。

这里有两个地方需要注意。

(1) 模型训练过程中,训练集的误差一定一直低于测试集吗?

  未必。如果这两个集合本来就取自于同样的数据分布,比如从一个数据集中随机采样,那么有可能测试的误差从一开始就低于训练集。不过,总体的趋势肯定是不变的,两者从一开始慢慢下降直到最后过拟合,训练集的误差低于测试集。

(2) 模型的训练一定会过拟合吗?

  这也不一定!如果数据集足够大,很可能模型的能力不够始终都不会过拟合。另一方面,有很多的方法可以阻止,或者减缓模型的过拟合,比如正则化。

参考资料

1.聊聊神经网络中的正则化

2.尹恩·古德费洛.深度学习[M].北京:人民邮电出版社,2017.8

3.马丁 T·哈根,章毅(译).神经网络设计.第二版.北京:机械出版社,2017.12

4. 深度学习500问

5.网上其它资料(后补)

PS:过拟合怎么解决?,请看正则化


http://chatgpt.dhexx.cn/article/n3yLrqUl.shtml

相关文章

机器学习-泛化能力

目录 1.什么是泛化能力 2.什么是好的机器学习模型的提出 3.泛化误差 4.模型泛化能力的评价标准 4.提高泛化能力 5.举例 6.相关引用文献 1.什么是泛化能力 百度百科解释:机器学习算法对新鲜样本的适应能力。 更加具体的解释:学习到的模型对未知…

机器学习中的泛化能力

模型的泛化能力:指机器学习算法对新鲜样本的适应能力。 学习的目的:学到隐含在数据背后的规律,对具有同一规律的学习集以外的数据,经过训练的网络也能给出合适的输出,该能力称为泛化能力。 由此可见,经训练…

神经网络泛化的能力因素,神经网络泛化的能力差

1、BP神经网络当中 所提到的泛化能力是指什么? 就是外推的能力。 很多时候训练的网络对于训练的数据能很好的拟合,但是对于不在训练集内的数据拟合就很差强人意了。这种情况就叫泛化能力----差。也就是说可能你的网络存在过拟合的现象。 谷歌人工智能写…

【深度学习】常见的提高模型泛化能力的方法

前言 模型的泛化能力是其是否能良好地应用的标准,因此如何通过有限的数据训练泛化能力更好的模型也是深度学习研究的重要问题。仅在数据集上高度拟合而无法对之外的数据进行正确的预测显然是不行的。本文将不断总结相关的一些方法。 一、模型角度 Dropout 首先随…

TCP/IP报文格式

1、IP报文格式    IP协议是TCP/IP协议族中最为核心的协议。它提供不可靠、无连接的服务,也即依赖其他层的协议进行差错控制。在局域网环境,IP协议往往被封装在以太网帧(见本章1.3节)中传送。而所有的TCP、UDP、ICMP、IGMP数据…

TCP首部报文段格式

最近《计算机网络》这本书看到了传输层的 TCP 协议,因为TCP 的全部功能都体现在它的首部中,因此觉得有必要将这些知识梳理一下。 首先TCP 是面向字节流的。这个流指的是流入到进程或从进程流出的字节序列。面向字节流的含义是:应用程序与 TC…

ARP报文格式详解

ARP 协议包(ARP 报文)主要分为 ARP 请求包和 ARP 响应包,本节将介绍 ARP 协议包的格式。 ARP 报文格式 ARP 协议是通过报文进行工作的,ARP 报文格式如图所示。 ARP 报文总长度为 28 字节,MAC 地址长度为 6 字节&…

CAN的报文格式

CAN的报文格式 在总线中传送的报文,每帧由7部分组成。CAN协议支持两种报文格式,其唯一的不同是标识符(ID)长度不同,标准格式为11位,扩展格式为29位。 在标准格式中,报文的起始位称为帧起始&am…

IPv4报文格式详解和报文示例

目录 一,IP数据报文的组成 二,IP报文格式 三,IPv4报文示例 作者:柒烨带你飞 一,IP数据报文的组成 一个IP数据报文都是由首部和数据两部分组成。 每个 IP 数据报都以一个 IP 报头开始。IP 报头中包含大量信息&#…

ICMP报文格式解析

ICMP报文的格式类型总共分为三大类: 1、差错报文 2、控制报文 3、查询报文 上图是ICMP报文的基本格式,上面提到的三种ICMP报文均有“类型,代码和校验和”三个字段,后面还有4个字节是根据不同的报文类型而有不同的格式&#xff…

常见网络报文数据包格式

当我们应用程序用TCP传输数据的时候,数据被送入协议栈中,然后逐个通过每一层,知道最后到物理层数据转换成比特流,送入网络。而再这个过程中,每一层都会对要发送的数据加一些首部信息。整个过程如下图。 以太网帧格式 以…

网络中的常见的各种协议--报文格式总结学习

网络中的各种协议总结学习 以太网帧结构IP报文格式ARP协议ICMP协议UDP用户数据包协议DNS TCP协议FTP协议HTTP协议SMTP协议POP协议SSH协议 以太网帧结构 注: 当LLC-PDU中携带的是数据的时候,那么左侧的2字节表示的就是长度;当然,以…

网络基础知识之报文格式介绍

1.以太网数据帧头部 DMAC:目的MAC地址,长度6个字节。 SMAC:源MAC地址,长度6个字节。 TYPE:类型字段,表明上层是哪种协议,IP协议是0x800,ARP协议是0x0806。 DATA:数据字…

计算机网络11种协议报文格式

文章目录 TCPUDPIPIPV6IPSec以太网帧结构802.1Q以太网帧结构802.11无线链路帧SSL记录RTP实时传输协议OpenFlow流表参考 TCP 源端口号和目的端口号: 用16bit表示所以端口号范围为0~65535,用来标识源主机和目的主机上的进程,用于运输层的多路复用和多路分解…

EndNote X8使用总结

本文记录在使用EndNote X8(Word2013)过程中遇到的一些问题,持续更新。 1.插入参考文献序号与文本的缩进问题 问题描述:在Word中使用EndNote插入参考文献后,在文末的参考文献出现文献序号与文本内容相距较大的情况&am…

EndNote20 安装方法

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、Endnote是什么?二、安装步骤 1.安装库2.中文版总结 前言 管理文献工具是科研入门的一个必要学习方面。随着写作论文的增多,以及学习…

安装 EndNote X 9.3.3

下载 链接:https://pan.baidu.com/s/1d4njrGQUZQxE-VeSA_M1Zw 提取码:0226 安装 双击 .exe文件 不想安装在C盘的可以点击 Browse 自己设置一个路径,点击 OK 出现下图这一幕是因为我 office 打开着,只要把 wor…

Endnote操作

记录一下一些要点,以便之后毕设用到 1. 用endnote插入文献后,mathtype的公式显示域代码。word-文件-选项-高级 2.word中想修改endnote格式出现can not be formatted because it is no longer open. Please chose another document. word-endnote20-Too…

EndNote安装与使用

一、安装 1、双击ENX9Inst.msi安装 2、进入安装目录,使用CHS或ENG里的文件替换安装目录文件 CHS 中文版 ENG 英文版 二、软件优化 1、EndNote Import.enf 此文件用于导入中文文献时期刊名解析错误的问题,右击使用EndNoteX9打开后关闭即可 2、geebin…

EndNote X9导入文献的5种方式

上一篇介绍了EndNote X9下载与简介。 这里再介绍一下EndNote X9导入文献的5种方式,分别如下: 1. 从数据库网站导入参考文献 2. 在网页浏览中导入参考文献 3. 轻松导入本地参考文献 4. 在线检索导入参考文献 5. 手工添加参考文献信息 1. 从数据库网站导…