循环神经网络的训练挑战与解决方案
1. 多层网络结构与训练数据需求
在某些情况下,矩阵 $W(k)$ 的大小为 $p × (p + p) = p × 2p$。从隐藏层到输出层的转换与单层网络保持一致。这种方法是单层网络情况的直接多层扩展。在实际应用中,通常使用两到三层网络。若要使用更多层,获取更多训练数据以避免过拟合就显得尤为重要。
2. 循环网络训练的挑战
循环神经网络训练难度较大,原因在于时间分层网络是深度网络,特别是当输入序列较长时。也就是说,时间分层的深度取决于输入。和所有深度网络一样,损失函数对不同时间层的敏感程度(即损失梯度)变化很大。此外,尽管损失函数对不同层的变量梯度变化显著,但不同时间层共享相同的参数矩阵。这种不同层的敏感性变化与参数共享的结合,可能导致一些异常不稳定的影响。
2.1 梯度消失和爆炸问题
循环神经网络面临的主要挑战是梯度消失和爆炸问题。以每层只有一个单元的循环网络为例更容易理解这些挑战。
考虑一组连续的 $T$ 层,每层之间应用双曲正切激活函数 $\Phi(·)$。一对隐藏节点之间的共享权重用 $w$ 表示,$h_1…h_T$ 是各层的隐藏值,$\Phi’(h_t)$ 是隐藏层 $t$ 中激活函数的导数,$w_t$ 表示第 $t$ 层中共享权重 $w$ 的副本,以便研究反向传播更新的效果。$\frac{\partial L}{\partial h_t}$ 是损失函数关于隐藏激活 $h_t$ 的导数。使用反向传播可得出以下更新方程:
$\frac{\partial L}{\partial h_t} = \Phi’(h_{t + 1}) · w_{t + 1} · \fra
超级会员免费看
订阅专栏 解锁全文
1933

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



