杜宏慶,陳德旺
(1.福州大學計算機與大數據學院/軟件學院;2.智慧地鐵福建省高校重點實驗室,福建福州 350108)
模糊系統(tǒng)[1]在模糊集上定義輸入、輸出和狀態(tài)變量,通過結合人腦思維的模糊性特點,采用模糊計算處理確定性系統(tǒng)中難以解決的模糊信息問題,具強魯棒性和高可解釋性?,F已廣泛應用于自動控制、時序信號處理、模式識別等領域[2]。
模糊系統(tǒng)雖可表示模糊知識,但缺乏有效的學習機制,自學習能力不足[3]。神經網絡雖具備自學習能力,但未能較好表達人腦的推理功能,可解釋性較差[4]。因此,本文提出基于自適應神經網絡的模糊推理系統(tǒng)(Adaptive Network-based Fuzzy Inference System,ANFIS)[5],通過神經網絡實現系統(tǒng)模糊化、模糊推理和反模糊化三個基本過程,并利用學習機制從輸入、輸出樣本數據中自動提取模糊規(guī)則。具體而言,將離線訓練與在線學習算法相結合自動調整模糊規(guī)則。此外,基于反向傳播算法與最小二乘法的混合算法,調整系統(tǒng)的前提參數和結論參數,使其具備自適應、自組織和自學習能力。
ANFIS 在消除噪聲[6]、信號干擾[7]、非線性系統(tǒng)建模[8-10]等領域取得了一定成績,但仍然存在精度不高、計算速度慢、難以處理高維數據等問題。針對上述問題,楊正校等[11]基于粒子群優(yōu)化(Particle Swarm Optimization,PSO)算法優(yōu)化ANFIS,通過改進神經網絡的模型參數與隸屬度函數參數,增強模糊系統(tǒng)的可解釋性和精度。張濤等[12]提出一種基于人工蜂群(Artificial Bee Colony,ABC)算法訓練ANFIS 的新方法,基于ABC 進行訓練和優(yōu)化模型參數,使該模型在辨識非線性系統(tǒng)時取得了良好的效果。周丹等[13]提出了一種結合改進簡化PSO 算法和ANFIS 建立功放模型,采用線性遞減慣性權重和動態(tài)學習因子,提高種群的多樣性和收斂速度,使模型在簡單的結構下仍能保持較高精度。邵澤輝[14]將遺傳算法(Genetic Algorithm,GA)與ANFIS 相結合,基于GA 優(yōu)化ANFIS 的前提參數和結論參數,提出一種將遺傳算法與禁忌搜索(Tabu Search,TS)算法相結合的自適應混合學習算法,以取得更好的運算性能和精度。
針對ANFIS 存在難以處理高維數據的問題,王宇鋼等[15]提出了一種結合聚類和ANFIS 的評價方法,首先采用改進的模糊C 均值聚類算法自適應分類樣本,然后通過學習訓練集形成模糊規(guī)則,該方法具有一定的可行性。楊慧婕等[16]提出了一種基于改進的模糊C 均值聚類和ANFIS的預測算法,采用減法聚類法(Subtrative Clustering Meth?od,SCM)和加權模糊C 均值(Fuzzy C-means Algorithm,FCM)生成初始神經模糊系統(tǒng)(Neural Fuzzy System,NFS)建立非線性預測模型,在一定程度上解決了傳統(tǒng)FCM 魯棒性差的問題,并加快了模型收斂速度,同時還具備較高的預測精度。Hua 等[17]在ANFIS 基礎上提出了利用最綜合陡降法和最小二乘法相結合的混合學習算法修正模型網絡參數,基于共軛梯度下降法提高其前提參數的學習速度。Benmouiza 等[18]提出了一種改進聚類的ANFIS 算法,通過FCM、SCM 和網格劃分3 種方法簡化推理過程,使改進的ANFIS 結構具備描述模糊理論數據的不確定性和人工神經網絡的自學習能力。Wang 等[19]結合SCM 和FCM算法建立了初始模糊推理系統(tǒng),采用共軛梯度(Fletcher-Reeves)算法對傳統(tǒng)ANFIS 的學習算法進行改進。上述改進方法主要基于聚類或共軛梯度法改進傳統(tǒng)ANFIS 的結構與網絡參數,相較于群智能優(yōu)化策略,前者的效率更高,但仍存在一定的局限性。
為了解決上述問題,本文搭建了深度神經模糊系統(tǒng)(Deep Neural Fuzzy System,DNFS),將高維問題分解為多個低維問題,利用子模塊解決低維問題。因此每個NFS 都要具備快速優(yōu)化能力。此外,本文基于模糊規(guī)則適應度的計算方式和快速反向傳播(Back Propagation,BP)算法,提出了一種結合Z-score 與優(yōu)化技術的神經模糊系統(tǒng)(Zscore and Optimize-technique combined Neural Fuzzy Sys?tem,ZONFS)。利用三種實現算法對系統(tǒng)的前提參數進行調整,通過分析綜合性能指標對算法進行評估。
本文首先介紹了典型的ANFIS 結構,分析其不足之處。然后,介紹了ZONFS 的內部結構并提出三種改進方法。接下來,引入三種常用的回歸算法,比較分析各算法在三個數據集上的性能指標。最后,根據實驗結果給出結論。
如圖1 所示,ANFIS 結構共包含5 層。其中,第1 層結點將輸入信號模糊化;第2 層節(jié)點將各輸入信號的隸屬度相乘,并將乘積作為各條規(guī)則的適應度;第3 層結點將各條規(guī)則的適用度進行歸一化計算;第4 層計算每條模糊規(guī)則的輸出;第5 層節(jié)點采用面積法進行模糊系統(tǒng)的解模糊化,計算該系統(tǒng)所有輸入信號的總輸出。其中,x=[x1,x2]為系統(tǒng)的輸入向量,依次經過5 層網絡輸出O1,i、O2,i、O3,i、O4,i、O5,i,i表示節(jié)點數。其中,x1、x2為輸入,A1、A2、B1、B2為相應的模糊子集,N為計算規(guī)則的歸一化可信度,ω為規(guī)則適應度,f為總輸出。
在ANFIS 中,通過第3 層對所有規(guī)則適應度ω進行歸一化計算,計算公式如式(1):
標準化神經模糊系統(tǒng)的初始化模型由5 層網絡構成,如圖2所示。
第一層:將輸入分量x1,x2模糊化,劃分到模糊集合A和B中,μ為隸屬函數。計算公式為:
本文采用高斯型隸屬函數??捎墒剑?)表示:
Fig.2 Structure of ZONFS圖2 ZONFS結構
式中,ci為高斯函數的中心,σi為高斯函數的寬度,本文代表前提參數。
第二層:每個節(jié)點代表一條模糊規(guī)則,對該層的輸入進行乘積模糊后取得所有規(guī)則的適應度。計算公式為:
第三層:對所有規(guī)則適應度進行Z-score 標準化計算,如式(6)-式(8)所示:
其中,為第i個模糊子集的第j個樣本的適應度。
第四層:由結論參數pi0、pi1、pi2計算每條規(guī)則的輸出:
第五層:采用面積法去模糊化,計算該系統(tǒng)的總輸出:
現階段通常采用BP 算法[20]與最小二乘估計法(Least square estimation,LSE)[21]的混合算法調整系統(tǒng)參數并尋找模型最優(yōu)前提參數和結論參數,以提高網絡模型的精度和收斂速度。其中,BP 算法調整前提參數,LSE 調整結論參數。首先固定結論參數,根據Loss 函數和鏈式法則計算前提參數的偏導數,從反梯度方向更新參數。定義測量誤差為樣本總體的均方誤差:
其中,Tm,p是目標p輸出的第m分量,是目標p實際輸出的第L層第m分量。然后由公式(11)計算每個輸出節(jié)點O的誤差,并根據鏈式法則計算誤差Ep在給定的自適應網絡參數β的偏導值gk:
其中,S為輸出依賴于β的結點集。
由于BP 算法存在訓練速度慢、易陷入局部極小值等缺點。為了解決上述問題,提出了一系列改進方法,例如動量附加法[22]、自適應學習率[23]、彈性反向傳播(Resilient Back Propagation,RBP)算法[24]等分析標準BP 算法的性能函數,或使用啟發(fā)式技術進行改進,例如二階反向傳播、非線性優(yōu)化[25]等通過標準的數值優(yōu)化技術實現快速BP算法。
本文在保證精確性的同時,為了加快模型參數的學習速度,提升神經模糊系統(tǒng)的訓練效率,給出以下兩種方案:
方案一:在誤差要求一般的情況下,基于LSE 算法調整參數加快訓練速度,即直接調整結論參數。
方案二:采用共軛梯度下降法(Conjugate Gradient De?scent,CGD)實現快速BP 算法。先沿著負梯度方向搜索,然后通過線性搜索沿著搜索方向計算移動的最優(yōu)距離。計算方式如式(14)、式(15)所示:
其中,η表示當前學習速率,pk表示共軛梯度法每一步的搜索方向。結合上一步搜索方向和最新負梯度方向作為下一步的搜索方向,其中k表示當前梯度位置,p為搜索方向,g為偏導值,η表示學習速率。
本文采用Fletcher-Reeves 方法計算共軛梯度法的ηk:
ZONFS 算法流程如圖3 所示。具體首先輸入信號正向傳遞至第4 層,固定前提參數,通過LSE 算法更新結論參數。接下來信號沿著網絡正向傳遞至輸出層并由CGD 算法將誤差反向傳播,從而調節(jié)前提參數,或不進行誤差的反向傳播,直接向前傳遞至第5層以節(jié)省訓練時間。
Fig.3 Algorithm flow of ZONFS圖3 ZONFS算法流程
根據上述BP 算法的不同實現方法,給出ZONFS 的三種算法,如表1 所示。其中,BP+LSE、LSE、CGD+LSE 分別表示采用BP 與LSE 混合調參、僅LSE 調參融合共軛梯度下降法、LSE 混合調參。
Table 1 Three algorithms表1 三種算法
為綜合評估各算法的性能,本文選擇均方誤差(Mean Square Error,MSE)、平均絕對誤差(Mean Absolute Error,MAE)、平均絕對百分比誤差(Mean Absolute Percentage Er?ror,MAPE)、決定系數R2及運行時間t共5 個性能指標對算法進行評估:
ANFIS 算法將規(guī)則適應度進行歸一化操作,而本文的ZONFS 算法對規(guī)則適應度進行Z-score 標準化計算。為了比較二者之間的性能差異,本文從模型的訓練效果入手,分析其誤差下降曲線。以ANFIS 與ZONFS 在訓練集TS 上的訓練過程為例,20 次迭代訓練后的誤差變化曲線如圖4所示。
由圖4 可見,ANFIS 算法在第10 次迭代時開始收斂,誤差值已無明顯下降。ZONFS 算法的收斂速度更快,誤差更小。因此從訓練集TS 上的迭代結果可見,ZONFS 相較于ANFIS 算法,具有更快的收斂速度和更高的精度。
Fig.4 Iteration curve of algorithms圖4 算法迭代曲線
選用機器學習數據庫The UCI Machine Learning Re?pository 提供的三個數據集,具體描述如表2所示。
Table 2 Characteristics of data sets表2 數據集特征
為了對ZONFS 算法進行比較分析,引入決策樹回歸(Decision tree regression,DTR)、支持向量回歸(Support Vector Regression,SVR)、梯度增強回歸(Gradient Boosting Regression,GBR)三種常用的回歸算法對上述數據集進行回歸預測,并對ANFIS 與ZONFS 算法的性能指標進行綜合分析。
隨機抽取ADV 數據集中20%的數據樣本作為測試集。由表3 可見,ZONFS3 算法有3 個最優(yōu)的誤差指標,且各項指標均優(yōu)于ANFIS 算法,因此ZONFS3 算法相較于ANFIS 算法更具競爭力。其次,采用BP 算法調參的ANFIS算法相較于ZONFS1 算法的運行時間更長,而基于CGD 實現的快速BP 算法有效提升了ZONFS3 算法的調參速度,顯著降低了算法的運行時間。ZONFS2 算法的運行時間較短,但算法的精度不高。綜上所述,ZONFS3 算法的性能最高,以ZONFS3 為代表的ZONFS 算法與其它算法的回歸比較如圖5 所示,可見ZONFS 算法的回歸效果最好,每個數據點的誤差都維持在較小的區(qū)間,相較于ANFIS 具有明顯優(yōu)勢。
由于CCPP 數據集的數據量較大,因此從數據集中隨機抽取100 個數據樣本進行測試。由表4 可見,ANFIS 算法大部分指標都落后于常用的回歸算法,而ZONFSi 算法相相較于ANFIS 在精度和運行時間上都具有一定的提升,特別是ZONFS3 算法有兩個最優(yōu)的誤差指標,總得分也最高。雖然ZONFS3 算法的運行時間較長,但各項誤差指標的優(yōu)越性最好。ZONFS2 算法耗時最少,但誤差指標整體表現不佳。同樣以性能最高的ZONFS3 為代表的ZONFS算法與其它算法的回歸比較如圖6所示。
Table 3 Evaluation index on ADV dataset表3 ADV數據集上的評價指標
Fig.5 Comparison of regression algorithms(ADV dataset)圖5 回歸算法比較(ADV數據集)
Table 4 Evaluation index on CCPP dataset表4 CCPP數據集上的評價指標
Fig.6 Comparison of regression algorithms(CCPP dataset)圖6 回歸算法比較(CCPP數據集)
隨機抽取YHD 數據集中20%的數據樣本作為測試集。由表5 可見,ZONFS3 算法總得分最高且有三個最優(yōu)的誤差指標,其中決定系數R2達到了0.989,精度和運行時間均優(yōu)于ANFIS 算法;ZONFS1 算法因采用BP 調參存在一定劣勢,總得分僅次于ZONFS3 算法。ZONFSi 算法的運行時間總體上比DTR、SVR 等常用回歸算法長,但算法的精度具有明顯優(yōu)勢。SVR 算法耗時最少,但各項指標與相較于其他算法存在較大的差距。綜上所述,ZONFS3 算法的性能最高,該算法與其它算法的回歸比較如圖7所示。
Table 5 Evaluation index on YHD dataset表5 YHD數據集上的評價指標
Fig.7 Comparison of regression algorithms(YHD dataset)圖7 回歸算法比較(YHD數據集)
通過實驗分析,在三種數據集中ZONFS3 算法的各項誤差指標明顯優(yōu)于ANFIS 算法,總得分均為最高。相較于ZONFS1 算法,采用CGD 實現快速調參的ZONFS3 算法耗時更短,性能更強。ZONFS2算法在整體上不如ZONFS3算法。本文從規(guī)則適應度的計算方式入手,通過Z-score 標準化對NFS 進行改進,采用CGD 提升算法的計算速度。通過實例驗證表明,ZONFS 算法的運行速度更快且精度更高,適用于搭建深層模糊系統(tǒng)。
在深度學習日益火熱的當下,模糊系統(tǒng)開始逐漸往深度模型過渡。子模塊的運行時間是搭建深度模型的一個重要評判指標,在今后研究中需充分考慮其重要性。目前NFS 所面臨計算速度慢、難以處理高維數據等問題,而共軛梯度下降法可有效降低NFS 的時間復雜度,具有一定的可行性。未來將致力于基于ZONFS 算法構建快速且高精度的深度神經模糊系統(tǒng)(DNFS)。