首页 > 解决方案 > 层归一化会延迟训练吗?

问题描述

你可以在这里找到我的代码和结果:

https://github.com/shwe87/tfm-asr/blob/master/ASR-Spanish-Bi-RNN-17062020.ipynb

我用西班牙语测试了两个简单的 ASR 模型:

型号 1:

- Layer Normalization 
- Bi-directional GRU
- Dropout
- Fully Connected layer
- Dropout
- Fully Connected layer as a classifier (classifies one of the alphabet chars)

型号 2:

  - Conv Layer 1
  - Conv Layer 2
  - Fully Connected
  - Dropout
  - Bidirectional GRU
  - Fully connected layer as a classifier

我尝试了 30 个 epoch,因为我的 GPU 资源有限。这两个模型的验证和训练损失: 在此处输入图像描述 模型 1 的表现不如预期。模型 2 工作得很好,在 20 个 epoch 之后,它开始过度拟合(请参阅笔记本结果中的图表),在输出中,我实际上可以看到一些看起来像标签的单词。尽管它是过拟合的,但它仍然需要训练,因为它不能预测总结果。首先,我对这个模型很满意。

我测试了第三个复杂模型。你可以在这里找到它的结果输出:

https://github.com/shwe87/tfm-asr/blob/master/ASR-DNN.ipynb

模型 3:

  - Layer Normalization
  - RELU
  - Bidirectional GRU
  - Dropout 
  - Stack this 10 times more.

这个模型的有效损失和训练损失: 在此处输入图像描述 我在 30 个 epoch 上测试了这个,没有好的结果,实际上,所有的预测都是空白的......

这是因为这个复杂的模型需要更多的 epoch 来训练吗?

更新:

我修改了模型,在堆叠的 GRU 之前添加了 2 个卷积层,模型似乎得到了改进。

我看到在第一个模型和第三个模型中,我应用了层归一化,两者的预测似乎都非常糟糕......层归一化会导致学习延迟吗?但根据像这样的论文: https ://www.arxiv-vanity.com/papers/1607.06450/层归一化加速了训练,也有助于加速训练损失。所以,我真的很困惑。我的 GPU 资源有限,我不确定是否应该在不进行层标准化的情况下再试一次......

标签: deep-learningpytorch

解决方案


推荐阅读