基于遗传算法-反向传播神经网络的地下无人驾驶车辆自主导航技术*

2019-01-10 08:59李建国龙智卓
机械制造 2018年12期
关键词:权值个数无人驾驶

□ 姜 勇 □ 姜 智 □ 郭 鑫 □ 李建国 □ 龙智卓

1.北京矿冶科技集团有限公司 机械设计研究所 北京 100160

2.天津科技大学 机械工程学院 天津 300222

1 研究背景

随着地下矿开采深度的增大,采矿条件越来越恶劣,对人的安全威胁也越来越大,由此遥控采矿、自动化矿山开采技术应运而生[1-2]。目前,地下无人驾驶车辆自主导航技术是数字矿山研究的热点和难点[3-4]。近年来,随着科技的不断创新和进步,在处理未知、变化环境下移动机器人的局部路径规划方面,已经取得了巨大突破,提出了多种方法,包括:① 基于模型的反应式方法,如人工势场法;②基于行为的反应式方法,如模糊逻辑控制方法、遗传算法 (GA)、人工神经网络(ANN)算法;③ 以上方法与其它算法的综合运用[5-7]。

笔者提出一种基于GA-反向传播神经网络(BPNN)的地下无人驾驶车辆自主导航技术,这一技术基于GA-BPNN导航模型,将两种基于行为的反应式方法结合应用,重点放在ANN对传感器输入信息的融合和模拟人输出行为控制方面,充分发挥ANN高度的非线性逼近能力和自适应能力,利用GA的全局搜索能力来调整BPNN的初始化权值和阈值,从而改善局部极小值问题。

2 ANN模型

2.1 ANN概述

ANN是20世纪80年代之后迅速发展起来的一门新兴学科,通过模拟生物神经系统,在计算机上实现一种复杂的网络,具有并行运行、容错、自适宜、自学习及集体运算等特点[8-9]。

在实际应用ANN时,绝大多数ANN模型采用BPNN和它的变化形式,其实质是将一组样本的输入、输出问题转化为一个非线性优化问题,通过梯度算法,利用迭代运算求解权值问题。

2.2 BPNN结构

最常见的BPNN由输入层、隐含层、输出层组成,同层神经元之间没有连接,只能是上层神经元连接下层神经元。如图1所示,从左至右的神经元层依次为输入层、隐含层和输出层。输入层的神经元个数对应的是网络中的输入参数个数,输出层的神经元个数对应的是网络中的输出值个数,隐含层神经元可以是一层或多层,每层神经元的个数可以是一个或多个。一般在使用BPNN时,只使用一层隐含层。

▲图1 BPNN拓扑结构

在三层BPNN拓扑结构中,输入层神经元个数为d,隐含层神经元个数为p,输出层神经元个数为m,Wij表示第i个输入神经元对第j个隐含层神经元的权值,Vkj表示第k个隐含层神经元对第j个输出层神经元的权值,Xi1、Xi2、…、Xid为第i组数据的 d个输入值,yi1、yi2、…、yim为第i组数据的 m 个输出值,Wj0表示第j个隐含层神经元的阈值,Vk0表示第k个输出神经元的阈值。

在三层BPNN模型中,一般隐含层神经元与输出层神经元使用Sigmoid函数作为激励函数。Sigmoid函数包含两种形式:Log-Sigmoid函数和Tan-Sigmoid函数。Log-Sigmoid函数的表达式为:

式中:x为上层神经元的输入。

Tan-Sigmoid函数的表达式为:

Log-Sigmoid函数能够将输入值映射到区间[0,1],而Tan-Sigmoid函数能够将输入值映射到区间[-1,1]。

ANN中使用最多的激励函数是Sigmoid函数,通过对上一层神经元的输入进行挤压,将输出压缩到期望的区间内。

2.3 BPNN算法

BPNN算法是一类有导师的学习算法,用于BPNN的权值和阈值学习[10]。BPNN是一个单向传播的网络,每一层神经元只接收来自前一层神经元的信号。通过反向传播,调整权值,使输入和输出之间具有较好的映射作用。BPNN算法的基本思想是,学习过程由信号的正向传播与误差的反向传播两个过程组成。正向传播时,模式作用于输入层,经隐含层处理后,传向输出层。如输出层未能满足预期的输出要求,则转入误差的反向传播阶段,将输出误差按某种形式通过隐含层向输入层逐层返回,并分摊给各层的所有单元,从而获得各层单元的参考误差或误差信号,以此作为修改各单元权值的依据。这种信号正向传播与误差反向传播的各层权值矩阵的修改过程,是周而复始进行的。权值不断修改的过程,也就是网络不断学习的过程,这一过程一直进行到网络输出的误差逐渐减小到可接受的程度或达到设定的学习次数为止。

