机器学习理论《统计学习方法》学习笔记:第二章 感知机

《统计学习方法》学习笔记:第二章 感知机

  • 2 感知机
    • 2.1 感知机模型
    • 2.2 感知机学习策略
      • 2.2.1 数据的线性可分性
      • 2.2.2 感知机学习策略
    • 2.3 感知机学习算法
      • 2.3.1 感知机学习算法的原始形式
      • 2.3.2 算法的收敛性
      • 2.3.3 感知机学习算法的对偶形式
    • 小结

2 感知机

  • 感知机(perceptron)是二分类的线性分类模型,其输入为实例的特征向量,输出为实例的类别,取+1-1二值。感知机对于输入空间(特征空间)中将实例划分为正负两类的分离超平面,属于判别模型。感知机学习旨在求出将训练数据进行线性划分的分离超平面,为此,导入基于误分类的损失函数,利用梯度下降法对损失函数进行极小化,求得感知机模型。
  • 感知机学习算法具有简单而易于实现的优点,分为原始形式和对偶形式。感知机预测是用学习到的感知机模型,对新的输入实例进行分类。感知机于1957年由Rosenblatt提出,是神经网络与支持向量机的基础。

2.1 感知机模型

  • 感知机【定义】
    假设输入空间(特征空间)是 X ∈ R n X\in R^n XRn ,输出空间是 Y = { − 1 , + 1 } Y=\{-1,+1\} Y={1,+1} 。输入 x ∈ X x\in X xX 表示实例的特征向量,对于输入空间的点;输出 y ∈ Y y\in Y yY表示实例的类别。由输入空间到输出空间的如下函数: f ( x ) = s i g n ( w ⋅ x + b ) f(x)=sign(w·x+b) f(x)=sign(wx+b)称为感知机。其中, w w w b b b为感知机模型参数, w ∈ R n w\in R^n wRn叫做权值(weight)或权值向量(weight vector), b ∈ R b\in R bR 叫做偏置(bias), w ⋅ x w·x wx表示 w w w x x x的内积, s i g n sign sign是符号函数,即:
    s i g n ( x ) = { + 1 , x ≥ 0 − 1 , x < 0 sign(x)=\begin{cases} +1,& x \ge 0 \\ -1,& x \lt 0 \end{cases} sign(x)={+1,1,x0x<0
  • 感知机是一种线性分类模型,属于判别模型。感知机模型的假设空间是定义在特征空间中的所有线性分类模型或线性分类器,即函数集合 { f ∣ f ( x ) = w ⋅ x + b } \{f|f(x)=w·x+b\} {ff(x)=wx+b}
  • 感知机有如下几何解释:线性方程 w ⋅ x + b = 0 w·x+b=0 wx+b=0对应于特征空间 R n R^n Rn中的一个超平面 S S S,其中 w w w是超平面的法向量, b b b是超平面的截距。这个超平面将特征空间划分为两个部分,位于两部分的点(特征向量)分别被分为正负两类。因此,超平面 S S S 称为分离超平面。
    机器学习理论《统计学习方法》学习笔记:第二章 感知机_第1张图片
  • 感知机学习,由训练数据集(实例的特征向量及类别) 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)},其中 x i ∈ X = R n , y i ∈ Y = { + 1 , − 1 } , i = 1 , 2... N x_i\in X=R^n,y_i\in Y=\{+1,-1\},i=1,2...N xiX=Rn,yiY={+1,1},i=1,2...N,求得感知机模型,即求得模型参数 w , b w,b w,b 。感知机预测,通过学习得到的感知机模型,对于新的输入实例给出其对应的输出类别。

2.2 感知机学习策略

2.2.1 数据的线性可分性

给定一个数据集 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)},其中 x i ∈ X = R n , y i ∈ Y = { + 1 , − 1 } , i = 1 , 2... N x_i\in X=R^n,y_i\in Y=\{+1,-1\},i=1,2...N xiX=Rn,yiY={+1,1},i=1,2...N,如果存在某个超平面 S S S,能够将数据集的正实例点和负实例点完全正确的划分到超平面的两侧,即对所有 y i = + 1 y_i=+1 yi=+1 的实例 i i i ,有 w ⋅ x i + b > 0 w·x_i+b\gt 0 wxi+b>0,对所有 y i = − 1 y_i=-1 yi=1 的实例 i i i ,有 w ⋅ x i + b < 0 w·x_i+b\lt 0 wxi+b<0,则称数据集 T T T 为线性可分数据集;否则,称数据集 T T T 为线性不可分。

