進化深度學習 Evolutionary Deep Learning: Genetic Algorithms and Neural Networks

[加] 邁克爾·蘭哈姆(Micheal Lanham)著 殷海英 譯

  • 進化深度學習-preview-1
  • 進化深度學習-preview-2
  • 進化深度學習-preview-3
進化深度學習-preview-1

相關主題

商品描述

主要內容 ● 用進化計算解決復雜的設計和分析問題 ● 調整深度學習超參數 ● 將Q-Learning應用於深度學習,從而進行深度強化學習 ● 優化無監督自編碼器的損失函數和網絡架構 ● 創建一個能夠參與OpenAI Gym游戲的進化智能體

目錄大綱

 

目    錄

 

第Ⅰ部分  入門

第1章  進化深度學習簡介 3

1.1  什麽是進化深度學習 4

1.2  EDL的緣由和應用領域 7

1.3  深度學習優化的需求 7

1.4  用自動化機器學習實現自動優化 9

1.5  進化深度學習的應用 12

1.5.1  模型選擇:權重搜索 12

1.5.2  模型架構:架構優化 13

1.5.3  超參數調優 14

1.5.4  驗證和損失函數的優化 14

1.5.5  神經進化增強拓撲結構 14

1.5.6  目標 14

1.6  本章小結 15

第2章  進化計算簡介 17

2.1  Google Colaboratory中的康威生命游戲 17

2.2  用Python進行生命模擬 20

2.3  將生命模擬作為優化 23

2.4  向生命模擬添加進化 26

2.4.1  模擬進化 26

2.4.2  練習 29

2.4.3  關於達爾文和進化的背景知識 30

2.4.4  自然選擇和適者生存 30

2.5  Python中的遺傳算法 31

2.5.1  瞭解遺傳學和減數分裂 31

2.5.2  編碼遺傳算法 33

2.5.3  構建種群 34

2.5.4  評估適應度 34

2.5.5  選擇繁殖(交叉) 35

2.5.6  應用交叉:繁殖 36

2.5.7  應用突變和變異 38

2.5.8  將所有內容整合在一起 38

2.5.9  理解遺傳算法的超參數 41

2.5.10  練習 42

2.6  本章小結 42

第3章  使用DEAP介紹遺傳算法 45

3.1  DEAP中的遺傳算法 45

3.1.1  使用DEAP解決一維最大化問題 46

3.1.2  練習 48

3.2  解決“王後開局”問題 49

3.3  旅行商問題 53

3.3.1  構建旅行商問題求解器 55

3.3.2  練習 58

3.4  改進進化的遺傳操作符選擇 59

3.5  使用EvoLisa進行繪畫 63

3.6  本章小結 69

第4章  使用DEAP進行更多的進化計算 71

4.1  基於DEAP的遺傳編程 71

4.1.1  用遺傳編程解決回歸問題 72

4.1.2  練習 77

4.2  基於DEAP的粒子群優化算法 77

4.2.1  用PSO求解方程 78

4.2.2  練習 82

4.3  基於DEAP的協同進化解決方案 82

4.4  使用DEAP的進化策略 87

4.4.1  將進化策略應用於函數逼近問題 87

4.4.2  重新審視EvoLisa 92

4.4.3  練習 93

4.5  基於DEAP的差分進化 94

4.5.1  使用差分進化逼近復雜和不連續的函數 94

4.5.2  練習 97

4.6  本章小結 97

第Ⅱ部分  優化深度學習

第5章  自動超參數優化 101

5.1  選項選擇和超參數調優 102

5.1.1  調優超參數策略 102

5.1.2  選擇模型選項 106

5.2  使用隨機搜索自動化超參數優化過程 108

5.3  網格搜索和超參數優化 114

5.4  使用進化計算進行超參數優化 119

5.4.1  將PSO用於超參數優化 119

5.4.2  將進化計算和DEAP添加到自動化超參數優化中 119

5.5  在超參數優化中使用遺傳算法和進化策略 123

5.5.1  將進化策略應用於超參數優化 123

