循环神经网络:从梯度消失挑战到情感分析实现
1. 梯度消失问题
使用有状态网络模型的动机在于捕捉输入序列中的长期依赖关系。从理论上讲,具有大内存库(即显著规模的循环层)的循环神经网络(RNN)能够总结这些依赖关系。实际上,RNN 是通用的函数表示,也就是说,有足够的神经元和合适的参数设置,RNN 可以表示输入和输出序列之间的任何函数映射。
然而,理论并不一定能转化为实践。更重要的是,通过应用梯度下降算法从头开始训练 RNN 学习现实的函数映射是否可行。为了探究这个问题,我们从最简单的 RNN 开始,它有一个输入神经元、一个输出神经元和一个全连接的单神经元循环层。
给定非线性函数 $f$,循环层隐藏神经元在时间步 $t$ 的激活 $h_t$ 可以表示为:
$h_t = f(w_{in}^t i_t + w_{rec}^{t - 1} h_{t - 1})$
我们尝试计算隐藏神经元的激活如何响应 $k$ 个时间步之前输入对数的变化。通过求偏导数并应用链式法则:
$\frac{\partial h_t}{\partial i_{t - k}} = f’(w_{in}^t i_t + w_{rec}^{t - 1} h_{t - 1}) \frac{\partial}{\partial i_{t - k}} (w_{in}^t i_t + w_{rec}^{t - 1} h_{t - 1})$
由于输入和循环权重的值与时间步 $t - k$ 的输入对数无关,我们可以进一步简化这个表达式:
$\frac{\partial h_t}{\partial i_{t - k}} = f’(w_{in}^t i_t + w_{re
超级会员免费看
订阅专栏 解锁全文
1287

被折叠的 条评论
为什么被折叠?



