PLA(perceptron learning algorithm)感知机学习
作者:互联网
PLA
PLA(perceptron learning algorithm)感知机学习
概述
感知机是一种二元线性分类模型,它试图找到一个直线或者平面或者超平面将数据分为两部分,感知机同样是属于监督学习的范畴
适用范围
线性可分
- 二维空间中以下样本线性可分,PLA完美解决
线性不可分
- 左侧样本有些许噪音,初始PLA工作不稳定(如果没有迭代次数等限制,算法可能不能停止),结果也可能不是最优解(使用Pocket改进后可以得到一个整体或局部最优解)
- 右侧样本不是线性可分,PLA无法在此样本上正确工作(通过特征转换之后就可以做到)
感知机结构
图示
公式
- 这里xi是指输入的第i个特征,wi是指对应第i个特征的权值,sum是求和,sign是符号函数(即输入大于零值为1,输入小于零值为-1,这正好对应二分类)
- 感知机简而言之就是为输入的每个特征赋予一定权值,使用特征间的线性组合和某一个阈值b(threshold)比较,然后给出分类
简化
- 如果令w0=b,x0=1,然后使用向量来表示权值和输入特征那么公式可以简化为
- 假如有d个特征那么权值和输入特征向量都是1*(d+1)的行向量
错误率
- Ein(w)=\frac{1}{N}\sum_{n=1}^N[[sign(w^Tx_n)\neq y_n]]
- 即所有样本点中判断错误的点在所有样本点中的占比
Analogy
期末成绩
- 一门成绩的期末成绩往往需要课堂表现,期中考试,期末考试,上机考试等来决定,老师对于你在各部分上的表现打分,最后期末成绩是将每部分的成绩乘以成绩占比,然后求和,最后和及格分比较来得出你是否通过此门课程.
课堂表现 | 期中考试 | 期末考试 | 上机考试 | |
---|---|---|---|---|
期末分数占比 | 0.2 | 0.2 | 0.4 | 0.2 |
各部分分数 | 80 | 60 | 60 | 80 |
最后期末成绩68和及格分60相比显然该同学通过该课程
- 在这里评估各方面成绩(课堂表现等)是输入x,各方面的期末分数占比是权值w,及格分是偏差b
- PLA作用在这里就是已知样本中各部分的分数和学生是否及格来求出各部分的期末分数占比,然后将学习到的期末分数占比作用到样本外的点上,判断一个学生该门课程有没有及格
算法
初始版本
- w(t),x(t),y(t)分别是指第t次迭代时的权值向量,输入向量,输出向量
权值都初始化为0
while(样本中有错误分类的点){
从样本中挑出一个错误分类的点(x(t),y(t))
w(t+1)=w(t)+y(t)x(t)
}
-
由公式h(x)=sign(wTx)可以看出结果就是权值向量和输入向量进行点积然后取符号,即
- 当w向量和x向量之间夹角小于90°时结果为+1
- 当w向量和x向量之间夹角大于90°时结果为+1
w(t+1)=w(t)+y(t)x(t) 调整的意义
-
红色是调整前w向量,蓝色是调整后w向量,(x(t),y(t))是一个错误分类的点
- 当结果应该是+1,而输出是-1,如上半图,w(t+1)=w(t)+y(t)x(t)的意义就是将w向量向x的方向扭动
- 当结果应该是-1,而输出是+1,如下半图,w(t+1)=w(t)+y(t)x(t)的意义就是将w向量向x相反的方向扭动
Pocket改进
- Pocket就是每次更新w向量时计算错误率是否下降,如果下降就更新,反之不更新
权值都初始化为0
for(t=0,t<T;t++){//设定固定迭代次数T
从样本中挑出一个错误分类的点(x(t),y(t))
copy=w(t)//复制当前权值
w(t+1)=w(t)+y(t)x(t)//使用错误分类点更新权值
If(Ein(w(t + 1))>Ein(w(t)))//如果更新后错误率变大则将权值改回
w(t+1)=copy}
分析
- 不加改进的PLA错误率一直在浮动,不能很好的收敛
- Pocket能够在给定的迭代次数获得一个较优解
总结
- 感知机本身就是不稳定的,权值的更新可能会导致原本正确分类的点变成未正确分类的点
- 假如样本空间不是线性可分,不加改进感知机就无法找到确切的位置甚至无法停止
- 经过Pocket改进后仍然有一个问题那就是迭代次数的选择,少了结果不够近似,多了又做了很多无用功
标签:algorithm,样本,感知机,期末,PLA,权值,向量 来源: https://www.cnblogs.com/redo19990701/p/11269094.html