支持向量机(二)

文章目录

前言

总算要对稍微有点难度的地方动手了,前面介绍的线性可分或者线性不可分的情况,都是使用平面作为分割面的,现在我们采用另一种分割面的设计方法,也就是核方法。

核方法涉及的分割面不再是 w x + b = 0 wx+b=0 wx+b=0,而是 f ( x ) = 0 f(x)=0 f(x)=0了。

具体内容

核方法其实就是坐标映射方法,类似于我们进行回归的时候对于反函数曲线采用 y = w x + b y=\frac{w}{x}+b y=xw+b的形式来对数据进行拟合。

我们常用的标准做法都是先将原始数据 x x x映射为 1 x \frac{1}{x} x1,然后对于数据 ( 1 x , y ) (\frac{1}{x},y) (x1,y)寻找线性函数 y = k t + b y=kt+b y=kt+b来拟合。

在非线性支持向量机中,我们需要把原始特征x通过映射函数变换为 ϕ ( x ) \phi(x) ϕ(x),对于这个映射函数没有什么要求,只不过什么样的映射函数映射以后分类效果最佳是未知的,是需要通过比较才能发现的。

映射函数一般都是把原始特征 x x x变为另一个向量 1 , x 1 , ⋯   , x n , x 1 2 , ⋯   , x i x j , ⋯   , x n 2 , ⋯   1,x_1,\\cdots,x_n,x_1\^2,\\cdots,x_ix_j,\\cdots,x_n\^2,\\cdots 1,x1,⋯,xn,x12,⋯,xixj,⋯,xn2,⋯其中的一项或者几项,具体是几项视具体情况确定,这个的目标是保留原始信息同时要增加尽可能多的生成信息,所以一般往高维方向映射。

当然这个函数设计好以后,我们在支持向量机的对偶函数中其实计算的是 K ( x i , x j ) K(x_i,x_j) K(xi,xj),这个函数是上面映射函数的乘积,可能计算更加复杂,所以从方便对偶函数的计算角度出发,设计了专门的对偶核函数,不过对偶核函数是有要求的,需要对所有特征 x x x所构成的gram矩阵是半正定的。

而这种情况下我们可以设计方便计算的核函数,比如:

多项式核函数: K ( x , z ) = ( x ⋅ z + 1 ) p K(x,z)=(x\cdot z+1)^p K(x,z)=(x⋅z+1)p,计算难度大大减小,而且这个多项式核函数对应的映射函数也比较好求:
K ( x , z ) = ( x ⋅ z + 1 ) 2 = ( x 1 z 1 + x 2 z 2 + 1 ) 2 = x 1 2 z 1 2 + 2 x 1 x 2 z 1 z 2 + 2 x 1 z 1 + x 2 2 z 2 2 + 2 x 2 z 2 + 1 = x 1 2 , 2 x 1 x 2 , 2 x 1 , x 2 2 , 2 x 2 , 1 z 1 2 , 2 z 1 z 2 , 2 z 1 , z 2 2 , 2 z 2 , 1 T \begin{align*} K(x,z)&=(x\cdot z+1)^2\\ &=(x_1z_1+x_2z_2+1)^2\\ &=x_1^2z_1^2+2x_1x_2z_1z_2+2x_1z_1+x_2^2z_2^2+2x_2z_2+1\\ &=x_1\^2,\\sqrt{2}x_1x_2,\\sqrt{2}x_1,x_2\^2,\\sqrt{2}x_2,1*z_1\^2,\\sqrt{2}z_1z_2,\\sqrt{2}z_1,z_2\^2,\\sqrt{2}z_2,1^T \end{align*} K(x,z)=(x⋅z+1)2=(x1z1+x2z2+1)2=x12z12+2x1x2z1z2+2x1z1+x22z22+2x2z2+1=x12,2 x1x2,2 x1,x22,2 x2,1z12,2 z1z2,2 z1,z22,2 z2,1T

相当于截取了泰勒展开式中的前几项。

