劉 潔,王麗芳
(太原科技大學(xué)復(fù)雜系統(tǒng)與計算智能實驗室,太原 030024)
人工神經(jīng)網(wǎng)絡(luò)擁有特別的結(jié)構(gòu)和較強的處理信息的能力,近年來,在科技、工業(yè)等領(lǐng)域得到了廣泛應(yīng)用。人工神經(jīng)網(wǎng)絡(luò)是由大量的神經(jīng)元通過權(quán)值閾值連接而成,分為輸入層、隱層和輸出層,神經(jīng)網(wǎng)絡(luò)的權(quán)值訓(xùn)練其實質(zhì)是一種復(fù)雜的連續(xù)多參數(shù)優(yōu)化求解的問題,即尋找出一組最優(yōu)的連接權(quán)值。BP網(wǎng)絡(luò)是一種多層前饋神經(jīng)網(wǎng)絡(luò),其中權(quán)值的學(xué)習(xí)規(guī)則是反向傳播學(xué)習(xí)算法,但是由于BP算法是用了梯度下降學(xué)習(xí),所以其存在極易陷入局部最小值,收斂速度慢等缺點[1]。有專家在BP算法基礎(chǔ)上引入了新參數(shù),雖然在收斂速率和誤差估計方面有比較好的效果,但這種方法也有其局限性[2]。粒子群優(yōu)化是群體智能進化技術(shù),優(yōu)化神經(jīng)網(wǎng)絡(luò)各層之間的連接權(quán)值,用實數(shù)求解的方法,而且需要調(diào)整的參數(shù)比較小,這樣可以使神經(jīng)網(wǎng)絡(luò)有較高的精度??墒怯捎诹W酉虻淖陨怼⑧徲?、群體歷史最佳位置聚集,容易形成種群的趨同效應(yīng),所以不可避免的出現(xiàn)陷入局部極值、早熟收斂或停滯現(xiàn)象[3]。文獻[4]用了遺傳算法優(yōu)化神經(jīng)網(wǎng)絡(luò)的權(quán)值和閾值,遺傳算法優(yōu)化權(quán)值閾值的步驟分為:選擇、交叉、變異三個操作來尋求最優(yōu)解,雖然其全局搜索能力較強,有效的避免了BP算法容易陷入局部最小的問題,但是交叉、變異過程相對不容易操作,建筑塊容易破壞。分布估計算法[5-6]也是基于群體的算法,可以很好的避免遺傳算法建筑塊被破壞的問題。分布估計算法是從目前的種群中根據(jù)一定的選擇方式找出一群優(yōu)秀的個體,然后再得出一個可以描述解的分布的概率模型,通過概率模型隨機采樣得到新種群,如此反復(fù)進行,從而使種群進化,直到終止條件。分布估計算法用于優(yōu)化神經(jīng)網(wǎng)絡(luò),可在全局范圍內(nèi)、較短的時間內(nèi)尋求權(quán)值閾值的最優(yōu)解,提高了網(wǎng)絡(luò)的學(xué)習(xí)性能,這樣就為人工神經(jīng)網(wǎng)絡(luò)提供了一種新的優(yōu)化方法[7]。
在copula理論中,Sklar定理[8]起著重要的關(guān)鍵性的作用。
通過該定理可得出:一個聯(lián)合分布函數(shù)在連續(xù)時可以唯一的由一個copula函數(shù)和各變量邊緣分布函數(shù)構(gòu)成;并且對于copula函數(shù)及邊緣分布函數(shù)所確定的聯(lián)合分布函數(shù)同樣是唯一的。
由于建立分布估計算法的概率模型相對困難,將copula理論引入分布估計算法中可以使其計算簡化,運算速度更快[9]。
1.3.1 Clayton copula分布估計算法簡介
Clayton copula分布估計算法[11]是以Clayton copula作為連接函數(shù),以此來描述個體間的聯(lián)系,該函數(shù)的特點是:結(jié)構(gòu)簡單、采樣方便等,這些特點使得算法更為簡單。
1.3.2 Clayton copula 分布估計算法的步驟
Step1:隨機產(chǎn)生規(guī)模為popsize的初始群體Pg;
Step2:根據(jù)一定的選擇策略從當前群體Pg中選擇出規(guī)模為S的優(yōu)勢群體Sg;
Step3:根據(jù)Sg每一維變量的邊緣分布。邊緣分布采用高斯分布,其分布函數(shù)是:
Step5:返回步驟2,如此反復(fù)迭代,直到滿足迭代終止條件。
神經(jīng)網(wǎng)絡(luò)的輸入層和輸出層神經(jīng)元個數(shù)都由實際問題決定,神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu)是由隱層神經(jīng)元的個數(shù)決定的。在輸入層和輸出層神經(jīng)元個數(shù)都確定的情況下,確定隱層神經(jīng)元的個數(shù),目前并沒有有效的、合理的辦法,一般采用試探的方法,根據(jù)學(xué)者總結(jié)的一些經(jīng)驗公式,如:
先設(shè)置較少的隱層節(jié)點數(shù),然后逐漸增加節(jié)點數(shù),并用統(tǒng)一樣本集訓(xùn)練,當網(wǎng)絡(luò)的誤差函數(shù)最小時,就是所要的隱含層神經(jīng)元的個數(shù)。
將神經(jīng)網(wǎng)絡(luò)的權(quán)值和閾值編碼成一個字符串,假設(shè)神經(jīng)網(wǎng)絡(luò)輸入層有m個神經(jīng)元,隱層有k個神經(jīng)元,輸出層有n個神經(jīng)元,這個網(wǎng)絡(luò)的編碼碼串長度為k(m+n)+k+n,前面k(m+n)表示連接權(quán)值個數(shù),k×m表示隱層和輸入層之間的權(quán)值個數(shù),k×n表示隱層和輸出層之間的權(quán)值個數(shù)。k表示隱層閾值個數(shù),n表示輸出層閾值個數(shù)。
選擇算子[1]的作用是從適應(yīng)值中選取優(yōu)秀的個體,通過選擇操作可以引導(dǎo)算法向著收斂的方向前進。首先運用截斷選擇,保留一部分優(yōu)秀的r個個體,可以把適應(yīng)值最好的個體保留下來,防止種群的最優(yōu)個體消失,有利于提高算法的收斂速度,避免有效基因的損失;然后采用輪盤賭選擇法選擇t個優(yōu)秀個體,輪盤賭選擇對于適應(yīng)值小的個體也可能選中,可以保證種群的多樣性。兩者結(jié)合起來就是我們得到的S(S=r+t)個優(yōu)秀個體。
BP網(wǎng)絡(luò)是利用非線性可微分函數(shù)進行權(quán)值訓(xùn)練的多層網(wǎng)絡(luò),其基本原理是采用梯度最速下降法,它的中心思想是通過各層連接權(quán)值的調(diào)整使網(wǎng)絡(luò)總誤差最小。BP學(xué)習(xí)算法包含正向傳播和反向傳播兩個階段:正向傳播是指輸入信息從輸入層經(jīng)隱含層逐層處理,并傳向輸出層,每層神經(jīng)元的狀態(tài)只影響下一層神經(jīng)元的狀態(tài);反向傳播是將誤差信號沿原來的連接通道返回,通過修改各層神經(jīng)元的權(quán)值,使誤差信號最小。
copula分布估計算法是一種全局優(yōu)化搜索算法,能夠避開局部極小點,BP算法采用梯度下降學(xué)習(xí)算法,擅長局部求精。
本文通過神經(jīng)網(wǎng)絡(luò)對數(shù)據(jù)集進行分類,采用copula分布估計算法和BP算法相結(jié)合的兩種模式優(yōu)化神經(jīng)網(wǎng)絡(luò)的權(quán)值和閾值。
模式Ⅰ:首先由初始群體計算適應(yīng)值函數(shù),得到優(yōu)秀的S個個體,將優(yōu)秀的個體通過copula分布估計算法進行優(yōu)化。copula函數(shù)采取Clayton copula函數(shù),邊緣分布采用高斯分布,采樣得到新的個體,用新個體代替舊個體得到新的種群進入下一代循環(huán)迭代,直到達到規(guī)定的循環(huán)代數(shù),輸出經(jīng)過copula分布估計算法優(yōu)化的權(quán)值和閾值。將經(jīng)過copula分布估計算法優(yōu)化得到的最優(yōu)的權(quán)值和閾值作為BP算法的初始權(quán)值和閾值,利用BP算法局部求精的特點,做進一步的修正優(yōu)化,得到最終的權(quán)值和閾值。
模式Ⅱ:在每次循環(huán)的過程中,將copula分布估計算法與BP算法結(jié)合起來,首先將選擇的S個優(yōu)秀個體經(jīng)過copula分布估計算法優(yōu)化得到新的個體,在新個體中選出優(yōu)秀的K(K
具體步驟如下:
模式Ⅰ:
Step1:首先隨機產(chǎn)生popsize組均勻分布的字符串作為初始種群,按照編碼方式排列作為神經(jīng)網(wǎng)絡(luò)的初始權(quán)值和閾值,經(jīng)過神經(jīng)網(wǎng)絡(luò)計算得出popsize個權(quán)值閾值對應(yīng)產(chǎn)生的正確分類率,正確分類率越大,說明對應(yīng)的權(quán)值閾值越好。
Step2:將正確分類率作為copula分布估計算法的適應(yīng)值函數(shù),按從大到小的順序排列,采用截斷選擇選出r個優(yōu)秀個體和輪盤賭選擇算子選擇出t個優(yōu)秀個體,得出正確分類率對應(yīng)的權(quán)值和閾值,作為copula分布估計算法的S(S=r+t)個優(yōu)秀個體。
Step3:將S個優(yōu)秀個體通過copula分布估計算法進行優(yōu)化,copula函數(shù)采取Clayton copula函數(shù),邊緣分布采用高斯分布,經(jīng)過copula采樣得到R個新個體。將R個新個體,S個優(yōu)秀個體和隨機產(chǎn)生的popsize-R-S個個體作為新的種群進入下一代的循環(huán)優(yōu)化,直到達到收斂條件或迭代次數(shù),選出最好的正確分類率以及其對應(yīng)的字符串,經(jīng)解碼得到對應(yīng)的權(quán)值和閾值。
Step4:為了進一步提高神經(jīng)網(wǎng)絡(luò)的精確性,以及提高網(wǎng)絡(luò)的搜索效率,當copula分布估計算法運行結(jié)束后,我們將得到的最優(yōu)秀的個體解碼后的權(quán)值和閾值賦給神經(jīng)網(wǎng)絡(luò),用BP算法進行進一步的修正優(yōu)化,計算得到正確分類率以及其對應(yīng)的權(quán)值和閾值。
模式Ⅱ:
Step1:與模式Ⅰ的第一步相同。
圖1 模式Ⅰ流程圖Fig.1 Flow chart of model Ⅰ
Step2:與模式Ⅰ的第二步相同。
Step3:將S個優(yōu)秀個體通過copula分布估計算法進行優(yōu)化,copula函數(shù)采取Clayton copula函數(shù),邊緣分布采用高斯分布,經(jīng)過copula采樣得到新的個體。在新個體中選出K(K
Step4:將優(yōu)秀的權(quán)值閾值進行編碼,將K個修正后的優(yōu)秀個體,S個經(jīng)copula分布估計算法優(yōu)化的新個體,截斷選擇選擇出的r個優(yōu)秀個體和隨機產(chǎn)生的popsize-K-S-r個個體作為下一次循環(huán)的初始群體,如此反復(fù)進行,直到滿足收斂條件或達到迭代次數(shù)。
Step5:選擇最優(yōu)秀的個體,解碼得到權(quán)值和閾值,得到最好的正確分類率以及其對應(yīng)的權(quán)值和閾值。
本文用于實驗的數(shù)據(jù)庫采用UCI(University of California in Irvine)數(shù)據(jù)庫中模式分類問題數(shù)據(jù)集:Iris數(shù)據(jù)庫和Wine數(shù)據(jù)庫。
圖2 模式Ⅱ流程圖Fig.2.Flow chart of model Ⅱ
Iris數(shù)據(jù)庫是Fisher教授提出的著名的花朵識別數(shù)據(jù)庫,其以鳶尾花的特征作為數(shù)據(jù)來源,數(shù)據(jù)庫包含150個數(shù)據(jù)集,分為3類,三類分別為:Setosa,Versicolour,Virginica,每類50個數(shù)據(jù),每個數(shù)據(jù)包含4個獨立屬性,這些屬性變量測量植物的花朵,有花萼的長度(Sepal length)和寬度(Sepal width),花瓣的長度(Petal length)和寬度(Petal width)。
將Sepal length,Sepal width,Petal length,Petal width作為神經(jīng)網(wǎng)絡(luò)的輸入,將Setosa,Versicolour,Virginica作為神經(jīng)網(wǎng)絡(luò)的輸出,因為Iris問題是模式分類問題,所以設(shè)定當輸出結(jié)果為Setosa時,輸出為100;當輸出為Versicolour時,輸出為010;當輸出為Virginica時,輸出為001.
Wine數(shù)據(jù)庫是葡萄酒的識別數(shù)據(jù)的數(shù)據(jù)庫。這些數(shù)據(jù)生長在意大利的同一個地區(qū),但來自三個不同品種的葡萄酒的化學(xué)分析結(jié)果,分析確定13種成分的數(shù)量在每個葡萄酒的三種類型。該數(shù)據(jù)庫包含178個數(shù)據(jù)集,所有的屬性都是連續(xù)的,13種成分(Alcohol;Malic acid;Ash;Alcalinity of ash;Magnesium;Total phenols;Flavanoids;Nonflavanoid phenols;Proanthocyanins;Color intensity;Hue;0D280/0D315 of diluted wines;Proline)作為神經(jīng)網(wǎng)絡(luò)的輸入,神經(jīng)網(wǎng)絡(luò)的輸出分為三類,第一類包括59個數(shù)據(jù)集,第二類包括71個數(shù)據(jù)集,第三類包括48個數(shù)據(jù)集,對于輸出分類,通過100,010,001分類。
①初始化:輸入種群規(guī)模(popsize),隨機產(chǎn)生初始種群{x1,x2,…,xp},p是神經(jīng)網(wǎng)絡(luò)的權(quán)值和閾值的個數(shù),將權(quán)值閾值按照編碼法案編碼為字符串。在算法的仿真中,種群規(guī)模popsize=100.
②計算適應(yīng)值函數(shù):Iirs數(shù)據(jù)庫的數(shù)據(jù)集在仿真中可以直接進行運算,而Wine數(shù)據(jù)庫中的數(shù)據(jù)首先要進行歸一化處理。對于分類問題,根據(jù)神經(jīng)網(wǎng)絡(luò)的測試輸出結(jié)果與目標輸出結(jié)果相比較,判斷分類是否正確,得出正確分類率,將正確分類率作為適應(yīng)值函數(shù),正確分類率越大,說明對應(yīng)的權(quán)值和閾值越好。
③選擇優(yōu)秀個體S=50:首先通過截斷選擇選擇出r個優(yōu)秀個體,將適應(yīng)值好的一些個體保留下來,然后通過輪盤賭選擇選擇t個優(yōu)秀個體,把兩者結(jié)合起來共得到S個優(yōu)秀個體。
④優(yōu)化過程:我們通過copula分布估計算法,copula分布估計算法和BP算法結(jié)合的兩種模式優(yōu)化神經(jīng)網(wǎng)絡(luò)的權(quán)值閾值與BP算法修正神經(jīng)網(wǎng)絡(luò)的權(quán)值閾值進行比較。
本實驗通過四種方法優(yōu)化神經(jīng)網(wǎng)絡(luò)的權(quán)值和閾值,對四種方法進行比較,實驗結(jié)果如表1表2所示。
表1 Iris數(shù)據(jù)庫四種方式優(yōu)化結(jié)果比較Tab.1 The result comparisons of four ways ofoptimization on Iris database
從表1、表2中可以看出,雖然copula分布估計算法在復(fù)雜度上要高于BP算法, 但是通過比較明顯可以看出,第一,copula分步估計算法和BP算法與模式Ⅰ和模式Ⅱ相比較,從最好正確分類率和最差分類率來看,copula分布估計算法和BP算法不如兩種模式穩(wěn)定。從平均正確分類率來看,copula分布估計算法低于模式Ⅰ、模式Ⅱ,雖然BP算法在Wine數(shù)據(jù)庫中的結(jié)果最好正確分類率非常高,但是其最差正確分類率也是最低的,說明了它的不穩(wěn)定性,而且根據(jù)多次運行結(jié)果顯示平均正確分類率也不如模式II高。主要原因在于copula分布估計算法局部求精能力上相對較弱,BP算法又相對容易陷入局部最小值。
表2 Wine數(shù)據(jù)庫四種方式優(yōu)化結(jié)果比較Tab.2 The result comparisons of four ways ofoptimization on Wine database
第二,模式Ⅰ和模式Ⅱ比較,模式Ⅱ的精度要高于模式Ⅰ,其原因在于,模式Ⅱ的混合方式,使得BP算法和copula分步估計算法更加緊密的聯(lián)系。每一次進入BP算法可以提高局部優(yōu)化能力,每進入一次copula分布估計算法可以提高全局性,模式Ⅰ是一次進入copula分布估計算法再進入BP算法,模式Ⅱ是多次進入兩個算法。所以模式Ⅱ在全局和局部優(yōu)化能力上都有了很大的提高。
Copula理論將多元聯(lián)合分布函數(shù)分解為一元的分布函數(shù)和反映它們之間聯(lián)系的一個copula函數(shù),將copula理論用于分布估計算法中,可以簡化分布估計算法在估計概率分布模型時的操作并減少在該階段所需的時間花費,copula分布估計算法具有全局優(yōu)化搜索能力,BP算法的局部求精特點,將兩者結(jié)合起來可以有效的避免易陷入局部最小值的缺陷。
參考文獻:
[1] 田雨波.混合神經(jīng)網(wǎng)絡(luò)技術(shù)[M].北京:科學(xué)出版社,2009.
[2] 王美玲,王念平,李曉.BP神經(jīng)網(wǎng)絡(luò)算法的改進及應(yīng)用[J].計算機工程與應(yīng)用,2009,45(35):47-48.
[3] 李松,劉力軍,翟曼.改進粒子群算法優(yōu)化BP神經(jīng)網(wǎng)絡(luò)的短時交通流預(yù)測[J].系統(tǒng)工程理論與實踐,2012,32(9):2045-2049.
[4] 李建珍.基于遺傳算法的人工神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)算法[J].西北師范大學(xué)學(xué)報,2002,38(2):33-37.
[5] HAUSCHILD MARK,PELIKAN MARTIN.An Introduction and Survey of Estimation of Distribution Algorithms[R].Missouri Estimation of Distribution Algorithms Laboratory,2011,Medal Report No.2011004.
[6] 周樹德,孫增圻.分布估計算法綜述[J].自動化學(xué)報,2007(2):113-124.
[7] 周曉燕.基于分布估計算法的人工神經(jīng)網(wǎng)絡(luò)優(yōu)化設(shè)計[J].微計算機信息,2005,2(10-3):130-131,195.
[8] NELSEN R B.An Introduction to Copulas[M].Second Edition.Springer,2006.
[9] ROGELIO SALINAS-GUTIERREZ,ARTURO HERNANDEZ-AGUIRRE,ENRIQUE R.Villa-Diharce.Using Copulas in Estimation of Distribution Algorithms[J].Advances in Artificial Intelligence Lecture Notes in Computer Science,2009,5845:658-668.
[10] 曾建潮,崔志華.自然計算[M].北京:國防工業(yè)出版社,2012.
[11] 王麗芳.copula分布估計算法[M].北京:機械工業(yè)出版社,2012.
[12] 王麗芳,曾建潮,洪毅.利用Copula函數(shù)估計概率模型并采樣的分布估計算法[J].控制與決策,2011,26(9):1333-1338.