机器学习总结(2)—分类中的代数模型(线性回归,逻辑回归,感知机,支持向量机) (3)

机器学习总结(2)—分类中的代数模型(线性回归,逻辑回归,感知机,支持向量机)

(θ和x均为向量,这个激活函数有利于我们区分误分类点)

机器学习总结(2)—分类中的代数模型(线性回归,逻辑回归,感知机,支持向量机)

机器学习总结(2)—分类中的代数模型(线性回归,逻辑回归,感知机,支持向量机)

  输入

  感知机的输入,依然是X样本集,y是1和-1的标签(设立-1的标签有利于我们设置损失函数)

  输出

  得到合适的超平面的参数θ

  损失函数

  我们用误分类点到超平面的距离作为损失函数,并求它的最小值,那么哪些是误分类点呢:

机器学习总结(2)—分类中的代数模型(线性回归,逻辑回归,感知机,支持向量机)

的点就是误分类点,因为对于误分类点,y和θ*x一定异号。判断好了哪些是误分类点后,把他们跟超平面的距离加起来,总的距离为:

机器学习总结(2)—分类中的代数模型(线性回归,逻辑回归,感知机,支持向量机)

(这个公式理解起来很容易,把-y和求和符号除开,就是点到线的距离公式,-y只是为了保证式子为正,求和符号为了求得所有误分类点距离,对了||θ||2表示2范数,就等于θ向量中每个数的平方和求平方根)

  观察式子,式子的分子分母同时存在θ,很显然当θ增大N倍,分母分子同样增大N倍,整体不变。由于我们不关心具体求导等于多少,只关心什么时候是极值,所以我们可以固定分母或者分子为1,然后求另一个即分子自己或者分母的倒数的最小化作为损失函数,这样可以简化我们的损失函数。

  于是损失函数为

机器学习总结(2)—分类中的代数模型(线性回归,逻辑回归,感知机,支持向量机)

  优化方法

  我们采用随即梯度下降法(SGD),每次更新只用一个误分类样本进行梯度迭代更新:

  

机器学习总结(2)—分类中的代数模型(线性回归,逻辑回归,感知机,支持向量机)

(批量迭代是这样)

  

机器学习总结(2)—分类中的代数模型(线性回归,逻辑回归,感知机,支持向量机)

(随机迭代的更新公式,yx在误分类样本中随机选择)

  伪代码

  输入X和y(1,-1)的样本集

  1.设定初始θ,迭代步长a(感知机不唯一,所以初始值和步长会影响超平面)

  2.判断误分类样本集M

    3.在误分类样本中随机选择1个样本

    4.更新

机器学习总结(2)—分类中的代数模型(线性回归,逻辑回归,感知机,支持向量机)

    5.检查训练集里是否还有误分类的点,如果没有,算法结束,输出。如果有,继续第2步

  (感知机还有一个对偶的算法形式,可以简化算法,就是提前计算好Gram矩阵,每次调用内积就行了,由于我是讲基本原理,这里就不赘述了,有兴趣请自行搜索)

4.支持向量机   基本思想

  支持向量机的基本思想与感知机类似,但是在超平面的规定上进行了一些优化。感知机想要误分类点到超平面的距离最近,最好为0也就没有误分类点了。在没有误分类点时,感知机存在多个超平面都可以进行有效分类。而支持向量机则考虑在那么多个超平面中,哪个最好呢?于是选择一个超平面,让支持向量到超平面的间隔最大。所以这里支持向量机的基础条件是不存在误分类点。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zzfzfp.html