12.支持向量机

觉得有用的话,欢迎一起讨论相互学习~Follow Me

参考资料 斯坦福大学 2014 机器学习教程中文笔记 by 黄海广

12.5 SVM参数细节

标记点选取

  1. 标记点(landmark)如图所示为\(l^{(1)},l^{(2)},l^{(3)}\),设核函数为 高斯函数 ,其中设预测函数y=1 if \(\theta_0+\theta_{1}f_1+\theta_{2}f_2+\theta_{3}f_3\ge0\)
  2. 在实际中需要用 很多标记点 ,那么如何选取 标记点(landmark)即使用训练集中的样本作为标记点 ,假设有一个样本为 \(x^{(1)}\) ,则在相同的位置可以设置标记点 \(l^{(1)}\) , 此时可以得到m个标记点与训练集中样本数一致,且每一个标记点的位置都与每一个样本的位置一致。 因为这说明特征函数基本上是在描述每一个样本距离与样本集中其他样本的距离
  3. 样本集(不仅仅是训练集,而是所有样本) 中的样本作为标记点.
  4. 然后使用 相似度 函数计算 每个样本和标记点之间的特征\(f_n\) ,并且将所有的 \(f_n\) 集合成 特征向量f .并且将默认的特征(截距)\(f_0\)设为1,如下图所示:
  5. 示例 假设训练集中有样本 \(x^{(i)}\) ,则可以通过相似度函数计算出其与各个标记点的特征值从而组成特征向量 \(f^{(i)}\)

    对于第i个标记点,由于有定义\(x^{(i)}=l^{(i)}\),所以有 \[f_i^{(i)}=sim(x^{(i)},l^{(i)})=exp(-\frac{0}{2\sigma^{2}})=1\] ,而定义有 截距特征 为1,则有以下结果:

    应用SVM

  • 如果已经学到了参数 \(\theta\) ,再给定x的值,并对y做预测,首先要重新计算特征f,并且要满足式子 \("y=1" if\ \theta^{T}f\ge 0\) .其中\(\theta\) 也是一个m+1维的向量,m是训练集的数量
  • 此时需要最小化的损失函数如下:
  • 在具体实施过程中,我们还需要对最后的归一化项进行些微调整,在计算\(\sum^{n}_{j=1}\theta^{2}_{j}=\theta^{T}\theta\)时,我们用\(\theta^{T}M\theta\)代替\(\theta^{T}\theta\)其中 M 是根据我们选择的核函数而不同的一个矩阵。这样做的原因是为了简化计算
  • 理论上讲,我们也可以在逻辑回归中使用核函数,但是上面使用 M 来简化计算的方法不适用与逻辑回归,因此计算将非常耗费时间
  • 在此,我们不介绍最小化支持向量机的代价函数的方法,你可以使用现有的软件包(如liblinear,libsvm 等)。在使用这些软件包最小化我们的代价函数之前,我们通常需要编写核函数,并且如果我们使用高斯核函数,那么在使用之前进行特征缩放是非常必要的。
  • 另外,支持向量机也可以不使用核函数,不使用核函数又称为线性核函数(linear kernel),当我们不采用非常复杂的函数,或者我们的训练集特征非常多而实例非常少的时候,可以采用这种不带核函数的支持向量机

SVM参数

正则化参数C

  • 正则化参数C和神经网络正则化参数\(\lambda\)的倒数\(\frac{1}{\lambda}\)类似

    • 大的C对应于小的\(\lambda\),这意味着不使用正则化,会得到一个低偏差(bias),高方差(variance)的模型,则会更加倾向于 过拟合
    • 小的C对应于大的\(\lambda\),这意味着更多的正则化,会得到一个高偏差(bias),低方差(variance)的模型,则会更加倾向于 欠拟合

高斯核函数\(\sigma^{2}\)

  • 如果\(\sigma\)较大时,曲线较为平滑,会下降地更为 平缓 ,会得到一个高偏差(bias),低方差(variance)的模型,则会更加倾向于 欠拟合
  • 如果\(\sigma\)较小时,曲线较为陡峭,会下降地更为 迅速 ,会得到一个低偏差(bias),高方差(variance)的模型,则会更加倾向于 过拟合

