TensorFlow之过拟合与欠拟合-3

news2024/11/17 11:41:15

1 基本概念

过度拟合(overfit)

正则化(regularization)

L1正则化(L1 regularization)

L2正则化(L2 regularization)

删除正则化(dropout regularization)

提早停止(early stopping)

离群值

2 过拟合与欠拟合

安装工具

Higgs数据集

演示过度拟合

训练过程

构建细模型(Tiny model)

构建小模型(Small model)

构建中模型(Medium model)

构建大模型(Large model)

分析模型

如上所示,使用图形统计分析的方式体现以上构建的细模型、小模型、中模型以及大模型的训练数据集以及验证数据集的损失值随着迭代次数的变化。其中,实线表示训练数据集的损失值,虚线表示验证数据集的损失值。

由前面定义的编译以及训练模型的函数可知,以上所有的模型都是使用callbacks.EarlyStopping的方式进行正则化的处理,在模型训练的损失值不能再优化的时候结束训练数据的迭代。

虽然构建一个大模型用于机器学习能获得更大容积能力,但是如果容积能力没有被权衡与约束,则很容易发生过度拟合训练数据的情况。

细模型的训练损失值以及验证损失值的拟合过程几乎相同,而大模型的训练损失值与验证损失值的拟合过程的速度非常快,很明显大模型的训练效果是过度拟合。

根据图形的显示分析,训练损失值与验证损失值的拟合的过程具有以下的特点:

  •  对于某个模型,训练损失值与验证损失值的曲线走向没有太大的差别

  • 如果训练损失值与验证损失值的曲线走向是相同的,则该模型的训练效果很好

  • 如果验证损失值的曲线走向开始达到峰值,而训练损失值的曲线走向继续向上,则可能是接近过度拟合

  • 如果验证损失值的曲线走向是错误的方向,则该模型的训练效果几乎是过度拟合

防止过度拟合的策略

如上所示,使用正则化防止过度拟合的操作之前,基线化细模型的训练日志文件。其中,regularizer_histories定义用于正则化细模型。

增加权重正则化

在某些事实中,给定对某件事情的两种解释,则简单的解释似乎是最合理的解释,因为,简单的解释包含简单的逻辑或者假想。这些事实也可以运用到神经网络模型的学习中,假设,给定一些用于训练的数据样本以及一个网络架构,以及各种不同的权重集用于解释这些训练数据,则模型越简单出现过度拟合的可能性越低。

简单模型是指参数较少的模型(参数值的分布属于低熵),减轻过度拟合的通常做法是减少权重值(权重值较小),从而使得权重值的分布更加正则,从而降低网络模型的复杂度,这种方式被称之为权重正则化,其实现方式是给损失函数值增加一个与高权重相关的损耗,其包括如下两种方式:

  •  L1正则化,按照权重值增加损耗

  • L2正则化,按照权重值的平方增加损耗

正如前面所述,L1正则化机制将一些权重设置为0,从而使得训练的特征矩阵变得稀疏,而L2正则化机制将一些权重设置为接近于0但是不等于0,并没有使得训练的特征矩阵变稀疏,因此,L2正则化机制更加常用。

如上所示,l2(0.001)使用L2正则化机制,其计算方式是将0.001 * (weight_coefficient_value的平方)的值增加到网络的总损失值,其中,weight_coefficient_value是权重值。

如上所示,使用图形的方式体现细模型与大模型在每次迭代训练中的二元分类交叉嫡的关系,其中,L2 Train是大模型训练数据的L2正则化,L2 Val是大模型验证数据的L2正则化,Tiny Train是细模型训练数据,Tiny Val是细模型验证数据,从图形中可知,L2大模型正则化机制表现得更快更好。

如上所示,从前面构建的L2正则化大模型中获取损失值。

增加删除正则化

删除正则化机制在神经网络中是一种非常高效以及最常用的正则化技术。其随机删除特征集合中的特征值,例如,对于特征集[0.2, 0.5, 1.3, 0.8, 1.1],使用删除正则化机制随机删除一部分特征之后,变成[0, 0.5, 1.3, 0, 1.1],其中,0.2以及0.8的特征值被删除,其选择常用的因子是0.2或者0.5(删除的比例)。

如上所示,对大模型的每层设置删除正则化,其中,Dropout(0.5)表示其随机选择的因子是0.5,该模型设置4个全连接层、每层设置512个处理单元。

