感知机学习总结 (一)
关于感知机学习的总结,虽然大多是书上内容,但是觉得写下来还是有意义的~~
参考其他几篇博客,大致分为以下几个版块
【感知机的数学模型】
【感知机的几何意义】
【感知机学习策略】
【感知机学习算法实现——原始形式】
【感知机学习算法实现——对偶形式】
【感知机算法实现例题】
【感知机模型的python实现】
参考书籍 李航 -《统计学习方法》 《python machine learning》
1、【感知机的数学模型】
【概要 outline 】:
perceptron 二类分类的线性分类模型
输入:实例的特征向量;
输出 : 实例的分类 ,取值为+1,-1
对应于输入空间中将数据进行线性划分的分离超平面,属于判别模型。
目标:求出分离超平面
基本想法:导入基于误分类的损失函数,利用梯度下降法(gradient descent)对损失函数(loss function)进行极小化,求得感知机模型。
【定义 definition】
输入空间是
,输出空间是
输入到输出的函数为
即为感知机模型
其中w,b为感知机模型参数,w为权值(weight vector),b 为偏置(bias)
sign函数为
2、【感知机的几何意义】
线性方程
对应于特征空间
的超平面S****,
其中w 是法向量,b是截距。
超平面S将特征向量分为两部分,分别称为正、负两类。

3、【感知机学习策略】
数据的线性可分性: 给定数据集

如果存在超平面S可以将所有的正实例点和负实例点完全正确的划分到S的两侧,即
对所有的
称T线性可分。
【学习策略】
损失函数:选择误分类点到S的总距离作为损失函数,在w,b处连续可导,易于优化。
任一点
到S的距离为: 
对已误分类点有 
所以误分类点到S距离可以表示为
,计算时可以不考虑
,因为
>0
假设M为误分类点的集,对于所用误分类点到距离的总和可以表示为:

对于给定的数据集T,感知机
的损失函数定义为:

即感知机的经验风险函数。
4、【感知机学习算法实现——原始形式】
感知机学习问题转化为损失函数的最优化问题,采用随机梯度下降法。
【原始形式】
对于**
,
,
**,i= 1,2...N,求参数w,b使得损失函数极小化的解。

梯度:在计算形式上即求偏导数


随机抽取一个误分类点
,对w,b进行更新:
对w,b进行更新即 w,b加上增量
(因为是梯度下降法,
所以是
有负号)


即learning rate 学习率 
Algorithm:
输入: **
,
,
,**i= 1,2...N,学习
率 
输出 :w,b 感知机模型 
(1)初始化 
(2)在T中随机选取一分类点
(3)如果
(即存在误分类点,对w,b进行更新)


(4)转至(2),直至数据集中没有误分类点 。
5、【感知机学习算法实现——对偶形式】
【基本想法】
将w,b表示成x,y的线性组合形式。对于以下更新:


二者的增量为
和
其中 
所以 最后w,,b可以表示成


Algorithm:
【对偶形式】
输入: **
,
,
,**i= 1,2...N,学习
率
;
输出:
,b , 感知机模型 
其中
(1)初始化 
(2)在T中随机选取一分类点
(3)如果 
进行更新 

(4)转至(2),直至数据集中没有误分类点 。
对偶形式中,训练实例以内积的形式出现,可以提前计算Gram Matrix

