【机器学习】Fisher线性判别与线性感知机

来源 | AI小白入门
作者 | 文杰
编辑 | yuquanle
原文链接

Fisher线性判别与线性感知机

​ Fisher线性判别和线性感知机都是针对分类任务,尤其是二分类,二者的共同之处在于都是线性分类器,不同之处在于构建分类器的思想,但是二者有异曲同工之妙。同时二者又可以与logistic回归进行对比,当然logistic回归的理论基础是概率。

1. Fisher线性判别

​ Fisher线性判别是一种线性分类思想,其核心是找一个投影方向将d维数据投影(降维)到一维,使得类内紧致,类间分离。在确定投影方向之后,决策分类器还并未完成,我们还需要分界点来划分不同的类。一般而言很少用Fisher线性判别作为分类模型,更多是借鉴Fisher线性判别的思想来指导降维。

以两类问题来分析:

【机器学习】Fisher线性判别与线性感知机

由类内紧致,类间分离准则确定投影方向,我们可以定义如下类内距离和类间距离
m~i=1niyjXii=1,2yj=1niyjXii=1,2wTxj=wTmi \tilde{m}_{i}=\frac{1}{n_{i}}\sum_{y_{j}\in X_{i}}^{i=1,2}y_{j}=\frac{1}{n_{i}}\sum_{y_{j}\in X_{i}}^{i=1,2}w^{T}x_{j}=w^{T}m_{i}
其中m~i\tilde{m}_{i}表示降维后的类中心,mim_{i}表示原始空间的类中心。

类内距离:
S~w=yjXii=1,2(yjm~i)2=xjXii=1,2(wTxj1nixjXiiwTxj)2=wTxjXii=1,2(xj1nixjXiixj)2w=wTSww \tilde{S}_{w}=\sum_{y_{j}\in X_{i}}^{i=1,2}(y_{j}-\tilde{m}_{i})^{2}\\ =\sum_{x_{j}\in X_{i}}^{i=1,2}\left (w^{T}x_{j}-\frac{1}{n_{i}}\sum_{x_{j}\in X_{i}}^{i}w^{T}x_{j} \right )^{2}\\ =w^{T}\sum_{x_{j}\in X_{i}}^{i=1,2}\left (x_{j}-\frac{1}{n_{i}}\sum_{x_{j}\in X_{i}}^{i}x_{j} \right )^{2}w\\ =w_{T}S_{w}w
其中Sw=xjXii=1,2(xjmi)2S_{w}=\sum_{x_{j}\in X_{i}}^{i=1,2}\left (x_{j}-m_{i} \right )^{2}表示每类样本在原始空间的一个类内距离。

类间距离:
S~b=(m~1m~2)2=(1n1xjX1wTxj1n2xjX2wTxj)2=wT(1n1xjX1xj1n2xjX2xj)2w=wTSbw \tilde{S}_{b}=(\tilde{m}_{1}-\tilde{m}_{2})^{2}\\ =\left (\frac{1}{n_{1}}\sum_{x_{j}\in X_{1}}w^{T}x_{j}-\frac{1}{n_{2}}\sum_{x_{j}\in X_{2}}w^{T}x_{j} \right )^{2}\\ =w^{T}\left (\frac{1}{n_{1}}\sum_{x_{j}\in X_{1}}x_{j}-\frac{1}{n_{2}}\sum_{x_{j}\in X_{2}}x_{j} \right )^{2}w\\ =w^{T}S_{b}w
其中Sb=xjXii=1,2(m1m2)2S_{b}=\sum_{x_{j}\in X_{i}}^{i=1,2}\left (m_{1}-m_{2} \right )^{2}表示每类样本在原始空间的一个类间距离。

