2-感知机学习算法

感知机(perceptron)是一个线性二分类模型,其目的是寻找一个超平面将正负示例划分开,属于判别模型,也是神经网络与SVM的基础。

感知机模型

假设输入空间为 χRn χ ⊆ R n ,输出空间为 Υ{+1,1} Υ ⊆ { + 1 , − 1 } 。输入 xχ x ∈ χ 表示实例的特征向量,输出 yΥ y ∈ Υ 表示实例的类别。则下面的函数

f(x)=sign(wx+b) f ( x ) = s i g n ( w ⋅ x + b )

称为感知机,其中 sign s i g n 为符号函数, w w 为权值向量(weight vector),b为偏置(bias)。
wx+b=0 w ⋅ x + b = 0 ,则所有的 x x 形成一个空间χ上的超平面,将空间 χ χ 分为两个部分,对于满足 wx+b0 w ⋅ x + b ≥ 0 的实例感知机输出 +1 + 1 ,反之则输出 1 − 1

感知机学习策略

考察空间 χ χ 中任意一点 x0 x 0 ,其到超平面 wx+b=0 w ⋅ x + b = 0 的距离为1

1w|wx0+b| 1 ‖ w ‖ | w ⋅ x 0 + b |

由于 w ‖ w ‖ 为常数,因此取损失函数为
L(w,b)=xiMyi(wxi+b) L ( w , b ) = − ∑ x i ∈ M y i ( w ⋅ x i + b )

其中 M M 为误分类点集合

学习算法

由于

wL(w,b)=xiMyixibL(w,b)=xiMyi

因此从误分类点中任取一点 (xi,yi) ( x i , y i ) 得到感知机SGD的迭代公式
wbw+ηyixib+ηyi w ← w + η y i x i b ← b + η y i

算法收敛性

给定线性可分数据集 T T ,则

  1. 存在满足条件w^opt=1的超平面 w^optx^=woptx+bopt=0 w ^ o p t ⋅ x ^ = w o p t ⋅ x + b o p t = 0 将数据集完全分开;且存在 γ>0 γ > 0 ,对所有 i=1,2,,N i = 1 , 2 , ⋯ , N

    yi(w^optx^i)=yi(woptxi+bopt)γ y i ( w ^ o p t ⋅ x ^ i ) = y i ( w o p t ⋅ x i + b o p t ) ≥ γ
    • R=max1iNx^i R = max 1 ≤ i ≤ N ‖ x ^ i ‖ ,则感知机算法在训练集上的误分类次数 k k 满足
      k(Rγ)2
    • 对偶形式

      取初始值 w0=b0=0 w 0 = b 0 = 0 ,由SGD可得

      wb=i=1Nniηyixi=i=1Nαiyixi=i=1Nniηyi=i=1Nαiyi w = ∑ i = 1 N n i η y i x i = ∑ i = 1 N α i y i x i b = ∑ i = 1 N n i η y i = ∑ i = 1 N α i y i

      由此可得感知机的对偶形式:
      输入: α,b α , b ;感知机模型 f(x)=sign(j=1Nαjyjxjx+b) f ( x ) = s i g n ( ∑ j = 1 N α j y j x j ⋅ x + b ) ,其中 α=(α1,α2,,αN)T α = ( α 1 , α 2 , ⋯ , α N ) T

      1. α0,b0 α ← 0 , b ← 0
      2. 选取数据 (xi,yi) ( x i , y i )
      3. 如果 yi(j=1Nαjyjxjx+b)0 y i ( ∑ j = 1 N α j y j x j ⋅ x + b ) ≤ 0
        αibαi+ηb+ηyi α i ← α i + η b ← b + η y i
      4. 转至2直至没有误分类数据。

      与线性SVM的异同

      从分类原理上看,线性感知机与线性SVM原理似乎相同:二者均为二分类模型,都是在特征空间寻找一个超平面将正负两类样本区分开来。事实上,感知机作为神经网络算法的基础,与SVM确实存在很多相似之处。作为线性分类器,感知机与SVM的预测过程相同,均是利用学得的模型 f(x)=sign(wx+b) f ( x ) = s i g n ( w ⋅ x + b ) 进行分类,但是二者的学习过程存在差异。
      首先是损失函数,感知机一般将误分类点到超平面的距离之和作为损失函数,即

      LPerceptron=xiMyi(wxi+b) L P e r c e p t r o n = − ∑ x i ∈ M y i ( w ⋅ x i + b )

      在神经网络中也常用交叉熵(cross entropy)作为分类任务的损失函数。可以看到,感知机是要最小化所有误分类样本点到超平面之间的距离,而SVM则是最大化两个异类支持向量(即离超平面最近的点)到超平面的距离 2w 2 ‖ w ‖ ,或者说最小化其距离的倒数,即等价于
      mins.t.LSVM=12w2yi(wTx+b1,)i=1,2,,m m i n L S V M = 1 2 ‖ w ‖ 2 s . t . y i ( w T ⋅ x + b ≥ 1 , ) i = 1 , 2 , ⋯ , m 。

      另外,在学习的过程中,感知机的损失函数是非凸的,因此一般采用梯度下降类方法进行优化,而SVM的损失函数是凸函数,可以采用凸优化(如SMO)的方法进行优化。


      1. x0 x 0 向超平面 wx+b=0 w ⋅ x + b = 0 作垂线,设垂足为 x x ,则有xx0=kw(k0)。则有
        w(xx0)=wx+bwx0b w ⋅ ( x − x 0 ) = w ⋅ x + b − w ⋅ x 0 − b

        注意到 wx+b=0 w ⋅ x + b = 0 ,因此
        w(xx0)=wx0b w ⋅ ( x − x 0 ) = − w ⋅ x 0 − b

        由于向量 w w xx0平行,因此
        |w(xx0)|=wxx0 | w ⋅ ( x − x 0 ) | = ‖ w ‖ ‖ x − x 0 ‖

        因此
        xx0=1w|wx0+b| ‖ x − x 0 ‖ = 1 ‖ w ‖ | w ⋅ x 0 + b |
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值