机器学习基石 Lecture2: Learning to Answer Yes/No

Perceptron Hypothesis Set

还是关注是否给客户发信用卡的问题。回顾上节中机器学习的流程,假设已知如下图中的一些客户信息,做出怎样的假设来得到假设集合 H H H呢?
在这里插入图片描述
可以把客户信息写为一个向量 x = ( x 1 , x 2 , . . . , x d ) x=(x_{1},x_{2},...,x_{d}) x=(x1,x2,...,xd),每个维度都代表客户的一个特征。可以假设把这些特征维度进行加权求和来得到一个分数,如果这个分数超过某个阈值就下发信用卡,否则不下发。即假设h为:
在这里插入图片描述
这个假设就叫做感知机(perceptron)模型。

Perceptron Learning Algorithm

可以将上图等式中的阈值(threshold)也当做一个系数 w 0 w_{0} w0,对应第0个特征 x 0 = 1 x_{0}=1 x0=1。则上述感知机模型可以写为向量内积的sign函数形式:
在这里插入图片描述
于是在二维平面上这个假设函数体现为一条线,一边被判断为+1(蓝色),另一边的点被判断为-1(红色)。而样本实际的y为+1时画为圈,-1时画为叉。
在这里插入图片描述
因此可以看出,感知机实际上是一个线性的二分类器。

有了假设空间 H H H,如何从中选出一个最接近实际函数 f f f g g g呢?可以根据在已有的数据集合上来判断。因为 g g g需要接近 f f f,因此在已有数据记录 D D D上, g ( x n ) g(x_{n}) g(xn)的结果需要等于 f ( x n ) f(x_{n}) f(xn)(必要不充分条件?)。

但是有个问题是假设空间 H H H是无穷大的,所以直接搜索比较困难。有一个想法是,从一个任意的函数 g 0 g_{0} g0开始,根据它在数据集 D D D的错误来不断改进自身。于是我们就有了感知机学习算法(Perceptron Learning Algorithm,PLA):
在这里插入图片描述

  1. 从任意一个参数为 w 0 w_{0} w0表示的函数 g 0 g_{0} g0开始,找到一个预测的结果和实际对应的 y y y值不同的样本。
  2. 然后根据公式 w t + 1 ← w t + y n ( t ) x n ( t ) w_{t+1} \leftarrow w_{t}+y_{n(t)}x_{n(t)} wt+1wt+yn(t)xn(t)来对系数进行更新。
    直到找不到错误的样本为止,此时的参数 w P L A w_{PLA} wPLA对应的函数就是 g g g

实际中算法第一步通常采用遍历数据集 D D D的方式,因此也叫作Cyclic PLA。

算法看起来很简单,但是还有一些遗留问题。比如:算法如何进行遍历样本? 可以是普通遍历,随机遍历等。最后得到的算法 g g g是否真的约等于 f f f? 如果在 D D D上没有错误算法停止了,那么在 D D D上的效果肯定是近似相等的。但是在数据集 D D D之外的数据上表现如何呢?而且如果算法不停止更加无法知道 g g g是否与 f f f近似了。所以算法是否真的能够保证最终停止而不是无限循环呢? 下面会给出算法确定会停止的证明。

Garrantee of PLA

如果存在一个对应的系数 w w w能够在数据集 D D D上不犯错误,也就是说 D D D中的样本能够被一条线性平面正确分隔开。我们说这样的 D D D具有线性可分性。

