目 錄
第1章 人工智能的基礎\t1
1.1 由數學建模走進人工智能\t1
1.1.1 數學建模\t1
1.1.2 人工智能背后的數學\t4
1.2 為何用Python\t12
1.2.1 選擇Python的原因\t12
1.2.2 Python的優(yōu)勢\t13
1.2.3 Python的安裝\t13
1.2.4 使用pip安裝第三方庫\t16
1.2.5 Python的變量\t17
1.3 第一個小程序\t18
1.4 剖析程序\t19
1.5 NumPy入門\t23
1.5.1 NumPy的用法\t23
1.5.2 廣播\t27
1.5.3 向量化與“升維”\t28
1.5.4 NumPy的應用思想\t31
第2章 人工智能背景下的科學計算\t32
2.1 Pandas科學計算庫\t32
2.1.1 初識Pandas\t32
2.1.2 Pandas的相關操作\t34
2.2 Matplotlib可視化庫\t48
2.2.1 初識Matplotlib\t48
2.2.2 Matplotlib經典應用\t51
2.3 SciPy科學計算庫\t54
2.3.1 初識SciPy\t54
2.3.2 SciPy經典應用\t55
第3章 人工神經網絡\t62
3.1 人工神經網絡的概念\t62
3.1.1 神經元\t62
3.1.2 人工神經網絡的基本特征\t64
3.2 神經激活函數\t64
3.2.1 線性激活函數\t65
3.2.2 Sigmoid激活函數\t65
3.2.3 雙曲正切激活函數\t67
3.2.4 修正線性激活函數\t68
3.2.5 PReLU激活函數\t70
3.2.6 softmax激活函數\t71
3.3 反向傳播\t73
3.4 卷積神經網絡\t79
3.5 循環(huán)神經網絡\t85
3.5.1 普通循環(huán)神經網絡\t85
3.5.2 長短期記憶單元\t89
3.6 生成對抗網絡\t93
3.7 強化學習\t99
3.7.1 Q學習\t100
3.7.2 Q學習經典應用\t101
3.7.3 深度Q學習\t106
3.7.4 形式化損失函數\t106
3.7.5 深度雙Q學習\t107
3.7.6 深度Q學習的經典應用\t108
3.8 受限玻爾茲曼機\t123
3.8.1 RBM的架構\t123
3.8.2 RBM的經典實現(xiàn)\t124
3.9 自編碼器\t128
3.9.1 自編碼器的架構\t128
3.9.2 自編碼器的經典實現(xiàn)\t129
第4章 遷移學習\t134
4.1 遷移學習概述\t134
4.2 VGG16實現(xiàn)圖像風格轉移\t135
4.3 糖尿病性視網膜病變檢測\t142
4.3.1 病變數據集\t142
4.3.2 損失函數定義\t143
4.3.3 類別不平衡問題\t143
4.3.4 預處理\t144
4.3.5 仿射變換產生額外數據\t145
4.3.6 網絡架構\t147
4.3.7 優(yōu)化器與交叉驗證\t150
4.3.8 Python實現(xiàn)\t151
第5章 網絡爬蟲\t159
5.1 初識爬蟲\t159
5.2 爬蟲入門\t160
5.2.1 入門基礎\t160
5.2.2 爬蟲實戰(zhàn)\t162
5.3 高效率爬蟲\t167
5.3.1 多進程\t167
5.3.2 多線程\t169
5.3.3 協(xié)程\t172
5.4 利用Scrapy實現(xiàn)爬蟲\t174
5.4.1 安裝Scrapy\t174
5.4.2 爬取招聘信息\t176
第6章 智能數據分析\t182
6.1 數據獲取\t182
6.1.1 從鍵盤獲取\t182
6.1.2 讀取與寫入\t182
6.1.3 Pandas讀寫操作\t185
6.2 枚舉算法\t187
6.2.1 枚舉定義\t187
6.2.2 枚舉特點\t187
6.2.3 枚舉經典應用\t188
6.3 遞推問題\t189
6.4 模擬問題\t191
6.5 邏輯推理問題\t193
6.6 排序問題\t195
6.6.1 冒泡排序\t195
6.6.2 選擇排序\t196
6.6.3 桶排序\t198
6.6.4 插入排序\t200
6.6.5 快速排序\t201
6.6.6 歸并排序\t203
6.6.7 堆排序\t205
6.7 二分查找\t207
6.8 勾股樹\t210
6.9 數據分析經典案例\t212
第7章 機器學習\t221
7.1 K-Means聚類算法\t221
7.1.1 K-Means聚類算法概述\t222
7.1.2 目標函數\t222
7.1.3 K-Means聚類算法流程\t222
7.1.4 K-Means聚類算法的優(yōu)缺點\t223
7.1.5 K-Means聚類算法經典應用\t224
7.2 kNN算法\t226
7.2.1 kNN算法基本思想\t226
7.2.2 kNN算法的重點\t227
7.2.3 kNN算法經典應用\t228
7.3 樸素貝葉斯算法\t238
7.3.1 貝葉斯定理\t239
7.3.2 樸素貝葉斯分類原理\t239
7.3.3 樸素貝葉斯分類流程圖\t240
7.3.4 樸素貝葉斯算法的優(yōu)缺點\t240
7.3.5 樸素貝葉斯算法經典應用\t240
7.4 廣義線性模型\t245
7.4.1 線性模型\t245
7.4.2 線性回歸\t251
7.4.3 嶺回歸\t253
7.4.4 套索回歸\t258
7.4.5 彈性網絡回歸\t261
7.5 決策樹算法\t264
7.5.1 決策樹算法概述\t264
7.5.2 經典算法\t264
7.5.3 決策樹算法經典應用\t269
7.6 隨機森林\t273
7.6.1 隨機森林概述\t273
7.6.2 隨機森林的構建\t274
7.6.3 隨機森林的優(yōu)勢與不足\t276
7.7 支持向量機\t277
7.7.1 分類間隔\t277
7.7.2 函數間距\t279
7.7.3 幾何間距\t279
7.7.4 核函數\t281
7.7.5 支持向量機核函數的實現(xiàn)\t284
7.7.6 核函數與參數選擇\t286
7.8 數據預處理\t289
7.9 數據降維\t294
7.10 智能推薦系統(tǒng)\t298
7.10.1 推薦問題的描述\t298
7.10.2 協(xié)同過濾算法\t298
7.10.3 協(xié)同過濾算法的實現(xiàn)\t299
第8章 智能模型分析\t303
8.1 數據表達\t303
8.2 數據升維\t308
8.3 模型評估\t314
8.4 優(yōu)化模型參數\t318
8.5 可信度評估\t322
8.6 管道模型\t326
8.7 選擇和參數調優(yōu)\t330
第9章 人工智能的應用\t334
9.1 機器翻譯\t334
9.1.1 神經機器翻譯\t334
9.1.2 實現(xiàn)英譯德\t338
9.2 機器語音識別\t344
9.2.1 CTC算法概念\t344
9.2.2 RNN+CTC模型的訓練\t345
9.2.3 利用CTC實現(xiàn)語音識別\t347
9.3 利用OpenCV實現(xiàn)人臉識別\t352
9.3.1 人臉檢測\t352
9.3.2 檢測視頻的人臉\t353
9.3.3 車牌檢測\t354
9.3.4 目標檢測\t355
9.4 GAN風格遷移\t357
9.4.1 DiscoGAN的工作原理\t357
9.4.2 CycleGAN的工作原理\t358
9.4.3 預處理圖像\t358
9.4.4 DiscoGAN生成器\t360
9.4.5 DiscoGAN判別器\t362
9.4.6 網絡構建和損失函數的定義\t363
9.4.7 構建訓練過程\t366
9.4.8 啟動訓練\t369
9.5 利用OpenCV 實現(xiàn)風格遷移\t372
9.6 聊天機器人\t373
9.6.1 聊天機器人架構\t374
9.6.2 序列到序列模型\t375
9.6.3 建立序列到序列模型\t375
9.6.4 實現(xiàn)聊天機器人\t376
9.7 餐飲菜單推薦引擎\t383
參考文獻\t390