如上所示,L2正则化机制以及删除正则化机制都改善了大模型的训练效率以及训练效果,但是,总体上,还是细模型的训练效果最好。

L2与删除正则化机制的组合

如上所示,综合使用L2正则化机制与删除正则化机制构建大模型。

如上所示,综合L2与删除正则化机制的大模型获得最好的训练效果,其中,Tiny Train是细模型训练数据,Tiny Val是细模型验证数据,L2 Train是L2正则化的大模型训练数据,L2 Val是L2正则化的大模型验证数据,Dropout Train是删除正则化的大模型训练数据,Dropout Val是删除正则化的大模型验证数据,Combined Train是综合正则化的大模型训练数据,Combined Val是综合正则化的大模型验证数据。

(未完待续)

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

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

相关文章

【计组】异常、CPU指令集--《深入浅出计算机组成原理》(五)

课程链接:深入浅出计算机组成原理_组成原理_计算机基础-极客时间 一、异常 (一)异常 异常其实是一个硬件和软件组合到一起的处理过程。异常的发生和捕捉,是在硬件层面完成的。但是异常的处理,是由软件来完成的。 …

【并发编程十】c++线程同步——条件变量(condition_variable)

【并发编程十】c线程同步——条件变量(condition_variable)一、互斥二、条件变量1、为何要引入条件变量?2、不使用条件变量3、使用条件变量3.1、互斥锁有什么问题?3.2、条件变量3.3、条件变量成员函数3.4、demo三、future四、信号量简介&…

【并发编程九】c++线程同步——互斥(mutex)

【并发编程九】c线程同步——互斥(mutex)一、互斥1、mutex1.1、mutex1.2、 lock_guard1.3、 RAII2、std::recursive_mutex3、std::shared_mutex、std::shared_lock、std::unique_lock4、std::scoped_lock二、条件变量三、future四、信号量简介&#xff1…

chrony服务器

Chrony是一个开源自由的网络时间协议 NTP 的客户端和服务器软软件。它能让计算机保持系统时钟与时钟服务器(NTP)同步,因此让你的计算机保持精确的时间,Chrony也可以作为服务端软件为其他计算机提供时间同步服务。 Chrony由两个程序…

【嵌入式Linux环境搭建-10】tftp服务安装、双网卡并行

