几个重要的问题

现在已经知道了kernel function的定义, 以及使用kernel后可以将非线性问题转换成一个线性问题.
在使用kernel 方法时, 如果稍微思考一下的话, 就会遇到以下几个问题:

  • 可以略过特征映射函数\(\Phi\), 只使用kernel function \(\kappa\)吗?
    上一节的例子已经给出了答案, YES.
  • 什么样的函数才能被当做kernel function来使用, 总不能只要可以将两个原始输入映射到一个实数上\(\chi^2 \to R\), 就能用吧?
    当然了, 肯定有要求. \(\kappa\) 一定要是一个正半定函数(finitely positive semi-definite function). 下面会解释
  • 给定一个\(\Phi\)可以找到一个对应的\(\kappa\):\(\kappa(x_i, x_j) = <\Phi(x_i), \Phi(x_j)>\). 那么, 给定一个\(\kappa\), 能否根据\(\kappa\)得到它对应的\(\Phi\)?
    答案也是YES, 有一个专门的定理来证明这个. 理解起来有些难度, 暂时不讲, 现在只需要记住这个结论就行了.
  • kernel function \(\kappa\)与feature mapping function \(\Phi\)都可以将非线性问题转换为线性问题, 为什么要用 \(\kappa\), 而不是直接利用\(\Phi\)?
    这个好说, 因为计算成本. 直接在高维度的feature space上的进行运算代价高昂. 用\(\kappa\)而不用\(\Phi\)可以有效降低运算开销.

理解了上述问题后, 也就理解了kernel methods的核心思想.

正半定函数

正半定矩阵

正半定矩阵是线性代数里的一个概念.
矩阵 \(A_{n \times n}\)是一个正半定矩阵, 当且仅当A满足:
\[\forall x \in R^n, x^T A x \ge 0\]
例如单位矩阵 \(E = \left[ \begin{matrix}1 & 0 \\ 0 &1\end{matrix}\right]\)就是一个正半定矩阵:
对于任意二维向量\(x = (x_1, x_2)\), \(x^T E x = x_1^2 + x_2^2 \ge 0\).
成为正半定矩阵的充要条件是所有特征值不小于0.

kernel matrix

给定一个kernel function \(\kappa\)和\(n\)个训练样本\(\{x_1, x_2, \dots, x_n\}\), 对应的kernel matrix:
\[
K =
\left [
\begin{matrix}
\kappa(x_1, x_1), &\kappa(x_1, x_2), &\dots &\kappa(x_1, x_n) \\
\vdots &\dots &\dots &\vdots \\
\kappa(x_n, x_1), &\kappa(x_n, x_2), &\dots &\kappa(x_n, x_n)
\end{matrix}
\right ]
\]
因为kernel function 是定义在特征空间\(H\)上的点积操作, 所以它应该是对称的:
\[
\kappa (x_i, x_j) = \kappa (x_j, x_i)
\]
这样一来, kernel matrix \(K\) 就是一个对称矩阵了: \(K = K^T\), 并且\[
K =
\left [
\begin{matrix}
\Phi(x_1)^T \Phi(x_1), &\Phi(x_1)^T \Phi(x_2), &\dots &\Phi(x_1)^T \Phi(x_n) \\
\vdots &\dots &\dots &\vdots \\
\Phi(x_n)^T \Phi(x_1), &\Phi(x_n)^T \Phi(x_2), &\dots &\Phi(x_n)^T \Phi(x_n)
\end{matrix}
\right ]
=
\left[
\begin{matrix}
\Phi(x_1)^T \\ \Phi(x_2)^T \\ \vdots \\ \Phi(x_n)^T
\end{matrix}
\right]
\left[
\begin{matrix}
\Phi(x_1) , \Phi(x_2), \dots \Phi(x_n)
\end{matrix}
\right]
= ZZ^T
\]
\(Z\)在上文中出现过, 这里再解释一次: \(Z_{n \times d}\)的第\(i\)行为第\(i\)个训练样本在特征空间\(H\)中的表达: \(\Phi(x_i)^T\)

正半定函数

一个函数要成为一个正半定函数, 需要满足以下几个条件:

  • 对称: \(\kappa (x_i, x_j) = \kappa (x_j, x_i)\)
  • 对于任意有限个训练样本, 它的kernel matrix是正半定的.
    例如\(\kappa(x_i, x_j) = <x_i, x_j>\)它就是一个正半定函数:
    对于任意\(n\)个训练样本, 及\(\forall a \in R^n\),
    \[
    a^TKa = a^TZ Z^Ta = (Z^Ta)^TZa = ||Z^Ta||^2 \ge 0
    \]

Why 正半定函数?

为什么kernel function一定要是正半定函数?
因为只有当kernel function为正半定函数时, 才能保证能找到至少一个对应的feature mapping function \(\Phi\).
是否觉得有点熟悉, 没错, 这就是本文开始提出的问题中的第三个的答案.

常见的kernel function

  • Linear kernel: \(\kappa(x, y) = <x, y>\).
    它是直接定义在原空间的内积, 即对应的feature mapping function是identity, 即\(\Phi(x) = x\)
  • Polynomial kernel: \(\kappa(x, y) = (<x, y> + 1)^r, r\in Z^+\)
  • Guassion kernel: \(\kappa(x, y) = e^{-\frac {||x-y||^2}{2\sigma^2}}\)

