📜  RNN在TensorFlow中的工作

📅  最后修改于: 2021-01-11 10:46:03             🧑  作者: Mango

RNN在TensorFlow中的工作

递归神经网络在图像分类和视频识别,机器翻译音乐创作中具有广泛的应用。

考虑一个图像分类用例,其中我们训练了神经网络某些动物的图像进行分类。

因此,让我们提供猫或狗的图像;网络为猫或狗的图片提供带有相应标签的输出。

参见下图:

在这里,第一个输出为猫不会影响之前的输出,即狗。这意味着在时间“ t”处的输出在时间“ t-1?

考虑以下情况,我们将需要使用最后获得的输出:

这个概念是一样的读一本书。随着我们前进的每一页,在大多数情况下,我们需要了解前几页才能完全理解这些信息

借助于前馈网络,在时间“ t + 1”处的新输出?与时间t, t-1,t-2的输出都不相关。

因此,在预测句子中的单词时不能使用前馈网络,因为它与上一组单词没有绝对关系。

但是,借助递归神经网络,可以克服这一挑战。

请参见下图:

在上图中,我们将特定输入设为-1?馈入网络。这些输入也将在时间“ t-1”处导致并行输出。

在下一个时间戳中,来自先前输入“ t-1”的信息。与输入一起提供吗?以最终提供“ t”的输出。

此过程会重复进行,以确保了解最新的输入并可以使用从前一个时间戳获取的信息。

递归网络是一种人工神经网络,旨在识别数据序列中的模式。像是文字,基因组,笔迹,口语,来自传感器,股票市场和政府机构的数值序列数据。

为了更好地理解,请考虑以下比较:

我们会定期去健身房,而教练已经为我们提供了锻炼的时间表:

请注意,每周都要以适当的顺序重复所有练习。让我们使用前馈网络尝试和预测练习的类型。

输入是日,月健康状况。已经使用这些输入训练了神经网络以提供锻炼的预测。

但是,考虑到输入,这将不是很准确。为了解决这个问题,我们利用递归神经网络的概念,如下所示:

在这种情况下,找到前一天要进行锻炼的输入。

因此,如果我们昨天进行了肩部锻炼,那么今天我们可以进行二头肌锻炼,这个过程将持续一周的剩余时间。

但是,如果我们碰巧错过了在健身房锻炼的一天,则可以考虑以下先前参加的时间戳记中的数据。

如果根据从上次练习中获得的数据来体验模型,则该模型的输出将是准确的。

总而言之,让我们将数据转换为向量。

向量是输入模型的数字,以表示我们是否进行了练习。

因此,如果我们进行肩部锻炼,则相应的节点将为“ 1”,其余的锻炼节点将被映射为“ 0”。

我们必须检查神经网络工作背后的数学原理。

检查“ w”为权重矩阵,并检查“ b”为偏差:

在时间t = 0时,输入为'x0,任务是弄清楚什么是'h0'。将t = 0代入方程式,并获得函数h(t)值。当应用于新公式时,将使用先前计算的值找出下一个'y0'值。

对模型中的所有时间戳重复相同的过程以训练模型。

训练递归神经网络

递归神经网络使用反向传播算法进行训练,但是它适用于每个时间戳。通常称为按时间反向传播(BTT)。

反向传播的一些问题,例如:

  • 消失梯度
  • 爆炸梯度

消失梯度

在Vanishing Gradient使用反向传播的过程中,目标是计算误差,方法是通过找出实际值与实际输出值之间的差值,并找出实际输出值与模型输出值之间的差值并将其提高到2的幂来找出误差。 。

利用计算出的误差,可以估算出与重量差异有关的误差变化。但是对于每个学习率,这可以与相同的模型相乘。

因此,学习率随变化的乘积传递给该值,这是权重的确定变化。

重量变化被添加到旧的组权重为每个训练迭代的,如图中下图。此处的赋值是乘以重量变化,然后该小于

爆炸梯度

塌陷梯度的工作原理类似,但是此处的权重变化很大,而不是可以忽略不计的变化。注意这里的小:

我们必须克服这两个方面,首先是一些挑战。

Exploding gradients Vanishing gradients
  • Truncated BTT
    Instead of starting backpropagation at the last timestamp, we can choose a smaller timestamp like 10
  • ReLU activation function
    We can use activation like ReLU, which gives output one while calculating the gradient
  • Clip gradients at the threshold
    Clip the gradient when it goes more than a threshold
  • RMSprop
    Clip the gradient when it goes higher than a threshold
  • RMSprop to adjusting the learning rate
  • LSTM, GRUs
    The different network architecture that has been specially designed can be used to combat this problem

什么是长期依赖关系?

很多时候,在模型中只需要最新数据即可执行操作。但是可能需要过去获得的一些信息。