《动手学深度学习》笔记1.7——模型选择 + 过拟合-欠拟合

news2024/11/17 1:37:52

目录

1. 模型选择

1.1 训练误差 vs. 泛化误差

1.2 验证数据集 vs. 测试数据集

1.3 K-折交叉验证

1.4 总结

2. 过拟合与欠拟合(核心知识)

2.1 过拟合 vs. 欠拟合

2.2 模型容量

2.3 估计模型容量

2.4 VC维  衡量模型容量

2.5 数据复杂度

3. 代码样例 (过拟合 vs. 欠拟合)


1. 模型选择

1.1 训练误差 vs. 泛化误差

1.2 验证数据集 vs. 测试数据集

  • 验证数据集 (validation dataset不参加训练,用来调参 (调整模型结构),能够反映超参数的好坏
  • 测试数据集 (test dataset只能使用一次,不能用来调超参数

李沐老师:

  • 拿测试集来调参(当验证集使用)发论文,是很严重的事情
  • 验证数据集相当于模拟考试
  • 测试数据集相当于期末考试

李沐老师:

  • 咱教材里的test dataset并不是真正的测试数据集,本质上是验证数据集
  • 真正的测试集是新的数据集,甚至标号都未知

1.3 K-折交叉验证

  • 这里的例子是把数据集分成三块,训练三个epoch,迭代三次(跑三遍数据)
  • 每次拿一块出来作为验证集,最后拿到三个验证精度(或者误差)
  • 把这三个精度做平均,便能得到K-则交叉验证的误差
  • (例子里的方法又叫“留一法”)
  • K=5 指的是迭代5次(跑5遍数据)
  • K值的设定,需要权衡数据集的大小,数据集特别大,K可以设为2或3 
  • (K值设定得越大,越贵)
  • K-折交叉验证是最常用的验证所设超参数效果的方法

1.4 总结

2. 过拟合与欠拟合(核心知识)

2.1 过拟合 vs. 欠拟合

模型容量:

  • 低:比如简单线性模型
  • 高:比如多层感知机

数据:

  • 简单:如第三章简单线性回归的人工合成数据集
  • 适中:如Fashion-MNIST
  • 复杂:如ImageNet

2.2 模型容量

李沐老师:

  • 过拟合不一定是坏事,为了把泛化误差往下降,不得不承受一定程度的过拟合
  • 首先是模型容量要足够(模型足够大)(伴随一定的过拟合)
  • 其次才是通过(缩减容量、正则化-权重衰退、早停等方法)调整模型容量,缩小误差
  • (这是整个深度学习的核心)

2.3 估计模型容量

智谱AI:

1. d - 数据维度:

  • 通常指的是输入数据的维度。在处理特征向量时,如果每个数据样本是一个向量,那么 d 就是该向量的长度
  • 例如,如果每个样本是一个包含100个特征的数据点,那么 d = 100
  • 在图像处理中,如果图像被展平成一个一维向量,d 代表这个向量的长度,这通常是图像的 高度 * 宽度 * 颜色通道数

2. m - 中间变量维度:

  • m 经常用来表示神经网络中间层的大小,即隐藏层神经元数量
  • 神经元:在神经网络中,无论是隐藏层还是输出层层的“单元”数通常就是指该层中神经元的数量

3. k - 输出结果维度:

  • 通常指的是输出层的维度,即分类任务中的类别数量
  • 在多类分类问题中,如果模型需要预测10个不同的类别,那么 k = 10

2.4 VC维  衡量模型容量

二维输入

  • 例如简单线性模
  • 线性模型试图找到一条直线来分割数据
  • 寻找一个输入一个输出之间的关系

三维输入

  • 例如XOR
  • XOR试图找到两条直线来分割数据
  • 寻找两个输入一个输出之间的异或关系

李沐老师:

  • VC维只是理论拓展,能够一定程度解释模型
  • VC维很少用到深度学习上

2.5 数据复杂度

李沐老师:

  • 相比模型复杂度,数据复杂度更不好衡量啦!
  • 判断复杂与否,更多的是靠 (调参) 经验,靠比较 (不同数据集) 的出来的
  • 自动机器学习AutoML包含自动调参)还在路上

3. 代码样例 (过拟合 vs. 欠拟合)

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

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

相关文章

Vue3:element-plus el-Table列表合计处理显示字符串类型/计算合计数值

需求整理 1.使用element组件库中的 el-table组件实现图上 底部当前页合计的功能。在一般的情况下,只需要计算数值部分的值,因为组件中的方法中处理的就是将值的类型转换成数值类型,像string类型的字符串的话,在进行转换的时候会出…

什么是远程过程调用(RPC)

进程间通信(IPC) 进程间通信(Inter-Process Communication)是指两个进程或者线程之间传送数据或者信号的一些技术或者方法。进程是计算机进行资源分配的最小的单位。每个进程都有自己独立的系统资源,而且彼此之间是相对隔离的。为了使得不同的进程之间能够互相访问,相互协…

Redis: 特色,业务场景举例,底层原理,持续进阶等问题梳理

Redis 的特色 Redis 是目前使用非常广泛的中间件,在于它功能强大,持续改进,经久不衰主要体现在以下几点 1 ) 高性能: Redis 的底层是C语言编写的,它的定位是内存型数据库而且 Redis 的作者对操作系统也非常的精通它通讯方式采用了…

