2. 大庆师范学院 机电工程学院, 黑龙江 大庆 163312;
3. 中国工程物理研究院计算机应用研究所, 四川 绵阳 621900;
4. 哈尔滨工业大学 计算机科学与技术学院, 黑龙江 哈尔滨 150001
2. Mechanical and electrical engineering college Daqing Normal University, Daqing 163312, China;
3. Computer Application Research Institute of China Academy of Engineering Physics, Mianyang Province, 621900, China;
4. School of Computer Science and Technology, Harbin Institute of Technology, Harbin 150001, China
近年来多名国内外学者在BP神经网络对传感器非线性误差补偿方面进行了研究,并取得了一定的研究成果[1-3]。但BP神经网络的优化搜索策略是在判断梯度下降的基础上寻找最优解,通常容易陷入局部最优。鉴于此,学者们开始采取不同的策略对BP神经网络的训练学习过程进行优化,以解决其训练学习收敛速度慢,容易陷入局部最优的缺点,其中标准遗传算法(SGA)是广泛采用的优化策略之一[4]。遗传算法基于群体进化寻找全局最优解,不依赖于梯度信息,对最优解的搜索遍及整个解空间,算法搜索效率高并具有一定的鲁棒性。采用遗传算法策略的神经网络可以有效应用于非线性系统中,极大程度地避免算法陷入局部最优。
然而,遗传算法需要通过交叉和变异不断生成新的子代个体,如何有效选择交叉和变异的染色体,对算法的影响较大。传统的遗传算法个体选择策略包括轮盘赌方法、锦标赛方法以及排序方法等[5-6],这些方法或具有随机性或遵循某种既定策略缺乏变化,无法根据适应子代个体的变化进行相应调节。本文本文提出了一种基于动态密度聚类改进的自适应多种群遗传算法(improved multiple population genetic algorithm,IMPGA)及子代交叉变异自适应策略,可以有效避免SGA算法的早熟现象;提出动态个体邻域搜索策略,增加移民算子,以提高遗传算法的种群多样性和进化速度。实验结果表明,该算法可以有效提高全局最优解的搜索速度,并且避免出现早熟。
1 改进多种群遗传算法 1.1 多种群遗传算法SGA算法借鉴了生物进化过程中自然选择、遗传和变异等概念演化出的具有高度并行、鲁棒性的全局搜索优化算法。SGA算法的早熟收敛问题与群体规模、选择操作、交叉和变异概率等诸多因素有关,如何合理的设计合适的参数是影响算法性能的主要问题。
多种群遗传算法的基本思想是以个体在解空间的分布稠密程度为依据进行聚类形成一系列小种群,多个种群同时进行优化搜索,利用适应度动态调节密度阈值,达到优胜劣汰加速进化的目的。通过移民算子实现不同种群间信息交换保持种群多样性并促进不同种群的协同进化。
1.2 改进密度聚类方法本文提出一种基于适应度调节的动态密度聚类算法来实现多种群的划分。算法实现的基本步骤如下:
1)生成初始群体。随机生成初始群体xi=[xi1xi2…xin](i=1,2,…,M)。为了统一种群中个体输出范围,对其归一化:
| $x{{\prime }_{ij}}=\frac{2({{x}_{ij}}-{{x}_{ij\text{min}}})}{{{x}_{ij\text{max}}}-{{x}_{ij\text{min}}}}-1$ | (1) |
2) 建立密度阈值关系式。设ρ为密度阈值,根据适应度进行调节,适应度越大密度阈值就越大。int(·)表示对运算结果取整:
| ${{\rho }_{i}}=\text{int}((1+\frac{10{{f}_{i}}}{{{f}_{\text{max}}}-{{f}_{\text{min}}}})\cdot \text{MinPts})$ | (2) |
3) 根据适应度动态调节密度阈值,聚类使适应度高的种群不断扩大,适应度低的种群缩小,体现了优胜劣汰适者生存的自然进化法则。具体的聚类步骤如下:
①按适应度对随机得到的个体排序,计算个体间欧式距离并排序,将所有个体标记为unvisited;
②从适应度最高且标记为unvisited的个体开始聚类,记为pi,若MinPtsi<ρi,则将与pi距离最近的个体pj归为一类并标记为visited;
③取下一个个体pi+1,若标记为visited则跳转到步骤4),否则按照步骤2)中方法继续聚类;4)重复第3)步直到所有个体都标记为visited。
④计算种群领域半径ε:
| $\varepsilon =\text{max}\{\|x{{\prime }_{i}}-x{{\prime }_{l}}\|,i,l\in m\}$ | (3) |
⑤隔代聚类运算。由于对BP算法执行优化的运算过程中,频繁地进行动态密度聚类运算耗时较高,若对每一代进化都进行聚类,整个算法的运算时间会比较长,也没有充分利用遗传算法自身的进化能力。所以每隔3、5代选择执行一次动态密度聚类,这样既可以利用动态密度聚类算法的优势,又可以节约运算时间并提高算法整体收敛速度。
1.3 自适应策略文献[7-8]采用自适应策略使pc和pm随适应度自动改变,提高了算法的收敛速度。然而仅用群体平均适应度作为自适应调节的判断条件并不能全面反应种群间相似度,不适合多种群算法。本文通过种群重量算子反映种群的相似度,种群重量越大表示种群内部个体间相似度越大并且整个种群的平均适应度也越大,因此降低整个种群的交叉概率,对优秀种群及其中的个体进行保护,同时提高种群的变异概率,以维护种群的多样性,使种群能够继续进化。种群重量算子记为zm:
| ${{z}_{m}}=\frac{\sum\limits_{i=1}^{n\prime }{{{f}_{i}}}}{n\prime \varepsilon }$ | (4) |
则种群平均重量:
| ${{\overline{z}}_{m}}=\frac{\sum\limits_{m=1}^{x}{{{z}_{m}}}}{x}$ | (5) |
自适应交叉概率pc:
| ${{p}_{c}}=\left\{ \begin{array}{*{35}{l}} {{p}_{c}}-\frac{k({{z}_{i}}-{{\overline{z}}_{m}})}{{{z}_{\text{max}}}-{{z}_{\text{min}}}}, & {{z}_{m}}>{{\overline{z}}_{m}} \\ {{p}_{c}},{{z}_{m}}m & {} \\ \end{array} \right.$ | (6) |
自适应变异概率pm:
| ${{p}_{m}}=\left\{ \begin{array}{*{35}{l}} {{p}_{m}}-\frac{({{z}_{i}}-{{\overline{z}}_{m}})}{k\left( {{z}_{\text{max}}}-{{z}_{\text{min}}} \right)}, & {{z}_{m}}<{{\overline{z}}_{m}} \\ {{p}_{m}},{{z}_{m}}>{{\overline{z}}_{m}} & {} \\ \end{array} \right.$ | (7) |
种群内部个体适应度系数:
| $k=\frac{{{f}_{i}}}{\sum\limits_{i=1}^{N}{{{f}_{i}}~}}$ | (8) |
式中:n′为种群内部个体的数量,zm为第m个种群的重量,ε为种群的领域半径,x为种群的数量。为了保证每一代种群不断进化,采取精英保留策略把种群中最优秀的个体直接保留到下一代中使其不断优化,而不被交叉、变异等运算破坏。
1.4 动态邻域搜索策略SGA算法主要靠交叉算子是产生新个体,决定了算法全局搜索能力,变异算子决定了遗传算法的局部搜索能力[9]。然而仅倚靠变异算子在解空间中搜索,并不能充分利用解本身的信息,因此为了提高算法的局部搜索能力有必要设置动态邻域搜索策略:
| ${{p}_{i+1}}={{p}_{i}}+r\cdot (\|{{p}_{i}}-{{p}_{\text{best}}}\|+\mu )$ | (9) |
式中:pi表示第i代解,若根据公式计算得到的解的适应度值大于当前解则用新的解的值覆盖当前解,否则保留当前解不变;r∈(-1,1)是为了实现双向搜索而设置的随机数;μ是任意小的正数;‖·‖表示根据当前解与种群中最优解之间的范数动态调整邻域搜索半径。
1.5 设置“移民算子”为避免IMPGA算法中各个种群独立进化,经过多代迭代后失去进化动力,易陷入局部最优解,在算法中引入移民算子,对改进算法的性能起着重要的作用。
移民算子将各个种群在进化过程中出现的最优个体定期的(每隔一定的进化代数,移民周期)引入其他的种群中,实现种群之间的信息交换。具体操作规则是,假设目前进化到第i代,若满足移民周期的要求,则随机抽取某个种群中适应度最高的个体替代目标种群中适应度最小的个体,当所有种群都按此方式执行一遍移民操作后,结束循环完成移民算子操作。
2 IMPGA运行原理及流程IMPGA算法的流程图如图 1所示。
|
| 图1 IMPGA算法流程图 Figure 1 IMPGA algorithm flow chart |
1) 输入算法初始化参数并且随机生成M个n维初始种群。
2) 计算种群中每个个体的适应度。
3) 多种群生成运算。对步骤2)中的适应度排序,计算密度阈值,通过动态密度聚类算法进行种群划分。
4) 选择操作,计算种群重量,执行自适应的交叉、变异运算。
5) 动态邻域搜索,计算种群中个体适应度。
6) 移民操作。随机选取其它种群中最优个体代替本种群的最差个体。完成种群更新,生成新种群。
7) 结束条件判断。若不满足算法结束条件,则将跳转到步骤 3),重新运算;若满足结束条件,则输出计算结果,计算结束。
3 算法应用分析基于量子隧道效应复合材料QTC(quantum tunneling composites)制备的触觉传感单元因为其信号检测电路简单,灵敏度高,空间分辨率小,传感器体积小,抗干扰能力强等优点 [1-2],在机器人感知应用领域得到广泛的应用。本文采用FSR400型薄膜压力传感器制备了可以用于机械手的触觉传感器及检测实验平台。通过实验发现,虽然基于QTC材料的薄膜压力传感器具有很高的灵敏度,但是其也存在非线性误差大的缺点。
本文以触觉传感器非线性误差补偿为测试算例,并将BP神经网络算法(back propagation algorithm,BP)、遗传算法优化神经网络算法(genetic back propagation algorithm,GA-BP)、文献[7]中所提出的自适应免疫遗传算法(adaptive immunity algorithm back propagation,AGA-BP)和本文算法(IMPGA-BP)进行比较,对所提出的算法进行验证。
误差补偿系统有1个输入参数(输入电压)和1个输出参数(接触力的大小),所以采用1-5-1结构的BP神经网络,即1个输入层节点、5个隐含层节点,1个输出层节点,共有10个权值,6个阈值。神经网络隐含层神经元的传递函数采用S型正切函数,输出层神经元的传递函数采用S型对数函数。分别采用GA-BP、AGA-BP、IMPGA-BP法进行优化,算法采用实数编码。遗传算法控制参数见表 1。
| 控制参数 | 数值 |
| 编码长度 | 16 |
| 初始种群规模 | 50 |
| 最大迭代次数 | 100 |
| 交叉概率(pc) | 0.9 |
| 变异概率(pm) | 0.05 |
选用30组训练样本分别对BP、 GA-BP、AGA-BP、IMPGA-BP 系统进行训练,并输出网络训练误差曲线(图 2),由图 2可见在采用各种算法优化计算后,系统的非线性回归拟合标准差明显减少。从得到最小误差的结果来分析,IMPGA-BP优化后的效果最好,优化后非线性误差缩小到0.891%,是各种算法中误差最小的,这说明IMPGA-BP的寻优能力是各种算法中最好的。
|
| 图2 神经网络训练误差曲线 Figure 2 Neural network training error curve |
为了进一步验证该最优网络的性能,用一组未参与训练的数据作为测试数据对网络进行测试,IMPGA-BP神经网络预测输出和期望输出的对比如图 3所示。经计算预测结果与期望结果之间的均方误差为0.0137,进一步说明了算法的可靠性和稳定性。
|
| 图3 IMPGA-BP网络预测输出 Figure 3 IMPGA-BP predicted output |
图 4是迭代次数为100次时,GA算法、AGA算法、IMPGA算法适应度演化曲线。
|
| 图4 适应度演化曲线 Figure 4 Fitness evolution curve |
图 4中n′为迭代次数。从图中可以看出,前23次迭代阶段,3种优化算法都有较好的收敛性。但是随着迭代次数的增加,GA算法在约40代以后便不再继续演化,适应度值基本保持不变;AGA的收敛速度明显大于IMPGA,并且大约在进化到第45代左右便失去了进一步寻优的能力,曲线也不在继续演化。因此从适应度演化曲线可以看出IMPGA算法与其它算法相比明显有更强的全局寻优能力。
4 结论针对触觉传感器非线性特性补偿问题,本文提出一种改进的基于密度聚类的多种群遗传算法(IMPGA)优化BP神经网络,以改善触觉传感器的非线性补偿效果。动态密度聚类方法是IMPGA算法的重要操作之一,既可以形成多种群并行进化环境,也可以在迭代中根据种群重量动态自适应的调节基因的交叉概率和变异概率,所以它对于加快搜索速度、确保种群不至于陷入局部最优解方面具有重要的意义。从实验结果表明:
1) 本文提出的基于种群重量的动态自适应调整变异概率和交叉概率方法,在函数的优化过程中,能有效地克服遗传算法不成熟收敛问题进而搜索到全局最优解。
2) 用IMPGA可同时优化神经网络的结构和权重,且优化得到的网络的均方误差比用BP算法、GA-BP算法、AGA-BP算法训练的还小,优化时间较短。
3) 对基于QTC材料的触觉传感器非线性补偿实验结果表明该算法补偿精度高,鲁棒性好,为解决非线性传感器的输出补偿问题提出了一种新方法。
| [1] | LIU Rutao, LI Denghua, TIAN Hongxia, et al. Non-liner error compensation of the new vibration accelermeter based on neural network[J]. Ferroelectrics, 2010, 401: 134–140. DOI:10.1080/00150191003673865 |
| [2] |
张铭钧, 孙瑞琛, 王玉甲. 基于RBF神经网络的水下机器人传感器状态监测方法研究[J].
哈尔滨工程大学学报, 2005, 26(6): 726–931.
ZHANG Mingjun, SUN Ruichen, WANG Yujia. Research on condition monitor for AUV sensors based on RBF neural network[J]. Journal of Harbin Engineering University, 2005, 26(6): 726–931. |
| [3] | SIMON H. Principle of neural network[M]. Beijing: Machinery Industry Press, 2004: 98-105. |
| [4] |
史峰, 王辉, 郁磊, 等.
Matlab智能算法30个案例分析[M]. 北京: 航空航天大学出版社, 2011: 27-37.
SHI Feng, WANG Hui, YU Lei, et al. Matlab Intelligent algorithms 30 case analysis[M]. Bei jing: University of Aeronautics and Astronautics Press, 2011: 27-37. |
| [5] | RANDY L H. Phase-only adaptive nulling with a genetic algorithm[J]. IEEE transactions on antenna and propagation, 1997, 45(6): 1009–1014. DOI:10.1109/8.585749 |
| [6] | EDWARD E A. Design of a loaded monopole having hemispherical coverage using a genetic algorithm[J]. IEEE transactions on antenna and propagation, 1997, 45(1): 1–4. DOI:10.1109/8.554232 |
| [7] |
严心池, 安伟光, 赵维涛. 自适应免疫遗传算法[J].
应用力学学报, 2005, 22(3): 445–449.
YAN Xinchi, AN Weiguang, ZHAO Weitao. Adaptive immunity genetic algorithm[J]. Chinese Journal of applied mechanics, 2005, 22(3): 445–449. |
| [8] | SCINVIVAS M, PATNAIK L M. Adaptive probabilities of crossover and mutation in genetic algorithms[J]. IEEE Trans SMC, 1994, 24(4): 656–666. |
| [9] | ARES F J. Application of genetic algorithm and simulated annealing technique in optimizing the aperture distributions of antenna array pat-terns[J]. Electronics Letters, 1996, 32(3): 148–149. DOI:10.1049/el:19960157 |
| [10] | PEDRO SILVA GIR O, PEDRO MIGUEL PINTO RAMOS. Tactile sensors for robotic applications[J]. Measurement, 2013, 46(3): 1257–1271. DOI:10.1016/j.measurement.2012.11.015 |
| [11] | LEE M H. Tactile sensing:new directions, new challenges[J]. The international journal of robotics research, 2000, 46(19): 636–643. |
| [12] |
宋绍民, 王敏, 王耀南, 等. 传感器数据的精确重构方法及其性能研究[J].
传感技术学报, 2010, 23(1): 52–56.
SONG Shaomin, WANG Min, WANG Yaonan, et al. Approaches to accurately data reconstruction for sensors and their performance[J]. Chinese journal of sensors and actuators, 2010, 23(1): 52–56. |
| [13] |
黎钧琪, 石国祯. 遗传算法交叉率与变异率关系的研究[J].
武汉理工大学学报, 2003, 27(1): 97–99.
LI Junqi, SHI Guozhen. A study of the relationship of crossover rate and mutation rate in genetic algorithm[J]. Journal of Wuhan University of Technology, 2003, 27(1): 97–99. |
| [14] |
张志毅, 袁荣湘, 杨同忠, 等. 基于粗糙集和小生境遗传算法的电网故障诊断规则提取[J].
电工技术学报, 2009, 24(1): 158–163.
ZHANG Zhiyi, YUAN Rongxiang, YANG Tongzhong, et al. Rule extraction for power system fault diagnosis based on the combination of rough sets and niche genetic algorithm[J]. Transactions of China electrotechnical society, 2009, 24(1): 158–163. |
| [15] |
刘建文, 丁洁玉, 潘坤, 等. 基于个体相似度的改进自适应遗传算法研究[J].
青岛大学学报, 2016, 31(1): 16–19.
LIU Jianwen, DING Jieyu, PAN Kun, et al. Improved adaptive genetic algorithm based on individual similarity[J]. Journal of Qingdao University, 2016, 31(1): 16–19. |
| [16] |
周伟. 基于聚类方法的小生境遗传算法研究[D]. 长沙:湖南大学, 2008:8-15.
ZHOU Wei. The research on niche genetic algorithm based on clustering[D]. Changsha:Hunan University, 2008:8-15. |
| [17] |
王李进, 尹义龙, 钟一文. 逐维改进的布谷鸟搜索算法[J].
软件学报, 2013, 24(11): 2687–2698.
WANG LiJin, YIN YiLong, ZHONG YiWen. Cuckoo search algorithm with dimension by dimension improvement[J]. Journal of software, 2013, 24(11): 2687–2698. |
| [18] |
朱庆保. 最佳拟合与神经网络相结合实现传感器特性线性化[J].
控制理论与应用, 2003, 20(1): 66–69.
ZHU Qingbao. Sensor's characteristics linearization using artificial neural networks and best-fitting[J]. Control theory & applications, 2003, 20(1): 66–69. |
| [19] |
王瑞明, 曾玉金, 蒋静坪. 基于免疫遗传算法的模糊神经网络在交流伺服系统中的应用[J].
浙江大学学报(工学版), 2005, 39(8): 1156–1159.
WANG Ruiming, ZENG Yujin, JIANG Jingping. Application of immune genetic algorithm based fuzzy neural network in AC servo system[J]. Journal of Zhejiang University (Engineering Science), 2005, 39(8): 1156–1159. |


