统计学习方法---感知机
感知机是二类分类的线性分类模型
输入为实例的特征空间,输出为实例的类别,取+1,-1。
感知机对应于输入空间中将实例划分为正负两类的分离超平面,属于判别模型。
感知机旨在求出将训练数据进行线性划分的分离超平面,为此,导入基于误分类的损失函数,利用梯度下降法对损失函数进行极小化,求得感知机模型。
看到这依旧不知道感知机是个啥玩意。。。
感知机模型
输入一个x经过感知机函数的计算,得出输出类别。
感知机的假设空间是定义在所有线性分类模型或线性分类器,即函数集合
几何解释:w是超平面的法向量,b是超平面的截距。这个超平面将特征空间分为两个部分,位于两部分的点被分为正,负两类。
模型一开始已经知道了,其实模型就是那个函数,感知机的学习过程就是利用训练集给出实例的特征向量和输出的类别,根据策略来最终确定一个最好的参数w,b(策略就是告诉你咋样能选出一个最好的模型参数),算法就是告诉你咋求这个参数。这就算学习好了。之后去预测新的数据的类别就行了。
---------------------------------------------------------------------------------------------------------------------------------------------------------------
感知机给出训练集中实例的类别咋给出的?
事先给出来的,绝对是正确的,用这个来训练机器
带入模型后每次都是求大于0?为啥?因为符号函数的特性,x大于0 ,取正1,x小于0,取负1
感知机策略(就是咋选,用什么方法来选)
学习目标:求得一个能够将训练集正实例点和负实例点完全正确分开的分离超平面。
为了得到这样的超平面,那当然就要确定参数,确定参数,超平面就确定了呀!
定一个学习策略,定义一个损失函数并将损失函数极小化。这是句套话,具体到不同的模型上,损失函数也不相同,但是策略就是为了选出最好的。将问题转化为最优解问题。
这里有一个问题就是怎么设计这个损失函数,我不知道咋设计,有人知道。
感知机所采用的损失函数:误分类点到超平面S的总距离。
点到S的距离:
对于误分类的点来说
成立。为啥?啥意思,成立之后就可以去掉上面那个式子的绝对值然后进行化简求导计算。
这样损失函数就确定了
显然,损失函数是非负的。
如果没有误分类点,损失函数的值为0.
一个特定的样本点的损失函数:在误分类时参数w,b的线性函数,在正确分类时是0.所以你看看损失函数是个连续可导的函数呢!
感知机学习的策略是在假设空间中选取使损失函数式最小的模型参数。你看看,又变成数学问题了
---------------------------------------------------------------------------------------------------------------------------------------------------------------
感知机算法(求损失函数式的最小值,咋求?)
随机梯度下降法
感知机的算法:原始形式和对偶形式
证明感知机算法是可收敛的
求参数w,b使其成为损失函数极小化问题的解
随机梯度下降法:梯度就是求导,一次随机选取一个误分类点使其梯度下降,对w,b进行更新
通过迭代可以期待损失函数不断减小
感知机学习算法的原始形式:
当一个实例点被误分类,即位于分离超平面的错误一侧时,则调整w,b的值,使分离超平面向该误分类点的一侧移动,以减少误分类点与超平面的距离,直至超平面越过该误分类点使其被正确分类。
为啥小于0了就要更新了?同号正确分类,异号说明分错了,就小于0了。
感知机学习算法的对偶形式:
与原始形式的区别
收敛性
当训练数据集线性可分时,感知机学习算法是收敛的。感知机算法在训练数据集上的误分类次数k满足不等式:
当训练数据集线性可分时,感知机学习算法存在无穷多个解,其解由于不同的初值或不同的迭代顺序而可能有所不同。
证明书上有,不是那么重要,只是告诉你,按照这个式子一直算下去是可以算出来的。。