如何在LSTM中选择隐藏层数和存储单元数?


28

我正在尝试找到一些有关如何选择基于LSTM的RNN的隐藏层的数量以及这些层的大小的现有研究。

是否有一篇文章正在研究此问题,即一次应使用多少个存储单元?我认为这完全取决于应用程序以及在什么情况下使用模型,但是研究表明了什么呢?

Answers:


15

您的问题很广泛,但是这里有一些提示:

对于前馈网络,请参见以下问题

@doug的答案对我有用。还有一条经验法则可以帮助解决有监督的学习问题。不会导致过度拟合的隐藏神经元数量的上限是:

ñH=ñsαñ一世+ñØ

ñ一世ñØñsα
一种pH一种ñsñ一世+ñØα 是一种指示您希望模型的通用性或防止过度拟合的方法。

对于自动化程序,您将从2的alpha开始(训练数据的自由度是模型的两倍),并且如果训练数据的误差比交叉验证的误差小得多,则工作到10。数据集。

特别在LSTM的,你可能想看看这个

但要点是:对于应使用的隐藏节点数量没有规定,这是您必须通过反复试验针对每种情况找出的规则


7

在LSTM中选择隐藏层的数量和存储单元的数量始终取决于要应用此LSTM的应用程序域和上下文。

对于隐藏的图层。隐藏层的引入使得网络有可能表现出非线性行为。

隐藏单元的最佳数量可以轻易地小于输入数量,没有规则像将输入数量乘以N ...如果您有很多训练示例,则可以使用多个隐藏单元,但是有时2个隐藏单元最适合使用少量数据。通常,人们使用一个隐藏层来完成简单的任务,但是如今,在深度神经网络体系结构中的研究表明,许多隐藏层对于困难的对象,手写字符和面部识别问题可能是富有成果的。

I assume it totally depends on the application and in which context the model is being used.


5
非线性是由于使用了非线性激活函数。层数只会增加NN的表现力。您应该更正此答案。线性函数的组合仍然是线性函数(因此,如果您有多个仅执行输入线性组合的层,则这些层的组合仍将是线性的)。
nbro

4

通常,没有关于如何确定LSTM中的层数或存储单元数的准则。

LSTM中所需的层和单元的数量可能取决于问题的几个方面:

  1. 数据集的复杂性。特征数量,数据点数量等

  2. 数据生成过程。以下示例说明数据生成过程如何发挥重要作用。

前-与公认的经济体的GDP预测相比,石油价格的预测。后者比前者容易得多。因此,与国内生产总值相比,预测油价可能还需要更多数量的LSTM存储单元才能以相同的准确性进行预测。

  1. 用例所需的精度。存储单元的数量在很大程度上取决于此。如果目标是超越最新技术-通常需要更多的LSTM单元。将其与提出合理预测的目标进行比较-这将需要较少数量的LSTM单元。

使用LSTM建模时,请遵循以下步骤:

  1. 尝试使用2个或3个存储单元的单个隐藏层。查看它在基准测试中的表现。如果这是一个时间序列问题,那么我通常会以古典时间序列技术为基准进行预测。

  2. 尝试增加存储单元的数量。如果性能没有太大提高,请继续执行下一步。

  3. 开始使网络更深,即添加具有少量存储单元的另一层。

在旁边 :

对达到损失函数的全局最小值并调整最佳超参数的工作量没有限制。因此,将重点放在建模的最终目标上应该是策略,而不是试图尽可能地提高准确性。

大多数问题可以使用2-3层网络来解决。


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.