所以为了使类内紧致,类间分离,可以最大化如下目标函数:
maxJ(w)=S~bS~w=wTSbwwTSww \max J(w)=\frac{\tilde{S}_{b}}{\tilde{S}_{w}}=\frac{w^{T}{S}_{b}w}{w^{T}{S}_{w}w}
等价于max(wTSbw)s.t.wTSww=c\max(w^{T}{S}_{b}w) s.t. w^{T}{S}_{w}w=c,由拉格朗日乘子法有
L(w,λ)=wTSbwλ(wTSwwc) L(w,\lambda)=w^{T}{S}_{b}w-\lambda(w^{T}{S}_{w}w-c)
可以看出目标函数是关于w的二次凸规划,极值在导数为0处取到,对上式求导有SbwλSww=0S_{b}w^{*}-\lambda S_{w}w^{*}=0,如果SwS_{w}可逆的话,即
(SbλSw)w=0Sw1Sbw=λw (S_{b}-\lambda S_{w})w=0\\ S_{w}^{-1}S_{b}w^{*}=\lambda w^{*}
也就是说ww(SbλSw)(S_{b}-\lambda S_{w})的特征向量。将Sb=(m1m2)2S_{b}=(m_{1}-m_{2})^{2}带入有
Sw1(m1m2)(m1m2T)w=λw S_{w}^{-1}(m_{1}-m_{2})(m_{1}-m_{2}^{T})w^{*}=\lambda w^{*}
(m1m2T)w(m_{1}-m_{2}^{T})w^{*}是一个标量,所以w=Sw1(m1m2)w^{*}=S_{w}^{-1}(m_{1}-m_{2}).

​ 虽然我们确定了投影方向,但是真正的决策函数还是未能确定,一般最简单的做法是直接在一维上找一个阈值直接将两类分开,但是如何确定阈值还需要定义分类的损失函数(类一致性准则)。

比如我们直接采用0-1损失,那么决策界则尽可能多的正确分类样本,另外如果我们采用Logistic回归的对数损失,那么我们的决策边界就不一样。从这个角度来看,线性判别分析和Logistic回归都是将数据映射到一维来进行分类,有没有不用降维直接进行分类的方法,下面就是感知机的分类思想。

2. 线性感知机

​ 线性感知机同样是基于线性分类思想,其核心是直接在高维空间找到一个超平面将两类样本尽可能的分开。即,定义点到超平面的距离,在保证线性可分的基础上最小化点到超平面的距离(等价于使得最难分的样本离超平面距离尽可能的大),但由于没有线性可分前提,所以感知机的目标函数是最小化错分样本到超平面的距离之和(线性损失),而分类正确的样本无损失。

【机器学习】Fisher线性判别与线性感知机

首先定义线性超平面:
wx+b=0 w\cdot x+b=0
点到超平面的距离为1w2(wxi+b)\frac{1}{||w||^{2}}(w\cdot x_{i}+b),即错分的样本到超平面的距离一定为负:
1w2yi(wxi+b)>0 -\frac{1}{||w||^{2}}y_{i}(w\cdot x_{i}+b)>0
感知机只考虑分类错误的样本,目标函数为最小化错分样本到超平面的距离之和:
minxiM1w2yi(wxi+b) \min-\sum_{x_{i}\in M}\frac{1}{||w||^{2}}y_{i}(w\cdot x_{i}+b)
其中M为错分样本集合。因为感知机优化的目标是针对错误样本集来不断的调整参数,所以在使用梯度下降算法的时候梯度的计算只依赖于错分的样本。

找到超平面之后我们就可以基于超平面定义决策函数为
f(x)=sign(wx+b)sign(x)={+1x01,x<0 f(x)=sign(w\cdot x+b)\\ sign(x)=\left\{\begin{matrix} +1, x \geq 0\\ -1, x<0 \end{matrix}\right.
再回过头看损失函数,我们发现感知机的损失与Logistic回归的对数损失不一样,感知机采用的损失直接是错误样本的f(x)f(x)值,而Logistic回归的损失是所有样本的对数损失(当然Logistic回归的f(x)=sigmoid(x)f(x)=sigmoid(x))。

感知机的对偶形式

感知机的对偶形式是logistic回归一致,同SVM对偶形式推导一致。

可以说神经网络和SVM都是线性感知机的一种延伸,神经网络是引入非线性**函数,而SVM则是使用核函数,SVM同时提出了软间隔分类。虽然说神经网络是从感知机过来的,但是神经网络引入非线性**函数后,不仅失去了解释性,也使其与感知机渐行渐远,笔者倒是觉得SVM更像感知机,不仅提升了精度,同时保留了很好的解释性。

欢迎关注【AI小白入门】,这里分享Python、机器学习、深度学习、自然语言处理、人工智能等技术,关注前沿技术,求职经验等,陪有梦想的你一起成长。

【机器学习】Fisher线性判别与线性感知机