返回介绍

10.1 展开计算图

发布于 2024-01-20 12:27:18 字数 3362 浏览 0 评论 0 收藏 0

计算图是形式化一组计算结构的方式,如那些涉及将输入和参数映射到输出和损失的计算。综合的介绍请参考第6.5.1节。本节,我们对展开(unfolding)递归或循环计算得到的重复结构进行解释,这些重复结构通常对应于一个事件链。展开(unfolding)这个计算图将导致深度网络结构中的参数共享。

例如,考虑动态系统的经典形式:

其中s(t)称为系统的状态。

s在时刻t的定义需要参考时刻t-1时同样的定义,因此式(10.1)是循环的。

对有限时间步τ,τ-1次应用这个定义可以展开这个图。例如τ=3,我们对式(10.1)展开,可以得到

以这种方式重复应用定义,展开等式,就能得到不涉及循环的表达。现在我们可以使用传统的有向无环计算图呈现这样的表达。

式(10.1)和式(10.3)的展开计算图如图10.1所示。

图10.1 将式(10.1)描述的经典动态系统表示为展开的计算图。每个节点表示在某个时刻t的状态,并且函数f将t处的状态映射到t+1处的状态。所有时间步都使用相同的参数(用于参数化f的相同θ值)

作为另一个例子,让我们考虑由外部信号x(t)驱动的动态系统,

我们可以看到,当前状态包含了整个过去序列的信息。

循环神经网络可以通过许多不同的方式建立。就像几乎所有函数都可以被认为是前馈网络,本质上任何涉及循环的函数都可以视为一个循环神经网络。

很多循环神经网络使用式(10.5)或类似的公式定义隐藏单元的值。为了表明状态是网络的隐藏单元,我们使用变量h代表状态重写式(10.4):

如图10.2所示,典型RNN会增加额外的架构特性,如读取状态信息h进行预测的输出层。

图10.2 没有输出的循环网络。此循环网络只处理来自输入x的信息,将其合并到经过时间向前传播的状态h。(左)回路原理图。黑色方块表示单个时间步的延迟。(右)同一网络被视为展开的计算图,其中每个节点现在与一个特定的时间实例相关联

当训练循环网络根据过去预测未来时,网络通常要学会使用h(t)作为过去序列(直到t)与任务相关方面的有损摘要。此摘要一般而言一定是有损的,因为其映射任意长度的序列(x(t),x(t-1),x(t-2),…,x(2),x(1))到一固定长度的向量h(t)。根据不同的训练准则,摘要可能选择性地精确保留过去序列的某些方面。例如,如果在统计语言建模中使用的RNN,通常给定前一个词预测下一个词,可能没有必要存储时刻t前输入序列中的所有信息;而仅仅存储足够预测句子其余部分的信息。最苛刻的情况是我们要求h(t)足够丰富,并能大致恢复输入序列,如自编码器框架(第14章)。

式(10.5)可以用两种不同的方式绘制。一种方法是为可能在模型的物理实现中存在的部分赋予一个节点,如生物神经网络。在这个观点下,网络定义了实时操作的回路,如图10.2的左侧,其当前状态可以影响其未来的状态。在本章中,我们使用回路图的黑色方块表明在时刻t的状态到时刻t+1的状态单个时刻延迟中的相互作用。另一个绘制RNN的方法是展开的计算图,其中每一个组件由许多不同的变量表示,每个时间步一个变量,表示在该时间点组件的状态。每个时间步的每个变量绘制为计算图的一个独立节点,如图10.2的右侧。我们所说的展开是将左图中的回路映射为右图中包含重复组件的计算图的操作。目前,展开图的大小取决于序列长度。

我们可以用一个函数g(t)代表经t步展开后的循环:

函数g(t)将全部的过去序列(x(t),x(t-1),x(t-2),…,x(2),x(1))作为输入来生成当前状态,但是展开的循环架构允许我们将g(t)分解为函数f的重复应用。因此,展开过程引入两个主要优点:

(1)无论序列的长度,学成的模型始终具有相同的输入大小,因为它指定的是从一种状态到另一种状态的转移,而不是在可变长度的历史状态上操作。

(2)我们可以在每个时间步使用相同参数的相同转移函数f。

这两个因素使得学习在所有时间步和所有序列长度上操作单一的模型f是可能的,而不需要在所有可能时间步学习独立的模型g(t)。学习单一的共享模型允许泛化到没有见过的序列长度(没有出现在训练集中),并且估计模型所需的训练样本远远少于不带参数共享的模型。

无论是循环图还是展开图,都有其用途。循环图简洁。展开图能够明确描述其中的计算流程。展开图还通过显式的信息流动路径帮助说明信息在时间上向前(计算输出和损失)和向后(计算梯度)的思想。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文