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

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

模型结构

  • 在M-P模型的基础上
  • s ( k ) = ∑ i = 1 n w i x i ( k ) − θ = ∑ i = 0 n w i x i ( k ) = W T X ( 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} s(k)=i=1nwixi(k)θ=i=0nwixi(k)=WTX(k)
  • y ( k ) y(k) y(k)依然是二值输出, φ ( s ) \varphi(s) φ(s)可以取 φ ( s ) = U ( s ) \varphi(s)=U(s) φ(s)=U(s) φ ( s ) = S g n ( s ) \varphi(s)=Sgn(s) φ(s)=Sgn(s)
  • d ( k ) d(k) d(k)依然是期望输出(不是二值,是任意值)
  • 区别:使线性部分(任意值)来逼近理想输出

【神经网络】自适应线性单元——Adaline_第1张图片

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

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

  • 算法的存在性和收敛性

  • 设理想权值为 W ∗ W^* W

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

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

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

    J ( W ) = E [ ( d ( k ) − W T X ( k ) ) 2 ] = E [ ( d 2 ( k ) − 2 W T X ( k ) d ( k ) + W T X ( k ) X T ( k ) W ) ) ) ] = E [ d 2 ( k ) ] − 2 W T R X d + W T R X X W \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} 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

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

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

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

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

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

    ∂ J ( W ) ∂ W ∣ W = W ∗ = − 2 R X d + 2 R X X W ∗ = 0 \frac{\partial J(W)}{\partial W}\vert_{W=W^*}=-2R_{Xd}+2R_{XX}W^*=0 WJ(W)W=W=2RXd+2RXXW=0

    W ∗ = R X X − 1 R X d W^*=R_{XX}^{-1}R_{Xd} W=RXX1RXd

    带入得 J ( W ∗ ) = E [ d 2 ( k ) ] − W ∗ T R X d J(W^*)=E[d^2(k)]-W^{*T}R_{Xd} J(W)=E[d2(k)]WTRXd

    表面上看,如果知道了 R X X , R X d R_{XX},R_{Xd} RXX,RXd,就能够求出 W ∗ W^* W

    好看不好用

    问题:

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

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

梯度下降算法(Gradient Descent Algorithm)

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

  • 目标函数梯度: ∇ E = ∂ E ∂ W = − 2 R X d + 2 R X X W = 2 R X X ( W − R X X − 1 R X d ) = 2 R X X ( W − W ∗ ) \nabla E=\frac{\partial E}{\partial W}=-2R_{Xd}+2R_{XX}W=2R_{XX}(W-R_{XX}^{-1}R_{Xd})=2R_{XX}(W-W^*) E=WE=2RXd+2RXXW=2RXX(WRXX1RXd)=2RXX(WW)

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

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

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

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

    • 初始化:

      W ( 0 ) ← W(0)\larr W(0)较小的数, k ← 0 k\larr0 k0

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

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

      α \alpha α为学习率, 0 < α ≤ 1 0<\alpha\leq1 0<α1

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

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

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

    • 证明过程:

      W ( k + 1 ) − W ∗ = W ( k ) − α ∇ E − W ∗ = W ( k ) − W ∗ − 2 α R X X ( W ( k ) − W ∗ ) = ( I − 2 α R X X ) ( 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+1)W=W(k)αEW=W(k)W2αRXX(W(k)W)=(I2αRXX)(W(k)W)

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

      则上式可写为:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

      要对所有的特征值都满足

      ∴ 0 < α < 1 / m a x i { λ i } \therefore0<\alpha<1/max_i\{\lambda_i\} 0<α<1/maxi{λi}

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

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

  • ∇ E = 2 R X X ( W − W ∗ ) \nabla E=2R_{XX}(W-W^*) E=2RXX(WW)

  • ∇ E = ∂ E ∂ W = ∂ ∂ W { E [ ( d ( k ) − W T X ( k ) ) 2 ] } = − 2 { E [ ( d ( k ) − W T X ( 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=WE=W{E[(d(k)WTX(k))2]}=2{E[(d(k)WTX(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)] e(k)X(k)E[e(k)X(k)]

  • LMS算法:

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

    • 使用随机LMS来更新权值

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

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

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

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

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

最速下降法(The Steepest Descent Algorithm)

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

    1 N ∑ p e p ( k ) X p ( k ) ≈ E [ e ( k ) X ( k ) ] \frac{1}{N}\sum_p{e_p(k)X_p(k)}\approx E[e(k)X(k)] N1pep(k)Xp(k)E[e(k)X(k)]

  • 这样使得梯度下降更快

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

Madaline(Multiple Adalines)

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

应用实例

  • 自适应滤波器

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

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

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

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

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

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

  • 陷波滤波器

  • 信道均衡

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

    思路:

    用自适应滤波来实现。

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

你可能感兴趣的:(神经网络学习笔记,神经网络)