直接跳到支持向量机的动机是,遇到了核函数,加上这一节的很多难点在多类课中学了又学,却总是学不明白,所以准备系统的了解支持向量机的大概,并重点学习我的目标知识:
- 核函数的意义、作用,哪些场景会应用到核函数
- 核密度估计、高斯核函数与核函数的关系
对支持向量的理解
maximal margin classifier(寻找类别边界点,在边界点中间确定一点,作为阈值,使得边界点到阈值之间的距离,称为margin,最大,则应该选择两个边界点的中间值),这种方法简单,但对异常值过于敏感(下图),所以出现了新的解决方法,
方法可以是重新选择边界点,边界点之间的点就称为支持向量,但是这两种方法还是有局限,就是当不同类别的数据是交叉分布的(下图),那么解决方法是对这种数据进行升维(获得降维打击hhh)(下下图),就能在他们之间找到一条直线(原本是一维,需要找点,但点不足以分类两个类别,所以思路就是找线,更高维度的数据具有更大的灵活性,来分开不同的类别)将一维数据升到二维空间的方法,称为核函数
内积的直觉理解
插播一下对内积运算的理解,物理意义是求一个向量映射x到另一个向量y上的长度与y长度的乘积,由于这个运算既衡量了两个向量之间的角度差异(投影这个操作达到的),又衡量了两个向量的长度,所以内积运算经常被用作衡量两个变量之间的距离
如何求解最大间隔法中的超平面
刚刚已经说过,使用maximal margin classifier进行分类,关键是找到能满足最大margin的超平面,我们可以人为规定边界(wTx+b=1w^Tx+b=1wTx+b=1及wTx+b=−1w^Tx+b=-1wTx+b=−1,由于是针对分类问题,所以标签y只有1和-1两种情况),然后计算边界到超平面的方式,就是计算点到平面的距离,公式是:r=∣wTx+b∣∣∣w∣∣r=\frac{|w^Tx+b|}{||w||}r=∣∣w∣∣∣wTx+b∣,就是使两条边界之间的距离最大,整理后得到如下公式:
maxmaxmax 2∣w∣\frac{2}{|w|}∣w∣2
s.t.s.t.s.t. yi(wTx+b)≥1,i=1,2,...,my_i(w^Tx+b)\geq1, i=1,2, ...,myi(wTx+b)≥1,i=1,2,...,m
上面这个限制条件是为了使得求得的参数能保证正确分类,然后将这个式子进行变形,得到下面这个公式,称为支持向量机的基本型:
minminmin 12∣∣w∣∣2\frac{1}{2}||w||^221∣∣w∣∣2
s.t.s.t.s.t. yi(wTx+b)≥1,i=1,2,...,my_i(w^Tx+b)\geq1, i=1,2, ...,myi(wTx+b)≥1,i=1,2,...,m
接下来的一段是在讲拉格朗日乘子法以及如何使用拉格朗日乘子法解决对偶问题,记得在最优化理论这门课中好像学习过,计算过(不过现在忘了),这里就简单跟着up学一下,就不做记录了,既然学习重点是核函数,就先跳过这一部分,这一部分的结论是,通过拉格朗日乘子法的操作,可以将上面的公式转化为下面这个公式求解:
maxmaxmax ∑i=1mαi−12∑i=1m∑j=1mαiαjyiyjxiTxj\sum_{i=1}^m\alpha_i-\frac{1}{2}\sum_{i=1}^m \sum_{j=1}^m \alpha_i \alpha_j y_i y_j x_i^T x_j∑i=1mαi−21∑i=1m∑j=1mαiαjyiyjxiTxj
s.t.s.t.s.t. ∑i=1mαiyi=0\sum_{i=1}^m \alpha_i y_i = 0∑i=1mαiyi=0,
αi≥0,i=1,2,...,m\alpha_i \geq 0, i=1, 2, ..., mαi≥0,i=1,2,...,m
其中,xix_ixi和xjx_jxj表示样本,样本的维度可以任意,也就是说每两个样本之间都要进行内积运算
核函数
我们知道,支持向量机可以通过某种线性变换函数φ(x)\varphi(x)φ(x),将当前空间转换到高维空间,然后再求解高维空间中的分界面;但是这个φ(x)\varphi(x)φ(x)可能不太容易求得,但是我们知道高维空间中的求解过程只用到了内积运算(拉格朗日乘子法对基本型公式变形得到的),我们就可以跳过求φ(x)\varphi(x)φ(x)的步骤,直接求φ(x)\varphi(x)φ(x)+内积运算的结果,儿这两个连续操作,可以等价为一个低维空间中的函数K(xi,xj)K(x_i, x_j)K(xi,xj),这个函数的作用就是φ(xi)⋅φ(xj)\varphi(x_i)·\varphi(x_j)φ(xi)⋅φ(xj),这种函数被称为核函数
高斯核函数
在这些众多的核函数中,有一种常用的函数是高斯核函数,这个函数衡量的是两个变量在无穷维度之间的relationship(姑且理解为距离)(也就是进行了低维转化为高维+内积运算两个操作,因为内积经常被用作衡量两者之间的距离,这点可以从内积的含义上理解),他的形式类似于正态分布(也叫高斯分布),这里po出两个公式进行简单的对比:
正态分布公式
f(x)=12πσexp(−(x−μ)22σ2)f(x)=\frac{1}{\sqrt{2\pi}\sigma}exp(-\frac{(x-\mu)^2}{2\sigma^2})f(x)=2πσ1exp(−2σ2(x−μ)2),其中μ\muμ为均值,σ\sigmaσ为方差
高斯核函数公式
K(xi,xj)=exp(−(xi−xj)22σ2)K(x_i, x_j)=exp(-\frac{(x_i-x_j)^2}{2\sigma^2})K(xi,xj)=exp(−2σ2(xi−xj)2)
其中σ\sigmaσ为高斯核的带宽
核密度估计和高斯核密度估计
核密度估计归根结底是一种密度估计方法,也就是通过我们目前已经获得的样本估计出整体样本服从的分布。在密度估计方法中,包括参数估计和非参数估计两类方法,前者需要假定样本服从的分布,然后利用样本计算分布中的未知参数;后者则无需“服从何种分布”这种先验知识,直接估算,而非参数估计方法中有一种核密度估计方法,根据使用核的种类,又可以分为不平滑内核核平滑内核(如高斯核密度估计),在高斯核密度估计中,有一个比较重要的参数是带宽,也就是高斯核函数公式中的σ\sigmaσ
解决所有目标,现在最后的问题是,如何合成使用核密度估计得到的两个概率密度分布?暂定为直接相乘