当前位置: 首页 > news >正文

DIDL3_模型选择、复杂度、过欠拟合的相关概念

模型选择、复杂度、过欠拟合的概念

  • 模型选择
    • 训练误差和泛化误差
    • 验证数据集和测试数据集
      • K-则交叉验证(没有足够多数据时使用)
  • 过拟合和欠拟合
    • 模型容量
      • 模型容量的影响
      • 估计模型容量
    • 控制模型容量
    • 数据复杂度
  • 处理过拟合的方法(1):权重衰退
    • 参数更新法则
  • 处理过拟合的方法(2):丢弃法
    • 无偏差的加入噪音
    • 使用丢弃法
    • 推理(预测)中的丢弃法
    • 总结

模型选择

  • 训练数据集:训练模型参数
  • 验证数据集:选择模型超参数(学习率、批量大小、隐藏大小)
  • 非大数据集上通常使用K-折交叉验证
    通过K折平均误差来判断一个参数的好坏,对每一个超参数都会得到一个交叉验证的平均精度,将最好的精度选出来,作为我们采用的超参数

训练误差和泛化误差

  • 训练误差:模型在训练数据上的误差
  • 泛化误差:模型在新数据上的误差

验证数据集和测试数据集

  • 验证数据集:一个用来评估模型好坏的数据集(不要和训练数据集混在一起,例如拿出50%的训练数据)
  • 测试数据集:只用一次的数据集

K-则交叉验证(没有足够多数据时使用)

算法:

将训练数据分割成K块
For i=1, ..., K使用第i块作为验证数据集,其余的作为训练数据集
报告K各验证集误差的平均

常用:K=5或10

过拟合和欠拟合

在这里插入图片描述
模型容量低——模型简单
模型容量高——模型复杂

模型容量

  • 模型容量指的是拟合各种函数的能力
  • 低容量的模型难以拟合训练数据
  • 高容量的模型可以记住所有的训练数据

模型容量的影响

在这里插入图片描述

估计模型容量

  • 难以在不同的种类算法之间比较(例如树模型和神经网络)
  • 给定一个模型种类,将有两个主要因素:参数的个数参数值的选择范围
    在这里插入图片描述

控制模型容量

使用均方范数作为硬性限制

  • 通过限制参数值的选择范围来控制模型容量
    在这里插入图片描述

  • 冗长不限制偏移b(限不限制都差不多)

  • 小的 意味着更强的正则项

数据复杂度

多个重要因素:

  • 样本个数
  • 每个样本的元素个数
  • 时间、空间结构
  • 多样性

处理过拟合的方法(1):权重衰退

一般来说,不会直接使用“均方范数作为硬性限制”优化函数,因为它优化起来相对麻烦一些。

常用均方范数作为柔性限制
对每个θ,都可以找到λ使得之前的目标函数等价于下面

  • 可以通过拉格朗日乘子来证明
    在这里插入图片描述

超参数λ控制了正则项的重要程度

  • λ = 0 : 无作用
  • λ->∞ , w* -> 0

如果想把模型复杂度控制地比较低,可以通过增加λ来满足,此时λ不再是一个硬性的限制(所有的值都小于某个值),变成了柔性的限制(更平滑)

参数更新法则

在这里插入图片描述

  • 权重衰退通过L2正则项使得模型参数不会过大,从而控制模型复杂度
  • 正则项权重是控制模型复杂度的超参数

处理过拟合的方法(2):丢弃法

效果可能会比权重衰退更好。
动机:

  1. 一个好的模型需要对输入数据的扰动鲁棒
  • 使用有噪音的数据等价于Tikhonov正则(加入数据的噪音,之前是固定噪音,现在是随机噪音,不断地随机加噪音)
  • 丢弃法:在层之间加入噪音(丢弃法,不在输入加噪音,在层之间加入噪音,其实是一个正则的)

无偏差的加入噪音

