遺傳演算法與bp神經網路
❶ 遺傳演算法優化bp神經網路,訓練好後,做預測會更加准確求大神告知!
1、遺傳演算法優化BP神經網路是指優化神經網路的參數; 2、因此,對訓練時間沒有影響。
❷ 對於預測方面,是馬爾科夫鏈比較好,還是遺傳演算法優化bp神經網路比較好
1、遺傳演算法優化BP神經網路是指優化神經網路的參數;
2、因此,對訓練時間沒有影響。
❸ 基於遺傳演算法的BP神經網路
源碼地址: https://github.com/Grootzz/GA-BP
介紹:
利用遺傳演算法並行地優化BP網路的權值和閾值,從而避免了BP網路在優化權值和閾值時陷入局部最優的缺點
背景:
這個項目的背景為客運量和貨運量的預測
文件介紹:
因為項目中用到了GAOT工具包中的函數,所以需要將GAOT工具包加入路徑。
操作步驟為:點擊GAOT文件--->添加到路徑--->選定文件夾和子文件夾
這樣,工程中就可以調用GAOT工具包中的函數了
源碼地址: https://github.com/Grootzz/GA-BP
❹ BP演算法、BP神經網路、遺傳演算法、神經網路這四者之間的關系
這四個都屬於人工智慧演算法的范疇。其中BP演算法、BP神經網路和神經網路
屬於神經網路這個大類。遺傳演算法為進化演算法這個大類。
神經網路模擬人類大腦神經計算過程,可以實現高度非線性的預測和計算,主要用於非線性擬合,識別,特點是需要「訓練」,給一些輸入,告訴他正確的輸出。若干次後,再給新的輸入,神經網路就能正確的預測對於的輸出。神經網路廣泛的運用在模式識別,故障診斷中。BP演算法和BP神經網路是神經網路的改進版,修正了一些神經網路的缺點。
遺傳演算法屬於進化演算法,模擬大自然生物進化的過程:優勝略汰。個體不斷進化,只有高質量的個體(目標函數最小(大))才能進入下一代的繁殖。如此往復,最終找到全局最優值。遺傳演算法能夠很好的解決常規優化演算法無法解決的高度非線性優化問題,廣泛應用在各行各業中。差分進化,蟻群演算法,粒子群演算法等都屬於進化演算法,只是模擬的生物群體對象不一樣而已。
❺ 神經網路遺傳演算法函數極值尋優
對於未知的非線性函數,僅通過函數的輸入輸出數據難以准確尋找函數極值。這類問題可以通過神經網路結合遺傳演算法求解,利用神經網路的非線性擬合能力和遺傳演算法的非線性尋優能力尋找函數極值。本文用神經網路遺傳演算法尋優如下非線性函數極值,函數表達式為
函數圖形如下圖1所示。
從函數方程和圖形可以看出,該函數的全局最小值為0,對應的坐標為(0,0)。雖然從函數方程和圖形中很容易找出函數極值及極值對應坐標,但是在函數方程未知的情況下函數極值及極值對應坐標就很難找到。
神經網路遺傳演算法函數極值尋優主要分為BP神經網路訓練擬合和遺傳演算法極值尋優兩步,演算法流程如下圖2所示。
神經網路訓練擬合根據尋優函數的特點構建合適的BP神經網路,用非線性函數的輸出數據訓練BP網路,訓練後的BP神經網路就可以預測函數輸出。遺傳演算法極值尋優把訓練後的BP神經網路預測結果作為個體適應度值,通過選擇、交叉和變異操作尋找函數的全局最優值及對應輸入值。
本文根據非線性函數有2個輸入參數、1個輸出參數,確定BP神經網路結構為2-5-1.取函數的4 000組輸入輸出數據,從中隨機選取3 900組數據訓練網路,100組數據測試網路性能,網路訓練好後用於預測非線性函數輸出。
遺傳演算法中個體採用實數編碼,由於尋優函數只有2個輸入參數,所以個體長度為2。個體適應度值為BP神經網路預測值,適應度值越小。交叉概率為0.4,變異概率為0.2。
用函數輸入輸出數據訓練BP神經網路,使訓練後的網路能夠擬合非線性函數輸出,保存訓練好的網路用語計算個體適應度值。根據非線性函數方程隨機得到該函數的4 000組輸入輸出數據,存儲於data.mat中,其中input為函數輸入數據,output為函數對應輸出數據,從中隨機抽取3 900組訓練數據訓練網路,100組測試數據測試網路擬合性能。最後保存訓練好的網路。
把訓練好的BP神經網路預測輸出作為個體適應度值。
BP神經網路擬合結果分析
本文中個體的適應度值為BP神經網路預測值,因此BP神經網路預測精度對於最優位置的尋找具有非常重要的意義。由於尋優非線性函數有2個輸入參數、1個輸出參數,所以構建的BP神經網路的結構為2-5-1。共取非線性函數4 000組輸入輸出數據,從中隨機選擇3 900組數據訓練BP神經網路,100組數據作為測試數據測試BP神經網路擬合性能,BP神經網路預測輸出和期望輸出對比如下圖3所示。
從BP神經網路預測結果可以看出,BP神經網路可以准確預測非線性函數輸出,可以把網路預測近似看成函數實際輸出。
遺傳演算法尋優結果分析 BP神經網路訓練結束後,可以利用遺傳演算法尋找該非線性函數的最小值。遺傳演算法的迭代次數是100次,種群規模是20,交叉概率為0.4,變異概率為0.2,採用浮點數編碼,個體長度為21,優化過程中最優個體適應度值變化曲線如下圖4所示。
本文所使用的方法有比較重要的工程應用價值,比如對於某項試驗來說,試驗目的是獲取到最大試驗結果對應的實驗條件,但是由於時間和經費限制,該試驗只能進行有限次,可能單靠試驗結果找不到最優的試驗條件。這時可以在已知試驗數據的基礎上,通過本文介紹的神經網路遺傳演算法尋找最優試驗條件。
思路就是先根據試驗條件數和試驗結果數確定BP神經網路結構;然後把試驗條件作為輸入數據,試驗結果作為輸出數據訓練BP網路,使得訓練後的網路可以預測一定試驗條件下的試驗結果;最後把試驗條件作為遺傳演算法中的種群個體,把網路預測的試驗結果作為個體適應度值,通過遺傳演算法推導最優試驗結果及其對應試驗條件。
❻ matlab的遺傳演算法優化BP神經網路
對y=x1^2+x2^2非線性系統進行建模,用1500組數據對網路進行構建網路,500組數據測試網路。由於BP神經網路初始神經元之間的權值和閾值一般隨機選擇,因此容易陷入局部最小值。本方法使用遺傳演算法優化初始神經元之間的權值和閾值,並對比使用遺傳演算法前後的效果。
步驟:
未經遺傳演算法優化的BP神經網路建模
1、
隨機生成2000組兩維隨機數(x1,x2),並計算對應的輸出y=x1^2+x2^2,前1500組數據作為訓練數據input_train,後500組數據作為測試數據input_test。並將數據存儲在data中待遺傳演算法中使用相同的數據。
2、
數據預處理:歸一化處理。
3、
構建BP神經網路的隱層數,次數,步長,目標。
4、
使用訓練數據input_train訓練BP神經網路net。
❼ 利用遺傳演算法優化的bp神經網路怎麼畫出誤差與訓練時間的變化
這個得靠你自己編程實現,沒有現成的函數。具體流程如下:
初始化:將各個權值、閾值都作為實數編碼,構成染色體,並產生初始種群;
選擇、交叉、變異:注意各個概率和交叉方式;
檢驗:將染色體解碼進神經網路,代入樣本計算誤差。可能你還可以使用最優個體保存策略。
循環迭代上述過程,直至誤差滿足條件。
將遺傳演算法的代數和誤差記錄下來,用plot函數就可以畫出變化曲線了。
❽ c語言實現*/遺傳演算法改進BP神經網路原理和演算法實現怎麼弄
遺傳演算法有相當大的引用。遺傳演算法在游戲中應用的現狀在遺傳編碼時, 一般將瓦片的坐標作為基因進行實數編碼, 染色體的第一個基因為起點坐標, 最後一個基因為終點坐標, 中間的基因為路徑經過的每一個瓦片的坐標。在生成染色體時, 由起點出發, 隨機選擇當前結點的鄰居節點中的可通過節點, 將其坐標加入染色體, 依此循環, 直到找到目標點為止, 生成了一條染色體。重復上述操作, 直到達到指定的種群規模。遺傳演算法的優點:1、遺傳演算法是以決策變數的編碼作為運算對象,可以直接對集合、序列、矩陣、樹、圖等結構對象進行操作。這樣的方式一方面有助於模擬生物的基因、染色體和遺傳進化的過程,方便遺傳操作運算元的運用。另一方面也使得遺傳演算法具有廣泛的應用領域,如函數優化、生產調度、自動控制、圖像處理、機器學習、數據挖掘等領域。2、遺傳演算法直接以目標函數值作為搜索信息。它僅僅使用適應度函數值來度量個體的優良程度,不涉及目標函數值求導求微分的過程。因為在現實中很多目標函數是很難求導的,甚至是不存在導數的,所以這一點也使得遺傳演算法顯示出高度的優越性。3、遺傳演算法具有群體搜索的特性。它的搜索過程是從一個具有多個個體的初始群體P(0)開始的,一方面可以有效地避免搜索一些不必搜索的點。另一方面由於傳統的單點搜索方法在對多峰分布的搜索空間進行搜索時很容易陷入局部某個單峰的極值點,而遺傳演算法的群體搜索特性卻可以避免這樣的問題,因而可以體現出遺傳演算法的並行化和較好的全局搜索性。4、遺傳演算法基於概率規則,而不是確定性規則。這使得搜索更為靈活,參數對其搜索效果的影響也盡可能的小。5、遺傳演算法具有可擴展性,易於與其他技術混合使用。以上幾點便是遺傳演算法作為優化演算法所具備的優點。遺傳演算法的缺點:遺傳演算法在進行編碼時容易出現不規范不準確的問題。
