感知机-理论心得体会
感知机1957年由Rosenblatt提出,是二分类的线性分类模型,其输入为实例的特征向量,输出为实例的类别,即+1和-1。感知机对应于特征空间中将实例划分为正负两类的分离超平面。感知机学习的目的是找出将训练数据正确划分的线性分离超平面,具体的方法是使用梯度下降法尝试不断减少损失函数。---感知机是神经网络和支持向量机(SVM)的基础。
1.定义
感知机的输入空间为:为n维特征向量
输出空间为:{-1,+1}---即类别
函数为f(x)=sign(w.x+b)
参数说明:w为n维实向量,称为权值向量,b为实数,称为偏置。sign为符号函数,即
感知机的解释如下:
线性方程 w.x +b=0;对应于特征空间中的一个超平面S,其中w是超平面的法向量,b是超平面的截距。
超平面将特征空间中的点分为正,负两部分,因此S又被称为分离超平面,展示如下:
2.学习策略
线性可分性:给定一个特征空间,如果存在一个超平面 w.x+b=0 将特征空间中的点,能将特征空间中的正,负例点完全分开,则称该特征空间(数据集)线性可分。
衡量标准:需要定义一个损失函数,并且对于每一个误分类点不断将损失函数极小化。---感知机采用的是所有误分类点到当前超平面S的总距离,公式如下:
||w||是L2范数。
对于误分类数据(x,y)来说
因此可得总距离为:
从而得到感知机学习的损失函数。
3.感知机学习算法
如果想要让感知机能够正确分类,则需要调整感知机函数f(x)的的参数,从而使感知机的损失函数极小化--即让特征空间正确分类。
定义M为误分类点的集合,
使用梯度下降算法(SGD):
1>任意初始化一个超平面,参数为w、b
2>随机选取一个误分类点,修改w、b,使梯度下降
梯度由下式给出(分别对w,b求偏导)
随机选出一个误分类点,对w,b更新
不断对误分类点进行处理,从而使梯度不断减少,b中 y的参数成为学习率or步长
算法总结如下:
算法还有一个浅显的解释:当一个特征点被误分类时,调整w、b的值,使超平面S向误分类一侧移动。
参考资料:统计学习方法-李航