Python神經(jīng)網(wǎng)絡(luò)項目實戰(zhàn)
本書主要講述了神經(jīng)網(wǎng)絡(luò)的重要概念和技術(shù),并展示了如何使用Python來解決日常生活中常見的神經(jīng)網(wǎng)絡(luò)問題。本書包含了6個神經(jīng)網(wǎng)絡(luò)相關(guān)的項目,分別是糖尿病預(yù)測、出租車費用預(yù)測、圖像分類、圖像降噪、情感分析和人臉識別,這6個項目均是從頭開始實現(xiàn),且使用了不同的神經(jīng)網(wǎng)絡(luò)。在每個項目中,本書首先會提出問題,然后介紹解決該問題需要用到的神經(jīng)網(wǎng)絡(luò)架構(gòu),并給出選擇該神經(jīng)網(wǎng)絡(luò)模型的原因,最后會使用Python語言從頭實現(xiàn)該模型。此外,本書還介紹了機器學(xué)習(xí)和神經(jīng)網(wǎng)絡(luò)的基礎(chǔ)知識,以及人工智能未來的發(fā)展。
1.本書介紹神經(jīng)網(wǎng)絡(luò)和深度學(xué)習(xí)的基本概念的同時還講解了基于Python實現(xiàn)神經(jīng)網(wǎng)絡(luò)時用到的函數(shù)庫。
2.本書包含神經(jīng)網(wǎng)絡(luò)在不同領(lǐng)域中實際應(yīng)用的案例,包括費用預(yù)估、圖像分類、語義分析等。對于每個案例,本書提供了完整的問題描述以及解決該問題所需要的神經(jīng)網(wǎng)絡(luò)架構(gòu)。不僅如此,本書還介紹了選擇特定算法的原因以及一步步實現(xiàn)該解決方案的Python代碼。
3.在學(xué)習(xí)本書的過程中,讀者將獲得基于流行Python函數(shù)庫(例如Keras)來實現(xiàn)并訓(xùn)練神經(jīng)網(wǎng)絡(luò)的實際使用經(jīng)驗。
4.在讀完本書后,讀者不僅可以掌握多種不同類型的神經(jīng)網(wǎng)絡(luò)架構(gòu),還能夠使用Python語言創(chuàng)建多個AI項目來豐富自己的作品集和項目經(jīng)歷。
詹姆斯·洛伊是一名數(shù)據(jù)科學(xué)家,他在金融和醫(yī)療行業(yè)有5年以上的工作經(jīng)驗。他曾在新加坡的銀行工作,通過預(yù)測性分析驅(qū)動創(chuàng)新,同時幫助銀行提高客戶的忠誠度。他也在醫(yī)療部門工作過,在那里他通過數(shù)據(jù)分析來改善醫(yī)院做出的決斷。他在喬治亞理工大學(xué)獲得了計算機科學(xué)碩士學(xué)位,研究方向為機器學(xué)習(xí)。
他關(guān)注的研究領(lǐng)域有深度學(xué)習(xí)和應(yīng)用機器學(xué)習(xí),還包括為工業(yè)自動化系統(tǒng)開發(fā)基于計算機視覺的人工智能。他經(jīng)常在Towards Data Science上發(fā)表文章,這是一個很有名的機器學(xué)習(xí)網(wǎng)站,每個月的訪問量在300萬人次以上。
第 1章 機器學(xué)習(xí)和神經(jīng)網(wǎng)絡(luò)導(dǎo)論 1
1.1 什么是機器學(xué)習(xí) 2
1.1.1 機器學(xué)習(xí)算法 2
1.1.2 機器學(xué)習(xí)工作流 5
1.2 在你的計算機上配置機器學(xué)習(xí)環(huán)境 7
1.3 神經(jīng)網(wǎng)絡(luò) 8
1.3.1 為什么要使用神經(jīng)網(wǎng)絡(luò) 9
1.3.2 神經(jīng)網(wǎng)絡(luò)基礎(chǔ)結(jié)構(gòu) 10
1.3.3 使用Python從頭開始訓(xùn)練一個神經(jīng)網(wǎng)絡(luò) 10
1.3.4 綜合應(yīng)用 15
1.3.5 深度學(xué)習(xí)和神經(jīng)網(wǎng)絡(luò) 16
1.4 pandas—強大的Python數(shù)據(jù)分析工具 17
1.4.1 pandas DataFrame 17
1.4.2 pandas中的數(shù)據(jù)可視化 20
1.4.3 使用pandas進(jìn)行數(shù)據(jù)預(yù)處理 23
1.4.4 在神經(jīng)網(wǎng)絡(luò)項目中使用pandas 26
1.5 TensorFlow和Keras——開源深度學(xué)習(xí)庫 26
1.5.1 Keras中的基礎(chǔ)構(gòu)建單元 27
1.5.2 用Keras創(chuàng)建神經(jīng)網(wǎng)絡(luò) 29
1.6 其他Python函數(shù)庫 31
1.7 小結(jié) 32
第 2章 基于多層感知器預(yù)測糖尿病 33
2.1 技術(shù)需求 33
2.2 糖尿病——理解問題 35
2.3 醫(yī)療中的人工智能 36
2.4 糖尿病數(shù)據(jù)集 37
2.5 探索性數(shù)據(jù)分析 38
2.6 數(shù)據(jù)預(yù)處理 43
2.6.1 處理缺失數(shù)據(jù) 43
2.6.2 數(shù)據(jù)標(biāo)準(zhǔn)化 46
2.6.3 將數(shù)據(jù)集分割為訓(xùn)練數(shù)據(jù)集、測試數(shù)據(jù)集和驗證數(shù)據(jù)集 47
2.7 MLP 49
2.8 使用Keras構(gòu)建模型 51
2.8.1 建模 51
2.8.2 模型編譯 53
2.8.3 模型訓(xùn)練 53
2.9 結(jié)果分析 54
2.9.1 測試模型準(zhǔn)確率 54
2.9.2 混淆矩陣 55
2.9.3 ROC曲線 57
2.9.4 進(jìn)一步優(yōu)化 59
2.10 小結(jié) 59
2.11 習(xí)題 60
第3章 基于深度前饋網(wǎng)絡(luò)預(yù)測出租車費用 62
3.1 技術(shù)需求 62
3.2 預(yù)測紐約市出租車打車費用 64
3.3 紐約市出租車打車費用數(shù)據(jù)集 64
3.4 探索性數(shù)據(jù)分析 64
3.4.1 地理位置數(shù)據(jù)可視化 66
3.4.2 全天及小時客流量 69
3.5 數(shù)據(jù)預(yù)處理 71
3.6 特征工程 77
3.6.1 時空特征 77
3.6.2 地理位置特征 79
3.7 特征縮放 82
3.8 深度前饋網(wǎng)絡(luò) 83
3.8.1 模型結(jié)構(gòu) 83
3.8.2 回歸問題的損失函數(shù) 84
3.9 使用Keras構(gòu)建模型 85
3.10 結(jié)果分析 87
3.11 綜合應(yīng)用 91
3.12 小結(jié) 93
3.13 習(xí)題 94
第4章 是貓還是狗——使用卷積神經(jīng)網(wǎng)絡(luò)進(jìn)行圖像分類 96
4.1 技術(shù)需求 97
4.2 計算機視覺和目標(biāo)識別 98
4.3 目標(biāo)識別的問題類型 99
4.4 數(shù)字圖像作為神經(jīng)網(wǎng)絡(luò)輸入 101
4.5 卷積神經(jīng)網(wǎng)絡(luò)的基礎(chǔ)結(jié)構(gòu) 102
4.5.1 濾波和卷積 102
4.5.2 最大池化 106
4.6 卷積神經(jīng)網(wǎng)絡(luò)基本結(jié)構(gòu) 107
4.7 現(xiàn)代卷積神經(jīng)網(wǎng)絡(luò)回顧 108
4.7.1 LeNet(1998) 108
4.7.2 AlexNet(2012) 108
4.7.3 VGG16(2014) 109
4.7.4 Inception(2014) 109
4.7.5 ResNet(2015) 109
4.7.6 最新趨勢 109
4.8 貓狗數(shù)據(jù)集 110
4.9 在Keras中處理圖像數(shù)據(jù) 112
4.10 圖像增強 113
4.11 建模 116
4.11.1 構(gòu)建簡單的卷積神經(jīng)網(wǎng)絡(luò) 116
4.11.2 通過遷移學(xué)習(xí)利用預(yù)訓(xùn)練模型 121
4.12 結(jié)果分析 124
4.13 小結(jié) 128
4.14 習(xí)題 129
第5章 使用自動編碼器進(jìn)行圖像降噪 130
5.1 技術(shù)需求 130
5.2 什么是自動編碼器 132
5.3 隱式表示 133
5.4 用于數(shù)據(jù)壓縮的自動編碼器 134
5.5 MNIST手寫數(shù)字?jǐn)?shù)據(jù)集 134
5.6 構(gòu)建簡單的自動編碼器 136
5.6.1 在Keras中構(gòu)建自動編碼器 137
5.6.2 隱藏層尺寸對自動編碼器性能的影響 141
5.7 用于降噪的自動編碼器 143
5.8 基于自動編碼器的文件去噪 151
5.8.1 基本的卷積自動編碼器 155
5.8.2 深度卷積自動編碼器 158
5.9 小結(jié) 161
5.10 習(xí)題 161
第6章 使用長短期記憶網(wǎng)絡(luò)進(jìn)行情感分析 163
6.1 技術(shù)需求 164
6.2 機器學(xué)習(xí)中的順序問題 165
6.3 自然語言處理和情感分析 166
6.4 RNN 168
6.4.1 RNN的內(nèi)部結(jié)構(gòu) 169
6.4.2 RNN中的長短期依賴 170
6.4.3 梯度消失問題 172
6.5 LSTM網(wǎng)絡(luò) 173
6.5.1 LSTM——直觀感受 173
6.5.2 LSTM網(wǎng)絡(luò)內(nèi)部結(jié)構(gòu) 174
6.6 IMDb影評數(shù)據(jù)集 178
6.7 用向量表示詞語 180
6.7.1 獨熱編碼 180
6.7.2 詞嵌入 181
6.8 模型結(jié)構(gòu) 182
6.8.1 輸入 182
6.8.2 詞嵌入層 183
6.8.3 LSTM層 183
6.8.4 全連接層 183
6.8.5 輸出 183
6.9 在Keras中創(chuàng)建模型 184
6.9.1 導(dǎo)入數(shù)據(jù) 184
6.9.2 零填充 185
6.9.3 詞嵌入層和LSTM層 186
6.9.4 編譯和訓(xùn)練模型 188
6.10 結(jié)果分析 189
6.11 代碼整合 195
6.12 小結(jié) 197
6.13 習(xí)題 198
第7章 基于神經(jīng)網(wǎng)絡(luò)實現(xiàn)人臉識別系統(tǒng) 201
7.1 技術(shù)需求 202
7.2 人臉識別系統(tǒng) 203
7.3 分解人臉識別問題 203
7.3.1 人臉檢測 204
7.3.2 人臉識別 209
7.4 人臉識別系統(tǒng)需求 209
7.4.1 速度 210
7.4.2 可擴展性 210
7.4.3 基于小數(shù)據(jù)集來實現(xiàn)高準(zhǔn)確率 211
7.5 一次學(xué)習(xí) 212
7.6 孿生神經(jīng)網(wǎng)絡(luò) 213
7.7 對比損失函數(shù) 215
7.8 人臉數(shù)據(jù)集 216
7.9 在Keras中創(chuàng)建孿生神經(jīng)網(wǎng)絡(luò) 220
7.10 在Keras中訓(xùn)練模型 224
7.11 結(jié)果分析 227
7.12 重構(gòu)代碼 230
7.13 創(chuàng)建一個實時人臉識別程序 234
7.13.1 人臉錄入過程 234
7.13.2 人臉識別過程 236
7.13.3 工作展望 239
7.14 小結(jié) 240
7.15 習(xí)題 241
第8章 未來是什么樣的 242
8.1 項目總結(jié) 242
8.1.1 機器學(xué)習(xí)和神經(jīng)網(wǎng)絡(luò)導(dǎo)論 243
8.1.2 基于多層感知機預(yù)測糖尿病 243
8.1.3 基于深度前饋網(wǎng)絡(luò)預(yù)測出租車費用 244
8.1.4 貓還是狗——使用卷積神經(jīng)網(wǎng)絡(luò)進(jìn)行圖像分類 244
8.1.5 使用自動編碼器進(jìn)行圖像降噪 245
8.1.6 使用LSTM對影評進(jìn)行情感分析 246
8.1.7 基于神經(jīng)網(wǎng)絡(luò)實現(xiàn)人臉識別系統(tǒng) 246
8.2 神經(jīng)網(wǎng)絡(luò)的最新進(jìn)展 247
8.2.1 生成對抗網(wǎng)絡(luò) 247
8.2.2 深度強化學(xué)習(xí) 248
8.3 神經(jīng)網(wǎng)絡(luò)的局限性 249
8.4 人工智能和機器學(xué)習(xí)的未來 250
8.4.1 強人工智能 251
8.4.2 自動機器學(xué)習(xí) 251
8.5 持續(xù)獲取機器學(xué)習(xí)的相關(guān)信息 252
8.5.1 圖書 252
8.5.2 學(xué)術(shù)期刊 252
8.5.3 基于真實數(shù)據(jù)集進(jìn)行練習(xí) 253
8.6 推薦的機器學(xué)習(xí)數(shù)據(jù)集 253
8.7 總結(jié) 253