热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

林轩田机器学习技法(MachineLearningTechniques)笔记(二)

林轩田机器学习技法(MachineLearningTechniques)笔记(一)林轩田机器学习技法(Mach

林轩田机器学习技法(Machine Learning Techniques)笔记(一)
林轩田机器学习技法(Machine Learning Techniques)笔记(三)



Dual Support Vector Machine



P6 2.1
在这里插入图片描述
L1 讲的是线性支持向量机,接下来L2讲的是对偶支持向量机。
在这里插入图片描述
上节就讲了下求non-linear SVM的方法,转换到z空间的时候,QP问题会有 d~ + 1 个变数(和N个常数)来解,要解决 d~ 很大,甚至是无穷的问题,让SVM不依赖于d~ :

我们可以把original的SVM转成等效的SVM
在这里插入图片描述
这就是对偶问题:
在这里插入图片描述
我们可以仿照之前regularization,引入λ,将条件问题转换为非条件问题,而λ的个数就是N
在这里插入图片描述
在这里插入图片描述
定义拉格朗日函数,相关文献通常把 λ 写成 α
在这里插入图片描述
把SVM转换成右式子
在这里插入图片描述
如果满足不了 s.t. 的(b,w)那么1-yn(wTzn+b)就是整数,选取max的话,就会到达无穷大,因为最终要到是min,这样就会筛掉这种不满足 s.t. 的(b,w)
如果满足了的话,yn(wTzn+b)会是个非负数,因为有个max且a>=0,所以 yn(wTzn+b)=0(注意可以不要∑\sum,因为a>=0,只能是每一项都=0,才可以求和=0),那么式子就是 12wTw\frac{1}{2} w^Tw21wTw
这样即有效地筛掉不满足 s.t. 的数据,又能找到最小的12wTw\frac{1}{2} w^Tw21wTw



P7 2.2
上节把SVM转成拉格朗日式子,那么,如何找到该式子的下限?对于任何(b,w)来说,都有这个:
在这里插入图片描述
因为对于任何都成立,所以取右式子最大的,还是成立的:
在这里插入图片描述
右式成为拉格朗日的对偶(dual)问题,如果解决了这个问题,也就找出SVM的下限。

在这里插入图片描述
因为满足绿色的三个条件,所以是个强关系(对于QP问题),所以就可以直接等同了,也说明了有组(b,w,α)满足等式两边:
在这里插入图片描述
现在没有什么限制了,所以开始解这个:
在这里插入图片描述
因为是min,所以要求:
在这里插入图片描述
因此我们可以加上这个限制,并把式子化一化:
在这里插入图片描述
可以看出最后一项是 b*0 ,所以变成:
在这里插入图片描述
同样,因为min,所以要给L求个w的偏导=0,得出w为一个固定的数,然后开始化简,min可以不用看了,是因为max有了下面一系列规定之后,式子里头没有b和w,剩下的就只用考虑 α 就可以了。
在这里插入图片描述
最后成这个满足最佳化的4个条件为KKT。补充一下:第四点(哈利波特和伏地魔必须活一个)那个,yn(wTzn+b)=1的话(说明点正好在分界线上,这些α>=0点就是SV),式子自然为0,>1的话,根据2.1最后那个图,使得2.1那个图的式子取min,那么αn就只能取0了,所以最终这里的式子也是0。
在这里插入图片描述
最后是funtime小练习巩固,感觉挺有意思的,②要去看回 L(b,w,α) 的定义,就知道了yn和zn=1,然后w=∑αnynzn\sumα_ny_nz_nαnynzn就出来了。③是因为sigma的每一项都要是0(KKT下),所以就 = 0,对于α2(w-3)的问题,感觉可以不用管具体w和yn,zn怎么弄的,总之整体要为0就是了。



P8 2.3
在这里插入图片描述
把上节的式子简单化简一下,max->min,然后把平方化开。不加上w = … 的条件是因为这个十字关注点是在 αn 上。然后发现这是个凸(convex)QP问题,有N个变量(αn),然后又N+1的条件(constraint)(N个αn要大于零,1个∑n=1Nynαn=0\sum_{n=1}^N y_nα_n=0n=1Nynαn=0,共N+1个),然后开始套QP。
在这里插入图片描述
注:一般QP输入的时候可以不用把"="拆成两个不等式,直接写,然后范围bound也可以直接写。
在这里插入图片描述
然而,注意到q是dense的,稠密的矩阵,即里面的值很多不是非零的,计算量和存储量很大,所以要用一个专门为SVM设计的方法。
在这里插入图片描述
通过KKT的4个条件,我们可以推出w和b。特别的,当αn>0α_n>0αn>0的时候,1−yn∗(wTzn+b)=11-y_n*(w^Tz_n+b) = 11yn(wTzn+b)=1,而=1 恰好表示点是在SVM胖胖的边界上的(fat boundary),至于为什么嘛。。估计又得看看超平面了。
在这里插入图片描述



P9 2.4
在这里插入图片描述
我们在上节知道了α > 0 的时候,点在边界上。但是在分类线上的点不一定支持向量(可能有α = 0的情况),所以现在称α>0的点为support vectors(SV),仅针对这些SV(就是α>0的)做研究,范围可能会缩小一些。
在这里插入图片描述
因此 w和b 都可以只靠SV算出来,因为不是SV的话,即 α = 0 的话,它俩没有意义。
在这里插入图片描述
SVM和PLA的式子很像,他们都是ynzny_nz_nynzn的线性组合,其他的w也差不多,可以说,w是资料表现出来的。SVM中的w是只由SV表示的,PLA则是由犯错的点表示出来。哲学上,我们要知道要用什么东西,来表现我们的w。

在这里插入图片描述
对比两种SVM的表示方法:原始(primal)和对偶(dual),hard-margin就是ooxx严格分类不容出错的意思。一般是用Dual SVM。

在这里插入图片描述
最后:虽然说dual svm只和N有关,但其实 d~藏在了q中,接下来会讲解怎么避开这个 d~

最最后的总结:
在这里插入图片描述


推荐阅读
  • 浏览器中的异常检测算法及其在深度学习中的应用
    本文介绍了在浏览器中进行异常检测的算法,包括统计学方法和机器学习方法,并探讨了异常检测在深度学习中的应用。异常检测在金融领域的信用卡欺诈、企业安全领域的非法入侵、IT运维中的设备维护时间点预测等方面具有广泛的应用。通过使用TensorFlow.js进行异常检测,可以实现对单变量和多变量异常的检测。统计学方法通过估计数据的分布概率来计算数据点的异常概率,而机器学习方法则通过训练数据来建立异常检测模型。 ... [详细]
  • 本文主要解析了Open judge C16H问题中涉及到的Magical Balls的快速幂和逆元算法,并给出了问题的解析和解决方法。详细介绍了问题的背景和规则,并给出了相应的算法解析和实现步骤。通过本文的解析,读者可以更好地理解和解决Open judge C16H问题中的Magical Balls部分。 ... [详细]
  • 本文介绍了P1651题目的描述和要求,以及计算能搭建的塔的最大高度的方法。通过动态规划和状压技术,将问题转化为求解差值的问题,并定义了相应的状态。最终得出了计算最大高度的解法。 ... [详细]
  • 判断数组是否全为0_连续子数组的最大和的解题思路及代码方法一_动态规划
    本文介绍了判断数组是否全为0以及求解连续子数组的最大和的解题思路及代码方法一,即动态规划。通过动态规划的方法,可以找出连续子数组的最大和,具体思路是尽量选择正数的部分,遇到负数则不选择进去,遇到正数则保留并继续考察。本文给出了状态定义和状态转移方程,并提供了具体的代码实现。 ... [详细]
  • sklearn数据集库中的常用数据集类型介绍
    本文介绍了sklearn数据集库中常用的数据集类型,包括玩具数据集和样本生成器。其中详细介绍了波士顿房价数据集,包含了波士顿506处房屋的13种不同特征以及房屋价格,适用于回归任务。 ... [详细]
  • 本文讨论了一个数列求和问题,该数列按照一定规律生成。通过观察数列的规律,我们可以得出求解该问题的算法。具体算法为计算前n项i*f[i]的和,其中f[i]表示数列中有i个数字。根据参考的思路,我们可以将算法的时间复杂度控制在O(n),即计算到5e5即可满足1e9的要求。 ... [详细]
  • This article discusses the efficiency of using char str[] and char *str and whether there is any reason to prefer one over the other. It explains the difference between the two and provides an example to illustrate their usage. ... [详细]
  • 本文介绍了贝叶斯垃圾邮件分类的机器学习代码,代码来源于https://www.cnblogs.com/huangyc/p/10327209.html,并对代码进行了简介。朴素贝叶斯分类器训练函数包括求p(Ci)和基于词汇表的p(w|Ci)。 ... [详细]
  • 在本教程中,我们将看到如何使用FLASK制作第一个用于机器学习模型的RESTAPI。我们将从创建机器学习模型开始。然后,我们将看到使用Flask创建AP ... [详细]
  • 【论文】ICLR 2020 九篇满分论文!!!
    点击上方,选择星标或置顶,每天给你送干货!阅读大概需要11分钟跟随小博主,每天进步一丢丢来自:深度学习技术前沿 ... [详细]
  • Opencv提供了几种分类器,例程里通过字符识别来进行说明的1、支持向量机(SVM):给定训练样本,支持向量机建立一个超平面作为决策平面,使得正例和反例之间的隔离边缘被最大化。函数原型:训练原型cv ... [详细]
  • 自动轮播,反转播放的ViewPagerAdapter的使用方法和效果展示
    本文介绍了如何使用自动轮播、反转播放的ViewPagerAdapter,并展示了其效果。该ViewPagerAdapter支持无限循环、触摸暂停、切换缩放等功能。同时提供了使用GIF.gif的示例和github地址。通过LoopFragmentPagerAdapter类的getActualCount、getActualItem和getActualPagerTitle方法可以实现自定义的循环效果和标题展示。 ... [详细]
  • FeatureRequestIsyourfeaturerequestrelatedtoaproblem?Please ... [详细]
  • 成功安装Sabayon Linux在thinkpad X60上的经验分享
    本文分享了作者在国庆期间在thinkpad X60上成功安装Sabayon Linux的经验。通过修改CHOST和执行emerge命令,作者顺利完成了安装过程。Sabayon Linux是一个基于Gentoo Linux的发行版,可以将电脑快速转变为一个功能强大的系统。除了作为一个live DVD使用外,Sabayon Linux还可以被安装在硬盘上,方便用户使用。 ... [详细]
  • 本文讨论了如何使用IF函数从基于有限输入列表的有限输出列表中获取输出,并提出了是否有更快/更有效的执行代码的方法。作者希望了解是否有办法缩短代码,并从自我开发的角度来看是否有更好的方法。提供的代码可以按原样工作,但作者想知道是否有更好的方法来执行这样的任务。 ... [详细]
author-avatar
平凡2188
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有