假设 x 是一层到下一层的输出,我们对x加入噪音得到 x’,虽然加入了噪音但我们希望加入的噪音不改变期望E
在这里插入图片描述
计算xi′x_i'xi的期望,仍然与xxx的期望相同,没有产生变化
E[xi′]=p∗0+(1−p)xi/(1−p)=xiE[x_i'] = p * 0 + (1-p) x_i /(1-p) = x_iE[xi]=p0+(1p)xi/(1p)=xi

使用丢弃法

drop out使用的地方:通常将丢弃法作用在隐藏全连接层的输出上。

  • 假设有第一层(第一个隐藏层):输入xxx✖️权重W1W_1W1➕偏移b1b_1b1,再将其加上激活函数后,得到hhh就是第一个隐藏层的输出;
  • 对于第一个隐藏层,使用drop out,将h中间每一个元素作用dropout,使p趋近于0(p为超参数)
    在这里插入图片描述
  • 第二层,拿到的输入是把前面一层输出的一些元素变成0(如h2h_2h2h5h_5h5变成零)的结果(随机挑选神经元扔出窗外)
    在这里插入图片描述

推理(预测)中的丢弃法

正则项只在训练中使用:他们影响模型参数的更新
在推理过程中,丢弃法直接返回输入
h=dropout(h)h = dropout(h)h=dropout(h)
这样也能保证确定性的输出。

总结:在训练中使用dropout,而在推理(预测过程)中不使用dropout。因为dropout是一个正则项,正则项只在训练中使用,因为它只会对权重产生影响;当我们在预测的时候,权重不需要发生变化,此时不需要正则,在推理中dropout输出的是它本身(对数据没有任何操作)

总结

  • 丢弃法将一些输出项随机置0来控制模型复杂度
  • 常作用在多层感知机的隐藏层输出上
  • 丢弃概率是控制模型复杂度的超参数(如果p=1,就是全部丢掉;p=0,就是没有被丢弃;一般取0.9、0.5、0.1)

相关文章:

DIDL3_模型选择、复杂度、过欠拟合的相关概念

模型选择、复杂度、过欠拟合的概念模型选择训练误差和泛化误差验证数据集和测试数据集K-则交叉验证(没有足够多数据时使用)过拟合和欠拟合模型容量模型容量的影响估计模型容量控制模型容量数据复杂度处理过拟合的方法(1)&#xff…...

Android 9.0 去除锁屏界面及SystemUI无sim卡拨打紧急电话控件显示功能实现

1.1概述 在9.0的系统rom定制化开发中,关于SystemUI的定制化功能也是比较多的,在SystemUI的锁屏页面和状态栏提示无sim卡拨打紧急电话控件显示等相关提示 的功能中,在有些systemui的定制中是不需要这些功能的,所以需要从systemui中去掉这些功能提示的,这就需要从systemui中…...

AntDB-M设计之内存结构

亚信科技专注通信行业多年,AntDB数据库从诞生开始,就面对通信级的大数据量应用场景挑战,在性能、稳定性、规模化等方面获得了超过10年的通信核心业务系统验证,性能峰值达到每秒百万的通信核心交易量。AntDB-M(AntDB内存…...

互联网舆情监测公司监测哪些内容,TOOM北京舆情监测公司

互联网舆情监测公司是一种提供舆情监测、分析和管理服务的公司,其业务主要涉及互联网舆情监测、数据分析、报告撰写、危机处理等方面。这些公司通过使用各种技术和工具,帮助客户监测他们在互联网上的声誉和品牌形象,并提供相应的建议和解决方…...

一篇文章带你熟练使用Ansible中的playbook

目录 一、Playbook的功能 二、YAML 1、简介 2、特点 3、语法简介 4、YAML 列表 5、YAML的字典 三、playbook执行命令 四、 Playbook的核心组件 五、vim 设定技巧 练习 一、Playbook的功能 playbook 是由一个或多个play组成的列表 Playboot 文件使用YAML来写的 二、…...

HashedWheelTimer

序言这种算法是一种轮询算法的优化升级,能够以只有一个Timer的情况下处理大量的定时任务.Begin结合HashedWheelTimer的思想根据自然时间1分钟为例,来做大批量的定时任务触发首先定一个长度为60的数组,数组中存放的是Set集合,集合里面是任务详情.当有定时任务刚来的时候判断是否…...

OPenCV库移植到ARM开发板子上面配置过程

步骤一 1,环境准备去下载opencv官方的源码。 我这里用的是opencv-4.5.5版本的 2,还需要交叉编译工具一般,你交叉编译的工具板子厂家会提供工具,最好还是用板子厂家提供的交叉编译工具,因为我之前编译试过其他的交叉…...

Jenkins实现CI/CD

Jenkins是一个开源的持续集成和持续交付(CI/CD)解决方案,它可以自动执行构建、测试和部署等任务,从而简化了开发工作流程。本文将详细介绍如何使用Jenkins实现CI/CD。 首先,您需要安装Jenkins并启动它。您可以通过以下…...

如何给img标签里的请求添加自定义header

是这样的需求,有一个web页面,里面图片的上传和预览来自于一个独立的文件服务器,对http的请求需要进行访问权限的设置,就是在请求的header里加一个Authorization的字段。上传好说我用的Axios直接添加一个header就行了,但…...

Linux系统基本概念操作,用户和文件权限管理

常用快捷键和通配符常用快捷键按键作用Ctrld键盘输入结束或退出终端Ctrls暂停当前程序,暂停后按下任意键恢复运行Ctrlz将当前程序放到后台运行,恢复到前台为命令fgCtrla将光标移至输入行头,相当于Home键Ctrle将光标移至输入行末,相…...

数据库中的单表查询和多表查询

一、单表查询素材: 表名:worker-- 表中字段均为中文,比如 部门号 工资 职工号 参加工作 等 CREATE TABLE worker (部门号 int(11) NOT NULL,职工号 int(11) NOT NULL,工作时间 date NOT NULL,工资 float(8,2) NOT NULL,政治面貌 varchar(10) …...

全网详解MyBatis-Plus LambdaQueryWrapper的使用说明以及LambdaQueryWrapper和QueryWapper的区别

文章目录1. 文章引言2. 代码演示3. 分析LambdaQueryWrapper3.1 引入LambdaQueryWrapper的原因3.2 LambdaQueryWrapper和QueryWapper的区别4. 重要总结1. 文章引言 今天在公司写代码时,发现同事使用LambdaQueryWrapper来查询数据,而我一直习惯使用QueryW…...

暴力破解(new)

数据来源 本文仅用于信息安全的学习,请遵守相关法律法规,严禁用于非法途径。若观众因此作出任何危害网络安全的行为,后果自负,与本人无关。 01 暴力破解介绍及应用场景 》暴力破解介绍 》暴力破解字典 GitHub - k8gege/Passwor…...

Android12之apex调试

1.问题在调试libtinyalsa.so中添加log后,但是发现push so后,却没有log打印,why?2.分析以下为libtinyalsa.so的位置/system/lib64/libtinyalsa.so /system/lib/libtinyalsa.so /apex/com.android.vndk.v31/lib64/libtinyalsa.so /a…...

Python - 数字(Number)数据类型常用操作

目录数字运算类型转换数学函数数学库math、cmathmath 模块常量math 模块方法随机函数库 randomrandom 模块方法保留小数到指定位数三角函数数字运算 :用于给变量赋值type(x):查看数据所属类型isinstance(x, A_tuple):判断数据是否为预期类型…...

QT(51)-动态链接库-windows

1.qt- 调用win32 DLL 2.qt- 调用MFC DLL 0概述: 01.扩展DLL: 必须有一个DllMain()函数,且调用AfxInitExtensionModule()函数。 CRuntimeClass类-初始化函数CDynLinkLibrary。02.windows定位DLL文件: 1&#xff09…...

[Vivado那些事儿]将自定义 IP (HDL)添加到 Vivado 模块设计(Block Design)

绪论使用Vivado Block Design设计解决了项目继承性问题,但是还有个问题,不知道大家有没有遇到,就是新设计的自定义 RTL 文件无法快速的添加到Block Design中,一种方式是通过自定义IP,但是一旦设计的文件有问题就需要重…...

开学必备数码清单,大学生开学必备数码好物分享

还有很多小伙伴不知道开学应该准备什么,在学校当中需要用到的数码产品,在宿舍娱乐使用的音箱、学习当中使用到的笔记本,这些都是我们可以准备的,还有一个小众的好物,能够让我们在学校当中提升生活的幸福感,…...

【面试题】常见前端基础面试题(HTML,CSS,JS)

大厂面试题分享 面试题库后端面试题库 (面试必备) 推荐:★★★★★地址:前端面试题库html语义化的理解代码结构: 使页面在没有css的情况下,也能够呈现出好的内容结构有利于SEO: 爬虫根据标签来分配关键字的权重,因此可以和搜索引擎…...

Vue (4)

文章目录1. 绑定样式1.1 绑定 class 样式1.2 绑定 style 样式2. 条件渲染2.1 v-show2.2 v-if3. 列表渲染3.1 v-for3.2 key 的作用与原理3.3 列表过滤3.4 列表排序1. 绑定样式 说 绑定样式 前&#xff0c;先准备好 以下几个 样式 : <style>.basic {width: 400px;height: 1…...

基于算法竞赛的c++编程(28)结构体的进阶应用

结构体的嵌套与复杂数据组织 在C中&#xff0c;结构体可以嵌套使用&#xff0c;形成更复杂的数据结构。例如&#xff0c;可以通过嵌套结构体描述多层级数据关系&#xff1a; struct Address {string city;string street;int zipCode; };struct Employee {string name;int id;…...

Xshell远程连接Kali(默认 | 私钥)Note版

前言:xshell远程连接&#xff0c;私钥连接和常规默认连接 任务一 开启ssh服务 service ssh status //查看ssh服务状态 service ssh start //开启ssh服务 update-rc.d ssh enable //开启自启动ssh服务 任务二 修改配置文件 vi /etc/ssh/ssh_config //第一…...

python执行测试用例,allure报乱码且未成功生成报告

allure执行测试用例时显示乱码&#xff1a;‘allure’ &#xfffd;&#xfffd;&#xfffd;&#xfffd;&#xfffd;ڲ&#xfffd;&#xfffd;&#xfffd;&#xfffd;ⲿ&#xfffd;&#xfffd;&#xfffd;Ҳ&#xfffd;&#xfffd;&#xfffd;ǿ&#xfffd;&am…...

html css js网页制作成品——HTML+CSS榴莲商城网页设计(4页)附源码

目录 一、&#x1f468;‍&#x1f393;网站题目 二、✍️网站描述 三、&#x1f4da;网站介绍 四、&#x1f310;网站效果 五、&#x1fa93; 代码实现 &#x1f9f1;HTML 六、&#x1f947; 如何让学习不再盲目 七、&#x1f381;更多干货 一、&#x1f468;‍&#x1f…...

中医有效性探讨

文章目录 西医是如何发展到以生物化学为药理基础的现代医学&#xff1f;传统医学奠基期&#xff08;远古 - 17 世纪&#xff09;近代医学转型期&#xff08;17 世纪 - 19 世纪末&#xff09;​现代医学成熟期&#xff08;20世纪至今&#xff09; 中医的源远流长和一脉相承远古至…...

MySQL 8.0 事务全面讲解

以下是一个结合两次回答的 MySQL 8.0 事务全面讲解&#xff0c;涵盖了事务的核心概念、操作示例、失败回滚、隔离级别、事务性 DDL 和 XA 事务等内容&#xff0c;并修正了查看隔离级别的命令。 MySQL 8.0 事务全面讲解 一、事务的核心概念&#xff08;ACID&#xff09; 事务是…...

【从零开始学习JVM | 第四篇】类加载器和双亲委派机制(高频面试题)

前言&#xff1a; 双亲委派机制对于面试这块来说非常重要&#xff0c;在实际开发中也是经常遇见需要打破双亲委派的需求&#xff0c;今天我们一起来探索一下什么是双亲委派机制&#xff0c;在此之前我们先介绍一下类的加载器。 目录 ​编辑 前言&#xff1a; 类加载器 1. …...

Ubuntu系统多网卡多相机IP设置方法

目录 1、硬件情况 2、如何设置网卡和相机IP 2.1 万兆网卡连接交换机&#xff0c;交换机再连相机 2.1.1 网卡设置 2.1.2 相机设置 2.3 万兆网卡直连相机 1、硬件情况 2个网卡n个相机 电脑系统信息&#xff0c;系统版本&#xff1a;Ubuntu22.04.5 LTS&#xff1b;内核版本…...

leetcode73-矩阵置零

leetcode 73 思路 记录 0 元素的位置&#xff1a;遍历整个矩阵&#xff0c;找出所有值为 0 的元素&#xff0c;并将它们的坐标记录在数组zeroPosition中置零操作&#xff1a;遍历记录的所有 0 元素位置&#xff0c;将每个位置对应的行和列的所有元素置为 0 具体步骤 初始化…...

虚拟机网络不通的问题(这里以win10的问题为主,模式NAT)

当我们网关配置好了&#xff0c;DNS也配置好了&#xff0c;最后在虚拟机里还是无法访问百度的网址。 第一种情况&#xff1a; 我们先考虑一下&#xff0c;网关的IP是否和虚拟机编辑器里的IP一样不&#xff0c;如果不一样需要更改一下&#xff0c;因为我们访问百度需要从物理机…...