- 人工智能算法(卷2):受大自然啟發的算法
- (美)杰弗瑞·希頓
- 2405字
- 2021-01-25 17:48:44
1.1 理解種群
本章中“種群”一詞與Merriam-Webster詞典(2014)中的一種定義,即“居住在一個地方的一群特定種類的人或動物”較為類似。在本書中,種群是解決問題的一組潛在方法。這些潛在解屬于同一種類,因為它們解決相同的問題。有時,解種群中的成員將分為不同的物種,但是我仍將這些成員歸為同一種群。
種群也是統計研究中常用的術語。統計種群被定義為“從中抽取樣本進行統計測量的一組個人、物體或物品” [1]。在統計數據中,人們經常將種群細分為較小的、可管理的組,稱為樣本。通常,我們從種群中抽樣時會偏向得分較高的個體。在另一些時候,我們可能會進行純粹的隨機抽樣,從而為種群中的每個成員提供平等的獲選機會。
解種群也被視為統計種群。類似于統計學家通常會從種群中抽樣,演化算法也會從解種群中抽樣。抽樣通常涉及從潛在解種群中隨機選擇單個或多個個體,然后將這些樣本用于選擇。選擇抽樣將在后文討論。
1.1.1 初始種群
種群規模通常不會隨著演化算法的發展而改變。種群規模是一個硬性限制。例如,如果你指定500個人,那么總會保持500個人。如果有5個人出生,則必須有5個人死亡,以維持500個人的平衡。我們會創建一個初始種群,其計數等于該種群規模,構成初始種群的初始潛在解將被隨機生成。這些最初的隨機解可能不太好,但是,其中一些隨機解的得分會比較高。
程序中使用的算法類型會影響種群規模。種群成員可以是競爭的,也可以是合作的。合作種群通常以固定規模開始,并且永遠不會添加或刪除新成員。競爭種群總是會創造出后代,以維持這個固定種群的規模。這些后代也被稱為“迭代”,下一代的孩子僅由最合適的親本產生,一旦競爭種群的下一代達到這個最大的后代數量,就不會再有孩子出生了。
這些算法模仿自然,因為動物種群通常既有競爭性,又有合作性。例如,一群狼一起狩獵,而多個狼群相互競爭以爭奪稀缺資源。另外,在選擇頭狼的過程中將存在競爭。受大自然啟發的算法要么是競爭的,要么是合作的,兩者不能同時實現。在本書中,我們將從競爭種群開始,講解每種算法的示例。
1.1.2 種群成員之間的競爭
競爭種群的算法包括遺傳算法和遺傳編程。這些算法都會創建潛在的解,分數較高的解更有可能被選擇用于交配并提供下一代種群。除交配外,競爭種群的成員之間沒有直接合作。
競爭種群總是會包含一個或多個獲得最佳分數(比如打平)的解。還有一個可能的結果是,下一代不包含超過上一代最佳分數的新解。如果發生這種情況,最優解的分數將下降,從而使訓練倒退一步。這種結果通常是不希望產生的。
你可以通過“精英”來解決這一問題,精英是一種訓練設置,用于指定將多少個獲得最佳分數的解用于下一代。因為精英設置始終會保留最優解,所以它可以保證算法不會倒退到較差的分數??梢詫⑵湓O置為多個獲得最佳分數的解,而不只是單個解。精英不是防止種群的最佳分數在代際間倒退的唯一途徑。此外,“聯賽”也可以防止分數下降。聯賽選擇將在后文介紹。
1.1.3 種群成員之間的合作
AI中的種群并非都是競爭種群,AI中也存在合作種群。合作種群的算法包括粒子群優化(Particle Swarm Optimization,PSO)和蟻群優化(Ant Colony Optimization,ACO),在這兩種算法中,各個潛在的解相互學習。在它們尋求指定問題的良好解時,信息在個體之間共享。
合作種群總會跟蹤其成員已經找到的最優解,但算法不會貪心,而會在尋求最優解時接受一個較差的解。由于這個特性,跟蹤至今為止找到的最優解非常重要。保留這些記錄可以使你恢復到最優解,即使種群成員已轉向較差的解。
與競爭算法一樣,合作算法也是迭代的。但是,一次合作迭代不會用新一代取代先前的種群。合作算法的迭代僅表示對每個潛在解的一次完整遍歷,評估解的有效性并獲得了分數。在每個迭代周期結束時,所有潛在的解都會進行協作并調整它們的解參數,使得分數最大化。
1.1.4 表型和基因型
表型和基因型是兩個來自生物學的術語,它們對某些受大自然啟發的算法很重要?;蛐褪沁z傳信息,生物體根據它來生長。表型是由基因型產生的實際生物組織。同卵雙胞胎就是理解表型和基因型之間差異的一個很好的例子。同卵雙胞胎擁有相同的基因型,但是,雙胞胎會成長為不同的人,具有稍顯不同的身體特征。在AI中,相同的基因型會成長為兩個略有不同的表型。
然而,大多數演化算法不區分表型和基因型。潛在解的基因型和實際解的表型之間沒有區別。因此,我將遵循該指導原則,不在我討論的演化算法中區分表型和基因型。
HyperNEAT神經網絡是一種可以區分表型和基因型的受大自然啟發的算法的例子 [2],它不是本書的主題,而是本系列第3卷計劃的主題。
1.1.5 島嶼種群
地理分離會對生物自然種群的進化產生重大影響。塔斯馬尼亞島、加拉帕戈斯群島和馬達加斯加島等島嶼的生態特征都與距其最近的大陸完全不同。此外,島上和島外種群之間的互動可能會隨著時間而變化。島嶼可能曾經是大陸的一部分,陸橋可能存在又消失。這些事件控制著個體之間的分離程度。
島嶼的概念也可以在受大自然啟發的算法中使用,以使多個種群在很大程度上彼此獨立,就像真實的島嶼將種群分開一樣。算法還可以選擇允許島之間的偶然交互。這種間歇性相互作用類似于陸橋或其他允許生物在生態系統之間傳播的地質事件。
島嶼概念最常用于競爭種群。將潛在解分為多個種群,可以使新的創新不斷發展,而不會受到現有種群的威脅。島嶼之間偶爾可以進行互動,并允許其他島嶼的外來解引入新的想法。
多元種群概念也可以應用于合作種群,這類似于公司創建多個團隊來解決同一問題。這些團隊有時可能會就某個想法進行協作,但它們在很大程度上是自主的。例如,可以認為施樂帕克研究中心是與施樂公司分開的孤島。盡管帕克研究中心可能會不時與施樂公司合作,但它們的分離使它們能夠為計算問題創建一些非常獨特的解。
總的來說,多元種群的概念具有一些非常實際的用處,它與分布式計算非常兼容。所有分布式計算問題中最困難的方面之一,就是組成計算集群的各個計算機之間的同步問題。由于不同的種群之間固有地彼此獨立,因此該算法不需要同步,這使得該任務容易在并行系統上實現。