📜  TensorFlow中的递归神经网络(RNN)

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

TensorFlow中的递归神经网络(RNN)

递归神经网络( RNN )是一种主要用于语音识别自然语言处理(NLP)的人工神经网络。 RNN用于深度学习和模拟人脑神经元活动的模型的开发。

循环网络旨在识别数据序列中的模式,例如来自传感器,股市和政府机构的文本,基因组,手写,口语数字时间序列数据。

递归神经网络看起来与传统神经网络相似,不同之处在于将记忆状态添加到了神经元。该计算将包括一个简单的存储器。

递归神经网络是一种面向深度学习的算法,它遵循顺序方法。在神经网络中,我们始终假设每个输入和输出都依赖于所有其他层。这些类型的神经网络称为递归,因为它们顺序执行数学计算。

RNN的应用

RNN在预测未来方面有多种用途。在金融行业,RNN可以帮助预测股票价格或股票市场方向的信号(即)。

RNN用于自动驾驶汽车,因为它可以通过预测车辆的路线来避免发生车祸。

RNN广泛用于图像字幕,文本分析,机器翻译情感分析例如,应该使用电影评论来了解观众在看完电影后的感觉。当电影公司没有更多时间审查,合并,标记和分析评论时,自动执行此任务非常有用。机器可以更高的精度完成这项工作。

以下是RNN的应用:

1.机器翻译

我们在翻译引擎中利用递归神经网络将文本从一种语言翻译成另一种语言。他们做到这一点与其他车型像LSTM组合(长短期记忆)

2.语音识别

递归神经网络已取代了使用隐马尔可夫模型的传统语音识别模型。这些递归神经网络与LSTM一起,能够更好地对语音进行分类并将其转换为文本而不会丢失上下文。

3.情绪分析

我们利用情感分析来判断句子的阳性,阴性或中性。因此,RNN最擅长顺序处理数据以查找句子的情感。

4.自动图像标记

RNN与卷积神经网络一起可以检测图像并以标签形式提供其描述。例如,使用RNN可以更好地解释狐狸越过篱笆的图片。

RNN的局限性

RNN应该及时携带信息。然而,当时间步长太长时,传播所有这些信息是非常具有挑战性的。当网络的深层太多时,它就变得不可训练。这个问题被称为:消失梯度问题。

如果我们还记得的话,神经网络会更新梯度下降算法的权重。当网络下降到较低层时,梯度会变小。

梯度保持恒定,这意味着没有改进的空间。该模型从其梯度的变化中学习;此更改会影响网络的输出。如果梯度的差异太小(即,权重变化不大),则系统将无法学习任何内容,因此输出也不会。因此,面对消失的梯度问题的系统无法收敛到正确的解决方案。

循环神经将执行以下操作。

循环网络首先执行独立激活到相关激活的转换。它还为所有层分配了相同的权重和偏差,从而降低了参数RNN的复杂性。它通过提供先前的输出作为下一层的输入,为记忆先前的输出提供了一个标准平台。

具有相同权重和偏差的这三个层合并为一个循环单元。

为了计算当前状态-

h t = f(h t-1 ,X t )

其中h t =当前状态
H t-1 =先前状态
X t =输入状态

要应用激活函数tanh,我们有-

ht = tanh(W hh h t -1+ W xh X t )

哪里:

W hh =复发神经元的重量,
W xh =输入神经元的权重

计算输出的公式:

ý= W HY H T

通过RNN进行培训

  • 网络只需要输入一个时间步。
  • 我们可以通过当前输入和先前状态来计算当前状态。
  • 现在,当前状态通过h t-1为下一个状态。
  • 共有n个步骤,最后,所有信息都可以加入。
  • 完成所有步骤后,最后一步是计算输出。
  • 最后,我们通过计算实际输出与预测输出之间的差异来计算误差。
  • 该误差会反向传播到网络,以调整权重并产生更好的结果。