10

我正在学习人工神经网络,并实现了一个带有几个隐藏层的标准前馈网络。现在,我试图了解循环神经网络 (RNN) 在实践中的工作原理,并且在激活/传播如何通过网络流动时遇到了麻烦。

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

对于这样的网络,它是如何发生的:

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

我想象这将是一个滚动激活,随着神经元的阈值将神经元放电降低到 0 逐渐下降,就像在生物学中一样,但似乎有一种计算效率更高的方法可以通过导数来做到这一点?

4

2 回答 2

5

我想我现在掌握了传播循环网络与前馈网络的基本原理:明确的时间步长。

在前馈中,传播是逐层进行的,因此第 1 层神经元首先触发,然后是第 2 层、第 3 层等,因此传播是一个神经元激活刺激将其作为输入的神经元中的激活。

或者,我们可以将传播视为在任何给定时间点其输入处于活动状态的神经元将被触发。因此,如果我们有一个时间 t=0,第 1 层神经元处于活动状态,那么在下一个时间 t=1,下一层第 2 层将激活,因为第 2 层中的神经元将第 1 层中的神经元作为输入。

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

当然有许多不同类型的循环神经网络,但我认为正是这个关键的显式时间步长才是循环网络传播的关键。

我想知道的微分方程部分是否会发挥作用,如 0.2、0.1、0.05 等。

于 2012-10-16T16:41:36.353 回答
1

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

于 2012-10-16T16:59:14.077 回答