【统计学习方法】第2章 感知机

感知机(perceptron)是二分类的线性分类模型,其输入为实例的特征向量,输出为实例的类别,取 + 1 +1 +1 − 1 -1 1 二值。感知机对应于输入空间(特征空间)中将实例划分为正负两类的分离超平面,属于判别模型。感知机学习算法具有简单而易于实现的优点,分为原始形式和对偶形式。

2.1 感知机模型

假设输入空间(特征空间)是 X ⊆ R n \mathcal{X}\subseteq\mathbb{R}^n XRn,输出空间是 Y = { + 1 , − 1 } \mathcal{Y}=\{+1, -1\} Y={+1,1}。由输入空间到输出空间的如下函数:

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

称为感知机。其中, w w w b b b 为感知机模型参数, w ∈ R n w\in\mathbb{R}^n wRn 叫做权值(weight)或权值向量(weight vector), b ∈ R b\in\mathbb{R} bR 叫做偏置(bias), s i g n sign sign 是符号函数。

2.2 感知机学习策略

给定训练集

T = { ( x 1 , y 1 ) , ( x 2 , y 2 ) , ⋯   , ( x N , y N ) } T=\{(x_1,y_1),(x_2,y_2),\cdots,(x_N,y_N)\} T={(x1,y1),(x2,y2),,(xN,yN)}

其中, x i ∈ X = R n x_i\in\mathcal{X}=\mathbb{R}^n xiX=Rn y i ∈ Y = { + 1 , − 1 } y_i\in\mathcal{Y}=\{+1,-1\} yiY={+1,1} i = 1 , 2 , ⋯   , N i=1,2,\cdots,N i=1,2,,N。感知机学习的损失函数定义为

L ( w , b ) = − ∑ x i ∈ M y i ( w ⋅ x i + b ) L(w,b)=-\sum_{x_i\in M}y_i(w\cdot x_i+b) L(w,b)=xiMyi(wxi+b)

其中 M M M 为误分类点的集合。这个损失函数就是感知机学习的经验风险函数。

2.3 感知机学习算法

2.3.1 感知机学习算法的原始形式

感知机学习算法是误分类驱动的,具体采用随机梯度下降法(stochastic gradient descent)。首先,任意选取一个超平面 w 0 , b 0 w_0,b_0 w0,b0,然后用梯度下降法不断地极小化目标函数。极小化过程中不是一次使 M M M 中所有误分类点的梯度下降,而是一次随机选取一个误分类点使其梯度下降。假设误分类点集合 M M M 是固定的,那么损失函数 L ( w , b ) L(w,b) L(w,b) 的梯度由

∇ w L ( w , b ) = − ∑ x i ∈ M y i x i ∇ b L ( w , b ) = − ∑ x i ∈ M y i \begin{aligned} \nabla_wL(w,b)&=-\sum_{x_i\in M}y_ix_i\\ \nabla_bL(w,b)&=-\sum_{x_i\in M}y_i \end{aligned} wL(w,b)bL(w,b)=xiMyixi=xiMyi

给出。随机选取一个误分类点 ( x i , y i ) (x_i,y_i) (xi,yi),对 w , b w,b w,b 进行更新:

w ← w + η y i x i b ← b + η y i \begin{aligned} w&\leftarrow w+\eta y_ix_i\\ b&\leftarrow b+\eta y_i \end{aligned} wbw+ηyixib+ηyi

式中 η ( 0 < η ≤ 1 ) \eta(0<\eta\leq1) η(0<η1) 是步长,在统计学习中又称为学习率(learning rate)。这样,通过迭代可以期待损失函数 L ( w , b ) L(w,b) L(w,b) 不断减小,直到为0。

原始形式

  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(w\cdot x_i+b)\leq0 yi(wxi+b)0
    w ← w + η y i x i b ← b + η y i \begin{aligned} w&\leftarrow w+\eta y_ix_i\\ b&\leftarrow b+\eta y_i \end{aligned} wbw+ηyixib+ηyi
  4. 转至 2,直到训练集中没有误分类点

2.3.2 算法的收敛性

