2019年华北五省(市、自治区)大学生机器人大赛:人工智能与机器人创意设计赛论文集
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

3 CNN在危化品仓库智能巡检车中的应用研究

将经典网络架构 Lenet-5 应用于危化品仓库智能巡检车采集的道路样本中,image样本为道路样本,label为该image样本对应的json 文件中的角度和速度。通过训练,调整超参数,寻找最适合本样本的参数配置,实验内容如下。

3.1 实验数据

实验数据的来源为危化品仓库智能巡检车采集的道路样本图片,智能巡检车如图 4所示,部分道路样本图片如图 5 所示。Car数据集、训练集的样本大小为 20000 幅彩色图片,彩色图片由160×120个像素点构成。

图4 智能巡检车
Fig.4 Intelligent inspection vehicle

图5 道路样本图片
Fig.5 Photos of road samples

3.2 环境设置

实验在具有Intel 2.20GHz CPU和GTX 1080 Ti GPU的工作站上,将经典卷积神经网络CNN模型应用于本实验。

参数设置如下:

输入:Car数据集。

label:巡检车对应的角度和速度。

kernel_size=5 #卷积核尺寸。

num_filters=32 #卷积核数目。

kernel_size=5 #卷积核尺寸。

num_filters=64 #卷积核数目。

hidden_dim=512 #全连接层神经元。

STEPS=10000 #训练次数。

batch_size=50 #取batch大小。

优化函数:随机梯度下降算法SGD。

损失函数设置:在Car数据集中,使用均方误差(MSE)作为网络的损失函数,如式(1)所示。因为使用MSE能够最小化预测值与label(y(X;θi∗))之间的差值,从而得到θ*的最优解。

3.3 实验结果

学习率是影响性能的超参数之一,相比其他超参数,学习率以一种更加复杂的方式控制着模型的有效容量。当学习率最优时,模型的有效容量最大,因此我们选择调整的超参数为学习率。

3.3.1 固定学习率实验

学习率设置为 0.01、0.001、0.0001,损失函数分别如图6~图8所示。

图6 学习率为0.01时的损失函数
Fig.6 Loss function with learning rate of 0.01

图7 学习率为0.001时的损失函数
Fig.7 Loss function with learning rate of 0.001

图8 学习率为0.0001时的损失函数
Fig.8 Loss function with learning rate of 0.0001

经过多组实验,batch_size在取50时损失函数曲线波动小、稳定性好,训练速度也更快。在固定学习率训练时,学习率为 0.01时的损失函数如图 6 所示,可以看出训练最终的损失值收敛结果为 0.13,但是损失函数曲线变化不稳定;学习率为 0.001 时的损失函数如图 7 所示,可以看出训练最终的损失收敛值结果为0.15,损失函数曲线变化稳定;学习率为0.0001时的损失函数如图8所示,可以看出训练最终的损失收敛情况不好,损失值在0.28以上时损失函数曲线波动较大,损失函数曲线变化不稳定。综上所述,在本数据集上,若固定学习率,学习率为 0.001时的效果较好。

3.3.2 指数缓减学习率

指数缓减是指学习率按训练轮数增长指数差值递减进行指数调节,先使用较大的学习率来快速得到一个较优的解,然后随着迭代的继续,逐渐减小学习率,使模型在训练期更加稳定。

学习率的第一种设置如下:

decay_rate=0.98 #衰减系数。

learning_rate=0.1 #初始学习率。

global_step=global_step #总训练轮数。

decay_steps=1000 #迭代轮数。

训练结果损失函数如图9所示。

图9 指数缓减学习率的损失函数
Fig.9 Exponential reduction of learning rate Loss function

学习率第二种设置如下:

decay_rate=0.98 #衰减系数。

learning_rate=0.1 #初始学习率。

global_step=global_step #总训练轮数。

decay_steps=2000 #迭代轮数。

训练结果损失函数如图10所示。

图10 指数缓减学习率的损失函数
Fig.10 Exponential reduction of learning rate Loss function

在设置学习率以指数缓减的方式进行调整时,在第一种学习率情况下,前期训练损失函数曲线的波动较大,且不稳定,最终损失收敛值达到 0.1;在第二种学习率情况下,最终损失收敛值为0.1。将两种学习率的情况进行比较,第二种学习率的损失收敛值更好,稳定性更高。