模糊神经网络[1]是将模糊系统和神经网络结合的产物, 它吸取了模糊系统和神经网络各自的优点,既具有神经网络的准确拟合能力和学习能力,又具有模糊逻辑的强大结构性知识表达能力[2-3].模糊神经网络的学习主要有两部分:结构辨识和参数估计.结构辨识是指按照一定的性能要求确定模糊系统的规则数、隶属函数的形状以及个数.传统的方法是通过专家的知识经验获取,近年来不少学者[4-7]用模糊聚类方法来获取初始模糊规则库,避免了传统方法的盲目性和随机性.参数学习是在初始结构确定以后对参数的进一步优化.
文献[3]提出的模糊神经网络学习算法是基于误差反向传播算法,存在收敛速度慢和易陷入局部极小点等问题.遗传算法虽然从理论上能够搜索到全局最优解,但需要对每个模糊规则进行编码,面临着粒度与搜索速度这一对矛盾[8].而粒子群算法概念简单,容易实现,收敛速度快,并且具有全局寻优能力.用粒子群算法[9-16]实现参数的快速全局寻优成为近年来的研究热点.文献[9-11]将模糊前件和后件参数作为粒子向量进行全局寻优,克服了传统的梯度下降法对初始参数依赖大、易陷入局部极小的缺陷.虽然粒子群算法全局搜索能力强,收敛速度快,但是在训练后期其局部搜索能力差.而梯度下降法具有较好的局部搜索能力,因此本文研究Mamdani模糊神经网络参数优化时用基于粒子群算法的模糊聚类得到模糊系统前件和后件的初始参数.然后用粒子群算法和梯度下降法相结合的方法对模糊神经网络的前件和后件参数进行进一步寻优,实验结果表明该方法提高了Mamdani模糊神经网络的逼近能力.
1 粒子群算法粒子群优化算法(PSO)是由美国Kenney博士和Eberhart博士在1995年提出的基于对鸟群捕食行为模拟的演化算法[17].它是基于群体智能的全局优化技术,通过粒子间的相互作用,对解空间进行智能搜索,从而发现最优解.
设在一个D维的目标搜索空间中,每个粒子看成是空间内的一个点.有m个粒子组成一个群体.其中zi=(zi1, zi2, …, ziD)为第i个粒子的D维位置矢量,vi=(vi1, vi2, …, viD)为第i个粒子的飞行速度,每个粒子的位置Z为一个潜在的解.根据适应值函数可计算每个粒子当前的适应值,根据适应值的大小衡量出哪个粒子为最优解.记第i个粒子到第t次迭代为止搜索到的最优位置为pi=(pi1, pi2, …, piD),整个粒子群到第t次迭代为止搜索到的最优位置为pg=(pg1, pg2,…,pgD).在每次迭代中,粒子根据式(1)、式(2)更新速度和位置:
| $v_{id}^{t + 1} = wv_{id}^t + {c_1}{\rm{ran}}{{\rm{d}}_{\rm{1}}}\left( {} \right) * \left( {p_{id}^t - z_{id}^t} \right) + {c_2}{\rm{ran}}{{\rm{d}}_{\rm{2}}}\left( {} \right) * \left( {p_{gd}^t - z_{id}^t} \right), $ | (1) |
| $z_{id}^{t + 1} = z_{id}^t + v_{id}^{t + 1}, 其中d = 1, 2, \cdots, D. $ | (2) |
式中, c1, c2为加速系数,常取值为2;rand1和rand2为两个在[0, 1]范围内变化的随机数,用来保持群体的多样性.w为惯性因子,惯性因子w对优化性能有很大的影响,较大的w值有利于跳出局部极小点,而较小的w值有利于算法收敛.一般采用以下公式进行更新:
| $w = {w_{\max }} - \frac{{{w_{\max }} - {w_{\min }}}}{{{\rm{ite}}{{\rm{r}}_{{\rm{max}}}}}}{\rm{iter, }} $ | (3) |
iter为当前迭代次数,itermax为最大迭代次数.
2 基于粒子群算法的模糊C均值聚类基本步骤[4]如下:
(1) 对样本数据X={x1, x2, …, xn}进行模糊C均值聚类,产生C个聚类中心,C个聚类中心组成一个粒子,重复进行N次即生成N个粒子z1, z2, …, zN并对其进行实数编码.其中xi=(xi1, xi2, …, xiD),每个粒子zi是C×D列的一维行向量.
(2) 对每个粒子,计算样本数据的隶属度矩阵U.
(3) 计算每个粒子的适应度值,找出个体最优值pi和全局最优值pg.
(4) 根据公式对每个粒子的速度和位置进行更新,产生下一代的粒子群.
(5) 如果达到最大迭代次数或停止阈值则停止迭代,在最后一代中找到最优解.否则转到步骤(2).
3 Mamdani模糊神经网络初始结构基于粒子群算法的模糊C均值聚类可以将已知的数据分为C类,假设最优粒子为z=(z1, z2, …, zC),其中zi=(z1i, z2i, …, zD-1i, zDi)为相应的聚类中心.每个聚类中心对应一条模糊规则,模糊聚类中心的前D-1维为输入,最后一维为输出.其中C为模糊规则的数目.规则前件部分的隶属函数可以用高斯函数表示为
| ${\mu _{A_i^j}}\left( {{x_i}} \right) = \exp \left[{-\frac{{{{\left( {{x_i}-{m_{ji}}} \right)}^2}}}{{2{{\left( {{\mathit{\sigma }_{\mathit{ji}}}} \right)}^2}}}} \right], j = 1, 2, \cdots, C. $ | (4) |
式(4)中mji, σji分别为高斯函数的中心和方差.mji的初始值为zji(第j个聚类中心的第i维),隶属函数的宽度计算公式为
| $\sigma _{ji}^2 = \frac{{{{\sum\limits_{k = 1}^n {{{\left( {{\mu _{jk}}} \right)}^q}\left( {{x_{ki}} - {m_{ji}}} \right)} }^2}}}{{\sum\limits_{k = 1}^n {{{\left( {{\mu _{jk}}} \right)}^q}} }}, q \ge 1. $ | (5) |
该模糊规则系统采用高斯函数、乘机推理机、单值模糊器和中心平均解模糊器, 系统输出为
| $y = \frac{{\sum\limits_{j = 1}^c {{\mathit{\alpha }_\mathit{j}}{w_j}} }}{{\sum\limits_{j = 1}^c {{\alpha _j}} }}, {w_j} = {z_{Dj}}, {\alpha _j} = \prod\limits_{i = 1}^{D - 1} {{\mu _{A_i^j}}} \left( {{x_i}} \right). $ | (6) |
模糊神经网络结构如图 1所示.
|
图 1 模糊神经网络图 Figure 1 Diagram of fuzzy neural networks |
第1层为输入层.每个神经元接受一个数据信号xi,并向下一层传递.
第2层为隶属函数层.原始数据经过模糊聚类分为C类(C条规则),因此,每个组(用方框表示)内各有C个神经元(表示C个前提),其隶属函数式如式(4)所示.
第3层为模糊推理层,每个节点代表一条模糊规则,它的作用是用来匹配模糊规则的前件,计算出每条规则的合适度.这一层共有C个神经元,其中第i个神经元只接受前一层每个组内的第i个神经元的输出.其输出如式(6)的αj.
第4层为输出层,它所实现的是精确化计算,输出公式为式(6)的y.
定义网络训练的目标函数为
| $E = \frac{1}{{2N}}\sum\limits_{i = 1}^N {{{\left( {{y_i} - {y^*}} \right)}^2}} $ | (7) |
式中yi是模糊系统实际输出;y*为期望输出.
5 参数学习Mamdani模糊神经网络通过基于粒子群算法的模糊聚类确定模糊规则库的初始参数.传统的梯度下降法对初始值敏感,学习参数时容易陷入局部最优.而粒子群算法全局搜索能力强,收敛速度快.但是粒子群算法也同样存在着不足,当在最优点附近时无法精确地确定最优解的位置,即局部搜索能力不强.所以本文在参数学习时以式(7)中的函数为目标函数,先用粒子群算法对模糊规则库的初始参数进行全局寻优,当达到最大迭代次数或目标函数小于某一阈值时采用梯度下降法对(mji, σji, wj)进行进一步调整,使其具有更高的精度,最后得到理想完善的模糊规则库.
6 仿真实例通过以下两个函数逼近问题的例子来验证文中所提方法的性能.
(1)
(2)
通过Matlab仿真以上两个函数逼近实验,分别得到图 2和图 3所示结果,两个函数分别在各自定义域内均匀选取200个输入输出数据对.按照基于粒子群算法的模糊聚类对样本数据进行聚类,其中聚类数目为21,粒子群数目为30,最大迭代次数为500,最大阈值为0.000 001.在得到初始模糊规则后,在其取值附近产生30个模糊规则库,此时用粒子群优化模糊规则库的参数时最大迭代次数为1 000,最大阈值为0.000 000 1.当粒子群优化模糊规则库的参数达到最大迭代次数或最大阈值时,用图 1即梯度下降法对参数进行进一步寻优最大迭代次数为60 000.
|
图 2 函数f1的逼近效果 Figure 2 The approximate rendering of function f1 |
|
图 3 函数f2的逼近效果 Figure 3 The approximate rendering of function f2 |
从表 1中可以看出做函数逼近时文中所提到的方法具有更高的精度.通过对比说明将粒子群算法和梯度下降法相结合对参数寻优能更好地逼近函数.
| 表 1 RMSE性能比较 Table 1 The RMSE performance comparison |
基于粒子群算法的模糊聚类产生一个初始的模糊规则库,接着用粒子群算法和梯度下降法来共同学习初始参数,充分利用了粒子群算法的全局搜索能力和梯度下降法的局部搜索能力使得模糊规则库中的参数具有更高的精度,实验结果表明该方法提高了Mamdani模糊神经网络的逼近能力.
| [1] |
王立新, 王迎军. 模糊系统与模糊控制[M]. 北京: 清华大学出版社.
|
| [2] |
Liu P, Li H. Fuzzy neural network theory and application[M]. Singapore: World Scientific Publishing, 2004.
|
| [3] |
张智星, 孙春在, 水谷英二.
神经-模糊和软计算[M]. 西安: 西安交通大学出版社, 2000.
|
| [4] |
王秀娟, 侍洪波. 应用聚类和模糊神经网络方法设计模糊规则库[J].
中南工业大学学报:自然科学版, 2003, 31(4): 360-362.
Wang X J, Shi H B. Clustering and fuzzy neural network for fuzzy rule sets modeling[J]. J Cent South Univ Technol:Natural Science, 2003, 31(4): 360-362. |
| [5] |
李映, 焦李成. 应用聚类和模糊神经网络设计模糊系统[J].
西安电子科技大学学报:自然科学版, 2001, 10, 28(5): 593-597.
Li Y, Jiao L C. Design of fuzzy systems using clustering and fuzzy neural netwoks[J]. Journal of Xidian University:Natural Science, 2001, 10, 28(5): 593-597. |
| [6] |
王玲, 贺兴时. 基于改进的模糊聚类在模糊神经网络中的应用[J].
大理学院学报, 2008, 7(4): 42-45.
Wang L, He X S. Application of the Fuzzy neural network based on improved fuzzy clustering[J]. Jouranl of Dali University, 2008, 7(4): 42-45. |
| [7] |
吴文进, 汪洪波, 江善和. 基于模糊聚类的模糊神经网络控制[J].
自动化与仪器仪表, 2009, 3(143): 9-11, 14.
Wu W J, Wang H B, Jiang S H. A fuzzy neural network control based on fuzzy clustering algorithm[J]. Automation & Instrumentation, 2009, 3(143): 9-11, 14. |
| [8] |
肖建, 白裔峰, 于龙. 模糊系统结构辨识综述[J].
西南交通大学学报, 2006, 41(2): 135-142.
Xiao J, Bai Y F, Yu L. Overview of fuzzy system structure identification[J]. Jouranl of Southwest Jiaotong University, 2006, 41(2): 135-142. |
| [9] |
李秀英, 韩志刚. 基于粒子群算法优化的T-S型模糊神经网络控制器[J].
黑龙江大学自然科学学报, 2010, 27(2): 272-276.
Li X Y, Han Z G. A controller of T-S model fuzzy neural network based on particle swarm optimization[J]. Juornal of Natural Science of Heilongjiang University, 2010, 27(2): 272-276. |
| [10] |
刘欢, 葛德胜, 肖根福, 等. 基于粒子群算法的模糊神经网络控制器[J].
井冈山学院学报, 2008, 29(2): 29-32.
Liu H, Ge D S, Xiao G F, et al. Fuzzy neual controller based on particle swarm optimization algorithm[J]. Journal of Jinggangshan University, 2008, 29(2): 29-32. |
| [11] |
李绍平, 彭志平. 一种粒子群-神经模糊系统的研究与应用[J].
计算机应用与软件, 2009, 7, 26(7): 103-139.
Li S P, Peng Z P. On combining pso with nfcs and its application[J]. Computer Applications and Software, 2009, 7, 26(7): 103-139. |
| [12] |
周欣然, 腾召胜, 易钊. 基于混合协同粒子群优化的广义T-S型模糊模型训练方法[J].
系统工程与电子技术, 2009, 31(5): 1190-1193.
Zhou X R, Teng Z S, Yi Z. Training method for generalized Takagi-Sugeno fuzzy model by hybrid cooperative particle swarm optimization[J]. Systems Engineering and Electronics, 2009, 31(5): 1190-1193. |
| [13] |
肖健梅, 王锡淮. 采用改进的PSO的非线性系统T-S模糊模型辨识[J].
计算机工程与应用, 2006, 42(5): 46-49.
Xiao J M, Wang X H. T-S Fuzzy model identification for nonlinear system based on Improved PSO[J]. Computer Engineering and Applications, 2006, 42(5): 46-49. |
| [14] |
夏天, 王新晴, 梁升, 等. 带自适应遗传算子的粒子群神经网络及其应用[J].
解放军理工大学学报:自然科学版, 2011, 2, 12(1): 71-74.
Xia T, Wang X Q, Liang S, et al. ANN trained by PSO with adaptive genetic operator and its application[J]. Journal of Pla University of Science and Technology:Natural Science Edition, 2011, 2, 12(1): 71-74. |
| [15] |
崔光照, 李小广, 张勋才, 等. 基于改进的粒子群遗传算法的DAN编码序列优化[J].
计算机学报, 2010, 2, 33(2): 311-317.
Cui G Z, Li X G, Zhang X C, et al. The optimization of DNA encodings based on modified PSO/GA algorithm[J]. Chinese Journal of Computers, 2010, 2, 33(2): 311-317. |
| [16] |
陶新民, 徐晶, 杨立标, 等. 一种改进的粒子群和K均值混合聚类算法[J].
电子与信息学报, 2010, 1, 32(1): 93-97.
Tao X M, Xu J, Yang L B, et al. Improved cluster algorithm based on K-Means and particle swarm optimization[J]. Journal of Electronics & Information Technology, 2010, 1, 32(1): 93-97. |
| [17] |
Kennedy J, Eberhart R C. Particle swarm optimization[C]. Proceeding of 1995 IEEE International Conference on Neural Networks. New York: IEEE, 1995: 1942-1948.
|
2014, Vol. 31