假设我们的数据集 D D D是线性可分的,那么是否PLA算法一定会停止呢?
线性可分的 D D D一定有一条不会犯错的分隔面对应的参数 w f w_{f} wf

  1. 对于任意的样本都有 y n ( t ) w f T x n ( t ) ≥ m i n n y n w f T x n > 0 y_{n(t)}w_{f}^{T}x_{n(t)} \geq min_{n}y_{n}w_{f}^{T}x_{n} > 0 yn(t)wfTxn(t)minnynwfTxn>0.(因为每个样本都正确分类)
  2. w f w_{f} wf w t w_{t} wt的乘积为 w f T w t + 1 = w f T ( w t + y n ( t ) x n ( t ) ) ≥ w f T w t + m i n n y n w f T x n > w f T w t w_{f}^{T}w_{t+1} = w_{f}^{T}(w_{t}+y_{n(t)}x_{n(t)}) \\ \geq w_{f}^{T}w_{t} + min_{n}y_{n}w_{f}^{T}x_{n} \\ > w_{f}^{T}w_{t} wfTwt+1=wfT(wt+yn(t)xn(t))wfTwt+minnynwfTxn>wfTwt
  3. 两者乘积在变大,但是需要证明并非是因为其长度增加而是夹角变小,这样才能说明我们的 w t w_{t} wt在靠近最好的分隔面对应的 w f w_{f} wf
  4. 计算 w t w_{t} wt的模。 ∣ ∣ w t + 1 ∣ ∣ 2 = ∣ ∣ w t + y n ( t ) x n ( t ) ∣ ∣ 2 = ∣ ∣ w t ∣ ∣ 2 + 2 y n ( t ) w t T x n ( t ) + ∣ ∣ y n ( t ) x n ( t ) ∣ ∣ 2 ≤ ∣ ∣ w t ∣ ∣ 2 + 0 + ∣ ∣ y n ( t ) x n ( t ) ∣ ∣ 2 ≤ ∣ ∣ w t ∣ ∣ 2 + m a x n ∣ ∣ y n x n ∣ ∣ 2 ||w_{t+1}||^{2} = ||w_{t}+y_{n(t)}x_{n(t)}||^{2}\\= ||w_{t}||^{2}+2y_{n(t)}w_{t}^{T} x_{n(t)}+||y_{n(t)} x_{n(t)}||^{2}\\ \leq ||w_{t}||^{2} + 0 + ||y_{n(t)}x_{n(t)}||^{2}\\\leq||w_{t}||^{2}+max_{n}||y_{n}x_{n}||^{2} wt+12=wt+yn(t)xn(t)2=wt2+2yn(t)wtTxn(t)+yn(t)xn(t)2wt2+0+yn(t)xn(t)2wt2+maxnynxn2因为我们是在分类错误的样本上进行更新,因此 y n w t T x n ≤ 0 y_{n}w_{t}^{T}x_{n}\leq 0 ynwtTxn0
  5. 根据以上几点,能够推出 w f T ∣ ∣ w f ∣ ∣ w T ∣ ∣ w T ∣ ∣ ≥ T ∗ c o n s t a n t \dfrac{w_{f}^{T}}{||w_{f}||}\dfrac{w_{T}}{||w_{T}||} \geq \sqrt{T}*constant wfwfTwTwTT constant。 过程如下: 1 ≥ w f T ∣ ∣ w f ∣ ∣ w T ∣ ∣ w T ∣ ∣ ≥ T m i n n y n w f T x n ∣ ∣ w T ∣ ∣ ∣ ∣ w f ∣ ∣ ( 由 2. ) ≥ T m i n n y n w f T x n T m a x n ∣ ∣ x n ∣ ∣ 2 ∣ ∣ w f ∣ ∣ ( 由 4. ) ≥ T ρ R \\ 1 \geq \dfrac{w_{f}^{T}}{||w_{f}||}\dfrac{w_{T}}{||w_{T}||} \\ \geq \dfrac{Tmin_{n}y_{n}w_{f}^{T}x_{n}}{||w_{T}|| ||w_{f}||}(由2.)\\ \geq \dfrac{Tmin_{n}y_{n}w_{f}^{T}x_{n}}{\sqrt{Tmax_{n}||x_{n}||^{2}} ||w_{f}||} (由4.)\\ \geq \sqrt{T}\dfrac{\rho}{R} 1wfwfTwTwTwTwfTminnynwfTxn(2.)Tmaxnxn2 wfTminnynwfTxn(4.)T Rρ 于 是 T ≤ R 2 ρ 2 , 因 此 算 法 一 定 在 有 限 步 骤 内 停 止 。 \\ 于是 T \leq \dfrac{R^{2}}{\rho^{2}},因此算法一定在有限步骤内停止。 Tρ2R2其中 R 2 = m a x n ∣ ∣ x n ∣ ∣ 2 , ρ = m i n n y n w f T ∣ ∣ w f ∣ ∣ x n R^{2} = max_{n}||x_{n}||^{2}, \rho=min_{n}y_{n}\dfrac{w_{f}^{T}}{||w_{f}||}x_{n} R2=maxnxn2,ρ=minnynwfwfTxn。都是常数。

因此,只要是数据集是线性可分而且不断地纠错,那么在PLA算法中:

  • w f w_{f} wf w t w_{t} wt的内积快速增大,而 w t w_{t} wt的长度缓慢增大
  • PLA算法得到的“线”会越来越接近 w f w_{f} wf,直到不犯错停止

PLA算法的优缺点:

  • 优点:实现简单,运行速度快,在任意维度可行
  • 缺点:1.需要假设样本线性可分。 2.不知道算法停止需要的时间。

Non-Separable Data

假设数据集中有一些噪音,这样就会导致数据集并不是完全线性可分的。这时候就需要进行一定的容错。对于PLA算法而言,可能从选择完全不犯错的分隔面变为选择一个犯错误最少的分隔面。
在这里插入图片描述
可以对PLA算法做一些简单的修改,先保有一条当前最好的分隔面,然后和先前一样进行更新。如果更新后的分隔面比当前最好更优,那么把当前最好换成这个更新后的分隔面,否则继续保有原来的。直到足够多的循环次数为止。
在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值