什么是循环神经网络(RNN)?循环神经网络(RNN)工作原理和训练方法

发布:2022-11-28 15:03:19
阅读:3779
作者:网络整理
分享:复制链接

循环神经网络(RNN)常用于深度学习和开发模拟人工神经网络模型,与其他类型的人工神经网络不同的是,循环神经网络会使用反馈循环来处理数据。这些反馈循环允许信息持续存在,这种情况被描述为记忆,这一过程是循环神经网络借助隐藏层来实现的。因此,循环神经网络还是一种能处理时序数据的神经网络。

接下来,我们来看看循环神经网络是如何工作,是怎么训练的。

循环神经网络工作原理和训练方法

循环神经网络工作原理

循环神经网络是具有循环连接的神经元组成,这意味着神经元的输出被反馈到同一神经元的输入中,这会创建一个隐藏状态,可以将其视为循环神经网络的记忆。隐藏状态在每个时间节点更新,更新后的隐藏状态用作下一个时间节点的输入。

讲完概念,我们可以借助下面这个例子更好地理解循环神经网络的工作原理,例子:

假设有这么一个人工神经网络,它具有一个输入层、三个隐藏层和一个输出层。然后像其他神经网络一样,每个隐藏层都有自己的一组权重和偏差,这意味着这些层中的每一层都相互独立,即它们不会记住之前的输出。

现在将这个人工神经网络将执行以下操作:

人工神经网络通过为所有层提供相同的权重和偏差,将独立激活转换为依赖激活,从而降低增加参数的复杂性,并通过将每个输出作为下一个隐藏层的输入来记忆每个先前的输出。

因此,这三层可以连接在一起,使得所有隐藏层的权重和偏差在单个循环层中相同。

当前状态的计算公式:ht=f(ht-1,xt)

其中ht表示当前状态;ht-1表示之前的状态;xt表示输入状态。

应用激活函数的公式:ht=tanh(whh+wxh)

其中whh表示循环神经元的权重;wxh表示输入神经元的权重。

计算输出公式:Yt=Whyht

其中Yt表示输出;Why表示输出层的权重。

训练循环神经网络

根据上述示例,我们可以这样来训练循环神经网络:

1.输入的单时间步长被提供给网络。

2.然后使用一组当前输入和先前状态计算其当前状态。

3.对于下一个时间步,当前的ht变为ht-1。

4.可以根据问题进行尽可能多的时间步长,并加入所有先前状态的信息。

5.一旦完成所有时间步长,最终的当前状态将用于计算输出。

6.然后将输出与实际输出(即目标输出)进行比较,并生成错误。

7.然后将错误反向传播到网络以更新权重,从而训练循环神经网络。

循环神经网络的优势

循环神经网络会随着时间记住每条信息,它在时序预测中很有用,这也有助于建模数据点之间的依赖关系。循环神经网络可以展开形成深度神经网络,进一步提高对复杂依赖关系进行建模的能力。

循环神经网络的缺点

  • 存在梯度消失和爆炸问题。
  • 训练循环神经网络是一项非常困难的任务。

循环神经网络的应用

扫码进群
微信群
免费体验AI服务