作者 | Peter

编辑 | AI有道

系列文章:

吴恩达《Machine Learning》精炼笔记 1:监督学习与非监督学习

吴恩达《Machine Learning》精炼笔记 2:梯度下降与正规方程

吴恩达《Machine Learning》精炼笔记 3:回归问题和正则化

吴恩达《Machine Learning》精炼笔记 4:神经网络基础

吴恩达《Machine Learning》精炼笔记 5:神经网络

吴恩达《Machine Learning》精炼笔记 6:关于机器学习的建议

今天带来第七周课程的笔记:关于支持向量机SVM的相关知识点。内容包含:

  • 硬间隔

  • 支持向量

  • 软间隔

  • 对偶问题

优化目标Optimization Objectives

主要是讲解如何从逻辑回归慢慢的推导出本质上的支持向量机。逻辑回归的假设形式:

  • 左边是假设函数

  • 右边是Sigmoid激活函数

令z=θTx,如果满足:

  1. 若y=1,希望h(θ)约为1,将样本正确分类,那么z必须满足z>>0

  2. 若y=0,希望h(θ)约为0,将样本正确分类,那么z必须满足z<<0

样本正确分类指的是:假设函数h(x)得到的结果和真实值y是一致的

总代价函数通常是对所有的训练样本进行求和,并且每个样本都会为总代价函数增加上式的最后一项(还有个系数1/m,系数忽略掉)

如果y=1,目标函数中只有第一项起作用,得到了表达式 :

支持向量机

根据逻辑回归推导得到的支持向量机的公式 :

两个cost函数是上面提到的两条直线。对于逻辑回归,在目标函数中有两项:

  • 第一个是训练样本的代价

  • 第二个是正则化项

大边界的直观解释

下面是支持向量机的代价函数模型。

SVM决策边界

SVM鲁棒性:间隔最大化,是一种大间距分类器。

关于上图的解释:

  1. C太大的话,将是粉色的线

  2. C不是过大的话,将是黑色的线

大间距分类器的描述,仅仅是从直观上给出了正则化参数C非常大的情形,C的作用类似于之前使用过的正则化参数1λ

  • C较大,可能导致过拟合,高方差

  • C较小,可能导致低拟合,高偏差

硬间隔模型

间隔和支持向量

注释:本文中全部采用列向量:

给定一个样本训练集D=(x1,y1),(x2,y2),…,(xm,ym),其中yi∈(−1,+1)

分类学习的基本思想就是:基于训练集D在样本空间上找到一个划分的超平面

上面红色的线是最好的。所产生的分类结果是最鲁棒的,最稳定的,泛化能力是最好的。

划分超平面的的线性描述:

W称之为法向量(看做是列向量),决定平面的方向;b是位移项,决定了超平面和原点之间的距离。

空间中任意一点x到超平面(w,b)的距离是:

在+区域的点满足y=+1:

在−区域的点满足y=−1:

综合上面的两个式子有:

支持向量

距离超平面最近的几个点(带上圆圈的几个点)称之为支持向量support vector,这个点到超平面到距离称之为间隔margin

刚好在决策边界上的点(下图中带上圆圈的点)满足上式中的等号成立:

间距margin

求解间距margin就是求解向量(x+−x−)在法向量上的投影

决策边界上的正例表示为:

决策边界行的负例表示为:

将两个结果带入margin 的表达式中:

SVM的基本模型

最大间隔化只需要将||w||最小化即可:

SVM-对偶模型

模型参数推导

希望求解上面基本模型对应超平面的模型:

利用拉格朗日乘子αi,改成拉格朗日函数:

分别对w,b求导,可以得到:

对偶模型

原始问题是极大转成最大值问题:

带入拉格朗日函数中,得到对偶问题(全部是关于α系数):

转换一下,变成最小值问题(上面的式子加上负号):

那么超平面的模型 :

SMO算法

思想

SMO算法指的是Sequential Minimal Optimization,序列最小优化算法。算法的根本思路是:

所有的α满足:

  1. 先选取需要更新的变量αi和αj

  2. 固定变量αi和αj以外的参数,求解更新后的变量αi和αj

其中c使得上式成立:

将变量αi和αj的其中一个用另一个来表示,得到关于αi的单变量二次规划问题,就可以求出来变量αi

软间隔最大化

上面的结论和推导都是针对的线性可分的数据。线性不可分数据意味着某些样本点(xi,yi)不再满足函数间隔大于等于1的约束条件,比如下图中的红圈中的点,故引入了松弛变量ξi≥0,满足:

因此,目标函数由原来的1/2||w||*||w||变成了

其中C≥0是惩罚项参数,C值越大对误分类的越大,C越小对误分类的惩罚越小。

至此,第七周的课程笔记完毕!


推荐阅读

(点击标题可跳转阅读)

干货 | 公众号历史文章精选

我的深度学习入门路线

我的机器学习入门路线图

重磅

AI有道年度技术文章电子版PDF来啦!

