TensorFlow之过拟合与欠拟合-1

news2024/9/23 5:25:14

1 基本概念

过度拟合(overfit)

创建的模型与用于该模型的训练数据之间发生过于密切的关系,从而引起该模型无法对新数据进行准确的预测。正则化(Regularization)策略可以减少过度拟合,或者使用大数据量、多样化数据类型的数据集用于训练也可以减少过度拟合。

过度拟合问题,非常类似于学生与老师之间的学习关系,例如,一个偏科的学生仅善于自己有兴趣的科目以及只善于从该科目的老师中学习,而对其他科目不感兴趣以及不善于从其他科目的老师中学习,因而,偏科就是一个现实中过度拟合的实例。因此,一个学生需要培养对不同的科目感兴趣以及善于从不同的老师中学习,则该学生具备综合能力、具备处理问题的应变能力。

正则化(regularization)

用于在训练过程中减少过度拟合的机制,在机器学习的过程中使用正则化机制不断地校正相关的数据,常用的正则化机制的类型包括:

  • L1正则化(L1 regularization)

  • L2正则化(L2 regularization)

  • 删除正则化(dropout regularization)

  • 提早停止(early stopping),该机制不是常规正则化方法,但是,也可以有效地减少过度拟合)

正则化也被定义成对模型复杂度的处罚措施。

正则化机制是违反直觉的,例如,增加正则化通常会增加训练的损失值,这种场景很容混淆,合理的解释是,最小化损失值的目标是提升预测的准确程度,而正则化机制的目标也是提升预测的准确度,但是最小化损失值不是正则化的目标,因此,即使正则化会增加损失值,但是正则化有利于帮助模型对现实世界的数据样本做出更准确的预测。

L1正则化(L1 regularization)

该正则化机制是处罚一个权重在所有权重的绝对值之和中的比例,也就是,将不相关或者强相关特征的权重占比设置为0,因而,一个权重占比等于0的特征可以高效地从模型中被删除。

L2正则化(L2regularization)

该正则化机制是处罚一个权重在所有权重平方之和中的比例,也就是,将离群的特征值(数值大的正值或者数值小的负值)的权重设置为接近0值但是不等于0值,因而,一个权重占比接近0值的特征在模型中依然被保留,但是不会影响模型预测的准确度。

删除正则化(dropout regularization)

该正则化机制是用于训练神经网络,在一个隐藏层固定数目的单元中为一个梯度步骤删除一个随机选择的单元,删除的单元越多,正则化的效果越强。

提早停止(early stopping)

该正则方法是用在训练过程中损失值完成最小化之前结束训练,使用提早停止训练,用户可以有目标地在验证数据集的损失值开始上升的时候停止模型训练,也就是,该正则化机制可以在模型训练的效果变差之前提早结束训练。

离群值

与大部分值都保持一定距离的值,在机器学习中,离群值分类如下所示:

  • 输入的值约大于三倍标准均差的值

  • 高绝对值的权重

  • 预测值远大于实际值的值

例如,假设价格是一个模型的特征,数据集的均值是7元,标准差是1元,则12元与2元的价格是离群值,因为离均值7元的距离都是5元。出现离群值的大多数原因是数据出错,需要使用均值进行筛选。

2 过拟合与欠拟合

本章节主要是使用技术框架tf.keras从代码的角度描述机器学习中关于数据训练的过度拟合(过拟合)以及拟合不足(欠拟合)的场景。

在前面的分类模型以及燃油预测的实例分析中,模型在验证数据的准确度在经过多次的迭代训练之后达到峰值,然后准确度保持稳定的状态或者开始下降。

也就是,模型将会开始过度拟合训练数据,因此,在机器学习过程中模型应该学会如何去处理过度拟合显得非常重要。虽然经常可能获得一个有关训练数据集的高准确度,但是,模型真正需要的是从测试数据集中(新数据)获取一个高准确度的预测。

过度拟合的相反是拟合不足,当训练数据还有改善的空间,则会出现拟合不足的情况,出现拟合不足的原因有很多,例如,构建的模型不够完善,模型过于正则化,模型参与训练的时间不足,也就是,模型或者网络还没有从训练数据中学会相关的风格,不完全掌握这些受训数据之间的关系。

