美章網(wǎng) 資料文庫 利用蟻群算法優(yōu)化前向神經(jīng)網(wǎng)絡(luò)范文

利用蟻群算法優(yōu)化前向神經(jīng)網(wǎng)絡(luò)范文

本站小編為你精心準(zhǔn)備了利用蟻群算法優(yōu)化前向神經(jīng)網(wǎng)絡(luò)參考范文,愿這些范文能點燃您思維的火花,激發(fā)您的寫作靈感。歡迎深入閱讀并收藏。

利用蟻群算法優(yōu)化前向神經(jīng)網(wǎng)絡(luò)

內(nèi)容摘要:蟻群算法(antcolonyalgorithm,簡稱ACA)是一種最新提出的新型的尋優(yōu)策略,本文嘗試將蟻群算法用于三層前向神經(jīng)網(wǎng)絡(luò)的訓(xùn)練過程,建立了相應(yīng)的優(yōu)化模型,進行了實際的編程計算,并與加動量項的BP算法、演化算法以及模擬退火算法進行比較,結(jié)果表明該方法具有更好的全局收斂性,以及對初值的不敏感性等特點。

關(guān)鍵詞:期貨經(jīng)紀公司綜合實力主成分分析聚類分析

人工神經(jīng)網(wǎng)絡(luò)(ANN)是大腦及其活動的一個理論化的數(shù)學(xué)模型,由大量的處理單元(神經(jīng)元)互連而成的,是神經(jīng)元聯(lián)結(jié)形式的數(shù)學(xué)抽象,是一個大規(guī)模的非線性自適應(yīng)模型。人工神經(jīng)網(wǎng)絡(luò)具有高速的運算能力,很強的自學(xué)習(xí)能力、自適應(yīng)能力和非線性映射能力以及良好的容錯性,因而它在模式識別、圖像處理、信號及信息處理、系統(tǒng)優(yōu)化和智能控制等許多領(lǐng)域得到了廣泛的應(yīng)用。

人工神經(jīng)網(wǎng)絡(luò)的學(xué)習(xí)算法可以分為:局部搜索算法,包括誤差反傳(BP)算法、牛頓法和共軛梯度法等;線性化算法;隨機優(yōu)化算法,包括遺傳算法(GA)、演化算法(EA)、模擬退火算法(SA)等。

蟻群算法是一種基于模擬螞蟻群行為的隨機搜索優(yōu)化算法。雖然單個螞蟻的能力非常有限,但多個螞蟻構(gòu)成的群體具有找到蟻穴與食物之間最短路徑的能力,這種能力是靠其在所經(jīng)過的路徑上留下的一種揮發(fā)性分泌物(pheromone)來實現(xiàn)的。螞蟻個體間通過這種信息的交流尋求通向食物的最短路徑。已有相關(guān)計算實例表明該算法具有良好的收斂速度,且在得到的最優(yōu)解更接近理論的最優(yōu)解。

本文嘗試將蟻群算法引入到前向神經(jīng)網(wǎng)絡(luò)的優(yōu)化訓(xùn)練中來,建立了基于該算法的前向神經(jīng)網(wǎng)絡(luò)訓(xùn)練模型,編制了基于C++語言的優(yōu)化計算程序,并針對多個實例與多個算法進行了比較分析。

前向神經(jīng)網(wǎng)絡(luò)模型

前向人工神經(jīng)網(wǎng)絡(luò)具有數(shù)層相連的處理單元,連接可從一層中的每個神經(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,s2,Λ,sh),隱層神經(jīng)元的輸出為(z1,z2,Λ,zh),輸出層神經(jīng)元的輸出為(y1,y2,Λ,ym),則網(wǎng)絡(luò)的輸入-輸出為:

其中{wij}為輸入層-隱層的連接權(quán)值,{wi0}隱層神經(jīng)元的閾值,{vki}為隱層-輸出層的連接權(quán)值,{vk0}為輸出層神經(jīng)元的閾值。網(wǎng)絡(luò)的輸入-輸出映射也可簡寫為:

1≤k≤m(5)

前向神經(jīng)網(wǎng)絡(luò)的訓(xùn)練樣本集為

A={Xi,Tii=1,2,A,n)}

(其中Xi∈Rn,為第i組訓(xùn)練數(shù)據(jù)的輸入,Ti∈Rm為與第i組訓(xùn)練數(shù)據(jù)的輸入對應(yīng)的期望輸出,Tki為輸出層第k個神經(jīng)元的期望輸出),設(shè)第i組訓(xùn)練數(shù)據(jù)的輸入的實際輸出為Yi∈Rm,Yki為輸出層第k個神經(jīng)元的實際輸出,則基于該訓(xùn)練樣本集的誤差函數(shù)為