换句话说,如果我们想将坐标映射为 1 , x 1 , x 2 , x 1 2 , x 1 x 2 , x 2 2 1,x_1,x_2,x_1\^2,x_1x_2,x_2\^2 1,x1,x2,x12,x1x2,x22,然后利用映射后的坐标来计算 w 1 , x 1 , x 2 , x 1 2 , x 1 x 2 , x 2 2 T + b w1,x_1,x_2,x_1\^2,x_1x_2,x_2\^2^T+b w1,x1,x2,x12,x1x2,x22T+b来作为判别函数,那么这个分界面问题的对偶函数中 ϕ ( x i ) ϕ ( x j ) \phi(x_i)\phi(x_j) ϕ(xi)ϕ(xj)就是上面的 ( x ⋅ z + 1 ) p (x\cdot z+1)^p (x⋅z+1)p的形式,也就是我们不用知道中间映射后的坐标,而可以直接计算 ( x i ⋅ x j + 1 ) p (x_i\cdot x_j+1)^p (xi⋅xj+1)p。

高斯核函数; K ( x , z ) = exp ⁡ ( − ∥ x − z ∥ 2 2 σ 2 ) K(x,z)=\exp(-\frac{{\|x-z\|}^2}{2\sigma^2}) K(x,z)=exp(−2σ2∥x−z∥2),计算难度大大减小,但是这个核函数对应的映射函数不容易求出来。
K ( x , z ) = exp ⁡ ( − ( x 1 − z 1 ) 2 + ( x 2 − z 2 ) 2 2 σ 2 ) = exp ⁡ ( − x 1 2 + z 1 2 − 2 x 1 z 1 + x 2 2 + z 2 2 − 2 x 2 z 2 2 σ 2 ) = exp ⁡ ( − x 1 2 2 σ 2 ) exp ⁡ ( − z 1 2 2 σ 2 ) exp ⁡ ( − x 2 2 2 σ 2 ) exp ⁡ ( − z 2 2 2 σ 2 ) exp ⁡ ( 2 x 1 z 1 2 σ 2 ) exp ⁡ ( 2 x 2 z 2 2 σ 2 ) = exp ⁡ ( − x 1 2 2 σ 2 ) exp ⁡ ( − z 1 2 2 σ 2 ) exp ⁡ ( − x 2 2 2 σ 2 ) exp ⁡ ( − z 2 2 2 σ 2 ) 1 + 2 x 1 z 1 2 σ 2 + ⋯ + 1 n ! ( 2 x 1 z 1 2 σ 2 ) n + ⋯   1 + 2 x 2 z 2 2 σ 2 + ⋯ + 1 n ! ( 2 x 2 z 2 2 σ 2 ) n + ⋯   = exp ⁡ ( − x 1 2 2 σ 2 ) exp ⁡ ( − z 1 2 2 σ 2 ) exp ⁡ ( − x 2 2 2 σ 2 ) exp ⁡ ( − z 2 2 2 σ 2 ) ∑ t = 0 + ∞ ∑ k = 0 + ∞ 1 t ! ( 2 x 1 z 1 2 σ 2 ) t 1 k ! ( 2 x 2 z 2 2 σ 2 ) k = exp ⁡ ( − x 1 2 2 σ 2 ) exp ⁡ ( − x 2 2 2 σ 2 ) 1 , x 1 σ , ⋯   , 1 n ! ( x 1 σ ) n , ⋯   , x 2 σ , x 1 x 2 σ 2 , ⋯   , 1 n ! ( x 1 n x 2 σ n + 1 ) , ⋯   , 1 t ! n ! x 1 t x 2 n σ t + n , ⋯   ∗ exp ⁡ ( − z 1 2 2 σ 2 ) exp ⁡ ( − z 2 2 2 σ 2 ) 1 , z 1 σ , ⋯   , 1 n ! ( z 1 σ ) n , ⋯   , z 2 σ , z 1 z 2 σ 2 , ⋯   , 1 n ! ( z 1 n z 2 σ n + 1 ) , ⋯   , 1 t ! n ! z 1 t z 2 n σ t + n , ⋯   \begin{align*} K(x,z)=&\exp(-\frac{(x_1-z_1)^2+(x_2-z_2)^2}{2\sigma^2})\\ =&\exp(-\frac{x_1^2+z_1^2-2x_1z_1+x_2^2+z_2^2-2x_2z_2}{2\sigma^2})\\ =&\exp(-\frac{x_1^2}{2\sigma^2})\exp(-\frac{z_1^2}{2\sigma^2})\exp(-\frac{x_2^2}{2\sigma^2})\exp(-\frac{z_2^2}{2\sigma^2})\exp(\frac{2x_1z_1}{2\sigma^2})\exp(\frac{2x_2z_2}{2\sigma^2})\\ =&\exp(-\frac{x_1^2}{2\sigma^2})\exp(-\frac{z_1^2}{2\sigma^2})\exp(-\frac{x_2^2}{2\sigma^2})\exp(-\frac{z_2^2}{2\sigma^2})1+\\frac{2x_1z_1}{2\\sigma\^2}+\\cdots+\\frac{1}{n!}(\\frac{2x_1z_1}{2\\sigma\^2})\^n+\\cdots1+\\frac{2x_2z_2}{2\\sigma\^2}+\\cdots+\\frac{1}{n!}(\\frac{2x_2z_2}{2\\sigma\^2})\^n+\\cdots\\ =&\exp(-\frac{x_1^2}{2\sigma^2})\exp(-\frac{z_1^2}{2\sigma^2})\exp(-\frac{x_2^2}{2\sigma^2})\exp(-\frac{z_2^2}{2\sigma^2})\\sum_{t=0}\^{+\\infty}\\sum_{k=0}\^{+\\infty}\\frac{1}{t!}(\\frac{2x_1z_1}{2\\sigma\^2})\^t\\frac{1}{k!}(\\frac{2x_2z_2}{2\\sigma\^2})\^k\\ =&\exp(-\frac{x_1^2}{2\sigma^2})\exp(-\frac{x_2^2}{2\sigma^2})1,\\frac{x_1}{\\sigma},\\cdots,\\sqrt{\\frac{1}{n!}}(\\frac{x_1}{\\sigma})\^n,\\cdots,\\frac{x_2}{\\sigma},\\frac{x_1x_2}{\\sigma\^2},\\cdots,\\sqrt{\\frac{1}{n!}}(\\frac{x_1\^nx_2}{\\sigma\^{n+1}}),\\cdots,\\sqrt{\\frac{1}{t!n!}}\\frac{x_1\^tx_2\^n}{\\sigma\^{t+n}},\\cdots*\\ &\exp(-\frac{z_1^2}{2\sigma^2})\exp(-\frac{z_2^2}{2\sigma^2})1,\\frac{z_1}{\\sigma},\\cdots,\\sqrt{\\frac{1}{n!}}(\\frac{z_1}{\\sigma})\^n,\\cdots,\\frac{z_2}{\\sigma},\\frac{z_1z_2}{\\sigma\^2},\\cdots,\\sqrt{\\frac{1}{n!}}(\\frac{z_1\^nz_2}{\\sigma\^{n+1}}),\\cdots,\\sqrt{\\frac{1}{t!n!}}\\frac{z_1\^tz_2\^n}{\\sigma\^{t+n}},\\cdots \end{align*} K(x,z)======exp(−2σ2(x1−z1)2+(x2−z2)2)exp(−2σ2x12+z12−2x1z1+x22+z22−2x2z2)exp(−2σ2x12)exp(−2σ2z12)exp(−2σ2x22)exp(−2σ2z22)exp(2σ22x1z1)exp(2σ22x2z2)exp(−2σ2x12)exp(−2σ2z12)exp(−2σ2x22)exp(−2σ2z22)1+2σ22x1z1+⋯+n!1(2σ22x1z1)n+⋯1+2σ22x2z2+⋯+n!1(2σ22x2z2)n+⋯exp(−2σ2x12)exp(−2σ2z12)exp(−2σ2x22)exp(−2σ2z22)t=0∑+∞k=0∑+∞t!1(2σ22x1z1)tk!1(2σ22x2z2)kexp(−2σ2x12)exp(−2σ2x22)1,σx1,⋯,n!1 (σx1)n,⋯,σx2,σ2x1x2,⋯,n!1 (σn+1x1nx2),⋯,t!n!1 σt+nx1tx2n,⋯∗exp(−2σ2z12)exp(−2σ2z22)1,σz1,⋯,n!1 (σz1)n,⋯,σz2,σ2z1z2,⋯,n!1 (σn+1z1nz2),⋯,t!n!1 σt+nz1tz2n,⋯

