﻿ 基于改进PSO和FCM的模糊辨识
«上一篇
 文章快速检索 高级检索

 智能系统学报  2019, Vol. 14 Issue (2): 378-384  DOI: 10.11992/tis.201707025 0

引用本文

LIU Nan, LIU Fucai, MENG Aiwen. Fuzzy identification based on improved PSO and FCM[J]. CAAI Transactions on Intelligent Systems, 2019, 14(2): 378-384. DOI: 10.11992/tis.201707025.

文章历史

Fuzzy identification based on improved PSO and FCM
LIU Nan , LIU Fucai , MENG Aiwen
College of Electrical Engineering, Yanshan University, Qinhuangdao 066004, China
Abstract: To improve the accuracy and efficiency of T-S model, a new fuzzy identification approach based on improved particle swarm optimization (PSO) algorithm and fuzzy C-means (FCM) algorithm is proposed. Considering that it is easy for PSO to fall into the local extremum in the treatment of high-dimensional complex functions, a PSO algorithm with dynamic adjustment between local search and global search is proposed in this paper. Moreover, the FCM algorithm is one of the most commonly used methods of fuzzy identification. The algorithm is simple and efficient, but it is particularly sensitive to initialization and easily falls into local optimum. To solve this problem, the global search capability of improved PSO is used to optimize the clustering center, and this significantly improves the accuracy and efficiency of the algorithm. Finally, a nonlinear system is modeled and simulated. The simulation results show the effectiveness and superiority of this method.
Key words: fuzzy identification    nonlinear system    fuzzy C-means    T-S model    intelligent algorithm    particle swarm optimization    Box-Jenkins identification    global optimization

1 PSO算法基本原理

Kennedy等于1995年提出了PSO算法[11]，它具有进化计算和群智能的优点，是一种启发式全局优化算法。与其他进化算法类似，PSO算法也是通过个体间的协作与竞争，实现复杂问题的全局优化。

PSO算法可以描述为：设粒子在 $D$ 维空间搜索，粒子个数为 $N$ 。第 $k$ 个粒子所处的位置为向量 ${{{X}}_{{k}}} = ({x_{k1}},{x_{k2}}, \cdots ,{x_{kD}})$ ，粒子的飞行速度为 ${{{V}}_{{k}}} = ({v_{k1}},$ ${v_{k2}}, \cdots,{v_{kD}})$ ，每一个粒子都是所优化问题的一个解，粒子通过不断的改变自己的位置和速度找到新解。第 $k$ 个粒子到目前为止搜索到的最优解 ${{{P}}_{{k}}} = ({p_{k1}},{p_{k2}}, \cdots ,{p_{kD}})$ ，整个群体经历过的最优位置为 ${{{P}}_{{g}}} = ({p_{g1}},{p_{g2}}, \cdots ,{p_{gD}})$ 。每个粒子的速度和位置按照式(1)、式(2)进行变化：

 $\begin{array}{l} {v_{kd}}(t + 1) = w{v_{kd}}(t) + {c_1}{r_1}({p_{kd}}(t) - {x_{kd}}(t)) + \\ \qquad\qquad\;\;{c_2}{r_2}({p_{gd}}(t) - {x_{kd}}(t)) \end{array}$ (1)
 ${x_{kd}}(t + 1) = {x_{kd}}(t) + {v_{kd}}(t + 1)$ (2)

2 搜索模式动态调整的PSO算法

