12.支持向量机

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

12.4 核函数与标记点- Kernels and landmarks

问题引入

  • 如果你有以下的训练集,然后想去拟合其能够分开正负样本的非线性判别边界。

    • 一种办法是构造一个复杂多项式特征的集合:
      \[h_{\theta}(x)=\begin{cases}
      1\ \ if\ \ \theta_{0}+\theta_{1}x_1+\theta_{2}x_2+\theta_{3}x_1x_2+\theta_{4}x_{1}^{2}+\theta_{5}x_{2}^{2}+...\ge 0\\
      0\ \ otherwise\ \
      \end{cases}
      \]
  • 然而类似于\(x_1x_2或x_1^2及x_2^2\)等人为定义的特征是不是最好的呢?我们能不能通过函数来进行学习得到更复杂拟合度更高的特征来解决非线性问题呢?此时我们可以借助于待定系数法,把不同的特征看做是待定的未知的目标进行确定 , 使用\(f_n\)表示待定的目标特征。
    • 即新的表达式为:
      \[h_{\theta}(x)=\begin{cases}
      1\ \ if\ \ \theta_{1}f_1+\theta_{2}f_2+\theta_{3}f_3+\theta_{4}f_4+\theta_{5}f_5+\theta_{6}f_6+...\ge 0\\
      0\ \ otherwise\ \
      \end{cases}
      \]

      特征构建

  • 假设此处需要构建3个新特征。
    • 首先在坐标\(x_1和x_2\)上选取三个 地标(landmark) \(l^{(1)},l^{(2)},l^{(3)}\)
    • 然后给定一个样本x, 定义特征\(f_1\)为样本x和地标\(l^{(1)}\)的相似度
      \[f_1=similarity(x,l^{(1)})=exp(-\frac{||x-l^{(1)}||^2}{2\sigma^{2}})\]
    • 同样的 定义特征\(f_2\)为样本x和地标\(l^{(2)}\)的相似度
      \[f_2=similarity(x,l^{(2)})=exp(-\frac{||x-l^{(2)}||^2}{2\sigma^{2}})\]
    • 类似的 定义特征\(f_3\)为样本x和地标\(l^{(3)}\)的相似度
      \[f_3=similarity(x,l^{(3)})=exp(-\frac{||x-l^{(3)}||^2}{2\sigma^{2}})\]
  • 此处的 相似度函数 即\(exp(-\frac{||x-l^{(n)}||^2}{2\sigma^{2}})\) 就是所说的 核函数 ,而核函数有很多种,即有很多种不同的定义相似度的方法,此处的核函数被称为 高斯核函数(Gaussian Kernel)

    核函数和相似度

  • 公式的展开项如下图所示,从图中可以看出
    • 当x和landmark十分接近时,特征值为约等于1
    • 当x和landmark距离很远时,特征值为约等于0

      高斯核函数(Gaussian Kernel)

  • 假设 地标1 的坐标为(3,5),使用3D图中,即时水平面上对应的坐标为(3,5),核函数使用高斯核,其中 \(\sigma^{2}=1\)
  • 等高线表示函数下降的速度 ,以下显示不同\(\sigma\) 对高斯函数陡峭程度的影响,很明显看出 \(\sigma=0.5\) 时下降更快,而 \(\sigma=3\) 时下降速度减缓:

    特征点及边界确定过程

  1. 规定当\(\theta_0+\theta_{1}f_1+\theta_{2}f_2+\theta_{3}f_3\ge 0\)时输出1
  2. 假设已经得到参数为\(\theta_0=-0.5,\theta_1=1,\theta_2=1,\theta_3=0\)
    1. 当给定的训练样本为图中 粉色点 时,此时由于x距离l1较近,所以根据高斯核模型,f1约等于1;而x距离l2,l3都较远,所以f2,f3约等于0
    2. 此时,将上述参数带入,则\(\theta_0+\theta_{1}f_1+\theta_{2}f_2+\theta_{3}f_3\)的值约等于0.5大于0,因此这个点预测的y值为1
    3. 当给定的训练样本为图中 蓝绿色点 时,此时由于x距离l1,l2,l3都较远,根据高斯核模型,f1,f2,f3都约等于0,此时,将上述参数带入,则\(\theta_0+\theta_{1}f_1+\theta_{2}f_2+\theta_{3}f_3\)的值约等于-0.5,因此这个点预测的y值为0
  3. 当你对 大量 的训练样本都进行这样的处理,最终会发现一条由大量点组成的 边界 ,显示 距离各个地标何种距离下 输出预测y会为1,否则y会为0.
  4. Note 在预测时,采用的不是训练实例本身的特征,而是通过核函数计算出的新特征\(f_1,f_2,f_3\)

