跳至内容
深圳市捷比信实业有限公司 · 产品选型与采购咨询联系业务人员
点火电阻捷比信 · 专业器件主题站

递归神经网络如何工作

基于图扩展和参数共享的思想,我们可以设计各种循环神经网络。计算递归网络(将x值的输入序列映射到输出值o的对应序列)训练损耗的计算图。损失L衡量每个o与相应训练目标v之间的距离。当使用softmax输出时,我们假设o是未归一化的对数概率。损耗L在内部进行计算,并与目标y进行比较。输入到隐藏连接的RNN由权重矩阵U设置参数,隐藏到隐藏的循环连接由权重矩阵W设置参数,从隐藏到输出的连接由权重矩阵V设置参数。(左)RNN及其损失使用圆形连接绘制。 (右)同一网络被视为一个扩展的计算图,其中每个节点现在都与一个特定的时间实例相关联。循环神经网络中的一些重要设计模式包括:1.每个时间步都有一个输出,并且隐藏单元之间存在循环连接,如上图所示。 2.每个时间步都会产生一个输出,只有当前时间到下一次隐藏单元的输出才具有一个循环连接的循环网络。 3.隐藏单元之间存在循环连接,但是循环网络在读取整个序列后会产生单个输出。可以通过这种有限维循环网络来计算任何图灵可计算函数,在这种意义上,图的循环神经网络是万能的。 RNN在经过多个时间步长后读取输出,这些时间步长与图灵机使用的时间步长渐近线性,并且与输入长度渐近线性(Siegelmann和Sontag,1991; Siegelmann,1995; Siegelmann和Sontag,1995; Hyotyniemi ,1996)。由图灵机计算的函数是离散的,因此这些结果是该函数的具体实现,而不是近似值。当RNN用作图灵机时,它需要一个二进制序列作为输入,并且其输出必须离散化以提供二进制输出。可以用一个特定的有限大小的特定RNN计算此设置下的所有功能(Siegelmann和Sontag(1995)使用886个单位)。图灵机的“输入”是要计算的功能的规格,因此模拟该图灵机的相同网络足以解决所有问题。用于证明的理论RNN可以通过激活和权重(由具有无限精度的有理数表示)来模拟无限堆栈。现在,我们在上图中研究RNN的前向传播公式。该图未指定隐藏单元的激活功能。我们假设使用了双曲正切激活函数。此外,该图未明确说明输出和损失函数的形式。我们假设输出是离散的,例如用于预测单词或字符的RNN。表示离散变量的一种自然方法是将输出o用作每个离散变量可能值的非标准对数概率。然后,我们可以将softmax函数应用于后续处理,以获得归一化概率的输出矢量。 RNN从特定的初始状态h(0)开始向前传播。对于从t = 1到t =τ的每个时间步长,我们应用以下更新公式:参数偏差矢量b和c以及权重矩阵U,V和W对应于输入到隐藏,隐藏到输出以及隐藏到隐藏联系。该循环网络将输入序列映射到相同长度的输出序列。 y的总损耗与x的序列成对是所有时间步长的损耗之和。例如,如果L(t)是给定的负对数似然,则需要读取模型输出向量的项。计算该损失函数相对于每个参数的梯度是一项昂贵的操作。梯度计算包括执行前向传播(例如,在上面的扩展图中从左向右传播),然后是从右向左向后传播。运行时间为O(τ),无法通过并行化减少,因​​为前向传播图固有地是顺序的;每个时间步长只能一个接一个地计算。必须保留前向传播中的每个状态,直到再次在后向传播中使用它们为止,因此内存成本也为O(τ)。应用于展开图且成本为O(τ)的反向传播算法通过TIme(BPTT)称为反向传播。这种RNN的唯一循环是从输出到隐藏层的反馈连接。在每个时间步骤t,输入为,并且隐藏层被激活。 (左)电路原理图。 (右)展开的计算图。这样的RNN不如