统计学习三要素(模型,策略,算法):
模型:假设空间,假设输入到输出之间的关系,获得一个参数向量
策略:按照什么准则(损失函数,风险函数,经验风险函数=>结构风险函数)选择最好的模型
算法:学习模型的具体计算方法
卷积神经网络CNN
以下摘录来自 《解析卷积神经网络——深度学习实践手册》
卷积神经网络分为前馈运算和反向传播反馈
原始数据一层层经过网络,逐渐抽取出低层特征,直至高级语义特征,这一过程为前馈运算;
网络根据前馈运算的结果,与真实结果之间的误差,通过反向传播算法由最后一层逐渐向前反馈,更新模型的参数;
在更新参数的模型上进行再次前馈运算,重复上述步骤,直至整个网络模型收敛。
一般地,前馈运算指对样本进行推理或者预测,反馈运算指预测误差反向传播更新参数。
深度模型的训练则在最终损失驱动下对模型进行参数更新并将误差反向传播至网络各层。
超参数
超参数设定:
输入数据像素大小(将图像压缩至2的n次方大小,如32x32像素,96x96,224x224)
卷积层参数设定(卷积核大小、卷积操作的步长、卷积核个数;通常卷积核大小为奇数,一般推荐为3、5;卷积核个数一般为2的次幂)
池化层参数设定
网络训练:
在每轮训练前将训练集顺序打乱(参考依据:信息论中从不相似的事件中学习总是比从相似事件中学习更具信息量)
学习率设定(初始不宜过大,后续需要减缓)
是否使用Batch Normalization
优化算法的选择(SGD、基于动量的SGD、Nesterov、Adagrad、Adadelta、RMSProp、Adam等)
学习率:
学习率设定时可遵循下列两项原则:
1.模型训练开始时初始学习率不宜过大,以0.01和0.001为宜。
2.模型训练过程中,学习率应随轮数增加而减缓。
每轮目标函数损失值绘制训练曲线,根据训练曲线的情况采用不同学习率策略。
batchsize:
模型性能对batchsize虽然没有学习率那么敏感,但是在进一步提升模型性能时,batchsize就会成为一个非常关键的参数。
学习率与batchsize调节:
如果增加了学习率,那么batch size最好也跟着增加,这样收敛更稳定。
尽量使用大的学习率,因为很多研究都表明更大的学习率有利于提高泛化能力。如果真的要衰减,可以尝试其他办法,比如增加batch size,学习率对模型的收敛影响真的很大,慎重调整。