2.2.2 感知机学习策略

  • 假设训练数据集是线性可分的,感知机学习的目标是求得一个能够将训练集正实例点和负实例点完全正确分开的分离超平面。为了找出这样的超平面,即确定感知机模型参数 w , b w,b w,b ,需要确定一个学习策略,即定义(经验)损失函数并将损失函数极小化。
  • 损失函数的一个自然选择是误分类点的总数。但是,这样的损失函数不是参数 w , b w,b w,b的连续可导函数,不易优化。损失函数的另一个选择是误分类点到超平面 S S S的总距离,这是感知机所采用的。为此,首先写出输入空间 R n R^n Rn中任一点 x 0 x_0 x0到超平面 S S S的距离: 1 ∣ ∣ w ∣ ∣ ∣ w ⋅ x 0 + b ∣ {1 \over ||w||}|w·x_0+b| w1wx0+b这里, ∣ ∣ w ∣ ∣ ||w|| w w w w L 2 L_2 L2范数。
  • 其次,对于误分类的数据 ( x i , y i ) (x_i,y_i) (xi,yi)来说, − y i ( w ⋅ x i + b ) > 0 -y_i(w·x_i+b)>0 yi(wxi+b)>0成立。因为当 w ⋅ x i + b > 0 w·x_i+b>0 wxi+b>0时, y i = − 1 y_i=-1 yi=1;当 w ⋅ x i + b < 0 w·x_i+b<0 wxi+b<0时, y i = + 1 y_i=+1 yi=+1;因此,误分类点 x i x_i xi到超平面 S S S的距离是 − 1 ∣ ∣ w ∣ ∣ y i ( w ⋅ x i + b ) -{1 \over ||w||}y_i(w·x_i+b) w1yi(wxi+b)
  • 这样,假设超平面的误分类点集合为 M M M,那么所有误分类点到超平面的总距离为 − 1 ∣ ∣ w ∣ ∣ ∑ x i ∈ M y i ( w ⋅ x i + b ) -{1 \over ||w||}\sum_{x_i\in M} y_i(w·x_i+b) w1xiMyi(wxi+b),不考虑 1 ∣ ∣ w ∣ ∣ {1 \over ||w||} w1 就得到感知机学习的损失函数。
  • 给定训练数据集 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)},其中 x i ∈ X = R n , y i ∈ Y = { + 1 , − 1 } , i = 1 , 2... N x_i\in X=R^n,y_i\in Y=\{+1,-1\},i=1,2...N xiX=Rn,yiY={+1,1},i=1,2...N。感知机 s i g n ( w ⋅ x + b ) sign(w·x+b) sign(wx+b)学习的损失函数定义为 L ( w , b ) = − ∑ x i ∈ M y i ( w ⋅ x i + b ) L(w,b)=-\sum_{x_i\in M} y_i(w·x_i+b) L(w,b)=xiMyi(wxi+b),其中 M M M为误分类点的集合。这个损失函数就是感知机学习的经验风险函数。
  • 显然,损失函数 L ( w , b ) L(w,b) L(w,b)是非负的。如果没有误分类点,损失函数值为0.而且,误分类点越少,误分类点离超平面越近,损失函数值就越小。一个特点样本点的损失函数:在误分类时,是参数 w , b w,b w,b的线性函数,在正确分类时是0.因此,给定训练数据集 T T T,损失函数 L ( w , b ) L(w,b) L(w,b) w , b w,b w,b的连续可导函数。
  • 感知机学习的策略是在假设空间中选取使损失函数式最小的模型参数 w , b w,b w,b,即感知机模型。

2.3 感知机学习算法

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

  • 感知机学习问题转化为求解损失函数式的最优化问题,最优化的方法是随机梯度下降法。
  • 感知机学习算法是对以下最优化问题的算法。给定训练数据集 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)},其中 x i ∈ X = R n , y i ∈ Y = { + 1 , − 1 } , i = 1 , 2... N x_i\in X=R^n,y_i\in Y=\{+1,-1\},i=1,2...N xiX=Rn,yiY={+1,1},i=1,2...N
  • 感知机 s i g n ( w ⋅ x + b ) sign(w·x+b) sign(wx+b)学习的损失函数定义为 L ( w , b ) = − ∑ x i ∈ M y i ( w ⋅ x i + b ) L(w,b)=-\sum_{x_i\in M} y_i(w·x_i+b) L(w,b)=xiMyi(wxi+b),其中 M M M为误分类点的集合。求参数 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(w·x_i+b) minw,bL(w,b)=xiMyi(wxi+b)
  • 感知机学习算法是误分类驱动的,具体采用随机梯度下降法。首先,任意选取一个超平面 w 0 , b 0 w_0,b_0 w0,b0,然后用梯度下降法不断地极小化目标函数。极小化过程中不是一次使 M M M中所有误分类点的梯度下降,而是一次随机选取一个误分类点使其梯度下降。
  • 感知机学习算法的原始形式
    输入:训练数据集 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)},其中 x i ∈ X = R n , y i ∈ Y = { + 1 , − 1 } , i = 1 , 2... N x_i\in X=R^n,y_i\in Y=\{+1,-1\},i=1,2...N xiX=Rn,yiY={+1,1},i=1,2...N;学习率 η \eta η ( 0 < η ≤ 1 ) (0\lt \eta \le 1) (0<η1).
    输出: w , b w,b w,b;感知机模型: f ( x ) = s i g n ( w ⋅ x + b ) f(x)=sign(w·x+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(w·x_i+b)\le 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),直至训练集中没有误分类点。
  • 感知机学习算法的原始形式直观上有如下解释:当一个实例点被误分类,即位于分离超平面的错误一侧时,则调整 w , b w,b w,b的值,使分离超平面向该误分类点的一侧移动,以减少该误分类点与超平面间的距离,直至超平面超过该误分类点使其被正确分类。

