国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開通VIP
人工智能算法:遺傳算法
程序員書屋2021-01-21 19:20:37

本書的前兩章從某種抽象意義上定義了演化算法。計分、選擇、種群、交叉和突變都是演化算法的重要特點(diǎn),但是我們尚未將所有這些特點(diǎn)整合到一個具體算法中。

遺傳算法是一種特殊的演化算法,但是在描述遺傳算法的文獻(xiàn)中,其定義各不相同。本書將遺傳算法定義為一種可以用交叉和突變算子優(yōu)化固定長度向量的演化算法。計分函數(shù)可以區(qū)分優(yōu)劣方案,以優(yōu)化該固定長度的向量。這個定義說明了遺傳算法的本質(zhì)。

此外,可以將可選特征添加到遺傳算法中,以增強(qiáng)其性能。例如物種形成、精英和其他選擇方法之類的技術(shù),有時可以改善遺傳算法的運(yùn)行效果。

3.1 離散問題的遺傳算法

與其他算法相似,針對連續(xù)學(xué)習(xí)和離散學(xué)習(xí),遺傳算法采用略有不同的方法。連續(xù)學(xué)習(xí)涉及計算數(shù)值,而離散學(xué)習(xí)涉及識別非數(shù)值。本節(jié)將展示如何將離散學(xué)習(xí)和連續(xù)學(xué)習(xí)應(yīng)用于以下兩個經(jīng)典的AI問題:

  • 旅行商問題;

  • 鳶尾花物種建模。

  • 對于旅行商問題,我們將展示如何將遺傳算法應(yīng)用于離散學(xué)習(xí)的組合問題,目標(biāo)是找到最佳的城市序列。同時,我們將擬合RBF神經(jīng)網(wǎng)絡(luò)的權(quán)重以識別鳶尾花種類,這將作為連續(xù)問題的遺傳算法示例,即對數(shù)字權(quán)重進(jìn)行調(diào)整。

    3.1.1 旅行商問題

    旅行商問題(Traveling Salesman Problem,TSP)涉及為旅行商確定最短路徑。旅行商必須訪問一定數(shù)量的城市,盡管他可以從任何城市開始和結(jié)束,但他只能訪問每個城市一次。TSP有多個變體,其中一些變體允許多次訪問每個城市,或?yàn)槊總€城市分配不同的值。本章中的TSP只是尋求一條盡可能短的路線,每個城市訪問一次。圖3-1展示了這里介紹的TSP和最短路徑。

    圖3-1 旅行商問題

    對于普通的迭代程序而言,找到最短的路徑似乎很容易。但是,隨著城市數(shù)量的增加,可能的組合數(shù)量也會急劇增加。如果問題有一個或兩個城市,則只能選擇一條路徑;如果包括3個城市,則可能的路徑將增加到6個。以下列表展示了路徑數(shù)量增長的速度:

    1個城市有1條路徑2個城市有2條路徑3個城市有6條路徑4個城市有24條路徑5個城市有120條路徑6個城市有720條路徑7個城市有5 040條路徑8個城市有40 320條路徑9個城市有362 880條路徑10個城市有3 628 800條路徑11個城市有39 916 800條路徑12個城市有479 001 600條路徑13個城市有6 227 020 800條路徑……50個城市有3.041 × 10?64條路徑

    在上表中,用于計算總路徑條數(shù)的公式是階乘。使用階乘運(yùn)算符!作用于城市數(shù)n。某個任意值n的階乘由n×(n ? 1)×(n ? 2)×…×3× 2×1給出。當(dāng)程序必須執(zhí)行蠻力搜索時,這些值會變得非常大。TSP是“非確定性多項(xiàng)式時間”(non-deterministic polynomialtime,NP)難題的一個例子?!癗P困難”(NP-hard)被非正式地定義為“一系列不能用暴力搜索法求解的問題”。當(dāng)超過10個城市時,TSP滿足這個定義。NP困難的正式定義可以在Computers and Intractability: A Guide to the Theory of NP-Completeness [1]一書中找到。

    動態(tài)編程是解決TSP的另一種常用方法,如圖3-2的漫畫所示。

    盡管本書沒有全面討論動態(tài)編程,但了解其基本功能還是很有價值的。動態(tài)編程將TSP之類的大問題分解為較小的問題,這項(xiàng)工作可以被許多較小的程序復(fù)用,從而減少蠻力解所需的迭代次數(shù)。

    圖3-2 解決TSP的方法(來自xkcd網(wǎng)站)

    與蠻力解和動態(tài)編程不同,遺傳算法不能保證找到最優(yōu)解。盡管它將找到一個很好的解,但分?jǐn)?shù)可能不是最好的。在3.1.2節(jié)中討論的示例程序,將展示遺傳算法如何在短短幾分鐘內(nèi)為50個城市的TSP產(chǎn)生可接受的解 [2]。

    3.1.2 為旅行商問題設(shè)計遺傳算法

    TSP是最著名的計算機(jī)科學(xué)問題之一。由于傳統(tǒng)的迭代算法通常無法解決NP困難問題,因此程序員必須使用遺傳算法來生成潛在解。因此,我們將研究如何將遺傳算法應(yīng)用于TSP。

    離散遺傳算法決定了你要使用的交叉和突變算子的類型。由于離散問題是分類問題,因此你無須處理數(shù)值。所以,你可能訪問的城市就是TSP中的分類信息。按照訪問順序,城市列表是每個解的基因組。下面展示了如何表達(dá)TSP基因組:

    [洛杉磯, 芝加哥, 紐約]

    你的初始種群將是這些城市的隨機(jī)排列。例如,初始隨機(jī)種群可能類似于以下列表:

    [洛杉磯, 芝加哥, 紐約] [芝加哥, 洛杉磯, 紐約] [紐約, 洛杉磯, 芝加哥]

    你可以計算在每條路徑上行駛的英里(1英里=1 609.344米)數(shù),從而為上述城市創(chuàng)建一個計分函數(shù)??紤]第一個種群成員。根據(jù)Google Maps的駕駛導(dǎo)航,洛杉磯至芝加哥為2 016英里,芝加哥至紐約為790英里。因此,第一個種群成員覆蓋的整個距離為2 806英里。距離是我們要最小化的分?jǐn)?shù)。以上3個種群成員及其分?jǐn)?shù)顯示如下。

    [洛杉磯, 芝加哥, 紐約] -> 分?jǐn)?shù): 2 016   790 = 2 806[芝加哥, 洛杉磯, 紐約] -> 分?jǐn)?shù): 2 016   2 776 = 4 792 [紐約, 洛杉磯, 芝加哥] -> 分?jǐn)?shù): 2 776   2 016 = 4 792

    如你所見,最后兩條路徑的分?jǐn)?shù)相同,因?yàn)槁眯猩炭梢詮娜魏纬鞘虚_始,所以最后兩條路徑產(chǎn)生相同的距離。旅行商問題的某些變體可以固定起點(diǎn)和終點(diǎn)城市。作為旅行商的家鄉(xiāng),起點(diǎn)和終點(diǎn)是相同的。其他變體讓旅行商可以多次訪問同一座城市。簡而言之,如何定義旅行商問題的規(guī)則將決定如何實(shí)現(xiàn)計算機(jī)程序。

    考慮一下這種情況:旅行商總是從同一城市(即他的家鄉(xiāng))開始,并最終返回這里。在這個例子中,家鄉(xiāng)城市是密蘇里州的圣路易斯。此外,分?jǐn)?shù)將是兩個城市間最便宜機(jī)票的價格。由于基因組仍將由洛杉磯、芝加哥和紐約的排列組成,因此圣路易斯沒有必要出現(xiàn)在基因組的開始和結(jié)尾。這樣可以防止算法將圣路易斯更改為不是路徑的起點(diǎn)或終點(diǎn)。換言之,計分函數(shù)隱式地將圣路易斯作為路徑的起點(diǎn)和終點(diǎn),并對其進(jìn)行適當(dāng)?shù)奶幚?。檢查第一個種群成員,如下所示。

    [洛杉磯, 芝加哥, 紐約]

    該示例包括以下旅程。

    圣路易斯至洛杉磯 -> 費(fèi)用: $393洛杉磯至芝加哥 -> 費(fèi)用: $452芝加哥至紐約 -> 費(fèi)用: $248 紐約至圣路易斯 -> 費(fèi)用: $295 總計: $1388

    對問題的微小改動帶來了很大的復(fù)雜性。由于圣路易斯位于美國中部,旅行商無法再從東到西或從西到東走一條簡單的路。此外,機(jī)票價格不可互換,因?yàn)閺闹ゼ痈绲绞ヂ芬姿沟钠眱r不一定與從圣路易斯到芝加哥的票價相同。旅行當(dāng)天機(jī)票價格的變化使這個問題更加復(fù)雜。因此,基因組可以包括開始和結(jié)束日期。這樣,遺傳算法可以優(yōu)化出行計劃和城市順序。

    你還可以創(chuàng)建算法,以允許旅行商多次訪問同一座城市,但是,這個要求增大了計分函數(shù)的復(fù)雜性。如果你放寬要求,讓旅行商可以多次訪問同一座城市,則最佳分?jǐn)?shù)可能來自以下解:

    [芝加哥, 芝加哥, 芝加哥]

    上述解的分?jǐn)?shù)十分理想。該算法選擇了從圣路易斯到最便宜的目的地芝加哥的路徑。然后,算法再次選擇芝加哥作為第2和第3站。因?yàn)閺闹ゼ痈绲街ゼ痈绲臋C(jī)票是0美元,所以這次旅行的分?jǐn)?shù)非常好。顯然,在這種情況下,該算法沒有為程序員做任何額外的工作。因此,計分函數(shù)需要更復(fù)雜才能傳達(dá)真正最優(yōu)解的參數(shù)。也許有些城市更有價值,需要拜訪,而另一些則是可選的。設(shè)計計分函數(shù)對于遺傳算法編程至關(guān)重要。

    3.1.3 旅行商問題在遺傳算法中的應(yīng)用

    現(xiàn)在,我們將看到一個簡單的遺傳算法的示例,它用一條好路徑穿過一系列城市。50個城市隨機(jī)放置在256×256網(wǎng)格上。該程序使用了1 000條路徑的種群,來演化出穿過這些城市的最佳路徑。因?yàn)槌鞘辛斜硎欠诸愔?,所以TSP是一個離散的問題。在這個示例中,計分函數(shù)計算出一條城市路徑所覆蓋的總距離,這些城市中的任何一個都不會被訪問兩次。

    這些參數(shù)決定了最合適的突變和交叉算子的選擇。對于這個示例,改組突變算子是最佳選擇。如第2章所述,改組突變算子可與固定長度的分類數(shù)據(jù)配合使用。同樣,我們將使用無重復(fù)的拼接交叉算子。兩個算子都允許1 000條路徑的種群演化,并且無重復(fù)的交叉強(qiáng)制實(shí)現(xiàn)了我們的要求,即同一城市只被訪問一次。

    我對該程序進(jìn)行了數(shù)百次迭代,直到連續(xù)經(jīng)過50次迭代而沒有出現(xiàn)一次改善最佳路徑長度的情況。一次迭代即經(jīng)過了一個世代。程序的輸出在下面列出。

    Iteration: 1 , Best Path Length = 5308.0Iteration: 2 , Best Path Length = 5209.0Iteration: 3 , Best Path Length = 5209.0Iteration: 4 , Best Path Length = 5209.0Iteration: 5 , Best Path Length = 5209.0Iteration: 6 , Best Path Length = 5163.0Iteration: 7 , Best Path Length = 5163.0Iteration: 8 , Best Path Length = 5163.0Iteration: 9 , Best Path Length = 5163.0Iteration: 10 , Best Path Length = 5163.0...Iteration: 260 , Best Path Length = 4449.0Iteration: 261 , Best Path Length = 4449.0Iteration: 262 , Best Path Length = 4449.0Iteration: 263 , Best Path Length = 4449.0Iteration: 264 , Best Path Length = 4449.0Iteration: 265 , Best Path Length = 4449.0Good solution found:22>1>37>30>11>33>39>24>9>16>40>3>17>49>31>48>46>20>13>47>23>0>2>29>27>14>34>26>15>7>35>19>21>18>6>28>25>45>8>38>43>32>41>5>10>4>44>36>12>42

    如你所見,在程序確定一個解之前,發(fā)生了265次迭代。由于城市是隨機(jī)的,因此它們沒有實(shí)際名稱,而是將城市標(biāo)記為“1”“2”“3”等。上面顯示的最優(yōu)解從城市22開始,接下來是城市1,最終在城市42停止。你可以在以下網(wǎng)址查看在線的TSP實(shí)現(xiàn):

    http://www.heatonresearch.com/aifh/vol2/tsp_genetic.html

    3.2 連續(xù)問題的遺傳算法

    程序員還可以利用遺傳算法來演化連續(xù)的(即數(shù)值的)數(shù)據(jù)。在下面的示例中,我們將基于4個輸入測量值來預(yù)測鳶尾花的種類。因此,我們的遺傳算法將訓(xùn)練一個徑向基函數(shù)(Radial-Basis Function,RBF)網(wǎng)絡(luò)模型。

    模型是一種算法,它基于輸入向量進(jìn)行預(yù)測,這稱為預(yù)測建模。對于鳶尾花數(shù)據(jù)集,我們將為RBF網(wǎng)絡(luò)提供4個描述鳶尾花的測量值。RBF網(wǎng)絡(luò)將根據(jù)這4個測量結(jié)果預(yù)測鳶尾花種屬。它通過訓(xùn)練示例中的150朵花的數(shù)據(jù)來進(jìn)行學(xué)習(xí)預(yù)測。該模型可以預(yù)測訓(xùn)練集中未包含的新花的種屬。

    讓我們回顧一下如何訓(xùn)練模型。3個主要部分確定了遺傳算法如何訓(xùn)練任何模型:

  • 訓(xùn)練設(shè)置;

  • 超參數(shù);

  • 參數(shù)。

  • 訓(xùn)練設(shè)置是遺傳算法所獨(dú)有的,例如種群數(shù)量、精英數(shù)、交叉算法和突變算法。在本書的后文,我們將學(xué)習(xí)粒子群優(yōu)化(PSO)和蟻群優(yōu)化(ACO),它們是RBF網(wǎng)絡(luò)模型的訓(xùn)練算法。PSO和ACO的訓(xùn)練設(shè)置具有獨(dú)有的特征。程序員通常會建立訓(xùn)練參數(shù),因此,選擇最佳的參數(shù)可能需要反復(fù)試驗(yàn)。

    超參數(shù)定義模型的結(jié)構(gòu)??紤]圖3-3,該圖展示了RBF網(wǎng)絡(luò)的結(jié)構(gòu)。

    圖3-3 以鳶尾花數(shù)據(jù)集為輸入的RBF網(wǎng)絡(luò)的結(jié)構(gòu)

    在圖3-3中,第2列顯示的是3個具有凸起形狀曲線的框,它們是RBF,使RBF網(wǎng)絡(luò)能夠做出預(yù)測。這個任務(wù)所需的RBF網(wǎng)絡(luò)的數(shù)量是一個超參數(shù),程序員或計算機(jī)可以確定該超參數(shù)。盡管RBF數(shù)量不影響遺傳訓(xùn)練,但是如果你正在使用PSO和ACO進(jìn)行訓(xùn)練,你仍然需要設(shè)置RBF數(shù)量。不過,你要小心,如果將RBF數(shù)量設(shè)置得太低,則創(chuàng)建的模型會很簡單,以至于無法從信息中學(xué)習(xí);如果將RBF數(shù)量設(shè)置得太高,則創(chuàng)建的網(wǎng)絡(luò)會很復(fù)雜且難以訓(xùn)練,并可能導(dǎo)致過度擬合。這是我們不希望的情況,這時模型開始將數(shù)據(jù)存儲在數(shù)據(jù)集中,而不是學(xué)習(xí)更通用的解。第10章將介紹過度擬合及其避免方法。在本章中,我們將RBF數(shù)量設(shè)置為5,這對于鳶尾花數(shù)據(jù)集似乎效果很好。我通過試驗(yàn)確定了這個數(shù)字。

    計算機(jī)也可以確定超參數(shù),其中試錯法通常是找到超參數(shù)的方法。只需在1~10個RBF之間循環(huán),并讓計算機(jī)嘗試每種情況。一旦測試了全部10個RBF,程序就會選擇獲得最佳分?jǐn)?shù)的模型。該模型將告訴你RBF數(shù)量超參數(shù)的最佳設(shè)置。

    最后的組成部分是參數(shù)向量。在訓(xùn)練模型時,模型會調(diào)整參數(shù)向量。這方面與超參數(shù)有所不同,因?yàn)橐坏┯?xùn)練開始,模型就不會調(diào)整超參數(shù)。實(shí)際上,超參數(shù)定義了模型,無法更改。對參數(shù)向量進(jìn)行調(diào)整是一種訓(xùn)練算法(例如遺傳算法、PSO或ACO)教給模型針對給定輸入的正確響應(yīng)的方法。遺傳算法利用交叉和突變來調(diào)整參數(shù)向量。

    下面列出的輸出展示了使用遺傳算法針對鳶尾花數(shù)據(jù)集訓(xùn)練RBF網(wǎng)絡(luò)的進(jìn)度。如你所見,分?jǐn)?shù)在前10次迭代中并沒有提高。這些迭代中的每一次迭代代表一代潛在解。分?jǐn)?shù)代表錯誤分類的150朵鳶尾花的百分比,我們力求讓這個分?jǐn)?shù)最小。

    Iteration #1, Score = 0.1752302452792032, Species Count: 1Iteration #2, Score = 0.1752302452792032, Species Count: 1Iteration #3, Score = 0.1752302452792032, Species Count: 1Iteration #4, Score = 0.1752302452792032, Species Count: 1Iteration #5, Score = 0.1752302452792032, Species Count: 1Iteration #6, Score = 0.1752302452792032, Species Count: 1Iteration #7, Score = 0.1752302452792032, Species Count: 1Iteration #8, Score = 0.1752302452792032, Species Count: 1Iteration #9, Score = 0.1752302452792032, Species Count: 1Iteration #10, Score = 0.1752302452792032, Species Count: 1...Iteration #945, Score = 0.05289116605845716, Species Count: 1Iteration #946, Score = 0.05289116605845716, Species Count: 1Iteration #947, Score = 0.05289116605845716, Species Count: 1Iteration #948, Score = 0.051833695704776035, Species Count: 1Iteration #949, Score = 0.05050776383877834, Species Count: 1Iteration #950, Score = 0.04932340367757065, Species Count: 1Final score: 0.04932340367757065[- 0.55, 0.24, -0.86, -0.91] -> Iris-setosa, Ideal: Iris-setosa [-0.66, -0.16, -0.86, -0.91] -> Iris-setosa, Ideal: Iris-setosa[-0.77, 0. 0, -0.89, -0.91] -> Iris-setosa, Ideal: Iris-setosa...[0.22, -0.16, 0.42, 0.58] -> Iris-virginica, Ideal: Iris-virginica[0.05, 0.16, 0.49, 0.83] -> Iris-virginica, Ideal: Iris-virginica[-0.11, -0.16, 0.38, 0.41] -> Iris-virginica, Ideal: Iris-virginica

    在以上輸出中,你可能還看到了物種計數(shù)(species count)。由于我們目前不使用物種,因此它保持為1。第5章將介紹物種。

    3.3 遺傳算法的其他應(yīng)用

    鳶尾花數(shù)據(jù)集和旅行商問題是人工智能文獻(xiàn)中的常見例子。觀察各種算法如何解決相同的問題,可以有助于理解它們的差異,檢查新問題與遺傳算法相符合的方式同樣有價值。本節(jié)將說明如何讓各種問題適應(yīng)遺傳算法。

    盡管本書目前未實(shí)現(xiàn)這些應(yīng)用程序,但將來可能會包含它們。以下各小節(jié)的主要目的是演示遺傳算法在各種情況下的應(yīng)用。

    3.3.1 標(biāo)簽云

    標(biāo)簽云是一種方便的工具,可用于可視化文檔中的單詞頻率計數(shù)。實(shí)際上,一個小的標(biāo)簽云可以代表一個很長的文檔中的常用單詞,但是,標(biāo)簽云算法通常會從單詞數(shù)統(tǒng)計中刪除結(jié)構(gòu)化單詞(例如“the”)。圖3-4展示了根據(jù)《人工智能算法(卷1):基礎(chǔ)算法》英文版創(chuàng)建的標(biāo)簽云。

    圖3-4 卷1的標(biāo)簽云

    圖3-4所示的標(biāo)簽云展示了每個單詞出現(xiàn)的頻率。你可以輕松地看到,“algorithm”是卷1中最常見的單詞。

    要創(chuàng)建標(biāo)簽云,必須統(tǒng)計單詞數(shù)。下面展示了構(gòu)建圖3-4所示標(biāo)簽云的單詞計數(shù):

    341 algorithm239 training203 data201 output198 random192 algorithms169 number163 input...

    單詞計數(shù)提供每個單詞的出現(xiàn)頻率,并與其他單詞對比。標(biāo)簽云中的單詞互相交織,使得單詞之間的空白空間最小。在示例中,較小的單詞填充了“algorithm”的“h”和“m”下的空白。

    創(chuàng)建標(biāo)簽云的第一步是選擇一些單詞并確定它們的大小。上面的單詞計數(shù)說明了這個步驟。最有可能的是,你會在標(biāo)簽云中包含文檔中大約100個最常見的單詞。標(biāo)簽云中的確切字?jǐn)?shù)將根據(jù)顯示美觀度進(jìn)行調(diào)整。單詞在文本中出現(xiàn)的次數(shù)將決定單詞的大小。

    消除空白是遺傳算法的一項(xiàng)重要應(yīng)用。xy坐標(biāo)、方向指示共同代表了每個單詞。其中xy坐標(biāo)表明每個單詞在顯示屏上的位置,方向指示表明單詞是水平的還是垂直的。這3個數(shù)據(jù)項(xiàng)產(chǎn)生的向量長度等于標(biāo)簽云中單詞數(shù)量的3倍。如果顯示100個單詞,則向量的長度為300個元素。對于空白和重疊文本,基因組將接受罰分。標(biāo)簽云不應(yīng)該有重疊的文本。因此,你需要創(chuàng)建類似于以下內(nèi)容的計分函數(shù):

    [空白像素數(shù)] ([重疊像素數(shù)] × 100)

    遺傳算法應(yīng)設(shè)法最小化這個計分函數(shù)。如果文本重疊,則需要增加系數(shù)100。

    3.3.2 馬賽克藝術(shù)

    藝術(shù)生成是遺傳算法的另一個非常常見的例子。編寫計算機(jī)藝術(shù)的計分函數(shù)非常容易。你需要將源圖像與遺傳算法創(chuàng)建的圖像進(jìn)行比較;還要為遺傳算法提供一組工具,以便它可以生成圖像并顯示其模擬的創(chuàng)造力。

    人類畫家的工作方式基本相同。顯然,產(chǎn)生圖像的最簡單方法是用數(shù)碼相機(jī)照相,但是,畫家用自己的工具(畫筆和顏料)創(chuàng)造了藝術(shù)。對于遺傳算法,工具是編程語言的圖形命令,計分函數(shù)只是將原始圖像與遺傳算法產(chǎn)生的圖像進(jìn)行比較。例如,你可以限制遺傳算法,讓它僅用少數(shù)幾種顏色畫圓。僅使用程序中允許的元素,遺傳算法將通過演化,產(chǎn)生原始照片的最佳渲染效果。通過這種方式,它展示了模擬的創(chuàng)造力。

    用遺傳算法創(chuàng)建計算機(jī)藝術(shù)的一個例子是馬賽克,它是由較小圖像集合組成的較大圖像。主圖像包含一個圖像網(wǎng)格,較小的圖像將放置在每個網(wǎng)格單元中。圖3-5展示了一幅馬賽克。

    圖3-5 玄鳳鸚鵡馬賽克

    圖3-5描繪了由動物圖像生成的玄鳳鸚鵡馬賽克。玄鳳鸚鵡的圖像尺寸為2 048像素×2 048像素,每張尺寸為32像素×32像素的較小動物圖像的網(wǎng)格將構(gòu)成該馬賽克。將這些較小的動物圖像的網(wǎng)格覆蓋到較大的圖像上,則將形成64×64的網(wǎng)格。(圖3-5經(jīng)過裁剪,僅展示其中一部分。)選擇一組較小的動物圖像放入64×64的網(wǎng)格中,使得網(wǎng)格在整體上可以最佳地呈現(xiàn)出一只玄鳳鸚鵡的樣子。

    每個基因組都是固定長度的數(shù)組,長度等于64×64即4 096字節(jié)。使用計分函數(shù)比較生成的馬賽克圖像和原始圖像之間的差異。一旦得分降到最低,你將擁有與玄鳳鸚鵡非常相似的馬賽克。

    3.4 本章小結(jié)

    遺傳算法利用種群、計分、交叉和突變來解決實(shí)際的編程問題。遺傳算法是在第1章和第2章中學(xué)到的概念的具體實(shí)現(xiàn),這些概念與交叉和突變一起工作,可以為下一代提供更好的解。

    遺傳算法要求解以固定長度數(shù)組表示。這項(xiàng)要求似乎很有局限性,但是許多解都可以用這種方式表示。在本章中,我們還演示了旅行商問題和鳶尾花數(shù)據(jù)集。另外,我們討論了遺傳算法如何應(yīng)用于標(biāo)簽云和馬賽克藝術(shù)。

    為了超越定長數(shù)組,第4章將介紹如何演化實(shí)際的程序。實(shí)際上,遺傳編程可以將計算機(jī)程序表示為樹狀結(jié)構(gòu),以便為下一代創(chuàng)建更好的程序。

    本文摘自《人工智能算法 卷2 受大自然啟發(fā)的算》

    法是人工智能技術(shù)的核心,大自然是人工智能算法的重要靈感來源。本書介紹了受到基因、鳥類、螞蟻、細(xì)胞和樹影響的算法,這些算法為多種類型的人工智能場景提供了實(shí)際解決方法。全書共10章,涉及種群、交叉和突變、遺傳算法、物種形成、粒子群優(yōu)化、蟻群優(yōu)化、細(xì)胞自動機(jī)、人工生命和建模等問題。書中所有算法均配以具體的數(shù)值計算來進(jìn)行講解,每章都配有程序示例,讀者可以自行嘗試。

    本書適合人工智能入門讀者以及對人工智能算法感興趣的讀者閱讀參考。

本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊舉報。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
人工智能算法在圖像處理中的應(yīng)用
利用達(dá)爾文的理論學(xué)習(xí)遺傳算法
基于改進(jìn)Sobel算子和遺傳算法的圖像邊緣檢測
圖像增強(qiáng)處理技術(shù)----待續(xù)
請問小波分析法和遺傳算法之間是什么樣的關(guān)系?遺傳算法是求解小波分析函數(shù)的一種算法嗎?
非梯度優(yōu)化算法的原理、分類和應(yīng)用
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服