吴恩达老师机器学习课程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 ...
随机推荐
- 这里记录一下我个人对AXI4主从模块的理解(这些理解主要来自阅读 Xilinx AXI_FULL_M_module 源码)
先只考虑读请求: 以取指模块和内存模块为例,取指模块是发出请求的模块,因此为 Master,属于AXI4MasterModule:内存模块是响应请求的模块,因此为 Slave,属于AXI4SlaveM ...
- 将 ChatGPT 接入 Zabbix 为告警提供修复建议(对接钉钉)
1.如果接企业微信请参考下面的文章 https://www.txisfine.cn/archives/9c078bb7.html 感谢上述文章的作者提供的思路 ChatGPT 是最近很火的 AI 智能 ...
- C++程序设计实验五 模板类与多态
三.实验内容 2. 实验任务2 Person.hpp: #ifndef PERSON_TASK_HPP #define PERSON_TASK_HPP #include<iostream> ...
- Java--Comparable接口实现,控制数组和列表的排序
实现Comparable 接口,可以获得的排序方法有 列表排序 Collections.sort(); 数组排序 Arrays.sort(); sort()方法中的参数是可以获取排序索引的对象或者按照 ...
- jquery实现多图片上传
在做后台管理的时候,遇到这样一个需求,实现多张图片上传并按选中的顺序显示.PS:图片上传的时候是即时上传到服务器,后台返回图片在服务器上的地址,在最后点击提交按钮的时候,把地址传给后端写入数据库即可. ...
- k8s安装gitlab-ce
docker镜像打包 根据官方说明:gitlaby docker镜像中已经不包含邮件代理传输,需要重新打包镜像 FROM gitlab/gitlab-ce RUN apt-get update &am ...
- 7.Object
Object类 超类.基类,所以类的直接或间接父类,位于继承树的最顶层 任何类,如没有书写extends显示继承某个类,都默认直接继承Object类,否则为间接继承 Object类中所定义的方法,是所 ...
- JavaSE——subString()方法
package com.zhao.stringtest;public class Test4 { //手机号屏蔽中间四位 //subString(int beginIndex,int endIndex ...
- 在TMOS系统中添加按键检测功能
目录 TMOS系统中自带有按键检测轮询功能,默认100ms检测一次,在debug时很有帮助.不过在需要低功耗休眠的前提下,检测按键需要频繁唤醒,影响功耗,故多数BLE的工程都没有用到这个功能.代码贴在 ...
- 32位机转化11位手机号以及BLE与USB的切换
目录 用现有的资源,去实现本应该用更多资源来实现的需求,是一件很有意思的事情.不是说提倡这样使用,而是换一种思路解决问题比较新奇,或是在很多限制既定的情况下可以应急. 比如说,582m芯片,默认用32 ...