受查爾斯·達爾文的自然進化論的啟發,遺傳算法被例證為是解決搜索、優化和學習問題的最引人關注的算法之一,特別是當傳統算法無法在合理的時間范圍內提供足夠好的結果時。
本書將帶您踏上掌握這一極其強大但簡便的方法的旅程,并將其應用到各種各樣的任務中,最終通向人工智能應用。
通過本書可以了解多種遺傳算法的工作原理及應用。此外,本書還結合當前流行的Python編程語言,提供遺傳算法在各個領域的應用實踐。
本書讀者對象
本書旨在幫助軟件開發人員、數據科學家和人工智能愛好者利用遺傳算法解決其工程應用中相關學習、搜索和優化問題,以及提升現有智能應用程序的性能和準確性。
本書同樣適用于每一個承擔著實際工程任務的人,用于解決傳統算法難以處理的,或無法在限定時間內提供高質量結果的難題。本書展示了遺傳算法如何作為一種強大而簡便的方法來解決各種復雜問題。
本書包含內容
第1章介紹了遺傳算法及其基本理論和基本工作原理,探索遺傳算法與傳統方法之間的差異,并了解一些遺傳算法的最佳應用場景。
第2章理解遺傳算法的關鍵要素,深入研究了遺傳算法的關鍵組成部分和實現細節。在概述了基本的遺傳算法流程之后,您將了解它們的不同要素以及每個要素的各種實現。
第3章介紹強大而靈活的進化計算框架DEAP,它能夠用遺傳算法解決現實生活中的問題。通過編寫Python程序解決OneMax問題(即遺傳算法領域的Hello World問題),了解如何使用DEAP框架。
第4章介紹了組合優化問題,如背包問題、旅行商問題和車輛路徑問題,以及如何使用遺傳算法和DEAP框架編寫Python程序來解決這些問題。
第5章介紹了約束滿足問題,如N皇后問題、護士排班問題、圖著色問題。同時闡述如何使用遺傳算法和DEAP框架編寫Python程序解決這些問題。
第6章介紹了連續優化問題以及如何用遺傳算法解決這些問題。本章使用的示例包括Eggholder函數、Himmelblau函數和Simionescu函數的優化,同時探討小生境、共享和約束處理的概念。
第7章運用特征選擇改善機器學習模型,主要討論有監督機器學習模型,并解釋如何使用遺傳算法從所提供的輸入數據中選擇最佳特征子集來提高這些模型的性能。
第8章為機器學習模型的超參數優化。解釋了遺傳算法如何通過調整模型的超參數來提高有監督機器學習模型的性能,可以采用基于遺傳算法的網格搜索方法,也可以直接采用遺傳搜索。
第9章是深度學習網絡的結構優化,重點研究人工神經網絡,并探索遺傳算法如何通過優化神經網絡模型的網絡架構來提高其性能,以及如何將網絡體系結構優化與超參數調整結合起來。
第10章為基于遺傳算法的強化學習,并解釋了遺傳算法如何應用于強化學習任務,同時使用OpenAI Gym工具包解決了MountainCar和CartPole兩個基準環境。
第11章為遺傳圖像重建。通過遺傳算法,使用一組半透明的多邊形對一幅名畫進行重建實驗。在此過程中,可以了解有關圖像處理和相關Python庫的實用經驗。
第12章為其他進化和生物啟發計算方法。旨在開闊視野,介紹其他啟發于生物智能的問題解決方法,并基于DEAP的Python程序對其中兩種方法(遺傳編程和粒子群優化)進行演示。
如何充分學習本書
為了充分掌握本書,應具備一定的Python語言編程基礎以及數學和計算機科學的基礎知識。因為本書已經涵蓋了機器學習必要概念的簡單介紹,對這些基本概念有一定的了解將有助于理解本書。
要運行本書附帶的編程示例,建議安裝Python 3.7版本或更高版本。書中提到的一些Python模塊包,推薦使用PyCharm或Visual Studio Code等Python 集成開發環境。
資源分享
本書提供了全部示例代碼文件,讀者可以掃描二維碼獲取。
示例代碼
慣例
本書中使用了許多文本慣例。
CodeInText: 表示文本中的代碼段、數據庫表名、文件夾名、文件名、文件擴展名、路徑名、虛擬URL、用戶輸入的字符和Twitter賬戶等。下面是一個例子: 用類的__init__()方法來創建數據集。
代碼設置如下:
self.X,self.y = datasets.make_friedman1(n_samples=self.numSamples,
n_features=self.numFeatures,
noise=self.NOISE,
random_state=self.randomSeed)
當提醒注意代碼塊的特定部分時,相關行或項目將設置為粗體:
self.regressor=GradientBoostingRegressor(random_state=
self.randomSeed)
命令行的輸入或輸出寫成如下樣式:
pip install deap
粗體: 表示一個新的術語、一個重要的單詞或屏幕上顯示的單詞。例如,菜單或對話框中的單詞(從管理面板中選擇系統信息)。
評論
請留下評論,不吝賜教。如果您閱讀和使用了本書,請在購買它的網站上留下評論,以便其他潛在的讀者可以看到并基于您反饋的客觀觀點做出購買決定,同時也幫助我們了解您對產品的看法,本書的作者也可以獲知您的反饋。非常感謝您!