您当前的位置: 首页 > 

TechGuide

暂无认证

  • 10浏览

    0关注

    176博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

通俗讲解支持向量机SVM(四)用尽洪荒之力把核函数与核技巧讲得明明白白(精华篇)

TechGuide 发布时间:2020-04-13 07:27:22 ,浏览量:10

点赞再看,养成习惯,您动动手指对原创作者意义非凡🤝 备战秋招面试 微信搜索公众号【TechGuide】关注更多新鲜好文和互联网大厂的笔经面经。 作者@TechGuide

当你的才华还撑不起你的野心时,你应该静下心去学习 。

目录
  • 前言
  • 正文
    • 一、高维映射
    • 二、什么叫核函数
    • 三、只有核函数K的优化问题
    • 四、测试样本X流程
    • 五、总结
        • 1)训练阶段
        • 2)测试阶段

前言

之前本系列也有简单提过SVM处理非线性问题,我在这篇文章会用最简单明了的语言讲明白非线性分类问题的解决方法,以及为什么要引入核函数,什么是核技巧,最后会总结一下SVM算法,拎出重点,把脉络梳理清楚。

正文

建议在看这篇之前,把通俗讲解支持向量机SVM(二)对偶性的几何解释 看一下,对SVM的对偶性有一个直观的理解,接下来会顺畅很多。好啦!准备好了吗?耐下心来,咱们开始!

一、高维映射

