1.从代价函数谈起SVM

图一

根据将y=0||y=1,得到逻辑回归的代价函数,那么SVM和其代价函数是相似的,只不过是引入了cost0与cost1,并且自变量使用了theta_T*x(i),并且由于SVM的通常表示方法,得到了如下的优化函数假设:

在代价函数项加上了系数C(=1/lamda),也就是C很小时,后边一项的权重较大,SVM的模型,如果theta_T*x>=0,那么模型输出1,否则输出0.

SVM就是将负样本和正样本以最大间距分开。

优化目标如上,当要最小化时,C若设置为非常大时,那么要让第一项为0,当一个样本是yi=1时,就需要θTxi>=1,这个是跟据类斯ReLU函数来决定的;

当一个样本是yi=0时,那么第一项中只有后半部分在,就要求θTxi<=-1这一项就为0了;

那么当第一项为0之后,就是最小化第二项的问题了。min后一项,并且限制条件是右下角(只有满足条件才可以保证前一项为0啊!)

2.SVM为何能选取最大间隔的平面?

图二

向量的内积,对单个向量来说,它的第二范数也就相当于是向量的长度(从原点出发),而内积相当于v在u上的投影长度(有正有负)*u的长度。

图三

当只有两个特征时,theta1和theta2即相当于theta向量的范数的平方,而通过公式(右下角)将优化条件限制为正样本点在分割平面的正侧法线(theta向量方向)的投影长度*theta向量的长度,所以就min||theta||的同时需要保证条件≥1,就需要正样本点在theta方向上的投影值最大。如下图:

图四

//PS不太明白,为什么theta向量是和超平面垂直的?保留问题。

3.高斯核函数原理介绍

图五

给出三个标志点,对任一数据点x,都计算,计算x和三个给定点的相似度,计算相似度的公式图中给出的是高斯核函数,即x与每个点的距离的平方/-2*6^2,这个相似度函数就是核函数。又给出了一个十分传神的例子:

图六

当?≥0时,预测类为正类,那么取theta为以下,根据高斯和函数的性质,如果点x和l距离很近,那么≈1;距离很远,那么结果≈0。通过这样就可以得出一个分界面。这是一个我从前没有了解过的角度!下一节就讲到该如何选取这些landmark。

4.高斯核函数中landmark的选取

图七

这里的landmark选取是通过将训练集中的每个点都作为landmark,共m个,给定一个点,那么就会计算与其他所有点的相似度,其中会有一个是与自身的相似度,那么就=1,这样通过相似度函数,也就是核函数,可以将原本的x(i)映射到一个m+1维的f向量中,并且让f去参与运算,f就是用于描述训练样本的特征向量。

图八

在8中,使用f去计算,并且损失函数中代入f去计算,所以最终优化项中求和是从1求到m,或者说n=m.//不太明白这里相等是什么意思。通常theta^2求和都被写为thetaTtheta. 还有中间加上M的,不太明白是什么意思。

大多数SVM实现的时候,是将thetaTtheta替换为中间*M(M取决于使用的核函数),这是另一种区别于求||theta||^2的距离求解方式。这种方式让SVM运行更加高效,适用于有更大的训练集。主要是为了运算效率。

5.SVM参数中偏差-方差的问题

图九

C也就相当于逻辑回归正则化项系数的倒数,当C很大时,即lamd较小,也就是忽略正则化项,偏差较小,方差较大,(是说系数向量吗?);当C很小时,即lamd较大,即计算正则化项,那么偏差较大(即欠拟合状态)方差较小。而对应高斯核函数中的参数6^2,当其较大时,函数趋于平滑,偏差较大,方差较小;当其较小时,偏差较小,方差较大。//不太明白是什么意思。

6.SVM中的核函数适用情况

图十

使用SVM软件包来找出参数theta,需要指明参数C和使用的核函数:

没有核函数(即线性核函数):适用于当n很大,m很小,即特征很多,但是样本量少的情况。

高斯核函数:还需要指明参数6^2,当n较小,m很大时,即特征较少,样本量大的情况。这两个核函数是最常见的,也是使用最频繁的。

在使用核函数时还需要注意的问题,就是归一化,如下图:

 图十一

在使用核函数计算特征向量时,需要对输入向量进行归一化,如当一个特征是房价,另一个是卧室数量,那么v的大小就只受房价控制了。

7.其他的核函数

图十二

多项式核函数,有12中的几种形式,使用它时需要指明常数与幂次。还有更多的,字符串核函数(在做文本分类时,需要计算不同的字符串之间的距离)

8.使用逻辑回归orSVM

图十三

1.当特征数较大时(n>=m,n=10,000,m=10-1000),这时候使用逻辑回归或者没有核函数的SVM,(因为若使用复杂的核函数训练复杂的分类函数,可能会出现过拟合的情况)

2.当n较小时,m是中等的(n=1-1000,m=10-10,000),此时使用高斯核函数的SVM最优。

3.当n较小,m较大时,增加更多的特征,然后使用逻辑回归和没有核函数的SVM。

神经网络能够很好的解决所有的问题,但是训练时间会稍长一点。

