• Kernel Methods (2) Kernel function


    几个重要的问题

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

    • 可以略过特征映射函数(Phi), 只使用kernel function (kappa)吗?
      上一节的例子已经给出了答案, YES.
    • 什么样的函数才能被当做kernel function来使用, 总不能只要可以将两个原始输入映射到一个实数上(chi^2 o 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 imes n})是一个正半定矩阵, 当且仅当A满足:

    [forall x in R^n, x^T A x ge 0 ]

    例如单位矩阵 (E = left[ egin{matrix}1 & 0 \ 0 &1end{matrix} ight])就是一个正半定矩阵:
    对于任意二维向量(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 [ egin{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} ight ] ]

    因为kernel function 是定义在特征空间(H)上的点积操作, 所以它应该是对称的:

    [kappa (x_i, x_j) = kappa (x_j, x_i) ]

    这样一来, kernel matrix (K) 就是一个对称矩阵了: (K = K^T), 并且$$
    K =
    left [
    egin{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}
    ight ]

    left[
    egin{matrix}
    Phi(x_1)^T Phi(x_2)^T vdots Phi(x_n)^T
    end{matrix}
    ight]
    left[
    egin{matrix}
    Phi(x_1) , Phi(x_2), dots Phi(x_n)
    end{matrix}
    ight]
    = ZZ^T

    [$Z$在上文中出现过, 这里再解释一次: $Z_{n imes 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, rin Z^+$ * Guassion kernel: $kappa(x, y) = e^{-frac {||x-y||^2}{2sigma^2}}$]

  • 相关阅读:
    C#多线程编程
    div水平垂直居中方法及优缺点
    Socket网络编程(TCP/IP/端口/类)和实例
    LINQ to SQL语句大全
    SQL Server修改表结构后批量更新所有视图
    SQL Server修改表结构后批量更新所有视图
    SQL Server修改表结构后批量更新所有视图
    开源Asp.Net Core小型社区系统DotNetClub
    CkEditor 4.1.3 + CkFinder 2.4
    文本编辑器-->CKEditor+CKFinder使用与配置
  • 原文地址:https://www.cnblogs.com/dengdan890730/p/5514655.html
Copyright © 2020-2023  润新知