[吴恩达机器学习笔记]12支持向量机4核函数和标记点kernels and landmark的更多相关文章

  1. [吴恩达机器学习笔记]12支持向量机5SVM参数细节

    12.支持向量机 觉得有用的话,欢迎一起讨论相互学习~Follow Me 参考资料 斯坦福大学 2014 机器学习教程中文笔记 by 黄海广 12.5 SVM参数细节 标记点选取 标记点(landma ...

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

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

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

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

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

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

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

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

  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. 中国剩余定理---FZU 1402 猪的安家

    J - 猪的安家 Time Limit:1000MS     Memory Limit:32768KB     64bit IO Format:%I64d & %I64u Submit Sta ...

  2. HDU 5273 Dylans loves sequence 暴力递推

    题目链接: hdu:http://acm.hdu.edu.cn/showproblem.php?pid=5273 bc:http://bestcoder.hdu.edu.cn/contests/con ...

  3. 我是IT小小鸟(读后感)

    序 1.兴趣,这本书第一个点讲兴趣,可是在中国填鸭式的教育下,有兴趣也被这种教育给泯灭了. 2.他山之石,可以攻玉.但不可照搬.这点我非常赞同作者的看法.别人东西你拿来,一定要在他的基础上进行创   ...

  4. Java try catch

    /*   异常处理的捕捉形式: 这是可以对异常进行针对性处理的方式.   具体格式是: try { //需要被检测异常的代码. } catch(异常类 变量)//该变量用于接收发生的异常对象 { // ...

  5. Apache 的知识点

    apache 的官方文档 http://httpd.apache.org/docs/ Mac下如何查看Apache的版本 在终端(Terminal)中输入 apachectl -v,之后回车,结果如下 ...

  6. vsftpd 安全性能工具

    vsftpd实战(服务端192.168.23.12,客户端192.168.23.11) 1:安装vsftpdyum install -y vsftpd 2:客户端安装lftpyum install - ...

  7. jQuery之层次选择器

    层次选择器: 查找子元素, 后代元素, 兄弟元素的选择器1. ancestor descendant 在给定的祖先元素下匹配所有的后代元素2. parent>child 在给定的父元素下匹配所有 ...

  8. Tomcat指定JDK路径

    一.应用实例 一般情况下一台服务器只跑一个业务,那么就直接配置一套环境,设置好Java环境变量即可.某些时候一台服务器上会安装多个业务,而且各个业务需要的JDK版本各不相同,或者为了使业务独立开来,需 ...

  9. 对mysql联合索引中的字段进行合理排序

    在MySQL的where条件中,有时会用到很多的条件,通常为了加快速度会把这些字段放到联合索引中,可以更快的提高搜索速度: 但是对联合索引中字段顺序的合理排序,便更能提高速度 例子:select * ...

  10. php面试必知必会常见问题

    1 说出常用的10个数组方法 我觉得数组比较最能体现PHP基础语法的一个数据结构了,下面给大家列一下常用的10个关于操作数组的函数 in_array(判断数组中是否有某个元素) implode(将数组 ...