PRML 阅读笔记(二)<1.3--1.4>
2014-09-29 11:13
316 查看
1.3 Model Selection
在我们的多项式曲线问题中,多项式的最高次数控制了模型的参数个数,而加入了正则化项之后,,lambda控制了模型的有效参数个数。而我们有时候不仅会考虑单个模型的复杂度,也会综合考量多个模型。在实际应用中,如果数据充足,一种方法是我们把数据分为训练集和验证集,有时模型可能需要迭代很多次,而为防止模型对验证集的过拟合,我们还要分出一部分做测试集,来进行最终的模型评估。
然而在大多实践中,样本并不充足。我们或许想把所有数据都用来训练,本来数据就不多,还要拿一部分单独做验证,就显得很奢侈了。一种解决此问题的方法叫做交叉验证。我们把所有样本随机分为s份(最简单的方法是每份大小均等),然后每次用s-1份做训练,1份做验证,重复s次。当样本特别少的时候,令S=N(样本点的个数)。
交叉验证的一个缺点是计算量比较大,尤其当S比较大时。另外,如果模型有多个参数,那我们训练的次数可能是指数级的(假设有m个参数,每个参数有k个取值,那我们训练调参的次数会是k的m次方级)。
那有没有一种方法可以让我们省去验证的步骤,可以使模型只依赖于训练集而不作验证,且还能避免过拟合。有一个哲学原理叫作“奥卡姆剃刀原理”,其内容大致可归纳为“如无必要,勿增实体”。放在我们这里,即能够在一定程度上拟合样本数据且参数个数最少的模型是最好的。书上介绍了一种叫作AIC的方法,即最大化如下函数:
第一项是我们的似然函数,书中作者在对似然函数加了一个best-fit的形容词,M是我们模型参数的个数。如何能"best-fit“,我想这里大概只是题了一些概念,书中三四章会具体涉及这部分内容。
1.4 The Curse of Dimensionality
我们之前的多项式曲线模型中,我们只有一个输入变量x,即特征是一维的。而实际应用中,多维特征是非常常见的。作者先是举了一个例子,抽象成了一个分类模型,想通过划分方格来解决问题,可是当特征的维度提高以后,我们划分的方格数会指数上涨。
回到多项式曲线模型,现在我们假设有D个输入变量(输入是D维的),对于次数为3的多项式来说,我们有如下函数:
此时参数的个数是O(D的三次方)。当多项式次数为M时,我们的参数个数为O(D的M次方)。现在,我们已经把维度从指数的位置放到了幂的位置。但仍然不够。
接下来作者举了两个例子,先说了球体体积在维度越高的时候,体积就越会集中在球体的表面,这个似乎我们很难形象的想像,只能通过公式去理解。后来又说了极坐标下高斯分布的例子。
最后,作者总结,特征维度较高是我们在实际应用中经常遇到的问题。而有两个性质会降低高维问题对我们的困扰:
第一个原因,在真实数据中,特征的有效维度是比较低的(即特征也许虽多,但真正有用的并不多),并且目标变量的变化范围也不大(这一节逻辑我理的不是很清楚,那两个高维例子,球体和高斯分布的,是不是就是想说明这个)。第二就在于真实数据往往至少在局部会有一些圆滑性,所以大多时候输入变量小的改变也不会引起目标变量大的变化,所以在预测新变量的时候,我们可以用到局部插值法之类的技术(local
interplation-like techniques具体是什么?是插入一些点使曲线更圆滑么?这一部分也不怎么明白,这和高维灾难有什么关系,希望大大们能帮忙解释一下,谢谢)。
最后作者举了一个例子,也没看懂。。。。
在我们的多项式曲线问题中,多项式的最高次数控制了模型的参数个数,而加入了正则化项之后,,lambda控制了模型的有效参数个数。而我们有时候不仅会考虑单个模型的复杂度,也会综合考量多个模型。在实际应用中,如果数据充足,一种方法是我们把数据分为训练集和验证集,有时模型可能需要迭代很多次,而为防止模型对验证集的过拟合,我们还要分出一部分做测试集,来进行最终的模型评估。
然而在大多实践中,样本并不充足。我们或许想把所有数据都用来训练,本来数据就不多,还要拿一部分单独做验证,就显得很奢侈了。一种解决此问题的方法叫做交叉验证。我们把所有样本随机分为s份(最简单的方法是每份大小均等),然后每次用s-1份做训练,1份做验证,重复s次。当样本特别少的时候,令S=N(样本点的个数)。
交叉验证的一个缺点是计算量比较大,尤其当S比较大时。另外,如果模型有多个参数,那我们训练的次数可能是指数级的(假设有m个参数,每个参数有k个取值,那我们训练调参的次数会是k的m次方级)。
那有没有一种方法可以让我们省去验证的步骤,可以使模型只依赖于训练集而不作验证,且还能避免过拟合。有一个哲学原理叫作“奥卡姆剃刀原理”,其内容大致可归纳为“如无必要,勿增实体”。放在我们这里,即能够在一定程度上拟合样本数据且参数个数最少的模型是最好的。书上介绍了一种叫作AIC的方法,即最大化如下函数:
第一项是我们的似然函数,书中作者在对似然函数加了一个best-fit的形容词,M是我们模型参数的个数。如何能"best-fit“,我想这里大概只是题了一些概念,书中三四章会具体涉及这部分内容。
1.4 The Curse of Dimensionality
我们之前的多项式曲线模型中,我们只有一个输入变量x,即特征是一维的。而实际应用中,多维特征是非常常见的。作者先是举了一个例子,抽象成了一个分类模型,想通过划分方格来解决问题,可是当特征的维度提高以后,我们划分的方格数会指数上涨。
回到多项式曲线模型,现在我们假设有D个输入变量(输入是D维的),对于次数为3的多项式来说,我们有如下函数:
此时参数的个数是O(D的三次方)。当多项式次数为M时,我们的参数个数为O(D的M次方)。现在,我们已经把维度从指数的位置放到了幂的位置。但仍然不够。
接下来作者举了两个例子,先说了球体体积在维度越高的时候,体积就越会集中在球体的表面,这个似乎我们很难形象的想像,只能通过公式去理解。后来又说了极坐标下高斯分布的例子。
最后,作者总结,特征维度较高是我们在实际应用中经常遇到的问题。而有两个性质会降低高维问题对我们的困扰:
第一个原因,在真实数据中,特征的有效维度是比较低的(即特征也许虽多,但真正有用的并不多),并且目标变量的变化范围也不大(这一节逻辑我理的不是很清楚,那两个高维例子,球体和高斯分布的,是不是就是想说明这个)。第二就在于真实数据往往至少在局部会有一些圆滑性,所以大多时候输入变量小的改变也不会引起目标变量大的变化,所以在预测新变量的时候,我们可以用到局部插值法之类的技术(local
interplation-like techniques具体是什么?是插入一些点使曲线更圆滑么?这一部分也不怎么明白,这和高维灾难有什么关系,希望大大们能帮忙解释一下,谢谢)。
最后作者举了一个例子,也没看懂。。。。
相关文章推荐
- PRML 阅读笔记(十)<3.3-3.6>
- PRML 阅读笔记(三)<1.5>
- PRML 阅读笔记(五)<2.1--2.2>
- PRML 阅读笔记(四)<1.6>
- PRML 阅读笔记(九)<3.1-3.2>
- PRML 阅读笔记(十三)<4.3>
- PRML 阅读笔记(十一)<4.1>
- PRML 阅读笔记(八)<2.4-2.5>
- PRML 阅读笔记(十二)<4.2>
- PRML 阅读笔记(六)<2.3.1-2.3.2>
- PRML 阅读笔记(七)<2.3.3-2.3.9>
- PRML 阅读笔记(一)<1.1--1.2>
- <C++Primer>第四版 阅读笔记 第一部分 “基本语言”
- <tcp/ip详解卷一>阅读笔记(4)——TCP
- 读<<如何阅读一本书>>乱七八糟的笔记1
- sed 手册阅读笔记<转>
- <C++Primer>第四版 阅读笔记 第四部分 “面向对象编程与泛型编程”
- <C++Primer>第四版 阅读笔记 第二部分 “容器和算法”
- <游戏开发中的人工智能> -- 阅读笔记
- <C++Primer>第四版 阅读笔记 第一部分 “基本语言”