《机器学习基石》课程笔记(2)

  1. Perceptron Hypothesis Set
    对于银行是否发送信用卡的问题,把每位顾客的年龄、年收入等特征看成一个向量 x=(x1,x2,...xd) ,计算顾客每个特征与权重的乘积之和,如果结果大于某个阈值(threshold),那么就发送信用卡,否则不发送信用卡。
    这里写图片描述
    根据以上的信息,我们就可以得到一个线性形式的 h ,它属于假设集合H。其中 sign() 是符号函数:
    h(x)=sign((i=1dwixi)threshold)

    仔细观察上面的式子,我们发现可以把最后的 threshold 当做 w0 ,令 x0=+1 ,那么 h(x) 就可以转化成如下的向量形式:
    这里写图片描述
    感知机是一个二元(线性)分类器,其几何表示为:在二维空间内表现为一条直线,三维空间内表现为平面,更高维的空间则表现为超平面。
  2. Perceptron Learning Algorithm(PLA)
    根据第一节的内容,我们可以找到超平面 w 将数据分为两部分,但是符合条件的超平面 wi 有很多个,那么我们如何找到最合适的超平面呢?
    我们可以这样来做:首先随机选取一个超平面 wt ,找到一个在当前被错误分类的点 (xn(t),yn(t)) ,然后根据这个点去修正当前的超平面 wt ,得到一个新的超平 wt+1 ,重复这项工作直到没有被错误分类的点为止,最后得到的超平面就是我们所要的。这就是感知机学习算法(PLA)。算法更详细的流程如下图所示,其中点的遍历顺序可以是随机的,也可以是按照某个特定顺序:
    这里写图片描述
    可以看出,当超平面不再犯错误的时候算法会停止。但是我们不能保证迭代多轮之后,算法一定能收敛,也就是说不能保证算法一定能停止。下面我们讨论PLA的收敛性。

  3. Guarantee of PLA
    PLA的目的是找到一个将所有数据正确分类的超平面,如果数据集本身不是线性可分的,那么PLA就不会收敛。所以PLA能够收敛的充要条件是数据集线性可分。
    当数据集线性可分的时候,一定会存在一个完美地 wf 对于所有的 xn 使得 yn=sign(wTfxn) 。由于 wf 是使得所有点都正确分类的一个超平面,那么每个点 xn wf 这个超平面的距离和 yn 的乘积一定是正数,所以有如下公式:

    yn(t)wTfxn(t)minnyn(t)wTfxn(t)>0

    当用 (xn(t),yn(t)) 去更新 wt 时, wTfwt 会逐渐增大:
    wTfwt=wTf(wt1+yn(t1)xn(t1))wTfwt1+minnyn(t1)wTfxn(t1)>wTfwt1+0

    注意,只有当 wt1 出现错误的时候我们才进行更新,如果出现分类错误,那么就有 sign(wTt1xn(t1))yn(t1) ,即 yn(t1)wTt1xn(t1)0 。由于这个原因, wt2 才会增长的比较缓慢,具体推导如下:
    wt2=wt1+yn(t1)xn(t1)2=wt12+2yn(t1)wTt1xn(t1)+yn(t1)xn(t1)2wt12+0+xn(t1)2wt12+maxnxn2wt22+2maxnxn2...tmaxnxn2

    由于 yn(t1) 只有 1 1两个值,平方之后没有区别,所以在后面的推导中就省略掉了。根据上面的推导,我们看出 wt 每次增加的值不超过整个数据集空间的半径,所以 wTfwt 增加的原因不是因为 wt 的长度,而是因为两个向量之间的夹角变小了。
    根据上面的推导结果,可以得出如下结论:
    tminnyn(t1)wTfxn(t1)wTfwtwTfwttmaxnxn(t1)tminnyn(t1)wTfxn(t1)tmaxnxn

    γ=minn(ynwTfxn) R=maxnxn ,则上式可以写成:
    tγtRt2γ2tR2

    所以
    t(Rγ)2

    上式表明,错误分类的次数 t 是有上界的,经过有限次迭代可以找到将训练数据完全分开的超平面。也就是说,当训练数据线性可分时,PLA是收敛的。

  4. Non-Separable Data
    PLA非常简洁,较少的代码量就可以实现,而且可以运行在任意维度上。但是它也有明显的缺点。首先,我们“假设”数据集是线性可分的,但是我们如何证明数据集真的是线性可分的呢?其次,我们只证明了PLA会收敛,但是它什么时候收敛?R可以轻易地求出来,但是 γ 是由 wf 计算出来的,而我们并不知道 wf 的值,假如我们知道 wf ,那还需要机器学习干什么呢?:-P
    如果数据集真的是线性不可分的,那么我们假定数据集中有一些噪点,允许算法有一定的错误,我们的目标是使得被错误分类的点最少,即:
    wgargminwn=1N[ynsign(wTxn)]

    这是一个NP-Hard问题,只能在多项式时间内找到近似解。下面介绍Pocket Algorithm就是一个利用贪心策略找出近似解的算法。具体如下图所示:
    这里写图片描述
    它和PLA的区别是只有当 wt 优于 wt1 ,即当 wt 犯的分类错误比 wt1 少时,才更新 wt
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值