计算机视觉与深度学习-全连接神经网络-训练过程-欠拟合、过拟合和Dropout- [北邮鲁鹏]

2023-09-14 18:51:01

机器学习的根本问题

机器学习的根本问题是优化泛化问题。

  • 优化:是指调节模型以在训练数据上得到最佳性能。
  • 泛化:是指训练好的模型在前所未见的数据上的性能好坏。

过拟合overfitting

出现过拟合,得到的模型在训练集上的准确率很高,但是在真实的场景下识别率确很低。

泛化能力差。

过拟合overfitting:指学习时选择的模型所包含的参数过多,以至于出现这一模型对已知数据预测的很好,但对未知数据预测得很差的现象。这种情况下模型可能只是记住了训练集数据,而不是学习到了数据特征。

在这里插入图片描述

  • 训练初期:优化和泛化是相关的;训练集上的误差越小,验证集上的误差也越小,模型泛化能力逐渐增强。
  • 训练后期:模型在验证集上的错误率不再降低转而开始变高。模型出现过拟合,开始学习仅和训练数据有关的模式。

应对过拟合

最优方案

获取更多的训练数据

增加更多的训练样本可以帮助模型更好地学习数据的真实分布,减少过拟合的风险。

次优方案

调节模型允许存储的信息量或者对模型允许存储的信息加以约束,该类方法也被称为正则化

调节模型大小
约束模型权重,即权重正则化(常用的有L1、L2正则化)
L1 正则化

L1正则化(Lasso正则化):L1正则化使用模型权重的L1范数作为正则化项,即权重的绝对值之和。

在这里插入图片描述

L1正则化的效果是推动模型的权重向稀疏的方向学习,即将某些权重变为零,使得模型具有稀疏性。这对于特征选择和模型简化很有用。

L2 正则化

L2正则化(Ridge正则化):L2正则化使用模型权重的L2范数作为正则化项,即权重的平方和的平方根。

在这里插入图片描述

L2正则损失对于大数值的权值向量进行严厉惩罚,鼓励更加分散的权重向量,使模型倾向于使用所有输入特征做决策,此时的模型泛化性能好!
在这里插入图片描述

对异常值的敏感性
  • L1正则化对异常值比较敏感,因为它的正则化项是绝对值之和,异常值的存在会对权重产生较大的影响。
  • L2正则化对异常值相对较不敏感,因为它的正则化项是平方和的平方根,异常值对权重的影响相对较小。
随机失活(Dropout)

让隐层的神经元以一定的概率不被激活。

实现方式:

训练过程中,对某一层使用Dropout,就是随机将该层的一些输出舍弃(输出值设置为0),这些被舍弃的神经元就好像被网络删除了一样。
在这里插入图片描述
随机失活比率(Dropout ratio):

是被设为0的特征所占的比例,通常在0.2~0.5范围内。

在这里插入图片描述

随机失活为什么能够防止过拟合呢?

解释一:随机失活使得每次更新梯度时参与计算的网络参数减少了,降低了模型容量,所以能够防止过拟合。

在这里插入图片描述
解释二:随机失活鼓励权重分散,从这个角度来看随机失活也能起到正则化的作用,进而防止过拟合。
在这里插入图片描述

  • 通过随机失活,在训练过程中,将一部分神经元的输出置为零,相当于随机断开了这些神经元与其他神经元之间的连接。这样做的结果是,每个神经元都不再依赖于其他特定的神经元,而是需要通过其他神经元来进行信息传递。因此,网络中的神经元被鼓励去学习更加独立和分散的特征表示,而不是过度依赖于某些特定的神经元
  • 这种随机失活的效果是,网络的不同部分在训练过程中会以更加均衡的方式进行学习,权重会分散到更多的神经元上。这有助于避免某些特定的神经元或权重集中承担大部分的计算负载,从而提高网络的鲁棒性和泛化能力。

解释三:Dropout可以看作模型集成
在这里插入图片描述

  • Dropout可以被解释为在训练过程中对多个不同的子模型进行训练,每个子模型都是通过保留一部分神经元并且随机设置其他神经元的输出为零来实现的。在测试阶段,为了获得更稳定的预测结果,通常会对这些子模型的预测结果进行平均或投票。
随机失活的问题

训练过程中使用随机失活,测试过程中不随机失活。要保证两者结果相似,需要进行修改。
在这里插入图片描述
在测试过程中,不进行随机失活,而是将Dropout的参数p乘以输出。

上图例子中p=1 / 2

  • 训练E[a] = 测试E[a] * p = 测试E[a] * 1 / 2
  • 训练E[a] / p = 训练E[a] / (1 / 2) = 测试E[a]

代码示例:
则训练E[a] = 测试E[a] * p = 测试E[a] * 1 / 2
在这里插入图片描述
训练E[a] / p = 训练E[a] / (1 / 2) = 测试E[a]
在这里插入图片描述

