前言
在这里我们为了保障实验具备可比性,我们采用控制变量法进行比较lr=0.1、lr=0.01、lr=0.001和lr=0.0001对图像分类的影响,为了简便实验,我们采用LeNet-5网络结构做母版这样大家也都熟悉,同样我们的数据集也为同一个。
鉴于我在上一篇博客中三种卷积核训练的结果不是很满意,在不改变卷积结构的情况下,选择卷积核大小为3乘3的作为实验对象。
一.比对之前
明确不变量如下所示:
1.1 数据集不变(总类别为10,手写数字数据集,单类别数为500)
1.2 训练集和验证集的划分不变(训练:验证=7:3)
1.3 网络结构除卷积核相同
1.4 训练轮数相同
1.5 损失函数相同
1.6 验证频率
1.7 硬件设备相同
为了避免意外现象,我们对这5种学习率各自进行三次训练,分别取均值为最后统计值
options = trainingOptions('sgdm',... 'InitialLearnRate',0.01, ... 'maxEpochs', 20, ... 'ValidationData', imdsValidation, ... 'ValidationFrequency',5,... 'Verbose',false,... 'Plots','training-progress');% 显示训练进度
二.学习率为0.1
由下图可得如下信息:
2.1 验证准确度:91.423%
2.2 训练历时39s
2.2 loss曲线收敛(正常未出现过拟合和欠拟合)\
三.学习率为0.01
由下图可得如下信息:
3.1 验证准确度:91.91%
3.2 训练历史39s
3.2 loss曲线收敛(正常未出现过拟合和欠拟合)\
四.学习率为0.001
由下图可得如下信息:
4.1 验证准确度:89.176%
4.2 训练历时39s
4.2 loss曲线未完全收敛,仍然有下降的空间(此时应增加迭代轮数)
五.学习率为0.0001
由下图可得如下信息:
5.1 验证准确度:79.823%
5.2 训练历时39s
5.2 loss曲线明显未收敛,有大量的下降的空间(此时应增加迭代轮数)
六.总结
对同一网络结构的模型在相同的硬件上运行,我们发现随着学习率由0.1逐渐向0.0001靠近的时,函数的收敛也会随之变缓慢,若需要精度增加或loss减小,应当适当的增加训练的轮数。
合适的学习率和训练轮数,可以在最短时间内达到模型的最优解,节约了训练的时间成本,避免不必要的算力浪费。