机器学习 -- 过拟合与欠拟合以及应对过拟合的方法 神经网络中的超参数如何选择

news2024/9/19 10:38:43

前言

在学习机器学习的过程中,训练模型时常遇到的问题就是模型的过拟合和欠拟合,下文我将解释过拟合和欠拟合的概念,并且学习应对过拟合以及神经网络中的超参数如何选择的方法。

过拟合和与欠拟合

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

欠拟合:模型描述能力太弱,以至于不能更好的学习数据中的规律,产生欠拟合的原因常常是模型过于简单。

学习过程中的过拟合

在这里插入图片描述

  • 机器学习的根本问题是优化的泛化的问题
  • 优化:是指调节模型以在训练数据上得到最佳性能
  • 泛化:是指训练好的模型在前所未见的数据上的性能好坏

训练初期:优化和泛化是相关的,训练集上的误差越小,验证集上的误差也越小,模型的泛化能力逐渐增强。

训练后期:模型在验证集上的错误率不再降低,转而变高,模型出现过拟合,开始学习仅和训练集有关的模式。

如何应对过拟合

最优方案:获取更多的训练数据
如果模型能够记住世界上所有的数据,那么就不用担心过拟合的问题。

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

  • 调节模型大小
  • 约束模型权重,即权重正则化(常见的有L1、L2正则化)
  • 随机失活

在这里插入图片描述

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

随即失活

  • 随即失活:让隐层的神经元以一定的概率不被激活
  • 实现方式:训练过程中,对某一层使用随机失活,就是随机将该层的一些输出舍弃(输出变为0),这些被舍弃的神经元就好像被网络删除了一样。
  • 随机失活比率:是被设为0的特征所占的比例通常在0.2-0.5的比例中。

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

  • 解释1:随机失活是的每次更新梯度时参与计算的网络参数减少了 ,降低了模型容量,所以能够防止过拟合。
  • 解释2:随机失活鼓励权重分散,从这个角度来看随机失活也能起到正则化的作用,进而防止过拟合。
  • 解释3:Dropout可以看作模型集成

神经网络中的超参数

  • 网格结构–隐层神经元个数,网格层数,非线性单元等。
  • 优化相关–学习率、dropout比率、正则项强度等。

超参数的重要性:如果学习率设置过大,训练过程中损失函数就无法收敛,如果学习率偏大,损失函数会在最小值附件震荡,达不到最优,学习率太小,收敛时间较长,学习率适中,收敛快、结果好。所以超参数在训练过程中的设置是非常重要的,一个好的超参数也会决定模型的好坏。

超参数优化方法

网格搜索法:

  • 1、每个超参数分别取几个值,组合这些超参数值,形成多组超参数
  • 2、在验证集上评估每组超参数的模型性能
  • 3、选择性能最优的模型所采用的那组值作为最终的 超参数的值。

随机搜索法:

  • 1、参数空间内随机取点,每个点对于一组超参数
  • 2、在验证集上评估每组超参数的模型性能
  • 3、选择性能最优的模型所采用的那组值作为最终的超参数的值。

超参数搜索策略

  • 粗搜索:利用随机法在较大范围里采样超参数,训练一个周期,依据验证集正确率缩小超参数范围。
  • 精搜索:利用随机法在前述缩小的 范围内采样超参数,允许模型五到十个周期,选择验证集上精度最高的那组超参数。

建议:对于学习率、正则项强度这类超参数,在对数空间上进行随机采样更合适。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/417406.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

基于 Git 的开发工作流——主干开发特性总结

在参与开发的过程,得益与平台提供便捷的开发流程,简化很多开发过程操作分支的步骤;也就很好奇,为什么研发平台怎么设计,考虑的点是为什么,便有了这次对主干研发的学习与记录。当我们是构建软件项目的唯一开…

【计算机网络-传输层】TCP 协议

文章目录1 传输层概述1.1 传输层的功能1.2 端口号2 TCP 报文段2.1 TCP 报文段首部格式2.2 TCP 数据传送的过程3 TCP 连接管理3.1 TCP 连接的建立——三次握手3.1.1 客户机向服务器发送 TCP 连接请求报文段3.1.2 服务器向客户机发送 TCP 连接请求确认报文段3.1.3 客户机向服务器…

python数据可视化玩转Matplotlib subplot子图操作,四个子图(一包四),三个子图,子图拉伸

目录 一、创建子图 1.1 下图是绘制的子图: 1.2 代码释义: 二、绘制子图 2.1 代码引入 2.2 图形绘制 三、子图布局 3.1 子图布局说明 四、子图大小 4.1 子图大小调整 五、子图间距 5.1 子图代码调整 六、子图位置 6.1 代码引入 6.2 完整代码…

如何在 Windows10 下运行 Tensorflow 的目标检测?

前言 看过很多博主通过 Object Detection 实现了一些皮卡丘捕捉,二维码检测等诸多特定项的目标检测。而我跟着他们的案例来运行的时候,不是 Tensorflow 版本冲突,就是缺少什么包,还有是运行官方 object_detection_tutorial 不展示…

算法记录 | Day30 回溯算法

332.重新安排行程 思路: 1.确定回溯函数参数:定义全局遍历存放path, 2.终止条件:遍历完所有路径,机场个数,如果达到了(航班数量1),即path的长度应当为字符串二维数组长…

教程 | 多通道fNIRS数据的预处理和平均(下)

