2)机器学习基石笔记Lecture2:Learning to Answer Yes/No

版权声明:本文为博主原创文章,转载请注明出处。 https://blog.csdn.net/cg129054036/article/details/85261897

目录

0.上节回顾

1. Perceptron Hypothesis Set

2. Perceptron Learning Algorithm(PLA)(重点)

3. Guarantee of PLA(难点)

4. Non-Separable Data


0.上节回顾

第一节课主要讲述了机器学习的定义及机器学习的过程,主要如下图。我们有数据集D,通过演算法A,和我们的假设集H,从中找出最符合我们目标函数的g

第2节课主要介绍了感知机和我们学到的第一个算法:Perceptron Learning Algorithm(PLA)

1. Perceptron Hypothesis Set

还是来看一个简单的例子:我们根据消费者的特征来决定是否批发信用卡;如下图所示。消费者的特征有:年龄、年薪、工作时间、欠款等。我们有一个线性模型,根据计算出的结果来决定是否批发信用卡,我们的目标就是求出权重w_i和阈值threshold.。(图中红色参数所示)。

下面是感知机的向量形式,我们也可以把阈值当作权重w_0,从而得出一个简单的假设形式。每一个权重w对应一个模型h

我们可以在二维平面内画出我们的感知机,由下图可知,消费者特征是图上的点(特征数量为2),标签有两种结果(+1/-1)(+1/-1),不同的参数有不同的划分结果。可以看出这是一个线性分类器。

2. Perceptron Learning Algorithm(PLA)

根据上一部分的介绍,我们已经知道了hypothesis set由许多条直线构成。我们的目的就是如何设计一个演算法A,来选择一个最好的直线,能将平面上所有的正类和负类完全分开,也就是找到最好的g,使g≈f(目标函数)。

我们可以使用逐点修正的思想,首先在平面上随意取一条直线,看看哪些点分类错误。然后开始对第一个错误点就行修正,即变换直线的位置,使这个错误点变成分类正确的点。接着,再对第二个、第三个等所有的错误分类点就行直线纠正,直到所有的点都完全分类正确了,就得到了最好的直线。这种“逐步修正”,就是PLA思想所在。

w_{t+1}=w_t+y_{n(t)}x_{n(t)}

下面是一个PLA的修正实例:

对PLA,我们需要考虑以下两个问题:

  • PLA迭代一定会停下来吗?如果线性不可分怎么办?

  • PLA停下来的时候,是否能保证f≈g?如果没有停下来,是否有f≈g?

3. Guarantee of PLA

根据PLA的定义,当找到一条直线,能将所有平面上的点都分类正确,那么PLA就停止了。要达到这个终止条件,就必须保证D是线性可分(linear separable)。如果是非线性可分的,那么,PLA就不会停止。如下图所示:

对于线性可分的情况,如果有这样一条直线,能够将正类和负类完全分开,令这时候的目标权重为w_f,则对每个点,必然满足y_n = sign(w_f^Tx_n),,且任意一点都满足:y_{n(t)}w_f^Tx_{n(t)}\geq miny_nw_f^Tx_n> 0(点到直线的最短距离)。

且随着PLA每次的修正,权重w_{t+1}w_f会越来越接近,内积越来越大(越来越相似)。

下面给出了迭代次数T的取值范围,感兴趣的可以推一下。证明链接为:http://www.cnblogs.com/HappyAngel/p/3456762.html

4. Non-Separable Data

上一部分,我们证明了线性可分的情况下,PLA是可以停下来并正确分类的,但对于非线性可分的情况,w_f实际上并不存在,那么之前的推导并不成立,PLA不一定会停下来。

在非线性情况下,我们可以把条件放松,即不苛求每个点都分类正确,而是容忍有错误点,取错误点的个数最少时的权重w:

下面是我们修改后的算法(Pocket算法),可以求出最值。

简单总结一下本节课介绍的内容:感知机预测集合、PLA算法、非线性可分数据的求最值方法。

猜你喜欢

转载自blog.csdn.net/cg129054036/article/details/85261897