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

第2章 感知机

感知机(perceotron)是二分类的线性分类模型,其输入为实例的特征向量,输出为实例的类别,取+1,-1二值。感知机对应于输入空间(特征空间)中将实例划分为正负两类的分离超平面,属于判别模型。

模型

定义 2.1(感知机):假设输入空间是 R n R^n Rn,输出空间是 { − 1 , + 1 } \{-1,+1\} { 1,+1},从输入空间到输出空间的函数 f ( x ) f(x) f(x)
f ( x ) = sign ( w ⃗ ⋅ x ⃗ + b ) f(x)=\text{sign}(\vec{w}\cdot\vec{x}+b) f(x)=sign(w x +b)
被称为感知机。其中, w ⃗ , b \vec{w},b w ,b被称为感知机模型参数, w ⃗ ∈ R n \vec{w}\in R^n w Rn被称为权值向量或权值, b ∈ R b\in R bR被称为偏置, sign \text{sign} sign是符号函数。

在几何表示中,对于给定的 w ⃗ , b \vec{w},b w ,b,线性方程 w ⃗ ⋅ x ⃗ + b = 0 \vec{w}\cdot\vec{x}+b=0 w x +b=0对应于特征空间 R n R^n Rn的超平面。容易证明, w ⃗ \vec{w} w 是这个超平面的法向量, w ⃗ ⋅ x ⃗ + b > 0 \vec{w}\cdot\vec{x}+b>0 w x +b>0对应于 w ⃗ \vec{w} w 指向的一侧, w ⃗ ⋅ x ⃗ + b < 0 \vec{w}\cdot\vec{x}+b<0 w x +b<0对应于 − w ⃗ -\vec{w} w 指向的一侧。因此,这个超平面将特征空间划分为两个部份,所以可以被用于解决分类问题。

感知机通过学习训练数据集
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)}
得到模型参数 w ⃗ , b \vec{w},b w ,b,然后通过 f ( x ) f(x) f(x)来预测新的输入实例,最终得到其输出类别。

学习策略

线性可分:如果存在某个超平面 S S S将数据集的正实例点和负实例点完全正确地划分到超平面的两侧,那么就称该数据集为线性可分数据集,否则称其为线性不可分数据集。

在感知机的学习策略中,其定义经验损失函数并将其最小化,最终得到模型参数 w ⃗ , b \vec{w},b w ,b,如下所示。

假设输入的数据集为 T T T,感知机对应的超平面记为 S S S
T = { ( x 1 , y 1 ) , ( x 2 , y 2 ) , ⋯   , ( x N , y N ) } x i ∈ R n ,   y i ∈ { − 1 , + 1 } ,   i = 1 , 2 , ⋯   , N S = { x ⃗ ∣ w ⃗ ⋅ x ⃗ + b = 0 } T=\{(x_1,y_1),(x_2,y_2),\cdots,(x_N,y_N)\}\\ x_i\in R^n,\ y_i\in\{-1,+1\},\ i=1,2,\cdots,N\\ S=\{\vec{x}|\vec{w}\cdot\vec{x}+b=0\} T={ (x1,y1),(x2,y2),,(xN,yN)}xiRn, yi{ 1,+1}, i=1,2,,NS={ x w x +b=0}
容易证明,输入空间中任一点到超平面的距离为
∣ w ⃗ ⋅ x ⃗ + b ∣ ∣ ∣ w ⃗ ∣ ∣ \frac{|\vec{w}\cdot\vec{x}+b|}{||\vec{w}||} w w x +b
对于误分类的数据 ( x i , y i ) (x_i,y_i) (xi,yi)来说,我们有
− y i ( w ⃗ ⋅ x + b ) > 0 -y_i(\vec{w}\cdot{x}+b)>0 yi(w x+b)>0
假设所有的误分类点的集合为 M M M,那么所有误分类点到超平面的距离之和为损失函数 L ( w ⃗ , b ) L(\vec{w},b) L(w ,b)
L ( w ⃗ , b ) = − ∑ x i ∈ M y i ( w ⃗ ⋅ x i ⃗ + b ) L(\vec{w},b)=-\sum_{x_i\in M}y_i(\vec{w}\cdot\vec{x_i}+b) L(w ,b)=xiMyi(w xi +b)
其中不考虑 1 ∣ ∣ w ⃗ ∣ ∣ \frac{1}{||\vec{w}||} w 1

感知机的学习策略是在假设空间中选择使 L ( w ⃗ , b ) L(\vec{w},b) L(w ,b)达到最小的模型参数 w , b w,b w,b

学习算法

感知机的学习问题实际上是损失函数 L ( w , b ) L(w,b) L(w,b)的最优化问题。

原始形式

采用随机梯度下降法来优化函数 L ( w , b ) L(w,b) L(w,b)。在极小化的过程中,不是一次使 M M M中所有的误分类点的梯度下降,而是一次随机一个误分类点,使其梯度下降,更新方法如下
w = w + η y i x i b = b + η y i w=w+\eta y_ix_i\\ b=b+\eta y_i w=w+ηyixib=b+ηyi
其中, η \eta η是步长,又被称为学习率。

算法 2.1 感知机算法的原始形式

输入:训练数据集 T T T,学习率 η ∈ ( 0 , 1 ] \eta\in(0,1] η(0,1]

输出: w , b w,b w,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(w\cdot x_i+b)\le 0 yi(wxi+b)0,则更新 w , b w,b w,b
    w = w + η x i y i b = b + η y i w=w+\eta x_iy_i\\ b = b+\eta y_i w=w+ηxiyib=b+ηyi

  4. 转2,直到训练集中没有误分类点。

对偶形式

不失一般性,在算法 2.1中可假设初始值 w 0 , b 0 ) w_0,b_0) w0,b0)的值均为0,设 w , b w,b w,b关于 ( x i , y i ) (x_i,y_i) (xi,yi)的增量为 α i y i x i \alpha_iy_ix_i αiyixi α i y i \alpha_iy_i αiyi。其中, α i = n i η \alpha_i=n_i\eta αi=niη n i n_i ni是数据点 ( x i , y i ) (x_i,y_i) (xi,yi)被选为误分类点来更新 w , b w,b w,b的次数。此时, w , b w,b w,b可表示如下。
w = ∑ i = 1 N α i y i x i b = ∑ i = 1 N α i y i w=\sum_{i=1}^N\alpha_iy_ix_i\\ b=\sum_{i=1}^N\alpha_iy_i w=i=1Nαiyixib=i=1Nαiyi
由此得到感知机算法的对偶形式。

输入:训练数据集 T T T,学习率 η ∈ ( 0 , 1 ] \eta\in(0,1] η(0,1]

输出: α , b \alpha,b α,b,感知机模型 f ( x ) = sign ( ∑ j = 1 N α j y j x j ⋅ x + b ) f(x)=\text{sign}(\sum_{j=1}^N\alpha_jy_jx_j\cdot x+b) f(x)=sign(j=1Nαjyjxjx+b)

  1. α = 0 , b = 0 \alpha=0,b=0 α=0,b=0

  2. 在训练集中选取 ( x i , y i ) (x_i,y_i) (xi,yi)

  3. 如果 y i f ( x i ) ≤ 0 y_if(x_i)\le 0 yif(xi)0
    α i = α a + η b = b + η y i \alpha_i=\alpha_a+\eta\\ b=b+\eta y_i αi=αa+ηb=b+ηyi

  4. 转2,直到没有误分类数据。

你可能感兴趣的:(统计学习方法,机器学习)