一、复习
根据模型H,使用演算法A,在训练样本D上进行训练,得到最好的 h,其对应的g就是我们最后需要的机器学习的模型函数,一般g接近于目标函数f。
二、
1、
感知器假设集 感知器学习算法 感知器学习保障 不可分离数据
三、Perceptron Hypothesis Set
1、
根据输入多维度,w代表输入多维度的重要性,threshold是设定的门槛值,
判断输入各维度值和重要性相乘的累加和与门槛值的大小
大于这 个阈值,输出为+1,即发信用卡;小于这个阈值,输出为1,即不发信用卡。
感知机模型,就是当特征加权和与阈值的差大于或等于0,则输出h(x)=1;当特征加权和与阈 值的差小于0,则输出h(x)=1,而我们的目的就是计算出所有权值w和阈值 threshold。
感知器--------------线性分类器
2、例子
确定垃圾邮件的分类的输入
四、Perceptron Learning Algorithm(PLA)
1、
如何选最好的一条线
按照这种思想,遇到个错误点就进行修正,不断迭代。要注意一点:每次修正直线,
可能使之前分类正确的点变成错误点,这是可能发生的。但是没关系,不断迭代,不
断修正,最终会将所有点完全正确分类(
PLA
前提是线性可分的)。这种做法的思想
是
“
知错能改
”
,有句话形容它:
“A fault confessed is half redressed.”
实际操作中,可以一个点一个点地遍历,发现分类错误的点就进行修正,直到所有点
全部分类正确。这种被称为
Cyclic PLA
。
2、图解
圈圈为正,叉叉为负
开始w为0,x1为上图线,因为开始肯定是分的错的所以直接那条线就是w(t+1)
下一轮直线会是垂直w的线
3、
4、问题
两边都乘以yn和xn
五、
Guarantee of PLA
PLA
什么时候会停下来呢?根据
PLA
的定义,当找到一条直线,能将所有平面上的点
都分类正确,那么
PLA
就停止了。要达到这个终止条件,就必须保证
D
是线性可分
(
linear separable
)。如果是非线性可分的,那么,
PLA
就不会停止。
![](https://i-blog.csdnimg.cn/blog_migrate/36c139a8969a46e72e574c256145fdf2.png)
2、问题
六、NonSeparable Data
对于非线性可分的情况,我们可以把它当成是数据集
D
中掺杂了一下
noise
,事实上,
大多数情况下我们遇到的
D
,都或多或少地掺杂了
noise
。这时,机器学习流程是这样
的:
![](https://i-blog.csdnimg.cn/blog_migrate/b7a53576f6b8e1bfbe34fe427439aa72.png)
在非线性情况下,我们可以把条件放松,即不苛求每个点都分类正确,而是容忍有错
误点,取错误点的个数最少时的权重
w
:
![](https://i-blog.csdnimg.cn/blog_migrate/2b6bc9cc0198466703137694784c18f9.png)
事实证明,上面的解是
NPhard
问题,难以求解。然而,我们可以对在线性可分类型
中表现很好的
PLA
做个修改,把它应用到非线性可分类型中,获得近似最好的
g
。
修改后的
PLA
称为
Packet Algorithm
。它的算法流程与
PLA
基本类似,首先初始化权重
,计算出在这条初始化的直线中,分类错误点的个数。然后对错误点进行修正,更
新
w
,得到一条新的直线,在计算其对应的分类错误的点的个数,并与之前错误点个
数比较,取个数较小的直线作为我们当前选择的分类直线。之后,再经过
n
次迭代,不
断比较当前分类错误点个数与之前最少的错误点个数比较,选择最小的值保存。直到
迭代次数完成后,选取个数最少的直线对应的
w
,即为我们最终想要得到的权重值。
如何判断数据集
D
是不是线性可分?对于二维数据来说,通常还是通过肉眼观察来判
断的。一般情况下,
Pocket Algorithm
要比
PLA
速度慢一些。
2、问题
![](https://i-blog.csdnimg.cn/blog_migrate/e676511a89c3ed203d9251dab9c8954e.png)
总结:
本节课主要介绍了线性感知机模型,以及解决这类感知机分类问题的简单算法:
PLA
。我们详细证明了对于线性可分问题,
PLA
可以停下来并实现完全正确分类。对
于不是线性可分的问题,可以使用
PLA
的修正算法
Pocket Algorithm
来解决。