台湾大学机器学习基石Lecture2

来源:互联网 发布:程序员为什么容易猝死 编辑:程序博客网 时间:2024/05/22 10:57

学习了Lecture2,这一节主要介绍的是感知器算法(PLA)以及口袋算法(pocket algorithm)来进行二元分类。

2-1:Perceptron Hypothesis Set

比如,银行是否给顾客发放信用卡的问题就是二元分类的问题,假设顾客特征为X,X=( x1,x2 ,…,xd),即有d个顾客特征(比如年龄、工资等等),那么如何利用这些特征来判断是否给顾客发放信用卡?我们可以给这些特征加权求和,并且设立一个阈值threshold,满足:
这里写图片描述
将上述公式变形,即有线性表达式:
这里写图片描述
其中, w0= -threshold, x0=+1。为了便于理解,将输入向量X简化为2个特征,即
这里写图片描述
不同的w对应不同的h(x),假设 这里写图片描述,因为sign符号是以0为边界的,那么正好一边为正,一边为负,假设输出向量y(也就是label)有两种情形,O(+1)和×(-1),最终得到的结果如下图所示:
这里写图片描述
这样子就完美的进行了二元分类。

2-2:PLA

上一节提到的h(x),如何解出w呢?这就需要一个算法来进行求解了,也就是经典的PLA(perceptron learning algorithm)感知器算法,我们要从众多的hypothesis中选出最好的h,然后令g=h,这个g至少在给出的数据D上满足 g≈f,这样就可以使用这个g来进行未知顾客是否发放信用卡的预测了。
但是存在一个问题,hypothesis有无限多个,也就是有无限多条线,如何找出像上面右图一样的线呢?假设有一个想法是从 g0开始,用数据D来纠正它的错误,也就是用数据D修改w。具体步骤如下:

Step1:For t =0,1…(t指要进行多少次迭代),如果找到了一个错误点,假设为这里写图片描述,也就是 这里写图片描述
Step2:对此错误进行修正,使用下述公式:
这里写图片描述

不断执行这两个步骤,直到没有mistake出现。(ps:这里所说的是线性可分的,不可分的后面会讲述。)只要线性可分,迭代够久次数,PLA一定会停下来。
对上述Step做一些解释:其中这里写图片描述 是第t次循环时找到了某第n个犯错误的点,在Step2中,用这个公式修正的原因见下图:
这里写图片描述
由图中可以看出,当实际的y是+1的时候,若w和x的角度大于90°,那么这个点就被误判了,需要修改w,也就是让w和x之间的角度变成锐角,即w+yx,若实际y是-1的时候,类似上面+1的情况。由step也能看出来,这个算法每次迭代的复杂度只有O(1)

2-3:Guarantee Of PLA

上面说的线性可分是指当PLA停下来的时候,w使得分开的D是没有错误的,也就是全部分类正确。举例来说,也就是如下左图所示:
这里写图片描述
在图中,中间和右边的图都不是线性可分的。那么假设D线性可分,PLA一定会停下来吗?
我们需要证明权值向量在经过一段时间的迭代后权值向量W会停止下来,即t次修正以后会有上界。假设理想的权值向量为Wf,PLA算法的向量为Wt,我们考虑是否每次迭代都能使得Wt接近Wf,那么可以用Wf和Wt做内积来衡量两个向量的相似程度,但是两者内积越大,并不能代表它们之间越接近,因为向量变长也能导致内积变大,所以需要做归一化处理,即:这里写图片描述
这时候可以看出,两者内积有了上界1。如何求解呢?因为Wf不好求解,考虑转换Wt,即如下式所式:
这里写图片描述
图中T表示迭代次数,其中W0初始值一般为0,因为Wf是最优的权值向量,并且D线性可分,所以 这里写图片描述一定大于0,得到最终的表达式如上式
分子求出来了,但是分母||Wt||仍然不好计算,考虑下式:
这里写图片描述
综上上述两个推导结果,得到最终结果如下:
这里写图片描述
但内积是有上界1的,所以 这里写图片描述≤1,推出:
这里写图片描述
由此可以得出,T是有上限的,即如果数据D线性可分,那么PLA在一定的迭代次数后一定会停止。

2-4:Non-Separable Data

上面所讲的都是线性可分的,如果线性不可分呢,例如下图这样,无论哪一种hypothesis都不可能使得数据完全线性可分。那么这类数据表明存在noise(噪声)了。
这里写图片描述
如何分离这类数据?如果完全分离不可能的话,考虑下式:
这里写图片描述
从式子可以看出,这是一个NP-hard问题,没法求出最优解,所以介绍另外一种求解方法,即pocket算法,其思想是始终保持口袋中所保留的w是最优的,使得分离的数据错误总数最少,然后经过足够的迭代次数后,即最后的w就是近似的g了。
其步骤如下:

Step1:初始化 这里写图片描述
Step1:For t =0,1…(t指要进行多少次迭代),如果找到了一个错误点,假设为这里写图片描述,也就是 这里写图片描述*
Step2:对此错误进行修正,使用下述公式:
这里写图片描述

Step4:判断 这里写图片描述

直到算法执行足够的迭代次数后,得到最终的w后,令w=g,用这个g进行预测。

原创粉丝点击