人工神经网络与遗传算法,遗传算法和神经算法
遺傳神經網絡識別原理
4.3.1 遺傳BP簡介遺傳識別是遺傳算法+神經網絡的一種新興的尋優技術,適合于復雜的、疊加的非線性系統的辨識描述。神經網絡算法是當前較為成熟的識別分類方法,但網絡權值的訓練一直存在著缺陷。
為此結合具體應用,在對遺傳算法進行改進的基礎上,本文采用了一種基于遺傳學習權值的神經網絡識別方法,并取得了較好的效果。
盡管常規遺傳算法是穩健的,但針對一個具體問題遺傳算法只有和其他方法(或稱原有算法)有效地結合在一起,組成一個新的混合算法,才能在實際中得到廣泛應用。
混合算法既要保持原有算法的長處,又要保持遺傳算法的優點,因此常規遺傳算法中的適應值函數、編碼、遺傳算子等必須做適當的修改以適應混合算法的要求。
4.3.1.1 適應值信息常規算法中,適應值常被表示為全局極小,用歐氏距離來實現。
例如,適應值常被表示為如下形式:儲層特征研究與預測式中:)Yi為第i 個樣本的實際輸出,Yi為第i 個樣本的期望輸出,N 為學習樣本數。
這種表示法的單點擬合能力較強,能夠滿足精度要求,但大多數情況下,還要考慮樣本整體的一些性質,如方差、連續性等。適應值作為GA中的惟一使用信息,除了體現樣本的差異性,還 應當兼顧樣本間的相關性。
這樣就在一定程度上克服了劇烈振蕩、網絡容錯能力差等弱點。因此,我們將灰色系統的灰關聯引入進來,在保證樣本的遺傳操作的同時,加強樣本間橫向上的聯系,從而更有效地選擇權值。
設 X0={X0(K),K=1,2,…,n}為母序列,Xi={Xi(K),K=1,2,…,n i=1,2,…,m}為子序列。
則關聯系數為:儲層特征研究與預測關聯度為:儲層特征研究與預測4.3.1.2 編碼問題二進制位串編碼是GA中常見的編碼技術。但在實際編程中,采用浮點數直接表示更有利。
主要有以下原因:(1)避免了因網絡權值范圍不明確,難以進行編碼的困難;(2)取消了編碼、譯碼過程,提高了學習算法的速度;(3)十進制數字串的引入,在數字串長度不變的情況下,計算精度可以大為提高。
例如,用七位二進制數字串來表示(-10,10)之間的數值,則精度最高為:儲層特征研究與預測用同樣長度的十進制數字串來表示(-10,10)之間的數值,去掉符號位和小數點所占用的一位,余下的四位表示小數值,則精度最高可以達到0.0001。
4.3.1.3 修改雜交算子由于編碼方式的改變,雜交算子可以設計為具有數值特點的向量的線性組合。
通常表示為如下形式:若有兩個個體Sa、Sb雜交,則產生的個體為儲層特征研究與預測其中u的取值在(0,1),也可根據情況適當縮小取值范圍。
當u取常數時,雜交算子即為一致雜交,當u隨代數變化時,雜交算子則為非一致雜交。在遺傳算法中,隨著迭代次數的增加,個體的平均性能逐步提高,個體間的差異縮小。
為了防止個體趨向一致,影響算法的收斂性能,本文對u作了如下改變,令儲層特征研究與預測其中t為當前代數,T為預置最大代數,隨著代數的增加,u從1到0變化,完成雜交的漸變過程。
4.3.1.4 修改變異算子設個體x=(v1,v2,…,vn),則每個分量以一定概率進行變異,一次變異后的結果為(v1,…,,…,vn),1<=K<=n,的值按下面的隨機方式決定:儲層特征研究與預測式中:LB,UB為第K個變量的左、右鄰居,函數Δ(t,y)返回(0,y)上的一個值,并使這個值隨著代數t的增大而接近于0,這樣選取的函數允許這個算子在算法的開始階段一致搜索整個空間,而在算法的后階段進行局部搜索。
儲層特征研究與預測式中:r為[0,1]上的隨機數,T為預置的最大代數,t為當前代數,b是決定非一致程度的參數,這里取為0.5。
4.3.1.5 成熟前收斂問題成熟前收斂是指GA不能再產生性能超過父代的后代,盡管尚未達到全局最優解,主要表現形式是連續數代或數十代適應值不發生變化。
它與其他方法中的局部極值問題很相似,但又不同,因為它并不一定出現在局部極小點。目前解決這一問題的方法主要有:重新啟動法、動態參數編碼法、混合法等。
為了便于程序表現,我們引進了一個動態記憶窗口W,W用來記錄從當前代開始最優目標值保持連續不變的代數。當W達到某個給定的值時,就認為出現了成熟前收斂,這時就令雜交算子和變異算子突然增大,實現基因的重組。
當然用這種方法來判別收斂問題是不嚴格的,對一個算法收斂性能的評價主要應體現在時間復雜性和空間復雜性上。
對于像GA這樣帶有隨機搜索性質的具體方法,理論上說,只有當隨機數字完全取盡,目標值仍未改變才可認為是成熟前收斂。但在實際中是不可能這樣做的。
因此可根據隨機數的總個數,每次計算出最多取多少個隨機參數,來大致估算所需的次數,這個次數就可認為是動態記憶機制W。4.3.2 遺傳BP網絡結構遺傳算法一般可以通過兩種方式應用到神經網絡中。
一種方式是利用遺傳算法訓練已知結構的網絡,優化網絡的連接權;另一種方式是利用遺傳算法尋找網絡的規模、結構和學習參數。
目前這種方法在理論上還不完全成熟,尋優機理、學習效率等有待進一步研究,離實際應用還有一定的距離。對多層前饋神經網絡,目前用得最多的學習算法是BP算法。
然而由于BP本身固有的學習機理的限制,從根本上改進BP算法是很困難的。
BP的學習過程實際上是連接權的重組優化過程,因此在保持網絡結構的前提下,尋找一種能使連接權達到最優組合的學習方法,具有一定的實際意義。
利用GA的優點來克服BP算法收斂慢和易局部收斂的缺陷,同時與BP算法的結合,也解決了單獨利用GA往往只能在短時間內尋找到接近最優解的近優解這一問題,引入BP算法的梯度信息將會避免這種現象。
GA與BP算法可以有多種不同的組合方法:先BP后GA:先用BP培訓一個預先選定結構的ANN(人工神經網絡)直到平均誤差不再有意義地減少時為止,然后在此基礎上再用GA進行若干代的優化。
重復進行這樣的搜索,直到誤差范圍達到滿意的要求或者發現搜索不收斂為止。這種組合方法的基本思想是先用BP確定使誤差函數取極小值的參數組合在參數空間的位置,再利用GA擺脫掉可能的局部極小。
應用這種組合必須事先選定ANN的結構。即只能用它確定ANN的連接權重。顯然,如果事先選擇的ANN結構不合理或有關的參數(如學習率等)不合適,可能會導致搜索不收斂。
先GA后BP:先用GA反復優化描述ANN模型的參數組合,直到適應函數的平均不再有意義地增加為止。在此基礎上再用 BP算法對它們進行優化。
這種組合方法的基本思想是先用GA粗選ANN模型,再用 BP算法精細與優化。
這種組合方法的優點是通用性好,既可像前一組合方法那樣用來優選指定結構下的部分參數,也可用來優選其他的參數,例如 ANN 的結構、學習率等,甚至還可用于優選它們的組合。
圖4-4 GABP結構圖上面兩種組合GA與 BP的方法是比較基本的兩種,以它們為基礎可以衍生出多種具體的實現方案。
但由于 BP 算法本身也有許多參數需要選定,而且選擇方法也無規則可循,因而組合 GA 與BP在一定程度上也使待解決的問題更加復雜化。
為此,這里提出了一種改進的GABP方法,即利用 BP網絡的非線性分類能力和網絡結構來設計分類器,將遺傳學習的結果直接送入網絡,不再經過BP優化,通過網絡結構輸出結果。
這種改進既體現了系統的非線性,與前面的處理方法相銜接,又通過GA的學習優化了權值,提高了運算速度。該網絡為一個三層 BP 網絡,結構如圖4-4所示。
4.3.3 遺傳BP計算過程遺傳BP算法的具體步驟:(1)隨機產生N組(-1,1)區間內取值的初始網絡權值。
(2)用BP算法對這N組始值分別進行訓練,若這N組權值中至少已有一組滿足精度要求,則算法結束;否則轉入步驟(3)。
(3)分別依據經過訓練的這N組較好的權值所對應的上下限確定取值區間,在區間內再隨機生產成N組新的權限,連同經過訓練的N組權值在一起,構成一個完整的基因群體,共2*N組權值。
(4)從這2*N組權值進行選擇、交叉、變異等遺傳操作。(5)從經過遺傳操作的這2*N組權值中選出N組較好的,回復到步驟(2)。圖4-5 改進的 GABP計算流程圖GABP的計算過程圖如圖4-5所示。
谷歌人工智能寫作項目:神經網絡偽原創
遺傳算法怎么調用神經網絡訓練好的模型
遺傳算法優化的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。5、 用測試數據input_test測試神經網絡,并將預測的數據反歸一化處理。6、 分析預測數據與期望數據之間的誤差。
遺傳算法優化的BP神經網絡建模1、 讀取前面步驟中保存的數據data;2、 對數據進行歸一化處理;3、 設置隱層數目;4、 初始化進化次數,種群規模,交叉概率,變異概率5、 對種群進行實數編碼,并將預測數據與期望數據之間的誤差作為適應度函數;6、 循環進行選擇、交叉、變異、計算適應度操作,直到達到進化次數,得到最優的初始權值和閾值;7、 將得到最佳初始權值和閾值來構建BP神經網絡;8、 使用訓練數據input_train訓練BP神經網絡net;9、 用測試數據input_test測試神經網絡,并將預測的數據反歸一化處理;10、 分析預測數據與期望數據之間的誤差。
怎么用遺傳算法工具箱調用神經網絡來尋求最優解啊
關于神經網絡,蟻群算法和遺傳算法
神經網絡并行性和自適應性很強,應用領域很廣,在任何非線性問題中都可以應用,如控制、信息、預測等各領域都能應用。蟻群算法最開始應用于TSP問題,獲得了成功,后來又廣泛應用于各類組合優化問題。
但是該算法理論基礎較薄弱,算法收斂性都沒有得到證明,很多參數的設定也僅靠經驗,實際效果也一般,使用中也常常早熟。遺傳算法是比較成熟的算法,它的全局尋優能力很強,能夠很快地趨近較優解。
主要應用于解決組合優化的NP問題。這三種算法可以相互融合,例如GA可以優化神經網絡初始權值,防止神經網絡訓練陷入局部極小且加快收斂速度。
蟻群算法也可用于訓練神經網絡,但一定要使用優化后的蟻群算法,如最大-最小蟻群算法和帶精英策略。
matlab工具箱中的神經網絡和遺傳算法要怎么調用?
都是有兩種調用方法,一種圖形界面的,這個從開始菜單,然后工具,然后從里面找神經網絡neuralnetwork,遺傳算法工具是全局優化工具箱里面的,globaloptimization。
另外一種通過命令行調用,這個需要你理解你都要做什么,我用神經網絡舉例。第一步需要先整理出輸入變量和輸出變量,第二步設計并初始化神經網絡,第三部訓練,第四部獲得結果。
如果你想結合這兩者,就會更加復雜,詳細的你可以再問。我曾經做過用遺傳算法優化神經網絡的工具。
trainbr加遺傳算法的神經網絡!好處,或者行不行!
神經網絡的設計要用到遺傳算法,遺傳算法在神經網絡中的應用主要反映在3個方面:網絡的學習,網絡的結構設計,網絡的分析。 1.遺傳算法在網絡學習中的應用在神經網絡中,遺傳算法可用于網絡的學習。
這時,它在兩個方面起作用 (1)學習規則的優化用遺傳算法對神經網絡學習規則實現自動優化,從而提高學習速率。 (2)網絡權系數的優化用遺傳算法的全局優化及隱含并行性的特點提高權系數優化速度。
2.遺傳算法在網絡設計中的應用用遺傳算法設計一個優秀的神經網絡結構,首先是要解決網絡結構的編碼問題;然后才能以選擇、交叉、變異操作得出最優結構。
編碼方法主要有下列3種: (1)直接編碼法這是把神經網絡結構直接用二進制串表示,在遺傳算法中,“染色體”實質上和神經網絡是一種映射關系。通過對“染色體”的優化就實現了對網絡的優化。
(2)參數化編碼法參數化編碼采用的編碼較為抽象,編碼包括網絡層數、每層神經元數、各層互連方式等信息。一般對進化后的優化“染色體”進行分析,然后產生網絡的結構。
(3)繁衍生長法這種方法不是在“染色體”中直接編碼神經網絡的結構,而是把一些簡單的生長語法規則編碼入“染色體”中;然后,由遺傳算法對這些生長語法規則不斷進行改變,最后生成適合所解的問題的神經網絡。
這種方法與自然界生物地生長進化相一致。 3.遺傳算法在網絡分析中的應用遺傳算法可用于分析神經網絡。神經網絡由于有分布存儲等特點,一般難以從其拓撲結構直接理解其功能。
遺傳算法可對神經網絡進行功能分析,性質分析,狀態分析。遺傳算法雖然可以在多種領域都有實際應用,并且也展示了它潛力和寬廣前景;但是,遺傳算法還有大量的問題需要研究,目前也還有各種不足。
首先,在變量多,取值范圍大或無給定范圍時,收斂速度下降;其次,可找到最優解附近,但無法精確確定最擾解位置;最后,遺傳算法的參數選擇尚未有定量方法。
對遺傳算法,還需要進一步研究其數學基礎理論;還需要在理論上證明它與其它優化技術的優劣及原因;還需研究硬件化的遺傳算法;以及遺傳算法的通用編程和形式等。
?
總結
以上是生活随笔為你收集整理的人工神经网络与遗传算法,遗传算法和神经算法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 遗传算法 - 简单介绍
- 下一篇: 在一家公司干多长时间跳槽才合适?值得一读