Kernel Methods (2) Kernel function

来源:互联网 发布:重庆西南大学网络教育 编辑:程序博客网 时间:2024/05/17 01:12

几个重要的问题

现在已经知道了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}}\)
    
0 0
原创粉丝点击