趋近智
循环神经网络逐步处理序列信息,同时保持内部记忆。实现此功能的基本构件是简单RNN单元。
可将RNN单元视为在序列中每个时间步运行的计算引擎。对于输入序列中的每个元素 xt(在时间步 t),该单元接收两个输入:
利用这些输入,该单元执行计算以生成两个输出:
简单RNN单元内的核心计算包含结合当前输入和先前隐藏状态,使用学习到的权重和激活函数。本章引言展示了基本方程:
ht=f(Whhht−1+Wxhxt+bh) yt=g(Whyht+by)
我们来逐一分析:
tanh),它将值压缩到 [-1, 1] 的范围。这有助于调节信息流并减轻一些梯度问题(尽管不能完全解决,正如我们稍后将了解的)。softmax,回归使用线性函数)。此架构的一个重要特点是权重共享。相同的权重矩阵 (Wxh, Whh, Why) 和偏置 (bh, by) 在每个时间步都使用。这意味着网络学习一套参数来明确如何处理输入元素并更新其记忆,无论该元素在序列中的位置如何。这使得RNN在参数上具有高效性,并且能够泛化处理不同长度的序列。
我们可以可视化单个RNN单元及其连接:
单个RNN单元处理输入 xt 和先前状态 ht−1,以计算得到新状态 ht 和输出 yt。权重矩阵 (Wxh, Whh, Why) 在这些转换过程中应用。
真正的作用体现在将这些单元链接起来,形成循环连接。在时间步 t 计算得到的隐藏状态 ht 成为时间步 t+1 单元的输入 ht−1。这种时间上的“展开”使得信息能够流经序列:
一个RNN在三个时间步上展开。每个时间步由单元计算得到的隐藏状态 (ht) 作为输入传递给下一时间步 (t+1) 的单元。每个时间步都使用相同的单元参数(权重 W 和偏置 b)。
这种展开视图很有帮助,尤其是在思考梯度在训练期间如何反向流动(时间反向传播)时,我们将在接下来讨论这个。然而,请记住,在实际应用中,是相同的单元结构(具有相同的权重)被重复应用,而不是每个时间步都有不同的副本。这种结构使得RNN能够使用固定数量的参数处理任意长度的序列。
这部分内容有帮助吗?
© 2026 ApX Machine Learning用心打造