【林轩田】机器学习基石(二)——PLA

Lecture 2 Learning to Answer Yes or No

ppt

2.1 Perceptron Hypothesis Set 感知假说集

感知假说集这部分,林老师主要是举了个线性回归的例子,来帮我们感性地认识了 h 这个东西到底是什么。
比如说线性回归:

h=sign(wTx)

x=x0,x1,x2
时,
h=sign(w0x0+w1x1+w2x2)=sign(w0+w1x1+w2x2)

【林轩田】机器学习基石(二)——PLA

2.2 Perceptron Learning Algorithm 感知演算法

这部分开始推导了。

2.1节说明了h是一个假设空间集,我们希望在h里面能找到一个g,使它最接近f

这里f是指存在的一种理想化的规律或模式,是我们不知道的,但是我们的data都是依照这种模式产生的;因为f我们不知道,但是我们有data,所以我们可以根据data来找一个g,使g这个函数在我们已知的data上表现的尽可能像f这个理想化的函数。

林老师举了一个简单的演算法的例子并说明了它的可行性。
还是考虑线性回归,

h=sign(wTx)

我们已知(xn,yn)对,求的是在无数个可能的w的假设空间中最可能的w,也就是我们的g

首先从候选集随机中随机选择一个w,作为w0,然后开始迭代,
迭代次数设置为t(times)t1,2,3,...,m
t=1开始,
如果

sign(wtTxn(t))yn(t)

w的值进行更新,
wt+1=wt+yn(t)xn(t)

如此迭代,直到没有错误。
【林轩田】机器学习基石(二)——PLA
返回最后的w,记为wPLA,为g

那么如何用几何的方式来描述上述过程呢?
我们知道wx都可以描述成向量形式,尽管他们可能不是二维的,我们为了方便起见,假设它们都是二维的。
当实际的y为+1,而预测的y为-1时,我们更新w,
【林轩田】机器学习基石(二)——PLA
可以看到,这里的向量加法,w+yx是让,更新后的w,更偏向x这条向量线(x与更新后的w的夹角变小)。
当实际的y为-1,而预测的y为+1时,我们更新w,
【林轩田】机器学习基石(二)——PLA
可以看到,这里的向量加法,w+yx是让,更新后的w,更远离x这条向量线(x与更新后的w的夹角变大)。
为了让我们更直观地看到每一步迭代时分类的变化,林老师举了个例子。
【林轩田】机器学习基石(二)——PLA

【林轩田】机器学习基石(二)——PLA

【林轩田】机器学习基石(二)——PLA

【林轩田】机器学习基石(二)——PLA

……

【林轩田】机器学习基石(二)——PLA

注意到这里w使我们划分圈圈叉叉那条线的法向量。

2.3 Guarantee of PLA 感知器演算法的证明

这一小节的目标是证明PLA的正确性。
首先PLA可以收敛的一个重要的先决条件是数据是线性可分的。也就是说,存在某个完美的wf使得sign(wfTxn)=yn
这个完美的wf,在几何意义上,就是有一条线,使得每一个xn都被正确地划分在线的两边。
即对于任意n:

ynwnTxn>0

ynwfTxnminnynwfTxn>0

wfTwt随着错误的不断被更新不断地增大,
wfTwt+1=wfT(wt+ynxn)wfTwt+minnynwfTxn>wfTwt1

上述公式说明的是向量wfTwt的内积在不断地增大,这种结果有两种可能的原因,一是两个向量的夹角余弦值越来越大,二是wt的模越来越大。
首先原因一是肯定的,因为我们的目标就是让wt越来越接近wfT,然后我们来看看原因二。
||wt+1||2=||wt+ynxn||2=||wt||2+2ynxnwt+||ynxn||2(21)

由于wt是遇到错误才开始更新,所以2ynxnwt是小于0的
即,
||wt||2+2ynxnwt+||ynxn||2<||wt||2+||ynxn||2||wt||2+maxn||ynxn||2(22)

接下来林老师提出了一个小的练习,
【林轩田】机器学习基石(二)——PLA
求constant的值。
推导过程如下:
由公式1
wfTwt+1wfTwt+minnynwfTxn

wfTwtwfTwt1+minnynwfTxn

叠加起来
wfTwt+1wfTwt1+2minnynwfTxn

wfTwt+1wfTw0+(T+1)minnynwfTxn(T+1)minnynwfTxn3

由公式2
||wt+1||2||wt||2+maxn||ynxn||2


||wt||2||wt1||2+maxn||ynxn||2

叠加,得
||wt+1||2||wt1||2+2maxn||ynxn||2

||wt+1||2||w0||2+(T+1)maxn||ynxn||2(T+1)maxn||ynxn||24

结合公式3,公式4,图片中左式
wfTwT||wfT||||wT||TminnynwfTxn||wfT||||wT||TminnynwfTxn||wfT||Tmaxn||ynxn||

也就是说这个constant为
constant=minnynwfTxn||wfT||maxn||ynxn||

由于yn1,+1,所以上述等式可以简化为
constant=minnynwfTxn||wfT||maxn||xn||

在Fun-Time里面林老师让我们计算T的上界,其实很简单,因为图片中的左式的集合意义就是向量wfTwt的余弦值,余弦值的范围是[0,1],所以
0Tconstant1

也就是
T1constant2||wfT||2maxn||xn||2||minnynwfTxn||2

【林轩田】机器学习基石(二)——PLA
所以
TR2ρ2

2.4 Non-Separable Data 不可分割的(线性)数据、

上面的内容告诉我们,PLA有两个重要的点

  • Data要线性可分 —-> 这是wfTwt越来越接近的理论前提。
  • PLA是从错误中学习—->这个点使得wt越来越大。

PLA的优点是:快速、容易实现,且在任意维度下都可使用。
PLA的缺点是:

  • 只适用于线性可分数据(但是现实情况下,我们哪里会知道Data的确定分布呢?要是事先知道了Data的确定分布,还要机器学习干啥?),所以PLA还是比较理想化的。

在现实生活中,我们的数据是存在噪声的。

那么,如何学习到具有噪声容忍度的w呢?

解决办法是,找到一条线,它在我们遇到的所有线中,误分类最小。

【林轩田】机器学习基石(二)——PLA
上述公式是个NP难的问题,我们使用PLA的贪心算法变体解决。
【林轩田】机器学习基石(二)——PLA
这里和2.2节最大的区别在于,贪心算法面对的数据(存在噪声)永远也没有办法停止。所以需要提前设定迭代阈值。

林老师在这节给出的Fun Time问题还挺值得思考的,反正我是想错了。
【林轩田】机器学习基石(二)——PLA
这个问题的意思是,在已知数据线性可分的前提下,我们还是用PLA的贪心算法变体来计算那条分割线,这样的计算方法和直接用PLA有什么不同?
答案是1,原因是PLA的贪心算法针对的是存在噪声的数据,所以在每次迭代时,都会对每个点进行计算,看看找到的这条w整体上是不是比上次好了;而本体PLA针对的是数据线性可分,肯定能终止的情况,它每次迭代只需要找一个错误点就行。
所以这道Fun Time题中,PLA的贪心变体执行的时间会长于PLA本体。