一、模型选择的定义
这张图片讨论了模型选择(Model Selection)中的一个关键概念:
核心问题:当模型参数(w,b)通过训练集拟合后,训练误差 Jtrain(w,b) 通常会低于真实的泛化误差(模型在新数据上的表现)。
模型复杂度示例:图中展示了一个多项式模型 fw,b(x⃗)=w1x1+w2x2+w3x3+w4x4+b,暗示随着多项式阶数(如 x4)增加,模型可能过拟合训练数据。
测试误差的作用:指出测试误差 Jtest(w,b) 比训练误差更能反映模型的泛化能力,是模型选择的重要依据。
这张图片通过不同多项式阶数(d=1,2,3,10)的模型示例,说明了模型选择中的关键问题:
模型复杂度对比:
展示了从线性模型(d=1)到高阶多项式(d=10)的逐步复杂化,每个模型对应一组参数 w<d>,b<d> 和测试误差 Jtest(w<d>,b<d>)。
最终选择 d=5 的模型,并报告其测试误差 Jtest(w<5>,b<5>)。
核心问题:
指出测试误差 JtestJtest 可能低估真实泛化误差,因为多项式阶数 d 是基于测试集选择的(即测试集被间接用于模型设计,导致乐观估计)。
二、训练,交叉验证,测试集
这张图片展示了机器学习中数据集划分的标准方法及其比例分配:
数据划分结构:
训练集(Training Set):占60%(示例中6条数据,mtrain=6),用于模型参数(w,bw,b)的拟合。
验证集(Cross Validation/Development Set):占20%(2条数据,mcv=2),用于模型选择(如选择多项式阶数 d)和超参数调优。
测试集(Test Set):占20%(2条数据,mtest=2),仅用于最终评估模型泛化性能。
关键细节:
表格中列出的数据样本(如尺寸
size
和价格price
)对应不同集合(标注为dev set
、training set
等)。
这张图片展示了模型选择(Model Selection)的具体流程,重点在于使用交叉验证集(Cross Validation Set)来评估和选择最佳模型:
候选模型列表:
展示了从简单(d=1,线性模型)到复杂(d=10,10阶多项式)的一系列模型,形式为 fw,b(x⃗)=w1x1+w2x2+⋯+b。
验证集评估:
每个模型在交叉验证集上计算误差 Jcv(w<d>,b<d>),用于比较不同复杂度(d)的表现。
最终选择验证误差最小的模型(示例中为 d=4 的四阶多项式)。
泛化误差估计:
选定模型后,独立测试集的误差 Jtest(w<4>,b<4>) 用于最终报告泛化性能,确保评估无偏。
图片强调了分阶段评估的重要性:验证集用于模型选择,测试集仅用于最终验证。
三、神经网络架构选择
这张图片展示了神经网络架构选择(Model Selection for Neural Networks)的过程,重点在于通过验证集评估不同结构的性能:
候选架构列表:
提供了三种不同隐藏层单元数的神经网络结构(25单元、20单元、12单元),分别对应参数 W(1),b(1)、W(2),b(2)、W(3),b(3)。
验证集评估:
每个架构在交叉验证集上计算误差 Jcv(W(i),b(i))(i=1,2,3),用于比较不同复杂度的表现。
最终选择验证误差最小的架构(示例中为20单元的 W(2),b(2))。
泛化误差估计:
独立测试集的误差 Jtest(W(2),b(2)) 用于最终报告模型的泛化性能,确保评估的客观性。