【机器学习】支持向量机中的核函数(理论+图解+公式推导)

简介: 【机器学习】支持向量机中的核函数(理论+图解+公式推导)

2021人工智能领域新星创作者,带你从入门到精通,该博客每天更新,逐渐完善机器学习各个知识体系的文章,帮助大家更高效学习。


一、概述

我们之前讲解的硬间隔支持向量机或者像一些感知机算法,它们都是适用于线性可分的数据的,如果面对不可分的数据SVM有引出了软间隔的概念,可以容忍犯一些错误,降低一些标准,来达到对噪声点的容错,但要求还是大部分数据是线性可分的,如果我们的数据分布十分不规范,比如:

像这种数据显然用简单的线性超平面的不可区分的,如果我们采用曲线的方式就会很容易的区分

其实这种曲线的方式就是引入了核函数进而转成曲线的,具体怎么回事下面会说。

如果我们此时的空间维度线性不可分,我们能不能将其换个空间维度然后再使用线性分割呢?其实这是可以的,研究证明我们任何不可分的数据都可以将其转化为更高的维度将其变得线性可分,我们举个例子:

就是这么简单的例子,我们的线性分类器都没有办法解决,找不到任何一条直线可以完全的区分所有样本点,假设现在我们将每个样本映射到高维空间,此时就不一样了

我们发现将原始的二维数据映射到了三维空间,这样数据就可以找到一个黑色平面进行区分了,我们接下来的思想就是这样,如果原特征空间不可区分,那么我们就想办法将他们映射到高维空间,然后在高纬度空间线性可分,进而执行之前的算法操作。

二、核函数

前面叙述这么多,到底什么是核函数呢?

核函数其实来说既是一种函数,也不是一种函数,它所表达的是两个向量的内积:

K ( x , z ) = < ϕ ( x ) , ϕ ( z ) > = x T z = x ⋅ z K(x,z)=<\phi (x),\phi(z)>=x^Tz=x·zK(x,z)=<ϕ(x),ϕ(z)>=xTz=xz

这就是核函数的表达形式,上面我们说解决线性不可分的方法就是将低纬数据映射到高维数据,那么它和核函数有什么关系呢?

既然我们将数据映射到了高维空间,那么我们之后的操作就对应这在高纬度空间中的操作,比如乘法、加法、数乘等,但是前提是我们需要映射函数 ϕ \phiϕ 是什么,在实际中,我们一般不采用他,如果这样,首先我们面临的就是先找到这样的一个映射函数来将低维空间映射到高维空间,这会很难,其次如果求出了映射函数,我们还需要将低纬度空间的数据带入该函数,求得映射后的空间向量,然后再进行相关操作很麻烦,所以有人就想到了使用核函数的方式进行替代。

核函数表达为高维空间向量的内积,其中 ϕ ( x ) \phi(x)ϕ(x) 为经过映射函数后的高维空间向量,现在我们如果要求高维空间中两个向量的内积,我们并不需要求得映射函数,也不需要知道映射后的向量是什么,我们只需要我们用到的核函数K,我们只要把低纬度空间中的两个向量带入K函数中,就自然可以获得高维空间中向量的内积。

那么有人会问,采用这种方法是解决了求高维空间内积的方式,但是别的呢?比如乘法、数乘这些。

对于这个问题,前人已经证明,这些的计算都可以转化为内积的表达式,也就是求这些问题结果都可先将表达式做各种替换,变成一个关于内积的代数式进而进行计算,另外一点,一般算法中大多数采用的都是内积。

又有人提出问题就是,那么我们的K也就是核函数,我们不知道是什么啊?

针对这个问题,核函数其实有很多,只要满足上面的等式一般都可以成为核函数,这么说不严谨,我们大可不必自己去找核函数,前任已经经过大量的实验已经把常用以及效果非常好的核函数给出:

1.线性核(Linear Kernel)

K ( x , z ) = x T z = x ⋅ z = < x , z > K(x,z)=x^Tz=x·z=<x,z>K(x,z)=xTz=xz=<x,z>

2.多项式核(Polynomial Kernel)

K ( x , z ) = ( a x T z + c ) d = ( a x ⋅ z + b ) d K(x,z)=(ax^Tz+c)^d=(ax·z+b)^dK(x,z)=(axTz+c)d=(axz+b)d

