感知机分类器 超平面距离损失函数 理论推导 证明收敛性

感知机分类器 理论推导

感知机其实也是一个线性分类模型,但是同逻辑回归不同,主要是损失函数建立的思路同时不从概率角度出发。

(一)假设函数

数据集(样本):
X ⊑ R N f ( x ; ω , b ) = ω 1 x 1 + ω 2 x 2 + . . . + ω N x N + b X\sqsubseteq\mathbb{R}^N\\f(\boldsymbol x;\omega,b)=\omega_1x_1+\omega_2x_2+...+\omega_Nx_N+b XRNf(x;ω,b)=ω1x1+ω2x2+...+ωNxN+b增广形式: f ( x ; ω ) = ω 0 x 0 + ω 1 x 1 + ω 2 x 2 + . . . + ω N x N        ( x 0 = 1 ) f(\boldsymbol x;\omega)=\omega_0x_0+\omega_1x_1+\omega_2x_2+...+\omega_Nx_N\;\;\;(x_0=1) f(x;ω)=ω0x0+ω1x1+ω2x2+...+ωNxN(x0=1)
解释一下,f这个函数是典型线性模型函数。其中 ω = [ ω 1 , ω 2 , . . . ω N ] T \omega={\lbrack\omega_{1,}\omega_2,...\omega_N\rbrack}^T ω=[ω1,ω2,...ωN]T是N维的权重向量,b是偏置。当解决线性回归问题时,我们直接用 f ( x ; ω ) f(x;\omega) f(x;ω)即可预测输出目标。
但是在感知机中,我们使用符号函数 s i g n ( ) sign() sign()作为激活函数。对于二分类问题:
y ∈ { − 1 , 1 } y\in\{-1,1\} y{11}
则我们的假设函数函数定义如下:
h ( x ; ω ) = s i g n ( ω T x + b ) = { + 1              i f    ω T x + b > 0 − 1              i f    ω T x + b < 0 h(x;\omega)=sign(\omega^Tx+b)=\left\{\begin{array}{l}+1\;\;\;\;\;\;if\;\omega^Tx+b>0\\-1\;\;\;\;\;\;if\;\omega^Tx+b<0\end{array}\right. h(x;ω)=sign(ωTx+b)={+1ifωTx+b>01ifωTx+b<0

线性可分的概念

对于两类线性可分模型中有:
R n \mathbb{R}^n Rn中任意一个样本都满足
y ( i ) × ( ω T x ( i ) + b ) > 0 y^{(i)}\times(\omega^T\boldsymbol x^{\boldsymbol(\mathbf i\boldsymbol)}+b)>0 y(i)×(ωTx(i)+b)>0
即说明是线性可分的 。其实蛮好理解的,h(x;w)就是(wTx+b)是我们的预测函数,如果它大于0,我们输出y=1,表示一种分类。如果小于0,说明是另一种分类。那么一个在数据集中的样本 x ( i ) x^{(i)} x(i)对于的 y ( i ) y^{(i)} y(i)要么是1要么是-1,则要是与假设函数乘积大于0,说明是同号的,即是一个分类。
则感知机的最终目标就是要找到一个n维参数 ω \omega ω,使得对于样本中每一个样本都有:
y ( i ) × ( ω T x ( i ) + b ) > 0 y^{(i)}\times(\omega^T\boldsymbol x^{\boldsymbol(\mathbf i\boldsymbol)}+b)>0 y(i)×(ωTx(i)+b)>0

(二)损失函数

策略一:
现在我们以出错的角度出发,去建立一个损失函数。
说白了就是用分类分错的个数作为损失函数。损失函数的目的就是损失函数越小对于我们的假设函数模型越好。那对于一个线性分类模型,是不是分得越准越好。那么我们以分类分错的个数作为损失函数从目的上来说是没毛病的。
l o s s ( x ; ω ) = ∑ i = 1 N I { y ( i ) ( ω T x + b ) < 0 } loss(\boldsymbol x;\omega)=\sum_{i=1}^NI\{y^{(i)}(\omega^T\boldsymbol x+b)<0\} loss(x;ω)=i=1NI{y(i)(ωTx+b)<0}
就是说,我们把样本 x ( i ) x^{(i)} x(i)带入假设函数中,算出的值要是和原来数据集对应的分类 y ( i ) y^{(i)} y(i)异号,则说明不是同类。
I(·)是指示函数,如果括号中的表达式成立,则函数值为1,反之为0。配合求和符号能很方便的表示个数。

我们期望的是loss函数越小越好,最好是能求出它的极值情况。但是请注意,按照常规操作应该是要求导,但是这个函数啊,它不能求导。因为它是离散的,不是连续函数这咋导。所以这个方法不行。

策略二:

引入超平面距离:

在n维空间中,超平面表示n-1维的一个空间模型。比如在二维坐标系(平面)中,超平面就是一维的一根直线。在3维空间中,超平面就可以用一个曲面方程来表示。超平面可以有效分类高一个维度的模型。

超平面在分类问题中,也称为决策边界。那在现在感知机模型中,超平面是什么呢。

其实就是两个类别之间的那个分界线。现在回归一下假设函数: h ( x ; ω ) = s i g n ( ω T x + b ) = { + 1              i f    ω T x + b > 0 − 1              i f    ω T x + b < 0 h(x;\omega)=sign(\omega^Tx+b)=\left\{\begin{array}{l}+1\;\;\;\;\;\;if\;\omega^Tx+b>0\\-1\;\;\;\;\;\;if\;\omega^Tx+b<0\end{array}\right. h(x;ω)=sign(ωTx+b)={+1ifωTx+b>01ifωTx+b<0
那,分类之间的边界不就是 ω T x + b = 0 \omega^Tx+b=0 ωTx+b=0这条直线么。但是在高维就不是直线了,可能是一个二维平面等等。

现在回归主题,我们怎么选择一个更优质,连续可导的函数。这里可以用距离!!如果我分类分错了,那么这个点到决策边界的距离(超平面的距离)我先假设为 d d d 那么是不是 d d d 越小越好呢。就是说我分错了,但是越离我的分类界限越近越好。
举个例子,我现在要从牛奶和咖啡中分类一杯咖啡,但是现在拿到了一杯特浓高钙牛奶。这个损失就很大,也就是说它距离我分类平面的距离越远 d d d越大,然后拿到了一杯淡淡的牛奶,现在相比之前的特浓牛奶,我的 d d d 变小了。之后又拿到了一杯含有咖啡因的牛奶, d d d 更小了。然后拿到了一杯混有一点点咖啡的牛奶,那这个样本非常接近决策边界了,所以 d d d 无限接近0。

针对于每个分错类的点:
y ( i ) × ( ω T x ( i ) + b ) < 0 y^{(i)}\times(\omega^T\boldsymbol x^{\boldsymbol(\mathbf i\boldsymbol)}+b)<0 y(i)×(ωTx(i)+b)<0
它到决策边界(超平面)的距离 d d d为:
d = ∣ ω T x + b ∣ ∥ ω ∥ d=\frac{\vert\omega^T\boldsymbol x+b\vert}{\parallel\omega\parallel} d=ωωTx+b
联合分错点的不等式,有:
d = − ( ω T x + b ) y ( i ) ∥ ω ∥ d=-\frac{(\omega^T\boldsymbol x+b)y^{(i)}}{\parallel\omega\parallel} d=ω(ωTx+b)y(i)
能去掉绝对值乘一个-y,是因为y不是取1就是-1,而且它与假设函数的乘积是一个负值,在补上一个负号就可以了。

那现在我们求的是一个分错点的,总的来看,这个模型要好。肯定是对于每一个出错的样本点,它距离决策边界越近越好,那就是 d 1 d_1 d1 d 2 d_2 d2 d N d_N dN的总和越小越好。则有:
d s u m = − 1 ∥ ω ∥ ∑ i = 1 n ( ω T x ( i ) + b ) y ( i ) d_{sum}=-\frac1{\parallel\omega\parallel}\sum_{i=1}^n(\omega^T\boldsymbol x^{\boldsymbol(\mathbf i\boldsymbol)}+b)y^{(i)} dsum=ω1i=1n(ωTx(i)+b)y(i)
注意,这里的n是出错的样本个数。
这个函数是一个连续的可导。它可以作为我们的损失函数:
l o s s ( x ; ω , b ) = − ∑ i = 1 n ( ω T x ( i ) + b ) y ( i ) loss(x;\omega,b)=-\sum_{i=1}^n(\omega^T\boldsymbol x^{\boldsymbol(\mathbf i\boldsymbol)}+b)y^{(i)} loss(x;ω,b)=i=1n(ωTx(i)+b)y(i)
分别对 ω \omega ω b b b求偏微分:
(如果是增广形式,默认 x 0 x_0 x0=1, ω 0 \omega_0 ω0=b 参数b可以省略)
{ ∂ l o s s ( x ; ω , b ) ∂ ω = − ∑ x ( i ) i = 1 n y ( i ) ∂ l o s s ( x ; ω , b ) ∂ b = − ∑ i = 1 n y ( i ) \left\{\begin{array}{l}\frac{\partial loss(x;\omega,b)}{\partial\omega}=-\overset n{\underset{i=1}{\sum\boldsymbol x^{\boldsymbol(\mathbf i\boldsymbol)}}}y^{(i)}\\\\\\\frac{\partial loss(x;\omega,b)}{\partial b}=-\sum_{i=1}^ny^{(i)}\end{array}\right. ωloss(x;ω,b)=i=1x(i)ny(i)bloss(x;ω,b)=i=1ny(i)

(三)优化算法

1.梯度下降法 GD

梯度下降法详细推导

ω t + 1 = ω t − α ∂ l o s s ( x ; ω , b ) ∂ ω ( α 是 学 习 率 ) \omega_{t+1}=\omega_t-\alpha\frac{\partial loss(x;\omega,b)}{\partial\omega} (\alpha是学习率) ωt+1=ωtαωloss(x;ω,b)(α)
ω t + 1 = ω t + α ∑ x ( i ) i = 1 n y ( i ) \omega_{t+1}=\omega_t+\alpha\overset n{\underset{i=1}{\sum\boldsymbol x^{\boldsymbol(\mathbf i\boldsymbol)}}}y^{(i)} ωt+1=ωt+αi=1x(i)ny(i)
同理
b t + 1 = b t + α ∑ i = 1 n y ( i ) b_{t+1}=b_t+\alpha\sum_{i=1}^ny^{(i)} bt+1=bt+αi=1ny(i)
2.随机梯度下降法 SGD
ω t + 1 = ω t + α x ( i ) y ( i ) \omega_{t+1}=\omega_t+\alpha x^{\boldsymbol(\mathbf i\boldsymbol)}y^{(i)} ωt+1=ωt+αx(i)y(i)
b t + 1 = b t + α y ( i ) b_{t+1}=b_t+\alpha y^{(i)} bt+1=bt+αy(i)
只用当前点来更新

3.牛顿法
ω t + 1 = ω t − α H − 1 ( ω ) ∂ l o s s ( x ; ω , b ) ∂ ω \omega_{t+1}=\omega_t-\alpha H^{-1}(\omega)\frac{\partial loss(x;\omega,b)}{\partial\omega} ωt+1=ωtαH1(ω)ωloss(x;ω,b)
H − 1 H^{-1} H1是Hessian矩阵的逆

3.拟牛顿法
后续再更新拟牛顿ba
− -

(四)感知机收敛性证明

1.由于数据集线性可分有:
y ( i ) ω T x > 0 y^{(i)}\omega^Tx>0 y(i)ωTx>0
∃ γ > 0      s . t .    γ = m i n { y ( i ) ω T x } \exists\gamma>0\;\;s.t.\;\gamma=min\{y^{(i)}\omega^T\boldsymbol x\} γ>0s.t.γ=min{y(i)ωTx}
γ \gamma γ是一个很小的正数。设 ω ∧ \overset\wedge\omega ω是最终最优的参数。是一个能很准确分类的参数。
y ( i ) ω ∧ T x ( i ) ≥ γ > 0 y^{(i)}\overset\wedge\omega^Tx^{(i)}\geq\gamma>0 y(i)ωTx(i)γ>0
2.第k次误分类时:
ω k = ω k − 1 + α y ( i ) x ( i ) \omega_{k}=\omega_{k-1}+\alpha y^{(i)}x^{(i)} ωk=ωk1+αy(i)x(i)
ω k ⋅ ω ∧ = ω k − 1 ⋅ ω ∧ + α y ( i ) x ( i ) ⋅ ω ∧ \omega_{k}\cdot\overset\wedge\omega=\omega_{k-1}\cdot\overset\wedge\omega+\alpha y^{(i)}x^{(i)}\cdot\overset\wedge\omega ωkω=ωk1ω+αy(i)x(i)ω
ω k ⋅ ω ∧ ≥ ω k − 1 ⋅ ω ∧ + α γ \omega_{k}\cdot\overset\wedge\omega\geq\omega_{k-1}\cdot\overset\wedge\omega+\alpha\gamma ωkωωk1ω+αγ
ω k ⋅ ω ∧ ≥ ω k − 2 ⋅ ω ∧ + 2 α γ \omega_{k}\cdot\overset\wedge\omega\geq\omega_{k-2}\cdot\overset\wedge\omega+2\alpha\gamma ωkωωk2ω+2αγ
. . . . .... ....
ω k ⋅ ω ∧ ≥ k α γ \omega_{k}\cdot\overset\wedge\omega\geq k\alpha\gamma ωkωkαγ
3.令R为最大的样本值

R = m a x 1 ≤ i ≤ N ∥ x ( i ) ∥ R=\underset{1\leq i\leq N}{max}\parallel x^{(i)}\parallel R=1iNmaxx(i)
由SGD:
∥ ω k ∥ 2 = ∥ ω k − 1 ∥ 2 + 2 α ω T x ( i ) y ( i ) + α 2 ( x ( i ) ) 2      \parallel\omega_k\parallel^2=\parallel\omega_{k-1}\parallel^2+2\alpha\omega^Tx^{(i)}y^{(i)}+\alpha^2{(x^{(i)})}^2\;\; ωk2=ωk12+2αωTx(i)y(i)+α2(x(i))2
2 α ω T x ( i ) y ( i ) 2\alpha\omega^Tx^{(i)}y^{(i)} 2αωTx(i)y(i)这一项是小于0的,因为是误分点,详情看之前的推导。故有:
∥ ω k ∥ 2 ≤ ∥ ω k − 1 ∥ 2 + α 2 ( x ( i ) ) 2      \parallel\omega_k\parallel^2\leq\parallel\omega_{k-1}\parallel^2+\alpha^2{(x^{(i)})}^2\;\; ωk2ωk12+α2(x(i))2
现在把刚刚 R R R的定义拿过来用
∥ ω k ∥ 2 ≤ ∥ ω k − 1 ∥ 2 + α 2 R 2 \parallel\omega_k\parallel^2\leq\parallel\omega_{k-1}\parallel^2+\alpha^2R^2 ωk2ωk12+α2R2
∥ ω k ∥ 2 ≤ ∥ ω k − 2 ∥ 2 + 2 α 2 R 2 \parallel\omega_k\parallel^2\leq\parallel\omega_{k-2}\parallel^2+2\alpha^2R^2 ωk2ωk22+2α2R2
. . . . .... ....
∥ ω k ∥ 2 ≤ k α 2 R 2 \parallel\omega_k\parallel^2\leq k\alpha^2R^2 ωk2kα2R2

综上所述:

由上面三个结果可以得到:
由2可知:
k α γ ≤ ω k ω ∧ k\alpha\gamma\leq\omega_k\overset\wedge\omega kαγωkω
这里有个很难理解的地方,我们假设 ω ∧ = 1 \overset\wedge\omega=1 ω=1。为什么可以这样操作呢,我的理解是, ω ∧ \overset\wedge\omega ω是最终优化的权重参数,它是会完全正确把所有样本分开的。 ω ∧ \overset\wedge\omega ω作为平面的法向量,是可以任意指定模长的,所以在证明之初,就可以假设它的模长=1方便计算。

故得到:
k α γ ≤ ω k k\alpha\gamma\leq\omega_k kαγωk
由3可得:
k α γ ≤ k α R k\alpha\gamma\leq\sqrt k\alpha R kαγk αR
k ≤ R 2 γ 2 k\leq\frac{R^2}{\gamma^2} kγ2R2
这就说明了,k不是发散的,它总会小于某个值。我们的感知机算法在迭代k次后会收敛。收敛的次数和 R = m a x 1 ≤ i ≤ N ∥ x ( i ) ∥ R=\underset{1\leq i\leq N}{max}\parallel x^{(i)}\parallel R=1iNmaxx(i) 有关,样本x最大值有关,还和一个参数 γ \gamma γ有关。
反正总之我们是证明了它的收敛性了。

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值