Andrew Ng-ML-第十三章-支持向量机的更多相关文章

  1. Andrew Ng机器学习公开课笔记 -- 支持向量机

    网易公开课,第6,7,8课 notes,http://cs229.stanford.edu/notes/cs229-notes3.pdf SVM-支持向量机算法概述, 这篇讲的挺好,可以参考   先继 ...

  2. Andrew Ng机器学习第五章——多变量线性回归

    一.多变量线性回归的技巧之一——特征缩放 1.为什么要使用特征缩放? 特征缩放用来确保特征值在相似的范围之内. 设想这样一种情况(房价预测),两个特征值分别是房子的大小和卧室的数量.每个特征值所处的范 ...

  3. Andrew Ng机器学习第三章——线性回归回顾

    一些概念: 向量:向量在矩阵中表示为只有一列的矩阵 n维向量:N行1列的矩阵. 利用矩阵计算可以快速实现多种结果的计算. 如下图,给出四个房子大小的样本,有四个假设函数对房子价格进行预测.构造下面的矩 ...

  4. 【原】Coursera—Andrew Ng机器学习—Week 7 习题—支持向量机SVM

    [1] [2] Answer: B. 即 x1=3这条垂直线. [3] Answer: B 因为要尽可能小.对B,右侧红叉,有1/2 * 2  = 1 ≥ 1,左侧圆圈,有1/2 * -2  = -1 ...

  5. Andrew Ng机器学习课程笔记(五)之应用机器学习的建议

    Andrew Ng机器学习课程笔记(五)之 应用机器学习的建议 版权声明:本文为博主原创文章,转载请指明转载地址 http://www.cnblogs.com/fydeblog/p/7368472.h ...

  6. Andrew Ng机器学习课程笔记(六)之 机器学习系统的设计

    Andrew Ng机器学习课程笔记(六)之 机器学习系统的设计 版权声明:本文为博主原创文章,转载请指明转载地址 http://www.cnblogs.com/fydeblog/p/7392408.h ...

  7. Andrew Ng机器学习课程笔记(四)之神经网络

    Andrew Ng机器学习课程笔记(四)之神经网络 版权声明:本文为博主原创文章,转载请指明转载地址 http://www.cnblogs.com/fydeblog/p/7365730.html 前言 ...

  8. Andrew Ng机器学习课程笔记(三)之正则化

    Andrew Ng机器学习课程笔记(三)之正则化 版权声明:本文为博主原创文章,转载请指明转载地址 http://www.cnblogs.com/fydeblog/p/7365475.html 前言 ...

  9. 斯坦福大学Andrew Ng - 机器学习笔记(5) -- 支持向量机(SVM)

    大概用了一个月,Andrew Ng老师的机器学习视频断断续续看完了,以下是个人学习笔记,入门级别,权当总结.笔记难免有遗漏和误解,欢迎讨论. 鸣谢:中国海洋大学黄海广博士提供课程视频和个人笔记,在此深 ...

随机推荐

  1. kubernetes 测试 Mariadb gtid 主从复制.

    k8s 为 1个master 3个node 下载镜像 : mariadb 镜像版本是10.2.13 (此时10.3还没发布正式版) docker pull mariadb push到私有仓库 dock ...

  2. LinQ实战学习笔记(二) C#增强特性

    C# 为支持LINQ添加了许多语言特性: 隐式类型局部变量 对象初始化器 Lambda表达式 扩展方法 匿名类型 了解这些新特性是全面了解LINQ的重要先解条件,因此请不要忽视它们. (一)  隐式类 ...

  3. 最小生成树(prime算法 & kruskal算法)和 最短路径算法(floyd算法 & dijkstra算法)

    一.主要内容: 介绍图论中两大经典问题:最小生成树问题以及最短路径问题,以及给出解决每个问题的两种不同算法. 其中最小生成树问题可参考以下题目: 题目1012:畅通工程 http://ac.jobdu ...

  4. SecureCRT无法使用root账户远程连接ubuntu

    ========1.问题============ SecureCRT无法使用root账户远程连接ubuntu 用其他账户连接,正常 用root账户连接,不能连接 =========2.原因====== ...

  5. 在ubuntu中安装rpm包

    Ubuntu的软件包格式是deb,如果要安装rpm的包,则要先用alien把rpm转换成deb. sudo apt-get install alien #alien默认没有安装,所以首先要安装它 su ...

  6. MySQL的ALTER变更、正则查询、分组查询、排序查询以及事务查询的概

    MySQL的表和字段信息的变更 ALTER TABLE table-name DROP column-name; #删除某个字段 ALTER TABLE table-name ADD column-n ...

  7. java中调用操作系统的命令

    java.lang.Runtime类提供了exec() 方法来执行操作系统的命令. 使用静态的Runtime.getRuntime()方法可以获得当前的java应用程序对应的Runtime类的实例 R ...

  8. python nose测试框架全面介绍六--框架函数别名

    之前python nose测试框架全面介绍二中介绍了nose框架的基本构成,但在实际应该中我们也会到setup_function等一系列的名字,查看管网后,我们罗列下nose框架中函数的别名 1.pa ...

  9. iOS - 网址、链接、网页地址、下载链接等正则表达式匹配(解决url包含中文不能编码的问题)

    DNS规定,域名中的标号都由英文字母和数字组成,每一个标号不超过63个字符,也不区分大小写字母.标号中除连字符(-)外不能使用其他的标点符号.级别最低的域名写在最左边,而级别最高的域名写在最右边.由多 ...

  10. Redis学习资料整理

    Redis学习资料: (1)Redis设计与实现 (2)十五分钟介绍 Redis数据结构 (3)redis安装 (4)redis指令手册中文版 Hiredis学习资料: (1)hiredis安装及测试 ...