MobileNetV2: Inverted Residuals and Linear Bottlenecks

Link:https://arxiv.org/abs/1801.04381 这篇文章是一篇关于MobileNetV2的学术论文,主要介绍了MobileNetV2的架构设计及其在图像分类、目标检测和语义分割任务中的应用。以下是对这些核心内容的简要概述: MobileNetV2架构设计: …

深度学习技术在超材料科学中的应用与实操

人工智能算法赋能材料设计与应用专题培训 前沿背景 人工智能与材料科学的融合趋势:在材料科学领域,人工智能(AI)的引入正在引发一场革命。传统的材料设计和优化依赖于经验和试错方法,这不仅耗时且成本高昂。关于AI赋…

Note_XML学习笔记

XML学习笔记 1. XML 教程 经常见到XML学习一下。由于是学到中间才想起记笔记,之前的就简略回顾一下: 1)XML是数据存储的一种语言载体; 2)只负责存储,不负责显示; 3)和HTML语言的风…

简单的算法题

1、求12345 #include <stdio.h> int main(){int i,s1;for(i1;i<5;i){s s*i;}printf("%d",s); }2、求1357911 #include <stdio.h> int main(){int i,s1;for(i1;i<11;ii2){s s*i;}printf("%d",s); }3、判定2000—2500年中的每一年是否…

CSP-CCF★★★201909-2小明种苹果(续)★★★

一、问题描述 二、解答 关键&#xff1a;判断是否发生苹果掉落&#xff0c;使用flag[]数组来标记&#xff0c;1为掉落&#xff0c;0为没有掉落&#xff0c;这样也是为了后续比较连续三棵树是否掉落 误区&#xff1a;用最后一次正数&#xff08;即最后一次统计苹果个数&#x…

ChatGPT 提取文档内容,高效制作PPT、论文

随着人工智能生成内容&#xff08;AIGC&#xff09;的快速发展&#xff0c;利用先进的技术工具如 ChatGPT 的 RAG&#xff08;Retrieval-Augmented Generation&#xff0c;检索增强生成&#xff09;模式&#xff0c;可以显著提升文档内容提取和内容创作的效率。以下将详细介绍如…

LabVIEW提高开发效率技巧----使用状态机架构

状态机架构&#xff08;State Machine Architecture&#xff09;是LabVIEW编程中的一种常见且高效的设计模式&#xff0c;特别适合用于处理具有多个操作状态的复杂系统。通过这种架构&#xff0c;程序能够根据不同的输入条件或事件&#xff0c;在多个状态之间切换&#xff0c;从…

canvas分享,从入门到入门。

