过慢

  • 数据问题
    • 脏数据问题:和业务沟通,检查label情况等;
  • 网络设定不合理:比如做很复杂的分类任务,却只用了很浅的网络,可能会导致训练难以收敛,换网络换网络换网络;
  • 数据归一化:数据归一化的目的就是为了把不同来源的数据统一到同一数量级(或者是一个参考坐标系)下,消除量纲的影响,这样使得比较起来有意义。归一化使得后面数据的处理更为方便,它有两大优点:加快收敛速度;提高准度(比如KNN)。注意:树类模型不需要归一化,因为树类模型根据特征值进行排序,且树类模型不需要进行梯度下降,因此不需要归一化。
  • 模型参数不合理

    • 学习率偏低:可以考虑增加学习率或者用gridsearch查找;
    • 去调节batch_size和epoch间比例;
    • 微调SGD参数,动量等;
    • 简化程序代码,例如 改掉for循环,用switch等简单程序替代循环;
    • 激活函数:比如多个训练周期以后损失函数都没有收敛,那么可能是由于ReLU激活函数造成的。尝试切换到leaky ReLU或ELU;
    • 没有正确初始化权重“lecun”或”xavier”的权重初始化几乎在所有情况下表现良好。当你的神经网络正常后。

      过快

  • 数据问题:

    • 可能全部是同一label;
    • 者训练集太简单;
    • 训练数据太少,且一致度比较高;
  • 网络过拟合:检查是否有过拟合问题。