PRML Notes-Chapter1 Introduction(1.1,1.3,1.4)

来源:互联网 发布:淘宝直播在哪里开通 编辑:程序博客网 时间:2024/06/17 05:17

PRML Notes-Chapter1 Introduction

题记
RPML是ML领域的圣典,是从事算法这条路不可或缺的历练,它对内功的增强绝不是一点点,因此决定重新拿起圣典研读,并将自己的点滴思考做以记录,供后续温习和问题查找。由于笔者知识水平有限,文章中部分术语和概念可能不够严谨,望批评指正!


目录

  • PRML Notes-Chapter1 Introduction
    • 目录
    • 1 基本知识
    • 2 Reference

1.1 基本知识

ML(machine learning),对于机器学习的研究由来已久,具体的历史这里不详细介绍了。这里给出书中提到一些基本概念。

  • 机器学习 ,从给定数据中模拟人类学习和获取信息,并能对新数据作出目标预测的过程称为机器学习,换句话说ML是从数据中获得决策(预测)函数。
  • ML分类,ML有多种不同的分类依据,从 数据类型 上分为有监督(Supervised Learning)和无监督(Unsupervised Learning);从学习过程上来讲可以分为主动学习(Active Learning)、迁移学习(transfer learning)、强化学习(reinforcement learning),这几个分支最近两年关注度也越来越高。

  • 有监督, 如果数据含有输入x 也给定了输出目标 y 的学习过程,常见算法有分类(Classification,y 取值为有限离散值)、回归(Regression, y 取值为连续性变量),实际生活中的例子中图像分类(Image Classification),文本分类(Document Classification),包括一些打标签等任务均可看成是分类, 房价、产量预测,曲线拟合等均属于回归问题。

  • 无监督,只有输入数据 x 没有输出目标的学习过程,包括Clustering,dimension reduction,density estimation
  • 涉及内容,机器学习一门综合的学科,它融合概率论、决策论和信息论为为一体,因此本书在第一章对这几个部分的知识进行了简要而详细的介绍。

PRML开篇第一个内容是给出一个多项式拟合的例子(Polynomial Cure Fitting),这对于刚踏入ML领域的人来说是比较质朴的,能够真切的去体会ML的具体过程,同时后续的几节内容也会多次提及这个问题。
首先给定一个还有 N 个样本的训练集,输入x的值为

x=(x1x2,...,xN)T
,对应的目标值t为
t=(t1t2,...,tN)T
。在有了这个数据集的情况下,我们希望能够基于这些数据集,对于一个新的输入 x^ ,找到它对应的 t^ 。现在来回想一下我们在上学时如何解应用题的过程,我们首先分析题目,然后列出方程,最后求解方程中的系数,从而得到最后的结果。关键是先要列出一个方程然后去求解,我们不知道上面的数据集是否来源于某个函数(书上说明来源于正弦函数),因此我们就必须从更一般的形式入手,使用多项式对数据进行拟合(话外音,为什么找他,而不找其他如三角函数?猜测,因为其他函数都可以通过数学手段转换为多项式的形式,所以多项式更普通),形式如下:
y(x,ω)=ω0+ω1x1+ω2x2+...+ωMxM=j=0Mωjxj(1.1)

其中y为待预测的值,ω 为需要通过训练得到的参数, M 是多项式的阶数(变量 x 的最大次方),是一个超参数(hyperparameter,不是通过训练得到的参数,需要事前进行选择的,尤其是在DL中会见到很多超参数)需要在模型训练前设定的。
这里书中提到一个线性模型的定义,模型对参数来说是线性的,则成为是线性模型,考虑的模型和参数直接的关系,而不考虑模型和变量 x 见得关系。
有了式子1.1,就可以利用训练集去寻找合适的参数 ω 了,常用的方式是最小化误差函数(Error Function),
E(ω)=12n=1N{y(xn,ω)tn}2(1.2)

式子1.2中的系数是为了后续计算引入的,这个式子恒大于等于,只有当所有的样本都准确预测误差才0,通过分析式子1.2是存在最优解的。
下面的问题是如何确定超参数呢,也就是选择多少阶的方程合适呢,这个过程可以立即为模型选择(Model Selection),说实话这个事情并不太具体的规则,属于一个经验值。书中给了一个不同阶数的拟合结果图,
这里写图片描述
从曲线图可以看出,随着M值的不断增加,曲线拟合能力越来越强,换句话说模型在training set上的训练误差越来越小,那这个结果是不是意味着如果模型把所有的点能够正确的拟合就是一个好的模型呢?其实不然,这个时候很大情况是出现了过拟合(over-fitting),模型在新数据上表现差即泛化能力差。如何判断一个模型是否进入过拟合,去考察训练误差和测试误差,如果模型在测试数据上表现很好,但在测试数据表现很差,很大可能是进入了过拟合。为什么会出现过拟合呢,一般是两种情况,

  • 模型太复杂
  • 数据太少

应对过拟合问题常用的方式是在误差函数中加入正则化项,用来约束参数,使得参数不会那么大,

E˜=12n=1N{y(xn,ω)tn}2+λ2ω2(1.4)

其中λ是一个参数,控制了模型的复杂度,因此调节模型过拟合的程度。这个地方把它当成参数是因为我们可以通过一些技术手段获得最佳的 λ 的值,比如通过交叉验证(cross validation),所谓交叉验证是指把训练数据集分成S份,每次训练都留一份作为测试,其他作为训练,最后对S轮运行的结果求平均值,它的确定是训练次数随着S的增加而增加。
在实际的ML任务中,输入往往是很多维度,比如在做文本分类或者点击率预估时特征有可能上万维,因此在对待实际ML任务时首先考虑哪些是相关因素,排除不必要的因素,这样使得输入维度不那么高,便于模型的训练和使用。

这篇post主要是参照第一章的第一、三、四节,第二节概率论、五节决策论、六节信息论都是以后学习的最基础的东西,所有要花点力气去理解夯实,因此单独成篇进行记录。

1.2 Reference

[1]: Christopher M. Bishop, Pattern Recognition and Machine Learning

原创粉丝点击