[吴恩达机器学习笔记]12支持向量机5SVM参数细节的更多相关文章

  1. [吴恩达机器学习笔记]12支持向量机3SVM大间距分类的数学解释

    12.支持向量机 觉得有用的话,欢迎一起讨论相互学习~Follow Me 参考资料 斯坦福大学 2014 机器学习教程中文笔记 by 黄海广 12.3 大间距分类背后的数学原理- Mathematic ...

  2. [吴恩达机器学习笔记]12支持向量机2 SVM的正则化参数和决策间距

    12.支持向量机 觉得有用的话,欢迎一起讨论相互学习~Follow Me 参考资料 斯坦福大学 2014 机器学习教程中文笔记 by 黄海广 12.2 大间距的直观理解- Large Margin I ...

  3. [吴恩达机器学习笔记]12支持向量机1从逻辑回归到SVM/SVM的损失函数

    12.支持向量机 觉得有用的话,欢迎一起讨论相互学习~Follow Me 参考资料 斯坦福大学 2014 机器学习教程中文笔记 by 黄海广 12.1 SVM损失函数 从逻辑回归到支持向量机 为了描述 ...

  4. [吴恩达机器学习笔记]12支持向量机6SVM总结

    12.支持向量机 觉得有用的话,欢迎一起讨论相互学习~Follow Me 12.6SVM总结 推荐使用成熟的软件包 用以解决 SVM 最优化问题的软件很复杂,且已经有研究者做了很多年数值优化.因此强烈 ...

  5. [吴恩达机器学习笔记]12支持向量机4核函数和标记点kernels and landmark

    12.支持向量机 觉得有用的话,欢迎一起讨论相互学习~Follow Me 12.4 核函数与标记点- Kernels and landmarks 问题引入 如果你有以下的训练集,然后想去拟合其能够分开 ...

  6. 吴恩达机器学习笔记(六) —— 支持向量机SVM

    主要内容: 一.损失函数 二.决策边界 三.Kernel 四.使用SVM (有关SVM数学解释:机器学习笔记(八)震惊!支持向量机(SVM)居然是这种机) 一.损失函数 二.决策边界 对于: 当C非常 ...

  7. 吴恩达机器学习笔记45-使用支持向量机(Using A SVM)

    本篇我们讨论如何运行或者运用SVM. 在高斯核函数之外我们还有其他一些选择,如:多项式核函数(Polynomial Kernel)字符串核函数(String kernel)卡方核函数( chi-squ ...

  8. Coursera-AndrewNg(吴恩达)机器学习笔记——第一周

    一.初识机器学习 何为机器学习?A computer program is said to learn from experience E with respect to some task T an ...

  9. Machine Learning——吴恩达机器学习笔记(酷

    [1] ML Introduction a. supervised learning & unsupervised learning 监督学习:从给定的训练数据集中学习出一个函数(模型参数), ...

随机推荐

  1. “Hello World!“”团队第五周召开的第二次会议

    今天是我们团队“Hello World!”团队第五周召开的第二次会议.也祝大家双十一快乐~~博客内容: 一.会议时间 二.会议地点 三.会议成员 四.会议内容 五.todo list 六.会议照片 七 ...

  2. vue视频插件VLC

    VLC 仅支持windows下特定版本火狐浏览器--Firefox_ESR_55.3 <template> <object type='application/x-vlc-plugi ...

  3. Opendarlight Carbon 安装

    写在前面 目前最轻松的一次安装过程,感谢大翔哥的帮助. 安装过程 1.Zip包下载 找到Opendaylight官网,进入下载界面找到Carbon版本并下载. 2.Zip包解压 把这个zip压缩包解压 ...

  4. 201621123037 《Java程序设计》第12周学习总结

    作业12-流与文件 标签(空格分隔): Java 1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结多流与文件相关内容. 答: 读取操作 从文件中读取: 1.字节流 InputStr ...

  5. Node.js系列——(1)安装配置与基本使用

    1.安装 进入下载地址 小编下载的是msi文件,下一步下一步傻瓜式安装. 打印个hello看看: 2.REPL 全称Read Eval Print Loop,即交互式解释器,可以执行读取.执行.打印. ...

  6. 设计模式PHP篇(三)————适配器模式

    简单的适配器模式: interface Adaptor { public function read(); public function write(); } class File implemen ...

  7. node.js入门(一)

    NodeJS是一个使用了Google高性能V8引擎的服务器端JavaScript实现.它提供了一个(几乎)完全非阻塞I/O栈,与JavaScript提供的闭包和匿名函数相结合,使之成为编写高吞吐 量网 ...

  8. Android自动化 -- sendevent/getevent 用法

    getevent&sendevent 是android系统下的一个工具,可以 模拟 多种按键和触屏操作,产生的是raw event,raw event经过event hub处理产生最终的ges ...

  9. 如何在VScode中添加代码片段

    拿 VUE 举例,新建 VUE 文件,输入前缀,出现代码段 文件 --->  首选项 ---> 用户代码片段  在输入框中输入 vue ,找到 vue.json ,然后在 vue.json ...

  10. Django之form表单提交并验证

    1.提交的时候会报错 2. 需要在setting里面注释掉一句话,关闭跨站请求检查. 3. 注释掉以后,理论上就不报错了.可我还是卡壳了. 4. 通过在网上找方法,修复错误. 原因:表单action字 ...