美文网首页
支持向量机算法(SVM)介绍

支持向量机算法(SVM)介绍

作者: 爱吃鱼的夏侯莲子 | 来源:发表于2020-01-31 17:59 被阅读0次

在解决复杂的非线性分类问题时,除了逻辑回归和神经网络,还有一种更为强大的算法:叫做支持向量机(Support Vector Machines),简称SVM

代价函数

在分类问题上,常用的激励函数为:
h_\theta(x) = \frac {1}{1+e^{-\theta^Tx}}

逻辑回归的cost函数:
Cost(h_\theta(x), y) = -y \log(h_\theta(x)) - (1-y) \log(1-h_\theta(x))

代入激励函数,得到:
Cost(h_\theta(x), y) = -y \log(\frac{1}{1+e^{-\theta^Tx}}) - (1-y) \log(1-\frac{1}{1+e^{-\theta^Tx}})

上述式子中:
当样本的输出y为1时:Cost(h_\theta(x), y) = -\log(\frac{1}{1+e^{-z}}), z=\theta^Tx

当样本的输出y为0时:Cost(h_\theta(x), y) = -\log(1-\frac{1}{1+e^{-z}}), z=\theta^Tx

该式子的值随着z的变化曲线:

可以看到当y=1时,该式子的值随着z值的增大而减小;当y=0时,该式子的值随着z值的增大而增大。

下面开始构建向量机
将上面的变化曲线做一下简化:

  • y=1时,以z=1为分界点,当z\geq 1,式子的值为0,当小于1时,是一条线性变化的直线;
    cost_1(z)来表示该曲线。
  • y=0时,以z=-1为分界点,当z\leq -1,式子的值为0,当大于-1时,是一条线性变化的直线;
    cost_0(z)来表示该曲线。

逻辑回归的代价函数为:
J(\theta)=-\frac{1}{m} \sum_{i=1}^m [y^{(i)} \log(h_\theta(x^{(i)})) + (1-y^{(i)}) \log(1-h_\theta(x^{(i)}))] + \frac{\lambda}{2m} \sum_{j=1}^n \theta_j^2

cost_1(z)cost_0(z)代入上述式子:

J(\theta)=-\frac{1}{m} \sum_{i=1}^m [y^{(i)} cost_1(\theta^Tx) + (1-y^{(i)}) cost_0(\theta^Tx)] + \frac{\lambda}{2m} \sum_{j=1}^n \theta_j^2

为了方便计算,将式子乘以m;再将\lambda化去,用C代替:

J(\theta)=-C \sum_{i=1}^m [y^{(i)} cost_1(\theta^Tx) + (1-y^{(i)}) cost_0(\theta^Tx)] + \frac{1}{2} \sum_{j=1}^n \theta_j^2

上述便是SVM的代价函数。
C值是一种控制参数权重的方法,和逻辑分类的\lambda的作用类似。区别是更关心前一个式子的优化还是后一个式子的优化。为了方便,可以简单的把C和\lambda的关系比做C=\frac {1}{\lambda}

通过代价函数 和 cost_1(z)cost_0(z) 的变化曲线,可以得知:

  • y=1\theta^Tx \geq 1条件下,代价函数的值趋向于0;
  • y=0\theta^Tx \leq -1条件下,代价函数的值趋向于0;

上述条件比起在逻辑回归中,\theta^Tx \geq 0时预测值为1,\theta^Tx < 0预测值为0,支持向量机的要求更加严格。

决策边界

支持向量机在选择决策边界时会选择一个离样本间距最大的边界,因此支持向量机有时被称为大间距分类器

转载自:
https://codeeper.com/2020/01/31/tech/machine_learning/svm_intro.html

相关文章

网友评论

      本文标题:支持向量机算法(SVM)介绍

      本文链接:https://www.haomeiwen.com/subject/edagthtx.html