![2019年华北五省(市、自治区)大学生机器人大赛:人工智能与机器人创意设计赛论文集](https://wfqqreader-1252317822.image.myqcloud.com/cover/956/35276956/b_35276956.jpg)
3 CNN在危化品仓库智能巡检车中的应用研究
将经典网络架构 Lenet-5 应用于危化品仓库智能巡检车采集的道路样本中,image样本为道路样本,label为该image样本对应的json 文件中的角度和速度。通过训练,调整超参数,寻找最适合本样本的参数配置,实验内容如下。
3.1 实验数据
实验数据的来源为危化品仓库智能巡检车采集的道路样本图片,智能巡检车如图 4所示,部分道路样本图片如图 5 所示。Car数据集、训练集的样本大小为 20000 幅彩色图片,彩色图片由160×120个像素点构成。
![](https://epubservercos.yuewen.com/CA9355/18822094501534106/epubprivate/OEBPS/Images/37659_44_01.jpg?sign=1739242689-hl7jqlCSxhU5Z2HMGIoSqq1K0NJ4t4zd-0-e76a38805c7ca7a2e3907761590e497d)
图4 智能巡检车
Fig.4 Intelligent inspection vehicle
![](https://epubservercos.yuewen.com/CA9355/18822094501534106/epubprivate/OEBPS/Images/37659_44_02.jpg?sign=1739242689-AC2nPDoKHjcz3M7cbKfAamFIktQQmMMe-0-802cee167a24d2d8d3f24ee0ae584425)
图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∗))之间的差值,从而得到θ*的最优解。
![](https://epubservercos.yuewen.com/CA9355/18822094501534106/epubprivate/OEBPS/Images/37659_44_04.jpg?sign=1739242689-G3PT73pc3PIFGzjvtT7D9ozWwQjRvT0m-0-34c83397b685012fa3f74ab9fb3f52e8)
3.3 实验结果
学习率是影响性能的超参数之一,相比其他超参数,学习率以一种更加复杂的方式控制着模型的有效容量。当学习率最优时,模型的有效容量最大,因此我们选择调整的超参数为学习率。
3.3.1 固定学习率实验
学习率设置为 0.01、0.001、0.0001,损失函数分别如图6~图8所示。
![](https://epubservercos.yuewen.com/CA9355/18822094501534106/epubprivate/OEBPS/Images/37659_44_05.jpg?sign=1739242689-dsmp6xWByYkzSZ4O5IW1yvnQY9c7LKmA-0-752da7e1c37569ecded09b581b1c288c)
图6 学习率为0.01时的损失函数
Fig.6 Loss function with learning rate of 0.01
![](https://epubservercos.yuewen.com/CA9355/18822094501534106/epubprivate/OEBPS/Images/37659_45_01.jpg?sign=1739242689-auxgE2uc1qRTEbSLxkaOtExjk7XMuEiY-0-416368336160ab22f9e149fb8076de06)
图7 学习率为0.001时的损失函数
Fig.7 Loss function with learning rate of 0.001
![](https://epubservercos.yuewen.com/CA9355/18822094501534106/epubprivate/OEBPS/Images/37659_45_02.jpg?sign=1739242689-UXpLZEJM9H0UTTB22wOVDkYwQ99BLGRM-0-ca87de204d450027797d04559533b2ab)
图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所示。
![](https://epubservercos.yuewen.com/CA9355/18822094501534106/epubprivate/OEBPS/Images/37659_45_03.jpg?sign=1739242689-lg0DcGRVI7yY2UrQf83CBKhgGFcL94Ow-0-f5b021a95b25b15302a62712cec4ba8e)
图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所示。
![](https://epubservercos.yuewen.com/CA9355/18822094501534106/epubprivate/OEBPS/Images/37659_45_04.jpg?sign=1739242689-g4ssJpyfxIp7rw7ynZ9A57aBfM3Y7wss-0-df247adbb4cc32da82318928a6ddece9)
图10 指数缓减学习率的损失函数
Fig.10 Exponential reduction of learning rate Loss function
在设置学习率以指数缓减的方式进行调整时,在第一种学习率情况下,前期训练损失函数曲线的波动较大,且不稳定,最终损失收敛值达到 0.1;在第二种学习率情况下,最终损失收敛值为0.1。将两种学习率的情况进行比较,第二种学习率的损失收敛值更好,稳定性更高。