所以两个映射函数分别如上所示:
ϕ ( x ) = exp ⁡ ( − x 1 2 2 σ 2 ) exp ⁡ ( − x 2 2 2 σ 2 ) 1 , x 1 σ , ⋯   , 1 n ! ( x 1 σ ) n , ⋯   , x 2 σ , x 1 x 2 σ 2 , ⋯   , 1 n ! ( x 1 n x 2 σ n + 1 ) , ⋯   , 1 t ! n ! x 1 t x 2 n σ t + n , ⋯   \phi(x)=\exp(-\frac{x_1^2}{2\sigma^2})\exp(-\frac{x_2^2}{2\sigma^2})1,\\frac{x_1}{\\sigma},\\cdots,\\sqrt{\\frac{1}{n!}}(\\frac{x_1}{\\sigma})\^n,\\cdots,\\frac{x_2}{\\sigma},\\frac{x_1x_2}{\\sigma\^2},\\cdots,\\sqrt{\\frac{1}{n!}}(\\frac{x_1\^nx_2}{\\sigma\^{n+1}}),\\cdots,\\sqrt{\\frac{1}{t!n!}}\\frac{x_1\^tx_2\^n}{\\sigma\^{t+n}},\\cdots ϕ(x)=exp(−2σ2x12)exp(−2σ2x22)1,σx1,⋯,n!1 (σx1)n,⋯,σx2,σ2x1x2,⋯,n!1 (σn+1x1nx2),⋯,t!n!1 σt+nx1tx2n,⋯