BPNN算法流程如下。

(1)确定输入层、隐含层、输出层神经元个数。输入层和输出层神经元个数是确定的,而隐含层神经元个数不确定,但却至关重要。隐含层神经元过少,会使神经网络模型学习能力有限,无法完整表达某些非线性关系的映射。隐含层神经元过多,则会导致BPNN模型计算难度加大,训练起来更费时间。如今,确定隐含层神经元个数最常用的方法是利用经验公式来估计参数的大概值,然后采用试探法最终确定个数。常用的经验公式有两种:

式中:ε为常数。

(2)数据预处理。数据预处理包括输入向量、输出向量的确定,以及数据归一化处理,一般利用式(1)或式(2)将数据归一化到[0,1]或[-1,1]。

(3)神经网络模型初始化。神经网络模型初始化过程需要初始化输入层到隐含层之间的权值Wij、隐含层到输出层之间的权值Vkj、学习效率、各个神经元的阈值,以及选取激励函数、最大迭代次数、目标误差E等。

(4)计算隐含层神经元的输出值。先计算输入层神经元输入参数的加权和,然后使用激励函数对这个值进行挤压,形成隐含层输出值。计算公式如下:

式中:Ki为第i个隐含层神经元的输出值;函数f(x)为激励函数;Wki为第k个输入神经元对第i个隐含层神经元的权值;xk为输入层第k个神经元的输入;wi0为第i个神经元的阈值。

(5)计算输出层神经元的输出值。方法与第(4)步相同。

(6)计算误差。根据BPNN模型的输出和实际输出,计算输出误差。

(7)判断训练是否结束。可根据以下几个条件判断BPNN模型训练是否结束:①误差E小于给定的误差最大值;②迭代次数大于设定的某个参数值;③ 训练误差已经收敛至最小值,即连续多次误差E基本不变。若达到以上条件之一,则进入第(9)步,否则进入第(8)步。

(8)反向调整神经元之间的权值及神经元阈值,然后返回到第(4)步。

(9)利用测试集验证算法的可行性。首先将训练好的BPNN根据测试集的输入计算出模型输出,然后对比模型输出和实际输出,最后计算预测误差并分析模型构建是否合理。

(10)算法训练结束,使用该BPNN模型解决实际问题。

3 GA-BPNN导航模型

3.1 GA

GA是在20世纪70年代初期由美国密歇根大学Holland教授发展起来的,根据生物进化模型,即遗传、变异、选择提出的一种优化算法[11-12]。GA将优胜劣汰、适者生存的生物进化原理引入待优化参数形成的编码串群体中,按照一定的适配值函数及一系列遗传操作对各个体进行筛选,从而保留适配值高的个体,组成新的群体。此时,群体中适配值最高的个体即为待优化参数的最优解。GA在计算机上模拟生物进化过程和基因操作,并不需要对象的特定知识,也不需要对象的搜索空间是连续可微的,它具有全局寻优的能力。人们常把GA应用于许多领域的实际问题,如函数优化、自动控制、图像识别、机器学习等。目前,GA正在向其它领域渗透,形成GA和ANN或模糊控制相结合的新算法,从而构成一种新型的智能控制系统整体优化结构形式。

3.2 GA-BPNN导航模型设计

GA是一种通过模拟自然进化过程搜索全局最优解的算法,该算法同时考虑搜索空间上的多点,并使用概率法则来引导搜索。将GA应用于ANN中,以前述GA和BPNN理论为基础,首先建立地下车辆工作环境的BPNN模型;然后应用GA调整网络的权值,执行选择、交叉、变异遗传操作;最后将二进制码译为十进制码,输出结果来解决实际问题。这种特定的遗传神经控制器,既继承了GA较好的全局搜索性,又突出了BPNN具有较强非线性逼近能力的特点,可以应用于复杂非线性多变量系统的控制。

3.3 输入设定

地下车辆在复杂的地下环境中无人行驶,对于前方障碍物的检测通常采用激光传感器来完成。对于地下车辆而言,只需要判断车体正前方、左前方、右前方、左方和右方有无障碍物即可,因此,分别在车体的以上五个方向安装传感器,以检测地下行驶环境,将传感器和障碍物的相交情况作为神经网络的输入。地下无人驾驶车辆传感器布置如图2所示。

▲图2 地下无人驾驶车辆传感器布置

图2中,一个扇形区域代表一个激光传感器可检测的最大区域,L为传感器可测最远距离,阴影区域代表障碍物,扇形区域与阴影区域重叠则表示传感器检测到障碍物。图2中全部障碍物区域即为地下车辆在行驶过程中,经传感器检测后需要转向时的所有可能情况。设定传感器检测到5 m以内障碍物时,返回“1”信号,反之,返回“0”信号,那么,五个传感器将分别产生五个返回信号,这五个信号即可作为模型的输入。然后利用BPNN进行信息融合。在试验中,采取了人为设置的方法,对于采集到的信息,去掉了一些相同的环境信息,对剩下的一些信息逐个人为设置导师信号,最终所设计的BPNN含有32种输入模式。

