支持向量机SVM原理(上)

本文主要基于youtube上的视频(炼数成金机器学习课程):https://www.youtube.com/watch?v=Cz144VkaRUQ


支持向量机(support vector machine)可以完成很多线性分类器达不到的目标:比如当分类的曲线是非线性时。

SVM的思想很直观,但是细节非常的复杂,内容涉及凸分析函数、核函数、神经网络等领域。

本文思路:SVM -> 凸优化问题 -> KKT问题(拉格朗日乘子的推广)-> 对偶问题


1 基本原理

2 计算

左上方的点被分类为y=1,右下方的点被分为y=-1;则分类问题你可以由这个约束条件表示:

上式等价于:

 

我们想要求解最大的d(希望两个分离平面之间的距离最大):

即等价于求解最小的w的模:

(求模涉及到根号,所以转换为模的平方)

在数学上,这个求极值的问题称为凸优化问题

注意w是一个向量,比如三维的向量表示为:

3  凸优化问题

为什么称之为“凸”?首先介绍凸函数:

4 凸优化问题的求解

拉格朗日乘子法:

第一项为目标函数;第二项为约束条件的求和;

αi为拉格朗日乘子,是一个未知数;

凸优化问题可以转化为求拉格朗日极值。取各项偏导等于0:

梯度的定义:(各项求偏导后组成的向量)

上图中,g(x,y)=c是约束;f(x,y)是目标函数;虚线是等值线。

可以看做这样一个三维的投影:

极值点为目标函数和约束条件的相切点;垂直于切线的向量即为梯度(对f和对g分别有两个梯度)。

由上图的推导可知,目标函数和约束条件的梯度向量的方向恰好是相反的,即图中的

严格来讲,拉格朗日乘子法只用于解决约束为等号的情况,这种约束为不等于的情况实际属于,是拉格朗日算子法的一种推广。上面的推导只能解决约束条件为等号的情况,不等号时没办法直接求解,但我们可以借此消掉w和b,进一步简化为对偶问题:




猜你喜欢

转载自blog.csdn.net/m0_37622530/article/details/80820908