ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

『感知机』

2020-01-23 18:38:08  阅读:318  来源: 互联网

标签:yi yj sign 感知机 xi 超平面


文章目录


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

1. 感知机模型

        假设输入空间(特征空间)是XRn{X}\subseteq {R}^nX⊆Rn,输出空间是Y={+1,1}Y=\{+1, -1\}Y={+1,−1},输入xXx \in Xx∈X表示实例的特征向量,对应于输入空间(特征空间)的点;输出 yYy \in Yy∈Y表示实例的类别。由输入空间到输出空间的如下函数:
f(x)=sign(wx+b)f(x)=sign(w\cdot x+b)f(x)=sign(w⋅x+b)称为感知机。其中www和bbb为感知机模型参数,wRnw\in R^nw∈Rn叫做权值(weight)或权值向量(weight vector),bRb \in Rb∈R叫做偏置(bias),wxw \cdot xw⋅x表示www和xxx的内积,signsignsign是符号函数,即
sign(x)={+1,x01,x<0sign(x)= \begin{cases} +1 ,x \ge 0\\ -1 ,x \lt 0 \end{cases} sign(x)={+1,x≥0−1,x<0​感知机有如下几何解释:
        线性方程wx+b=0w \cdot x + b = 0w⋅x+b=0对应于特征空间RnR^nRn中的一个超平面SSS,其中www是超平面的法向量,bbb是超平面的截距。这个超平面将特征空间划分为两个部分。位于两部分的点(特征向量)分别被分为正、负两类。因此超平面S称为分离超平面(separating hyperplane)

2. 数据集的线性可分性

        给定一个数据集T={(x1,y1),(x2,y2),,(xn,yn)}T=\left\{(x_1, y_1), (x_2, y_2), \cdots, (x_n, y_n) \right\}T={(x1​,y1​),(x2​,y2​),⋯,(xn​,yn​)}其中xiRn,yiY={+1,1},i=1,2,,nx_i \in R^n, y_i \in Y=\{+1,-1\}, i=1,2,\cdots,nxi​∈Rn,yi​∈Y={+1,−1},i=1,2,⋯,n,如果存在某个超平面能够将数据集的正实例点和负实例点完全正确地划分到超平面两侧,即对所有yi=+1y_i=+1yi​=+1的实例iii,有wxi+b>0w\cdot x_i+b\gt 0w⋅xi​+b>0,对所有yi=1y_i=-1yi​=−1的实例iii,有wxi+b<0w\cdot x_i+b\lt 0w⋅xi​+b<0,则称数据集TTT为线性可分数据集(linearly separable data set);否则称数据集TTT线性不可分。

3. 感知机学习策略——损失函数极小化

        损失函数的一个自然选择是误分类点的总数。但是这样的损失函数不是参数w,bw,bw,b的连续可导函数,不易优化。损失函数的另一个选择是误分类点到超平面SSS的总距离,这是感知机所采用的。为此,首先写出输入空间RnR^nRn中任意一点x0x_0x0​到超平面SSS的距离:1w2wx0+b\frac{1}{||w||_2}|w\cdot x_0+b|∣∣w∣∣2​1​∣w⋅x0​+b∣这里w2||w||_2∣∣w∣∣2​是www的 l2l_2l2​范数。
        其次,对于误分类的数据(xi,yi)(x_i,y_i)(xi​,yi​)来说,yi(wxi+b)>0-y_i(w \cdot x_i+b)\gt0−yi​(w⋅xi​+b)>0。因此,误分类点xix_ixi​到超平面SSS的距离是1w2yi(wxi+b)-\frac{1}{||w||_2}y_i(w \cdot x_i+b)−∣∣w∣∣2​1​yi​(w⋅xi​+b)
        这样,假设超平面SSS的误分类点集合为MMM,那么所有误分类点到超平面SSS的总距离为1w2xiMyi(wxi+b)-\frac{1}{||w||_2}\sum_{x_i \in M}y_i(w \cdot x_i+b)−∣∣w∣∣2​1​xi​∈M∑​yi​(w⋅xi​+b)不考虑1w2\displaystyle\frac{1}{||w||_2}∣∣w∣∣2​1​,就得到感知机的损失函数,即
L(w,b)=xiMyi(wxi+b)\begin{aligned} L(w,b)&=-\sum_{x_i \in M}y_i(w \cdot x_i+b) \end{aligned}L(w,b)​=−xi​∈M∑​yi​(w⋅xi​+b)​显然L(w,b)0L(w,b)\ge0L(w,b)≥0,故我们的目标只要减小损失函数就行了。

4. 感知机学习算法

4.1 原始形式

输入:训练数据集T={(x1,y1),(x2,y2),,(xn,yn)}T=\{(x_1,y_1),(x_2,y_2),\cdots,(x_n,y_n)\}T={(x1​,y1​),(x2​,y2​),⋯,(xn​,yn​)},其中xiX,yi{+1,1},i=1,2,,nx_i \in X,y_i \in \{+1,-1\},i=1,2,\cdots,nxi​∈X,yi​∈{+1,−1},i=1,2,⋯,n;学习率η(0<η1)\eta(0\lt\eta\le1)η(0<η≤1):
输出w,bw,bw,b:感知机模型f(x)=sign(wx+b)f(x)=sign(w\cdot x+b)f(x)=sign(w⋅x+b)
(1) 选取初值w0,b0w_0,b_0w0​,b0​;
(2)在训练集中选取数据(xi,yi)(x_i,y_i)(xi​,yi​);
(3)如果J=yi(wxi+b)0J=-y_i(w\cdot x_i+b)\ge0J=−yi​(w⋅xi​+b)≥0(单样本损失函数)
w=wηJw=w+ηxiyib=bηJb=w+ηyi\begin{aligned} w&=w-\eta \frac{\partial J}{\partial w}=w+\eta x_i y_i \\ \\ b&=b-\eta\frac{\partial J}{\partial b}=w+\eta y_i \end{aligned}wb​=w−η∂w∂J​=w+ηxi​yi​=b−η∂b∂J​=w+ηyi​​
(4)转至(2),直至训练集中没有误分类点。

直观解释
当一个实例点被误分类,即位于分离超平面的错误一侧时,则调整w,bw,bw,b 的值,使分离超平面向该误分类点的一侧移动,以减少该误分类点与超平面的距离,直至超平面越过该误分类点使其被正确分类。
【注】
这里每次只用一个样本进行梯度下降,因为你不确定每次参数更新后误分类的点有多少集合MMM时变化的,损失函数无法构成w,bw,bw,b的连续函数。

4.2 对偶形式

        对偶,简单地说,就是从一个不同的角度去解答相似问题,但是问题的解是相通的。
        或者说原始问题比较难求解,我们去求解另外一个问题,希望通过更简单的方法得到原始问题的解。
        我们假设样本点(xi,yi)(x_i,y_i)(xi​,yi​)在更新过程中被使用了nin_ini​次,w,bw,bw,b使用零初始化,因此,从原始的学习过程可以得到,最后学习到的www和bbb可以分别表示为:
w=j=1nnjηxjyj=j=1nαjxjyjb=j=1nnjηyj=j=1nαjyj\begin{aligned} w&=\sum_{j=1}^n n_j \eta x_j y_j =\sum_{j=1}^n \alpha_j x_j y_j\\ \\ b&=\sum_{j=1}^n n_j \eta y_j=\sum_{j=1}^n \alpha_j y_j \end{aligned}wb​=j=1∑n​nj​ηxj​yj​=j=1∑n​αj​xj​yj​=j=1∑n​nj​ηyj​=j=1∑n​αj​yj​​其中w,bw,bw,b关于(xj,yj)(x_j,y_j)(xj​,yj​)的增量分别是αjxjyj\alpha_j x_j y_jαj​xj​yj​和αjyj\alpha_j y_jαj​yj​。
        考虑njn_jnj​的含义:如果njn_jnj​的值越大,那么意味着这个样本点经常被误分。什么样的点容易被误分?很明显就是离超平面很近的点。超平面稍微一点点移动,这个点就从正变负,或者从负变正。将上式带入到原始的感知机中,可以得到:
f(x)=sign(wx+b)=sign(j=1nnjηxjyjx+j=1nnjηyj)f(x)=sign(w\cdot x+b)=sign(\sum_{j=1}^n n_j \eta x_j y_j \cdot x+\sum_{j=1}^n n_j \eta y_j)f(x)=sign(w⋅x+b)=sign(j=1∑n​nj​ηxj​yj​⋅x+j=1∑n​nj​ηyj​)此时的学习目标不再是w,bw,bw,b,而是nj,j=1,2,,nn_j,j=1,2,\cdots,nnj​,j=1,2,⋯,n,故算法描述如下:

输入:线性可分的数据集 T={(x1,y1),(x2,y2),,(xn,yn)}T=\{(x_1,y_1),(x_2,y_2),\cdots,(x_n,y_n)\}T={(x1​,y1​),(x2​,y2​),⋯,(xn​,yn​)},其中xiX,yi{+1,1},i=1,2,,nx_i \in X,y_i \in \{+1,-1\},i=1,2,\cdots,nxi​∈X,yi​∈{+1,−1},i=1,2,⋯,n;学习率η(0<η1)\eta(0\lt\eta\le1)η(0<η≤1)
输出α\alphaα和bbb;感知机模型f(x)=sign(j=1nnjηxjyjx+j=1nnjηyj)=sign(j=1nαjxjyjx+b)f(x)=\displaystyle sign(\sum_{j=1}^n n_j \eta x_j y_j \cdot x+\sum_{j=1}^n n_j \eta y_j)=sign(\sum_{j=1}^n \alpha_j x_j y_j \cdot x+b)f(x)=sign(j=1∑n​nj​ηxj​yj​⋅x+j=1∑n​nj​ηyj​)=sign(j=1∑n​αj​xj​yj​⋅x+b),其中α=(α1,α2,,αn)T\alpha=(\alpha_1,\alpha_2,\cdots,\alpha_n)^Tα=(α1​,α2​,⋯,αn​)T
(1)α=0,b=0\alpha=0,\quad b=0α=0,b=0;
(2)在训练集中选取数据(xi,yi)(x_i,y_i)(xi​,yi​);
(3)如果J=yi(j=1nαjyjxjxi+b)0\displaystyle J= - y_i(\sum_{j=1}^n \alpha_j y_j x_j \cdot x_i+b) \ge 0J=−yi​(j=1∑n​αj​yj​xj​⋅xi​+b)≥0(单样本损失函数,本质上是每次ni=ni+1n_i=n_i+1ni​=ni​+1)
αi=αi+ηb=b+ηyi\begin{aligned} \alpha_i&=\alpha_i+\eta \\ b&=b+\eta y_i \end{aligned}αi​b​=αi​+η=b+ηyi​​(4)转至(2)直至没有误分类数据

ice Alex 发布了10 篇原创文章 · 获赞 5 · 访问量 287 私信 关注

标签:yi,yj,sign,感知机,xi,超平面
来源: https://blog.csdn.net/dreaming_coder/article/details/104070438

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有