![](https://csdnimg.cn/release/download_crawler_static/87485963/bg4.jpg)
ROs,t=[Hs,t1]Rs,tO=[Hs,t1]
ΘHs−1=[UTs−1WTs−1(\boldsymbolbHs−1)T]TΘs−1H=[Us−1TWs−1T(\boldsymbolbs−1H)T]T
ΘOs−1=[VTs−1(\boldsymbolbOs−1)T]TΘs−1O=[Vs−1T(\boldsymbolbs−1O)T]T
RNNs 的参数更新方式和所采用的优化算法密切相关, 基于 SGD 算法的 RNNs 模型优
化通常借助于最小化目标函数反向传播完成. 常用目标函数有交叉熵函数、均方误差函
数、Logistic 函数等. 这里仅考虑均方误差目标函数
J^(Θs−1)=∑t=t0τ∥∥Y∗s,t−Os,t∥∥2F2m(τ−t0+1)J^(Θs−1)=∑t=t0τ‖Ys,t∗−Os,t‖F22m(τ−t0+1)
其中, Y∗s,t∈Rm×dYs,t∗∈Rm×d 为 Xs,tXs,t 对应的期望输出; Θs−1Θs−1 为网络中的所有
参数矩阵; t0t0 表示输出层的起始输出时间步, 如果是分类问题, t0=τt0=τ, 如果是序列预测
问题, 则 t0=1t0=1, 下文延续该设定, 不再赘述.
令∇^Os=∂J^(Θs−1)∂ΘOs−1∇^sO=∂J^(Θs−1)∂Θs−1O, 由式(9)和链导法则, 则∇^Os∇^sO 为
∇^Os=∑t=t0τ(ROs,t)TΔ^Os,t∇^sO=∑t=t0τ(Rs,tO)TΔ^s,tO
其中, Δ^Os,t=∂J^(Θs−1)∂ZOs,tΔ^s,tO=∂J^(Θs−1)∂Zs,tO, 即
Δ^Os,t=⎧⎩⎨⎪⎪(Os,t−Y∗s,t)∘σ′(ZOs,t)m(τ−t0+1),0,t≥t0t<t0Δ^s,tO={(Os,t−Ys,t∗)∘σ′(Zs,tO)m(τ−t0+1),t≥t00,t<t0
式中, ∘∘为 Hadamard 积, ZOs,tZs,tO 为输出层非激活线性输出, 即
ZOs,t=ROs,tΘOs−1Zs,tO=Rs,tOΘs−1O
则该层参数更新规则可定义为
ΘOs=ΘOs−1−α∇^OsΘsO=Θs−1O−α∇^sO
其中, αα 为学习率.
令∇^Hs=∂J(Θs−1)∂ΘHs−1∇^sH=∂J(Θs−1)∂Θs−1H, 根据 BPTT (Back propagation through
time)算法
[26]
, 由式(9)和链导法则可得
∇^Hs=∑t=1τ(RHs,t)TΔ^Hs,t∇^sH=∑t=1τ(Rs,tH)TΔ^s,tH
其中, Δ^Hs,t=∂J^(Θs−1)∂ZHs,tΔ^s,tH=∂J^(Θs−1)∂Zs,tH 为目标函数对于隐藏层非激活线
性输出的梯度, 即
Δ^Hs,t=⎧⎩⎨(Δ~Hs,t(Θ~Hs−1)T)∘φ′(ZHs,t),(Δ^Os,tVTs−1)∘φ′(ZHs,t),t<τt=τΔ^s,tH={(Δ~s,tH(Θ~s−1H)T)∘φ′(Zs,tH),t<τ(Δ^s,tOVs−1T)∘φ′(Zs,tH),t=τ
其
中, Δ~Hs,t=[Δ^Os,t,Δ^Hs,t+1],Δ~s,tH=[Δ^s,tO,Δ^s,t+1H], Θ~Hs−1=[Vs−1,Ws−1],Θ~s−1H=[Vs−1
,Ws−1], ZHs,tZs,tH 为隐藏层非激活线性输出, 即
ZHs,t=RHs,tΘHs−1Zs,tH=Rs,tHΘs−1H
则该层参数更新规则可定义为
ΘHs=ΘHs−1−α∇^HsΘsH=Θs−1H−α∇^sH
1.2 RLS 算法