【神经网络】自适应线性单元——Adaline

自适应线性单元–Adaptive Linear Units–Adaline

模型结构

  • 在M-P模型的基础上
  • s(k)=i=1nwixi(k)θ=i=0nwixi(k)=WTX(k)\begin{aligned}s(k)&=\sum_{i=1}^nw_ix_i(k)-\theta\\&=\sum_{i=0}^nw_ix_i(k)\\&=W^TX(k)\end{aligned}
  • y(k)y(k)依然是二值输出,φ(s)\varphi(s)可以取φ(s)=U(s)\varphi(s)=U(s)φ(s)=Sgn(s)\varphi(s)=Sgn(s)
  • d(k)d(k)依然是期望输出(不是二值,是任意值)
  • 区别:使线性部分(任意值)来逼近理想输出

【神经网络】自适应线性单元——Adaline

  • 学习算法:LMS,利用d(k)s(k)d(k)和s(k)的差别,使e(k)=d(k)s(k)e(k)=d(k)-s(k),来调整权重wiw_i,使得线性输出s(k)d(k)s(k)\rarr d(k),从而使得y(k)y(k)逼近理想的二值函数

最小均方误差算法(The Least Mean Squared Error Algorithm,LMS)

  • 算法的存在性和收敛性

  • 设理想权值为WW^*

    s(k)=WTX(k),W=[w0,w1,...,wn]T,X(k)=[1,x1(k),...,xn(k)]Ts(k)=W^TX(k),W=[w_0,w_1,...,w_n]^T,X(k)=[1,x_1(k),...,x_n(k)]^T

    则误差e(k)e(k)为:e(k)=d(k)WTX(k)e(k)=d(k)-W^TX(k)e(k)e(k)是关于WW的线性函数

    定义误差平方的数学期望为J(W)=E[e2(k)]WminJ(W)=E[e^2(k)]\xrightarrow{W}\min选取合适的WW,使得J(W)J(W)取得最小值

    J(W)=E[(d(k)WTX(k))2]=E[(d2(k)2WTX(k)d(k)+WTX(k)XT(k)W)))]=E[d2(k)]2WTRXd+WTRXXW\begin{aligned}J(W)&=E[(d(k)-W^TX(k))^2]=E[(d^2(k)-2W^TX(k)d(k)+W^TX(k)X^T(k)W)))]\\&=E[d^2(k)]-2W^TR_{Xd}+W^TR_{XX}W\end{aligned}

    第一项为理想输出的数学期望,为常数,不关心;

    第二项中,RXd=E[X(k)d(k)]R_{Xd}=E[X(k)d(k)]x(k)d(k)x(k)和d(k)的互相关矢量

    第三项中,RXX=E[X(k)XT(k)]R_{XX}=E[X(k)X^T(k)]X(k)X(k)的自相关矩阵

    J(W)J(W)的最小值,对其求导:

    J(W)W=0\frac{\partial J(W)}{\partial W}=0

    J(W)WW=W=2RXd+2RXXW=0\frac{\partial J(W)}{\partial W}\vert_{W=W^*}=-2R_{Xd}+2R_{XX}W^*=0

    W=RXX1RXdW^*=R_{XX}^{-1}R_{Xd}

    带入得J(W)=E[d2(k)]WTRXdJ(W^*)=E[d^2(k)]-W^{*T}R_{Xd}

    表面上看,如果知道了RXX,RXdR_{XX},R_{Xd},就能够求出WW^*

    好看不好用

    问题:

    1. 在实际应用中,互相关矢量和自相关矩阵不知道
    2. 两个矩阵维数太高,不好估计
    3. 在这里面还需要求RXX1R_{XX}^{-1},大矩阵求逆很困难
    4. 只对线性模型成立,对非线性模型不成立WRXX1RXdW^*\not=R_{XX}^{-1}R_{Xd}

    在实际应用中,用迭代的方式来解决。