Kernel Methods (2) Kernel function的更多相关文章

  1. Kernel Methods (4) Kernel SVM

    (本文假设你已经知道了hard margin SVM的基本知识.) 如果要为Kernel methods找一个最好搭档, 那肯定是SVM. SVM从90年代开始流行, 直至2012年被deep lea ...

  2. Kernel Methods (5) Kernel PCA

    先看一眼PCA与KPCA的可视化区别: 在PCA算法是怎么跟协方差矩阵/特征值/特征向量勾搭起来的?里已经推导过PCA算法的小半部分原理. 本文假设你已经知道了PCA算法的基本原理和步骤. 从原始输入 ...

  3. Kernel Methods (3) Kernel Linear Regression

    Linear Regression 线性回归应该算得上是最简单的一种机器学习算法了吧. 它的问题定义为: 给定训练数据集\(D\), 由\(m\)个二元组\(x_i, y_i\)组成, 其中: \(x ...

  4. PRML读书会第六章 Kernel Methods(核函数,线性回归的Dual Representations,高斯过程 ,Gaussian Processes)

    主讲人 网络上的尼采 (新浪微博:@Nietzsche_复杂网络机器学习) 网络上的尼采(813394698) 9:16:05 今天的主要内容:Kernel的基本知识,高斯过程.边思考边打字,有点慢, ...

  5. Kernel Methods - An conclusion

    Kernel Methods理论的几个要点: 隐藏的特征映射函数\(\Phi\) 核函数\(\kappa\): 条件: 对称, 正半定; 合法的每个kernel function都能找到对应的\(\P ...

  6. 核方法(Kernel Methods)

    核方法(Kernel Methods) 支持向量机(SVM)是机器学习中一个常见的算法,通过最大间隔的思想去求解一个优化问题,得到一个分类超平面.对于非线性问题,则是通过引入核函数,对特征进行映射(通 ...

  7. Kernel methods on spike train space for neuroscience: a tutorial

    郑重声明:原文参见标题,如有侵权,请联系作者,将会撤销发布! 时序点过程:http://www.tensorinfinity.com/paper_154.html Abstract 在过去的十年中,人 ...

  8. Kernel Methods for Deep Learning

    目录 引 主要内容 与深度学习的联系 实验 Cho Y, Saul L K. Kernel Methods for Deep Learning[C]. neural information proce ...

  9. Kernel Methods (6) The Representer Theorem

    The Representer Theorem, 表示定理. 给定: 非空样本空间: \(\chi\) \(m\)个样本:\(\{(x_1, y_1), \dots, (x_m, y_m)\}, x_ ...

随机推荐

  1. 洛谷P1538迎春舞会之数字舞蹈

    题目背景 HNSDFZ的同学们为了庆祝春节,准备排练一场舞会. 题目描述 在越来越讲究合作的时代,人们注意的更多的不是个人物的舞姿,而是集体的排列. 为了配合每年的倒计时,同学们决定排出——“数字舞蹈 ...

  2. 第五章项目:QuickHit

    需求概述: 根据输入速率和正确率将玩家分为不同级别,级别越高,一次显示的字符数越多,玩家正确输入一次的得分也越高.如果玩家在规定时间内完成规定次数的输入,正确率达到规定要求,则玩家升级(为了简单起见, ...

  3. tyvj1098[luogu 2365]任务安排 batch

    题目描述 N个任务排成一个序列在一台机器上等待完成(顺序不得改变),这N个任务被分成若干批,每批包含相邻的若干任务.从时刻0开始,这些任务被分批加工,第i个任务单独完成所需的时间是Ti.在每批任务开始 ...

  4. Zygote进程【1】——Zygote的诞生

    在Android中存在着C和Java两个完全不同的世界,前者直接建立在Linux的基础上,后者直接建立在JVM的基础上.zygote的中文名字为"受精卵",这个名字很好的诠释了zy ...

  5. EncryptHelper

    public class EncryptHelper { public static string EncryptMd5Str(string str) { MD5 md5Obj = MD5.Creat ...

  6. tween.js

     简要教程 tween.js是一款可生成平滑动画效果的js动画库.相关的动画库插件还有:snabbt.js 强大的jQuery动画库插件和Tweene-超级强大的jQuery动画代理插件. tween ...

  7. php中Jpgraph的运用

    用Jpgraph,只要了解它的一些内置函数,可以轻松得画出折线图.柱形图.饼状图等图表. 首先要保证PHP打开了Gd2的扩展: 打开PHP.ini,定位到extension=php_gd2.dll,把 ...

  8. Standard Error of Mean(s.e.m.)

    · 来源:http://www.dxy.cn/bbs/thread/6492633#6492633 6楼: “据我所知,SD( standard deviation )反应的是观测值的变异性,其表示平 ...

  9. JavaScript继承与原型链

    对于那些熟悉基于类的面向对象语言(Java 或者 C++)的开发者来说,JavaScript 的语法是比较怪异的,这是由于 JavaScript 是一门动态语言,而且它没有类的概念( ES6 新增了c ...

  10. Shell脚本语法

      索引 1. 第一行必须是"#!/bin/sh" 2. 注释:一行开头为 # 3. 定义变量 4. 逻辑符号 5. 接收参数 6. 控制流:if/then/elif/else/f ...