㈠ bp神經網路如果加上遺傳演算法優化,和RBF神經網路,預測哪個比較好!或者這樣哪個比較厲害!跪求大神
RBF比較淺,沒記錯的話只有三層,現在用的已經不多了。
而隨著算力的提升,MLP已經成為主流,不論是計算機視覺還是自然語言處理都是基於MLP做的。
㈡ 在matlab中如何用遺傳演算法求二元目標規劃
遺傳演算法俺不會,用多目標優化也可以求出最優解。
function zFgoalattain
% 多目標最優化
clear all; clc
% 給定目標,權重按目標比例確定,給出初值
goal = [-0.3 0.9]; % -0.2794 0.9313
weight = [0.1 0.1];
x0 = [0.6 0.6 0.6 0.6 0.6];
% 給出約束條件的系數
A=[-1 0 -1 0 0;0 -1 0 0 -1]
B=[-0.4; -0.4]
Aeq = [1 1 1 1 1]
Beq = [1]
lb = ones(1,5)*0.05
ub = ones(1,5)
% 求解
[x,fval,attainfactor,exitflag] = fgoalattain(@ObjFun,x0,goal,weight,A,B,Aeq,Beq,lb,ub)
% ------------------------------------------------------------------
function f = ObjFun(x)
f1 = -(0.371*x(1)+0.274*x(2)+0.581*x(3)+0.164*x(4)+0.327*x(5));
f2 = 1.1828*x(1)+0.8415*x(2)+0.9324*x(3)+0.8474*x(4)+0.894*x(5);
f=[f1;f2];
運行結果:
x =
0.0500 0.5000 0.3500 0.0500 0.0500
fval =
-0.3834
0.8933
attainfactor =
-0.0670
exitflag =
4
㈢ 目標方程和約束條件有微分方程,應該怎麼用遺傳演算法擬合
用遺傳演算法ga函數是可以擬合帶有目標方程和約束條件且含有微分方程的系數,其擬合原則是誤差最小估計原則。
解決問題的方法:1、建立自定義目標函數;2、建立自定義約束函數;3、建立自定義微分方程函數;4、誤差最小控制函數;5、利用遺傳演算法ga函數求解擬合系數,利用ode45函數求解微分方程;6、建立嵌套函數計算
㈣ 遺傳演算法
遺傳演算法是從代表問題可能潛在解集的一個種群開始的,而一個種群則由經過基因編碼的一定數目的個體組成。每個個體實際上是染色體帶有特徵的實體。染色體作為遺傳物質的主要載體,即多個基因的集合,其內部表現(即基因型)是某種基因的組合,它決定了個體形狀的外部表現,如黑頭發的特徵是由染色體中控制這一特徵的某種基因組合決定的。因此,在一開始需要實現從表現型到基因型的映射即編碼工作。由於仿照基因編碼的工作很復雜,我們往往進行簡化,如二進制編碼。初始種群產生之後,按照適者生存和優勝劣汰的原理,逐代(generation)演化產生出越來越好的近似解。在每一代,根據問題域中個體的適應度(fitness)大小挑選(selection)個體,並藉助於自然遺傳學的遺傳運算元(genetic operators)進行組合交叉(crossover)和變異(mutation),產生出代表新的解集的種群。這個過程將導致種群自然進化一樣的後生代種群比前代更加適應環境,末代種群中的最優個體經過編碼(decoding),可以作為問題近似最優解。
5.4.1 非線性優化與模型編碼
假定有一組未知參量
xi(i=1,2,…,M)
構成模型向量m,它的非線性目標函數為Φ(m)。根據先驗知識,對每個未知量都有上下界αi及bi,即αi≤x≤bi,同時可用間隔di把它離散化,使
di=(bi-αi)/N (5.4.1)
於是,所有允許的模型m將被限制在集
xi=αi+jdi(j=0,1,…,N) (5.4.2)
之內。
通常目標泛函(如經濟學中的成本函數)表示觀測函數與某種期望模型的失擬,因此非線性優化問題即為在上述限制的模型中求使Φ(m)極小的模型。對少數要求擬合最佳的問題,求目標函數的極大與失擬函數求極小是一致的。對於地球物理問題,通常要進行殺重離散化。首先,地球模型一般用連續函數表示,反演時要離散化為參數集才能用於計算。有時,也將未知函數展開成已知基函數的集,用其系數作為離散化的參數集xi,第二次離散化的需要是因為每一個未知參數在其變化范圍內再次被離散化,以使離散模型空間最終包含著有限個非線性優化可選擇的模型,其個數為
地球物理數據處理教程
其中M為未知參數xi的個數。由此式可見,K決定於每個參數離散化的間隔di及其變化范圍(αi,bi),在大多數情況下它們只能靠先驗知識來選擇。
一般而言,優化問題非線性化的程度越高,逐次線性化的方法越不穩定,而對蒙特卡洛法卻沒有影響,因為此法從有限模型空間中隨機地挑選新模型並計算其目標函數 Φ(m)。遺傳演算法與此不同的是同時計算一組模型(開始時是隨機地選擇的),然後把它進行二進制編碼,並通過繁殖、雜交和變異產生一組新模型進一步有限的模型空間搜索。編碼的方法可有多種,下面舉最簡單的例說明之,對於有符號的地球物理參數反演時的編碼方式一般要更復雜些。
假設地球為有三個水平層的層次模型,含層底界面深度hj(j=1,2,3)及層速度vj(j=1,2,3)這兩組參數。如某個模型的參數值為(十進制):
h1=6,h2=18,h3=28,單位為10m
v1=6,v2=18,v3=28,單位為 hm/s
按正常的二進制編碼法它們可分別用以下字元串表示為:
地球物理數據處理教程
為了減少位元組,這種編碼方式改變了慣用的單位制,只是按精度要求(深度為10m,波速為hm/s)來規定參數的碼值,同時也意味著模型空間離散化間距di都規格化為一個單位(即10m,或hm/s)。當然,在此編碼的基礎上,還可以寫出多種新的編碼字元串。例如,三參數值的對應位元組順序重排,就可組成以下新的二進制碼串:
地球物理數據處理教程
模型參數的二進制編碼是一種數學上的抽象,通過編碼把具體的非線性問題和生物演化過程聯系了起來,因為這時形成的編碼字元串就相當於一組遺傳基因的密碼。不僅是二進制編碼,十進制編碼也可直接用於遺傳演算法。根據生物系統傳代過程的規律,這些基因信息將在繁殖中傳到下一帶,而下一代將按照「適者生存」的原則決定種屬的發展和消亡,而優化准則或目標函數就起到了決定「適者生存」的作用,即保留失擬較小的新模型,而放棄失擬大的模型。在傳帶過程中用編碼表示的基因部分地交合和變異,即字元串中的一些子串被保留,有的改變,以使傳代的過程向優化的目標演化。總的來說,遺傳演算法可分為三步:繁殖、雜交和變異。其具體實現過程見圖5.8。
圖5.8 遺傳演算法實現過程
5.4.2 遺傳演算法在地震反演中的應用
以地震走時反演為例,根據最小二乘准則使合成記錄與實測數據的擬合差取極小,目標函數可取為
地球物理數據處理教程
式中:Ti,0為觀測資料中提取出的地震走時;Ti,s為合成地震或射線追蹤算出的地震走時;ΔT為所有合成地震走時的平均值;NA為合成地震數據的個數,它可以少於實測Ti,0的個數,因為在射線追蹤時有陰影區存在,不一定能算出合成數據Tj,0。利用射線追蹤計算走時的方法很多,參見上一章。對於少數幾個波速為常數的水平層,走時反演的參數編碼方法可參照上一節介紹的分別對深度和速度編碼方法,二進制碼的字元串位數1不會太大。要注意的是由深度定出的字元串符合數值由淺到深增大的規律,這一約束條件不應在雜交和傳代過程中破壞。這種不等式的約束(h1<h2<h3…)在遺傳演算法中是容易實現的。
對於波場反演,較方便的做法是將地球介質作等間距的劃分。例如,將水平層狀介質細分為100個等厚度的水平層。在上地殼可假定波速小於6400 m/s(相當於解空間的硬約束),而波速空間距為100m/s,則可將波速用100m/s為單位,每層用6位二進制字元串表示波速,地層模型總共用600位二進制字元串表示(l=600)。初始模型可隨機地選取24~192個,然後通過繁殖雜交與變異。雜交概率在0.5~1.0之間,變異概率小於0.01。目標函數(即失擬方程)在頻率域可表示為
地球物理數據處理教程
式中:P0(ωk,vj)為實測地震道的頻譜;ωk為角頻率;vj為第j層的波速;Ps(ωk,vj)為相應的合成地震道;A(ωk)為地震儀及檢波器的頻率濾波器,例如,可取
A(ω)=sinC4(ω/ωN) (5.4.6)
式中ωN為Nyquist頻率,即ωN=π/Δt,Δt為時間采樣率。參數C為振幅擬合因子,它起到合成與觀測記錄之間幅度上匹配的作用。C的計算常用地震道的包絡函數的平均比值。例如,設E[]為波動信號的包絡函數,可令
地球物理數據處理教程
式中:tmax為包絡極大值的對應時間;J為總層數。包絡函數可通過復數道的模擬取得。
用遺傳演算法作波速反演時失擬最小的模型將一直保存到迭代停止。什麼時候停止傳代還沒有理論上可計算的好辦法,一般要顯示解空間的搜索范圍及局部密度,以此來判斷是否可以停止傳代。值得指出的是,由(5.4.4)和(5.4.5)式給出的目標函數對於有誤差的數據是有問題的,反演的目標不是追求對有誤差數據的完美擬合,而是要求出准確而且解析度最高的解估計。
遺傳演算法在執行中可能出現兩類問題。其一稱為「早熟」問題,即在傳代之初就隨機地選中了比較好的模型,它在傳代中起主導作用,而使其後的計算因散不開而白白浪費。通常,增加Q值可以改善這種情況。另一類問題正相反,即傳相當多代後仍然找不到一個特別好的解估計,即可能有幾百個算出的目標函數值都大同小異。這時,最好修改目標函數的比例因子(即(5.4.5)式的分母),以使繁殖概率Ps的變化范圍加大。
對於高維地震模型的反演,由於參數太多,相應的模型字元串太長,目前用遺傳演算法作反演的計算成本還嫌太高。實際上,為了加快計算,不僅要改進反演技巧和傳代的控制技術,而且還要大幅度提高正演計算的速度,避免對遺傳演算法大量的計算花費在正演合成上。
㈤ 關於遺傳演算法與多元線性回歸
不是吧,數值優化是遺傳演算法的基本用途啊。
遺傳演算法與神經網路的結合不就是非線性多元回歸嗎?
神經網路本身就是用非線性方程去逼近要解決的問題,神經元的權系數就是需要進行逼近的參數。
訓練用的樣本不就是回歸用的樣本點嗎?
㈥ 遺傳演算法 參數擬合
我來說說我的思路吧
這種擬合問題的目的是求出擬合函數的參數,如多項式函數的系數
那麼可以把擬合函數值與Y的絕對差值當做目標函數和適應度函數,相對應所求的擬合函數的參數作為遺傳演算法中的基因編碼,每組參數對應一個擬合函數相當於一個染色體個體
遺傳演算法採用基本遺傳演算法即可
單點交叉,高斯變異
初步設想,望請指正
㈦ 水動力彌散方程遺傳反演方法
10.3.1 數學模型
無論是實驗室或野外的彌散試驗,最常用的數學模型是一維流場中點源連續注入問題的水質模型[66]。假設:
1)滲流區域為半無限沙槽,且地下水流動和示蹤劑彌散可以簡化為一維均勻穩定流和一維彌散;
2)流體是不可壓縮的均質流體,溫度不變,滲流區域的介質為均質且各向同性;
3)當t=0時,滲流區域中不存在示蹤劑;
4)從t=0時刻開始在滲流區域上端連續注入含示蹤劑濃度為C0的流體;
5)除注入點,滲流區域不存在其他源和匯。
依據上述假定,取地下水流動方向為x軸的正向,取示蹤劑注入點為坐標原點。任意點x處在時刻t時的示蹤劑濃度C(x,t)滿足如下數學模型。
含水層參數識別方法
方程中D為彌散系數,v為地下水流速。
10.3.2 模型的解析解
數學模型[66](10-17)可用Laplace變換求解,其解為:
含水層參數識別方法
若令 CR=,則
含水層參數識別方法
其中:erfc(x)=1-erf(x)=exp(-z2)d z,exp(x)=ex。
10.3.3 反演方法簡介
地下水水質模型[66]最常用的反演方法為正態分布函數法和配線法,配線法和泰斯模型的方法有相似處,這里我們主要介紹正態分布函數法。
在式(10-19)中,當x很大時,右端第二項與第一項相比非常小,可以忽略。Φ.Μ.鮑契維爾已證明,當D/(vx)≤ 0.005時,忽略第二項後誤差≤4%。因此,當x很大時,即離示蹤劑注入點很遠時,濃度的分布可近似表示為:
含水層參數識別方法
由於
含水層參數識別方法
其中,F(x)為一正態分布函數,期望值為μ=vt,均方差為。當 x 很大時,1-CR服從於正態分布。已知標准正態分布函數Φ有如下性質:
Φ(1)=0.8413
Φ(-1)=0.1587
我們把濃度為0.8413的x坐標與濃度為0.1578的x坐標差定義為過渡帶的寬度,則對於均方差為σ的正態分布函數來說,過渡帶寬度e與均方差σ之間有如下關系
含水層參數識別方法
由於1-0.8413=0.1587,1-0.1587=0.8413。1-F(x)和F(x)所代表的過渡帶的寬度是相等的,利用這個性質從CR-x關系圖上可以很容易地計算出過渡帶的寬度為:
含水層參數識別方法
其中x0.1587代表CR=0.1587時所對應的x坐標,x0.8413代表CR=0.8413時所對應的x坐標。由方程(10-22)和σ=可以很方便地計算出彌散系數D 的值:
含水層參數識別方法
如果彌散試驗給出的是CR-t關系曲線圖,上式可作適當的修改。
由(10-20)式可得:
含水層參數識別方法
當CR=0.5時,如果彌散試驗給出的是CR-x關系曲線圖有:
含水層參數識別方法
當CR=0.5時,如果彌散試驗給出的是CR-t關系曲線圖有:
含水層參數識別方法
用式(10-26)和式(10-27)可以很方便地計算地下水的流速。
其他的反演方法如配線法,Gauss-Newton法均可解水質反演問題。但是用正態分布函數法和配線法因為要查對坐標值,容易造成不同的人查出不同的坐標,引起人為誤差。Gauss-Newton法因為要給定參數的初值,如果參數初值給的不合適,解不收斂。尤其對於地下水水質問題,對地下水流速特別敏感,而計算開始時並不知道速度的分布范圍,極易造成解的發散情況。Gauss-Newton法因為要進行導數的操作,求導的過程很容易引起誤差,使結果帶有較大的誤差。Gauss-Newton最大的優點是初值給的合適時,計算速度特別快。
10.3.4 遺傳反演方法
遺傳反演方法的特點是只要正演問題可以計算,反演問題就能進行計算。它是將生物遺傳的特點引入到參數反演的過程中,通過一系列的正演計算達到反演的目的。
首先構造目標誤差函數。
設區域有m個觀測值,則構造誤差函數為
含水層參數識別方法
其中:為實測值,Ci (p1,p2,…,pn)為計算值。和Ci 具有相同的時間和空間坐標,p1,p2,…,pn 為參數,為書寫方便記 P=[p1,p2,…,pn]。
模型選定之後,通過改變參數使誤差函數達到最小值。那麼本問題就轉化為約束條件下的優化問題。
含水層參數識別方法
在地下水彌散參數計算中,有解析解的簡單模型應用很廣。將優化問題(6-29)和這些模型結合起來,方程(10-29)轉化為:
含水層參數識別方法
其中:E()為目標誤差函數,v為地下水流速,D為彌散系數,[va,vb]為v的取值區間,[Da ,Db ]為 D 的取值區間,為時空某點的地下水中某種溶質的濃度(或相對濃度)觀測值,Ci (v,D)為時空某點的地下水中某種溶質濃度(或相對濃度)的計算值,可用解析解計算。
和地下水滲流的計算一樣,我們也用如下8種不同的遺傳演算法進行反演計算試驗。
a.簡單遺傳演算法(SGA);
b.優體克隆遺傳演算法(The Best Chromosome Clone GA=BCC-GA);
c.優體克隆+子體優生(Younger Generation Chromosomes Prepotency)的遺傳演算法(BCC-YGCP-GA);
d.優體克隆+子體優生+多代調環(Multi-Generations Adjusting Environment=MAE)的遺傳演算法(BCC-YGCP-MGAE-GA);
e.多代調環的遺傳演算法(MGAE-GA);
f.優體克隆+多代調環的遺傳演算法(BCC-MGAE-GA);
g.子體優生的遺傳演算法(YGCP-GA);
h.子體優生+多代調環的遺傳演算法(YGCP-MGAE-GA)。
試驗的終止原則,由於要進行對比,我們選定進化代數為1000時終止計算。
例1.在水平密封的圓筒砂柱中做連續注入示蹤示蹤劑的試驗,在距注入孔0.65 m的觀測孔中獲得濃度比值資料見表10-14,試求出地下水流速和彌散系數[22]。
此問題的解析解為:
含水層參數識別方法
表10-14 相對濃度實測資料表
表10-15 不同的遺傳反演方法目標誤差函數計算結果比較表
本例題主要是已知相對濃度CR和時間t之間的關系來求地下水流速v和彌散系數D。在用遺傳演算法反演參數時,在所有方案中均採用:地下水流速v的初始取值區間為(0,1000.0 m/h),彌散系數D的初始取值區間為(0,0.1),遺傳代數Num-Gen=1000,種群數Pop-Size=50,交叉概率Pc=0.7,變異概率Pm=0.3,評價函數中的alph=0.05。所有與多代調環有關的計算方案,其代數選擇均為10。前500代每隔10代對v和D設置一次取值區間,取值區間設為(0.75vbest,1.25vbest),v為變數可代表v或D,Vbest為這十代中最優的染色體,500代後開始進行區間壓縮技術,其壓縮方法見前章所述,壓縮系數為0.4。其計算結果見圖10-6和表10-15。
圖10-6(1)遺傳反演方法進化代數與目標函數計算結果圖
圖10-6(2)遺傳反演方法進化代數與目標函數計算結果圖
從計算結果可以看出,簡單的遺傳演算法(1)、多代調環遺傳演算法(5)和優體克隆+多代調環遺傳演算法(6)在達到1000代時,並沒有明顯的收斂特徵,目標函數仍處於波動狀態,其地下水流速v和彌散系數D離真值相差較遠。特別是第6種優體克隆+多代調環遺傳演算法因特殊的組合,一直沒有改變目標誤差函數,所有與多代調環有關的遺傳演算法其收斂速度均較慢,這主要是環境調整的不合適,使染色體失去了在全局生存的空間。如果調整環境的代數變為20,其收斂速度會有很大的改變。對於本問題第2種優體克隆遺傳演算法、第3種優體克隆+子體優生遺傳演算法和第7種子體優生遺傳演算法均快速收斂,達到40代時已基本收斂到全局最優解。
優體克隆+子體優生遺傳演算法達到目標函數最小時,其地下水流速v=33.677212 m/d,彌散系數D=0.053982 m2/d。其計算曲線與實測曲線擬合圖見圖10-7。用遺傳演算法反演的地下水流速和彌散系數計算結果見表10-16和表10-17。
圖10-7 相對濃度計算曲線與實測曲線擬合圖
表10-16 地下水流速v反演結果表
表10-17 彌散系數D反演結果表
㈧ 如何用遺傳演算法優化模糊控制器中的控制規則和隸屬度函數
你說的應該是模糊控制的隸屬度函數吧
(1)模糊統計法: 模糊統計法的基本思想是對論域U上的一個確定元素vo是否屬於論域上的一個可變動的清晰集合A3作出清晰的判斷.對於不同的試驗者,清晰集合 A3可以有不同的邊界,但它們都對應於同一個模糊集A.模糊統計法的計算步驟是:在每次統計中, vo是固定的,A3的值是可變的,作 n次試驗,其模糊統計可按下式進行計算 v0對 A 的隸屬頻率 = v0∈A 的次數 / 試驗總次數 n 隨著 n的增大,隸屬頻率也會趨向穩定,這個穩定值就是 vo對A 的隸屬度值.這種方法較直觀地反映了模糊概念中的隸屬程度,但其計算量相當大. (2)例證法: 例證法的主要思想是從已知有限個μA的值,來估計論域 U 上的模糊子集 A 的隸屬函數.如論域 U代表全體人類,A 是「高個子的人」.顯然 A 是一個模糊子集.為了確定μA,先確定一個高度值 h,然後選定幾個語言真值(即一句話的真實程度)中的一個來回答某人是否算「高個子」.如語言真值可分為「真的」、「大致真的」、「似真似假」、「大致假的」和「假的」五種情況,並且分別用數字1、0.75、0.5、0.25、0來表示這些語言真值.對 n個不同高度h1、h2、…、hn都作同樣的詢問,即可以得到 A 的隸屬度函數的離散表示. (3)專家經驗法: 專家經驗法是根據專家的實際經驗給出模糊信息的處理算式或相應權系數值來確定隸屬函數的一種方法.在許多情況下,經常是初步確定粗略的隸屬函數,然後再通過「學習」和實踐檢驗逐步修改和完善,而實際效果正是檢驗和調整隸屬函數的依據. (4)二元對比排序法: 二元對比排序法是一種較實用的確定隸屬度函數的方法.它通過對多個事物之間的兩兩對比來確定某種特徵下的順序,由此來決定這些事物對該特徵的隸屬函數的大體形狀.二元對比排序法根據對比測度不同,可分為相對比較法、對比平均法、優先關系定序法和相似優先對比法等.
編輯本段舉例
㈨ MATLAB遺傳演算法擬合
代碼:
function y=myfung(x)
% TOT =[2.057 3.6094 4.9881 6.0189 6.8371 7.4881 8.0047 8.4151 8.7411 9.0000];
% t=[1:10];
% [r,s]=size(TOT);
% y=0;
% for i=1:s
% y=y+(TOT(i)-x(:,1)*(1 -exp(-x(:,2)*t(i))))^2 %最小估計原則
% end
%
x1=[-0.05 0.25 0.60 0 0.25 0.20 0.15 0.05 -0.15 0.15 0.20 0.10 0.40 0.45 0.35 0.30 0.50 0.50 0.40 -0.05 -0.05 -0.10 0.20 0.10 0.50 0.60 -0.05 0 0.05 0.55];
x2=[5.50 6.75 7.25 5.50 7.00 6.50 6.75 5.25 5.25 6.00 6.50 6.25 7.00 6.90 6.80 6.80 7.10 7.00 6.80 6.50 6.25 6.00 6.50 7.00 6.80 6.80 6.50 5.75 5.80 6.80];
y0=[7.38 8.51 9.52 7.50 9.33 8.28 8.75 7.87 7.10 8.00 7.89 8.15 9.10 8.86 8.90 8.87 9.26 9.00 8.75 7.95 7.65 7.27 8.00 8.50 8.75 9.21 8.27 7.67 7.93 9.26];
x3=x1.*x2;
TOT=y0;
[r,s]=size(TOT);
y=0;
for i=1:s
y2=x(:,1)+x(:,2).*x1(i)+x(:,3).*x2(i)+x(:,4).*x2(i)^2+x(:,5).*x3(i);
y=y+(TOT(i)-y2)^2 %最小估計原則
end
end
參數依次為
-1.151 5.652 -0.212 0.267 -1.165
每一次運算結果會有差異,因此起始值是隨機的,所以優化過程也是不同的。