【问题标题】:What is the difference between Feedforward Neural Networks (ANN) and Recurrent Neural Networks (RNN)前馈神经网络 (ANN) 和递归神经网络 (RNN) 有什么区别
【发布时间】:2020-05-09 07:08:33
【问题描述】:
在人工神经网络中,前向传播过程中的方程是Y = W.X + b。
RNN前向传播过程中的方程式是什么,因为它涉及States和Timesteps。
ANN 和RNN 在反向传播方面有什么区别。
另外,ANN 中的 Dropout 与 RNN 中的 Recurrent_Dropout 在功能上有何区别。
ANN 和 RNN 之间是否还有其他主要区别。
【问题讨论】:
标签:
neural-network
recurrent-neural-network
【解决方案1】:
考虑到Two Timesteps,RNN 的前向传播方程以简单的形式如下所示:
第一次步骤的输出:Y0 = (Wx * X0) + b)
第二时间步的输出:Y1 = (Wx * X1) + Y0 * Wy + b where 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))) 评估输出序列(其中tmin 和tmax 是第一个和最后一个输出时间步,不包括忽略的输出),该成本函数的梯度是通过展开的网络向后传播
- 最后使用梯度更新模型参数,在 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,这意味着它将只考虑该Recurrent 的80% 的时间步长层
希望这能解答您的所有疑问!