如果只看后面的向量的话,他就是泰勒展开式中各个项,但是它前面还乘上了系数 exp ⁡ ( − x 1 2 2 σ 2 ) exp ⁡ ( − x 2 2 2 σ 2 ) \exp(-\frac{x_1^2}{2\sigma^2})\exp(-\frac{x_2^2}{2\sigma^2}) exp(−2σ2x12)exp(−2σ2x22)缩放了一下。

换句话说,这个映射函数把原始特征映射为了一个无穷维的坐标,我们实际上做的是用这个映射后的坐标 exp ⁡ ( − x 1 2 2 σ 2 ) exp ⁡ ( − x 2 2 2 σ 2 ) 1 , x 1 σ , ⋯   , 1 n ! ( x 1 σ ) n , ⋯   , x 2 σ , x 1 x 2 σ 2 , ⋯   , 1 n ! ( x 1 n x 2 σ n + 1 ) , ⋯   , 1 t ! n ! x 1 t x 2 n σ t + n , ⋯   \exp(-\frac{x_1^2}{2\sigma^2})\exp(-\frac{x_2^2}{2\sigma^2})1,\\frac{x_1}{\\sigma},\\cdots,\\sqrt{\\frac{1}{n!}}(\\frac{x_1}{\\sigma})\^n,\\cdots,\\frac{x_2}{\\sigma},\\frac{x_1x_2}{\\sigma\^2},\\cdots,\\sqrt{\\frac{1}{n!}}(\\frac{x_1\^nx_2}{\\sigma\^{n+1}}),\\cdots,\\sqrt{\\frac{1}{t!n!}}\\frac{x_1\^tx_2\^n}{\\sigma\^{t+n}},\\cdots exp(−2σ2x12)exp(−2σ2x22)1,σx1,⋯,n!1 (σx1)n,⋯,σx2,σ2x1x2,⋯,n!1 (σn+1x1nx2),⋯,t!n!1 σt+nx1tx2n,⋯去构成分界面 w exp ⁡ ( − x 1 2 2 σ 2 ) exp ⁡ ( − x 2 2 2 σ 2 ) 1 , x 1 σ , ⋯   , 1 n ! ( x 1 σ ) n , ⋯   , x 2 σ , x 1 x 2 σ 2 , ⋯   , 1 n ! ( x 1 n x 2 σ n + 1 ) , ⋯   , 1 t ! n ! x 1 t x 2 n σ t + n , ⋯   + b w\exp(-\frac{x_1^2}{2\sigma^2})\exp(-\frac{x_2^2}{2\sigma^2})1,\\frac{x_1}{\\sigma},\\cdots,\\sqrt{\\frac{1}{n!}}(\\frac{x_1}{\\sigma})\^n,\\cdots,\\frac{x_2}{\\sigma},\\frac{x_1x_2}{\\sigma\^2},\\cdots,\\sqrt{\\frac{1}{n!}}(\\frac{x_1\^nx_2}{\\sigma\^{n+1}}),\\cdots,\\sqrt{\\frac{1}{t!n!}}\\frac{x_1\^tx_2\^n}{\\sigma\^{t+n}},\\cdots+b wexp(−2σ2x12)exp(−2σ2x22)1,σx1,⋯,n!1 (σx1)n,⋯,σx2,σ2x1x2,⋯,n!1 (σn+1x1nx2),⋯,t!n!1 σt+nx1tx2n,⋯+b作为分界面,其中 w w w为无穷维向量,那么这个分界面问题的对偶函数中 ϕ ( x i ) ϕ ( x j ) \phi(x_i)\phi(x_j) ϕ(xi)ϕ(xj)就是上面的 exp ⁡ ( − ( x 1 − z 1 ) 2 + ( x 2 − z 2 ) 2 2 σ 2 ) \exp(-\frac{(x_1-z_1)^2+(x_2-z_2)^2}{2\sigma^2}) exp(−2σ2(x1−z1)2+(x2−z2)2)的形式,也就是我们不用知道中间映射后的坐标,而可以直接计算 exp ⁡ ( − ( x 1 − z 1 ) 2 + ( x 2 − z 2 ) 2 2 σ 2 ) \exp(-\frac{(x_1-z_1)^2+(x_2-z_2)^2}{2\sigma^2}) exp(−2σ2(x1−z1)2+(x2−z2)2)。

