统计学习方法-感知机(perceptron)

概述

感知机(perceptron) 是二分类线性分类模型。

  • 输入:特征向量
  • 输出:类别,+1,-1,二值
  • 感知机是特征空间中的超平面,属于判别模型

分为原始形式和对偶形式,是神经网络和svm的基础。

模型

定义:假设输入空间(特征空间)是 X ⊆ R n X \subseteq R^n XRn,输出空间是 y = { + 1 , − 1 } y=\{+1,-1\} y={+1,1}
f ( x ) = s i g n ( w x + b ) f(x)=sign(wx+b) f(x)=sign(wx+b)称为感知机模型。 w w w为权重或权值向量, b b b为偏置(bias),sign为符号函数,即 s i g n ( x ) = { + 1 , x ≥ 1 − 1 , x &lt; 0 sign(x)=\begin{cases} +1 ,x \geq 1 \\ -1 ,x&lt;0 \end{cases} sign(x)={+1,x11,x<0
感知机模型的假设空间是定义在特征空间中所有的线性分类模型,即函数集合 { f ∣ f ( x ) = w x + b } \{f|f(x)=wx+b\} {ff(x)=wx+b}
模型时要学习得到的函数,而空间是所有可能的函数的集合。

策略

  1. 线性可分
    对于给定的数据集,存在某个超平面将数据集的正负样本完全正确的划分到超平面的两侧,则称数据集为线性可分数据集。
  2. 感知机学习策略
    定义经验损失函数并将损失函数极小化。
  • 若损失函数定义为误分类点的个数,如下,不易优化
    • ∑ x i ∈ M 1 \sum_{x_i\in M}1 xiM1 ,M为误分类点集合
  • 损失函数定义为误分类点到超平面的总距离。 L ( w , b ) = − ∑ x i ∈ M y i ( w x i + b ) L(w,b)=-\sum_{x_i \in M } y_i(wx_i+b) L(w,b)=xiMyi(wxi+b) M为误分类点集合。该损失是感知机学习的经验风险函数。

感知机模型学习的策略是在假设空间中选取使损失函数最小的模型参数 w , b w,b w,b

算法

感知机学习算法转化为求解损失函数的最优化问题。

  1. 感知机算法的原始形式

给定训练集T,求参数 w , b w,b w,b,使其成为以下损失函数极小化问题的解。 m i n w , b L ( w , b ) = − ∑ x i ∈ M y i ( w x i + b ) min_{w,b}L(w,b)=-\sum_{x_i \in M}y_i(wx_i+b) minwbL(w,b)=xiMyi(wxi+b)其中M为误分类点集合。

感知机学习算法是误分类驱动的,采用随机梯度下降(stochastic gradient descent)。初始化 w 0 , b 0 w_0,b_0 w0,b0,每次选取一个误分类的点进行梯度下架(不是所有误分类点)。

假设误分类集是固定的,那么损失函数 L ( w , b ) L(w,b) L(w,b)的梯度是 ∇ w L ( w , b ) = − ∑ x i ∈ M y i x i \nabla_wL(w,b)=-\sum_{x_i\in M}y_ix_i wL(w,b)=xiMyixi ∇ b L ( w , b ) = − ∑ x i ∈ M y i \nabla_bL(w,b)=-\sum_{x_i\in M}y_i bL(w,b)=xiMyi

x选取一个误分类点,进行更新
w ← w + η y i x i w\leftarrow w+\eta y_i x_i ww+ηyixi b ← b + η y i b \leftarrow b+\eta y_i bb+ηyi
其中 η \eta η是学习率。

综上,可得如下算法


感知机学习算法原始形式

  • 输入:训练数据 T = ( x 1 , y 1 ) , ( x 2 , y 2 ) , . . . ( x N , y N ) T={(x_1,y_1),(x_2,y_2),...(x_N,y_N)} T=(x1,y1),(x2,y2),...(xN,yN),学习率 η \eta η ( 0 &lt; η ≤ 1 ) (0&lt;\eta\leq 1 ) (0<η1) ,
  • 输出: w , b w,b w,b;感知机模型 f ( x ) = s i g n ( w x + b ) f(x)=sign(wx+b) f(x)=sign(wx+b)
    (1) 选取初值 w 0 , b 0 w_0,b_0 w0,b0
    (2) 在训练集上选取数据 ( x i , y i ) (x_i,y_i) (xi,yi)
    (3) 如果 y i ( w x i + b ) ≤ 0 y_i(wx_i+b)\leq 0 yi(wxi+b)0, w ← w + η y i x i w\leftarrow w+\eta y_i x_i ww+ηyixi b ← b + η y i b \leftarrow b+\eta y_i bb+ηyi
    (4) 转至2,知道没有误分类点

  1. 算法收敛性

对于线性可分数据集感知机学习原始算法收敛,即经过有限次迭代,可以训练出一个将数据集完全正确分类的感知机模型。

感知机学习算法有很多解,依赖于初值和选择误分类点的顺序。

当训练数据集线性不可分时,算法不收敛,迭代结果会震荡

3.对偶形式
基本想法为:将 w , b w,b w,b表示为实例 x i x_i xi和标记 y i y_i yi的线性组合的形式,通过求解其系数求得 w , b w,b w,b。将 w 0 , b 0 w_0,b_0 w0,b0设为0,对误分类点通过 w ← w + η y i x i w\leftarrow w+\eta y_i x_i ww+ηyixi b ← b + η y i b \leftarrow b+\eta y_i bb+ηyi修改 w , b w,b w,b。不难看出,最后学习到的 w , b w,b w,b可以表示为 w = ∑ i = 1 N a i y i x i w=\sum^N_{i=1} a_iy_ix_i w=i=1Naiyixi b = ∑ i = 1 N a i y i b=\sum^N_{i=1} a_iy_i b=i=1Naiyi a i = n i η a_i=n_i \eta ai=niη,当 η = 1 \eta=1 η=1时, a i a_i ai表示第i个点由于误分类而更新的次数


感知机学习算法对偶形式

  • 输入:训练数据 T = ( x 1 , y 1 ) , ( x 2 , y 2 ) , . . . ( x N , y N ) T={(x_1,y_1),(x_2,y_2),...(x_N,y_N)} T=(x1,y1),(x2,y2),...(xN,yN),学习率 η \eta η ( 0 &lt; η ≤ 1 ) (0&lt;\eta\leq 1 ) (0<η1) ,
  • 输出: a , b a,b a,b;感知机模型 f ( x ) = s i g n ( ∑ j = 1 N a j y j x j x + b ) f(x)=sign(\sum^N_{j=1}a_jy_jx_jx+b) f(x)=sign(j=1Najyjxjx+b),其中 a = ( a 1 , a 2 , . . . a N ) T a=(a_1,a_2,...a_N)^T a=(a1,a2,...aN)T
    (1) a ← 0 , b ← 0 a\leftarrow0,b\leftarrow0 a0,b0
    (2) 在训练集上选取数据 ( x i , y i ) (x_i,y_i) (xi,yi)
    (3) 如果 y i ( ∑ j = 1 N a j y j x j x i + b ) ≤ 0 y_i(\sum^N_{j=1}a_jy_jx_jx_i+b)\leq 0 yi(j=1Najyjxjxi+b)0, a ← a i + η a\leftarrow a_i+\eta aai+η b ← b + η y i b \leftarrow b+\eta y_i bb+ηyi
    (4) 转至2,知道没有误分类点

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值