該函數(shù)是一個具有多個極小點的非線性函數(shù),則對該前向神經(jīng)網(wǎng)絡(luò)的訓(xùn)練過程為調(diào)整各個神經(jīng)元之間的連接權(quán)值和閥值{wij},{wi0},{vki},{vk0},直至誤差函數(shù)E達到最小。

誤差反向傳播算法(BP算法)是一種梯度下降算法,具有概念清楚、計算簡單的特點,但是它收斂緩慢,且極易陷入局部極小,且對于較大的搜索空間,多峰值和不可微函數(shù)也不能搜索到全局極小。為此人們提出了很多改進的學(xué)習(xí)算法,其中最簡單且容易實現(xiàn)的是加入動量項的變學(xué)習(xí)率BP算法,這種算法一般都比較有效,但是收斂速度還是比較慢,仍是局部搜索算法,從本質(zhì)上仍然擺脫不了陷入局部極小的可能。為了擺脫局部極小,人們已經(jīng)嘗試將可用于非線性優(yōu)化的遺傳算法、演化算法以及模擬退火算法等進行前向人工神經(jīng)網(wǎng)絡(luò)的訓(xùn)練。

蟻群算法

蟻群算法簡介

螞蟻在路徑上前進時會根據(jù)前邊走過的螞蟻所留下的分泌物選擇其要走的路徑。其選擇一條路徑的概率與該路徑上分泌物的強度成正比。因此,由大量螞蟻組成的群體的集體行為實際上構(gòu)成一種學(xué)習(xí)信息的正反饋現(xiàn)象:某一條路徑走過的螞蟻越多,后面的螞蟻選擇該路徑的可能性就越大。螞蟻的個體間通過這種信息的交流尋求通向食物的最短路徑。蟻群算法就是根據(jù)這一特點,通過模仿螞蟻的行為,從而實現(xiàn)尋優(yōu)。這種優(yōu)化過程的本質(zhì)在于:

選擇機制:分泌物越多的路徑,被選擇的概率越大。

更新機制:路徑上面的分泌物會隨螞蟻的經(jīng)過而增長,而且同時也隨時間的推移逐漸揮發(fā)消失。

協(xié)調(diào)機制:螞蟻間實際上是通過分泌物來互相通信、協(xié)同工作的。

蟻群算法正是充分利用了選擇、更新和協(xié)調(diào)的優(yōu)化機制,即通過個體之間的信息交流與相互協(xié)作最終找到最優(yōu)解,使它具有很強的發(fā)現(xiàn)較優(yōu)解的能力。

蟻群算法具體實現(xiàn)

蟻群算法求解連續(xù)空間上的優(yōu)化問題以求解非線形規(guī)劃問題為例。考慮如下的非線性規(guī)劃問題:minF(x1,x2,Λ,xn),使得,ai1x1+ai2x2+Λ+ainxn≥bi,i=1,2,Λ,r。這里F為任一非線形函數(shù),約束條件構(gòu)成Rn上的一個凸包。可以使用不等式變換的方法求得包含這個凸包的最小的n維立方體。設(shè)該立方體為

設(shè)系統(tǒng)中有m只螞蟻,我們將解的n個分量看成n個頂點,第i個頂點代表第i個分量,在第i個頂點到第i+1個頂點之間有ki條連線,代表第i個分量的取值可能在ki個不同的子區(qū)間。我們記其中第j條連線上在t時刻的信息量為τij(t)。每只螞蟻要從第1個頂點出發(fā),按照一定的策略選擇某一條連線到達第2個頂點,再從第2個頂點出發(fā),…,在到達第n個頂點后,在kn條連線中選取某一條連線到達終點。每個螞蟻所走過的路徑代表一個解的初始方案,它指出解的每一個分量所在的子區(qū)間。用pijk(t)表示在t時刻螞蟻k由城市i轉(zhuǎn)移到城市j的概率,則(式(7))

為了確定解的具體值,可在各個子區(qū)間已有的取值中保存若干個適應(yīng)度較好的解的相應(yīng)分量作為候選組,為了加快收斂速度,參考具有變異特征的蟻群算法提出的具有變異特征的蟻群算法,使用遺傳操作在候選組中確定新解的相應(yīng)分量的值。首先可隨機在候選組中選擇兩個值,然后對他們實行交叉變換、變異變換,以得到新值作為解的相應(yīng)分量。該候選組中的值在動態(tài)的更新,一旦有一個更好的解的分量在該子區(qū)間中,就用這個值替換其中的較差者。

在m只螞蟻得到m個解后,要對它們進行評估,本人使用Lagrange函數(shù)作為評估解的優(yōu)劣的適應(yīng)度函數(shù),否則要對每個解進行合法性檢查并去除其中的不合法解。然后要根據(jù)適應(yīng)度函數(shù)值更新各條邊上的信息量。要根據(jù)下式對各路徑上的信息量作更新:

Δτijk表示螞蟻k在本次循環(huán)中在城市i和j之間留下的信息量。

重復(fù)這樣的迭代過程,直至滿足停止條件。

候選組里的遺傳操作若候選組里的候選值的個數(shù)gi=0,即候選組里沒有候選值,此時則產(chǎn)生一個[li+(j-1)×length,min(ui,li+j×length]間的隨即數(shù)作為解分量的值wij,vij,跳過選擇、交叉、變異等遺傳操作。

若gi=1,即候選組里只有一個候選值wik,vik,則跳過交叉、選擇等操作,直接對這個候選值wik,vik進行變異操作。

若gi=2,即候選組里有兩個候選值,則跳過選擇操作,直接對這兩個候選值進行交叉、變異等操作。

否則,選擇兩個分量后進行交叉、變異操作。

在選擇操作中,根據(jù)候選組里各候選值的適應(yīng)度的大小,用“賭輪”的方法選取兩個值。設(shè)第j個值所在解的適應(yīng)度為fj,則它被選中的概率為

在交叉操作中,設(shè)所選擇的兩個值為wij(1),vij(1)和wij(2),vij(2),其適應(yīng)度分別為f1,f2,且f1>f2,我們以概率Pcross進行交叉操作。隨機產(chǎn)生p∈[0,1],若p>Pcross,則進行交叉操作。取隨機數(shù)r∈[0,1],交叉結(jié)果值

在所有螞蟻都得到解以后,修改邊條上的信息量按式(8)和式(9)相應(yīng)地更新各子區(qū)間上的信息量。但對Δτijk的更新應(yīng)按下式進行:

其中W為一個常數(shù),fk為螞蟻k的解的適應(yīng)度。

前向神經(jīng)網(wǎng)絡(luò)的訓(xùn)練過程

基于上述的定義,用蟻群算法訓(xùn)練具有三層前向神經(jīng)網(wǎng)絡(luò),可按以下步驟進行:

輸入相關(guān)參數(shù):輸入最大迭代次數(shù)number,每次迭代選取的適應(yīng)度最好的解的個數(shù)num,每個分量的ki個子區(qū)間中信息量最大的子區(qū)間被選種的概率q0(其余子區(qū)間被選中概率為(1-q0))。

初始化:通過神經(jīng)網(wǎng)絡(luò)在控制變量可行域內(nèi)隨機產(chǎn)成m只螞蟻,即產(chǎn)生m組{wij},{wi0},{vki},{vk0},且各個分量均為[-1,1]區(qū)間內(nèi)的隨機數(shù)。

迭代過程:對于n個分量,分別對m個螞蟻進行循環(huán)更新相應(yīng)的信息量τij(t),對候選組中的分量進行遺傳操作,計算新解的適應(yīng)度,對各邊的信息量進行修改,根據(jù)適應(yīng)度的優(yōu)劣增刪候選組中的值。判斷是否滿足結(jié)束條件,若不滿足則繼續(xù)迭代。

第(3)步的具體算法如下:

whilenot結(jié)束條件(如最大迭代次數(shù))do

{fori=1tondo(對n個分量循環(huán))

{fork=1tomdo(對m個螞蟻循環(huán))

{根據(jù)q0和概率pijk(t)確定第i個分量的值在第j個子區(qū)間;

局部更新第j個子區(qū)間的信息量τij(t);

在第j個子區(qū)間候選組里通過遺傳操作生成第i個分量值;}

計算新解的適應(yīng)度函數(shù)值;}

修改個條邊上的信息量;

取適應(yīng)度最好的num個解將其各分量直接插入相應(yīng)的子區(qū)間的候選組中,并淘汰候選組中的較差者。}

上述過程中根據(jù)下列公式選取第i個分量的值所在的子區(qū)間號j:

由于算法中以q0的概率選擇ki個子區(qū)間中信息量最大的子區(qū)間,因此信息量最大的那個子區(qū)間常常被選中,這就使得新一代解的該分量值集中在這個子區(qū)間,容易發(fā)生停滯現(xiàn)象。為了避免這種現(xiàn)象,在上述過程中對所選的子區(qū)間的信息量進行局部更新,對被選中的子區(qū)間立即適當(dāng)?shù)販p少其信息量,使其他螞蟻選中該子區(qū)間的概率降低。設(shè)第k個個體的第i個分量選中第j個子區(qū)間,則按下式局部更新子區(qū)間j的信息量:

這樣,更新后的信息量是原來的信息量和有關(guān)第i個分量各子區(qū)間的最小信息量的凸組合。當(dāng)信息量最大的子區(qū)間被多次選中之后,信息量減少到ki個子區(qū)間的信息量的平均水平,從而螞蟻選擇其他子區(qū)間的概率增加,增加了所建立解的多樣性,同時也有效減少了停滯現(xiàn)象的發(fā)生。