相关推荐
MartinYeung532 分钟前
[论文学习]DP2Unlearning:高效且具保证的大型语言模型遗忘框架(基于差分隐私的 LLM Unlearning 方法)
学习·算法·语言模型
Tian_Hang1 小时前
C++原型模式(Protype)
开发语言·c++·算法
bIo7lyA8v1 小时前
算法复杂度的渐进分析与实际运行时间的差异的技术8
算法
叫我:松哥1 小时前
基于机器学习的中文文本抑郁症风险检测系统,包括NLP与传统机器学习的抑郁症识别,准确率92%
人工智能·深度学习·机器学习·自然语言处理·flask·nlp·bootstrap
yuan199972 小时前
欧拉梁静力与屈曲计算的 MATLAB 实现(有限差分法 + 解析解)
开发语言·算法·matlab
zzzzzz3102 小时前
NVIDIA 开源 SkillSpector:AI Agent 技能安全扫描器,你的 Agent 装了个定时炸弹?
机器学习·shell·cto
汉克老师3 小时前
GESP7级C++考试语法知识(二、指数函数(3、综合练习)
c++·算法·数学建模·指数函数·gesp7级·复利
哥布林学者3 小时前
深度学习进阶(三十)从 Transformer 到 LLaMA:现代 LLM 架构总览
机器学习·ai
林间码客3 小时前
04 ROC曲线与AUC:从零开始手动计算
大数据·人工智能·算法