关于网络训练时的参考建议:
1.train loss不断下降,test loss不断下降,网络正在学习
2.train loss不断下降,test loss趋于不变,网络过拟合,需要增大数据;减小网络规模dropout;权重衰减或正则化L2等
3.train loss趋于不变,test loss趋于不变,遇到瓶颈,需要减少学习率和批处理大小
4.train loss趋于不变,test loss不断下降,数据集100%有问题
5.train loss不断上升,test loss不断上升,可能网络结构设计不当,超参设置不当,bug等
6.train loss不断上下跳动,可能学习率过大或批处理太小
7.batchnorm:如果每个batch输入的数据都具有不同的分布,会给网络的训练带来困难,数据经过一层层网络计算后,数据分布
也会发生变化,此现象称为 internal covariate shift(内部协变量漂移),之前的解决方法是:较小的学习率;小心的初始化参数;数据白化处理
internal:发生在网络内部
covariate shift:发生在输入层
让每个隐层节点的激活输入分布固定下来,这样就避免internal covariate shift
8.偏差:模型结果和实际结果的偏离程序
9.方差:模型结果围绕着实际结果波动的程度
10.偏差大:不了解数据和数据形态;增加维度,如多项式、高阶项,减少正则参数
11.方差大:波动(可能来自无关紧要的离群值)、不收敛、模型没有找到数据变换的节奏、提供的数据变化不丰富;增加样本,减少特征集合size、增大正则参数