感知器算法
一旦判别函数的形式确定下来,不管它是线性的还是非线性的,剩下的问题就是如何确定它的系数,在模式识别中系数确定的一个主要方法就是通过对已知样本的训练和学习来得到,感知器算法就是通过训练样本模式的迭代和学习,产生线性或广义线性可分的模式判别函数,这个算法不需要对各类别中模式的统计性质做任何假设,因此称为确定性的方法
感知器的训练算法
已知两个训练模式分别属于ω1,ω2类,权向量的初始值为w(1),可任意取值,若xk∈ω1,wT(k)xk>0,xk∈ω2,wT(k)xk≤0,则在用全部训练模式集进行迭代训练时,第k次的训练步骤为:
- 若xk∈ω1,wT(k)xk≤0则分类器对第k个模式做了错误分类,此时应校正权向量,使得w(k+1)=w(k)+Cxk,其中C是校正增量
- 若xk∈ω2,wT(k)xk>0,此时同样分类器分类错误,则权向量应校正如下w(k+1)=w(k)−Cxk
- 若以上情况不符合,则表明该模式样本在第k次分类正确,因此权向量不变,即w(k+1)=w(k)
若对xk∈ω2的模式样本乘以−1则有:wT(k)xk≤0时w(k+1)=w(k)+Cxk,此时感知器算法可以统一写成:
w(k+1)={w(k)wT(k)xk>0w(k)+CxkwT(k)xk≤0
当用全部模式样本训练过一轮之后,只要有一个模式是判别错误的,则需要进行下一轮迭代,即用全部模式样本再训练一次
采用感知器算法的多类模式的分类
对M类模式存在M个判别函数{di,i=1,2,⋯,M},若xk∈ωi,则di>dj,∀j≠i
设有M种模式类别ω1,ω2,⋯,ωM,若在训练过程的第k次迭代时,一个属于ωi类的模式样本x送到分类器,则应先计算出M个判别函数:
dj(k)=wj(k)x,j=1,2,⋯,M
若di(k)>dj(k),j=1,2,⋯,M,∀j≠i的条件成立,则权向量不变即:
wj(k+1)=wj(k),j=1,2,⋯,M
若其中第l个权向量使得di(k)≤dl(k)则相应的权向量应做调整,即:
wi(k+1)=wi(k)+Cxwl(k+1)=wl(k)−Cxwj(k+1)=wj(k),j=1,2,⋯,M,j≠i,j≠l
一个分类器的判断性能最终要受到并未用于训练的那些未知样本的检验,要使一个分类器设计完善,必须采用有代表性的训练数据,它能够合理反映模式数据的整体。
要获得一个判别性能好的线性分类器,直观上训练样本是越多越好,但是实际上能收集到的样本数目会受到客观条件的限制,过多的训练样本在训练阶段会使计算机需要较长的运算时间,一般来说,合适的样本数目可如下估计,若k是模式的维数,令C=2(k+1),则通常选用的训练样本数目为C的10到20倍
可训练的确定性分类器的迭代算法
梯度法
设函数f(y)是向量y=(y1,y2,⋯,yn)T的函数,则f(y)的梯度定义为:
∇f(y)=ddyf(y)=(∂f∂y1 ∂f∂y2 ⋯ ∂f∂yn)T
从w(k)导出w(k+1)的一般关系式:
w(k+1)=w(k)−C{∂J(w,x)∂w}w=w(k)=w(k)−C⋅∇J
C是一个正比例因子,由于权向量是按J的梯度值减小,所以这种方法称为梯度法(最速下降法)
固定增量的逐次调整算法
设取准则函数为:
J(w,x)=|wTx|−wTx2
则J对w的微分式:
∂J∂w=12[x⋅sign(wTx)−x]
定义:
sign(wTx)={+1wTx>0−1wTx≤0
则由梯度法中w(k+1)和w(k)的关系有:
w(k+1)=w(k)+12[xk−xk⋅sign(wT(k)xk)]
其中xk是训练模式样本,k是指第k次迭代
w(k+1)=w(k)+C⋅{0wTxk>0xkwTxk≤0
可以看到感知器算法是梯度法的一个特例,在上式中C是预先选好的固定值,只要wTxk≤0就对权向量修正Cxk,因此称为固定增量算法,若模式是线性可分的,选择合适的准则函数J(w,x)算法就能给出解,假设模式不是线性可分的,算法的结果就会来回摆动,得不到收敛
最小平方误差LMSE算法
感知器算法只是当被分模式可用一个特定的判别界面分开时才收敛,在不可分的情况下,只要计算程序不终止,它就始终不收敛,即使在模式可分的情况下,也很难事先计算达到收敛时所需要的迭代次数,这样,在模式分类过程中,有时候会出现一次又一次迭代却不见收敛的情况,为此需要知道,发生迟迟不见收敛的情况时,到底是由于收敛速度过慢造成的呢还是由于所给的训练样本集不是线性可分造成的,最小平方误差算法除了对可分模式是收敛的以外,对于类别不可分的情况也能指出来
分类器的不等式方程
求两类问题的解相当于求一组线性不等式的解,因此,若给出分别属于ω1和ω2的两个模式样本的训练样本集,即可求出其权向量w的解,其性质应满足:
{wTx>0∀x∈ω1wTx<0∀x∈ω2
将属于ω2的模式全部乘以−1,可得对于全部模式都有wTx>0这个条件,设两类模式的训练样本总数为N,写成增广模式,则有不等式组:
Xw>0
式中:
X=⎛⎜
⎜
⎜
⎜
⎜
⎜
⎜
⎜
⎜
⎜
⎜⎝(x1)T⋮(xi)T−(xi+1)T⋮−(xN)T⎞⎟
⎟
⎟
⎟
⎟
⎟
⎟
⎟
⎟
⎟
⎟⎠,⎛⎜
⎜⎝(x1)T⋮(xi)T⎞⎟
⎟⎠∈ω1,⎛⎜
⎜⎝(xi+1)T⋮(xN)T⎞⎟
⎟⎠∈ω2w=(w1,w2,⋯,wn,wn+1)T
其中,(xi)T是第i个n维模式样本的增广向量,即(xi)T=(xi1,xi2,⋯,xin,1)T,i=1,2,⋯,N,它包含分属于于ω1,ω2中全部工训练用的样本,但属于ω2类的模式应乘以−1,所以X是一个N×(n+1)阶的矩阵
H-K算法
H-K 算法是求解 Xw=b,式中 b=(b1,b2,...,bN)T,b 的所有分量都是正值。这里要同时计算w 和 b,我们已知 X 不是 N×N 的方阵,通常是行多于列的 N×(n+1)阶的长方阵,属于超定方程,因此一般情况下,Xw=b 没有唯一确定解,但可求其线性最小二乘解。
设 Xw=b 的线性最小二乘解为 w∗,即使||Xw∗−b||=极小
采用梯度法,定义准则函数:
J(w,x,b)=12N∑i=1(wTxi−bi)2=12N∑i=1((xi)Tw−bi)2=12||Xw−b||2=12(Xw−b)T(Xw−b)
当 Xw=b 的条件满足时,J 达到最小值。由于上式中包括的 ∑Ni=1(wTxi−bi)2项为两个数量方差的和,且我们将使其最小化,因此也称之为最小均方误差算法。
使函数J同时对变量w和b求最小。对于w的梯度为:
∂J∂w=XT(Xw−b)
使用求导公式:y是标量,x=[x1 x2 ⋯ xd]T是d维列向量,则∂y∂x=[∂y∂x1 ∂y∂x2 ⋯ ∂y∂xd]T
∂Ax∂x=AT,∂xTx∂x=2x,∂xTAx∂x=Ax+ATx
使∂J∂w=0,得到XT(Xw−b)=0也就是XTXw=XTb,因为XTX为(n+1)×(n+1)的方阵,所以可求得解:
w=(XTX)−1XTb=X#b
由上式可知,只要求出b即可求得w,利用梯度法可求得b的迭代公式为:
b(k+1)=b(k)−C⋅(∂J∂b)b=b(k)
根据上述约束条件,在每次迭代中,b(k)的全部分量只能是正值。由 J 的准则函数式,J 也是正值,因此,当取校正增量 C 为正值时,为保证每次迭代中的 b(k)都是正值,应使(∂J∂b)b=b(k)为非正值,在此条件下,准则函数 J 的微分为:
−2(∂J∂b)b=b(k)=(Xw−b)+|Xw−b|
该式满足以下条件:
若[Xw(k)−b(k)]>0则−(∂J∂b)b=b(k)=Xw(k)−b(k)
若[Xw(k)−b(k)]<0则−(∂J∂b)b=b(k)=0
由b的迭代式和微分,有:
b(k+1)=b(k)+δb(k)δb(k)=C[Xw(k)−b(k)+|Xw(k)−b(k)|]
将此式代入w=X#b,有:
w(k+1)=X#b(k+1)=X#[b(k)+δb(k)]=w(k)+X#δb(k)
为简化期间,令e(k)=Xw(k)−b(k)可得H-K算法的迭代式:
设初值为b(1),其每一个分量均为正值,则:
w(1)=X#b(1)e(k)=Xw(k)−b(k)w(k+1)=w(k)+X#{C[Xw(k)−b(k)+|Xw(k)−b(k)|]}=w(k)+CX#[e(k)+|e(k)|]
由于:
X#e(k)=X#[Xw(k)−b(k)]=(XTX)−1XT[Xw(k)−b(k)]=w(k)−X#b(k)=0
因此:
w(k+1)=w(k)+CX#|e(k)|b(k+1)=b(k)+C[Xw(k)−b(k)+|Xw(k)−b(k)|]=b(k)+C[e(k)+|e(k)|]
模式类别可分性的判别
当不等式组Xw>0有解时,该算法对0<C≤1收敛,可求得解w
- 若e(k)=0,即Xw(k)=b(k)>0,有解
- 若e(k)>0,此时隐含Xw(k)≥b(k)>0的条件,有解,若继续迭代,可使#e(k) = 0$
- 若e(k)的全部分量停止变为正值,但不是全部为0,表明该模式类别线性不可分,因此若e(k)没有一个分量为正值,则b(k)不会再变化,所以不能求得解
e(k+1)与e(k)的迭代关系:
e(k+1)=Xw(k+1)−b(k+1)=X(w(k)+CX#|e(k)|)−(b(k)+C[e(k)+|e(k)|])=Xw(k)−b(k)+XCX#|e(k)|−C[e(k)+|e(k)|]=e(k)−Ce(k)+XCX#|e(k)|−C|e(k)|(这里XX#=1)=(I−C)e(k)||e(k+1)||2=(I−C)2||e(K)||2
所以当0<C≤1时,||e(k+1)||<||e(k)||模式可分,e(k)→0,所以当不等式组Xw>0有解时,该算法对0<C≤1收敛
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· C#/.NET/.NET Core技术前沿周刊 | 第 29 期(2025年3.1-3.9)
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异