實驗結(jié)果

為了評價蟻群算法的性能,筆者做了大量的計算機模擬試驗,在此給出了兩個函數(shù)COS(X)和SIN(X)函數(shù)的實驗結(jié)果,選擇螞蟻群規(guī)模m=20;每次迭代選取的適應(yīng)度最好的解的個數(shù)num=10;每個分量的ki個子區(qū)間中信息量最大的子區(qū)間被選中的概率q0=0.8;前向神經(jīng)網(wǎng)絡(luò)的輸入層有1個神經(jīng)元,隱層有10個神經(jīng)元,輸出層有1個神經(jīng)元,多個方法SIN(X)函數(shù)的試驗結(jié)果列于表1,多個方法COS(X)函數(shù)的試驗結(jié)果列于表2。

結(jié)論

本文給出了基于蟻群算法的三層前向神經(jīng)網(wǎng)絡(luò)的訓(xùn)練模型,并建立了一種新的網(wǎng)絡(luò)訓(xùn)練算法。從試驗結(jié)果分析,與演化算法、模擬退火算法、加動量項的BP算法相比,蟻群算法具有較快的收斂速度,能夠達到較小的均方誤差值,因此,此方法收斂過程有比較明顯的優(yōu)勢和穩(wěn)定性。

網(wǎng)絡(luò)訓(xùn)練算法。從試驗結(jié)果分析,與演化算法、模擬退火算法、加動量項的BP算法相比,蟻群算法具有較快的收斂速度,能夠達到較小的均方誤差值,因此,此方法收斂過程有比較明顯的優(yōu)勢。

參考文獻:

1.褚蕾蕾,周夢等.計算智能的數(shù)學(xué)基礎(chǔ)[Z].科學(xué)出版社,2002

2.呂崗,陳小平,趙鶴鳴.一種優(yōu)化多層前向網(wǎng)絡(luò)的IA-BP混合算法[J].計算機工程與應(yīng)用,2003.27

3.王建群,盧志華.三層前向人工神經(jīng)網(wǎng)絡(luò)全局最優(yōu)逼近[J].數(shù)學(xué)的實踐與認識,2003.7

4.陳陵,沈潔,秦玲.蟻群算法求解連續(xù)空間優(yōu)化問題的一種方法.軟件學(xué)報,2002

5.Dorigo,M.,Luca,M.AstudyofsomepropertiesofAnt-Q.TechnicalReport,TR/IRIDIA/1996-4,IRIDIA,UniversityLibredeBruxelles,1996

6.Gambardella,L.M.,Dorigo,M.Ant-Q:areinforcementlearningapproachtothetravelingsalesmanproblem.In:Prieditis,A.,Russell,S.,eds.Proceedingsofthe12thInternationalConferenceonMachineLearning.Tahoe,CA:MorganKaufmann,1995

7.Sheng,Jie,Chen,Ling.Anewapproachtosolvingnonlinearprogramming.JournalofSystemScienceandSystemEngineering,2002

8.Wu,Qing-hong,Zhang,Ji-hui,Xu,Xin-he,Anantcolonyalgorithmwithmutationfeatures.JurnalofComputerResearch&Development,1999

主站蜘蛛池模板: 中文字幕在线电影观看| 日韩三级视频在线| 日韩视频一区二区| 小唐璜情史在线播放| 国产色秀视频在线观看| 国产内射xxxxx在线| 人气排行fc2成影免费的| 五月婷婷免费视频| j8又粗又大又长又爽又硬男男 | 99这里只精品热在线获取| 免费成人激情视频| 男人边吃奶边爱边做视频刺激| 热99re久久免费视精品频软件| 日韩精品黄肉动漫在线观看| 好男人www社区| 国产女人在线观看| 亚洲精品影院久久久久久| 久久婷婷国产综合精品| 99久久国产综合精品2020| 99精品国产在热久久无毒不卡| 日本一二三精品黑人区| 男女肉粗暴进来动态图| 日本漫画yy漫画在线观看| 国产精品区一区二区三在线播放| 出租屋换租妻小雯21回| 久久精品中文字幕久久| 538在线视频观看| 真实国产乱子伦久久| 精品无人区麻豆乱码1区2区| 精品女同一区二区| 日韩av激情在线观看| 国产精品大片天天看片| 亚洲视频在线观看免费| 两人夜晚打扑克剧烈运动| 香蕉视频成人在线观看| 欧美乱大交XXXXX疯狂俱乐部| 天天综合天天射| 冠希实干阿娇13分钟视频在线看| 久久久久无码国产精品一区| 国产精品入口在线看麻豆| 欧美成人性色生活片|