5.5.2  使用主成分分析擴展維度 125

5.6  對超參數優化使用差分進化 128

5.7  本章小結 132

第6章  神經進化優化 133

6.1  使用NumPy的多層感知器 134

6.2  將遺傳算法作為深度學習優化器 139

6.3  神經優化的其他進化方法 142

6.4  將神經進化優化應用於Keras 144

6.5  理解進化優化的局限性 148

6.6  本章小結 151

第7章  進化捲積神經網絡 153

7.1  回顧Keras中的捲積神經網絡 153

7.1.1  理解CNN層的問題 158

7.1.2  練習 161

7.2  將網絡架構編碼成基因 162

7.3  創建交叉配對操作 166

7.4  開發一個自定義突變操作符 168

7.5  捲積網絡架構的進化 171

7.6  本章小結 175

第Ⅲ部分  高級應用

第8章  進化自編碼器 179

8.1  捲積自編碼器 180

8.1.1  自編碼器簡介 180

8.1.2  構建捲積自編碼器 181

8.1.3  練習 185

8.1.4  捲積AE的泛化 185

8.1.5  改進自編碼器 186

8.2  進化自編碼器(AE)優化 188

8.2.1  構建AE基因序列 188

8.2.2  練習 192

8.3  配對和突變自編碼器基因序列 193

8.4  進化自編碼器介紹 195

8.5  構建變分自編碼器 198

8.5.1  變分自編碼器:綜述 198

8.5.2  VAE的實現 200

8.5.3  練習 205

8.6  本章小結 206

第9章  生成式深度學習與進化 207

9.1  生成對抗網絡(GAN) 2079.1.1  GAN簡介 208

9.1.2  在Keras中構建捲積生成對抗網絡 209

9.1.3  練習 214

9.2  訓練GAN的挑戰 215

9.2.1  GAN優化問題 215

9.2.2  觀察梯度消失 216

9.2.3  觀察GAN中的模式坍塌 218

9.2.4  觀察GAN中的收斂失敗 220

9.2.5  練習 222

9.3  使用Wasserstein損失修復GAN的問題 223

9.3.1  理解Wasserstein損失 223

9.3.2  使用Wasserstein損失改進DCGAN 224

9.4  對Wasserstein DCGAN編碼,以便進行進化優化 226

9.5  使用遺傳算法優化DCGAN 230

9.6  本章小結 231

第10章  NEAT:神經進化增強拓撲 233

10.1  使用NEAT-Python探索NEAT 235

10.2  可視化進化的NEAT網絡 238

10.3  通過NEAT的功能進行練習 241

10.4  使用NEAT對圖像進行分類 246

10.5  揭示種群細分在進化拓撲中的作用 250

10.5.1  調整NEAT的物種劃分 252

10.5.2  練習 255

10.6  本章小結 255

第11章  使用NEAT進行進化學習 257

11.1  介紹強化學習 257

11.1.1  冰凍湖面上的Q-learning智能體 259

11.1.2  練習 265

11.2  探索OpenAI Gym中的復雜問題 266

11.3  使用NEAT解決強化學習問題 270

11.4  使用NEAT智能體解決Gym中的月球著陸器問題 274

11.5  使用DQN解決Gym中的登月器問題 277

11.6  本章小結 282

第12章  進化機器學習及其拓展領域 283

12.1  基因表達編程中的進化和機器學習 284

12.2  重新審視使用Geppy的強化學習 289

12.3  介紹本能學習 294

12.3.1  本能學習的基礎知識 294

12.3.2  發展通用本能 296

12.3.3  進化出不帶本能的通用解決方案 299

12.3.4  練習 302

12.4  遺傳編程中的泛化學習 302

12.5  進化機器學習的未來 309

12.5.1  進化是否出現了問題 309

12.5.2  進化可塑性 309

12.5.3  利用可塑性改進進化過程 310

12.5.4  計算與進化搜索 311

12.6  利用本能深度學習和深度強化學習進行泛化 312

12.7  本章小結 317

附錄A  獲取和運行代碼 319