调参其实就是trial-and-error,没有其他捷径可以走。快速尝试, 快速纠错这是调参的关键。
目录
这是一个很好的链接, 说明了如何从零开始不断的trial-and-error(其实这里面没遇到什么error):
Using convolutional neural nets to detect facial keypoints tutorial
常用的调参经验:
1.预处理
mean/std zero-center就够了,PCA、白化什么的都用不上。反正CNN能学习encoder,PCA用不用其实关系不大,大不了网络里面自己学习出来一个。
2.shuffle
3.理解网络的原理。比如 CNN的conv这块, 要明白sobel算子的边界检测。
4.Dropout
不仅可以防止过拟合,也相当于做人力成本最低的Ensemble。当然,训练起来会比没有Dropout的要慢一点,同时最好相应加一点网络参数。
5.CNN更加适合训练回答是否的问题,如果任务比较复杂,考虑先用分类任务训练一个模型再finetune。
6.用ReLU(CV领域).
7.用3x3(卷积