沐神-动手学习深度学习-习题答案4.4模型选择,欠拟合,过拟合

发布时间:2026/10/28 12:42:52

沐神-动手学习深度学习-习题答案4.4模型选择,欠拟合,过拟合 ####习题答案这一节深入探讨了机器学习中最核心的挑战之一模型泛化Generalization。它解释了为什么一个在训练集上表现完美的模型在实际应用测试集中可能会表现得很差。核心内容总结该页面主要围绕如何平衡模型的复杂性与数据集大小展开训练误差 vs. 泛化误差训练误差模型在训练数据集上的误差。泛化误差模型应用在同样分布的无限多新样本上的误差期望值。我们的目标是降低泛化误差。模型选择为了评估模型我们需要将数据分成训练集和测试集。验证集 (Validation Set)由于不能根据测试集来调整超参数通常会从训练数据中预留一部分作为验证集用于模型选择。K折交叉验证 (K-Fold Cross-Validation)当数据稀缺时将数据分成 K 份轮流用 K-1 份训练1 份验证最后取平均结果。欠拟合 (Underfitting)模型过于简单甚至无法降低训练误差。表现训练误差和验证误差都很高。过拟合 (Overfitting)模型过于复杂把训练集里的“噪声”也学进去了。表现训练误差极低但验证误差很高。习题答案解析以下是基于本节理论对练习题的解答建议Q1: 这个多项式回归问题可以准确解出吗答案可以。多项式回归本质上仍然是关于参数的线性回归只要将 x^2, x^3 等视为新的特征变量。因此它具有解析解可以通过正规方程Normal Equation直接计算出最优权重。Q2: 绘制训练损失 vs. 模型复杂度多项式的阶数的曲线你观察到了什么解析随着阶数增加训练损失会单调下降因为模型变得越来越能“死记硬背”训练数据。然而验证损失会呈现 U形曲线先下降改善到达最优点后开始剧烈上升过拟合。Q3: 如果你减少训练样本的数量会发生什么答案模型会更容易发生过拟合。直觉上数据越少模型越容易找到某种“巧合”规律来解释这些样本而这种规律并不适用于新数据。泛化误差会显著增大。Q4: 如果你增加训练数据的噪声会发生什么答案模型更难收敛训练误差会上升。模型可能会试图拟合这些噪声导致严重的过拟合。为了应对噪声我们需要更强的正则化如本章后续提到的权重衰减或 Dropout。Q5: 为什么通常我们要增加训练数据量答案更多的数据能覆盖更真实的数据分布。大样本量可以抑制噪声的影响减少模型“误入歧途”的概率从而降低泛化误差。根据统计学习理论对于给定的模型复杂性随着样本量 n \to \infty泛化误差会趋近于训练误差。下一步建议既然了解了过拟合那么如何“对抗”它呢下一节 4.5 节“权重衰减 (Weight Decay)” 将介绍第一种武器通过惩罚过大的参数值来限制模型复杂度。你想看看如何通过代码给模型添加 L2 范数惩罚 吗针对《动手学深度学习》4.4 节关于“模型选择、欠拟合和过拟合”的练习题以下是基于线性代数和机器学习理论的详细解答这个多项式回归问题可以准确地解出吗可以。线性代数解释虽然多项式函数在变量 x 上是非线性的但它关于参数 \mathbf{w} 是线性的。我们可以将多项式特征 x, x^2, \dots, x^d 视为独立的特征变量构建一个范德蒙德矩阵Vandermonde matrix \mathbf{X}。只要矩阵 \mathbf{X}^\top \mathbf{X} 是满秩且可逆的我们就可以通过正规方程 \mathbf{w} (\mathbf{X}^\top \mathbf{X})^{-1} \mathbf{X}^\top \mathbf{y} 直接求得解析解。绘制训练损失与模型复杂度的关系图观察结果随着模型复杂度多项式阶数的增加训练损失会单调下降。减小到 0 的条件根据线性代数原理当多项式的阶数 d 等于样本数量 n 减去 1 时即 d n - 1模型拥有足够的自由度可以经过每一个数据点插值此时训练损失可以减少到 0。在这种情况下绘制测试损失图观察结果测试损失图通常呈 U 形。当阶数较低时由于模型无法拟合数据的真实规律测试损失较高欠拟合。当阶数适中接近生成数据的真实阶数时测试损失达到最低点。当阶数继续增加时虽然训练损失在下降但由于模型开始拟合随机噪声测试损失会剧烈上升过拟合。生成同样的图作为数据量的函数训练损失通常随数据量增加而上升。因为数据越多模型“死记硬背”所有点变得越困难。测试损失泛化误差随数据量增加而下降。更多的数据提供了关于真实分布的更清晰信号减少了过拟合的风险。结论当数据量趋于无穷大时训练损失和测试损失会收敛到同一个值即数据的固有噪声。如果不对多项式特征进行标准化会发生什么数值不稳定性高阶多项式的项如 x^{20}会产生极大或极小的值导致输入特征在量级上相差悬殊。优化困难这会导致损失函数的等高线变得极其扁平梯度下降算法会变得非常缓慢甚至出现数值溢出NaN导致训练失败。解决方法除了显式的标准化如除以 n!还可以使用 QR 分解 或 正交多项式如切比雪夫多项式来构建特征从而在数学上避免数值不稳定性。泛化误差可能为零吗理论上几乎不可能。不可约误差现实数据中通常包含“噪声”或“贝叶斯误差”这是由于观察不全或系统本身的随机性造成的。即使模型完美捕捉了真实规律这部分误差依然存在。样本限制除非模型完全掌握了生成数据的底层物理规律并且测试集与训练集没有任何噪声干扰否则泛化误差总会大于零。下一步建议既然了解了如何识别过拟合下一节 4.5 权重衰减 (Weight Decay) 将教你如何通过数学手段L2 正则化在不改变模型深度的情况下强制模型变得“简单”以抑制过拟合。你想看看如何通过代码实现这一惩罚项吗
延伸阅读

