吴恩达机器学习103:SVM之大间隔分类器的数学原理
1.向量内积:
(1)假设有u和v这两个二维向量:,接下来看一下u的转置乘以v的结果,u的转置乘以v也叫做向量u和向量v的内积,u是一个二维向量,可以将其在图上画出来,如下图所示向量u:
在横轴上它的值就是某个u_1,在纵轴上它的高度就是某个值u_2,即U的第二个分量,那么现在就容易得出向量u的范数,||u||就表示u的范数或者u的欧几里得长度,即
同理对于向量v而言,向量v有两个分量v1和v2,横轴是v1,纵轴是v2,因此向量v就会是下面这样的
接下来看看如何计算u和v的内积的,具体做法如下,将向量v投影到u上,因此需要做一个直角投影或者一个90度角的投影,如下将其投影到u上,接下来的就是要测一下p的长度,我们标记这条红线的长度 为p,因此p就是向量v在向量u上的投影长度或者说量,因此可以用u的内积乘以v,它的结果等于p乘上u的范数或者长度,即,最后可以得出:
,这个公式会得出最终的答案,如果你进行相反的计算,只是把u和v交换一下即可。从上面的讨论可以知道,u的范数是一个实数,,同时p也是一个实数,因此u的准直乘以v就是两个实数,也就是p的长度乘以u的范数,最后需要注意一点就是,如果你着眼于范数p,p实际上是有值的,即它可能是正值,也可能是负值。
(2)示例。如果u和v分别是如下的两个向量,如果u和v之间的夹角大于90度的话,我们将v投影到u上,
我们会得到下面这样的一个投影,红色的部分就是p的长度,这个时候u的转置乘以v就等于p乘以u的范数,唯一不同的是这里的p值是负数,因此在内积的计算中,如果u和v之间存在夹角,如果夹角小于90度的话,那么这条红线的长度就是正值,相反如果这个夹角大于90度的话,那么这里的p值就是负数,两个向量的内积就是负数,
(3)SVM决策边界:我们首先忽略θ0,将其设置为0,为了更容易的画图,我们将特征数n设置为2,这样我们就只有两个特征向量x1,x2,现在我们看看这个支持向量机的优化目标函数,当n=2的时候,即我们只有两个特征向量时,这个式子可以写成,因为我们只有两个参数θ1和θ2,所以接下来可以将其写成:,括号中的这项就可以写成:
=||θ||,意思是我们将向量θ写成这样的形式:θ1 θ2,那么刚刚划线的这项就是θ的长度或者范数,如同这里的当θ0等于0的时候,那么这里的向量就是θ1和θ2向量的长度。因此这意味着我们的目标函数等于:,所以对于优化目标函数来说,支持向量机做的是最小化参数θ的范数的平方。
(4)接下来我们需要考虑一下这些项θ的转置乘以x,然后深入理解一下他们的作用,给定一个参数θ以及给定一个样本x会等于什么呢?如下图所示,我们将θ和x都从向量的角度来进行考虑,
记住下图中的等式
即在上述条件下,即θ的转置乘以x(i),有大于等于1的,也有小于等于-1的
(5)当我们写入我们的优化目标函数后,没有了θ的转置乘以x(i),取而代之的是p(i)乘以θ的范数,所以可以写成下面的形式:
我们考虑一下上面的这个样本,然后继续使用之前的简化方法进行简化, 即θ0=0,让我们看看支持向量机会选择怎们样的边界,第一种选择方式:假设支持向量机选择这个决策边界,这并不是一个很好的选择,因为它的间距很小,离训练样本的距离很近,让我们看看为什么支持向量机为什么不选择它,对于这种参数,我们可以看到,参数向量θ事实上是与决策边界90度正交的。令θ0=0意味着决策边界必须通过原点(0,0),现在我们看一下这对于优化目标函数意味着什么?比如说这个样本,假设第一个样本x(1),
如果要考察样本到参数θ的投影,那么下图所示的短的红线就是p(1),他是非常短的
同样的对于下图的样本中,有一个样本为x(2),下图中的洋红色就是p(2),即样本在向量θ上的投影,p(2)实际上是一个负值,因为其实朝着相反的方向,这个向量与参数θ的夹角大于90度,因此p(2)的值就会小于0,我们发现,对于p(i)是非常小的数
我们考虑优化目标函数,就会发现,对于正样本而言,我们需要p(i)乘以θ的范数能够大于等于1,即,但是如果这里的p(1)特别的小,这就意味着我们需要θ的范数特别大,即||θ||要比较大
相似的,对于负样本而言,我们需要p(2)乘以θ的范数小于或者等于-1,,这里p(2)是一个非常小的数,唯一的办法就是让θ的范数特别大,但是优化目标函数需要做的是,找到一套参数θ,来使得其范数足够的小,因此这个对于选择参数向量而言不是一个好方向
在这里,决策树可以选择这样的一个决策树边界,现在的图像上会有很大的不同
如果这是,那么对应的参数θ的方向就是下面蓝色箭头的方向,决策边界是绿色边界,可以得到样本点的边界长度是p(1)
类似的可以做如下方式的投影,得到p(2),其中p(2)的值是小于0的,可以看到,p(1)和p(2)的长度明显比上面的计算长度要长,现在p(1)变大了,因此θ的范数就可以变小了
上面就意味着,通过选择下面的决策边界,而不是上面的那个决策边界,SVM可以使得参数θ的范数变小很多,也就是使得θ的范数的平方变小,这就是为什么svm会选择下面的假设函数,这就是svm是如何产生大间距分类现象的。
总结一下:
(1)下面这条绿色直线即绿色的决策边界,我们希望正负样本投影到θ的值足够的大,要做到这一点的唯一方式就是,让决策边界周围的点到决策边界保持大间距,这就是正样本和负样本之间的间隔,实际上间隔的值就是p1,p2,p3等值,通过让间距变大,svm最终可以输出一个比较小的θ范数,这就是支持向量机优化目标函数所做的,这就是为什么支持向量机最终会找到最大间距分类器的原因
(2)自始至终使得参数θ0=0的原因是使得决策边界始终过原点
吴恩达机器学习103:SVM之大间隔分类器的数学原理的更多相关文章
- ML:吴恩达 机器学习 课程笔记(Week1~2)
吴恩达(Andrew Ng)机器学习课程:课程主页 由于博客编辑器有些不顺手,所有的课程笔记将全部以手写照片形式上传.有机会将在之后上传课程中各个ML算法实现的Octave版本. Linear Reg ...
- [吴恩达机器学习笔记]12支持向量机3SVM大间距分类的数学解释
12.支持向量机 觉得有用的话,欢迎一起讨论相互学习~Follow Me 参考资料 斯坦福大学 2014 机器学习教程中文笔记 by 黄海广 12.3 大间距分类背后的数学原理- Mathematic ...
- [吴恩达机器学习笔记]12支持向量机2 SVM的正则化参数和决策间距
12.支持向量机 觉得有用的话,欢迎一起讨论相互学习~Follow Me 参考资料 斯坦福大学 2014 机器学习教程中文笔记 by 黄海广 12.2 大间距的直观理解- Large Margin I ...
- 吴恩达机器学习笔记43-SVM大边界分类背后的数学(Mathematics Behind Large Margin Classification of SVM)
假设我有两个向量,
- 吴恩达机器学习笔记(六) —— 支持向量机SVM
主要内容: 一.损失函数 二.决策边界 三.Kernel 四.使用SVM (有关SVM数学解释:机器学习笔记(八)震惊!支持向量机(SVM)居然是这种机) 一.损失函数 二.决策边界 对于: 当C非常 ...
- [吴恩达机器学习笔记]12支持向量机1从逻辑回归到SVM/SVM的损失函数
12.支持向量机 觉得有用的话,欢迎一起讨论相互学习~Follow Me 参考资料 斯坦福大学 2014 机器学习教程中文笔记 by 黄海广 12.1 SVM损失函数 从逻辑回归到支持向量机 为了描述 ...
- 吴恩达机器学习笔记45-使用支持向量机(Using A SVM)
本篇我们讨论如何运行或者运用SVM. 在高斯核函数之外我们还有其他一些选择,如:多项式核函数(Polynomial Kernel)字符串核函数(String kernel)卡方核函数( chi-squ ...
- 吴恩达机器学习101:SVM优化目标
1.为了描述SVM,需要从logistic回归开始进行学习,通过改变一些小的动作来进行支持向量机操作.在logistic回归中我们熟悉了这个假设函数以及右边的sigmoid函数,下式中z表示θ的转置乘 ...
- Machine Learning——吴恩达机器学习笔记(酷
[1] ML Introduction a. supervised learning & unsupervised learning 监督学习:从给定的训练数据集中学习出一个函数(模型参数), ...
随机推荐
- Spring boot之JPA
JPA 步骤: (1)在pom.xml添加mysql,spring-data-jpa依赖 (2)在application.properties文件中配置mysql连接配置文件 (3)在applicat ...
- Mysql超强卸载
1.控制面板——>所有控制面板项——>程序和功能,卸载mysql server! 2.删除MySQL文件,尤其是ProgramData里面的隐藏文件MySQL,我当时没有删除,重新安装My ...
- webSocket通信
针对webSocket通信总结: 1.webSocket通信原理图: 2.webSocket通信实例 参考地址1:https://www.cnblogs.com/cjm123/p/9674506.ht ...
- Java中的23种设计模式与7大原则
一.创建型模式 1.抽象工厂模式(Abstract factory pattern): 提供一个接口, 用于创建相关或依赖对象的家族, 而不需要指定具体类.2.生成器模式(Builder patter ...
- 【转】C/C++ 引用作为函数的返回值
转自:https://blog.csdn.net/weixin_40539125/article/details/81410008 这篇文章写的很好: 语法:类型 &函数名(形参列表){ 函数 ...
- Reactjs之静态路由、动态路由以及Get传值以及获取
1.新增知识点 /* react路由的配置: 1.找到官方文档 https://reacttraining.com/react-router/web/example/basic 2.安装 cnpm i ...
- 新增存储用Parted分区并建LVM卷
新增存储用Parted分区并建LVM卷 一,Parted分区 1,parted分区 www.ahlinux.com # parted /dev/sda GNU Parted 2.1 使用 /dev/ ...
- python_面试题_TCP的三次握手与四次挥手问题
1.相关问题 问题1: 请详细描述三次握手和四次挥手的过程,并画出状态图 问题2: 四次挥手中TIME_WAIT状态存在的目的是什么? 问题3: TCP是通过什么机制保障可靠性的? 2.问题回答 问题 ...
- Linux系统基本操作
学习目标: 通过本实验掌握Linux的系统安装.磁盘分区.文件管理.IP地址配置.SSH远程管理.WinSCP文件传输.chmod文件权限管理.tar及gzip/bzip2压缩工具的使用,以及关机 ...
- 线性模型-线性回归、Logistic分类
线性模型是机器学习中最简单的,最基础的模型结果,常常被应用于分类.回归等学习任务中. 回归和分类区别: 回归:预测值是一个连续的实数: 分类:预测值是离散的类别数据. 1. 线性模型做回归任务 ...