10.tftp服务安装 板子有有线网卡,需有线连接到电脑 主机安装TFTP服务 $ sudo apt-get install xinetd tftpd tftp $ sudo vim /etc/xinetd.d/tftp /*添加下面内容, service tftp { protocol udp port 69 socket_type dgram wait …

aws lambda 理解RIC和RIE构建和测试容器镜像并通过cdk部署lambda函数

参考资料 AWS Lambda 的新功能 — 容器映像支持 快速构建基于 Lambda 容器镜像的 OCR 应用 利用 Lambda 容器镜像搭建分布式压测引擎 lambda容器镜像构建 可以将 Lambda 函数打包和部署最大 10 GB 的容器映像,轻松构建和部署依赖于大量依赖项的更大型工作负载 …

【Java核心技术】创建多线程

1、多线程的概述 什么是线程&#xff1f; 线程(thread)是一个程序内部的一条执行路径。 我们之前启动程序执行后&#xff0c;main方法的执行其实就是一条单独的执行路径。 public static void main(String[] args) {// 代码...for (int i 0; i < 10; i) {System.out.prin…

《柳叶刀》:约20%中国男性死亡可归因于吸烟

*仅供医学专业人士阅读参考 吸烟喝酒可谓众所周知的两大“健康刺客”。一首歌名为《给我一杯酒》中的歌词唱到“给我一杯酒&#xff0c;再给我一只烟&#xff0c;说走就走&#xff0c;我有的是时间”&#xff0c;传唱度极高&#xff0c;甚至还一度成为短视频平台的最热门的BGM之…

概论_第2章_重点内容__随机变量函数的概率分布

一 定义 概括地说&#xff1a; 随机变量Y是随机变量X的函数。 设g(x) 是一给定的连续函数&#xff0c; 称Yg(X) 为随机变量X的一个函数&#xff0c; Y也是一个随机变量。当X取值 时&#xff0c;Y取值 . ~~~~~~~~~~~~~~ 本文讨论连续型随机变量函数。 定理1: 设X为连续型…

Appium环境搭建及元素定位

01 Appium简介 Appium是一个开源测试自动化框架&#xff0c;可用于原生&#xff0c;混合和移动Web应用程序测试。它使用WebDriver 协议驱动iOS&#xff0c;Android和Windows应用程序。 01 环境搭建步骤 Appium环境安装&#xff1a; 第一步 安装 appium 桌面版客户端 Appium…

Linux挂载磁盘命令

需求&#xff1a; 只有一个硬盘&#xff0c;创建多个挂载点 参考&#xff1a;linux如何实现挂载—linux_是小明同学啊的博客-CSDN博客_linux挂载 1 查看当前挂载情况 执行 df -h&#xff0c; 查看当前 / 根目录下挂载的分区名&#xff0c;在下图中为倒数第三行&#xff0c; …

html练习

1. 2. 3. <h1>各科小常识</h1> <h3>语文</h3> <p> 三国演义是中国四大古典名著之一&#xff0c;元末明初小说家罗贯中所著。是中国第一部章回体历史演义的小说&#xff0c;描写了从东汉末年到西晋初年近100年的历史风云。</p> <hr&g…

Ubuntu20.04 LTS 安装 ros Noetic 树莓派4/PC

Ubuntu 20.04 LTS 安装树莓派系统. 主要参考了这两篇文章&#xff1a; https://blog.csdn.net/liangforcold/article/details/126385774 https://blog.csdn.net/yangcunbiao/article/details/123056806 https://blog.csdn.net/duping812/article/details/110391081 1、下载安…

【前端-NPM私服】内网使用verdaccio搭建私有npm服务器-docker搭建verdaccio流程

目录一、npm私服是什么1. 定义2. 为什么需要npm私服二、npm私服如何使用1. 链接到npm私服2. 注册私服账号3. 发布组件到私服4. 关联LDAP服务5. 提高下载速度三、私服搭建方案四、docker搭建Verdaccio流程1. 拉镜像2. 创建卷3. 启动容器4. 软链接卷到统一的目录5. 配置Verdaccio…

【node.js】npm包管理工具的使用

&#x1f973;博 主&#xff1a;初映CY的前说(前端领域) &#x1f31e;个人信条&#xff1a;想要变成得到&#xff0c;中间还有做到&#xff01; &#x1f918;本文核心&#xff1a;node.jsx中npm包管理工具的基础使用&#xff0c;包与依赖关系的介绍 下图为本文的核心 目…

rmq 主备自动切换模式

https://rocketmq.apache.org/zh/docs/deploymentOperations/16autoswitchdeploy/ https://github.com/apache/rocketmq/blob/develop/docs/cn/controller/design.md controller 端 leader选举 主备自动切换模式就是controller模式&#xff0c;controller可以嵌入name serve…

ccc-sklearn-12-线性回归(2)

一、非线性问题&#xff1a;多项式回归 主要探讨&#xff1a;通过线性回归解决非线性问题 数据的线性与非线性 通常情况下&#xff0c;分类问题中决策函数往往是一个分段函数&#xff0c;这个函数明显不满足可以用一条直线进行表示的属性&#xff0c;因此分类问题中特征与标签[…

若依整合第三方登录

0&#xff1a;以gitee为例&#xff0c;首先开通gitee第三方登录&#xff1a;&#xff08;在设置里面的第三方应用里面新建&#xff09; 0.1&#xff1a;后端引入JustAuth第三方登陆框架&#xff1a; <dependency><groupId>me.zhyd.oauth</groupId><artif…

H5UI库、加密技术和二维码

一、H5UI库 1. 使用方法&#xff1a; ​ &#xff08;1&#xff09;页面中引入css文件 ​ h5ui.css &#xff08;h5ui.min.css&#xff09; ​ &#xff08;2&#xff09;页面中引入js文件 ​ ​ jquery.min.js ​ ​ h5ui.min.js 2. 组件…

十五、Kubernetes中Pod生命周期详解、实例

1、概述 我们一般将pod对象从创建至终的这段时间范围称为pod的生命周期&#xff0c;它主要包含下面的过程&#xff1a; pod创建过程 运行初始化容器&#xff08;init container&#xff09;过程 运行主容器&#xff08;main container&#xff09; 容器启动后钩子&#xff0…