吴恩达老师机器学习课程chapter06——支持向量机与核函数
吴恩达老师机器学习课程chapter06——支持向量机与核函数
本文是非计算机专业新手的自学笔记,高手勿喷。
本文仅作速查备忘之用,对应吴恩达(AndrewNg)老师的机器学期课程第十二章。
支持向量机(support vector machine)是一种二类分类模型,其基本模型是在特征空间上的间隔最大的线性分类器,SVM的学习策略就是间隔最大化,又叫做大间距分类器。
和前面的内容一样,本章缺少更多数学推导,可做入门了解。
支持向量机
想要间隔最大化,我们希望有以下关系:
- 当y=1时,希望$h_{\theta}(x) \approx 1, \theta^Tx\gg 0 $
- 当y=0时,希望\(h_{\theta}(x) \approx 0, \theta^Tx\ll 0\)
可以用这种近似关系构建新的Cost函数得到新的J(θ):

支持向量机的假设模型与J(θ):
1 & \text { if } \theta^{T} x \geqslant 0 \\
0 & \text { otherwise }
\end{array}\right.
\]
\]
- 当y=1时,希望 $\theta^Tx > 1 $
- 当y=0时,希望 \(\theta^Tx< -1\)
C很大时,对于判断错误的惩罚就很大,以至于:
\]
向量内积的几何意义:

这里暂时没有给出严格证明。
但通过几何意义,可以直观感受SVM为什么能够使得间距最大。举例如下,考虑情况:\(θ_0\)=0,n=2,:


本例当中,坐标轴中,向量 \(\theta\) (图中蓝线)与 直线 \(θ^Tx=0\)(图中绿线)垂直。
各样本\(x^{(i)}\)在向量 \(θ\) 上的投影为 \(p^{(i)}\)(图中红线)。
化使得\(\|\theta\|\)很小,那么\(p^{(i)}\)就变大,从而形成大间隔。
核函数(kernels)
对于非线性分类,其边界可能比较复杂,那么特征就比较多,假设模型就会比较复杂。
可以通过核函数,将输入空间映射到高维特征空间,不用计算复杂的非线性边界,使用线性平面就能获得完成分类。
选择一些标记点(landmark),记作\(l^{(i)}\);并选择如下的函数作为核函数,记作\(f_i=similarity(x,l^{(i)})\),也被称为高斯核函数(gaussian kernel):



可以很清楚的看到,该核函数将二维平面中的点映射到了三维空间中。其中 $ \sigma ^{2} $ 越大,similarity函数越平整;反之越尖锐。在新的三维空间中,可以通过三维平面\(\theta_{0}+\theta_{1} f_{1}+\theta_{2} f_{2}+\theta_{3} f_{3}=0\)进行分类。
举例如下:

SVM与核函数的结合
已知有样本m个,特征n个,选择这m个样本\(x^{(i)}\)作为标记点\(l^{(i)}\)。
将1样本\(x^{(i)}\)和n个标记点\(l^{(i)}\)依次比较相似度,即计算\(f_i=similarity(x^{(i)},l^{(i)})\),并每一次比较结果作为一个新特征,将其组成一个新的向量 f。和x向量中添加\(x_0\)对应的,在f中添加\(f_0 =1(1与1的相似度为1)\)。

