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. border、margin、padding三者的区别

    当你写前端的时候,肯定会遇到border,margin和padding这几个单词. 如: padding: 16px 0; margin: 0 10px; 在CSS中,他们是表示距离的东西,很多人刚开 ...

  2. Struts2:Struts2在jsp中使用标签时值的获取

    在OGNL的使用中,需要访问一系列的对象,这些对象放在OGNL的context中,context是一个Map结构,实际上它和ActionContext是相应的. 当用户发送请求时,struts会创建A ...

  3. 第5章 Linux 常用网络指令

    网络参数设定使用的指令 手动/自动设定与启动/关闭 IP 参数: ifconfig, ifup, ifdown ifconfig :查询.设定网络卡与 IP 网域等相关参数:ifup, ifdown: ...

  4. MDL详解

    以下的虚拟内存可以理解成逻辑内存,因为我觉得只有这样才能讲通下面所有的东西.以下的“未分页”指没有为页进行编码. 以下为MDL结构体(我很郁闷,我在MSDN上没有找到这个结构体) typedef st ...

  5. python基础(一)简单入门

    一.第一个python程序 1.交互式编程 直接在命令行里面输入python即可进入python交互式命令行,linux下一样: 在 python 提示符中输入以下文本信息,然后按 Enter 键查看 ...

  6. PreparedStatement的execute误解

    boolean execute()  throws SQLException在此 PreparedStatement 对象中执行 SQL 语句,该语句可以是任何种类的 SQL 语句.一些特别处理过的语 ...

  7. MySQL---InnoDB引擎隔离级别详解

    原帖:http://www.cnblogs.com/snsdzjlz320/p/5761387.html SQL标准定义了4种隔离级别,包括了一些具体规则,用来限定事务内外的哪些改变是可见的,哪些是不 ...

  8. echarts tooltip 自定义formatter怎么设置颜色?

    formatter: function(params) { var result = ''; params.forEach(function (item) { result += item.marke ...

  9. HDU4055_Number String

    题目告诉你在一个排列中,相邻两个数的大小关系.问你排列可能有多少种情况. DP. f[i][j]表示将i个数按照前面i-1个大小关系排列且最后一个数位j的排列数有多少个. 这样对于新加入的一个数i+1 ...

  10. Codeforces Round #525 Div. 2 自闭记

    A:签到. #include<iostream> #include<cstdio> #include<cmath> #include<cstdlib> ...