前言 前文近红外数据的预处理和平均(上)提到fNIRS是一种评估氧和脱氧血红蛋白浓度变化的方法,可与fMRI相媲美。fNIRS的不足是它的空间分辨率比fMRI差,但其优点是有更高的时间分辨率,并允许测量无法通过fMRI扫描仪测试…

GPT-4 API 接口调用及价格分析

GPT-4 API 接口调用及价格分析 15日凌晨,OpenAI发布了万众期待的GPT-4!新模型支持多模态,具备强大的识图能力,并且推理能力和回答准确性显著提高。在各种专业和学术基准测试上的表现都媲美甚至超过人类。难怪OpenAI CEO Sam Altm…

动态规划专题(明天继续)

动态规划求最大值: 题目描述 小蓝在一个 nn 行 mm 列的方格图中玩一个游戏。 开始时,小蓝站在方格图的左上角,即第 11 行第 11 列。 小蓝可以在方格图上走动,走动时,如果当前在第 rr 行第 cc 列,他不能…

ASIC-WORLD Verilog(3)第一个Verilog代码

写在前面 在自己准备写一些简单的verilog教程之前,参考了许多资料----asic-world网站的Verilog教程即是其一。这套教程写得极好,奈何没有中文,在下只好斗胆翻译过来(加了自己的理解)分享给大家。 这是网站原文&#xf…

Windows应急响应 -Windows日志排查,系统日志,Web应用日志,

「作者简介」:CSDN top100、阿里云博客专家、华为云享专家、网络安全领域优质创作者 「推荐专栏」:对网络安全感兴趣的小伙伴可以关注专栏《网络安全入门到精通》 Windows日志分析一、查看日志二、日志分类三、筛选日志四、事件ID1、安全日志1.1、登录类…

基于Java+SSM+Vue的旅游资源网站设计与实现【源码(完整源码请私聊)+论文+演示视频+包运行成功】

博主介绍:专注于Java技术领域和毕业项目实战 🍅文末获取源码联系🍅 👇🏻 精彩专栏推荐订阅👇🏻 不然下次找不到哟 Java项目精品实战案例(200套) 目录 一、效果演示 二、…

【从零开始学Skynet】实战篇《球球大作战》(八):login代码设计

现在来编写我们的第二个服务——登录服务,在编写此服务时,建议大家对照着如下所示的流程图来看,知晓各个方法的作用,写起来会简单许多。 1、登录协议 定义如下图所示的登录协议: 客户端需要发送玩家账号和密码&#x…

MyBatis 源码解析 面试题总结

MyBatis源码学习环境下载 文章目录1、工作原理1.1 初始化1.1.1 系统启动的时候,加载解析全局配置文件和相应的映射文件1.1.2 建造者模式帮助我们解决复杂对象的创建:1.2 处理SQL请求的流程1.2.1 通过sqlSession中提供的API方法来操作数据库1.2.2 获取接口…

UOS内核替换kylin内核

一、替换UOS内核 如果可以获取UOS的的ROOT权限, 跳过步骤一和二。 步骤一、配置环境 如果有UOS系统的机器,则不需要安装,跳到步骤二 。 如果没有UOS系统则需要下载, 下载UOS镜像:统信UOS生态社区 - 打造操作系统创新生态 ,下载专业版需要用户注册大概1~3天可以通过,…

HTML-form表单和提交

网络请求 在浏览器的URL中写入地址,点击回车访问时 浏览器会发送数据过去,本质上发送的是字符串 浏览器向后端发送请求时 GET请求【URL方法/表单提交】 现象:向后台传入数据,数据会拼接在URL上 搜索百度时: http…

十四、Pytorch实现RNN Classifier

一、项目需求 数据集:姓名和对应的国籍 要求:输入一个姓名,通过模型可以得到TA所属的国籍 数据集下载:name_country_datasets 二、思路步骤分析 ①准备数据集 将下载好的数据集解压,放到一个指定的位置&#xff0c…

文心一格小程序,AI绘画产品

文章目录AIGC什么是AI作画?Prompt文心一格文心一格小程序使用方法使用小程序进行AI绘图AIGC的未来发展结语AIGC AIGC(AI Generated Content)是指利用人工智能生成内容。是利用人工智能来生成你所需要的内容,GC的意思是创作内容。与…

samba介绍和使用

一. 介绍 Samba是一套使用SMB(Server Message Block)协议的应用程序, 通过支持这个协议, Samba允许Linux服务器与Windows系统之间进行通信,使跨平台的互访成为可能。 Samba采用C/S模式, 其工作机制是让NetBIOS( Windows 网上邻居的通信协议)和SMB两个协议运行于TCP/IP通…

【Obsidian】基础使用手册(包括如何将Obsidian页面设置为中文)

💗 未来的游戏开发程序媛,现在的努力学习菜鸡 💦本专栏是我关于工具类软件的笔记 🈶本篇是Obsidian的基础使用 Obsidian的基础使用将页面设置为中文常用的默认快捷键常用的格式标题代码块表格字体样式列表任务列表官方下载地址&am…

中国电子学会2022年12月份青少年软件编程Python等级考试试卷六级真题(含答案)

一、单选题(共25题,共50分) 1.数据文件“abc.txt”中包含若干个英文单词,如图所示: 读取文件“abc.txt”中数据的Python程序段如下: file abc.txt word_b [] for word in open(file):if word[0:1] a and len(word)>4:wor…