SMPSO算法首先要选择粒子的数目 $N$ ，每个粒子都有自己的位置、适应度和处于局部搜索模式或者全局搜索模式的标识值。粒子的位置根据求解的需要由 $D$ 维向量表示，适应度可由目标函数的适当变形得到，所处模式的标识值可以用数字0和1表示。粒子的两种模式分别代表着算法的不同进程。在程序的运行中，一部分粒子执行局部搜索模式，其余的粒子执行全局搜索模式。它们各自的数量由搜索模式动态调整参数 ${\rm SM}$ 控制， ${\rm SM}$ 表示处于全局搜索模式的粒子所占种群的比例，按照式(3)计算得到，其中 ${\rm S{M}_{\max }}$ ${\rm S{M}_{\min }}$ 分别为 ${\rm SM}$ 的最大值和最小值， ${\rm DT}$ 为当前的迭代的次数， ${\rm MaxDT}$ 是最大的迭代次数。随着 ${\rm DT}$ 的增加， ${\rm SM}$ ${\rm S{M}_{\min }}$ 线性地增加到 ${\rm S{M}_{\max }}$ ，这样可以使得粒子群在开始时搜索能力比较强，而到后期随着种群的最优适应度越来越好，增大 ${\rm SM}$ ，有利于粒子群聚集到更好的位置，进行更细致的搜索。

 ${\rm SM} = {\rm S{M}_{\min }} + {\rm DT} \cdot \frac{{{\rm S{M}_{\max }} - {\rm S{M}_{\min }}}}{{{\rm MaxDT}}}$ (3)

SMPSO算法整体进程描述如下：

1) 选择粒子群个体数为 $N$

2) 随机初始化粒子的位置为 $D$ 维向量，按照 ${\rm SM}$ 随机分配粒子进入局部搜索模式和全局搜索模式；

3) 根据适应度函数计算每个粒子的适应度值，选择适应度值最好的粒子为当前的最优解；

4) 根据粒子所处模式的标识值，判断粒子处于哪种搜索模式。如果粒子处于局部搜索模式，应用局部搜索模式的程序；如果粒子处于全局搜索模式，应用全局搜索模式的程序。具体步骤详见2.1和2.2；

5) 按照 ${\rm SM}$ 重新分配粒子进入局部搜索模式和全局搜索模式；

6) 如果程序满足了终止条件，则终止程序；否则返回3)继续执行。

2.1 局部搜索模式

1) 复制 ${\rm SN}$ 份当前粒子的位置；

2) 对于每个粒子的候选位置，按照式(4)更新粒子的候选位置。

 $\begin{array}{l} {x_{id}}\left( {t + 1} \right) = {x_{id}}\left( t \right) \pm {\rm rand} \cdot {\rm{SR}},\\ d = 1,2, \cdots ,D;\;\;\;\;i = 1,2, \cdots ,{\rm{SN}} \end{array}$ (4)

3) 计算所有候选位置的适应度( ${\rm FS}$ )；

4) 计算所有候选位置和它本身被选择的可能性。如果所有的 ${\rm FS}$ 都相同，将所有候选位置的可选择性设置为1；否则按照式(5)计算候选位置的可选择性：

 ${P_i} = \frac{{\left| {{\rm F{S}_i} - {\rm F{S}_b}} \right|}}{{\left| {{\rm F{S}_{\max }} - {\rm F{S}_{\min }}} \right|}},\;\;\;\; i = 1,2, \cdots ,SN + 1$ (5)

5) 根据候选位置和它本身的可选择性 ${P_i}$ ，运用轮盘赌方法选择粒子的下一个位置。每个候选位置和本身被选中的概率 ${\hat P_i}$

 ${\hat P_i} = {{{P_i}} / {\sum\limits_{i = 1}^{SN + 1} {{P_i}} }},\;\;\;\;i = 1,2, \cdots ,SN + 1$ (6)

2.2 全局搜索模式

 ${{{X}}_{{k}}}(t + 1) = {{{X}}_{{k}}}(t) + c \cdot r \cdot ({{{P}}_{{{kg}}}}(t) - {{{X}}_{{k}}}(t))$ (7)
 ${{{P}}_{{{kg}}}}(t) = \lambda {{{P}}_{{g}}}(t) + (1 - \lambda ){{{P}}_{{k}}}(t)$ (8)

