人工神经网络与遗传算法,神经网络和算法的关系
BP算法、BP神經(jīng)網(wǎng)絡(luò)、遺傳算法、神經(jīng)網(wǎng)絡(luò)這四者之間的關(guān)系
這四個(gè)都屬于人工智能算法的范疇。其中BP算法、BP神經(jīng)網(wǎng)絡(luò)和神經(jīng)網(wǎng)絡(luò)屬于神經(jīng)網(wǎng)絡(luò)這個(gè)大類。遺傳算法為進(jìn)化算法這個(gè)大類。
神經(jīng)網(wǎng)絡(luò)模擬人類大腦神經(jīng)計(jì)算過(guò)程,可以實(shí)現(xiàn)高度非線性的預(yù)測(cè)和計(jì)算,主要用于非線性擬合,識(shí)別,特點(diǎn)是需要“訓(xùn)練”,給一些輸入,告訴他正確的輸出。若干次后,再給新的輸入,神經(jīng)網(wǎng)絡(luò)就能正確的預(yù)測(cè)對(duì)于的輸出。
神經(jīng)網(wǎng)絡(luò)廣泛的運(yùn)用在模式識(shí)別,故障診斷中。BP算法和BP神經(jīng)網(wǎng)絡(luò)是神經(jīng)網(wǎng)絡(luò)的改進(jìn)版,修正了一些神經(jīng)網(wǎng)絡(luò)的缺點(diǎn)。遺傳算法屬于進(jìn)化算法,模擬大自然生物進(jìn)化的過(guò)程:優(yōu)勝略汰。
個(gè)體不斷進(jìn)化,只有高質(zhì)量的個(gè)體(目標(biāo)函數(shù)最小(大))才能進(jìn)入下一代的繁殖。如此往復(fù),最終找到全局最優(yōu)值。遺傳算法能夠很好的解決常規(guī)優(yōu)化算法無(wú)法解決的高度非線性優(yōu)化問(wèn)題,廣泛應(yīng)用在各行各業(yè)中。
差分進(jìn)化,蟻群算法,粒子群算法等都屬于進(jìn)化算法,只是模擬的生物群體對(duì)象不一樣而已。
谷歌人工智能寫(xiě)作項(xiàng)目:神經(jīng)網(wǎng)絡(luò)偽原創(chuàng)
關(guān)于神經(jīng)網(wǎng)絡(luò),蟻群算法和遺傳算法
神經(jīng)網(wǎng)絡(luò)并行性和自適應(yīng)性很強(qiáng),應(yīng)用領(lǐng)域很廣,在任何非線性問(wèn)題中都可以應(yīng)用,如控制、信息、預(yù)測(cè)等各領(lǐng)域都能應(yīng)用好文案。蟻群算法最開(kāi)始應(yīng)用于TSP問(wèn)題,獲得了成功,后來(lái)又廣泛應(yīng)用于各類組合優(yōu)化問(wèn)題。
但是該算法理論基礎(chǔ)較薄弱,算法收斂性都沒(méi)有得到證明,很多參數(shù)的設(shè)定也僅靠經(jīng)驗(yàn),實(shí)際效果也一般,使用中也常常早熟。遺傳算法是比較成熟的算法,它的全局尋優(yōu)能力很強(qiáng),能夠很快地趨近較優(yōu)解。
主要應(yīng)用于解決組合優(yōu)化的NP問(wèn)題。這三種算法可以相互融合,例如GA可以優(yōu)化神經(jīng)網(wǎng)絡(luò)初始權(quán)值,防止神經(jīng)網(wǎng)絡(luò)訓(xùn)練陷入局部極小且加快收斂速度。
蟻群算法也可用于訓(xùn)練神經(jīng)網(wǎng)絡(luò),但一定要使用優(yōu)化后的蟻群算法,如最大-最小蟻群算法和帶精英策略。
關(guān)于遺傳算法,模糊數(shù)學(xué),神經(jīng)網(wǎng)絡(luò)三種數(shù)學(xué)的區(qū)別和聯(lián)系
遺傳算法是一種智能計(jì)算方法,針對(duì)不同的實(shí)際問(wèn)題可以設(shè)計(jì)不同的計(jì)算程序。它主要有復(fù)制,交叉,變異三部分完成,是仿照生物進(jìn)化過(guò)程來(lái)進(jìn)行計(jì)算方法的設(shè)計(jì)。模糊數(shù)學(xué)是研究現(xiàn)實(shí)生活中一類模糊現(xiàn)象的數(shù)學(xué)。
簡(jiǎn)單地說(shuō)就是像好與壞怎樣精確的描述,將好精確化,用數(shù)字來(lái)表達(dá)。神經(jīng)網(wǎng)絡(luò)是一種仿生計(jì)算方法,仿照生物體中信息的傳遞過(guò)程來(lái)進(jìn)行數(shù)學(xué)計(jì)算。這三種知識(shí)都是近40年興起的新興學(xué)科,主要應(yīng)用在智能模糊控制上面。
這三者可以結(jié)合起來(lái)應(yīng)用。如用模糊數(shù)學(xué)些遺傳算法的程序,優(yōu)化神經(jīng)網(wǎng)絡(luò),最后用神經(jīng)網(wǎng)絡(luò)控制飛行器或其他物體。
遺傳神經(jīng)網(wǎng)絡(luò)識(shí)別原理
4.3.1 遺傳BP簡(jiǎn)介遺傳識(shí)別是遺傳算法+神經(jīng)網(wǎng)絡(luò)的一種新興的尋優(yōu)技術(shù),適合于復(fù)雜的、疊加的非線性系統(tǒng)的辨識(shí)描述。神經(jīng)網(wǎng)絡(luò)算法是當(dāng)前較為成熟的識(shí)別分類方法,但網(wǎng)絡(luò)權(quán)值的訓(xùn)練一直存在著缺陷。
為此結(jié)合具體應(yīng)用,在對(duì)遺傳算法進(jìn)行改進(jìn)的基礎(chǔ)上,本文采用了一種基于遺傳學(xué)習(xí)權(quán)值的神經(jīng)網(wǎng)絡(luò)識(shí)別方法,并取得了較好的效果。
盡管常規(guī)遺傳算法是穩(wěn)健的,但針對(duì)一個(gè)具體問(wèn)題遺傳算法只有和其他方法(或稱原有算法)有效地結(jié)合在一起,組成一個(gè)新的混合算法,才能在實(shí)際中得到廣泛應(yīng)用。
混合算法既要保持原有算法的長(zhǎng)處,又要保持遺傳算法的優(yōu)點(diǎn),因此常規(guī)遺傳算法中的適應(yīng)值函數(shù)、編碼、遺傳算子等必須做適當(dāng)?shù)男薷囊赃m應(yīng)混合算法的要求。
4.3.1.1 適應(yīng)值信息常規(guī)算法中,適應(yīng)值常被表示為全局極小,用歐氏距離來(lái)實(shí)現(xiàn)。
例如,適應(yīng)值常被表示為如下形式:儲(chǔ)層特征研究與預(yù)測(cè)式中:)Yi為第i 個(gè)樣本的實(shí)際輸出,Yi為第i 個(gè)樣本的期望輸出,N 為學(xué)習(xí)樣本數(shù)。
這種表示法的單點(diǎn)擬合能力較強(qiáng),能夠滿足精度要求,但大多數(shù)情況下,還要考慮樣本整體的一些性質(zhì),如方差、連續(xù)性等。適應(yīng)值作為GA中的惟一使用信息,除了體現(xiàn)樣本的差異性,還 應(yīng)當(dāng)兼顧樣本間的相關(guān)性。
這樣就在一定程度上克服了劇烈振蕩、網(wǎng)絡(luò)容錯(cuò)能力差等弱點(diǎn)。因此,我們將灰色系統(tǒng)的灰關(guān)聯(lián)引入進(jìn)來(lái),在保證樣本的遺傳操作的同時(shí),加強(qiáng)樣本間橫向上的聯(lián)系,從而更有效地選擇權(quán)值。
設(shè) X0={X0(K),K=1,2,…,n}為母序列,Xi={Xi(K),K=1,2,…,n i=1,2,…,m}為子序列。
則關(guān)聯(lián)系數(shù)為:儲(chǔ)層特征研究與預(yù)測(cè)關(guān)聯(lián)度為:儲(chǔ)層特征研究與預(yù)測(cè)4.3.1.2 編碼問(wèn)題二進(jìn)制位串編碼是GA中常見(jiàn)的編碼技術(shù)。但在實(shí)際編程中,采用浮點(diǎn)數(shù)直接表示更有利。
主要有以下原因:(1)避免了因網(wǎng)絡(luò)權(quán)值范圍不明確,難以進(jìn)行編碼的困難;(2)取消了編碼、譯碼過(guò)程,提高了學(xué)習(xí)算法的速度;(3)十進(jìn)制數(shù)字串的引入,在數(shù)字串長(zhǎng)度不變的情況下,計(jì)算精度可以大為提高。
例如,用七位二進(jìn)制數(shù)字串來(lái)表示(-10,10)之間的數(shù)值,則精度最高為:儲(chǔ)層特征研究與預(yù)測(cè)用同樣長(zhǎng)度的十進(jìn)制數(shù)字串來(lái)表示(-10,10)之間的數(shù)值,去掉符號(hào)位和小數(shù)點(diǎn)所占用的一位,余下的四位表示小數(shù)值,則精度最高可以達(dá)到0.0001。
4.3.1.3 修改雜交算子由于編碼方式的改變,雜交算子可以設(shè)計(jì)為具有數(shù)值特點(diǎn)的向量的線性組合。
通常表示為如下形式:若有兩個(gè)個(gè)體Sa、Sb雜交,則產(chǎn)生的個(gè)體為儲(chǔ)層特征研究與預(yù)測(cè)其中u的取值在(0,1),也可根據(jù)情況適當(dāng)縮小取值范圍。
當(dāng)u取常數(shù)時(shí),雜交算子即為一致雜交,當(dāng)u隨代數(shù)變化時(shí),雜交算子則為非一致雜交。在遺傳算法中,隨著迭代次數(shù)的增加,個(gè)體的平均性能逐步提高,個(gè)體間的差異縮小。
為了防止個(gè)體趨向一致,影響算法的收斂性能,本文對(duì)u作了如下改變,令儲(chǔ)層特征研究與預(yù)測(cè)其中t為當(dāng)前代數(shù),T為預(yù)置最大代數(shù),隨著代數(shù)的增加,u從1到0變化,完成雜交的漸變過(guò)程。
4.3.1.4 修改變異算子設(shè)個(gè)體x=(v1,v2,…,vn),則每個(gè)分量以一定概率進(jìn)行變異,一次變異后的結(jié)果為(v1,…,,…,vn),1<=K<=n,的值按下面的隨機(jī)方式?jīng)Q定:儲(chǔ)層特征研究與預(yù)測(cè)式中:LB,UB為第K個(gè)變量的左、右鄰居,函數(shù)Δ(t,y)返回(0,y)上的一個(gè)值,并使這個(gè)值隨著代數(shù)t的增大而接近于0,這樣選取的函數(shù)允許這個(gè)算子在算法的開(kāi)始階段一致搜索整個(gè)空間,而在算法的后階段進(jìn)行局部搜索。
儲(chǔ)層特征研究與預(yù)測(cè)式中:r為[0,1]上的隨機(jī)數(shù),T為預(yù)置的最大代數(shù),t為當(dāng)前代數(shù),b是決定非一致程度的參數(shù),這里取為0.5。
4.3.1.5 成熟前收斂問(wèn)題成熟前收斂是指GA不能再產(chǎn)生性能超過(guò)父代的后代,盡管尚未達(dá)到全局最優(yōu)解,主要表現(xiàn)形式是連續(xù)數(shù)代或數(shù)十代適應(yīng)值不發(fā)生變化。
它與其他方法中的局部極值問(wèn)題很相似,但又不同,因?yàn)樗⒉灰欢ǔ霈F(xiàn)在局部極小點(diǎn)。目前解決這一問(wèn)題的方法主要有:重新啟動(dòng)法、動(dòng)態(tài)參數(shù)編碼法、混合法等。
為了便于程序表現(xiàn),我們引進(jìn)了一個(gè)動(dòng)態(tài)記憶窗口W,W用來(lái)記錄從當(dāng)前代開(kāi)始最優(yōu)目標(biāo)值保持連續(xù)不變的代數(shù)。當(dāng)W達(dá)到某個(gè)給定的值時(shí),就認(rèn)為出現(xiàn)了成熟前收斂,這時(shí)就令雜交算子和變異算子突然增大,實(shí)現(xiàn)基因的重組。
當(dāng)然用這種方法來(lái)判別收斂問(wèn)題是不嚴(yán)格的,對(duì)一個(gè)算法收斂性能的評(píng)價(jià)主要應(yīng)體現(xiàn)在時(shí)間復(fù)雜性和空間復(fù)雜性上。
對(duì)于像GA這樣帶有隨機(jī)搜索性質(zhì)的具體方法,理論上說(shuō),只有當(dāng)隨機(jī)數(shù)字完全取盡,目標(biāo)值仍未改變才可認(rèn)為是成熟前收斂。但在實(shí)際中是不可能這樣做的。
因此可根據(jù)隨機(jī)數(shù)的總個(gè)數(shù),每次計(jì)算出最多取多少個(gè)隨機(jī)參數(shù),來(lái)大致估算所需的次數(shù),這個(gè)次數(shù)就可認(rèn)為是動(dòng)態(tài)記憶機(jī)制W。4.3.2 遺傳BP網(wǎng)絡(luò)結(jié)構(gòu)遺傳算法一般可以通過(guò)兩種方式應(yīng)用到神經(jīng)網(wǎng)絡(luò)中。
一種方式是利用遺傳算法訓(xùn)練已知結(jié)構(gòu)的網(wǎng)絡(luò),優(yōu)化網(wǎng)絡(luò)的連接權(quán);另一種方式是利用遺傳算法尋找網(wǎng)絡(luò)的規(guī)模、結(jié)構(gòu)和學(xué)習(xí)參數(shù)。
目前這種方法在理論上還不完全成熟,尋優(yōu)機(jī)理、學(xué)習(xí)效率等有待進(jìn)一步研究,離實(shí)際應(yīng)用還有一定的距離。對(duì)多層前饋神經(jīng)網(wǎng)絡(luò),目前用得最多的學(xué)習(xí)算法是BP算法。
然而由于BP本身固有的學(xué)習(xí)機(jī)理的限制,從根本上改進(jìn)BP算法是很困難的。
BP的學(xué)習(xí)過(guò)程實(shí)際上是連接權(quán)的重組優(yōu)化過(guò)程,因此在保持網(wǎng)絡(luò)結(jié)構(gòu)的前提下,尋找一種能使連接權(quán)達(dá)到最優(yōu)組合的學(xué)習(xí)方法,具有一定的實(shí)際意義。
利用GA的優(yōu)點(diǎn)來(lái)克服BP算法收斂慢和易局部收斂的缺陷,同時(shí)與BP算法的結(jié)合,也解決了單獨(dú)利用GA往往只能在短時(shí)間內(nèi)尋找到接近最優(yōu)解的近優(yōu)解這一問(wèn)題,引入BP算法的梯度信息將會(huì)避免這種現(xiàn)象。
GA與BP算法可以有多種不同的組合方法:先BP后GA:先用BP培訓(xùn)一個(gè)預(yù)先選定結(jié)構(gòu)的ANN(人工神經(jīng)網(wǎng)絡(luò))直到平均誤差不再有意義地減少時(shí)為止,然后在此基礎(chǔ)上再用GA進(jìn)行若干代的優(yōu)化。
重復(fù)進(jìn)行這樣的搜索,直到誤差范圍達(dá)到滿意的要求或者發(fā)現(xiàn)搜索不收斂為止。這種組合方法的基本思想是先用BP確定使誤差函數(shù)取極小值的參數(shù)組合在參數(shù)空間的位置,再利用GA擺脫掉可能的局部極小。
應(yīng)用這種組合必須事先選定ANN的結(jié)構(gòu)。即只能用它確定ANN的連接權(quán)重。顯然,如果事先選擇的ANN結(jié)構(gòu)不合理或有關(guān)的參數(shù)(如學(xué)習(xí)率等)不合適,可能會(huì)導(dǎo)致搜索不收斂。
先GA后BP:先用GA反復(fù)優(yōu)化描述ANN模型的參數(shù)組合,直到適應(yīng)函數(shù)的平均不再有意義地增加為止。在此基礎(chǔ)上再用 BP算法對(duì)它們進(jìn)行優(yōu)化。
這種組合方法的基本思想是先用GA粗選ANN模型,再用 BP算法精細(xì)與優(yōu)化。
這種組合方法的優(yōu)點(diǎn)是通用性好,既可像前一組合方法那樣用來(lái)優(yōu)選指定結(jié)構(gòu)下的部分參數(shù),也可用來(lái)優(yōu)選其他的參數(shù),例如 ANN 的結(jié)構(gòu)、學(xué)習(xí)率等,甚至還可用于優(yōu)選它們的組合。
圖4-4 GABP結(jié)構(gòu)圖上面兩種組合GA與 BP的方法是比較基本的兩種,以它們?yōu)榛A(chǔ)可以衍生出多種具體的實(shí)現(xiàn)方案。
但由于 BP 算法本身也有許多參數(shù)需要選定,而且選擇方法也無(wú)規(guī)則可循,因而組合 GA 與BP在一定程度上也使待解決的問(wèn)題更加復(fù)雜化。
為此,這里提出了一種改進(jìn)的GABP方法,即利用 BP網(wǎng)絡(luò)的非線性分類能力和網(wǎng)絡(luò)結(jié)構(gòu)來(lái)設(shè)計(jì)分類器,將遺傳學(xué)習(xí)的結(jié)果直接送入網(wǎng)絡(luò),不再經(jīng)過(guò)BP優(yōu)化,通過(guò)網(wǎng)絡(luò)結(jié)構(gòu)輸出結(jié)果。
這種改進(jìn)既體現(xiàn)了系統(tǒng)的非線性,與前面的處理方法相銜接,又通過(guò)GA的學(xué)習(xí)優(yōu)化了權(quán)值,提高了運(yùn)算速度。該網(wǎng)絡(luò)為一個(gè)三層 BP 網(wǎng)絡(luò),結(jié)構(gòu)如圖4-4所示。
4.3.3 遺傳BP計(jì)算過(guò)程遺傳BP算法的具體步驟:(1)隨機(jī)產(chǎn)生N組(-1,1)區(qū)間內(nèi)取值的初始網(wǎng)絡(luò)權(quán)值。
(2)用BP算法對(duì)這N組始值分別進(jìn)行訓(xùn)練,若這N組權(quán)值中至少已有一組滿足精度要求,則算法結(jié)束;否則轉(zhuǎn)入步驟(3)。
(3)分別依據(jù)經(jīng)過(guò)訓(xùn)練的這N組較好的權(quán)值所對(duì)應(yīng)的上下限確定取值區(qū)間,在區(qū)間內(nèi)再隨機(jī)生產(chǎn)成N組新的權(quán)限,連同經(jīng)過(guò)訓(xùn)練的N組權(quán)值在一起,構(gòu)成一個(gè)完整的基因群體,共2*N組權(quán)值。
(4)從這2*N組權(quán)值進(jìn)行選擇、交叉、變異等遺傳操作。(5)從經(jīng)過(guò)遺傳操作的這2*N組權(quán)值中選出N組較好的,回復(fù)到步驟(2)。圖4-5 改進(jìn)的 GABP計(jì)算流程圖GABP的計(jì)算過(guò)程圖如圖4-5所示。
遺傳算法為什么可以優(yōu)化bp神經(jīng)網(wǎng)絡(luò)?
粒子群算法,模擬退火算法,遺傳算法,神經(jīng)網(wǎng)絡(luò)有關(guān)聯(lián)嗎?
hopfield神經(jīng)網(wǎng)絡(luò)和遺傳算法的不同點(diǎn)
兩者不同的地方非常多吖,或者說(shuō),兩者根本就沒(méi)有多少相同的。hopfield網(wǎng)絡(luò),基本上是設(shè)置了一個(gè)機(jī)制,使每次能量都下跌。
而遺傳算法,則非常的不同,是種群搜索的機(jī)制,先初始化一堆的解,然后每次按概述讓優(yōu)秀解進(jìn)入下一代(注意到,有可能有不優(yōu)秀的也可以進(jìn)入,而hopfield是每一代能量都會(huì)下跌),下一代再通過(guò)交叉和變異等機(jī)制,產(chǎn)生新的一代。
由于每次競(jìng)選下一代都會(huì)讓優(yōu)秀的更大概率通過(guò),所以按概率,每一代都會(huì)比上一代更優(yōu)秀 ,就這樣,最后進(jìn)化到中夠優(yōu)秀的一代。 兩者同是通過(guò)數(shù)次跌代,最后趨于穩(wěn)定。
但兩者不同,遺傳算法是每一代是一個(gè)種群,而hopfield是一個(gè)個(gè)體。遺傳算法每一代允許更差的情況,有助于跳出局部最成。
而hopfield每次能量都是下跌的,有貪婪算法的味道 ,一般不能跳出局部最優(yōu)。這樣。《神經(jīng)網(wǎng)絡(luò)之家》
?
總結(jié)
以上是生活随笔為你收集整理的人工神经网络与遗传算法,神经网络和算法的关系的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 嵌入式硬件从接杜邦线起-杜邦头接线实操①
- 下一篇: Win11 22581.1安装错误0x8