但是,如果训练的时间太长,则会引起过度拟合,所学到的风格不适用于测试数据集(新数据)。因此,模型需要在过度拟合与拟合不足之间寻找一种平衡的状态,也就是,模型需要在训练过程中掌握一个合适的迭代次数。

为了更有效地防止出现过度拟合,最好的方法使用更加完整的训练数据集,也就是,训练数据集必须覆盖模型期望处理的所有范围,更广泛的范围的训练数据集有利于更好的训练效果。

安装工具

如上所示,导入keras相关的正则化工具集regularizers、以及其他基础库。

Higgs数据集

该数据集是物理学上的实验数据集,包括数据样本数是11,000,000,而每个数据样本包括28个特征,以及一个二元分类的标签。

如上所示,从教育机构下载Higgs的实验数据,使用 CsvDataset工具解压以及读取Csv格式的数据集。

如上所示,定义一个函数,处理Csv格式的数据集的每行数据样本,并且返回每行数据样本的特征与标签,其中,label是标签,features是特征。

(未完待续)

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

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

相关文章

考研数学660刷题记录

🐢🐢 基本概念-基本理论-基本方法 🐢🐢 660刷题记录 二轮复刷标志 ⭐:掌握不熟练 ⭐⭐:是基本方法的组合,但没解出来 ⭐⭐⭐:很难想到这种破局的手段 序号①、②:表示多…

【阶段一】Python快速入门02篇:数据结构-列表

本篇的思维导图: 数据结构-列表 列表的概念 列表(list)是用来存储一组有序数据元素的数据结构,元素之间用逗号分隔。列表中的数据元素应该包括在方括号中,而且列表是可变的数据类型,一旦创建了一个列表,你可以添加、删除或者搜索列表中的元素。在方括号中的数据可以是 i…

小程序:会议OA其他页面

目录 会议管理 一,自定义tabs组件 二,会议管理 父子组件传参演示 个人中心 会议管理 一,自定义tabs组件 文档参考:自定义组件 | 微信开放文档微信开发者平台文档https://developers.weixin.qq.com/miniprogram/dev/framework/custom-co…

MacBook 与其他设备的低成本高性能数据传输方案

本篇文章分享在不使用路由器的情况下,使用“数据线或网线”将 MacBook 与其他设备连接在一起,获得更高效率的数据交换性能。 写在前面 最近考虑将 Mac 设备和其他的设备连在一起使用,比如之前在“廉价的家用工作站方案:前篇”或…

利用Python实现酒店评论的中文情感分析,含数据集

利用Python实现酒店评论的情感分析 完整代码下载地址:利用Python实现酒店评论的中文情感分析 情感极性分析,即情感分类,对带有主观情感色彩的文本进行分析、归纳。情感极性分析主要有两种分类方法:基于情感知识的方法和基于机器学…

抽象类和接口1

目录 🌤️抽象类概念 🌤️抽象类语法 🌤️抽象类的作用 ⛅接口的概念 ⛅接口的语法 ⛅接口的使用 ⛅接口的特性 ....... 🌤️抽象类概念 在面向对象的概念中,所有对象都是通过类来描述的,但并不是所有的…

上手华为鸿蒙手表gt系列从准备到发布

文章目录1、前期准备2、证书&签名3、编码&发布FQA:问题1:The graphic card OpenGL version is too old for Previewer to work. It must be 3.2 or later. Update the OpenGL driver based on the graphics card model.问题2:编译成HAp,报错 ent…

[UE笔记]延迟与延迟补偿

Lag即延迟,是多人游戏中常会出现的一个现象。lag compensation即延迟补偿,是一种减少延迟对游戏造成影响的技术。 Ping 多个含义 一种指令(用于验证ip地址是否存在或者主机是否正在运行)描述服务器需要多长时间响应客户端的输入…

OpenCV实战——使用邻居访问扫描图像

OpenCV实战——使用邻居访问扫描图像0. 前言1. 图像锐化2. 邻居访问扫描图像3. 锐化滤波器4. 完整代码相关链接0. 前言 在图像处理中,有时需要根据某个像素的相邻像素的值计算该像素位置的值。当这个邻域包括上一行和下一行的像素时,就需要同时扫描图像…