3.高斯核(径向基核函数)(Radial Basis Function)

K ( x , z ) = e − ∣ ∣ x − y ∣ ∣ 2 2 σ 2 K(x,z)=e^{-\frac{||x-y||^2}{2\sigma^2}}K(x,z)=e2σ2xy2

或者

K ( x , z ) = e − γ ∣ ∣ x − y ∣ ∣ 2 K(x,z)=e^{-\gamma||x-y||^2}K(x,z)=eγxy2

4.拉普拉斯核(Laplacian Kernel)

K ( x , z ) = e − ∣ ∣ x − y ∣ ∣ σ K(x,z)=e^{-\frac{||x-y||}{\sigma}}K(x,z)=eσxy

上面的几个是比较常用的核函数,用法就是将低维向量作为参数传入,就可以获得高维空间中的内积,具体是哪个维度空间中的内积根据不同问题不太一样,对于核函数中其它一些参数都是超参数,可以人为的改动,比如线性核的C。

引申了这么多还没有说核函数的具体定义呢!!!

核函数:如果满足 K : X ∗ X − > R 对 于 任 意 的 x 、 z 属 于 X , 则 称 K ( x , z ) 为 核 函 数 K:X*X->R 对于任意的x、z属于X,则称K(x,z)为核函数K:XX>RxzXK(x,z)

说白了就是从特征空间映射到了R实数空间

那么什么是正定核函数呢?

对于正定核函数存在两种定义方式,对于第一种定义方式:

1.如果满足其为核函数,此时如果对于任意的X属于R,而 ϕ ∈ H \phi \in HϕH ,且服从 K ( x , z ) = < ϕ ( x ) , ϕ ( z ) > K(x,z)=<\phi(x),\phi(z)>K(x,z)=<ϕ(x),ϕ(z)>,那么则称其为正定核函数

2.如果 K ( x , z ) K(x,z)K(x,z) 满足下面两条性质则称正定核函数

(1)对称性:K ( x , z ) = K ( z , x ) K(x,z)=K(z,x)K(x,z)=K(z,x)

(2)正定性:满足Gram matrix是半正定矩阵,该矩阵的形式为 G r a m = [ K i , j ] Gram=[K_{i,j}]Gram=[Ki,j]

下面我们将会给出证明

三、证明Gram matrix为半正定矩阵的必要性

针对于对称性很显然,两个向量的内积满足对称性,下面我们重点证明矩阵正定性

证明:

证明一个矩阵半正定的方式有两种:

1.矩阵的特征值大于等于0

2.对于任意的列向量x都满足 x T A x ≥ 0 x^TAx\geq0xTAx0 ,则说明A矩阵为半正定矩阵

我们采用第二种方式进行证明,我们只需要证明 x T K x ≥ 0 x^TKx\geq0xTKx0 即可

x T K x = [ x 1 , x 2 , . . . , x n ] [ K 11 , K 12 . . . K 1 n K 21 , K 22 . . . K 2 n K n 1 , K n 2 , , , K n n ] [ x 1 x 2 . . . x n ] x^TKx=

[x1,x2,...,xn][x1,x2,...,xn]

K11,K12...K1nK21,K22...K2nKn1,Kn2,,,Knn[K11,K12...K1nK21,K22...K2nKn1,Kn2,,,Knn]

x1x2...xn[x1x2...xn]

xTKx=[x1,x2,...,xn]K11,K12...K1nK21,K22...K2nKn1,Kn2,,,Knnx1x2...xn

= ∑ i = 1 n ∑ j = 1 n x i x j K i j =\sum_{i=1}^n\sum_{j=1}^nx_ix_jK_{ij}=i=1nj=1nxixjKij

有因为 K ( x i , x j ) = < ϕ ( x i ) , ϕ ( x j ) > K(x_i,x_j)=<\phi(x_i),\phi(x_j)>K(xi,xj)=<ϕ(xi),ϕ(xj)>

= ∑ i = 1 n ∑ j = 1 n x i x j < ϕ ( x i ) , ϕ ( x j ) > =\sum_{i=1}^n\sum_{j=1}^nx_ix_j<\phi(x_i),\phi(x_j)>=i=1nj=1nxixj<ϕ(xi),ϕ(xj)>