梯度下降算法(Gradient Descent Algorithm)

  • 目标函数:J(W)=E[e2(k)]=E[d2(k)]2WTRXd+WTRXXW=EJ(W)=E[e^2(k)]=E[d^2(k)]-2W^TR_{Xd}+W^TR_{XX}W=E

  • 目标函数梯度:E=EW=2RXd+2RXXW=2RXX(WRXX1RXd)=2RXX(WW)\nabla E=\frac{\partial E}{\partial W}=-2R_{Xd}+2R_{XX}W=2R_{XX}(W-R_{XX}^{-1}R_{Xd})=2R_{XX}(W-W^*)

  • 为了调整WW使得WWW\rarr W^*,需要使KaTeX parse error: Got function '\min' with no arguments as subscript at position 10: E\rarr E_\̲m̲i̲n̲

  • 权值调整思路:梯度下降法

    EE是关于WW的二次函数,存在一个最低点使得EE得到最小值KaTeX parse error: Got function '\min' with no arguments as subscript at position 3: E_\̲m̲i̲n̲,通过求EE的梯度,按照梯度增加的相反方向调整权值,就能使误差能量朝下降的方向发展。

  • 梯度下降法(假设E\nabla E已知)

    • 初始化:

      W(0)W(0)\larr较小的数,k0k\larr0

    • 使用梯度下降法更新权重

      W(k+1)W(k)+α(E)W(k+1)\larr W(k)+\alpha(-\nabla E)

      α\alpha为学习率,0<α10<\alpha\leq1

    • 循环:kk+1k\larr k+1直到收敛(判断误差能量是否足够小)

  • 敛散性分析(通过分析可以得到学习率应该怎么取

    • 误差能量的梯度为E=2RXX(WW)\nabla E=2R_{XX}(W-W^*),通过迭代使得W(k)kWW(k)\xrightarrow{k\rarr\infty}W^*

    • 证明过程:

      W(k+1)W=W(k)αEW=W(k)W2αRXX(W(k)W)=(I2αRXX)(W(k)W)\begin{aligned}W(k+1)-W^*=W(k)-\alpha\nabla E-W^*&=W(k)-W^*-2\alpha R_{XX}(W(k)-W^*)\\&=(I-2\alpha R_{XX})(W(k)-W^*)\end{aligned}

      定义W(k)W=V(k)W(k)-W^*=V(k)

      则上式可写为:

      V(k+1)=(I2αRXX)V(k)V(k+1)=(I-2\alpha R_{XX})V(k)

      接下来只需要证明V(k)k0V(k)\xrightarrow{k\rarr\infty}0

      由于RXXR_{XX}为自相关矩阵,是对称矩阵,根据其性质可以作特征值分解,即存在一个可逆矩阵QQ,使得Q1RXXQ=ΛQ^{-1}R_{XX}Q=\varLambda

      RXX=QΛQ1\therefore R_{XX}=Q\varLambda Q^{-1},其中Λ\varLambda为对角阵,对角元素为RXXR_{XX}的特征值。

      V(k+1)=(QQ12αQΛQ1)V(k)=Q(I2αΛ)Q1V(k)\therefore V(k+1)=(QQ^{-1}-2\alpha Q\varLambda Q^{-1})V(k)=Q(I-2\alpha\varLambda)Q^{-1}V(k)

      (I2αΛ)(I-2\alpha\varLambda)为对角阵,两边同时左乘Q1Q^{-1}

      Q1V(k+1)=(I2αΛ)Q1V(k)Q^{-1}V(k+1)=(I-2\alpha\varLambda)Q^{-1}V(k)

      V(k)=Q1V(k)V'(k)=Q^{-1}V(k),则V(k+1)=(I2αΛ)V(k)V'(k+1)=(I-2\alpha\varLambda)V'(k)

      V(1)=(I2αΛ)V(0),V(2)=(I2αΛ)2V(0),...\therefore V'(1)=(I-2\alpha\varLambda)V'(0),V'(2)=(I-2\alpha\varLambda)^2V'(0),...

      V(k)=(I2αΛ)kV(0)V'(k)=(I-2\alpha\varLambda)^kV'(0)

      (I2αΛ)(I-2\alpha\varLambda)为对角阵,如果要对角阵趋近于零,要看对角矩阵中各个元素的k次方是否趋近于零

      Λ=[λ100λn]\varLambda=\begin{bmatrix}\lambda_1\quad\quad0\\\ddots\\0\quad\quad\lambda_n\end{bmatrix}

      即要使(12αλi)k0,(i=1,...,n)(1-2\alpha\lambda_i)^k\rarr0,(i=1,...,n)

      1<(12αλi)<1-1<(1-2\alpha\lambda_i)<1,在这里,唯一的变量是α\alphaα\alpha的条件为0<α<1/λi0<\alpha<1/\lambda_i

      要对所有的特征值都满足

      0<α<1/maxi{λi}\therefore0<\alpha<1/max_i\{\lambda_i\}

      实际情况中特征值并不好求,所以α\alpha只能估算

LMS的随机逼近算法(Stochastic Approximation Algorithm of LMS)

  • E=2RXX(WW)\nabla E=2R_{XX}(W-W^*)

  • E=EW=W{E[(d(k)WTX(k))2]}=2{E[(d(k)WTX(k))X(k)]}=2{E[e(k)X(k)]}\nabla E=\frac{\partial E}{\partial W}=\frac{\partial}{\partial W}\{E[(d(k)-W^TX(k))^2]\}=-2\{E[(d(k)-W^TX(k))X(k)]\}=-2\{E[e(k)X(k)]\}

  • 期望本身还是没有办法求,但如果有大量的样本,可以求出大量的误差,可以用样本期望来代替

  • 用一个样本来逼近:e(k)X(k)E[e(k)X(k)]e(k)X(k)\approx E[e(k)X(k)]

  • LMS算法:

    • 初始化:W(0)W(0)为很小的随机数,k0k\larr0

    • 使用随机LMS来更新权值

      W(k+1)=W(k)+αe(k)X(k)=W(k)+α(d(k)WTX(k))X(k)W(k+1)=W(k)+\alpha e(k)X(k)=W(k)+\alpha(d(k)-W^TX(k))X(k)

      其中α\alpha为学习率,0<α10<\alpha\leq1

    • 迭代知道收敛:kk+1k\larr k+1

  • 对该算法进行分析可得到结论,算法收敛的条件是:kα2(k)<,kα(k)\sum_k\alpha^2(k)<\infty,\sum_k\alpha(k)\rarr\infty

通常将该算法就成为LMS算法。

最速下降法(The Steepest Descent Algorithm)

  • 与随即逼近算法的区别为,不用单个样本的结果代替数学期望,而是使用N个样本来计算期望:

    1Npep(k)Xp(k)E[e(k)X(k)]\frac{1}{N}\sum_p{e_p(k)X_p(k)}\approx E[e(k)X(k)]

  • 这样使得梯度下降更快

  • 有改进,但是计算量有增加

Madaline(Multiple Adalines)

  • 多个线性单元构成的系统

应用实例

  • 自适应滤波器

  • 时间序列预测(天气预报)

    • 给定事时间序列{x(k),k=1,...,M}\{x(k),k=1,...,M\}

      利用x(t),x(t1),...,x(tp)x(t),x(t-1),...,x(t-p)来预测x(t+1)x(t+1)

      求:d(t)=x(t+1)d(t)=x(t+1)

      x(t+1)=i=0p1aix(ti)+n(t)x(t+1)=\sum_{i=0}^{p-1}a_ix(t-i)+n(t)使得y(t)x(t+1)y(t)\rarr x(t+1)

      从而通过y(t)=i=0p1aix(ti)y(t)=\sum_{i=0}^{p-1}a_ix(t-i)预测d(t)d(t)

  • 陷波滤波器

  • 信道均衡

    手机信号源为a(t)a(t),发送出来后通过信道h(t)h(t)得到ah(t)a_h(t),信道中还有信号干扰n(t)n(t),最后接收到的信号为x(t)x(t),设计一个自适应信道均衡器,使输出y(t)y(t)逼近a(t)a(t)

    思路:

    用自适应滤波来实现。

    在训练阶段使用固定信号来训练滤波器,即训练阶段知道a(t)a(t)能收集到输出x(t)x(t),就可以进行训练。