首页 文章

如何传播/发射递归神经网络(RNN)?

提问于
浏览
8

我正在学习人工神经网络,并实施了一个带有几个隐藏层的标准前馈网络 . 现在,我试图理解递归神经网络(RNN)在实践中如何工作,并且在激活/传播如何流经网络时遇到问题 .

在我的前馈中,激活是一个简单的逐层激发神经元 . 在循环网络中,神经元连接回先前的层,有时自身连接,因此传播网络的方式必须不同 . 麻烦的是,我似乎无法找到确切传播如何发生的解释 .

怎么会发生这样的网络说:

Input1 --->Neuron A1 --------->  Neuron B1 ---------------------> Output
                ^                   ^     ^      |
                |                   |     --------
                |                   |
Input2 --->Neuron A2 --------->  Neuron B2

我想象这将是一个滚动的激活,逐渐消失,因为神经元的阈值将神经元的发射减少到0,就像在生物学中一样,但似乎通过衍生物有更多计算有效的方法来做到这一点?

2 回答

  • 4

    我想我现在已经掌握了传播循环网络和前馈网络的基本原则:明确的时间步骤 .

    在前馈中,传播一层一层地发生,因此第1层神经元首先发射,然后是第2,3层等,因此传播是一种神经元激活刺激神经元中的激活,将其作为输入 .

    或者,我们可以考虑传播,因为在任何给定时间点输入有效的神经元都是要发射的神经元 . 因此,如果我们有时间t = 0,则第1层神经元是活动的,在下一次t = 1时,下一层将激活第2层,因为第2层中的神经元将第1层中的神经元作为输入 .

    虽然思维上的差异可能看起来像语义,但对我而言,这对于确定如何实施循环网络至关重要 . 在前馈中,时间步骤是隐含的,并且代码依次经过神经元层,像落下的多米诺骨牌一样激活它们 . 在一个经常性的网络中,尝试下降多米诺的激活方式,其中每个神经元指定它接下来激活的神经元将是大型复杂网络的噩梦 . 相反,在给定时间t对网络中的神经元进行轮询是有意义的,以查看它是否根据其输入激活 .

    当然有许多不同类型的递归神经网络,但我认为这是关键的显式时间步骤,是经常性网络传播的关键 .

    我想知道的微分方程部分是否会发挥作用,而不是通过t为0,1,2等的离散时间步长来尝试通过在非常小的时间增量上建模传播来获得更平滑,更连续的网络流量 . ,如0.2,0.1,0.05等

  • 1

    对于不同的时间步长t = t0,t1,t2 ...... tN给出输入信号s(t) . 在循环层中,输入来自输入信号以及网络状态,即来自前一时间步的激励水平 . 因此,您必须从输入信号和先前的内部状态(复发神经元的激发水平)更新内部状态 .

相关问题