前馈神经网络(ANN)和循环神经网络(RNN)有什么区别

What is the difference between Feedforward Neural Networks (ANN) and Recurrent Neural Networks (RNN)

在 ANN 中,正向传播过程中的方程是 Y = W.X + b

RNN 的正向传播过程中的方程式是什么,因为它涉及 StatesTimesteps

ANNRNN 在反向传播方面有什么区别。

此外,ANN 中的 Dropout 与 RNN 中的 Recurrent_Dropout 在功能上有何不同。

ANNRNN 之间还有其他主要区别吗?

RNN 的前向传播方程式,考虑 Two Timesteps,以简单的形式显示如下:

第一时间步的输出Y0 = (Wx * X0) + b)

第二个时间步的输出Y1 = (Wx * X1) + Y0 * Wy + b 其中Y0 = (Wx * X0) + b)

为了详细说明,考虑 RNN 有 5 个 Neurons/Units,下面的屏幕截图中提到了更详细的等式:

Equation of Forward Propagation of RNN

RNN 中的反向传播:

  • RNN 中的反向传播是通过每个时间步完成的。因此它被称为时间反向传播(BPTT)。
  • 使用cost函数C(y(t(min)), y(t(min+1)), ... y(t(max)))评估输出序列(其中tmintmax是第一个和最后一个输出时间步长,不计算被忽略的输出),并且该成本函数的梯度通过展开的网络向后传播
  • 最后使用在 BPTT 期间计算的梯度更新模型参数
  • 请注意,梯度通过成本函数使用的所有输出向后流动,而不仅仅是通过最终输出

在下面的屏幕截图中,虚线代表 Forward Propagation,实线代表 Back Propagation

Flow of Forward Propagation and Back Propagation in RNN

Dropout:如果我们在一个Recurrent Layer(LSTM)中将Dropout的值设置为0.1,就意味着它将仅将 90% 的输入传递给循环层

Recurrent Droput 如果我们在Recurrent Layer(LSTM)中将Recurrent Dropout的值设置为0.2,这意味着它将只考虑该循环层的 80% 的时间步

希望这能解答您的所有疑问!