您的位置:首页 > 其它

基于Keras的LeNet-5的超参数调节实验

2018-02-02 19:18 1091 查看
一.使用技术说明

1.Keras是一个神经网络API,用python编写,以Tensorflow、CNTK、Theano开源深度学习库为后端。可以在短时间内上手入门,具备模块化、以扩展等特点。支持卷积网络,能在CPU和GPU上无缝运行。

2.tensorflow是谷歌公司开发的开源深度学习库,与theano、CNTK等深度学习框架相比,star和follow人数最多。使用Keras和tensorflow的组合可以快速搭建神经网络、卷积神经网络等深度学习模型,支持GPU训练,易于上手,接口简洁。

二.实验设计

本实验使用LeNet-5模型结构,三层卷积、二层池化、三层全链接。在LeNet-5模型中,需要调节的参数众多,包括激活函数、梯度下降、训练集的规模、训练轮次、超参数。如果对每个参数都进行调节,会出现爆炸式的实验结果,过程繁杂。

其中梯度下降中的参数(学习率,优化函数)对准确度的收敛速度起较大作用,对准确度的大小影响不大。激活函数对损失函数求导找最小值有影响,对准确度的大小影响也不大。训练集和测试集使用mnist手写识别数据集,60000张训练集、10000张测试集。本实验使用此数据集,不做改动。最后的训练轮次、超参数作为实验的重点。超参数选取卷积核大小和步长,卷积核的个数使用LeNet-5原模型数值。本组其他三名成员分别在C1 、S1、C2层对卷积核和步长进行实验,寻找准确度最高的情况下的超参数值。

最优参数实验的整体思路是首先在原模型的基础上改变训练轮次epoch的大小,寻找epoch的最优值。之后使用此epoch值分别在C1 、S1、C2层上对卷积核和步长两个变量进行寻优。以C1层为例,在其他变量(S1层之后的所有参数)不变的前提下,确定卷积核大小对准确度的影响。用此卷积核大小替换初始模型中的卷积核变量,在此基础上继续调整C1层的stride步长的大小,找到步长的最优值。之后可以得到C1层的最优卷积核和步长值。S1,C2层使用同样方法。最后将三层的最优值进行汇总测试,与原模型进行对比,比较准确率的大小,实验结论。其中测试数值在每个成员的实验报告中体现。

依据此方法,我们最终的得到C1层中卷积核大小为3、步长为1,S1层中卷积核大小为5,步长为2时,准确率从原模型的98.5%提升到98.7%。















注:如有错误,请批评指正!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
相关文章推荐