= ∑ i = 1 n ∑ j = 1 n x i x j ϕ ( x i ) T ϕ ( x j ) =\sum_{i=1}^n\sum_{j=1}^nx_ix_j\phi(x_i)^T\phi(x_j)=i=1nj=1nxixjϕ(xi)Tϕ(xj)

= ∑ i = 1 n x i ϕ ( x i ) T ∑ j = 1 n x j ϕ ( x j ) =\sum_{i=1}^nx_i\phi(x_i)^T\sum_{j=1}^nx_j\phi(x_j)=i=1nxiϕ(xi)Tj=1nxjϕ(xj)

= [ ∑ i = 1 n x i ϕ ( x i ) ] T ∑ j = 1 n x j ϕ ( x j ) =[\sum_{i=1}^nx_i\phi(x_i)]^T\sum_{j=1}^nx_j\phi(x_j)=[i=1nxiϕ(xi)]Tj=1nxjϕ(xj)

= ∣ ∣ ∑ i = 1 m x i ϕ ( x i ) ∣ ∣ 2 ≥ 0 =||\sum_{i=1}^mx_i\phi(x_i)||^2\geq0=i=1mxiϕ(xi)20

证毕

四、SVM支持向量机中的核函数

你比如说我们之前将支持向量机的时候,我们目标优化函数为:

m i n − ∑ j = 1 m λ i + 1 2 ∑ i = 1 m ∑ j = 1 m λ i λ j y i y j ( x i T x j ) min-\sum_{j=1}^m\lambda_i+\frac{1}{2}\sum_{i=1}^m\sum_{j=1}^m\lambda_i\lambda_jy_iy_j(x_i^Tx_j)minj=1mλi+21i=1mj=1mλiλjyiyj(xiTxj)

可以看到优化函数中存在 x i , x j x_i,x_jxi,xj 的内积,所以我们就考虑使用核函数进行代替变成:

m i n − ∑ j = 1 m λ i + 1 2 ∑ i = 1 m ∑ j = 1 m λ i λ j y i y j K ( x i , x j ) min-\sum_{j=1}^m\lambda_i+\frac{1}{2}\sum_{i=1}^m\sum_{j=1}^m\lambda_i\lambda_jy_iy_jK(x_i,x_j)minj=1mλi+21i=1mj=1mλiλjyiyjK(xi,xj)

那么它是怎么产生将数据升到高维的效果呢?

因为我们此时在低纬度不可分,之前说到数据一定可以找到一个高纬度空间将其变成可分数据,如果数据线性不可分,那么支持向量机之前的数学推导以及逻辑论证都是不成立的,但是该数据在高纬度线性可分,那么该算法在高纬度空间依然是成立的,但是此时我们目标函数中的 x i , x j x_i,x_jxi,xj 就不是原始的数据了,而是对应其线性可分那个空间中的数据,也就是此时式子中关于数据x的都是高维空间中的数据。

此时看原始目标函数中存在两个样本的内积,刚才说它是高维空间向量的内积,那么正好利用之前讲到的核函数,核函数就是高维空间的两个内积表达,所以我们只需要知道我们用的核函数是什么,然后将低维空间的 x i , x j x_i,x_jxi,xj 带入自然就可以获得对应高维空间中 x i , x j x_i,x_jxi,xj 的内积结果了。