在这里插入图片描述 现在我们抛出一个例子,引出问题。先考虑情况一,我们可以很容易的将如上的样本集分类,用一个线性分类器即可。但是如下图的情况二呢?很明显,无法找到一条二维的线性直线将蓝黑两类点分类正确。在这里插入图片描述 怎么办呢?是的没错!就是用高维映射 φ ( ) \varphi () φ(),我们将二维坐标点A1(1,0),A2(0,1),B1(1,1),B2(0,0) [ x y ] \left[ \begin{matrix} x \\ y \\ \end{matrix} \right] [xy​] 转化到高维空间就可以用直线划分,比如转化为五维坐标点: φ ( X ) = φ ( A or B ) = [ x 2 y 2 x y x y ] (1) \varphi(X) =\varphi(A \text{or} B) = \left[ \begin{matrix} x^2 \\ y^2 \\ x \\ y \\ xy \\ \end{matrix} \right] \tag 1 φ(X)=φ(AorB)=⎣⎢⎢⎢⎢⎡​x2y2xyxy​⎦⎥⎥⎥⎥⎤​(1) 这样,我们得到转化到五维的四个坐标点,接着,我们再找到一条在五维的直线( ω \omega ω , b)将这四个点分开,以什么为标准呢?参照二维情况,这里我们用: { ω T φ ( X ) + b ≥ 1 点X ∈ 类C1 ω T φ ( X ) + b < 1 点X ∈ 类C2 (2) \begin{cases} \omega^T\varphi(X)+b \geq 1& \text{点X} \in \text{类C1}\\ \omega^T\varphi(X)+b < 1& \text{点X} \in \text{类C2} \end{cases} \tag 2 {ωTφ(X)+b≥1ωTφ(X)+b ω = ∑ i = 1 N α i y i φ ( X i ) \frac{\partial \Theta}{\partial \omega} = 0 ------>\omega=\sum_{i=1}^{N}\alpha_iy_i\varphi(X_i) ∂ω∂Θ​=0−−−−−−>ω=i=1∑N​αi​yi​φ(Xi​) ∂ Θ ∂ ζ = 0 − − − − − − > α i + β i = C (5) \frac{\partial \Theta}{\partial \zeta} = 0------>\alpha_i + \beta_i = C \tag 5 ∂ζ∂Θ​=0−−−−−−>αi​+βi​=C(5) ∂ Θ ∂ b = 0 − − − − − − > ∑ i = 1 N α i y i = 0 \frac{\partial \Theta}{\partial b} = 0------>\sum_{i=1}^{N}\alpha_iy_i=0 ∂b∂Θ​=0−−−−−−>i=1∑N​αi​yi​=0我觉得大家都明白,求导比较繁琐,但肯定不难,稍耐心,肯定能得出正确结果,大家不妨算一算,看看和给出的结果是否一致。 所以,依照求导的结果代入后获得的应该是下确界的值,在maxmize它,再次改写优化问题,约掉 β \beta β,用的是(5)式: Maxmize   Θ ( α i ) = ∑ i = 1 N α i − 1 2 ∑ i = 1 N ∑ j = 1 N α i α j y i y j K ( X i , X j ) \text{Maxmize} \,\Theta(\alpha_i) =\sum_{i=1}^N\alpha_i-\frac{1}{2} \sum_{i=1}^{N}\sum_{j=1}^{N}\alpha_i\alpha_jy_iy_jK(X_i,X_j) MaxmizeΘ(αi​)=i=1∑N​αi​−21​i=1∑N​j=1∑N​αi​αj​yi​yj​K(Xi​,Xj​) Subject to:     0 ≤ α i ≤ C \text{Subject to:\,\,\,}0 \leq \alpha_i \leq C Subject to:0≤αi​≤C ∑ i = 1 N α i y i = 0 \sum_{i=1}^{N}\alpha_iy_i=0 i=1∑N​αi​yi​=0 ,再次分析一波,上式中yi,yj是label,已知的值。核函数K则是一开始用户确定采用的那一种核函数(比如常见的高斯核函数和多项式核函数等),而待求的则是 α i , α j \alpha_i,\alpha_j αi​,αj​,细心的朋友可能已经发现了,优化问题中的 φ ( X ) \varphi(X) φ(X)都慢慢“消失”,被核函数K(X1,X2)代替,这就是前面我们折腾半天的原因, 避 开 φ ( X ) , 用 K 代 替 , 这 也 是 全 篇 的 核 心 所 在 ! ! ! ! ! {\color{red} 避开\varphi(X),用K代替,这也是全篇的核心所在!!!!!} 避开φ(X),用K代替,这也是全篇的核心所在!!!!!

四、测试样本X流程

OK,整理清楚思路,这个问题就很好解了,回归文章开头,我们在测试样本属于哪一类时,用的标准是 { ω T φ ( X i ) + b ≥ 1 y i = + 1 ω T φ ( X i ) + b < 1 y i = − 1 (6) \begin{cases} \omega^T\varphi(X_i)+b \geq 1& y_i=+1\\ \omega^T\varphi(X_i)+b < 1& y_i=-1 \end{cases} \tag 6 {ωTφ(Xi​)+b≥1ωTφ(Xi​)+b 0 \beta_i = C-\alpha_i > 0 βi​=C−αi​>0,所以根据KKT条件, ζ i = 0 , and D = 0 \zeta_i=0 ,\text{and} D = 0 ζi​=0,andD=0,由此可得出 b = 1 − y i ∑ i = 1 N α j y j K ( X i , X j ) y i b=\frac{1-y_i\sum_{i=1}^{N}\alpha_jy_jK(X_i,X_j)}{y_i} b=yi​1−yi​∑i=1N​αj​yj​K(Xi​,Xj​)​

五、总结

感谢你一路看到现在,我们对SVM算法做出最后的总结,帮助加深理解:

1)训练阶段

输入样本集(Xi,yi),解优化问题,得到所有的N个 α i \alpha_i αi​,并由此得到 β i 和 b \beta_i和b βi​和b

2)测试阶段

输入你想要测试的样本X,再根据(6)分类器: { ω T φ ( X i ) + b ≥ 1 y i = + 1 ω T φ ( X i ) + b < 1 y i = − 1 \begin{cases} \omega^T\varphi(X_i)+b \geq 1& y_i=+1\\ \omega^T\varphi(X_i)+b < 1& y_i=-1 \end{cases} {ωTφ(Xi​)+b≥1ωTφ(Xi​)+b

关注
打赏
1665329535
查看更多评论
立即登录/注册

微信扫码登录

0.0409s