St为t时刻的隐含层状态值;
Ot为t时刻的输出值;
①是隐含层计算公式,U是输入x的权重矩阵,St-1是t-1时刻的状态值,W是St-1作为输入的权重矩阵,ΦΦ是激活函数;
②是输出层计算公司,V是输出层的权重矩阵,f是激活函数。
损失函数(loss function)采用交叉熵Lt=−ot¯¯¯¯logotLt=−ot¯logot(Ot是t时刻预测输出,ot¯¯¯¯ot¯是t时刻正确的输出)
那么对于一次训练任务中,损失函数L=∑Ti=1−ot¯¯¯¯logotL=∑i=1T−ot¯logot, T是序列总长度。
假设初始状态St为0,t=3 有三段时间序列时,由 ① 带入②可得到
t1、t2、t3 各个状态和输出为:
t=1:
状态值:s1=Φ(Ux1+Ws0)s1=Φ(Ux1+Ws0)
输出:o1=f(VΦ(Ux1+Ws0))o1=f(VΦ(Ux1+Ws0))
t=2:
状态值:s2=Φ(Ux2+Ws1)s2=Φ(Ux2+Ws1)
输出:o2=f(VΦ(Ux2+Ws1))=f(VΦ(Ux2+WΦ(Ux1+Ws0)))o2=f(VΦ(Ux2+Ws1))=f(VΦ(Ux2+WΦ(Ux1+Ws0)))
t=3:
状态值:s3=Φ(Ux3+Ws2)s3=Φ(Ux3+Ws2)
输出:o3=f(VΦ(Ux3+Ws2))=⋯=f(VΦ(Ux3+WΦ(Ux2+WΦ(Ux1+Ws0))))