更多相关文章

2026/10/26 13:56:01

沐神-动手学习深度学习-习题 4.3. 多层感知机的简洁实现

####答案 这一节介绍了如何使用深度学习框架(如 PyTorch)的高级 API 简洁地实现多层感知机(MLP)。相比上一节的“从零实现”,简洁实现将重点放在了模型架构的定义和训练流程的标准化上。 核心内容总结 A. 模型定义 使用…

2026/10/28 12:42:25

从功能清单到测试思维:深度拆解朋友圈测试用例设计

1. 从面试题到实战思维:朋友圈测试用例的深度拆解最近帮团队面试,又看到了这道经典题:“写一个微信朋友圈的测试用例”。说实话,这道题出现的频率高到几乎成了测试岗位的“必考题”。但有意思的是,十个候选人里&#x…

2026/10/24 11:03:49

智能体可观测性与管控实践:QClaw与ADP构建企业级AI工作流

1. 项目概述:从“智能体”到“可管可控”的跨越最近在折腾智能体(Agent)开发的朋友,估计都经历过一个相似的阶段:一开始,我们用LangChain、LlamaIndex这类框架,或者直接在Dify、Coze这类平台上拖…

2026/10/28 12:40:52

C++虚函数表与函数重载的底层机制解析

1. 虚函数表(vtable)的底层实现机制在C面向对象编程中,虚函数表(vtable)是实现运行时多态的核心数据结构。每个包含虚函数的类都会生成一个vtable,其中存储着该类所有虚函数的指针。当创建该类的对象时&…

2026/10/28 12:40:52

磁力矩器与反作用飞轮在卫星姿态控制中的协同机制

1. 项目概述:为什么卫星上既要装磁力矩器又要配反作用飞轮?“卫星上磁力矩器及反作用飞轮的作用与联系”——这个标题乍看像教科书里的小节名,但实际是航天器姿态控制领域最常被新人误解、又被老手反复调试的核心组合。我接触过的几十个微小卫…

2026/10/28 12:40:52

拍马Print 2024 V3.3.2:Win11图片合成软件核心技术解析