JavaScript高级 浏览器的渲染原理与JavaScript代码执行原理

浏览器的渲染原理1. 网页的解析过程2. 浏览器内核1. V8引擎3. 浏览器渲染过程1. HTML解析2. 生成CSS规则3. 构建Render Tree4. 布局(layout)5. 绘制(Paint)4. 回流和重绘解析1. 回流2. 重绘3. web 性能优化4. 合成和性能优化5. 浏…

剑指offer----C语言版----第六天

目录 1. 用栈实现队列 1.1 题目描述 1.2 栈和队列的基础知识 1.3 思路分析 2. 扩展题目——用队列实现栈 2.1 题目描述 2.2 思路分析 1. 用栈实现队列 原题链接: 剑指 Offer 09. 用两个栈实现队列 - 力扣(LeetCode)https://leetcode.cn/…

数据结构集合框架与大O渐进表示法

作者:爱塔居的博客_CSDN博客-JavaSE领域博主 专栏:数据结构 作者简介:大三学生,希望跟大家一起进步!🌹 博客简介:了解数据结构,学习一些关于数据结构的前置知识 文章目录 目录 文章目…

【论文翻译】Deep Learning for Multi-view Stereo via Plane Sweep: A Survey(2021)

一、论文简述 1. 第一作者:Qingtian Zhu 2. 发表年份:2021 3. 发表期刊:CVPR 4. 关键词:MVS、深度学习、综述 5. 核心思想:读到的第一篇深度MVS的综述,总结的很好,内容涵盖了2021年前的研究…

遗传算法python进阶理解+论文复现(纯干货,附前人总结引路)

遗传算法python进阶理解论文复现(纯干货,附前人总结引路)一、简介和相关概念遗传算法简介相关概念介绍二、与其他智能优化算法的比较蚁群算法粒子群优化算法人工神经网络算法模拟退火算法鱼群算法三、必学知识(站在前人的肩膀上&a…

1214. 波动数列(推公式 + DP)

题目如下: 思路 or 题解: 我们可以设: 第一个数为 xxx d {a, -b} 那后续的数为:xd1x d_1xd1​ , xd1d)2x d_1 d_)2xd1​d)​2 … … xd1d2......dn−1x d_1 d_2 ... ... d_{n - 1}xd1​d2​......dn−1​ 根据题意和上面…

(Java高级教程)第二章Java多线程常见面试题-第三节:线程安全集合类和死锁

文章目录一:线程安全集合类(1)多线程环境下使用ArrayList(2)多线程环境使用队列(3)多线程使用哈希表二:死锁(1)概念(2)死锁产生的四个…

(小程序)会议OA项目-首页

目录 一、FIex布局简介 1.什么是flex布局? 2.flex属性 学习地址: 3.flex弹性布局演示 ① 容器的属性 ⑴ flex-direction属性 ⑵ flex-wrap属性 ⑶ flex-flow ⑷ justify-content属性 ⑸ align-items属性 ⑹ align-content属性 二、轮播图组件m…

微信记录怎么恢复?恢复已删除微信历史记录的4种方式

恢复已删除微信历史记录的4种方式 如何在有/没有备份的情况下在 iPhone 和 Android 上恢复旧的或已删除的微信历史记录,如聊天对话、语音消息、照片、图片和视频剪辑?参考本指南,祝您成功恢复微信数据。 关于微信数据恢复 “说真的&#xf…

容器化技术Docker与任务编排

Docker容器化 Docker简介 传统的Java项目部署需要自己进行打包,redis,nignx等中间件需要安装以及进行很多配置,稍微繁琐,而Docker使用了容器化的技术把这一过程封装为一条指令解决,而这取决于它的架构设计&#xff0c…

数值优化之函数高阶信息

本文ppt来自深蓝学院《机器人中的数值优化》 目录 1 函数高阶信息的介绍 2 函数高阶信息的计算 1 函数高阶信息的介绍 hessian矩阵是对称矩阵,最后一个公式是函数关于0的泰勒展开 负梯度是函数下降的最快方向 注意区分Hessian矩阵与Jacobian矩阵,Hess…