感知器算法
一旦判别函数的形式确定下来,不管它是线性的还是非线性的,剩下的问题就是如何确定它的系数,在模式识别中系数确定的一个主要方法就是通过对已知样本的训练和学习来得到,感知器算法就是通过训练样本模式的迭代和学习,产生线性或广义线性可分的模式判别函数,这个算法不需要对各类别中模式的统计性质做任何假设,因此称为确定性的方法
感知器的训练算法
已知两个训练模式分别属于\(\omega_1,\omega_2\)类,权向量的初始值为\(\mathbf{w}(1)\),可任意取值,若\(x^k \in \omega_1,\mathbf{w}^T(k)x^k \gt 0,x^k \in \omega_2,\mathbf{w}^T(k)x^k \leq 0\),则在用全部训练模式集进行迭代训练时,第\(k\)次的训练步骤为:
- 若\(x^k \in \omega_1,\mathbf{w}^T(k)x^k \leq 0\)则分类器对第\(k\)个模式做了错误分类,此时应校正权向量,使得\(\mathbf{w}(k + 1) = \mathbf{w}(k) + Cx^k\),其中\(C\)是校正增量
- 若\(x^k \in \omega_2,\mathbf{w}^T(k)x^k \gt 0\),此时同样分类器分类错误,则权向量应校正如下\(\mathbf{w}(k + 1) = \mathbf{w}(k) - Cx^k\)
- 若以上情况不符合,则表明该模式样本在第\(k\)次分类正确,因此权向量不变,即\(\mathbf{w}(k + 1) = \mathbf{w}(k)\)
若对\(x^k \in \omega_2\)的模式样本乘以\(-1\)则有:\(\mathbf{w}^T(k)x^k \leq 0\)时\(\mathbf{w}(k + 1) = \mathbf{w}(k) + Cx^k\),此时感知器算法可以统一写成:
\[\mathbf{w}(k + 1) = \begin{cases} \mathbf{w}(k) & \mathbf{w}^T(k)x^k \gt 0 \\ \mathbf{w}(k) + Cx^k & \mathbf{w}^T(k)x^k \leq 0 \end{cases} \]当用全部模式样本训练过一轮之后,只要有一个模式是判别错误的,则需要进行下一轮迭代,即用全部模式样本再训练一次
采用感知器算法的多类模式的分类
对M类模式存在M个判别函数\(\{d_i,i = 1,2,\cdots,M\}\),若\(x_k \in \omega_i\),则\(d_i \gt d_j,\forall j \neq i\)
设有M种模式类别\(\omega_1,\omega_2,\cdots,\omega_M\),若在训练过程的第\(k\)次迭代时,一个属于\(\omega_i\)类的模式样本\(x\)送到分类器,则应先计算出\(M\)个判别函数:
若\(d_i(k) \gt d_j(k),j = 1,2,\cdots,M,\forall j \neq i\)的条件成立,则权向量不变即:
\[\mathbf{w}_j(k + 1) = \mathbf{w}_j(k),j = 1,2,\cdots,M \]若其中第\(l\)个权向量使得\(d_i(k) \leq d_l(k)\)则相应的权向量应做调整,即:
\[\mathbf{w}_i(k + 1) = \mathbf{w}_i(k) + Cx \\ \mathbf{w}_l(k + 1) = \mathbf{w}_l(k) - Cx \\ \mathbf{w}_j(k + 1) = \mathbf{w}_j(k), j = 1,2,\cdots, M,j \neq i,j \neq l \]一个分类器的判断性能最终要受到并未用于训练的那些未知样本的检验,要使一个分类器设计完善,必须采用有代表性的训练数据,它能够合理反映模式数据的整体。
要获得一个判别性能好的线性分类器,直观上训练样本是越多越好,但是实际上能收集到的样本数目会受到客观条件的限制,过多的训练样本在训练阶段会使计算机需要较长的运算时间,一般来说,合适的样本数目可如下估计,若\(k\)是模式的维数,令\(C = 2(k + 1)\),则通常选用的训练样本数目为\(C\)的10到20倍
可训练的确定性分类器的迭代算法
梯度法
设函数\(f(y)\)是向量\(y = (y_1,y_2,\cdots,y_n)^T\)的函数,则\(f(y)\)的梯度定义为:
\[\nabla f(y) = \frac{d}{dy}f(y) = \left(\frac{\partial f}{\partial y_1}\ \frac{\partial f}{\partial y_2}\ \cdots\ \frac{\partial f}{\partial y_n}\right)^T \]从\(\mathbf{w}(k)\)导出\(\mathbf{w}(k + 1)\)的一般关系式:
\[\mathbf{w}(k + 1) = \mathbf{w}(k) - C\left\{\frac{\partial J(\mathbf{w},x)}{\partial \mathbf{w}}\right\}_{\mathbf{w} = \mathbf{w}(k)} = \mathbf{w}(k) - C\cdot \nabla J \]\(C\)是一个正比例因子,由于权向量是按\(J\)的梯度值减小,所以这种方法称为梯度法(最速下降法)
固定增量的逐次调整算法
设取准则函数为:
\[J(w,x) = \frac{|w^Tx| - w^Tx}{2} \]则\(J\)对\(w\)的微分式:
\[\frac{\partial J}{\partial w} = \frac{1}{2}[x\cdot sign(w^Tx) - x] \]定义:
\[sign(w^Tx) = \begin{cases} +1 & w^Tx \gt 0 \\ -1 & w^Tx \leq 0 \end{cases} \]则由梯度法中\(w(k + 1)\)和\(w(k)\)的关系有:
\[w(k + 1) = w(k) + \frac{1}{2}[x^k - x^k\cdot sign(w^T(k)x^k)] \]其中\(x^k\)是训练模式样本,\(k\)是指第\(k\)次迭代
\[w(k + 1) = w(k) + C\cdot\begin{cases} 0 & w^Tx^k \gt 0 \\ x^k & w^Tx^k \leq 0 \end{cases} \]可以看到感知器算法是梯度法的一个特例,在上式中\(C\)是预先选好的固定值,只要\(w^Tx^k \le 0\)就对权向量修正\(Cx^k\),因此称为固定增量算法,若模式是线性可分的,选择合适的准则函数\(J(w,x)\)算法就能给出解,假设模式不是线性可分的,算法的结果就会来回摆动,得不到收敛
最小平方误差LMSE算法
感知器算法只是当被分模式可用一个特定的判别界面分开时才收敛,在不可分的情况下,只要计算程序不终止,它就始终不收敛,即使在模式可分的情况下,也很难事先计算达到收敛时所需要的迭代次数,这样,在模式分类过程中,有时候会出现一次又一次迭代却不见收敛的情况,为此需要知道,发生迟迟不见收敛的情况时,到底是由于收敛速度过慢造成的呢还是由于所给的训练样本集不是线性可分造成的,最小平方误差算法除了对可分模式是收敛的以外,对于类别不可分的情况也能指出来
分类器的不等式方程
求两类问题的解相当于求一组线性不等式的解,因此,若给出分别属于\(\omega_1\)和\(\omega_2\)的两个模式样本的训练样本集,即可求出其权向量\(w\)的解,其性质应满足:
\[\begin{cases} w^Tx \gt 0 & \forall x \in \omega_1 \\ w^Tx \lt 0 & \forall x \in \omega_2 \end{cases} \]将属于\(\omega_2\)的模式全部乘以\(-1\),可得对于全部模式都有\(w^T x \gt 0\)这个条件,设两类模式的训练样本总数为\(N\),写成增广模式,则有不等式组:
\[Xw \gt 0 \]式中:
\[X = \left( \begin{matrix} (x^1)^T \\ \vdots \\ (x^i)^T \\ -(x^{i + 1})^T \\ \vdots \\ -(x^N)^T \end{matrix} \right),\left( \begin{matrix} (x^1)^T \\ \vdots \\ (x^i)^T \\ \end{matrix} \right) \in \omega_1,\left( \begin{matrix} (x^{i + 1})^T \\ \vdots \\ (x^N)^T \end{matrix} \right) \in \omega_2 \\ w = (w_1,w_2,\cdots,w_n,w_{n + 1})^T \]其中,\((x^i)^T\)是第\(i\)个\(n\)维模式样本的增广向量,即\((x^i)^T = (x_{i_1},x_{i_2},\cdots,x_{i_n},1)^T,i = 1,2,\cdots,N\),它包含分属于于\(\omega_1,\omega_2\)中全部工训练用的样本,但属于\(\omega_2\)类的模式应乘以\(-1\),所以\(X\)是一个\(N\times(n + 1)\)阶的矩阵
H-K算法
H-K 算法是求解 \(Xw=b\),式中 \(b=( b_1, b_2, ..., b_N)^T\),\(b\) 的所有分量都是正值。这里要同时计算\(w\) 和 \(b\),我们已知 \(X\) 不是 \(N\times N\) 的方阵,通常是行多于列的 \(N\times(n+1)\)阶的长方阵,属于超定方程,因此一般情况下,\(Xw=b\) 没有唯一确定解,但可求其线性最小二乘解。
设 \(Xw=b\) 的线性最小二乘解为 \(w^*\),即使\(||Xw^*-b||=\)极小
采用梯度法,定义准则函数:
当 \(Xw=b\) 的条件满足时,\(J\) 达到最小值。由于上式中包括的 \(\sum_{i = 1}^N(w^Tx_i - b_i)^2\)项为两个数量方差的和,且我们将使其最小化,因此也称之为最小均方误差算法。
使函数\(J\)同时对变量\(w\)和\(b\)求最小。对于\(w\)的梯度为:
使用求导公式:\(y\)是标量,\(x = [x_1\ x_2\ \cdots\ x_d]^T\)是\(d\)维列向量,则\(\frac{\partial y}{\partial x} = \left[\frac{\partial y}{\partial x_1}\ \frac{\partial y}{\partial x_2}\ \cdots\ \frac{\partial y}{\partial x_d}\right]^T\)
\[\frac{\partial Ax}{\partial x} = A^T,\frac{\partial x^Tx}{\partial x} = 2x,\frac{\partial x^TAx}{\partial x} = Ax + A^Tx \]使\(\frac{\partial J}{\partial w} = 0\),得到\(X^T(Xw - b) = 0\)也就是\(X^TXw = X^Tb\),因为\(X^TX\)为\((n + 1)\times (n + 1)\)的方阵,所以可求得解:
\[w = (X^TX)^{-1}X^Tb = X^\#b \]由上式可知,只要求出\(b\)即可求得\(w\),利用梯度法可求得\(b\)的迭代公式为:
\[b(k + 1) = b(k) - C\cdot\left(\frac{\partial J}{\partial b}\right)_{b = b(k)} \]根据上述约束条件,在每次迭代中,\(b(k)\)的全部分量只能是正值。由 \(J\) 的准则函数式,\(J\) 也是正值,因此,当取校正增量 \(C\) 为正值时,为保证每次迭代中的 \(b(k)\)都是正值,应使\(\left(\frac{\partial J}{\partial b}\right)_{b = b(k)}\)为非正值,在此条件下,准则函数 J 的微分为:
\[-2\left(\frac{\partial J}{\partial b}\right)_{b = b(k)} = (Xw - b) + |Xw - b| \]该式满足以下条件:
若\([Xw(k) - b(k)] \gt 0\)则\(-\left(\frac{\partial J}{\partial b}\right)_{b = b(k)} = Xw(k) - b(k)\)
若\([Xw(k) - b(k)] \lt 0\)则\(-\left(\frac{\partial J}{\partial b}\right)_{b = b(k)} = 0\)
由\(b\)的迭代式和微分,有:
将此式代入\(w = X^\#b\),有:
\[w(k + 1) = X^\# b(k + 1) = X^\#[b(k) + \delta b(k)] = w(k) + X^\#\delta b(k) \]为简化期间,令\(e(k) = Xw(k) - b(k)\)可得H-K算法的迭代式:
设初值为\(b(1)\),其每一个分量均为正值,则:
由于:
\[X^\#e(k) = X^\#[Xw(k) - b(k)] = (X^TX)^{-1}X^T[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 \lt C \leq 1\)收敛,可求得解\(w\)
- 若\(e(k) = 0\),即\(Xw(k) = b(k) > 0\),有解
- 若\(e(k) > 0\),此时隐含\(Xw(k) \geq b(k) > 0\)的条件,有解,若继续迭代,可使#e(k) = 0$
- 若\(e(k)\)的全部分量停止变为正值,但不是全部为0,表明该模式类别线性不可分,因此若\(e(k)\)没有一个分量为正值,则\(b(k)\)不会再变化,所以不能求得解
\(e(k + 1)\)与\(e(k)\)的迭代关系:
\[\begin{aligned} 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 \end{aligned} \]所以当\(0 < C \leq 1\)时,\(||e(k + 1)|| < ||e(k)||\)模式可分,\(e(k) \rightarrow 0\),所以当不等式组\(Xw > 0\)有解时,该算法对\(0 < C \leq 1\)收敛
标签:lecture3,mathbf,模式识别,判别函数,模式,frac,partial,omega,Xw From: https://www.cnblogs.com/eryoyo/p/16793671.html