1) 本文方法省去了粒子的速度，由于本文加入了局部搜索模式，使得粒子在两种模式之间切换，粒子的历史速度对于粒子的影响并不是很大。只要控制好参数 ${\rm SM}$ ${\rm SR}$ ，粒群体将不容易早熟，陷入局部最优解。同时，省去速度参数，也避免了对粒子速度的限制，进一步减少了算法的运行时间。

2) 种群的每个粒子对局部最优解 ${{{P}}_{{k}}}$ 和全局最优解 ${{{P}}_{{g}}}$ 的位置进行判断和权衡，找出最佳搜寻位置 ${{{P}}_{{{kg}}}}$ ，随后对此最佳位置进行跟踪。从式(8)可以看出最佳搜寻位置 ${{{P}}_{{{kg}}}}$ ${{{P}}_{{g}}}$ ${{{P}}_{{k}}}$ 的连线上， $\lambda$ 越接近1， ${{{P}}_{{{kg}}}}$ 离全局最优解 ${{{P}}_{{g}}}$ 的距离越近； $\lambda$ 越接近0， ${{{P}}_{{{kg}}}}$ 离局部最优解 ${{{P}}_{{k}}}$ 越近。

2.3 算法参数分析

1) 搜寻个数 ${\rm SN}$ 选取的越大，耗时越多，但是相应的优化精度越高，一般选取3~5之间。

2) $\lambda$ 是控制最佳搜寻位置的参数，调节整体和局部的关系。针对参数 $\lambda$ 的选择，本文采用了黄金分割点的位置 $\lambda = 0.618$ 或者 $\lambda = 0.382$ 。黄金分割已经在众多领域取得了成功的应用，例如在数学上具有广泛应用价值的优选法，在股市上的应用，在战术布阵中的应用等。黄金分割被认为是建筑和艺术中最理想的比例，达到了局部与整体的辩证统一。

3) ${\rm SM}$ 表示处于全局搜索模式的粒子所占种群的比例。 ${\rm SM}$ 越大，全局搜索模式的粒子越多，算法收敛到最优解的速度越快，但是容易早熟，陷入局部最优解； ${\rm SM}$ 越小，局部搜索模式的粒子越多，算法找到最优解的速度太慢，耗时太多，所以一般情况下 ${\rm S{M}_{\max }}$ 为1， ${\rm S{M}_{\min }}$ 为0.5。

4) 局部搜索范围 ${\rm SR}$ 越大，越有利于算法摆脱局部最优解，加快算法找到全局最优解，但是局部搜索能力比较弱； ${\rm SR}$ 越小，局部搜索能力比较强，但是容易陷入局部最优解。根据具体问题的取值范围合理的选择 ${\rm SR}$ 的大小。

