连载 | 机器学习基石 Lec 2: PLA & Pocket

Lec 2: Learning to Answer Yes/No

上一节中介绍了机器学习的概念和符号表示,这节主要介绍一个简单的模型PLA,这将是学习其他模型的基础与出发点。本章符号含义参照上一章。


1、Perceptron Hypothesis Set

在进行“yes/no”分类时,对输入 x=(x1,x2,...,xd) ,计算weighted score,当score>阈值,我们就得出yes(+1)结果,score<阈值时,我们得出no(-1)结果。这就是简单的Perceptron。所以它的output  y = {+1,-1},h可以写作:

感知机的向量形式:

连载 | 机器学习基石 Lec 2: PLA & Pocket_第1张图片

那这个h(x)长什么样子?以最直观的二维平面为例,它就是一条直线,将平面分为yes/no两个部分。

连载 | 机器学习基石 Lec 2: PLA & Pocket_第2张图片

Perceptron是线性分类器 linear(binary)classifiers,更高维度时与二维类似,例如三维时是平面分割空间等等。

2、PLA(perceptron learning algorithm)

(可以在直观的二维空间进行想象)

H是平面上所有的线,我们需要选择出 g .那什么样子的线是理想的线?当然是能正确划分所有data的线。但是我们无法得到f,不过我们可以在已有的data上找出像是f的g,即g正确划分全部已有的data。由于H是无限大的,找出这样的g似乎也不太容易,那应该怎么做呢?PLA!先找出一条线g0,然后再去correct它在data上的mistakes,让线变的越来越好。如何实现这个idea?

连载 | 机器学习基石 Lec 2: PLA & Pocket_第3张图片

给出一些解释:

先找一个w0初始化,然后逐步纠错。

“Cyclic”表示:如果有N个点,就从1到N顺序循环看是否有出错的点。当然也可以用其他方式进行循环。

(1)找出一个错误的点,即目前得到的“线”给出的结果与yn不等(符号不同)。

(2)更新w向量。为什么要用这种更新方式?下面介绍

一直到没有错误。

关于更新w向量:

mistakes有两种情况:

1)y为+1,g(x)为-1

几何含义为w(红色)和x的夹角太大了,如何变小?w和x相加,紫色为纠正后的w。

连载 | 机器学习基石 Lec 2: PLA & Pocket_第4张图片

如下面这个栗子中,此时在x9上产生了错误,x9和w(红色)夹角是钝角,更新w(紫色)后,新的线是下一张图2。(注意:几何代数知识可知w是线的法向量,即w与线垂直。)

连载 | 机器学习基石 Lec 2: PLA & Pocket_第5张图片
图1

2)y为-1,g(x)为+1

几何含义为w和x的夹角小了,如何变大?w和x相减。

连载 | 机器学习基石 Lec 2: PLA & Pocket_第6张图片

接上图1,此时是锐角情况。

连载 | 机器学习基石 Lec 2: PLA & Pocket_第7张图片
图2

经过不断的更新纠错调整,最终可以得到满意的g。

现在考虑一个问题:PLA一定可以停下来吗?即一定可以完美划分现有data吗?如果可以停下来(halt),在未来data上g会等于f吗?如果不能halt,情况会怎么样?

3、PLA的理论保障

这节将会证明在一些情况下,PLA可以停下来。至于在未来data上的表现,之后的课会涉及。


没有错的时候PLA终止,所以首先,我们手上的data要可以被一条“线”分开,这样的D叫做linear separable 。相反情况叫做not linear separable,如图:

连载 | 机器学习基石 Lec 2: PLA & Pocket_第8张图片

那有了线性可分的D之后PLA是不是就能找到这样的线了呢?

我们可以看下Wf(理想的w)和Wt+1(更新后的w)是否在逐渐接近?作内积,内积越大越接近。

连载 | 机器学习基石 Lec 2: PLA & Pocket_第9张图片

最后一步中,为什么min项>0?很简单,Wf对应的线是理想中的线,一定可以正确划分xn,所以y和score相乘一定>=0。不等于0表示所有data离线都有一定的距离。

这样我们就得到Wf和Wt+1的内积越来越大。但是你是否有一个疑惑?两个向量内积越来越大也有可能是向量长度在作祟。确实,那如何证明Wf和Wt+1是在接近呢?这就会用到PLA一个关键点:mistake的时候更新w。可以证明mistake会限制||Wt||平方的增长,最多增长最长的Xn的平方大小。

连载 | 机器学习基石 Lec 2: PLA & Pocket_第10张图片

其实可以证明经过T次纠错后,Wf和WT的单位向量内积会大于根号T乘一个常量,这就表示wf和wt是在靠近(角度越来越小)。并且T有上限,即有限次更新后可以得到g。具体证明略。

到这可以感受到,虽然PLA很简单,其实也蕴含了数学理论保障。有没有觉得很奇妙?后面的model会更奇妙。

4、Pocket

通过上一节知道,D线性可分的时候,PLA可以halt,但是其实我们并不能提前知道D是否可分。如果D不是线性可分的,该怎么办?

在机器学习中,事实上我们取得的Data一般都有noise(Noisy Data)。这时,就算理想的f是一条完美的线,我们取得的data也不见得就是线性可分的。在不确定D是否线性可分的情况下,我们如何得到一条较好的线?很自然的想法就是,可以试着找到一条犯错最少的线:

连载 | 机器学习基石 Lec 2: PLA & Pocket_第11张图片

可惜,这个问题是个NP-hard问题。不过,可以试着去接近这个“good” g,即Pocket算法:

连载 | 机器学习基石 Lec 2: PLA & Pocket_第12张图片

第三步和PLA不一样,当新的w比手中的wt犯错少的时候才更新,可以看做是modify PLA,循环足够多轮后停止。其思想很简单,一直keep得到的最好的w。

你可能感兴趣的:(连载 | 机器学习基石 Lec 2: PLA & Pocket)