1. 项目概述:拍马Print 2024正式版V3.3.2核心功能解析拍马Print 2024是一款专注于即影即有图片合成的桌面端软件,最新发布的V3.3.2版本最大的亮点在于原生支持Windows 11操作系统。这个版本针对Win11的窗口管理、DPI缩放和触控交互进行了深度优化&#x…

2026/10/28 12:40:52

Java ArrayList核心原理与性能优化实践

1. ArrayList基础概念与核心特性ArrayList作为Java集合框架中最常用的动态数组实现,本质上是一个可自动扩容的对象数组。与普通数组相比,它的核心优势在于自动处理容量变化,开发者无需手动维护数组大小。在内存结构上,ArrayList内…

2026/10/28 12:40:52

HC32F460 PC14/PC15 GPIO异常:PCR数字功能使能排查

简介:面向使用HC32F460单片机开展嵌入式开发的工程师,这份PDF文档聚焦PC14及PC15配置为通用输出时电平异常这一实际排错场景,适合已具备寄存器操作基础、希望快速定位引脚复用问题的读者。压缩包仅有1个PDF文件,大小约203KB&#…

2026/10/28 12:35:50

马尾辫怎么扎好看?从收拢、托举到固定的完整发型教程

明明叫 ponytail,听起来像是最不需要动脑子的发型,可我在沙龙里接过最多的造型需求,偏偏就是“帮我把马尾扎好看”。你随便走进哪家理发店说“帮我扎个头发”,十有七八最后落成的就是一条马尾。但绝大多数人低估了它:马…

2026/10/27 14:24:03

全国计算机二级C语言真题PDF高效刷题指南

简介:这份PDF是全国计算机二级C语言考试的试题与答案解析,专为备考二级C语言的考生准备。内容涵盖C语言特点与设计理念、程序基本组成单位、main函数执行流程、函数嵌套调用规则、标识符命名规范、整型实型字符型数据类型、八进制十六进制数合法形式、运…

2026/10/27 9:34:54

requests+BeautifulSoup:爬虫抓取h1标题的入门实战指南

简介:一份以实战为导向的Python爬虫入门资源,面向具备基本编程基础、希望快速掌握网络数据抓取的初学者,可解决从零编写简单爬虫的常见困惑。实例以requests库发送HTTP请求、BeautifulSoup解析HTML文档,完整演示从网页中提取 标题…

2026/10/28 3:32:29

递推最小二乘参数辨识MATLAB编程:二阶系统与渐消记忆实现

简介:这是一篇面向控制系统、信号处理与机器学习等领域学习者的最小二乘参数辨识程序说明文档。资源共包含一个docx格式文档,压缩包大小七十八KB,内容围绕递推最小二乘算法和渐消记忆最小二乘算法展开:先构造一个极点位于单位圆内…

2026/10/28 0:02:13

Python股票自动交易系统源码解析:从行情获取到风控的完整链路

简介:这份资源是面向高校计算机、金融相关专业毕业设计场景的完整项目源码包,主题为基于Python的股票自动交易系统,适合需要完成毕设选题、课程设计或自学金融量化交易开发的学生与开发者参考。压缩包共收录687个文件,整体约14.93…

2026/10/28 0:02:13

视酷酷信IM源码部署指南:Java 17+MySQL 8.0.33实战配置

简介:这是一套2024年亲测可部署的视酷酷信IM即时通讯系统源码,面向具备Java、OC、C#及Vue开发能力的技术人员,解决私有化即时通讯平台快速搭建与二次定制需求,尤其适用于需集成商城、保障数据主权的中小型企业或独立开发者。资源共…

2026/10/28 0:02:13

Python爬取百度迁徙数据:接口解析、批量采集与避坑指南

简介:这份资源是一个用Python爬取百度迁徙数据的脚本压缩包,面向具备Python基础、希望入门网络爬虫与数据解析的开发者,解决按日期获取全国热门城市人口迁徙数据的问题。包内共1个文件,为单个py脚本,压缩包约1KB&#…

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
☎咨询二维码 ☎ ↑