合理性检查
创建模型,进行数据集训练之前可以进行合理性检查(sanity check
),参考Before learning: sanity checks Tips/Tricks,有助于更好的判断模型有效性
cs231n
中给出了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\)
这一步是最重要的合理性检查技巧,如果没法过拟合小数据集,那么没有必要再训练完整的数据集