统计学习方法--感知机模型 (perception)
2015-09-21 01:46
459 查看
概念
感知机是一个二类分类的
线性分类器,是支持向量机和神经网络的基础。它假设数据是
线性可分的,目标是通过
梯度下降法,极小化
损失函数,最后找到一个
分割超平面,可以将数据划分成两个类别。
决策函数 如下: f(x)=sign(w⋅x+b)
其中 w 是权值(weight)参数,b 是偏置项(bias)。对 n 维来说,线性方程 w⋅x+b=0 对应特征空间的一个超平面,其中 w 是超平面的法向量,b 是超平面的截距。w⋅x 是求内积的意思,即各项对应相乘后求和。
在二维空间,即直角坐标系中,上面的超平面变成了高中学过的直线的解析式。
{w=(A, B), x=(x1, x2)=(x, y)w⋅x+b=0→ Ax+By+b=0
函数 sign 就是符号函数,定义如下:
sign(t)={+1,t≥0−1,t<0
即,给出特征空间的一个例子x={x1,x2,x3,...,xn},通过上面的公式得出该输入的分类结果是f(x)。对二类分类来说,要么是正例,要么是反例。
训练一个感知机模型
要建立感知机模型,只要确定参数 w 和 b 就行了。我们通过梯度下降法,不断的调整两个参数,向最优解靠近。
怎么评价现在的两个参数到底是好是坏呢?我们量化一个损失函数(loss function),函数值越小,说明离最好的模型越近。在感知机这里,最好的解就是最合适的分割超平面,能把数据分割的最好。
定义 损失函数
L(w,b)=−∑xi∈Myi(w⋅xi+b)
其中 (xi,yi) 为分类错误的一个样例,M 为所有分类错误样例的集合。所以在训练集中没有样例分类错误的时候,损失函数的最小值就收敛到 0 了。前面加一个负号,是因为分类错误的标签 yi 和 分类器预测的分类结果 sign(w⋅xi+b),正好相反,一个 +1,一个是 -1.
损失函数 L(w,b) 是非负的,且是 w, b 的连续可导函数。其中相加项的意义涉及“函数间隔”和“几何间隔”的概念,见支持向量机的定义。
梯度下降
下面讲感知机的具体学习算法,主要涉及梯度下降法来修改参数 w 和 b 。我们要极小化损失函数,即求
minw,bL(w,b)=−∑xi∈Myi(w⋅xi+b)
对 w 和 b 分别求偏导数如下:
⎧⎩⎨⎪⎪⎪⎪⎪⎪∇wL(w,b)=−∑xi∈Myixi∇bL(w,b)=−∑xi∈Myi
更新的时候,直接随便选一个误分类的点 (xi,yi),按下面的公式更新,
{wb←w+η yixi←b+η yi
其中 η (0<η≤1) 表示学习率,或者步长。
整个过程是这样子的,每来一个样本 (xi,yi),计算若 yi(w⋅xi+b)≤0,说明误分了,要用梯度下降更新权重 w,b。若大于0,说明分类正确,不用管。这样直到遍历整个样本都没有误分点,算法停止。
对偶形式
通过观察上面梯度下降的更新公式,发现参数 w 最终的取值,其实是初值(初值为0可以忽略)加上每个样本的某个整数倍,具体如下:⎧⎩⎨⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪wb=∑i=1Nαiyixi=∑i=1Nαiyi
其中,αi≥0, i=1,2,...,N 表示每个样本点在更新过程中被误分类的次数。从 α 中我们还可以看出来,若该值越大,则说明对应的样本点被误分的次数越大,也就离超平面越近,因此难分类。
判断是否属于误分点时,我们用公式 yi(∑j=1Nαjyjxj⋅xi+b)≤0 来判断。对比之前的 w,b 版本,其实只是把 w 用 α 代替而已。注意后面的点乘,即内积,我们可以先事先计算好并存储在Gram矩阵中(G=[xi⋅xj]N×N),以减少实时计算量。
书里没有写为何要有对偶模式,我觉得可能是为了后面的支持向量机的对偶形式做铺垫。对偶形式的计算量并不比原始形式低,反而更麻烦一点,但是 [xi⋅xj] 内积可以更换成核函数 K(xi,xj)=ϕ(xi)ϕ(xj) ,从而能处理非线性可分的问题。
相关文章推荐
- Perl语言入门笔记 第八章 用正则表达式进行匹配
- OS每天15个注意点系列之UI-ScrollView
- Perl语言入门笔记 第七章 漫游正则表达式王国
- UI篇—懒加载
- Java Enum的使用和深入理解
- ACM-ICPC国际大学生程序设计竞赛北京赛区(2015)网络赛 1007 Boxs(状态压缩+搜索)
- Android:Activity & Intent
- jQuery Part 2
- 从CSDN将博客搬至博客园
- Perl语言入门笔记 第六章 哈希(hash)
- Perl语言入门笔记 第五章 输入与输出(标准输入输出,文件句柄,printf,die,say)
- centos安装Chromium
- centos安装Chromium
- HDU 5452 Minimum Cut(LCA+树形DP)
- Hibernate Tools 自动生成hibernate的hbm文件
- 努力学习 HTML5 (4)—— 浏览器对语义元素的支持情况
- hbase-1.0.1的master页面无法打开
- Could not load file or assembly System.Core, Version=2.0.5.0
- 剑指offer 链表
- 排序算法-合并排序(C语言实现)