Novikoff 定理:设训练数据集 T = { ( x 1 , y 1 ) , ( x 2 , y 2 ) , ⋯   , ( x N , y N ) } T=\{(x_1,y_1),(x_2,y_2),\cdots,(x_N,y_N)\} T={(x1,y1),(x2,y2),,(xN,yN)} 是线性可分的,其中 x i ∈ X = R n , y i ∈ Y = { − 1 , + 1 } , i = 1 , 2 , ⋯   , N x_i\in\mathcal{X}=\mathbb{R}^n,y_i\in\mathcal{Y}=\{-1,+1\},i=1,2,\cdots,N xiX=Rn,yiY={1,+1},i=1,2,,N,则

  1. 存在满足条件 ∥ w ^ _ o p t ∥ = 1 \lVert\hat{w}\_{opt}\rVert=1 w^_opt=1 的超平面 w ^ _ o p t ⋅ x ^ = w o p t ⋅ + b o p t = 0 \hat{w}\_{opt}\cdot\hat{x}=w_{opt}\cdot+b_{opt}=0 w^_optx^=wopt+bopt=0 将训练集完全正确分开;且存在 γ > 0 \gamma>0 γ>0,对所有 i = 1 , 2 , ⋯   , N i=1,2,\cdots,N i=1,2,,N
    y i ( w ^ _ o p t ⋅ x ^ _ i ) = y i ( w o p t ⋅ x i + b o p t ) ≥ γ y_i(\hat{w}\_{opt}\cdot\hat{x}\_i)=y_i(w_{opt}\cdot x_i+b_{opt})\geq\gamma yi(w^_optx^_i)=yi(woptxi+bopt)γ
  2. R = max ⁡ 1 ≤ i ≤ N ∥ x ^ _ i ∥ R=\max_{1\leq i\leq N}\lVert \hat{x}\_i\rVert R=max1iNx^_i,则感知机算法在训练集上的误分类次数 k k k 满足不等式
    k ≤ ( R γ ) 2 k\leq(\frac{R}{\gamma})^2 k(γR)2

2.3.3 感知机学习的对偶形式

w w w b b b 表示为实例 x i x_i xi 和标记 y i y_i yi 的线性组合的形式,通过求解其系数而求得 w w w b b b。逐步修改 w , b w,b w,b,设修改 n n n 次,设 α i = n i η \alpha_i=n_i\eta αi=niη,则最后学习到的 w , b w,b w,b 可以分别表示为

w = ∑ i = 1 N α i y i x i b = ∑ i = 1 N α i y i \begin{aligned} w&=\sum_{i=1}^{N}\alpha_iy_ix_i\\ b&=\sum_{i=1}^{N}\alpha_iy_i \end{aligned} wb=i=1Nαiyixi=i=1Nαiyi

这里, α i ≥ 0 , i = 1 , 2 , ⋯   , N \alpha_i\geq0,i=1,2,\cdots,N αi0,i=1,2,,N,当 η = 1 \eta=1 η=1 时,表示第 i i i 个实例点由于误分而进行更新的次数。实例点更新次数越多,意味着它距离分离超平面越近,也就越难正确分类。换句话说,这样的实例对学习结果影响最大。

对偶形式

  1. α ← 0 , b ← 0 \alpha\leftarrow0,b\leftarrow0 α0,b0
  2. 在训练集中选取数据 ( x i , y i ) (x_i,y_i) (xi,yi)
  3. 如果 y i ( ∑ j = 1 N α j y j x j ⋅ x i + b ) ≤ 0 y_i(\sum_{j=1}^N\alpha_jy_jx_j\cdot x_i+b)\leq0 yi(j=1Nαjyjxjxi+b)0
    α i ← α i + η b ← b + η y i \begin{aligned} \alpha_i&\leftarrow \alpha_i+\eta\\ b&\leftarrow b+\eta y_i \end{aligned} αibαi+ηb+ηyi
  4. 转至 2,直到训练集中没有误分类点

对偶形式中训练实例仅以内积的形式出现。为了方便,可以预先将训练集中的实例间的内积计算出来并以矩阵的形式存储,这个矩阵就是所谓的 Gram 矩阵(Gram matrix)

G = [ x i ⋅ x j ] N × N G=[x_i\cdot x_j]_{N\times N} G=[xixj]N×N

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值