3 基于SMPSO和FCM的建模方法 3.1 T-S模糊模型

 $\begin{array}{l} {R^i}:\;\;\;{\rm{if}}\;{x_1}\;{\rm{is}}\;A_1^i\;{\rm{and}}\;{x_2}\;{\rm{is}}\;A_2^i\;{\rm{and}}\; \cdots \;{\rm{and}}\;{x_r}\;{\rm{is}}\;A_r^i,{\rm{ }}\\ \;\;\;\;\;\;\;\;{\rm{then}}\;{y^i} = p_0^i{\rm{ }} + p_1^i{x_1} + \cdots + p_r^i{x_r} \end{array}$ (9)

 $\begin{array}{l} \hat y = \sum\limits_{i = 1}^c {{\mu _i}{y^i}} /\sum\limits_{i = 1}^c {{\mu _i}} = \sum\limits_{i = 1}^c {{w_i}} {y^i} = \\ \;\;\;\;\;\;\sum\limits_{i = 1}^c {{w_i}} (p_0^i{\rm{ }} + p_1^i{x_1} + \cdots + p_r^i{x_r}) \end{array}$ (10)

 $\begin{array}{l} {R^i}:\;\;\;{\rm{if}}\;{\rm{ }}{{x}}\;{\rm{is}}\;{A^i}{\rm{,}}\\ \;\;\;\;\;\;\;{\rm{then}}\;{y^i} = p_0^i + p_1^i{x_1} + \cdots + p_r^i{x_r} \end{array}$ (11)

 ${\hat{ Y}} = {{XP}}$ (12)

 ${{{P}}_{{{i + 1}}}} = {{{P}}_{{i}}} + \frac{{{{{S}}_{{i}}} \cdot {{{x}}^{\rm{T}}}_{{{i + 1}}} \cdot ({y_{i + 1}} - {{{x}}_{{{i + 1}}}} \cdot {{{P}}_i})}}{{1 + {{{x}}_{{{i + 1}}}} \cdot {{{S}}_{{i}}} \cdot {{x}}_{{{i + 1}}}^{\rm{T}}}}$ (13)
 ${{{S}}_{{{i + 1}}}} = {{{S}}_{{i}}} - \frac{{{{{S}}_{{i}}} \cdot {{x}}_{{{i + 1}}}^{\rm{T}} \cdot {{{x}}_{{{i + 1}}}} \cdot {{{S}}_{{i}}}}}{{1 + {{{x}}_{{{i + 1}}}} \cdot {{{S}}_{{i}}} \cdot {{x}}_{{{i + 1}}}^{\rm{T}}}}$ (14)
3.2 模糊C均值聚类算法

 $\left\{ \begin{array}{l} {{{J}}_m}({{U}},{{V}}) = \sum\limits_{i = 1}^c {\sum\limits_{k = 1}^n {{{({u_{ik}})}^m}{{({d_{ik}})}^2}} } \\ {\rm{s.t}}\;\;\;\;\;\;\;\;\;{{U}} \in {{{M}}_{fc}} \end{array} \right.$ (15)

1) 设定聚类中心数 $c(2 \leqslant c \leqslant n)$ $n$ 为样本个数，给聚类中心 ${{{V}}^0}$ 赋初值，设定模糊权重指数 $m$ 、最大迭代次数 ${C_{\max }}$ 和停止阈值 $\varepsilon$

2) 根据聚类中心 ${{{V}}^r}$ ，用式(16)计算第 $r + 1$ 次迭代的隶属度矩阵 ${{{U}}^{r + 1}}$ ，对于 $\forall i,k$ ，如果 $\exists d_{ik}^r$ ，则有：

 $u_{ik}^{r + 1} = \frac{1}{{\displaystyle\sum\limits_{l = 1}^c {{{(\frac{{d_{ik}^r}}{{d_{lk}^r}})}^{\frac{2}{{m - 1}}}}} }}$ (16)

3) 根据隶属度矩阵 ${{{U}}^{r + 1}}$ ，用式(17)计算第 $r + 1$ 次迭代的聚类中心 ${{{V}}^{r + 1}}$

 ${{V}}_i^{r + 1} = \frac{{\sum\limits_{k = 1}^n {{{(u_{ik}^{r + 1})}^m}{{{x}}_k}} }}{{\sum\limits_{k = 1}^n {{{(u_{ik}^{r + 1})}^m}} }}$ (17)

4) 根据给定的阈值 $\varepsilon$ ，如果 $\left\| {{{{V}}^{r + 1}} - {{{V}}^r}} \right\| < \varepsilon$ 或者迭代次数大于 ${C_{\max }}$ ，则停止迭代，最后一次的迭代结果就是隶属度矩阵 ${{U}}$ 和聚类中心 ${{V}}$ ，否则令 $r = r + 1$ ，转到2)。

3.3 基于SMPSO和FCM的模糊辨识

1) 由辨识的目标得到输入输出数据。

2) 采用模糊C均值聚类算法对聚类中心 ${{V}}$ 进行初步优化，算法步骤详见3.2。

