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

Machine learning 如何传播/激发递归神经网络(RNN)?,machine-learning,artificial-intelligence,neural-network,Machine Learning,Artificial Intelligence,Neural Network,我正在学习人工神经网络,并且已经实现了一个带有两个隐藏层的标准前馈网络。现在,我正试图了解递归神经网络(RNN)在实践中是如何工作的,我在激活/传播如何流经网络方面遇到了问题 在我的前馈中,激活是神经元的一个简单的逐层放电。在一个循环网络中,神经元连接回先前的层,有时连接到自己,因此传播网络的方式必须不同。问题是,我似乎找不到一个确切的解释来解释传播是如何发生的 对于这样的网络,它是如何发生的: Input1 --->Neuron A1 ---------> Neuron B1 -

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

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

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

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

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

我想我现在已经掌握了传播递归网络和前馈网络的基本原理:一个明确的时间步长

在前馈中,传播是一层一层地进行的,因此第一层神经元首先激发,然后是第二层、第三层等,因此传播是一种神经元激活,刺激以其为输入的神经元的激活

或者,我们可以把传播想象成在任何给定时间点输入活跃的神经元是被激发的神经元。因此,如果我们有一个时间t=0,那么第1层神经元是活跃的,在下一个时间t=1,下一个第2层将被激活,因为第2层的神经元将第1层的神经元作为输入

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

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


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

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

这听起来是一个有趣的问题。您可能会在计算机科学交流网站()中获得一些成功。话虽如此,我相信这里有很多有能力的人能够回答你的问题。:-)你测试了什么?我们可以做任何事情,从只是为下一次更新保存循环连接的值,到基于连接长度等对神经元进行类似自然的模拟(微分方程),以及延时,你在寻找什么?我在寻找一种通用的方式来思考实现循环网络传播与前馈网络的区别