其本质,是从原本的n+1维的特征的向量 x 转化为了 m+1维的新特征的向量 f。
这时候,最优问题也转变为了 f 的最优问题:
\left(1-y^{(i)}\right) \operatorname{cost}_{0}\left(\theta^{T} f^{(i)}\right)
+\frac{1}{2} \sum_{j=1}^{m} \theta_{j}^{2}
\]
同样的,\(theta_0\)不参与正则化。(吴老师ppt上的公式正则项求和符号上方有误)
接下来再用支持向量机的思路解决这个分类问题即可。
吴恩达老师机器学习课程chapter06——支持向量机与核函数的更多相关文章
- 机器学习爱好者 -- 翻译吴恩达老师的机器学习课程字幕 http://www.ai-start.com/
机器学习爱好者 -- 翻译吴恩达老师的机器学习课程字幕 GNU Octave 开源 MatLab http://www.ai-start.com/ https://zhuanlan.zhihu ...
- 吴恩达《机器学习》课程笔记——第六章:Matlab/Octave教程
上一篇 ※※※※※※※※ [回到目录] ※※※※※※※※ 下一篇 这一章的内容比较简单,主要是MATLAB的一些基础教程,如果之前没有学过matlab建议直接找一本相关书籍,边做边学,matl ...
- 吴恩达《机器学习》课程总结(5)_logistic回归
Q1分类问题 回归问题的输出可能是很大的数,而在分类问题中,比如二分类,希望输出的值是0或1,如何将回归输出的值转换成分类的输出0,1成为关键.注意logistics回归又称 逻辑回归,但他是分类问题 ...
- 深度学习 吴恩达深度学习课程2第三周 tensorflow实践 参数初始化的影响
博主 撸的 该节 代码 地址 :https://github.com/LemonTree1994/machine-learning/blob/master/%E5%90%B4%E6%81%A9%E8 ...
- 吴恩达《机器学习》课程总结(18)_照片OCR
18.1问题描述和流程图 (1)图像文字识别是从给定的一张图片中识别文字. (2)流程包括: 1.文字侦测 2.字符切分(现在不需要切分了) 3.字符分类 18.2滑动窗口 在行人检测中,滑动窗口是首 ...
- 吴恩达《机器学习》课程笔记——第七章:Logistic回归
上一篇 ※※※※※※※※ [回到目录] ※※※※※※※※ 下一篇 7.1 分类问题 本节内容:什么是分类 之前的章节介绍的都是回归问题,接下来是分类问题.所谓的分类问题是指输出变量为有限个离散 ...
- 吴恩达《机器学习》编程作业——machine-learning-ex1:线性回归
❄❄❄❄❄❄❄❄[回到目录]❄❄❄❄❄❄❄❄ 本次编程作业中,需要完成的代码有如下几部分: [⋆] warmUpExercise.m - Simple example function in Octa ...
- 跟我学算法-吴恩达老师(超参数调试, batch归一化, softmax使用,tensorflow框架举例)
1. 在我们学习中,调试超参数是非常重要的. 超参数的调试可以是a学习率,(β1和β2,ε)在Adam梯度下降中使用, layers层数, hidden units 隐藏层的数目, learning_ ...
- 跟我学算法-吴恩达老师(mini-batchsize,指数加权平均,Momentum 梯度下降法,RMS prop, Adam 优化算法, Learning rate decay)
1.mini-batch size 表示每次都只筛选一部分作为训练的样本,进行训练,遍历一次样本的次数为(样本数/单次样本数目) 当mini-batch size 的数量通常介于1,m 之间 当 ...
- 跟我学算法-吴恩达老师的logsitic回归
logistics回归是一种二分类问题,采用的激活函数是sigmoid函数,使得输出值转换为(0,1)之间的概率 A = sigmoid(np.dot(w.T, X) + b ) 表示预测函数 dz ...
随机推荐
- uniapp中关于navigateBack返回刷新,h5和小程序端
注意: 小程序中,如果路径中有参数,在生命周期onLoad()中需要获取,可以用beforePage.options 就能获取到url中的参数
- How to Use Arrays and Vectors
array it needs a constant value const int seq_size = 18; int pell_seql[seql_size]; //defined a const ...
- vue 使用路由component: () =>import (‘ ‘)报错解决办法
今天帮朋友调代码的时候,在人家的mac上面,项目没有任何错误,到我这里就出现 component: () =>import (' ')加载路由错误. 发现是import处报错, import 属 ...
- Windows10使用VMware安装centos
系统环境: Windows 10 安装步骤: 1.下载centos http://mirrors.aliyun.com/centos/ 2.使用VMware安装centos 3.配置网络 $ cd / ...
- 狂神--Docker
官网地址 官网 https://www.docker.com/ 官方文档Docker文档是超详细的 https://docs.docker.com/ 仓库地址 https://hub.docker.c ...
- datax缺少clickhouse reader插件
背景:想要把click house的数据源同步到clickhouse,发现Datax没有clickhousereader组件. 1.把clickhousewriter/libs下的所有jar包复制到r ...
- ubuntu 安装php7.2 oracle扩展
一:介绍 php要连接访问oracle需要安装三个东西 1:Oracle Instant Client:即时客户端库 2:php的Oracle数据库扩展:oci8 3:php连接pdo的oci扩展:p ...
- cross-env 运行跨平台设置和使用环境变量的脚本
1.1 cross-env是什么 运行跨平台设置和使用环境变量的脚本 1.2 出现原因 当您使用 NODE_ENV=production, 来设置环境变量时,大多数 Windows 命令提示将会阻塞( ...
- JVM相关总结
https://www.cnblogs.com/jiangym/p/15885161.html JVM内存模型(JMM) 根据代码画出下面的JVM内存模型 public class Math { pu ...
- hutool调用第三方接口上传文件和下载文件
1.上传文件接口例子(本地接口) 2.第三方接口 3.调用第三方接口下载文件 4.第三方接口 5.多个文件生成压缩文件