NLP学习(二)——支持向量机(SVM)
作者:互联网
Support Vector Machine(SVM)
对下图中的数据点进行分类:
要解决的问题:
- 什么样的决策边界最好?
- 特征数据本身若很难分应怎么处理?
- 计算复杂度如何?
决策边界
若将数据点比喻为地雷,则决策边界为选出的离雷区最远的(雷区就是边界上的点,要large margin)
距离的计算
数据标签定义
数据集:\((X_{1},Y_{1})(X_{2},Y_{2})...(X_{n},Y_{n})\)
Y为样本的类别:当X为正例时Y=+1,当X为负例时Y=-1
决策方程:
其中\(\phi(x)\)为数据点由低维到高维的变换函数
优化的目标
通俗的解释就是找到一条线使得离该线最近的点(雷区)能够最远
将点到直线的距离化简得:
由于\(y_{i}·y(x_{i})>0\)所以去掉绝对值后原式依然成立
目标函数
放缩变换:对于决策方程(w,b)可以通过放缩使\(|Y|\geq1=>y_{i}·(w^{T}·\phi(x_{i})+b)\geq1\)
(为使其易于化简,认为其恒大于1)
优化目标:
由于\(y_{i}·(w^{T}·\phi(x_{i})+b)\geq1\),只需要考虑\({\underset {w,b} { \operatorname {arg\,max} } \, \left(1\over||w||\right)}\)
当前目标:\({\underset {w,b} { \operatorname {max} } \, \left(1\over||w||\right)}\),约束条件:\(y_{i}·(w^{T}·\phi(x_{i})+b)\geq1\)
常规套路:将求解极大值问题转换成求解极小值问题\(=>{\underset {w,b} { \operatorname {min} } \, \left(w^{2}\over2\right)}\)(w为向量)
求解方法:拉格朗日乘子法
拉格朗日乘子法
带约束的优化问题:
原式转换:
我们的式子:
(设法用a表示w和b)
SVM求解
- 分别对w和b求偏导,分别得到两个条件(由于对偶性质)
- 对w求偏导:
- 对b求偏导:
- 带入原始:
*继续对a求极大值:
条件:
*极大值转换成求极小值:
条件:
SVM求解实例
数据:三个点,其中正例X1(3,3),X2(4,3),负例X3(1,1)
求解:
约束条件:\(\alpha_{1}+\alpha_{2}-\alpha_{3}=0\\\alpha_{i}\geq0,i=1,2,3\)
将数据代入原式:
由于:\(\alpha_{1}+\alpha_{2}=\alpha_{3}
化简可得:![](https://www.icode9.com/i/l/?n=22&i=blog/2917691/202207/2917691-20220725015735161-1517621231.png)
分别对\)\alpha_{1}\(和\)\alpha_{2}$求偏导(约束条件 \(\alpha_{i}\geq0,i=1,2,3\)),偏导等于0可得:
\(\alpha_{1}=1.5\\\alpha_{2}=-1\) 不满足约束条件
\(\alpha_{1}=0\\\alpha_{2}=-2/13\) 不满足约束条件
\(\alpha_{1}=0.25\\\alpha_{2}=0\) 满足约束条件
最小值在(0.25,0,0.25)处取得
将\(\alpha\)结果带入求解:
平面方程为:\(0.5x_{1}+0.5x_{2}-2=0\)
支持向量
即真正发挥作用的数据点,即\(\alpha\)不为0的点(处于雷区的点)
soft-margin
软间隔:有时候数据中会有一些噪音点(干扰点),如果考虑的话决策边界的效果会变差
为了解决该问题,引入松弛因子\(xi_{i}\):
新的目标函数:
\[min\frac{1}{2}||w||^{2}+C\sum\limits_{i=1}^{n}\xi_{i} \]C是一个需指定的参数
当C趋近于很大时:意味着分类严格不能有误
当C趋近于很小时:意味着可以有更大的错误容纳
因为要求极小值,当C趋于很大时,只有\(\xi_{i}\)很小时才能满足需要;当C趋于很小时,即使\(\xi_{i}\)较大也可容易地找到极小值
拉格朗日乘子法
引入松弛因子后公式为:
\[L(w,b,\xi,\alpha,\mu)=\frac{1}{2}||w||^{2}+C\sum\limits_{i}^{n}\xi_{i}-\sum\limits_{i}^{n}\alpha_{i}(y_{i}(w·x_{i}+b)-1+\xi_{i})-\sum\limits_{i}^{n}\mu_{i}\xi_{i}\\ w=\sum\limits_{i}^{n}\alpha_{i}y_{i}\phi(x_{n}) \]约束:
\[0=\sum\limits_{i}^{n}\alpha_{i}y_{i}\\ C-\alpha_{i}-\mu_{i}=0\\ \alpha_{i}\geq0 \mu_{i}\geq0 \]解法与先前相同
低维不可分问题
核变换
当低维不可分的时候,映射至高维后是否可分?
目标:找到一种变换函数\(\phi(x)\),从而实现将数据由低维向高维映射
高斯核函数
公式:
尽量不要尝试自己开发新的核函数:-(
reference
标签:NLP,phi,xi,frac,limits,sum,SVM,alpha,向量 来源: https://www.cnblogs.com/LogicG/p/16516073.html