《机器学习导论》读书笔记(1)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/hiha_hero2333/article/details/78911453

第一章 绪论 略
第二章 监督学习 supervise learning

监督学习,是指: 利用一组已知类别的样本作为输入,通过不断调整分类器的参数,使其达到所要求的性能的过程。也称为监督训练或有教师学习。

简单的来说,监督学习就是“通过实例学习类”,在最简单的二元分类问题中,类 无非就只有正例(positive example) 和 负例(negative example)。类学习就是寻找一种关于实例的描述,它能够涵盖所有正例,而不符合这种描述的则全部视为负例。

用书中的例子,假设我们要学习一个类C 称“家用汽车”,即判断哪些特征说明一辆车是家用汽车,简单起见我们只考虑两个因素(feature):“价格”与“发动机功率”

  • 用 x1 表示价格, x2 表示发动机功率,一辆汽车可以用一个矩阵表示:
    x=[x1x2]

    而它所属的种类,我们称为标签(label)无非就两个:是家用汽车,或者不是。我们如下表示:
     l(xi)= 1, 0,xi ()xi ()

则对于一个汽车数据集 X,假设一共包括m辆车的信息,我们可以这样表示:

X={xi,li}mi=1

因为每个实例只有两个特征项,用平面坐标把数据点全部表示出来,结果如下(很无耻的用了书上的截图)
这里写图片描述

通过对数据的分析,得到的、关于真实的家用汽车描述如下:

C=(p1<<p2)AND(e1e2)

画图表示为:

这个阴影矩形(也就是表示所有家用汽车的两个特征的参数范围)C的准确表示由p1,p2,c1,c2四个参数决定。我们无法得知这四个参数。因此也无法得知最后我们得到的假设类(hypothesis class)h和真实类C之间的匹配程度(理解为相差多少)。如下图表示:

由于我们给的实例样本只有m辆车的数据,所以我们学习到的假设类h并不准确,在用这个假设类h去判断其他数据的时候,有可能h判断与真实情况不符,这时候的误差称“经验误差”,表示为h的预测值与真实情况不符的实例个数占输入总体的比例。

为了让h逼近真实类C,一种可能的方法是找出最特殊的假设(most specific hypothesis),使得它包括的实例一定属于C,我们可以理解为找一个h,h是C的子集。这样的类h我们称诱导类S,同时我们也可以找到一个最一般的假设(most general hypothesis),理解为找一个类G使得C一定位于G之中,C是G的子集。
这里写图片描述

S、G都是人为找的,所以有无限种可能。只要我们定义的假设h位于[S,G]之间都是有效的,这个区间[S,G]又称h的解空间。寻找S集和G集,在Tom michell的《machine learning》中有一个候选人删除算法。本块属于concept learning 的内容,不过多涉猎了,有兴趣再看看。

关于VC维

在一个m个数据点的数据集中,有 2m 种可能性来定义正例or负例,相应的这也就对应了 2m 种不同的学习问题。如果有一种假设h∈H能够将正例负例分开,就称H散列(shatter),即m个点定义的任何学习问题都能在H中找到一个假设h进行无误差的学习。这个能被H散列的数据点的最大数量m就称为H的vc维

VC维用于度量假设类H的学习能力

概率逼近正确学习(probably approximately correct)

PAC学习中,给定的类C,并从一个未知的,但是具有明确的概率分布p(x)的数据中抽取样本。我们希望找到样本数N,使得对于任意的 δ ≤1/2 和 ε >0, 假设h的误差最多为 ε 的概率大于等于 1- δ (有点拗口)

P[(Ch)ε]1δ

其中 C-h 表示 C 与 h 两个集合的差,也就是 假设h 的误差。
接着上一节讲到的S、G的概念,让h=S,类C与h=S的误差区域是下图中的四个条带(C-h剩下的一个边框),我们希望正例落在该方框的概率最多为 ε
这里写图片描述
在这个图上只有一个条带用阴影表示了出来,如果落在一个条带的概率不超过 ε /4, 那么总共落在四条带(一个方框)的概率会小于4 * ε /4 = ε (因为条带之间有重叠部分)

容易得知,所有N个独立样本不在这四条带上的概率最多为 4(1- ε ) N , 我们希望这个概率不超过 δ ,即

4(1ε)Nδ

解得不等式有
N(4/ε)log(4/δ)

可知至少在C中抽取 (4/ε)log(4/δ) 个独立样本作为S,同时并作为我们的假设h,则在置信概率至少为 1δ 的前提下,一个给定点被错误分类的概率最多为 ε

噪声

噪声是数据中的有害的异常,噪声会干扰、误导类的学习。引入噪声的可能途径有:

  • 记录的输入数据属性值 xi 不准确
  • 数据的标签 y (label)搞错了
  • 可能存在没有考虑到的附加的属性,他们会影响label

    当数据存在噪声的时候,正负例之间不存在明显的简单边界,在选取模型的时候,简单的模型往往存在高偏差(high bias),复杂的模型往往存在高方差(high variance),求解最优解的过程也就是寻找同时具有低偏差和低方差的过程。一般来说我们认为简单的模型泛华能力更好,这个“常识”的理论背景是“奥卡姆剃刀”规则。

回归

在分类问题里面,如果输出并不是离散的值(如布尔值0/1)而是一个连续的,数值型的答案,那么我们称这是回归(regression)类型的问题。

理想情况下,假设数据不存在噪声,那么就变成一个插值问题。在多项式插值中,给定N个点,我们就可以用来预测任何x为输出的N-1阶多项式。引入噪声,将噪声加到未知函数的输出上:

rn=f(xn)+ε  nN

ε 称为随机噪声,关于噪声的解释就是:我们所不知道的隐藏变量
rn=f(xnzn)

zn 用来表示隐藏变量的集合。具体的分析方法将后续学习时补上

模型的选择与泛化

以布尔函数举例: n个输入对应着 2n 种样本实例,加上对应的标签label所对应的布尔函数有 22n 种假设情况。不过每当我们输入一个训练样本(假设训练样本没有错误的话),就会减少一半的假设,即去除掉那些与训练样本出错的假设。

但是这是远远不够的,即使输入了m个数据,仍然会有 22(nm) 种可能的模型(布尔函数)选择,这种叫不适定问题,仅仅靠输入本身无法得到解。我们应当做一些特别的假设,以方便我们找到唯一解。我们把这种让学习得到模型成为可能而做出假设集的做法称作“归纳偏置 inductive bias”,如我们在最开头讲到的家用车的例子中,我们假设矩形框内的都是“家用车”,这就是一种归纳偏置。

没有归纳偏置,学习是不可能的,我们要考虑的是“如何进行归纳偏置”,比方说开头家用车的例子,我是该假设矩形内的是“家用车”还是假设圆形内的是“家用车”。这就是模型选择问题。而模型是否可用、性能好坏这就是“泛化问题”。

猜你喜欢

转载自blog.csdn.net/hiha_hero2333/article/details/78911453
今日推荐