🐬深度循环神经网络
2021-12-4
| 2023-8-7
0  |  阅读时长 0 分钟
type
status
date
slug
summary
tags
category
icon
password
Property

 
notion image
 
目前只讨论了具有一个单向隐藏层的循环神经网络。 隐变量和观测值与具体的函数形式的交互方式是相当随意的。 只要交互类型建模具有足够的灵活性,这就不是一个大问题。 然而,对于一个单层来说,这可能具有相当的挑战性。 之前在线性模型中,通过添加更多的层来解决这个问题。 而在循环神经网络中首先需要确定如何添加更多的层, 以及在哪里添加额外的非线性。
事实上,可以将多层循环神经网络堆叠在一起, 通过对几个简单层的组合,产生了一个灵活的机制。 特别是,数据可能与不同层的堆叠有关。 例如,可能希望保持有关金融市场状况 (熊市或牛市)的宏观数据可用, 而微观数据只记录较短期的时间动态。
下图是一个具有个隐藏层的深度循环神经网络, 每个隐状态都连续地传递到当前层的下一个时间步和下一层的当前时间步。
 
notion image
 
notion image

函数依赖关系

可以将深度架构中的函数依赖关系形式化, 这个架构是由图中描述了个隐藏层构成。 后续的讨论主要集中在经典的循环神经网络模型上, 但是这些讨论也适应于其他序列模型。
假设在时间步有一个小批量的输入数据 (样本数 ,每个样本中的输入数),将隐藏层( )的隐状态设为 (隐藏单元数),输出层变量设为(输出数)。设置,第个隐藏层的隐状态使用激活函数,则:
权重和偏置都是第个隐藏层的模型参数。
最后,输出层的计算仅基于第 个隐藏层最终的隐状态:
权重和偏置都是输出层的模型参数
与多层感知机一样,隐藏层数目和隐藏单元数目都是超参数。 也就是说,它们可以由我们调整的。 另外,用门控循环单元或长短期记忆网络的隐状态来代替隐状态进行计算, 可以很容易地得到深度门控循环神经网络或深度长短期记忆神经网络。
 

简洁实现

以长短期记忆网络模型为例, 该代码与之前的代码非常相似, 实际上唯一的区别是指定了层的数量, 而不是使用单一层这个默认值
notion image
 
  • PyTorch
  • 长短期记忆网络 LSTM双向循环神经网络
    目录