CNN中比较重要的参数有:学习率、优化器、迭代次数、批次大小、激活函数、隐含神经元层数、权重初始化、Dropout方法、正则化、批归一化、
学习率:采用哪种学习率取决于所选择优化算法的类型,如SGD、Adam等
优化器:Adam效果很好
迭代次数:当训练集精确度和测试集精确度相差不大时,可以认为当前迭代次数合理,否则要增大迭代次数
批次大小:一般来说batch_size越小,精确度越高,很多task中的精确率结果的batch_size= 1(CNN网络对批次大小的调整十分敏感)
激活函数:一般来说,在CNN网络中ReLU激活函数的表现最好
隐层层数:实验表明,神经网络的层数越多,网络训练效果越好(但没有证据表明,层数少的效果不好)
权重初始化:通常使用小随机数初始化网络权重,以防产生不活跃的神经元,均匀分布的效果比较好
dropout:一般在0.4-0.5中表现很好,只需要最后一层softmax 前用基本就可以了
正则化:按照实际问题进行选择。
BN层:在一般的神经网络中,BN+RELU可以改善百分之九十五的训练结果
尽量对数据做shuffle
多使用tensorboard 有效监控网络,帮助优化参数
参考文章《CNN经验大全》