机器学习(凸优化,SVM) 笔记整理

机器学习笔记(1) 凸优化、SVM问题

凸优化

一个AI问题可以把它分解为模型加优化两部分构成,模型有DL、SVM、CNN等,优化有GD,SGD,Adam等等。
机器学习的核心是优化问题。任何一个优化优化问题可以写作以下形式:
机器学习(凸优化,SVM) 笔记整理_第1张图片
若待优化问题是凸函数,我们则可以找到一个全局最优解(Global optimal),如逻辑回归;
若为非突函数,我们找到的最优解通常为局部最优解(Local optimal)
如神经网络。

判断是否为凸优化问题

凸集的定义:假设对于任意x,y∈C,对任意的α∈[0,1],有
αx+(1-α)y ∈C,者集合为凸集。从几何层面上来说,该表达式可以理解为x y连线上任意点都在集合C内,则集合C为凸集。
判断一个问题为凸优化问题,则它的定义域和值域都应该是凸集。由此引入凸函数的定义,对于定义域里任意下x,y有
在这里插入图片描述
判断函数为凸函数通常有直接观察法和求导法,直接观察法可以通过函数的构造来判断函数是否为凸函数,如线性函数,范数等为凸函数;
求导法 若函数二阶可导,我们可以通过该二阶导数大于0来判断凸函数。

SVM问题

由上,一个标准的优化问题是通过minimize目标函数求取极小值,对于原优化问题,其拉格朗日函数如下:
在这里插入图片描述
α β为拉格朗日算子,再KKT条件下,可以通过求解对偶问题来求解原问题。KKT条件:
机器学习(凸优化,SVM) 笔记整理_第2张图片

支持向量机(SVM)解决的是一个分类问题,假定一个训练样本集是线性可分的,线性可分用数学语言来说:一个训练样本集{(xi,yi)},i=1~N线性可分,是指存在(w,b)使得:
机器学习(凸优化,SVM) 笔记整理_第3张图片
支持向量机要找到一个超平面,使其分开两个类,该超平面离两边支持向量的距离相等并距离间隔最大。充要条件为:
机器学习(凸优化,SVM) 笔记整理_第4张图片
可以将约束条件改为:
在这里插入图片描述
将原问题拉格朗日化:
在这里插入图片描述将原问题转化为对偶(dual)为题,对w和b求梯度令其为0,得到关于α的表达式:
在这里插入图片描述
在这里插入图片描述
将其带入原问题可得:
在这里插入图片描述
由此得到dual问题的描述:
机器学习(凸优化,SVM) 笔记整理_第5张图片
求得w的最优解后,通过SVM的算法判别式,就可以对传入的x进行分类
在这里插入图片描述
由此可以看出,对传入数据x,其会对每一个训练数据Xi进行点积运算。但由于限制条件aiyi=0,所以真正做运算的只有在边界上的支持向量做运算,只保留ai不为0的项。

SVM多类别分类

对于有n个类别的分类情况,有两种方法处理该问题。
1.one versus rest:训练n个SVM,每个SVM用于判定任意数据是属于该模型还是非该模型。预测的时候,具有最大值的结果表示数据x属于该结果所对应的类别
2.one versus one,训练k(k-1)/2个SVM,每个SVM只用于判读任意条数据是属于k中的特定两个类别。用计票的方式决定数据被分类为哪个类别的次数最多,就认为数据x属于此类别
总结:SVM重心在于找最优分界线,用于减少过拟合;在低维线性不可分的情况下,可以把低维向量映射到高维空间中,采用核函数可以比较容易的完成映射工作,再在高维空间中寻找超平面完成分类的工作。理论完美,但当数据量特别大时,训练比较慢

你可能感兴趣的:(机器学习,深度学习,数据挖掘)