3) 选择输入变量个数为 $r$ ，即聚类中心的维数为 $r$ ，那么粒子的位置表示为

 $\begin{array}{l} {{X}} = [\underbrace {{v_{11}},{v_{12}}, \cdots ,{v_{1r}}}_{{{{v}}_1}}, \cdots ,\underbrace {{v_{i1}},{v_{i2}}, \cdots ,{v_{ir}}}_{{{{v}}_i}}, \cdots , \underbrace {{v_{c1}},{v_{c2}}, \cdots ,{v_{cr}}}_{{{{v}}_c}}] \end{array}$ (18)

4) 根据聚类中心 ${{{V}}^\lambda }$ ，用式(19)计算第 $\lambda + 1$ 次迭代的隶属度矩阵 ${{{U}}^{\lambda + 1}}$ ，对于 $\forall i,k$ ，如果 $\exists d_{ik}^\lambda$ ，则有：

 $u_{ik}^{\lambda + 1} = \frac{1}{{\displaystyle\sum\limits_{l = 1}^c {{{(\frac{{d_{ik}^\lambda }}{{d_{lk}^\lambda }})}^{\frac{2}{{m - 1}}}}} }}$ (19)

5) 采用递推最小二乘法求取结论参数 ${{P}}$ ，用结论参数 ${{P}}$ 和输入数据集计算模糊模型的输出 ${\hat y_k}$ 。SMPSO算法的适应度函数如式(20)，根据适应度函数算出每个个体的适应度值，由式(3)~(8)更新个体位置。

 $\begin{array}{c} {\rm{fitness}} = {{{J}}_m}({{U}},{{V}}) + w \cdot {\rm{MSE}}= \\ \displaystyle\sum\limits_{i = 1}^c {\sum\limits_{k = 1}^n {{{({u_{ik}})}^m}{{({d_{ik}})}^2}} } + \frac{w}{N}\sum\limits_{k = 1}^N {{{\left( {{y_k} - {{\hat y}_k}} \right)}^2}} \end{array}$ (20)

6) 如果程序满足了终止条件，则终止程序；否则返回4)继续执行。

4 仿真研究 4.1 Box-Jenkins煤气炉数据辨识

 Download: 图 1 SMPSO模糊模型辨识结果 Fig. 1 Identification result of fuzzy model with SMPSO
 Download: 图 2 SMPSO模糊模型辨识误差 Fig. 2 Identification error of fuzzy model with SMPSO

4.2 非线性动态系统

 Download: 图 3 SMPSO模糊模型辨识结果 Fig. 3 Identification result of fuzzy model with SMPSO
 Download: 图 4 SMPSO模糊模型辨识误差 Fig. 4 Identification error of fuzzy model with SMPSO

 $y{\rm{(}}k{\rm{ + }}1{\rm{) = }}\frac{{y{\rm{(}}k{\rm{)}}}}{{{\rm{1 + }}y{{(k)}^{\rm{2}}}}}{\rm{ + }}u{{\rm{(}}k{\rm{)}}^3}$ (21)

