机器为什么可以学习

这里写图片描述

机器学习、人工智能炙手可热,但是机器到底为什么可以学习呢?本文将从霍夫丁不等式讲到VC维,探究机器学习的原因所在。

本文的主要内容参考国立台湾大学的《机器学习基石》课程,作者在其基础上进行了部分提炼与整合。

机器怎么可能学习

机器学习乍听之下很厉害,这时候人就会想,这一个普普通通的死板的机器,怎么会学习呢?
很容易地,人们举了个简单的问题(如下图): x,y,g,f 分别表示:数据集、数据标签、预测模型、实际的模型。前5行的数据代表已知的,后三行的数据需要机器学习预测模型去预测。

悲催的是,符合已知的数据的预测模型最多有8种,这8种任选一种,都可以完全符合已知的数据,也都可以完全不符合未知的数据。这么看来,机器确实是学习不到东西的。

机器不能学习的例子

机器确实可能会学习

假定面前有一个箱子,箱子里面有绿球和黄球,已知黄球的比例是 μ ,希望通过抽取 N 个样本,学习样本中黄球的比例v去逼近 μ

μ,v 满足的关系如下,其中 ϵ 代表误差限,下面的式子叫做Hoeffding不等式。

P(|vμ|>ϵ)P(|EinEout|>ϵ)P(BAD)2exp(2ϵ2N)2exp(2ϵ2N)2exp(2ϵ2N)

设定一定的误差容忍限 ϵ 后,需要做到如下的事情机器才可能学习:

  • 采样样本量 N 足够大
  • Ein足够小

有了Hoeffding不等式后,我们会想,机器如果有足够大的数据,是不是就可以学习到数据背后的模型,也就实现了机器学习?

机器为什么可以学习

机器学习的一般模式

在探讨机器为什么可以学习之前,先阐述下机器学习的一般模式。

一句话阐述如下:算法 A 通过数据D和假设集 H 去学习实际模型f的估计 g

机器要学习,需要满足这两件事情:

  • Ein

    • EinEout
    • 多次试验与假设集

      上述的Hoeffding不等式只适用于单次实验,假定假设集是 R2 上的直线,那么单次实验相当于确定直线为 y=x+1 的时候, Ein,Eout 的差值受Hoeffding不等式的限制。

      可是,一般情况下,我们的假设集是很大的, R2 上的直线包含无限个假设 g 。如果不断尝试假设g,视比例 v Ein,那么总会找到对应 Ein g 。对应计算盒子中黄球的比例v很低,那么当取了非常非常多次后,非常大的可能会出现 v=0 (也就是 Ein=0 )的情况。可是,这种时候不能说 μ=0 (也就是 Eout=0 )。

      同样的,当假设集的大小是 M 时,P(BAD)的上限是 M 个假设g P(BAD) 的和,所以有:

      P(|EinEout|>ϵ)P(BAD)2Mexp(2ϵ2N)2Mexp(2ϵ2N)

      设定一定的误差容忍限 ϵ 后,需要做到如下的事情机器才可能学习:

      • 采样样本量 N 足够大
      • Ein足够小
      • M 不能太大

      这样一来,又一个问题接踵而来,很多假设集(比如R2上直线)的 M 都是无穷的啊,这样的话机器岂不是不能学习?

      M从哪来

      首先,先来分析下上面式子中的M来源于哪里。
      M 是假设集中所有g的个数,但是以 R2 上的直线为例,相当多的直线长得差不多,这样 M 中的所有g重叠了很大一部分,所以自然而然地引出了一个问题:

      对于一个假设集 H ,有效的M是多少呢(揭露下,是 mH(N) 啦)?

      break point与VC维

      有效的假设集的个数,和假设集的break point关系很大。假设集的break point指的是:不能被假设集打散(shatter)的最小的点的个数。需要注意的是,这里不能被打散是指点的所有分布都不能被打散。

      举个例子, R2 上的直线,3个点有可以打散的分布,也有不可以打散的分布;但是4个点的任何分布都是打不散的。所以 R2 上的直线的break point是4。

      常见的假设集及其break point如下:

      假设集break point
      positive ray2
      positive intervals3
      convex setsno
      2D perceptrons4

      break point求出之后, mH(n)=O(Nk1) ,其增长率受break point的限制。

      VC维是break point-1的值,物理含义是自由参数。

      通过前面的计算,得到了:

      P(|EinEout|>ϵ)P(BAD)2Mexp(2ϵ2N)2Mexp(2ϵ2N)

      稍作变换, 即得到:

      P(|EinEout|>ϵ)P(BAD)4(2N)dvcexp(18ϵ2N)4(2N)dvcexp(18ϵ2N)

      设定一定的误差容忍限 ϵ 后,需要做到如下的事情机器才可能学习:

      • 采样样本量 N 足够大
      • Ein足够小
      • VC维不能太大

      这样一来,选择合适的假设集,机器学习成为了可能。

      机器什么时候可以学习

      • 潜在的模式
      • 没有明确的公式,不容易编程解决
      • 有关于模式的数据

      机器怎么学习

      最简单的学习方法是PLA,其假设集是 h(x)=sign(wTx)

      其算法核心是:更正错误,迭代提高。

      1. 找到在当前模型参数下 wt 错误的数据 (xn,yn) ,即 sign(wTtxn)yn
      2. 更正模型参数, wt+1=wt+ynxn

      这样更正的依据是:让 wTxy>0 ,通过每次更正,保证了 wTt+1xnynwTtxnyn

      PLA保证如果线性可分,那么最终模型收敛。

      PLA如果线性不可分,则可设定迭代次数,每次获得新的模型,与先前模型比较,选择最优模型。

      如何让机器学得更好

      让机器学得更好,可参考如下几点:

      • 数据预处理
      • 合适假设集
      • 特征变换
      • 特征选择
      • 处理过拟合
      • 验证
      • 核方法
      • 集合模型
      • 特征提取

      总结

      理论适用范围公式
      Hoeffding单假设集 P(BAD)2exp(2ϵ2N)
      Multi-Bin Hoeffding M 个假设集 P(BAD)2Mexp(2ϵ2N)
      VC假设集集合 H P(BAD)4(2N)dvcexp(18ϵ2N)
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值