• Kernel Methods (1) 从简单的例子开始


    一个简单的分类问题, 如图左半部分所示. 很明显, 我们需要一个决策边界为椭圆形的非线性分类器.
    ellipse
    我们可以利用原来的特征构造新的特征: ((x_1, x_2) o (x_1^2, sqrt 2 x_1x_2, x_2^2)), 如此一来, 原来的数据从二维空间被映射到了三维. 这个时候, 原来线性不可分的数据已经线性可分了:

    [frac {x_1^2}{a^2} + 0*sqrt 2 x_1x_2 + frac {x_2^2}{b^2} = 1 ]

    在二维空间里, 它是一个椭圆;在三维空间里它是一个平面: (A x + Bz = 1), 其中(A = frac 1{a^2}, B = frac 1{b^2}).

    为方便描述, 现在我们来给出一些要用到的定义:

    • 原始输入(raw input): 直接输入分类器的特征数据:(x = (x_1, x_2, dots, x_n)). 它们所在的空间被称为输入空间(input space): (chi in R^n)
    • 特征映射函数(Phi):(R^n o R^d), (Phi(x) = z = (z_1, z_2, dots, z_d)), 它将原始输入映射到一个(d)维空间, 称为特征空间(feature space):(H in R^d). (d)一般要大于(n)

    再看一个例子. 这个特征空间(H)是一个二维空间, 数据样本是线性可分的. 现在我们根据一种简单的分类原则来求出一个线性分类器.
    simple classifier
    分类原则如下:

    • 特征空间中有正(+)负(o)两类样本, 它的中心点分别为(c_+ = frac {1}{m_+}sum_{y_i = 1}z_i), (c_- = frac {1}{m_-}sum_{y_i = -1}z_i), (m_+, m_-)分别为正负样本的个数.
    • (c_+, c_-)两点的中点为(c = frac {c_+ + c_-}{2})
    • 测试样本(x)在特征中空间中的表达为(z=Phi(x)).
    • 若向量(z - c)与向量(c_+ - c_-)之间的夹角小于(90^circ), 则(z)为正类, 否则为负类.

    分析:(<a,b>代表向量(a,b)的点积操作)
    (z - c)(c_+ - c_-)之间的夹角小于(90^circ): (<(z - c) , (c_+ - c_-) > > 0)
    (z - c)(c_+ - c_-)之间的夹角大于(90^circ): (<(z - c) , (c_+ - c_-) > < 0)
    ( herefore y(x) = sgn(<(z - c) , (c_+ - c_-) >)), 而

    [<(z - c) , (c_+ - c_-)> = <z , (c_+ - c_-)> - <c , (c_+ - c_-)> $$ $$= frac 1{m_+} sum_{{y_i = 1}} <z , z_i> - frac 1{m_-} sum_{{y_i = -1}} <z , z_i> + b$$, 其中 $b=frac 12 <(c_+ + c_-)><c_+ + c_-> = frac 12 (<c_+, c_+> - <c_-, c_->)$ $$ = frac 12 (frac 1{m_+^2}sum_{{y_i = y_j = 1}}<z_i, z_j> - frac 1{m_-^2}sum_{{y_i = y_j = -1}}<z_i, z_j>]

    可以看出, **预测输入(x)的标签(y), 只需要特征空间上的内积操作. ** 而特征空间上的内积结果得到的一个关于原输入数据的函数就是kernel function , 核函数 (kappa: chi^2 o R).

    [kappa(x_i, x_j) = <z_i, z_j> = <Phi(x_i), Phi(x_j)> ]

    代入上式得:

    [y(x)=sign(frac 1{m_+} sum_{{y_i = 1}} kappa(x , x_i) - frac 1{m_-} sum_{{y_i = -1}} kappa(x, x_i)+ frac 12 (frac 1{m_+^2}sum_{{y_i = y_j = 1}}kappa(x_i, x_j) - frac 1{m_-^2}sum_{{y_i = y_j = -1}}kappa(x_i, x_j)) ]

    很明显, 知道了kernel function (kappa)后, 特征映射函数(Phi)反而没有必要使用它了. 在实际应用中也是这样: 将一个机器学习算法, 如SVM, PCA, Linear Regression等, 转换为对应的kernel 版本时, 只需要选定一个kernel function (kappa)就行了, 并不需要选择对应的特征映射函数(Phi).

  • 相关阅读:
    Android WebService Does not support output
    textarea 内容对齐
    win7 下使用ssh连接vmare下的ubuntu系统
    myeclipse6.5 下无法使用tomcat7
    connectmongo.js 中出错 var Store = connect.session.Stroe
    linux tomcat7 ServerLifecycleListener类找不到
    SQL CASE 多条件用法
    myeclipse快捷键大全
    hibernat 中new对象进行查询
    SQL语句删除表中重复字段
  • 原文地址:https://www.cnblogs.com/dengdan890730/p/5489175.html
Copyright © 2020-2023  润新知