我目前正在研究 LSTM 和 RNN。
我遇到了几个概念,例如Multidimensional LSTM和Stacked LSTM。
我使用了 Stacked LSTM,它给了我比单个 LSTM 更好的性能。据我了解,如果我增加 LSTM 的深度,隐藏单元的数量也会增加。这意味着过度拟合,对吗?那为什么我会得到更好的结果?
[注意:我已经使用了BatchNorm并且Dropout在每一层 LSTM 之后]
我目前正在研究 LSTM 和 RNN。
我遇到了几个概念,例如Multidimensional LSTM和Stacked LSTM。
我使用了 Stacked LSTM,它给了我比单个 LSTM 更好的性能。据我了解,如果我增加 LSTM 的深度,隐藏单元的数量也会增加。这意味着过度拟合,对吗?那为什么我会得到更好的结果?
[注意:我已经使用了BatchNorm并且Dropout在每一层 LSTM 之后]
来自https://machinelearningmastery.com/stacked-long-short-term-memory-networks/:
“堆叠 LSTM 隐藏层使模型更深,更准确地获得描述作为一种深度学习技术......额外的隐藏层被理解为重新组合从先前层学习的表示并在高抽象级别创建新的表示。例如,从线条到形状再到物体......足够大的单个隐藏层多层感知器可用于逼近大多数功能。增加网络的深度提供了一种替代解决方案,需要更少的神经元并更快地训练。最终,增加深度是一种表示优化的类型。”
增加神经网络中的层数/隐藏单元的数量并不一定会导致过度拟合。太少会导致训练和测试准确率低;太多会导致训练准确率高但测试准确率低(过度拟合)。中间的某个地方将有适当数量的隐藏层和单元来解决问题。一些复杂的问题,如 NLP,需要许多堆叠的隐藏 LSTM 层http://ruder.io/deep-learning-nlp-best-practices/。