开始之前 canvas是一个可以使用脚本在其中绘制图形的 HTML 元素.它本身并不具备绘图能力&#xff0c;需要配合JavaScript使用 用途 游戏应用特效字体相册&#xff0c;幻灯片股票行情等动态图像思维图以及图形编辑器等在线可视化工具 基本特性 canvas元素会初始化宽度为300像…

Java | Leetcode Java题解之第434题字符串中的单词数

题目&#xff1a; 题解&#xff1a; class Solution {public int countSegments(String s) {int segmentCount 0;for (int i 0; i < s.length(); i) {if ((i 0 || s.charAt(i - 1) ) && s.charAt(i) ! ) {segmentCount;}}return segmentCount;} }

黎巴嫩寻呼机爆炸案背后的技术原理

引言 近日&#xff0c;黎巴嫩发生了一起震惊世界的寻呼机爆炸事件。当地时间9月17日和19日&#xff0c;黎巴嫩多地的寻呼机和对讲机先后发生爆炸&#xff0c;造成了大量人员伤亡。这起事件引发了全球对电子设备安全性的广泛关注。本文将从技术角度分析这次寻呼机爆炸案的背后原…

OTTO奥托机器人开发总结

OTTO机器人是一个开源外壳&#xff0c;硬件和软件的桌面机器人项目&#xff0c;非常适合新手研究和拓展。 我一直希望找一个合适的项目入手研究机器人&#xff0c;这种项目最好是软硬件都开源的&#xff0c;可以随着自己的想法无限的扩展和私人订制&#xff0c;做为初学者&…

【计网】从零开始掌握序列化 --- 基础知识储备与程序重构

从零开始掌握序列化与反序列化 1 初识序列化与反序列化2 再谈Tcp协议3 程序重构3.1 Socket类3.2 回调函数设计3.3 最终的Tcp服务器类 1 初识序列化与反序列化 在刚学习计算机网络时&#xff0c;我们谈到过网络协议栈&#xff0c;其中最上层的就是应用层&#xff0c;那么这个应…

探索Llama 3.1:开源模型的本地部署与创新应用实践

文章目录 1 Llama 3.1模型的突破性进展2 Llama 3.1模型在业务场景中的实践案例3 使用教程4 Llama 3.1在客户服务中的运用 1 Llama 3.1模型的突破性进展 在数字化转型的浪潮中&#xff0c;大型语言模型&#xff08;LLM&#xff09;以其卓越的处理能力和广泛的应用潜力&#xff…

深度学习500问——Chapter14:超参数调整(3)

文章目录 14.5 如何改善GAN的性能 14.6 AutoML 14.6.1 什么是AutoML 14.6.2 自动化超参数搜索方法有哪些 14.6.3 什么是神经网络架构搜索&#xff08;NAS&#xff09; 14.6.4 NASNet的设计策略 14.6.5 网络设计中&#xff0c;为什么卷积核设计尺寸都是奇数 14.6.6 网络设计中&a…

Spring MVC 参数校验 总结

1. 简介 Sping MVC提供了参数校验的方便注解。 2.代码 在pom.xml中添加依赖&#xff1a; <dependency><groupId>org.hibernate.validator</groupId><artifactId>hibernate-validator</artifactId><version>8.0.0.Final</version&g…

Java | Leetcode Java题解之第435题无重叠区间

题目&#xff1a; 题解&#xff1a; class Solution {public int eraseOverlapIntervals(int[][] intervals) {if (intervals.length 0) {return 0;}Arrays.sort(intervals, new Comparator<int[]>() {public int compare(int[] interval1, int[] interval2) {return i…

海外仓系统如何成为数据管理效率的加速器?

在数字化信息时代&#xff0c;海外仓系统的数据管理效率对企业运营的重要性不言而喻。随着电子商务和跨境贸易的快速发展&#xff0c;高效的数据管理不仅影响着货物的流通速度、客户满意度&#xff0c;还关系到企业的盈利能力。为了在海外市场中立足&#xff0c;提升海外仓的数…