扫描下方二维码,添加 AI有道小助手微信,可申请入群,并获得2020完整技术文章合集PDF(一定要备注:入群 + 地点 + 学校/公司。例如:入群+上海+复旦

长按扫码,申请入群

(添加人数较多,请耐心等待)

感谢你的分享,点赞,在看三连↓

吴恩达《Machine Learning》精炼笔记 7:支持向量机 SVM相关推荐

  1. coursera—吴恩达Machine Learning笔记(1-3周)

    Machine Learning 笔记 笔记主要按照进度记录上课主要内容和部分代码实现,因为我会看一阶段再进行整理,内容会有一定交叉.关于代码部分,一开始我是只为了做作业而写代码的,现在觉得不妨仔细看 ...

  2. 吴恩达ex3_吴恩达Machine Learning Ex3 python实现

    1.Multi-class classification 使用Logistic regression和neural networks来识别手写数字识别(从0到9).在第一部分练习中使用Logistic ...

  3. 深度学习入门首推资料--吴恩达深度学习全程笔记分享

    本文首发于微信公众号"StrongerTang",可打开微信搜一搜,或扫描文末二维码,关注查看更多文章. 原文链接:(https://mp.weixin.qq.com/s?__bi ...

  4. 机器学习-吴恩达网易云课堂笔记

    机器学习-吴恩达网易云课堂笔记 Machine Learning: A computer program is said to learn from experience E with respect ...

  5. coursera-斯坦福-机器学习-吴恩达-第9周笔记(下)-推荐系统

    coursera-斯坦福-机器学习-吴恩达-第9周笔记(下)-推荐系统 coursera-斯坦福-机器学习-吴恩达-第9周笔记下-推荐系统 1预测电影等级 1任务设想 2基于内容的推荐 2协同过滤 1 ...

  6. 737 页《吴恩达深度学习核心笔记》发布,黄海广博士整理!

    点击上方"AI有道",选择"置顶"公众号 重磅干货,第一时间送达 深度学习入门首推课程就是吴恩达的深度学习专项课程系列的 5 门课.该专项课程最大的特色就是内容 ...

  7. 吴恩达深度学习课程笔记(初步认识神经网络)

    吴恩达深度学习课程笔记1 课程主要内容 1.神经网络与深度学习介绍 2.Improving Deep Neural Networks:超参数调整,正则化,优化方法 3.结构化机器学习工程:比如如何分割 ...

  8. 吴恩达机器学习MATLAB代码笔记(1)梯度下降

    吴恩达机器学习MATLAB代码笔记(1)梯度下降 单变量线性回归 1.标记数据点(Plotting the Date) fprintf('Plotting Data') data = load('D: ...

  9. 吴恩达深度学习课程笔记(四):卷积神经网络2 实例探究

    吴恩达深度学习课程笔记(四):卷积神经网络2 实例探究 吴恩达深度学习课程笔记(四):卷积神经网络2 实例探究 2.1 为什么要进行实例探究 2.2 经典网络 LeNet-5 AlexNet VGG- ...

  10. 免费分享全套吴恩达深度学习课程笔记以及编程作业集合

    分享吴恩达深度学习全套 笔记 笔记来源于吴恩达老师课程中口述翻译,并包含板书.可以取代看视频,做到更快速学习. (部分目录) (部分目录) (板书) 编程作业 扫描二维码后台回复"0&quo ...

最新文章

  1. (2015-12-09)java.util.Arrays的用法
  2. 小程序、vue 新闻上下轮播
  3. 手机相机里面的m_荣耀V30 PRO详细评测:Matrix Camera相机矩阵开启5G视频时代
  4. java技术文章在哪里看呢_谈论Java技术似乎无处不在,但究竟是什么呢?文章末尾有福利...
  5. win11扩展任务栏没东西怎么办 windows11扩展任务栏没东西的解决方法
  6. 不是我吹!超级全面的权限系统设计方案面世了
  7. 【TSP】基于matlab自重启伪遗传改良算法求解旅行商问题【含Matlab源码 1510期】
  8. [逆向破解]lua脚本解密
  9. Ceph新建monitor或者osd报错:use --overwrite-conf to overwrite
  10. 115网盘摇奖的位置变了~
  11. 基于Revel开发的组件化代码生成器
  12. PDFlib-6.0.3p1-Windows] license key 算法分析
  13. (摘自CSDN的koy0755)一步一步实现数据库到类的自动化映射(二) 类层次的设计 类的实现...
  14. 作为兼并重组的重要方式之一,企业合并、分立的具体形式?
  15. association判断不为空时_mybatis 一对一关联 association 返回空值
  16. Python中用tkinter实现BMI计算
  17. 基于Android P版本PKMS详解二
  18. python棋牌游戏开发之斗地主_python模拟实现斗地主发牌
  19. ubuntu tenda u12 无线配置
  20. freemarker的第一个例子

热门文章

  1. 贝聊运维自动化体系演化
  2. {dede:list}和{dede:arclist}的区别
  3. Android 自定义Button按钮显示样式(正常、按下、获取焦点)
  4. javascript 中的getter,setter
  5. 不允许从数据类型 ntext 到数据类型 varchar 的隐性转换
  6. 2009中国海上大阅兵全视频
  7. hdu 4252(单调栈)
  8. 并查集杭电1272小希的迷宫
  9. 用servlet类返回WEB-INF中的页面
  10. HDUOJ-2094-产生冠军