如何避免过度拟合递归神经网络
How to avoid overfitting Recurrent Neural Network
我一直在训练基于双向 LSTM 的 RNN 进行语音识别,网络似乎在新上下文一到达时就忘记了旧上下文。我不确定如何解释它的行为;网络似乎过度拟合,一次只能记住一个特定案例。
编码的 link 是 https://github.com/rajkumarcm15/Speech-Recognition/blob/master/MFCC_SWN_BN_Affine/train.py and its output in https://github.com/rajkumarcm15/Speech-Recognition/blob/master/MFCC_SWN_BN_Affine/Results.pdf。
需要一些帮助来理解其输出模式。
我没有深入研究你的输出,但你有没有研究过 dropout 以最小化过度拟合?
例如
cell = GRUCell(num_neurons) # Or LSTMCell(num_neurons)
cell = DropoutWrapper(cell, output_keep_prob=dropout)
cell = MultiRNNCell([cell] * num_layers)
您可以尝试的其他建议(除了建议的 dv3)经常对我有帮助:
- 增加你的 hidden_size(尝试乘以 4)
- 增加你的 batch_size(再次尝试乘以 4)
另外,你的损失看起来还在下降。也许更多的训练会有所帮助(另外,你只用这个时期数调整了一次你的学习率)。
希望对您有所帮助!让我知道其中一项建议是否有所作为。
您是否在每个时期(例如)执行验证步骤以检查此行为是否确实是由于过度拟合造成的?
如果不是,你应该这样做,并检查是否有某个训练步骤在验证集的损失开始增加而训练集的损失仍在减少。
我一直在训练基于双向 LSTM 的 RNN 进行语音识别,网络似乎在新上下文一到达时就忘记了旧上下文。我不确定如何解释它的行为;网络似乎过度拟合,一次只能记住一个特定案例。
编码的 link 是 https://github.com/rajkumarcm15/Speech-Recognition/blob/master/MFCC_SWN_BN_Affine/train.py and its output in https://github.com/rajkumarcm15/Speech-Recognition/blob/master/MFCC_SWN_BN_Affine/Results.pdf。
需要一些帮助来理解其输出模式。
我没有深入研究你的输出,但你有没有研究过 dropout 以最小化过度拟合?
例如
cell = GRUCell(num_neurons) # Or LSTMCell(num_neurons)
cell = DropoutWrapper(cell, output_keep_prob=dropout)
cell = MultiRNNCell([cell] * num_layers)
您可以尝试的其他建议(除了建议的 dv3)经常对我有帮助:
- 增加你的 hidden_size(尝试乘以 4)
- 增加你的 batch_size(再次尝试乘以 4)
另外,你的损失看起来还在下降。也许更多的训练会有所帮助(另外,你只用这个时期数调整了一次你的学习率)。
希望对您有所帮助!让我知道其中一项建议是否有所作为。
您是否在每个时期(例如)执行验证步骤以检查此行为是否确实是由于过度拟合造成的?
如果不是,你应该这样做,并检查是否有某个训练步骤在验证集的损失开始增加而训练集的损失仍在减少。