『感知机』
作者:互联网
文章目录
感知机(perceptron)是二分类的线性分类模型,其输入为实例的特征向量,输出为实例的类别,取+1和−1二值。感知机对应于输入空间(特征空间)中将实例划分为正负两类的分离超平面,属于判别模型。感知机学习算法具有简单而易于实现的优点,分为原始形式和对偶形式。
1. 感知机模型
假设输入空间(特征空间)是X⊆Rn,输出空间是Y={+1,−1},输入x∈X表示实例的特征向量,对应于输入空间(特征空间)的点;输出 y∈Y表示实例的类别。由输入空间到输出空间的如下函数:
f(x)=sign(w⋅x+b)称为感知机。其中w和b为感知机模型参数,w∈Rn叫做权值(weight)或权值向量(weight vector),b∈R叫做偏置(bias),w⋅x表示w和x的内积,sign是符号函数,即
sign(x)={+1,x≥0−1,x<0感知机有如下几何解释:
线性方程w⋅x+b=0对应于特征空间Rn中的一个超平面S,其中w是超平面的法向量,b是超平面的截距。这个超平面将特征空间划分为两个部分。位于两部分的点(特征向量)分别被分为正、负两类。因此超平面S称为分离超平面(separating hyperplane)
2. 数据集的线性可分性
给定一个数据集T={(x1,y1),(x2,y2),⋯,(xn,yn)}其中xi∈Rn,yi∈Y={+1,−1},i=1,2,⋯,n,如果存在某个超平面能够将数据集的正实例点和负实例点完全正确地划分到超平面两侧,即对所有yi=+1的实例i,有w⋅xi+b>0,对所有yi=−1的实例i,有w⋅xi+b<0,则称数据集T为线性可分数据集(linearly separable data set);否则称数据集T线性不可分。
3. 感知机学习策略——损失函数极小化
损失函数的一个自然选择是误分类点的总数。但是这样的损失函数不是参数w,b的连续可导函数,不易优化。损失函数的另一个选择是误分类点到超平面S的总距离,这是感知机所采用的。为此,首先写出输入空间Rn中任意一点x0到超平面S的距离:∣∣w∣∣21∣w⋅x0+b∣这里∣∣w∣∣2是w的 l2范数。
其次,对于误分类的数据(xi,yi)来说,−yi(w⋅xi+b)>0。因此,误分类点xi到超平面S的距离是−∣∣w∣∣21yi(w⋅xi+b)
这样,假设超平面S的误分类点集合为M,那么所有误分类点到超平面S的总距离为−∣∣w∣∣21xi∈M∑yi(w⋅xi+b)不考虑∣∣w∣∣21,就得到感知机的损失函数,即
L(w,b)=−xi∈M∑yi(w⋅xi+b)显然L(w,b)≥0,故我们的目标只要减小损失函数就行了。
4. 感知机学习算法
4.1 原始形式
输入:训练数据集T={(x1,y1),(x2,y2),⋯,(xn,yn)},其中xi∈X,yi∈{+1,−1},i=1,2,⋯,n;学习率η(0<η≤1):
输出:w,b:感知机模型f(x)=sign(w⋅x+b)
(1) 选取初值w0,b0;
(2)在训练集中选取数据(xi,yi);
(3)如果J=−yi(w⋅xi+b)≥0(单样本损失函数)
wb=w−η∂w∂J=w+ηxiyi=b−η∂b∂J=w+ηyi
(4)转至(2),直至训练集中没有误分类点。
直观解释:
当一个实例点被误分类,即位于分离超平面的错误一侧时,则调整w,b 的值,使分离超平面向该误分类点的一侧移动,以减少该误分类点与超平面的距离,直至超平面越过该误分类点使其被正确分类。
【注】
这里每次只用一个样本进行梯度下降,因为你不确定每次参数更新后误分类的点有多少集合M时变化的,损失函数无法构成w,b的连续函数。
4.2 对偶形式
对偶,简单地说,就是从一个不同的角度去解答相似问题,但是问题的解是相通的。
或者说原始问题比较难求解,我们去求解另外一个问题,希望通过更简单的方法得到原始问题的解。
我们假设样本点(xi,yi)在更新过程中被使用了ni次,w,b使用零初始化,因此,从原始的学习过程可以得到,最后学习到的w和b可以分别表示为:
wb=j=1∑nnjηxjyj=j=1∑nαjxjyj=j=1∑nnjηyj=j=1∑nαjyj其中w,b关于(xj,yj)的增量分别是αjxjyj和αjyj。
考虑nj的含义:如果nj的值越大,那么意味着这个样本点经常被误分。什么样的点容易被误分?很明显就是离超平面很近的点。超平面稍微一点点移动,这个点就从正变负,或者从负变正。将上式带入到原始的感知机中,可以得到:
f(x)=sign(w⋅x+b)=sign(j=1∑nnjηxjyj⋅x+j=1∑nnjηyj)此时的学习目标不再是w,b,而是nj,j=1,2,⋯,n,故算法描述如下:
输入:线性可分的数据集 T={(x1,y1),(x2,y2),⋯,(xn,yn)},其中xi∈X,yi∈{+1,−1},i=1,2,⋯,n;学习率η(0<η≤1)
输出:α和b;感知机模型f(x)=sign(j=1∑nnjηxjyj⋅x+j=1∑nnjηyj)=sign(j=1∑nαjxjyj⋅x+b),其中α=(α1,α2,⋯,αn)T
(1)α=0,b=0;
(2)在训练集中选取数据(xi,yi);
(3)如果J=−yi(j=1∑nαjyjxj⋅xi+b)≥0(单样本损失函数,本质上是每次ni=ni+1)
αib=αi+η=b+ηyi(4)转至(2)直至没有误分类数据
标签:yi,yj,sign,感知机,xi,超平面 来源: https://blog.csdn.net/dreaming_coder/article/details/104070438