目录
相关文章
|
6月前
|
机器学习/深度学习 人工智能 算法
探索机器学习中的支持向量机(SVM)算法
【5月更文挑战第27天】在数据科学和人工智能的领域中,支持向量机(SVM)是一种强大的监督学习模型,它基于统计学习理论中的VC维理论和结构风险最小化原理。本文将详细介绍SVM的工作原理、核心概念以及如何在实际问题中应用该算法进行分类和回归分析。我们还将讨论SVM面临的挑战以及如何通过调整参数和核技巧来优化模型性能。
|
3月前
|
机器学习/深度学习 算法
【机器学习】SVM面试题:简单介绍一下SVM?支持向量机SVM、逻辑回归LR、决策树DT的直观对比和理论对比,该如何选择?SVM为什么采用间隔最大化?为什么要将求解SVM的原始问题转换为其对偶问题?
支持向量机(SVM)的介绍,包括其基本概念、与逻辑回归(LR)和决策树(DT)的直观和理论对比,如何选择这些算法,SVM为何采用间隔最大化,求解SVM时为何转换为对偶问题,核函数的引入原因,以及SVM对缺失数据的敏感性。
74 3
|
3月前
|
机器学习/深度学习 运维 算法
深入探索机器学习中的支持向量机(SVM)算法:原理、应用与Python代码示例全面解析
【8月更文挑战第6天】在机器学习领域,支持向量机(SVM)犹如璀璨明珠。它是一种强大的监督学习算法,在分类、回归及异常检测中表现出色。SVM通过在高维空间寻找最大间隔超平面来分隔不同类别的数据,提升模型泛化能力。为处理非线性问题,引入了核函数将数据映射到高维空间。SVM在文本分类、图像识别等多个领域有广泛应用,展现出高度灵活性和适应性。
160 2
|
3月前
|
机器学习/深度学习 算法
【机器学习】支持向量机SVM、逻辑回归LR、决策树DT的直观对比和理论对比,该如何选择(面试回答)?
文章对支持向量机(SVM)、逻辑回归(LR)和决策树(DT)进行了直观和理论上的对比,并提供了在选择这些算法时的考虑因素,包括模型复杂度、损失函数、数据量需求、对缺失值的敏感度等。
62 1
|
6月前
|
机器学习/深度学习 数据采集 算法
深入理解并应用机器学习算法:支持向量机(SVM)
【5月更文挑战第13天】支持向量机(SVM)是监督学习中的强分类算法,用于文本分类、图像识别等领域。它寻找超平面最大化间隔,支持向量是离超平面最近的样本点。SVM通过核函数处理非线性数据,软间隔和正则化避免过拟合。应用步骤包括数据预处理、选择核函数、训练模型、评估性能及应用预测。优点是高效、鲁棒和泛化能力强,但对参数敏感、不适合大规模数据集且对缺失数据敏感。理解SVM原理有助于优化实际问题的解决方案。
|
5月前
|
机器学习/深度学习 算法 Windows
【阿旭机器学习实战】【34】使用SVM检测蘑菇是否有毒--支持向量机
【阿旭机器学习实战】【34】使用SVM检测蘑菇是否有毒--支持向量机
|
6月前
|
机器学习/深度学习 人工智能 算法
探索机器学习中的支持向量机(SVM)算法
【5月更文挑战第6天】在数据科学和人工智能的广阔天地中,支持向量机(SVM)以其强大的分类能力与理论深度成为机器学习领域中的一个闪亮的星。本文将深入探讨SVM的核心原理、关键特性以及实际应用案例,为读者提供一个清晰的视角来理解这一高级算法,并展示如何利用SVM解决实际问题。
193 7
|
6月前
|
机器学习/深度学习 算法
探索机器学习中的支持向量机(SVM)算法
【5月更文挑战第31天】 在数据科学的广阔天地中,支持向量机(SVM)以其卓越的性能和强大的理论基础脱颖而出。本文将深入剖析SVM的工作原理、核心概念以及实际应用,旨在为读者提供一个清晰的理解视角,并通过实例演示其在分类问题中的有效性。我们将从线性可分的情况出发,逐步过渡到非线性问题的处理方法,并探讨如何通过调整参数来优化模型的性能。
294 0
|
6月前
|
机器学习/深度学习 人工智能 算法
探索机器学习中的支持向量机(SVM)算法
【5月更文挑战第28天】 在数据科学与人工智能的领域中,支持向量机(Support Vector Machines, SVM)是一种强大的监督学习模型,它基于统计学习理论中的VC维理论和结构风险最小化原则。本文将深入探讨SVM的数学原理、关键概念以及实际应用案例。我们将透过SVM的镜头,理解其在分类和回归问题中的应用,并讨论如何通过核技巧克服维度灾难,提高模型的泛化能力。文章还将展示使用SVM解决实际问题的步骤和注意事项,为读者提供一个清晰的SVM应用指南。
|
6月前
|
机器学习/深度学习 人工智能 算法
深入解析机器学习中的支持向量机(SVM)
深入解析机器学习中的支持向量机(SVM)
376 0

热门文章

最新文章

下一篇
无影云桌面