資源描述:
《利用蟻群算法優(yōu)化前向神經(jīng)網(wǎng)絡(luò)論文》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在學(xué)術(shù)論文-天天文庫(kù)。
1、利用蟻群算法優(yōu)化前向神經(jīng)網(wǎng)絡(luò)論文內(nèi)容摘要:蟻群算法(antcolonyalgorithm,簡(jiǎn)稱(chēng)ACA)是一種最新提出的新型的尋優(yōu)策略,本文嘗試將蟻群算法用于三層前向神經(jīng)網(wǎng)絡(luò)的訓(xùn)練過(guò)程,建立了相應(yīng)的優(yōu)化模型,進(jìn)行了實(shí)際的編程計(jì)算,并與加動(dòng)量項(xiàng)的BP算法、演化算法以及模擬退火算法進(jìn)行比較,結(jié)果表明該方法具有更好的全局收斂性,以及對(duì)初值的不敏感性等特點(diǎn)。關(guān)鍵詞:期貨經(jīng)紀(jì)公司綜合實(shí)力主成分分析聚類(lèi)分析人工神經(jīng)網(wǎng)絡(luò)(ANN)是大腦及其活動(dòng)的一個(gè)理論化的數(shù)學(xué)模型.freelone)來(lái)實(shí)現(xiàn)的。螞蟻個(gè)體間通過(guò)這種信息的交流尋求通向食物的最短路徑。已有相關(guān)計(jì)算實(shí)例表明該算法具有良好的收斂速度,且在得到的最
2、優(yōu)解更接近理論的最優(yōu)解。本文嘗試將蟻群算法引入到前向神經(jīng)網(wǎng)絡(luò)的優(yōu)化訓(xùn)練中來(lái),建立了基于該算法的前向神經(jīng)網(wǎng)絡(luò)訓(xùn)練模型,編制了基于C++語(yǔ)言的優(yōu)化計(jì)算程序,并針對(duì)多個(gè)實(shí)例與多個(gè)算法進(jìn)行了比較分析。前向神經(jīng)網(wǎng)絡(luò)模型前向人工神經(jīng)網(wǎng)絡(luò)具有數(shù)層相連的處理單元,連接可從一層中的每個(gè)神經(jīng)元到下一層的所有神經(jīng)元,且網(wǎng)絡(luò)中不存在反饋環(huán),是常用的一種人工神經(jīng)網(wǎng)絡(luò)模型。在本文中只考慮三層前向網(wǎng)絡(luò),且輸出層為線性層,隱層神經(jīng)元的非線性作用函數(shù)(激活函數(shù))為雙曲線正切函數(shù):其中輸入層神經(jīng)元把輸入網(wǎng)絡(luò)的數(shù)據(jù)不做任何處理直接作為該神經(jīng)元的輸出。設(shè)輸入層神經(jīng)元的輸出為(x1,x2,Λ,xn),隱層神經(jīng)元的輸入為(s1,s
3、2,Λ,sh),隱層神經(jīng)元的輸出為(z1,z2,Λ,zh),輸出層神經(jīng)元的輸出為(y1,y2,Λ,ym),則網(wǎng)絡(luò)的輸入-輸出為:其中{(5)前向神經(jīng)網(wǎng)絡(luò)的訓(xùn)練樣本集為A={Xi,.freel為與第i組訓(xùn)練數(shù)據(jù)的輸入對(duì)應(yīng)的期望輸出,Tki為輸出層第k個(gè)神經(jīng)元的期望輸出),設(shè)第i組訓(xùn)練數(shù)據(jù)的輸入的實(shí)際輸出為Yi∈Rm,Yki為輸出層第k個(gè)神經(jīng)元的實(shí)際輸出,則基于該訓(xùn)練樣本集的誤差函數(shù)為該函數(shù)是一個(gè)具有多個(gè)極小點(diǎn)的非線性函數(shù),則對(duì)該前向神經(jīng)網(wǎng)絡(luò)的訓(xùn)練過(guò)程為調(diào)整各個(gè)神經(jīng)元之間的連接權(quán)值和閥值{inF(x1,x2,Λ,xn),使得,ai1x1+ai2x2+Λ+ainxn≥bi,i=1,2,Λ,r。
4、這里F為任一非線形函數(shù),約束條件構(gòu)成Rn上的一個(gè)凸包??梢允褂貌坏仁阶儞Q的方法求得包含這個(gè)凸包的最小的n維立方體。設(shè)該立方體為設(shè)系統(tǒng)中有m只螞蟻,我們將解的n個(gè)分量看成n個(gè)頂點(diǎn),第i個(gè)頂點(diǎn)代表第i個(gè)分量,在第i個(gè)頂點(diǎn)到第i+1個(gè)頂點(diǎn)之間有ki條連線,代表第i個(gè)分量的取值可能在ki個(gè)不同的子區(qū)間。我們記其中第j條連線上在t時(shí)刻的信息量為τij(t)。每只螞蟻要從第1個(gè)頂點(diǎn)出發(fā),按照一定的策略選擇某一條連線到達(dá)第2個(gè)頂點(diǎn),再?gòu)牡?個(gè)頂點(diǎn)出發(fā),…,在到達(dá)第n個(gè)頂點(diǎn)后,在kn條連線中選取某一條連線到達(dá)終點(diǎn)。每個(gè)螞蟻所走過(guò)的路徑代表一個(gè)解的初始方案,它指出解的每一個(gè)分量所在的子區(qū)間。用pijk(t
5、)表示在t時(shí)刻螞蟻k由城市i轉(zhuǎn)移到城市j的概率,則(式(7))為了確定解的具體值,可在各個(gè)子區(qū)間已有的取值中保存若干個(gè)適應(yīng)度較好的解的相應(yīng)分量作為候選組,為了加快收斂速度,參考具有變異特征的蟻群算法提出的具有變異特征的蟻群算法,使用遺傳操作在候選組中確定新解的相應(yīng)分量的值。首先可隨機(jī)在候選組中選擇兩個(gè)值,然后對(duì)他們實(shí)行交叉變換、變異變換,以得到新值作為解的相應(yīng)分量。該候選組中的值在動(dòng)態(tài)的更新,一旦有一個(gè)更好的解的分量在該子區(qū)間中,就用這個(gè)值替換其中的較差者。在m只螞蟻得到m個(gè)解后,要對(duì)它們進(jìn)行評(píng)估,本人使用Lagrange函數(shù)作為評(píng)估解的優(yōu)劣的適應(yīng)度函數(shù),否則要對(duì)每個(gè)解進(jìn)行合法性檢查并去
6、除其中的不合法解。然后要根據(jù)適應(yīng)度函數(shù)值更新各條邊上的信息量。要根據(jù)下式對(duì)各路徑上的信息量作更新:Δτijk表示螞蟻k在本次循環(huán)中在城市i和j之間留下的信息量。重復(fù)這樣的迭代過(guò)程,直至滿(mǎn)足停止條件。候選組里的遺傳操作若候選組里的候選值的個(gè)數(shù)gi=0,即候選組里沒(méi)有候選值,此時(shí)則產(chǎn)生一個(gè)li+(j-1)×length,min(ui,li+j×length間的隨即數(shù)作為解分量的值ber,每次迭代選取的適應(yīng)度最好的解的個(gè)數(shù)num,每個(gè)分量的ki個(gè)子區(qū)間中信息量最大的子區(qū)間被選種的概率q0(其余子區(qū)間被選中概率為(1-q0))。初始化:通過(guò)神經(jīng)網(wǎng)絡(luò)在控制變量可行域內(nèi)隨機(jī)產(chǎn)成m只螞蟻,即產(chǎn)生m組{
7、個(gè)螞蟻進(jìn)行循環(huán)更新相應(yīng)的信息量τij(t),對(duì)候選組中的分量進(jìn)行遺傳操作,計(jì)算新解的適應(yīng)度,對(duì)各邊的信息量進(jìn)行修改,根據(jù)適應(yīng)度的優(yōu)劣增刪候選組中的值。判斷是否滿(mǎn)足結(jié)束條件,若不滿(mǎn)足則繼續(xù)迭代。第(3)步的具體算法如下:do(對(duì)m個(gè)螞蟻循環(huán)){根據(jù)q0和概率pijk(t)確定第i個(gè)分量的值在第j個(gè)子區(qū)間;局部更新第j個(gè)子區(qū)間的信息量τij(t);在第j個(gè)子區(qū)間候選組里通過(guò)遺傳操作生成第i個(gè)分量值;}計(jì)算新解的適應(yīng)度函數(shù)值;}修改個(gè)條邊