2.3.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 0 , b 0 w_0,b_0 w0,b0均为0.对误分类点 ( x i , y i ) (x_i,y_i) (xi,yi)通过 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,设修改n次,则 w , b w,b w,b关于 ( x i , y i ) (x_i,y_i) (xi,yi)的增量分别是 a i y i x i a_iy_ix_i aiyixi a i y i a_iy_i aiyi,这里 a i = n i η a_i=n_i\eta ai=niη.
  • 在学习过程中不难看出,最后学习到的 w , b w,b w,b可以分别表示为 w = ∑ i = 1 N a i y i x i w=\sum_{i=1}^N{a_iy_ix_i} w=i=1Naiyixi b = ∑ i = 1 N a i y i b=\sum_{i=1}^N{a_iy_i} b=i=1Naiyi这里, a i ≥ 0 , i = 1 , 2 , ⋯   , N a_i\ge 0,i=1,2,\cdots,N ai0,i=1,2,,N,当 η = 1 \eta=1 η=1时,表示第 i i 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)},其中 x i ∈ X = R n , y i ∈ Y = { + 1 , − 1 } , i = 1 , 2... N x_i\in X=R^n,y_i\in Y=\{+1,-1\},i=1,2...N xiX=Rn,yiY={+1,1},i=1,2...N;学习率 η \eta η ( 0 < η ≤ 1 ) (0\lt \eta \le 1) (0<η1).
    输出: a , b a,b a,b;感知机模型: f ( x ) = s i g n ( ∑ j = 1 N a j y j x j + b ) f(x)=sign( \sum_{j=1}^N a_j y_j x_j +b ) f(x)=sign(j=1Najyjxj+b),其中 a = ( a 1 , a 2 , ⋯   , a N ) T a=(a_1,a_2,\cdots,a_N)^T a=(a1,a2,,aN)T
    (1) a ← 0 , b ← 0 a\leftarrow 0,b\leftarrow 0 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_{j=1}^N a_j y_j x_j\cdot x_i +b )\le 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)直至没有误分类数据
  • 对偶形式中,训练实例仅以内积的形式出现,为了方便,可以预先将训练集中实例间的内积计算出来,并以矩阵的形式存储,这个矩阵就是Gram矩阵: G = [ x i ⋅ x j ] N ∗ N G=[x_i\cdot x_j]_{N*N} G=[xixj]NN

小结

  1. 感知机是根据输入实例的特征向量 x x x对其进行二分类的线性分类模型: f ( x ) = s i g n ( w ⋅ x + b ) f(x)=sign(w\cdot x+b) f(x)=sign(wx+b)感知机模型对应于输入空间(特征空间)中的分离超平面: w ⋅ x + b = 0 w\cdot x+b=0 wx+b=0
  2. 感知机学习的策略是极小化损失函数: 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(w\cdot x_i+b) minw,bL(w,b)=xiMyi(wxi+b)损失函数对应于误分类点到分离超平面的总距离。
  3. 感知机学习算法是基于随机梯度下降法的对损失函数的最优化算法,有原始形式和对偶形式,算法简单且易于实现。原始形式中,首先任意选一个超平面,然后用梯度下降法不断极小化目标函数。在这个过程中,一次随机选取一个误分类点使其梯度下降。
  4. 当训练数据集线性可分时,感知机学习算法是收敛的。感知机算法在训练数据集上的误分类次数 k k k 满足不等式: k ≤ ( R γ ) 2 k\le({R \over \gamma})^2 k(γR)2当训练数据集线性时,感知机学习算法存在无穷多个解,其解由不同的初值或不同的迭代次序而可能有所不同。

你可能感兴趣的:(机器学习,算法,人工智能)