《Pattern Recognition and Machine Learning》学习笔记 第一章(一)

来源:互联网 发布:淘宝代卖软件 编辑:程序博客网 时间:2024/05/16 08:20

Chapter 1(one)

Introduction

    最近在读机器学习大牛Christopher M. Bishop的《Pattern Recognition and Machine Learning》。这是一本关于模式识别和机器学习的经典入门教材,但是由于自己的毕业设计和导师项目占用了绝大部分的时间,只有晚上十一点半后才有时间学习,由于自己的记忆力和理解力不强,所以自己做了学习笔记并与大家分享交流,希望大家多多指正,同广大的模式识别和机器学习的童鞋共同努力

本章一开始提及几个重要的概念:

特征提取(feature extraction):将输入的原始数据预处理成容易模式识别和机器学习算法容易处理的数据形式。如将下图中每个数字的图片事先压缩成固定大小,然后将图片分成28*28个像素,这样,一张图片就可以用一个784维的向量代表了,然后使用算法对图片中的数字进行识别。

泛化能力(generalization):已生成的模型对新数据(不再是用于训练的数据)准确处理的能力。

监督学习(supervised learning):在输入训练数据时,一同输入训练数据的真实标签,如回归,分类。

无监督学习(unsupervised learning):在输入训练数据时,没有输入训练数据的真实标签,让机器自动学习输入数据的存在的规律,如聚类,密度评估。

增强学习(reinforcment learning):在给定的情况下,采取适合的行动,使连续的动作产生最大的积累回报。

 

 

 1.1 Polynomial Curve Fitting(多项式拟合)

假设有这样一种情况,我们通过函数产生N个数据点,并在其中加入服从高斯分布的随即噪声,能否仅通过这N个数据点找出其隐含的分布规律,也就是他们对应的函数。

这就涉及到了去寻找一条曲线去拟合这些数据点,引出了本节所讲的"多项式曲线拟合"。如下图所示

假设有一个训练集,其中有N个观测值x,也就是N个测试样本,那这个训练集可以表示为:

同时,还有X对应的目标值:

我们要利用这些以上数据去建立曲线去为新的预测

多项式函数的形式如下:

其中M是多项式的次数,总共有M+1维。

我们的任务就是去寻找适当的多项式系数,构造多项式曲线为了寻找最优的多项式系数,我们构造出错误函数(error function,也有的地方称为损失函数):

达到最小式,我们构造的和目标值最接近,对数据拟合的最好。

 

从上图可以看出,不同次数的多项式函数对数据的拟合程度不同,虽然次数越高对训练集的拟合程度越好,它甚至可以穿过每一个训练集的每一个数据点,让错误函数为零,但是,这会出现过拟的现象,如下图所示:

"过拟"是指建立的模型对训练数据拟合的非常好,但是对测试数据的预测能力非常差。如上图,当M=9时,训练集的错误函数为零,但是测试集的错误函数非常大,证明预测值和真实值差距很大。错误函数的另一种形式:

root-mean-square error : 

指已寻找出来的最优多项式系数,N为训练样本数。这个均方差错误函数可以描述出对不同样本数和不同规模的数据的拟合程度。

我们再从从另一个方面去看过拟现象,对不同次数的多项式函数寻优出来的的系数的数量级会不同,当次数过高的时候,系数的数量级很大,这就意味着测试数据的一个小的变化,都会导致多项式函数值的剧烈变动,这样对测试数据的拟合效果不是很好。

 

 

值得一提的是,当训练样本数越多的时候,训练出的模型越好,如下图所示同样是次数为9的多项式函数曲线,左图是使用15个样本训练出来的,而右图是使用100个样本训练出来的,可以明显看出,100个样本训练出来的多项式函数对样本的拟合程度更好。

 

 

为了避免过拟现象,我们可以采用"正则化"的方法,为错误函数末尾添加正则项,错误函数形式变为:

为正则项,其中

可以从式子看出,当多项式系数数量级增长时,会导致错误函数值变大,这样就能有效抑制多项式系数数量级的增长。也可以看出对多项式的存在的重要性有控制作用,对其数值的选择也至关重要,其控制的重要性见下图。

 

可惜的是,目前作者还没有提出如何寻找出使错误函数最小的方法,在Coursera上Andrew NG的机器学习视频中,在一开始的多元线性函数参数寻优的方法中,就提及了"梯度下降"的方法。

 

To be continued....


原创粉丝点击