合理性检查

创建模型,进行数据集训练之前可以进行合理性检查(sanity check),参考Before learning: sanity checks Tips/Tricks,有助于更好的判断模型有效性

cs231n中给出了3个技巧:

  1. 寻找正确损失值
  2. 判断正则化强度有效性
  3. 过拟合小数据集

寻找正确损失值

确保初始化模型完成后能够得到期待的损失值,这次检查仅关注于数据损失(data loss),所以先设置正则化强度为零

Softmax分类器为例,在CIFAR-10数据集上的初始损失值应该是\(2.302\),因为期望每个类的扩散概率(diffuse probability)为0.1(共10个类),Softmax损失是计算正确类的负对数概率(the negative log probability of the correct class),所以计算结果是:\(-\ln(0.1)=2.302\)

对于SVM分类器而言,期待正确类对错误类的分离边界为\(1\),所以损失值为\(9\)

判断正则化强度有效性

提高正则化强度会导致损失值变大

过拟合小数据集

在训练完整数据集之前,先设置正则化强度为零,尝试训练一个小数据集(比如20个样本),看是否能够实现损失值为\(0\)

这一步是最重要的合理性检查技巧,如果没法过拟合小数据集,那么没有必要再训练完整的数据集