深度学习方法推荐(一个数学博士的深度学习方法)

这次我们将讨论一下众所周知的神经网络架构,该架构对于处理对过去数据有一定依赖性的数据非常有用。这种架构被称为循环神经网络(简称RNN),它有一个内存,允许使用过去的数据来处理现在的数据。对于这种能力,RNN 可以处理时序数据,例如时间序列数据、算法交易、语言处理和音频处理。

之所以出现经常性的名称,是因为部分信息保存在网络中并被处理了几次。

普通 RNN

最简单的 RNN 架构如下所示。

一个数学博士的深度学习方法(第 6 部分)

对于每个时间步 t,激活 a(在时间 t)和输出 y(在时间 t)表示如下:

一个数学博士的深度学习方法(第 6 部分)

在第一个等式中,Wₐₐ 是在时间 t-1 中乘以 a 的权重矩阵,Wₐₓ 是在时间 t 内乘以输入 x 的权重矩阵,bₐ 是要添加的偏差,g₁ 是一个激活函数,所以第一个等式告诉我们如何将所有这些量组合起来以在时间 t 内产生 a。在第二个等式中,W 是在时间 t 与 a 相乘的权重矩阵,g₂ 是一个激活函数,该等式告诉我们如何在时间 t 产生输出 y。

我们可以从这些方程中看出,时间 t 中的输出 y 取决于时间 t 中的 a,而这个取决于时间 t-1 中的 a,依此类推。通过这种方式,我们可以看到过去数据的时间依赖性。

也就是说,在时间 t 的输入信息 x 用于在时间 t 产生输出 y,但也保持与在时间 t+1 的输入 x 一起使用以在时间 t+1 产生 y 输出。

我们可以看到上面的展开网络,或者我们可以考虑其中的一个循环,如下所示。

一个数学博士的深度学习方法(第 6 部分)

MLP 和 RNN 之间存在一些差异。循环就是其中之一;另一个区别是,在 MLP 中,哪一层的权重和偏差是不同的,但对于 RNN,这些参数在每个时间步都保持不变。因此,RNN 的计算量更大,并且必须比 MLP 训练更多时间。

参数在哪一步相同的原因是单独的参数无法泛化到训练期间没有遇到的序列长度。

在 MLP 中,我们在网络看到所有数据之后计算误差,然后将该信息向后传播以更新权重,但在 RNN 网络中,我们使用交叉熵计算误差。这种类型的RNN非常容易出现梯度消失或梯度爆炸等问题。

普通 RNN 使用来自过去数据的信息,但可以在称为双向 RNN 的架构中创建来自过去和未来数据的依赖关系。

一个数学博士的深度学习方法(第 6 部分)

数学部分与我们已经看到的类似,但现在有两个方程,一个向前传递信息,另一个类似的方程向后传递信息。

长短期记忆 (LSTM)

Vanilla RNN 的一项改进是 LSTM 架构,如下所示。

一个数学博士的深度学习方法(第 6 部分)

现在,隐藏单元格中发生了更多操作。这些操作允许长期依赖并尝试解决梯度消失问题。共有三个 σ 门,第一个 (fₜ) 代表遗忘门,第二个 (iₜ) 代表输入门,最后一个 (oₜ) 代表输出门。

门控循环单元 (GRU)

GRU 与 LSTM 的区别在于隐藏单元决定忘记或更新您的状态的方式,而在 GRU 中,这是以 GRU 具有更持久记忆的方式实现的。

一个数学博士的深度学习方法(第 6 部分)

其中,zₜ 是更新门,rₜ 是重置门,hₜ 是新内存。我们可以在下面写出这个隐藏单元的数学方程组。

一个数学博士的深度学习方法(第 6 部分)

除了在 MLP 或 CNN 上添加多个层来提高网络能力外,在 RNN 中也是如此。但我们必须小心,因为当我们在 RNN 中堆叠很多隐藏层时,我们必须决定如何连接这些层。我们可以让信息前进或后退,如果每一层都与后续层或远处的层相连,等等。这些差异将改变每个依赖项的考虑方式。

RNN 中使用了用于优化 MLP 和 CNN 的相同反向传播技术,但它被称为随时间反向传播 (BPTT)。

当然,有新的和更复杂的架构来处理具有时间依赖性的数据,这是一个活跃的研究领域。

本文链接:https://www.dzdvip.com/31361.html 版权声明:本文内容均来源于互联网。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 395045033@qq.com,一经查实,本站将立刻删除。
(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022年4月13日 12:20
下一篇 2022年4月13日 22:27

相关推荐

发表评论

您的电子邮箱地址不会被公开。