数据有关
- 数据增强
- 数据集分布平衡
- 先在小数据集上训练,看是否过拟合,过拟合了可以说明模型没问题
模型结构
- 增加或减少模型层次
- 考虑BN层
- 考虑Dropout层
- Fine-Tuning技术,对一些成熟网络微调
优化算法
- SGD(随机梯度下降)通常训练时间更长,最终效果更好,但需要好的初始化和Learning rate
- 需要训练较深较复杂的网络且需要快速收敛时,推荐使用Adam
- Adagrad,RMSprop,Adam是比较相近的算法,在相似情况下表现差不多
激活函数
- Sigmoid:一般用在输出层
- tanh:RNN中有可能,CNN不使用
- ReLU:CNN中使用,RNN也可以考虑
- ReLu有一些更好的替代,如:leaky relu、maxout、elu
初始化函数
- 一般使用正态分布初始化,注意是否截断
- 有一些更好的初始化方法,但是需要跟特定激活函数一起使用,如Xavier-tanh或He-ReLu