吴恩达老师机器学习课程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 ...
随机推荐
- Windows 隐藏 远程桌面(连接栏)
当我们在使用远程桌面控制的时候,远程桌面工具栏遮挡视线很烦人.这时候就很有必要隐藏了! 1.全屏时显示连接栏 勾选去掉 这样子远程桌面上方的连接栏就消失了. 那么我们怎么打开呢?所以就要写下来记住了. ...
- 概率生成函数(PGF)简记
基本搬运自<浅谈生成函数在掷骰子问题上的应用>. 对于定义在非负整数上的离散随机变量 \(X\),级数 \(F(z) = \sum\limits_{i\ge 0} \operatornam ...
- java字段值为null,不返回该字段
jackSon注解– @JsonInclude 注解不返回null值字段 @Data @JsonInclude(JsonInclude.Include.NON_NULL) public class R ...
- 类型提示和python函数中'->'的用法
一.类型提示 在python中,我们定义一个有参函数,调用该函数时需要传入参数,如下所示: # 定义一个简单的函数 def get_full_name(first_name, last_name): ...
- shell中算术运算加减
在shell脚本中,所有的变量默认都是字符串存储,操作也是按照字符串进行处理的,但我们不可避免的需要对各中数值进行算术运算,如算术的相加减,那么这时怎么处理呢?在shell脚本中,我们要实现对数值的算 ...
- CentOS7安裝 Nginx + php7 + php-fpm
原文 : https://ivanagyro.medium.com/於centos7安裝-nginx-php7-php-fpm-laravel5-6-df8631681acf安装nginx 1/ 用y ...
- pytorch学习笔记(9)--神经网络模型的保存与读取
一.网络模型的保存和加载 1.网络模型保存方法1 import torch import torchvision vgg16 = torchvision.models.vgg16(weights=Fa ...
- winform 容器内存泄漏
循环中释放容器时调用Dispose()方法会销毁对象,导致容器的个数变化. 正确示例//方法一for (int i = this.flowLayoutPanel1.Controls.Count-1; ...
- MobaXterm汉化版教程
MobaXterm中文版是一款非常好用的远程连接.远程控制软件,它堪称全能终端神器,支持非常多的远程协议 ,如SSH,Telnet,Rsh,Xdmc,RDP,VNC,FTP,SFTP,串口(Seria ...
- data_analysis:初识numpy
import numpy as npimport pandas as pd# """第一种,使用loadtxt"""# # 加载数据路径# ...