学习笔记:机器学习之支持向量机(七、求核函数)

活动地址:CSDN21天学习挑战赛

​1 简介

  求和函数可以通过求映射函数 φ \varphi φ,再求 φ ( x ) \varphi(x) φ(x) φ ( z ) \varphi(z) φ(z)之间的内积即可得到核函数 K ( x , z ) K(x,z) K(x,z),但是实际应用中可以不直接定义映射函数 φ \varphi φ,而是直接计算核函数 K ( x , z ) K(x,z) K(x,z)

概念介绍

1.Gram矩阵介绍

   n维欧氏空间中任意k(k α 1 , α 2 , . . . , α k \alpha_1,\alpha_2,...,\alpha_k α1,α2,...,αk内积组成的矩阵。
Δ ( α 1 , α 2 , ⋯   , α k ) = ( ( α 1 , α 1 ) ( α 1 , α 2 ) ⋯ ( α 1 , α k ) ( α 2 , α 1 ) ( α 2 , α 2 ) ⋯ ( α 2 , α k ) ⋯ ⋯ ⋯ ⋯ ( α k , α 1 ) ( α k , α 2 ) ⋯ ( α k , α k ) ) \Delta\left(\alpha_{1}, \alpha_{2}, \cdots, \alpha_{\mathrm{k}}\right)=\left(\begin{array}{cccc} \left(\alpha_{1}, \alpha_{1}\right) & \left(\alpha_{1}, \alpha_{2}\right) & \cdots & \left(\alpha_{1}, \alpha_{\mathrm{k}}\right) \\ \left(\alpha_{2}, \alpha_{1}\right) & \left(\alpha_{2}, \alpha_{2}\right) & \cdots & \left(\alpha_{2}, \alpha_{\mathrm{k}}\right) \\ \cdots & \cdots & \cdots & \cdots \\ \left(\alpha_{\mathrm{k}}, \alpha_{1}\right) & \left(\alpha_{\mathrm{k}}, \alpha_{2}\right) & \cdots & \left(\alpha_{\mathrm{k}}, \alpha_{\mathrm{k}}\right) \end{array}\right) Δ(α1,α2,,αk)= (α1,α1)(α2,α1)(αk,α1)(α1,α2)(α2,α2)(αk,α2)(α1,αk)(α2,αk)(αk,αk)

2.对称函数

   在对称函数中,函数的输出值不随输入变数的排列而改变。从函数的形式中可以看出若输入变量排列后,方程式不会改变。例如: c a 2 + 3 a b + c b 2 ca^2 + 3ab+ cb^2 ca2+3ab+cb2,在a和b对调后其值不变。

2 怎么找核函数

核函数满足的特征:

  1. 核函数应该是对称函数
       φ ( x i ) ⋅ φ ( x j ) = K ( x i , x j ) \varphi(x_i)\cdot \varphi(x_j)=K(x_i,x_j) φ(xi)φ(xj)=K(xi,xj),核函数变量对调后值不变,所以核函数应该是对称函数。
  2. K ( x i , x j ) K(x_i,x_j) K(xi,xj)对应的Gram矩阵半正定
       核函数是内积的形式,所以其值大于等于0。

得到核函数 K ( x i , x j ) K(x_i,x_j) K(xi,xj)之后构成一个希尔伯特空间(Hilbert Space)。
步骤为:
  1.定义映射φ ,并构成向量空间S;
    映射关系: ϕ : x → K ( ⋅ , x ) \phi: x \rightarrow K(\cdot, x) ϕ:xK(,x)
    定义线性组合: f ( ⋅ ) = ∑ i = 1 m α i K ( ⋅ , x i ) f(\cdot)=\sum_{i=1}^{m} \alpha_{i} K\left(\cdot, x_{i}\right) f()=i=1mαiK(,xi)
    此时就构成了一个向量空间S。
  2.在S上定义内积构成内积空间;
    定义一个运算*, f ∗ g = ∑ i = 1 m ∑ j = 1 l α i β j K ( x i , z j ) f * g = \sum_{i=1}^{m} \sum_{j=1}^{l} \alpha_{i} \beta_{j} K\left(x_{i}, z_{j}\right) fg=i=1mj=1lαiβjK(xi,zj),再证明*是空间S的内积。
  3.最后将S完备化构成希尔伯特空间.

3 引入和函数后的非线性支持向量机

输入:训练集 T = { ( x 1 , y 1 ) , ( x 2 , y 2 ) , ⋯   , ( x N , y N ) } , y i ∈ − 1 , + 1 , i = 1 , 2 , . . . , N T=\left\{\left(x_{1}, y_{1}\right),\left(x_{2}, y_{2}\right), \cdots,\left(x_{N}, y_{N}\right)\right\},y_i \in{-1,+1},i=1,2,...,N T={(x1,y1),(x2,y2),,(xN,yN)},yi1,+1,i=1,2,...,N
构造最优化问题:
min ⁡ α 1 2 ∑ i = 1 N ∑ j = 1 N α i α j y i y j K ( x i , x j ) − ∑ i = 1 N α i \min _{\alpha} \frac{1}{2} \sum_{i=1}^{N} \sum_{j=1}^{N} \alpha_{i} \alpha_{j} y_{i} y_{j} K\left(x_{i}, x_{j}\right)-\sum_{i=1}^{N} \alpha_{i} minα21i=1Nj=1NαiαjyiyjK(xi,xj)i=1Nαi
s . t . ∑ i = 1 N α i y i = 0 , 0 ⩽ α i ⩽ C , i = 1 , 2 , ⋯   , N s.t. \quad \sum_{i=1}^{N} \alpha_{i} y_{i}=0 ,\qquad 0 \leqslant \alpha_{i} \leqslant C, \quad i=1,2, \cdots, N s.t.i=1Nαiyi=0,0αiC,i=1,2,,N
得到最优解 α ∗ \alpha^* α.
计算 b ∗ = y j − ∑ i = 1 N α i ∗ y i K ( x i ⋅ x j ) b^*=y_{j}-\sum_{i=1}^{N} \alpha_{i}^{*} y_{i} K\left(x_{i} \cdot x_{j}\right) b=yji=1NαiyiK(xixj)
构造决策函数:
f ( x ) = sign ⁡ ( ∑ i = 1 N α i ∗ y i K ( x ⋅ x i ) + b ∗ ) f(x)=\operatorname{sign}\left(\sum_{i=1}^{N} \alpha_{i}^{*} y_{i} K\left(x \cdot x_{i}\right)+b^{*}\right) f(x)=sign(i=1NαiyiK(xxi)+b)

输出:分类决策函数

参考

1.《统计学习方法》——李航
2.https://zh.m.wikipedia.org/zh-cn/%E5%AF%B9%E7%A7%B0_(%E6%95%B0%E5%AD%A6)

你可能感兴趣的:(机器学习,机器学习,支持向量机,学习)