欠拟合

模型描述能力太弱,以至于不能很好地学习到数据中的归路。产生欠拟合的原因通常是模型过于简单。

更多推荐

手机提词器有哪些?简单介绍这一款

手机提词器有哪些?手机提词器在现代社会中越来越受欢迎,原因是它可以帮助人们提高演讲和朗读的效果。使用手机提词器可以让人们更加自信地面对演讲和朗读,不至于出现口误或读错字的情况。此外,手机提词器还可以帮助人们节省时间和精力,让人们可以更加专注于演讲和朗读的内容。目前市面上有很多种手机提词器,今天就给大家介绍一款好用的手机

Harmony系统更改手机IP

在当今的互联网环境中,我们经常需要更改手机的IP地址来绕过限制或保护我们的隐私。虽然在一些操作系统上更改IP地址相对较容易,但在Harmony系统上,这可能会有些困难。因此,本文将分享一种在Harmony系统上免费更改手机IP地址的方法。在Harmony系统上,我们可以通过使用VPN(VirtualPrivateNet

前端原生和主流框架是如何dom的

前言随着互联网技术的发展,前端技术也在不断地发展和更新。DOM(DocumentObjectModel)是前端开发中非常重要的一个概念,可以理解为网页上的所有元素都是DOM节点,通过操作这些节点,可以实现网页的动态效果和交互功能。本文将介绍JavaScript操作DOM、jQuery操作DOM、Vue操作DOM、Rea

C++之list

目录一、关于list二、list相关函数三、相关函数的使用1、构造函数2、push_back3、迭代器4、push_front5、pop_back6、insert7、erase关于迭代器失效问题8、splice9、remove10、sort一、关于listlist和string、vector一样,都是容器,都有很强的相

服务器如何提供性能呢?

服务器如何提供性能呢?一、将服务器虚拟化如果同期拥有多个项目,增加额外服务器会显得浪费,成本费用也会大幅度上升,这时不妨通过技术将其划分成多个虚拟空间,而每个空间又可以使用不同操作系统,运行不同应用程序,使得符合项目要求。这种方式通常能增加当前利用率,而不必投资额外的服务器。比如虚拟主机、VPS、云服务器等,就是服务器

spark 数据倾斜优化总结

一、数据倾斜产生原因数据倾斜就是部分task承担了过多的计算任务,导致整个stage都被卡。可能产生数据倾斜的场景如下操作场景join其中一个表比较小,但key值少join大表与大表,但key值中存在过多的特殊值,如0或nulljoinon条件包含key值过滤逻辑,导致部分数据被保留,部分被过滤,最终节点分布不均joi

2023_Spark_实验七:Scala函数式编程部分演示

1、Scala中的函数在Scala中,函数是“头等公民”,就和数字一样。可以在变量中存放函数,即:将函数作为变量的值(值函数)。defmyFun1(name:String):String="Hello"+nameprintln(myFun1("Tom"))defmyFun2():String="HelloWorld"/

大数据-kafka学习笔记

KafkaKafka是一个分布式的基于发布/订阅模式的消息队列(MessageQueue),主要应用于大数据实时处理领域。Kafka可以用作Flink应用程序的数据源。Flink可以轻松地从一个或多个Kafka主题中消费数据流。这意味着您可以使用Kafka来捕获和传输实时数据,并将其发送到Flink进行进一步处理。Fl

创建第一个MyBatis框架--保姆级教学

文章目录前言一、创建一个空的mybatis项目二、创建一个Maven模块三、各个文件的配置四、总结前言在idea上创建我的第一个MyBatis框架一、创建一个空的mybatis项目1、new一个新的项目2、选择最下面,创建一个空项目3、为空项目取一个名字,位置可以自己选4、点击完成后,开始配置以下版本,两个版本得一样,

HDMI字符显示实验

FPGA教程学习第十五章HDMI字符显示实验文章目录FPGA教程学习前言实验原理程序设计像素点坐标模块字符叠加模块实验结果知识点总结前言在HDMI输出彩条的基础上输出osd叠加信息。实验原理实验通过字符转换工具将字符转换为16进制coe文件存放到单端口的ROMIP核中,再从ROM中把转换后的数据读取出来显示到HDMI上

高云FPGA系列教程(9):cmd-parser串口命令解析器移植

文章目录@[toc]cmd-parser库简介cmd-parser库源码获取GW1NSR-4C移植cmd-parser实际测试cmd-parse命令解析器优化本文是高云FPGA系列教程的第9篇文章。上一篇文章介绍片上ARMCortex-M3硬核处理器串口外设的使用,演示轮询方式和中断方式接收串口数据,并进行回环测试。本

热文推荐