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

news2024/11/26 8:41:42

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

  • 模型选择
    • 训练误差和泛化误差
    • 验证数据集和测试数据集
      • 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
在这里插入图片描述
计算 x i ′ x_i' xi的期望,仍然与 x x x的期望相同,没有产生变化
E [ x i ′ ] = p ∗ 0 + ( 1 − p ) x i / ( 1 − p ) = x i E[x_i'] = p * 0 + (1-p) x_i /(1-p) = x_i E[xi]=p0+(1p)xi/(1p)=xi

使用丢弃法

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

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

推理(预测)中的丢弃法

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

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

总结

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

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

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

相关文章

关于最近大热的AI,你怎么看?

AI人工智能,相信大家都不陌生,也都接触过不少。但是最近小编在网上冲浪的时候发现各大媒体又掀起了一阵AI热潮,AI不是很常见了吗?是又有什么新的发展吗? 带着强烈的好奇心,我在地铁上读完了一篇关于Chatgp…

【分享】如何通过集简云将ChatGPT人工智能接入到您的内容平台中?

ChatGPT是一款非常强大的人工智能产品,可以有创造性的回复和创作文字,图片,适用于很多办公场景。这篇文章将介绍如何将ChatGPT接入到您的办公系统中。 目前集简云提供了两个ChatGPT应用: OpenAI(ChatGPT)内置:这个是集…

IB化学考什么?这些知识点请收藏

春天来了,IB大考还会远吗?不少学生为IB大考紧张不已。为大家介绍一下IB化学的相关内容。01考试时间和考试形式 2023年IB考试将于2023年4月27日开始,2023年5月19日结束。化学部分的考试分别是在5月11日、12日进行。 IB化学考试包括&#xff1a…

LeetCode刷题--- 61. 旋转链表(快慢指针+闭合为环)

💌 所属专栏:【LeetCode题解(持续更新中)】 😀 作  者:我是夜阑的狗🐶 🚀 个人简介:一个正在努力学技术的码仔,专注基础和实战分享 ,欢迎…

cors跨域问题

CORS CORS,全称Cross-Origin Resource Sharing,是一种允许当前域(domain)的资源(比如html/js/web service)被其他域(domain)的脚本请求访问的机制,通常由于同域安全策略(…

如何设计一个秒杀系统

秒杀系统要如何设计? 前言 高并发下如何设计秒杀系统?这是一个高频面试题。这个问题看似简单,但是里面的水很深,它考查的是高并发场景下,从前端到后端多方面的知识。 秒杀一般出现在商城的促销活动中,指定…

Cosmos 基础 -- Ignite CLI(二)Module basics: Blog

一、快速入门 Ignite CLI version: v0.26.1 在本教程中,我们将使用一个模块创建一个区块链,该模块允许我们从区块链中写入和读取数据。这个模块将实现创建和阅读博客文章的功能,类似于博客应用程序。最终用户将能够提交新的博客文章&#x…

计算机网络学习笔记(一)

网络是由若干接点和连接这些结点的链路组成。 多个网络通过路由器互联起来构成覆盖范围更大的互联网。 普通用户通过ISP接入因特网。 基于ISP的三层结构因特网 相隔较远的两台主机间通信可能需要经过多个ISP。 有电路交换,报文交换,分组交换三种交换方…

【并发编程】LockSupport源码详解

目录 一、前言 1.1 简介 1.2 为什么说LockSupport是Java并发的基石? 二、LockSupport的用途 2.1 LockSupport的主要方法 2.2 使用案例 2.3 总结 三、LockSupport 源码分析 3.1 学习原理前的前置知识 3.1.1 Unsafe.park()和Unsafe.unpark() 3.1.2wait和notify/notify…

MyEclipse技术全面解析——EJB开发工具介绍(一)

MyEclipse v2022.1.0正式版下载1. MyEclipse EJB开发工具Enterprise Java Beans (EJB) 已经成为实现Java企业业务功能和与数据库资源接口的Java EE 5标准,MyEclipse EJB3工具支持Java EE 5简化的基于注释的POJO编程模型,这些工具使开发人员能够在几分钟内…

微信怎么群发消息给所有人?图文教学,快速弄懂

​微信作为很多小伙伴经常使用的工具,无论是学习、工作还是其他方面都会使用到。有些时候,需要将同一条消息发给通讯录里的大多数人,一条一条的转发太慢了,群发消息给所有人是个不错的办法。微信怎么群发消息给所有人?…

广东省基层就业补贴

基层就业补贴链接:https://www.gdzwfw.gov.cn/portal/v2/guide/11440309MB2D27065K4440511108001 一.申请条件: 1、劳动者到中小微企业、个体工商户、社会组织等就业,或到乡镇(街道)、村居社会管理和公共服务岗位就业…

spring cloud篇——什么是服务熔断?服务降级?服务限流?spring cloud有什么优势?

文章目录一、spring cloud 有什么优势二、服务熔断2.1、雪崩效应2.2、DubboHystrixCommand三、服务降级四、服务限流4.1、限流算法4.2、应用级限流4.3、池化技术4.4、分布式限流4.5、基于Redis 功能的实现限流4.6、基于令牌桶算法的实现4.6.1 、Java实现一、spring cloud 有什么…

GUI swing和awt

GUI(Graphical User Interface,简称 GUI,图形用户界面)是指采用图形方式显示的计算机操作用户界面,与早期计算机使用的命令行界面相比,图形界面对于用户来说在视觉上更易于接受。Java GUI主要有两个核心库&…

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

文章目录认识TCP协议TCP协议的格式字段的含义序号与确认号六个标志位窗口大小确认应答(ACK)机制超时重传机制连接管理机制三次握手四次挥手滑动窗口流量控制拥塞控制延迟应答捎带应答面向字节流粘包问题TCP异常情况总结认识TCP协议 传输控制协议 (TCP,T…

多边形网格算法笔记

本文是处理多边形和网格的各种笔记和算法。 推荐:使用 NSDT场景设计器 快速搭建 3D场景。 1、表面简化 下面描述了一种方法,用于减少构成表面表示的多边形数量,同时仍试图保留表面的基本形式。 如果正在为渲染和/或交互环境寻求性能改进&…

【CS224图机器学习】task1 图机器学习导论

前言:本期学习是由datawhale(公众号)组织,由子豪兄讲解的202302期CS224图机器学习的学习笔记。本次学习主要针对图机器学习导论做学习总结。1.什么是图机器学习?通过图这种数据结构,对跨模态数据进行整理。…

增减序列(差分)

分析:要想把整个数组变为同一个数,我们可以根据差分的思想来做。 差分定义:b[1]a[1] b[2]a[2]-a[1] ...... b[i]a[i]-a[i-1] 由定义可知,可以把b[2]~b[n]全部变为0,那么整个数组就一样了。现在问题转换为如何用最少的…

Seata-Server分布式事务原理加源码 (八) - Seata-XA模式

Seata-XA模式 Seata 1.2.0 版本重磅发布新的事务模式:XA 模式,实现对 XA 协议的支持。 我们从三个方面来深入分析: XA模式是什么?为什么支持XA?XA模式如何实现的,以及如何使用? XA模式 首先…

shell学习1

目录 一、echo 1.1 echo 1.2 打印彩色文本 1.3 打印彩色背景 二、printf 三、变量和环境变量 3.1 查看某个进程的环境变量 3.2给变量赋值。varvalue 3.3 给环境变量赋值 3.4 获取变量的长度 3.5 识别当前所使用的shell 3.6 检查是否为超级用户 四、数学运算 4.1 …