干货 | 机器学习基石02 Learning to Answer Yes/No

感知器模型 Perceptron

现实生活中,存在大量的"二分类问题",比如该不该给客户发信用卡。对于"二分类问题",最简单的模型就是"感知器模型"。

01

感知器模型

features: X = (x1, x2, ..., xd)

if ∑wixi > threshhold(Yes)

if ∑wixi < threshhold(No)

02

感知器模型的Hypothesis Set

h(x) = sign( ∑wixi - threshhold )

利用矩阵的知识,不难进一步推导:

?wx_fmt=png

h(x) 就是Perceptron的Hypothesis Set。下一步就是设计机器学习演算法来选择"最优"的Hypothesis,具体而言,就是求解w的过程。

03

Perceptrons in R^2

为了便于理解,给出 R^2 的Perceptrons。

h(x) = sign(w0 + w1·x1 + w2·x2)

?wx_fmt=png

可以看出R^2中,特征(features)对应平面中的一个点,Hypothesis set就是平面中的所有直线。推广开来,R^d中Hypothesis set 就是高维空间的超平面。

 

通常而言,Perceptrons等价于线性分类器(linear classifiers)。

PLA

下一步的目标就是在Perceptron Set中选择一个最优的Perceptron g,使得 g ≈ f。

 

难点:Perceptrons Hypothesis Set 是一个无穷集合。

思路:虽然无从得知目标函数f,但可以保证g和f在数据集D上表现一致,即为  g(xn) = f(xn) = yn。思路就是初始化一个g0, 利用数据集D,不断修正(修正w)

01

PLA

“A fault confessed in half redressed” - 知错能改

 

下面正式介绍 Perceptron Learning Alogrithm, PLA。不妨初始w0=0,然后修正它在数据集D上的表现。

 

修正策略:

?wx_fmt=png

 

下面正式介绍 Perceptron Learning Alogrithm, PLA。不妨初始w0=0,然后修正它。

不难看出,错误就两种:

其一,label y =+1,但此时w、x反方向,即 w·x<0。则 w=w+(+1)·x (靠近)。

其二,label y =-1,但此时w、x同方向,即 w·x>0。则 w=w+(-1)·x (远离)。

综上,均可表示为: w = w + yn·xn。

 

02

PLA的具体实现

 

经典的实现称为"Cyclic PLA"。

?wx_fmt=png

 

Cyclic:对于一个规模为N的数据集D,事先准备一个1~N的序列,可以是自然序(1, ..., N),也可以是随机的,保证是1-N的一个全排列即可。

Cyclic PLA 停止的条件:不断地循环这个指定的Cycle, 直到一个完整Cycle(一轮),在数据集D上,均不出错,则停止。

 

执行过程:

 

?wx_fmt=png

 

几点解释:

initially:原点在图像中央。初始化 w = 0(注意:需要将特征值即x值设置大一点,这样就可以保证 w0≈0)。 

update1:开始肯定出错,修正后 w = x1。w为直线的法向量, 所以update 2 中的分割线垂直于w。 update2~finally: 不断发现一个误分类的点,采用PLA算法公式进行修正,直到完全整个Cycle不出错为止。

?wx_fmt=png

 

代入可知:

?wx_fmt=png

说明每次修正后,有效果。

PLA的保证

还剩下两个问题需要解决。

  1. PLA 一定会停下来(halt on D)?

  2. g = f on D, outside D g 是否等于 f?

Linear Separability

 

回答第一个问题之前,先解释一下什么是线性可分。如下图所示。

?wx_fmt=png

?wx_fmt=png

证明第一个问题,如果在数据集D是线性可分的,那么PLA一定会halt。

证明思路:

  1. 因为线性可分,只要证明“修正”越来越好。数学上,即为向量夹角越来越小。

  2. 有上界,确保有限步算法可以停止。

?wx_fmt=png

一些细节说明:

  1. wf 是存在的,因为数据集可分的前提。

  2. xn(t)、yn(t) 就是t步需要修正的点。

  3. 定义 R 和 ρ,则 T ≤ R^2/ρ^2。?wx_fmt=png

  4. T 依然无法估计,因为 Wf 未知。

不可分数据集

01

PLA问题 

优点:PLA很容易实现。

缺点:需要数据集D线性可分;即便D可分也无法确定什么时候halt。

重温下机器学习模型。只不过数据集D中有噪声数据。

?wx_fmt=png

02

Pocket Algorithm

 

?wx_fmt=png

当数据中有噪音时,目标是让g能尽可能分开数据集。 不幸地是,这是一个 NP-hard 问题。

需要设计一个近似算法。比较典型的就是 Pocket Algorithm。

算法思想:执行PLA算法中,保留当前最优的wf。

?wx_fmt=png

转自:机器学习小蜜蜂

↓↓↓ 点击"阅读原文" 【查看更多信息】  

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值