KKT原理以及SVM数学的理论推导分析
一直很好奇机器学习实战中的SVM优化部分的数学运算式是如何得出的,如何转化成了含有内积的运算式,今天上了一节课有了让我很深的启发,也明白了数学表达式推导的全过程。
对于一个SVM问题,优化的关键在于
KKT理论所标明的是在拉格朗日乘数法中引入的系数与上面的不等式约束条件的乘积等于0始终成立,这个条件所保证的是优化问题的解存在,对于上面的优化,从线性空间的角度来思考就是在做最大化最小间隔,是一个非常明显的二次优化问题。本身分析到这里,还不足以说明问题,为何会出现含有内积的运算式呢。
从这个拉格朗日求解函数的运算式出发,我们发现再优化问题的一般解中会始终有L对所有变量的偏导数均为0,这是多元函数取得极值的必要条件;
在这里,对wT的求导仍然与w是一致的,我们发现w其实是关于α的函数;其实本身每一个拉格朗日乘数都会对分类有影响,对于多数的αi,值都是0,而少数不为0的αi则是真正的支持向量,用于确定分类界限。
在获得w与α的关系后,将式子带回用于求解wT*w,可以得到
可以看到如果没有进行kernel变换那么将会以<xi,xj>的内积形式出现,进行kernel变换后则修正为kernel矩阵进行处理。
对原函数进行修正可以得到上面的结论,也就真正的写成了机器学习实战中的数学表达形式,这里y相当于书中的label;
启发:
对于整个过程而言并没有真正的对二次优化问题进行求解,而只是在形式上不断地进行等价变化,真正的求解要用到二次优化求解的相关理论,比如Platt的SMO算法,进行α对修正完成优化过程。这里的Σ表达形式与矩阵的乘积表达形式可以转化,这个在实际用程序解决问题时非常重要,利用矩阵形式处理数据是一个非常重要的思想观点,笔者以为矩阵才是数据的基本形式,实数域只是在线性空间上做了退化。同时,kernel与非kernel之间的形式也并没有过多差别,本质上的区分在于是在原空间进行内积运算还是对样本进行升维后进行内积运算,而kernel变换中的Φ映射我们本身并不关心,但升维后的内积运算可以通过kernel矩阵完成,这才是kernel变换最核心的东西。
KKT原理以及SVM数学的理论推导分析的更多相关文章
- 关于SVM数学细节逻辑的个人理解(二):从基本形式转化为对偶问题
第二部分:转化为对偶问题进一步简化 这一部分涉及的数学原理特别多.如果有逻辑错误希望可以指出来. 上一部分得到了最大间隔分类器的基本形式: 其中i=1,2,3...m 直接求的话一看就很复杂,我们 ...
- 一步步教你轻松学支持向量机SVM算法之理论篇1
一步步教你轻松学支持向量机SVM算法之理论篇1 (白宁超 2018年10月22日10:03:35) 摘要:支持向量机即SVM(Support Vector Machine) ,是一种监督学习算法,属于 ...
- 《反脆弱》:软件业现成的鲁棒性(Robust)换了个说法变成了作者的发明,按作者的理论推导出许多可笑愚蠢的原则来
本书作者名气比较大,写过<黑天鹅><随机漫步的傻瓜>等书,据称专门研究不确定度性.本书是他以前的书的内容的延续. 所谓的反脆弱,其实软件业有现成的名词鲁棒性(Robust)就是 ...
- Spring-简介-IOC理论推导
1.Spring 1.1.简介 Spring:春天----->给软件行业带来了春天! 2002,首次推出了Spring框架的雏形:interface21框架! Spring框架即以interfa ...
- 控制反转 IOC 理论推导
控制反转 IOC 理论推导 按照我们传统的开发,我们会先去 dao 层创建一个接口,在接口中定义方法. public interface UserDao { void getUser(); } 然后再 ...
- SVM问题再理解与分析——我的角度
SVM问题再理解与分析--我的角度 欢迎关注我的博客:http://www.cnblogs.com/xujianqing/ 支持向量机问题 问题先按照几何间隔最大化的原则引出他的问题为 上面的约束条件 ...
- 主成分分析PCA数据降维原理及python应用(葡萄酒案例分析)
目录 主成分分析(PCA)——以葡萄酒数据集分类为例 1.认识PCA (1)简介 (2)方法步骤 2.提取主成分 3.主成分方差可视化 4.特征变换 5.数据分类结果 6.完整代码 总结: 1.认识P ...
- LDA线性判别分析原理及python应用(葡萄酒案例分析)
目录 线性判别分析(LDA)数据降维及案例实战 一.LDA是什么 二.计算散布矩阵 三.线性判别式及特征选择 四.样本数据降维投影 五.完整代码 结语 一.LDA是什么 LDA概念及与PCA区别 LD ...
- 不懂Ribbon原理的可以进来看看哦,分析RibbonClientConfiguration完成了哪些核心初始操作
本文在前一篇文章的基础上来继续分析Ribbon的核心内容. 不懂Ribbon原理的可以进来看看哦,分析SpringBoot自动装配完成了Ribbon哪些核心操作 RibbonClientConfi ...
随机推荐
- EJB 官方API
http://download.oracle.com/otndocs/jcp/ejb-3_0-fr-eval-oth-JSpec/
- 关于asp.net MVC3 ----@Html.Partial,@Html.Action,@Html.RenderPartial,@Html.RenderAction
1.带有Render的方法返回值是void,在方法内部进行输出:不带的返回值类型为MvcHtmlString,所以只能这样使用:@Html.Partial 对应 @{Html.RenderPartia ...
- 用ISA2006配置单网卡缓存服务器
有些公司在部署ISA服务器之前已经有了自己的网络访问解决方案,例如通过硬件防火墙访问互联网,如果这种网络访问解决方案运行效果较好,公司就未必希望用ISA来替代当前的方案,毕竟稳定是第一位的.但在这种情 ...
- 杀windows进程
1.首先是启动windows的命令窗口,按键盘上的windows+R,然后在输入框中输入cmd,既可以启动命令窗口 2.进入windows命令窗口之后,输入命令,输入netstat -ano然后回车, ...
- 解决问题,链表finish
从一个不懂链表,到反反复复改了不下50遍,提交该题页数更是突破了五页,从周三下午到周五中午的面向对象课前的20分钟,终于把这道题AC了,其实这题本来是原来C语言综合实验的一道题,但是本次在PAT上的审 ...
- mac使用指南--软件安装部分
最近因为开发需要,换了个mac,发现和Windows下面的操作和习惯真是千差万别啊,在这里记录一下,有需要的也可以参考一下. 安装前强烈建议根据个人习惯设置好触控板!!!什么单击双击选中拖拽的统统设好 ...
- canvas小球 时间倒计时demo-优化
<!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8&quo ...
- vim 取消高亮
/ 匹配以后会一直有高亮,退出以后还是有: set nohlsearch nohlsearch
- 【bbs】index、post
列表 奇数行和偶数行设置不同的背景 http://blog.csdn.net/facecrazy/article/details/51252850 实现ul li中的内容上下左右居中,不用设置li宽度 ...
- Kali-linux破解LM Hashes密码
LM(LAN Manager)Hash是Windows操作系统最早使用的密码哈希算法之一.在Windows 2000.XP.Vista和Windows 7中使用了更先进的NTLMv2之前,这是唯一可用 ...