進(jìn)化算法簡單介紹
進(jìn)化計算(Evolution Computing)
進(jìn)化計算是采用簡單的編碼技術(shù)來表示各種復(fù)雜的結(jié)構(gòu),并通過簡單的遺傳操作和優(yōu)勝劣汰的自然選擇來指導(dǎo)學(xué)習(xí)和確定搜索的方向。由于它采用種群(即一組表示)的方式組織搜索,這使得它可以同時搜索解空間內(nèi)的多個區(qū)域,特別適合大規(guī)模并行計算。
進(jìn)化計算具有自組織、自適應(yīng)、自學(xué)習(xí)的特點,并且不受其搜索空間限制性條件(如可微、單峰等)的約束,不需要其他輔助信息(如導(dǎo)數(shù))。這使得進(jìn)化計算不僅能獲得較高的效率,而且操作簡單、通用性強(qiáng)。
進(jìn)化計算的發(fā)展過程
進(jìn)化計算在20世紀(jì)六七十年代并未受到普遍的重視。其主要原因,
一是因為這些方法本身還不夠成熟;
二是由于這些方法需要較大的計算量,而當(dāng)時的計算機(jī)還不夠普及且速度較慢,這樣便限制了它們的應(yīng)用;
三是當(dāng)時基于符號處理的人工智能方法正處于其頂峰時期,使得人們難以認(rèn)識到其他方法的有效性及適應(yīng)性。
到了20世紀(jì)80年代,人工智能方法的局限性越來越突出,并且隨著計算機(jī)速度的提高和并行計算機(jī)的普及,已使得進(jìn)化計算對機(jī)器速度的要求不再是制約其發(fā)展的因素。
進(jìn)化計算的不斷發(fā)展及其在一些應(yīng)用領(lǐng)域內(nèi)取得的成功,已表現(xiàn)出了良好的應(yīng)用前景。由于進(jìn)化計算在機(jī)器學(xué)習(xí)、過程控制、經(jīng)濟(jì)預(yù)測、工程優(yōu)化等領(lǐng)域取得的成功,引起了各領(lǐng)域科學(xué)家們的極大興趣,自20世紀(jì)80年代中期以來,世界上許多國家都掀起了進(jìn)化計算的研究熱潮。
目前,有數(shù)種以進(jìn)化計算為主題的國際會議在世界各地定期召開,并已出版了多種有關(guān)進(jìn)化計算的雜志。可以預(yù)料,隨著進(jìn)化計算理論研究的不斷深入和應(yīng)用領(lǐng)域的不斷拓廣,進(jìn)化計算必將取得更大的成功。
進(jìn)化計算的主要分支
進(jìn)化計算的三大分支包括:遺傳算法(Genetic Algorithm,簡稱GA)、進(jìn)化規(guī)劃(Evolutionary Programming,簡稱EP)和進(jìn)化策略(Evolution Strategies ,簡稱ES)。
這三個分支在算法實現(xiàn)方面具有一些細(xì)微的差別,但它們具有一個共同的特點,即都是借助生物進(jìn)化的思想和原理來解決實際問題。下面我們分別就這三個分支作以簡單的介紹。
遺傳算法
遺傳算法是一類通過模擬生物界自然選擇和自然遺傳機(jī)制的隨機(jī)化搜索算法,由美國Holand J教授于1975年首次提出。它是利用某種編碼技術(shù)作用于稱為染色體的二進(jìn)制數(shù)中,其基本思想是模擬由這些串組成的種群的進(jìn)化過程,通過有組織的、然而是隨機(jī)的信息交換來重新組合那些適應(yīng)性好的串。
遺傳算法對求解問題的本身一無所知,它所需要的僅是對算法所產(chǎn)生的每個染色體進(jìn)行評價,并根據(jù)適應(yīng)性來選擇染色體,使適應(yīng)性好的染色體比適應(yīng)性差的染色體有更多的繁殖機(jī)會。
遺傳算法尤其適用于處理傳統(tǒng)搜索方法難于解決的復(fù)雜的非線性問題,可廣泛用于組合優(yōu)化、機(jī)器學(xué)習(xí)、自適應(yīng)控制、規(guī)劃設(shè)計和人工生命等領(lǐng)域,是21世紀(jì)有關(guān)智能計算中的關(guān)鍵技術(shù)之一。
進(jìn)化策略
1964年,由德國柏林工業(yè)大學(xué)的Rechenberg I等人提出。在求解流體動力學(xué)柔性彎曲管的形狀優(yōu)化問題時,用傳統(tǒng)的方法很難在優(yōu)化設(shè)計中描述物體形狀的參數(shù),然而利用生物變異的思想來隨機(jī)地改變參數(shù)值并獲得了較好的結(jié)果。隨后,他們便對這種方法進(jìn)行了深入的研究和發(fā)展,形成了進(jìn)化計算的另一個分支——進(jìn)化策略。進(jìn)化策略與遺傳算法的不同之處在于:進(jìn)化策略直接在解空間上進(jìn)行操作,強(qiáng)調(diào)進(jìn)化過程中從父體到后代行為的自適應(yīng)性和多樣性,強(qiáng)調(diào)進(jìn)化過程中搜索步長的自適應(yīng)性調(diào)節(jié);而遺傳算法是將原問題的解空間映射到位申空間之中,然后再施行遺傳操作,它強(qiáng)調(diào)個體基因結(jié)構(gòu)的變化對其適應(yīng)度的影響。進(jìn)化策略主要用于求解數(shù)值優(yōu)化問題。
進(jìn)化規(guī)劃
進(jìn)化規(guī)劃的方法最初是由美國人Fogel L J等人在20世紀(jì)60年代提出的。他們在人工智能的研究中發(fā)現(xiàn),智能行為要具有能預(yù)測其所處環(huán)境的狀態(tài),并按照給定的目標(biāo)做出適當(dāng)?shù)捻憫?yīng)的能力。在研究中,他們將模擬環(huán)境描述成是由有限字符集中符號組成的序列。
進(jìn)化計算的主要特點
進(jìn)化算法與傳統(tǒng)的算法具有很多不同之處,但其最主要的特點體現(xiàn)在下述兩個方面:
智能性
進(jìn)化計算的智能性包括自組織、自適應(yīng)和自學(xué)習(xí)性等。
應(yīng)用進(jìn)化計算求解問題時,在確定了編碼方案、適應(yīng)值函數(shù)及遺傳算子以后,算法將根據(jù)“適者生存、不適應(yīng)者淘汰”的策略,利用進(jìn)化過程中獲得的信息自行組織搜索,從而不斷地向最佳解方向逼近。
自然選擇消除了傳統(tǒng)算法設(shè)計過程中的一個最大障礙:即需要事先描述問題的全部特點,并說明針對問題的不同特點算法應(yīng)采取的措施。于是,利用進(jìn)化計算的方法可以解決那些結(jié)構(gòu)尚無人能理解的復(fù)雜問題。
本質(zhì)并行性
進(jìn)化計算的本質(zhì)并行性表現(xiàn)在兩個方面:
一是進(jìn)化計算是內(nèi)在并行的,即進(jìn)化計算本身非常適合大規(guī)模并行。
二是進(jìn)化計算的內(nèi)含并行性,由于進(jìn)化計算采用種群的方式組織搜索,從而它可以同時搜索解空間內(nèi)的多個區(qū)域,并相互交流信息,這種搜索方式使得進(jìn)化計算能以較少的計算獲得較大的收益。
神經(jīng)網(wǎng)絡(luò)原始的啟發(fā)
深度學(xué)習(xí)中為什么不同的特征信息可以直接相加
公眾號粉絲禮包: 后臺關(guān)鍵詞:python大禮包 禮包內(nèi)容:Matlab,數(shù)據(jù)分析與機(jī)器學(xué)習(xí)實戰(zhàn),數(shù)據(jù)科學(xué)概率基礎(chǔ),數(shù)學(xué)基礎(chǔ),算法講解視頻 整理不易,還請點擊在看與分享,謝謝。 星標(biāo)??公眾號,可以更快接收文章!
每日一得“在看”