5 结束语

 [1] TAKAGI T, SUGENO M. Fuzzy identification of systems and its applications to modeling and control[J]. IEEE transactions on systems, man, and cybernetics, 1985, SMC-15(1): 116-132. DOI:10.1109/TSMC.1985.6313399 (0) [2] PARK B J, OH S K, PEDRYCZ W. Fuzzy identification by means of partitions of fuzzy input space and an aggregate objective function[C]//IEEE International Fuzzy Systems Conference Proceedings. Seoul, South Korea, 1999, 1: 480–485. (0) [3] 李峰磊, 窦金梅, 刘福才, 等. 一种基于改进BFO和RLS的模糊建模方法[J]. 南京理工大学学报, 2014, 38(2): 252-258. LI Fenglei, DOU Jinmei, LIU Fucai, et al. Fuzzy modeling method with improved BFO and RLS[J]. Journal of Nanjing university of science and technology, 2014, 38(2): 252-258. DOI:10.3969/j.issn.1005-9830.2014.02.012 (0) [4] LI C, WU T. Adaptive fuzzy approach to function approximation with PSO and RLSE[J]. Expert systems with applications, 2011, 38(10): 13266-13273. DOI:10.1016/j.eswa.2011.04.145 (0) [5] TAMURA S, HIGUCHI S, TANAKA K. Pattern classification based on fuzzy relations[J]. IEEE transactions on systems, man, and cybernetics, 1971, SMC-1(1): 61-66. DOI:10.1109/TSMC.1971.5408605 (0) [6] BACKER E, JAIN A K. A clustering performance measure based on fuzzy set decomposition[J]. IEEE transactions on pattern analysis and machine intelligence, 1981, PAMI-3(1): 66-75. DOI:10.1109/TPAMI.1981.4767051 (0) [7] 樊治平, 于春海, 尤天慧. 一种基于三角模糊数多指标信息的FCM聚类算法[J]. 控制与决策, 2004, 19(12): 1407-1411. FAN Zhiping, YU Chunhai, YOU Tianhui. An FCM clustering algorithm for multiple attribute information with triangular fuzzy numbers[J]. Control and decision, 2004, 19(12): 1407-1411. DOI:10.3321/j.issn:1001-0920.2004.12.020 (0) [8] WU Z, LEATHY R. An optimal graph theoretic approach to data clustering: theory and its application to image segmentation[J]. IEEE transactions on pattern analysis and machine intelligence, 1993, 15(11): 1101-1113. DOI:10.1109/34.244673 (0) [9] DUNN J C. A fuzzy relative of the isodata process and its use in detecting compact well-separated clusters[J]. Journal of cybernetics, 1973, 3(3): 32-57. DOI:10.1080/01969727308546046 (0) [10] BEZDEK J C. Numerical taxonomy with fuzzy sets[J]. Journal of mathematical biology, 1974, 1(1): 57-71. (0) [11] KENNEDY J, EBERHART R C. Particle swarm optimization[C]//Proceedings of the IEEE International Conference on Neural Networks, Australia 1995: 1942−1948. (0) [12] CHEN Jianqin, XI Yugeng, ZHANG Zhongjun. A clustering algorithm for fuzzy model identification[J]. Fuzzy sets and systems, 1998, 98(3): 319-329. DOI:10.1109/TSMC.1987.6499296 (0) [13] HATHAWAY R J, BEZDEK J C, TUCKER W T. Recent convergence results for the fuzzy C-means clustering algorithms[J]. Journal of classification, 1988, 5(2): 237-247. DOI:10.1007/BF01897166 (0) [14] BEZDEK J C, HATHAWAY R J, SABIN M J, et al. Convergence theory for fuzzy c-means: counterexamples and repairs[J]. IEEE transactions on systems, man, and cybernetics, 1987, 17(5): 873-877. DOI:10.1109/TSMC.1987.6499296 (0) [15] HATHAWAY R J, BEZDEK J C, TUCKER W T. Recent convergence results for the fuzzy C-means clustering algorithms[J]. Journal of classification, 1988, 5(2): 237-247. DOI:10.1007/BF01897166 (0) [16] BOX G E P, JENKINS A D. Time series analysis: forecasting and control[M]. San Francisco, USA: Holden-Day, 1976. (0) [17] YOSHINARI Y, PEDRYCZ W, HIROTA K. Construction of fuzzy models through clustering techniques[J]. Fuzzy sets and systems, 1993, 54(2): 157-165. DOI:10.1016/0165-0114(93)90273-K (0) [18] 王宏伟, 马广富, 王子才. 一种基于模糊规则的模糊辩识方法[J]. 系统仿真学报, 1998, 10(4): 61-64. WANG Hongwei, MA Guangfu, WANG Zicai. A fuzzy identification method via fuzzy rules[J]. Acta simulata systematica sinica, 1998, 10(4): 61-64. (0)