
RNN一、反向传播BPTT模型中的所有参数Wx、Ws、Wo 一开始都是随机乱填的数字预测全是错的前向传播输入数据算出预测结果算出误差 Loss只知道错了多少不知道怎么改参数反向传播从误差往回求导算出梯度知道每个权重改多少能减少误差权重更新拿着梯度修正 、、 的数值二、RNN图结构Xt−1,Xt,Xt1不同时刻的输入向量Wx输入权重矩阵用来把当前输入Xt映射到隐藏层维度此时所有输入向量共享一套权重矩阵Ws状态循环权重矩阵控制历史信息传递是 RNN 循环核心Wo输出权重矩阵把隐藏状态St变换为最终输出St−1,St,St1各时刻隐藏状态记忆Ot−1,Ot,Ot1各时刻输出结果LxX时刻的损失就是求梯度是模型自我学习梯度为正数这个权重现在偏大要减小才能降低损失梯度为负数这个权重现在偏小要增大才能降低损失RNN 核心计算公式前向传播Sttanh(WxXtWsSt−1bs)当前时刻输出OtWoStbo三、计算过程假设计算t3时刻的梯度此时L3包含三个时刻的参数Wx此时梯度为L3分别对三个时刻的Wx求导转化为复合函数求导提取相同项可以推出在任意t时刻下有如下公式LSTM计算t3时刻的梯度等于L分别对Wxf(3)Wxf(2)Wxf(1)的导数之和分别计算这三个导数对Wxf(3)L到达Wxf(3)只有一条路径逐步复合求导即可对Wxf(3)L到达Wxf(2)有五条路径每条路径分别复合求导再相加依次类推当tm时L(m)对Wxf(n)求导中间项就为C(t)对C(t-1)求导(t n; t m; t) 此时c可以输入一个接近1的值缓解梯度消失或梯度爆炸