General Guide
1.训练机器学习的基本思路
1)定义函数【选择算法】;
2)定义损失函数【衡量函数输出与真实值之间的距离】;
3)根据损失优化函数的参数【反向传播】
2.模型训练套路
模型训练的过程很难一步到位,往往训好的模型在使用的时候不work,需要对优化模型。优化的思路可以借鉴下面的这个框架:
1)分析训练集上的loss,如果训练集上的loss就已经很大了,说明在模型训练过程中就出现问题,在测试上很难有很好的结果,一般有两种可能原因:
i)model bias:模型设计比较简单,难以拟合复杂的函数。
ii)optimization问题:优化过程中出现问题,没有找到最优参数。
iii)model bias vs optimization:比较简单算法/浅层网络与复杂算法/深层网络在 training data方面的loss,如果深层网络的loss更大,则是optimization问题
2)训练集的loss比较小,但在测试集上的loss很大,那么也有以下两种原因:
i)over fitting问题:
一个极端的情况如上所示,在训练集上都预测正确,但是显然在测试集不会work。overfitting通常可以通过增加训练样本来解决(或者进行样本扩充Data augmentation),除此之外,一些其他套路也可以用来解决过拟合
2)样本mismatch:training data和testing data分布不一样
3.cross validation
为什么要用交叉验证:在模型训练中,模型通常在训练数据上表现好,在训练之外的数据上拟合程度差。交叉验证用于评估模型的泛化能力,从而进行模型选择。cross validatioin
N-fold cross validation:使用训练集的1/n进行验证,将模型训练n次,对n次验证集上的误差取平均,选择误差小的模型。