看博客或教材时,总以为推导写的太简单,因此这里本身推导一下支持向量机的公式。部分推导会写在纸上,贴图上来,由于太长了,用latex敲实在是麻烦,若是哪里看不清楚或者哪里有误,还望评论指出,我及时修改。会不断更新的。算法
目录安全
三者关系:优化
核技巧:spa
推导code
超平面blog
证实wT是法向量ci
分类 | 使用场景 | 备注 |
线性可分SVM | 数据彻底线性可分 | 最原始、最基本的SVM |
线性SVM | 数据大多线性可分 | 加入一个扰动 |
非线性SVM | 数据线性不可分 | 引入核函数,最通常状况 |
非线性SVM的核函数,其就简化成了线性SVM;
线性SVM的扰动恒等于0时,其就简化成了线性可分SVM;
对于数据线性不可分状况,基本思路是引入映射函数,把数据映射到更高维空间,在更高维空间进行分类,核函数定义为,即两个向量在特征空间(映射后空间)的内积,这种定义内积却不直接定义映射函数的技巧即为核技巧。为什么这样定义,看后面推导你就会发现,全部用到映射函数的场景,全是内积。
下面推导最通常状况下的SVM(含有核函数和扰动)。
输入:
数据,i=1,2……m
求解:
超平面,也就是求解和
输出:
这里提到的超平面长这样,我比较熟悉的平面长这样,通过移项变成,因此中的x已经包含了x,y,即特征空间的全部坐标值,咱们利用的是整个特征空间肯定点与平面的关系,中虽然叫作x,可是却包含了y。
设为平面上的点,该平面把特征空间分红两侧,为向量指向一侧的点。
则,设
上述两式相减获得
因为
因此。
下图以二维为例。
定义函数间隔为,不难看出这是一个相对距离,去掉了点到超平面的距离公式中的分母,只要该数据点的分类断定正确,与是等价的。
要引出带的更通常状况的优化函数,咱们须要先讨论一种更简单的场景,若数据在通过映射后,在高维空间彻底线性可分,则利用函数间隔设置一个安全距离,该安全距离的值设为1,也就是支持向量(在彻底线性可分时,支持向量就是距离分割超平面函数间隔为1的数据点,也是离分割平面最近的点,没什么神秘,就是数据映射的点,超平面上的全部点,不特指训练集中的数据点)到超平面的函数间隔等于1,以下图:
其他点到分割超平面的函数间隔就大于1,即对全部数据点知足下式:
为什么不用几何间隔定义也很容易想清楚,几何间隔是个绝对的距离,数据多种多样,根本没法保证支持向量到分割平面的几何间隔等于1,但函数间隔这一相对距离就能够。
因为,故
此时,点到超平面距离
两边支持向量的间隔就是
因此咱们获得了咱们要优化的目标函数便是,它越大,SVM安全距离越大,容错率越高,SVM越健壮。
等价于
此时咱们在进一步考虑,即便进行映射后,少部分数据在高维空间仍然线性不可分,但绝大部分知足,这时咱们引入一个扰动,允许函数间隔不彻底知足大于等于1,即:
对应的优化函数也应改成:
C为正则化系数,需手动调节,直观来看,咱们优化的目标函数要求尽量的小,同时也要尽量的小,即咱们容许扰动的存在,但越小越好,最好没有。
下面讨论含这一通常状况。
这一步用到了拉格朗日乘数法及其对偶问题,KKT条件。
利用拉格朗日乘数法,构造:
注意不等式约束化为小于等于0的标准结构。
求,其原始问题为:
对应对偶问题为:
注意原始问题与等价,同时这里知足原始问题与对偶问题等价的条件,因此对偶问题也与求的优化问题等价,因此下面经过求解对偶问题来求解。注意
如今求等价于求
这里写一下KKT条件有哪些:
9式10式中的两个乘子必有一个为0,同时根据9,10,11,12四个式子以及,咱们能够获得以下推论:
的值 | 的值 | 的值 | 的值 | |
=0 | =C | =0 | >1 | 在安全间隔外,数据十分安全,断定很准确 |
(0,C) | (0,C) | =0 | =1 | 为支持向量 |
=C | =0 | (0,1) | (0,1) | 在安全间隔内,断定仍正确 |
=C | =0 | =1 | =0 | 在分割面上 |
=C | =0 | >1 | <0 | 被误判 |
SMO就是一种继续求解上面的优化问题的的启发式方法,主要包含两个过程,第一步找到两个要优化的和,固定剩余m-2个;第二步经过优化算法优化和。不断迭代这两步,直到全部的知足KKT条件。
的肯定为外层循环,选KKT条件被破坏最大的,先遍历,若是都不符合要求,遍历整个数据集。
的肯定为内层循环,此时已经肯定,要选出使得降幅最大的,若找不到合适的,就换一个,从新走外层循环。
假设和已经选出,下面的思路是,使用旧的和以及固定了的,找出新的和
因为已经固定,不妨令,t为定值(根据,t是由以及肯定),下面把和筛出来,同时扔掉不含和的其他项(用直线画出,下一步自动去掉),时刻记着。
因为,因此,进一步获得,带入上面的结果继续化简:
上式对求偏导,令结果等于0,即
下面分状况讨论。
1. 时,
设超平面为,即
进一步化简
咱们的目标是用旧的和更新出新的和,且,,因为暂时未考虑用导数获得的是否在做用域内,因此用来表示这一中间状态,把代入上式继续化简,
目前约束的有以下不等式
接下来就要讨论的做用域
2. 时
根据二次函数与一次函数图像,只可能在边界上出现,即上面讨论的L或H,代入计算两点计算L,取最小的那个就能够了
求出以后,由下式计算求出:(牢记,且)
每一次更新和,还要同步更新超平面与
不难看出主要任务就是更新b,b的更新公式推导以下:
至此,全部推导大体讲解完毕,但愿没有把大家讲糊涂吧,我我的以为写得已经很详细了。