目录
7.2 偏差、方差和模型复杂度
- P220 测试误差test error就是泛化误差generalization error(也就是期望风险);对训练集再求期望,得到期望预测误差expected prediction error或称期望测试误差expected test error
- P221 − 2 × log-likelihood -2\times \text{log-likelihood} −2×log-likelihood有时也被称为偏差deviance
- P222 模型选择Model selection和模型评估Model assessment是两件事情,有各自的目标
- P222 test set只能在最后用一次,重复利用test set会低估真实的测试误差,有时偏差还相当大
- P222 train/val/test set切多大,不仅和数据集大小有关,还和信噪比signal-to-noise ratio有关
- P223 本章的方法有两类,第一类通过分析的手段(AIC,BIC,MDL,SRM),第二类通过有效的样本re-use(交叉验证和自助法)来近似验证过程validation step.
- P223 此外,也检验每个评估方法对最终选择模型测试误差的估计的可靠性程度
7.3 偏差-方差分解
- P224 样本内in-sample误差,线性回归的例子,variance直接和参数数量有关
- P224 对于线性回归族,例如岭回归,偏差方差分解中可以再走一步,偏差的两项分解:模型偏差model bias和估计偏差estimation bias,这里estimation bias衡量了估计的平均值与最优线性近似之间的误差,如果是单纯线性回归,则没有估计偏差,但如果有正则约束,则估计偏差存在。估计偏差和方差之间形成了trade-off
7.3.1 例子:方差-偏差权衡
- P226 造了个例子,用kNN很好诠释了方差偏差分解(不对!是方差偏差相互影响),k上升时,bias变大,而EPE反而变小
7.4 训练误差率的“乐观optimism”
- P228 分清 E r r T Err_\mathcal T ErrT和 E r r Err Err,前者针对训练集 T \mathcal T T,后者对训练集求期望。很多方法能有效估计后者,而非前者
- P228 样本外误差extra-sample
- P228 定义乐观optimism,平均乐观the average optimism及公式求解(7.21)(用相关性表示,证明在习题7.4,我没证)
- P230 样本越多、基越少,平均乐观越小
- P230 估计了平均乐观后,可以估计样本内预测误差,从而导出 C p \mathcal C_p Cp,AIC,BIC之类的方法,这些方法对参数线性;而交叉验证、bootstrap之类的,则直接估计样本外误差,不受限于损失函数的形式
- P230 样本内误差虽未考虑样本外的未来情况,但是为模型比较提供了方便
7.5 样本内预测误差的估计、Cp和AIC
- P230 C p C_p Cp统计量,均方误差下适用( C p C_p Cp应该只是在均方误差下讨论的,式7.24只严格对均方误差和加性误差模型适用,参考P231对AIC的描述)
- P230 Akaike 信息准则 Akaike information criterion(AIC),在高斯模型中,假定 σ ϵ = σ ^ ϵ \sigma_\epsilon=\hat \sigma_\epsilon σϵ=σ^ϵ且取值已知,则AIC和 C p C_p Cp等价
- P231 如果自适应选择基函数,则式7.23不再成立,例如从 p p p个特征中故意选 d d d个,此时模型自由度比 d d d高
- P231 AIC中Cov的代换式对于含有加性误差的线性模型在平方误差损失下是精确成立的,在对数似然损失下是近似成立的(which means不是高斯加性误差的情况下?).对于 0-1 损失不成立,尽管许多人仍然这么用
7.6 参数有效数量
- P232 参数有效数量的定义,这里的适用范围是
y
^
=
S
y
\hat \bm y=\bm S \bm y
y^=Sy,可以得到
∑
i
=
1
N
C
o
v
(
y
^
i
,
y
i
)
=
T
r
(
S
)
σ
ϵ
2
\sum_{i=1}^N Cov(\hat y_i, y_i)=Tr(\bm S) \sigma_\epsilon^2
∑i=1NCov(y^i,yi)=Tr(S)σϵ2,从而能导出更一般的式子
(回顾P77。另外这里的逻辑可能要捋一下,为什么要这么定义参数有效数量,参数有效数量用来干什么?我的理解就是替换公式7.26中的 d d d,毕竟不同的模型, N N N一样, σ ϵ 2 \sigma_\epsilon^2 σϵ2一样,不同模型的差异,可以通过一个类似 d d d的东西表达出来,从而引入参数有效数量的概念,也即7.33这么定义) - P232 神经网络的参数有效数量,一个Loss关于参数的Hessian矩阵的特征值的有关式
7.7 贝叶斯方法和BIC
- P233 BIC准则也叫做Schwarz准则,和AIC相比,BIC对模型复杂度惩罚更重
- P234 错分误差misclassification error不会出现在BIC中,因为它不对应数据的对数似然(好像AIC也有这个问题啊)
- P234 AIC和BIC虽然像,但是出发点完全不同。BIC出发自贝叶斯方法,还给推了一推,和PRML P216一样的。不过进一步,用后验写法,能推出各个备选模型的后验,一个softmax的形式
- P235 BIC是渐进一致的,AIC不是。当 N N N趋于无穷,BIC能选出真实模型,AIC则倾向于复杂模型。但反过来,当 N N N小时,BIC倾向于选择简单模型
7.8 最小描述长度
- P235 最小描述长度minimum description length (MDL),给出与 BIC 形式上等价的选择准则,但是它是从最优编码角度出发的
- P235 瞬时前缀码instantaneous prefix code
- P236 香农定理与霍夫曼编码的关系
- P236 MAP就是在找最小码长(这一块很迷,理解的不好)
7.9 VC维和SRM
- P237 VC维提供了更一般的方法描述模型复杂度,以前是用参数有效数量描述的,它不具有一般性
- P238 sin ( α x ) \sin (\alpha x) sin(αx)的VC维是无穷,习题7.8. 真神奇
- P238 实值函数的VC维
- P238 VC维和训练误差的“乐观”的bound(这就很奇怪了,“乐观”不是定义在 E r r i n Err_{in} Errin上的吗,这里怎么导出了 E r r T Err_{\mathcal T} ErrT的式子)
- P239 结构风险最小化structural risk minimization(SRM),拟合嵌套的 VC 维递增的模型序列,接着选择有最小上界的模型
7.9.1 例子
- P240 通过例子比较了AIC、BIC、SRM的优劣
7.10 交叉验证
- P241 交叉验证一般仅仅对期望测试误差的值有好估计,难以处理当训练集 T \mathcal T T固定时的情况(因为数据量不够,只能K-fold吗)
7.10.1 K折交叉验证
- P241 当数据量足够,就划分出一个验证集;如果不够,则用K折交叉验证
- P242 留一交叉验证计算量大,但是对于特殊问题,则可以快速计算,见习题7.3,5.13(没做)
- P242,243 留一交叉验证和真实的期望预测误差基本上是无偏的,也即模型学出来的期望预测误差是多少,留一验证就对它无偏。但是这个EPE估计量方差很大,因为 N N N个训练集非常像。相反的,当 K K K折不多时,交叉验证方差小,但是有偏,因为原模型的数据集明显变小,所以对它EPE的估计偏高
- P244 一个标准差(one-standard error)准则和交叉验证一起使用。选择最简模型,它的误差不超过最佳模型的误差以上的一个标准误差standard error(标准误差和样本标准偏差sample standard deviation好像不是一个概念,参考ESL CN这一节)。回顾P62线性回归的例子
- P244 广义交叉验证generalized cross-vaildation(GCV),对均方误差的线性拟合 y ^ = S y \hat \bm y=\bm S \bm y y^=Sy的情况,提供近似的留一交叉验证。需要参考习题7.3. 这种近似和参数有效数量也能联系到一起。而且GCV和AIC也能联系到一起,习题7.7. 中间就差一个噪声方差
7.10.2 做交叉验证的错误与正确方式
- P246 对于多步模型,交叉验证作用于整个过程。有一个条件:初始无监督筛选步骤,可以在交叉验证之前做
- P247 尽管这点是显然的,但看到这个错误在顶刊发表的文章中犯了很多次
7.10.3 交叉验证是否真的有用?
- P247 (我觉得这个问题有点迷,容易混淆概念)
7.11 自助法bootstrap methods
- P249 如同交叉验证一样,自助法力求估计条件误差 E r r T Err_{\mathcal T} ErrT,但一般只对期望预测误差 E r r Err Err有良好的估计
- P249 用自助法,可以估计 S ( Z ) S(\bm Z) S(Z)分布的任意统计量, S ( Z ) S(\bm Z) S(Z)是根据数据 Z \bm Z Z计算的任意值
- P251 留一自助法leave-one-out bootstrap,模仿了交叉验证,用于期望测试误差的良好估计
- P251 留一自助法,也有交叉验证中的高估bias的问题。为了缓解这一问题,设计了".632估计 .632 estimator",其导出较复杂。.632 估计在模型“轻拟合 (light fitting)”情形下表现很好,但是在过拟合情形下会变糟。可以引入无信息误差率no-inforation error rate和相对过拟合率relative overfitting rate来进行改善,导出".632+估计",这个估计在留一自助和训练误差之间进行动态权衡
- P253 用.632+和交叉验证选出来的模型,和图7.7的AIC差不多
- P253 对于许多自适应非线性技巧(比如树),估计参数有效个数困难.使 AIC 之类方法不可行,只能用交叉验证和自助法
- P254 如果真的想估计测试误差(应该是想做assessment而不是selection),发现交叉验证和自助法比用AIC要好很多,AIC高估严重
7.12 条件测试误差或期望测试误差?
- P254 对比了CV在条件测试误差 E r r T Err_{\mathcal T} ErrT和 E r r Err Err的差距(同一个subset size下, E r r T Err_{\mathcal T} ErrT应该能画出很多,因为跟 T \mathcal T T有关,而 E r r Err Err只能画出一个
- P257 结论:仅给出训练集,一般情况下 E r r T Err_{\mathcal T} ErrT不易估计.而交叉验证和相关方法可能对 E r r Err Err给出合理估计
参考文献:
[1] Trevor Hastie, Robert Tibshirani, Jerome Friedman. The Elements of Statistical Learning, Second Edition
[2] ESL CN