【机器学习】感知机学习算法(PLA)
2017-07-17 15:46
190 查看
感知机问题学习算法引入:信用卡问题
根据已知数据(不同标准的人的信用评级)训练后得出一个能不能给新客户发放信用卡的评定结果解决该问题的核心思想扔为之前所讲到的梯度下降算法,对于更多条件的类似问题,首先选取一个超平面w0,b0,然后用梯度下降算法不断极小化目标函数,使得此过程中随机一个有误分类点的梯度下降。
过程通过随机选取一个分类点,(xi,yi)依据该分类点对w b进行更新。
得出的这个函数f(x) = sign(w·x+b)就是感知机模型。
它的计目的就是找到一条直线,能够把正向数据与负向数据分开
那么如图1是一个明确我们所得出的一个比较好的直线,接下来我们需要找到一条更好的直线,将两种结果分开,那么经过多次迭代,就会得出图二中的直线。
算法原始形式如下:
输入:
训练数据集T = {(x1,y1)……(xn,yn)}
(xi为向量)
学习率 η(0,1)
输出:
w ,b
依据:
感知机模型f(x) = sign(w·x+b)
感知机算法的执行步骤:
1)选取初值w0,b02)在训练集合中任意选取数据(xi,yi),其中yi为评判标准,即yi∈{+1,-1}
3)如果yi(w·xi+b) <= 0 则说明当前结果与目标结果相违背,更新w与b
w = w + ηyixi
b = b + ηyi
4)跳转到步骤(2)直到不存在误分点。
该过程图形化的描述如下:
该方法虽然简单,但并非所有情况下都是有解的
如图2 3的情况下该算法将一直运行,不会得到解。算法对于可分数据集的计算过程用C++语言描述如下:
#include<iostream> using namespace std; int main() { bool flag = true; int x1[10],x2[10],num; int type[10]; int w1 = 0,w2 = 0,b = 0,times = 0;//times为迭代次数 cin>>num; for(int i = 0; i < num; i++) { cin >> x1[i] >> x2[i]>>type[i]; } do { times++; int t = 0; for(int i = 0; i < num; i++) { if(type[i]*(w1*x1[i]+w2*x2[i]+b) <= 0)//判断是否被正确分类 { flag = false;//如果没有正确分类,修改标志 w1 += type[i]*x1[i];//更新w w2 += type[i]*x2[i]; b += type[i]; } else t++; } if(t == num) { flag = true; } } while(!flag); cout <<"w1:"<< w1 <<" w2:"<<w2<<" b:"<<b<<"times"<<times<<endl; return 0; }
计算过程十分简单,其中说明对于未知的情况,即开始时候,w0 b0都初始化为0,之后将会迭代更新。
经过证明该算法是具有收敛性的,
并且可以得出,对于
(R²为最大向量长度,ρ为目标直线的法向量与每个点的內积判断方向yn中的最小的)
可以得出计算次数k <=
。
另外需要注意,对于可分训练数据集,选取点的次序不同,得出的解也就不同,但是这些都是感知机学习算法的解。
相关文章推荐
- 机器学习总结(lecture 2)算法:感知机学习算法 (PLA)
- 台大学习第二讲PLA(感知学习算法)
- 台大林轩田机器学习课程笔记1----机器学习初探及PLA算法
- 机器学习深度学习基础笔记(2)——梯度下降之手写数字识别算法实现
- 机器学习总结(十一):深度学习算法(CNN,SAE,等)及常见问题总结
- 机器学习--生成学习算法
- 机器学习学习笔记:决策树归纳算法(ID3)
- 分类-1-逻辑回归(Logistic regression)、感知学习算法(perceptron learning algorithm)、牛顿迭代法
- 系统学习机器学习之SVM(四)--SVM算法总结
- 数学之路(3)-机器学习(3)-机器学习算法-神经网络[5]
- 从软件工程的角度写机器学习3——主要监督学习算法的工程性分析
- 【机器学习】从分类问题区别机器学习类型 与 初步介绍无监督学习算法 PAC
- 李航 统计学习 感知机学习算法 对偶形式
- 机器学习第四篇(stanford大学公开课学习笔记) —生成型学习算法之高斯判别分析模型和朴素贝叶斯方法
- 【机器学习】k-近邻算法(kNN) 学习笔记
- 留学生作业代写 编程代写 有偿代写 python matlab数学建模 机器学习 深度学习 c# c++ 数学 算法 论文程序代写
- 深入理解机器学习:从原理到算法 学习笔记-第1周 02简易入门
- 人工智能,机器学习,深度学习算法,深度学习遥感分类研究者
- 机器学习之优化算法学习总结
- 机器学习、深度学习、和AI算法可以在网络安全中做什么?