3.4 网络输出

将BPNN的输出设置为三个,用于更新地下车辆的注视向量、转向角和转向速度。除转向速度由地下车辆本身性能决定外,注视向量和转向角的大小都需要根据实际环境中障碍物的分布情况来确定。针对不同的障碍物分布,对应采取不同的判断与决策,即BPNN的具体转向角和注视向量输出。以图2为原型,在逐一分析不同障碍物的分布情况下,得到车体应该采取的最大转向角,将32种输入模式进行分类划分。如当1号、2号和3号传感器全部返回“0”信号时,表明车体的正方向没有检测到障碍物,则车辆直行。

3.5 模型总体结构及参数设定

所设计的BPNN有三层,分别是输入层、隐含层和输出层,经前述讨论,输入层的神经元个数d为5,隐含层的神经元个数p为10,输出层的神经元个数m为3,网络中所有的权值都在[-1,1]区间上,由GA进行学习更新。

BPNN训练参数包括训练样本、训练次数、训练期望误差和学习速率。将已划分的32种输入模式训练样本确定为神经网络训练样本,训练次数设定为最大200次,期望误差值选取0.001,学习速率选取0.4,利用GA的宏观搜索和全局优化能力来确定BPNN网络的初始权值和阈值。GA-BPNN学习方法流程如图3所示。

▲图3 GA-BPNN学习方法流程

4 基于GA-BPNN的导航试验

4.1 GA-BPNN仿真

为了更清楚地说明GA在BPNN中应用的优势,分别对引入GA前后的BPNN进行仿真对比分析。初始权值和阈值选取[-1,1]的随机数,经过多次训练,仿真对比曲线如图4所示。

▲图4 BPNN仿真曲线对比

仿真结果表明,BPNN误差训练仿真曲线在误差达到0.1之后,训练进入死区,误差呈近似水平线,根本无法满足所设定误差0.001的要求。由此可见,在还没有达到所要求精度之前,误差就停留在某一固定值,不再减小,陷入局部极小值问题,这就是BPNN经常出现的问题,也是BPNN的致命弱点。若出现这种情况,即代表网络训练失败,此时的BPNN虽已训练完毕,但无法根据输入向量给出正确的输出结果,即不具备正确的模式识别能力,如应用在地下车辆的导航控制中,就会出现控制系统无法根据传感器返回的信号给出正确操作指令的情况,使地下车辆在行进过程中失控。

GA-BPNN误差训练仿真曲线在较短的训练代数内达到所要求的误差0.001,在很大程度上改善了BPNN的局部极小值问题。由此可见,通过引入GA对BPNN的权值和阈值进行修正是十分必要的。

4.2 导航试验

建立某地下采矿巷道电子地图,地下无人驾驶试验车辆如图5所示。

▲图5 地下无人驾驶试验车辆

地下无人驾驶车辆系统布置如图6所示。将GABPNN算法应用到地下无人驾驶车辆的自主导航控制技术中,自主行驶路径跟踪曲线如图7所示。试验结果表明,基于GA-BPNN的地下无人驾驶车辆自主导航技术可以保证地下车辆在地下复杂多变的地形环境中,根据预定路径实时调整自身的运行轨迹,完成避障与路径规划,实现地下车辆的自主行驶。

▲图6 地下无人驾驶车辆系统布置

▲图7 地下车辆自主行驶路径跟踪曲线

5 结论

基于GA和BPNN算法,将两种基于行为的反应式方法结合应用,提出了一种基于GA-BPNN的地下无人驾驶车辆自主导航技术。

通过引入GA对BPNN的权值和阈值进行修正,充分发挥BPNN高度的非线性逼近能力和自适应能力,并利用GA的全局搜索能力调整BPNN的初始化权值和阈值,很好地解决了BPNN算法经常陷入局部极小值的致命弱点。

将GA-BPNN应用于地下无人驾驶车辆的自主导航控制,对车辆的路径轨迹进行跟踪试验,验证了算法的有效性和可靠性,具有重要的工程应用价值。

猜你喜欢
权值个数无人驾驶
我们村的无人驾驶公交
一种融合时间权值和用户行为序列的电影推荐模型
怎样数出小正方体的个数
CONTENTS
无人驾驶车辆
无人驾驶公园
等腰三角形个数探索
怎样数出小木块的个数
基于MATLAB的LTE智能天线广播波束仿真与权值优化
怎样数出小正方体的个数