Python神經(jīng)網(wǎng)絡(luò)項(xiàng)目實(shí)戰(zhàn)
本書主要講述了神經(jīng)網(wǎng)絡(luò)的重要概念和技術(shù),并展示了如何使用Python來解決日常生活中常見的神經(jīng)網(wǎng)絡(luò)問題。本書包含了6個(gè)神經(jīng)網(wǎng)絡(luò)相關(guān)的項(xiàng)目,分別是糖尿病預(yù)測(cè)、出租車費(fèi)用預(yù)測(cè)、圖像分類、圖像降噪、情感分析和人臉識(shí)別,這6個(gè)項(xiàng)目均是從頭開始實(shí)現(xiàn),且使用了不同的神經(jīng)網(wǎng)絡(luò)。在每個(gè)項(xiàng)目中,本書首先會(huì)提出問題,然后介紹解決該問題需要用到的神經(jīng)網(wǎng)絡(luò)架構(gòu),并給出選擇該神經(jīng)網(wǎng)絡(luò)模型的原因,最后會(huì)使用Python語言從頭實(shí)現(xiàn)該模型。此外,本書還介紹了機(jī)器學(xué)習(xí)和神經(jīng)網(wǎng)絡(luò)的基礎(chǔ)知識(shí),以及人工智能未來的發(fā)展。
1.本書介紹神經(jīng)網(wǎng)絡(luò)和深度學(xué)習(xí)的基本概念的同時(shí)還講解了基于Python實(shí)現(xiàn)神經(jīng)網(wǎng)絡(luò)時(shí)用到的函數(shù)庫。
2.本書包含神經(jīng)網(wǎng)絡(luò)在不同領(lǐng)域中實(shí)際應(yīng)用的案例,包括費(fèi)用預(yù)估、圖像分類、語義分析等。對(duì)于每個(gè)案例,本書提供了完整的問題描述以及解決該問題所需要的神經(jīng)網(wǎng)絡(luò)架構(gòu)。不僅如此,本書還介紹了選擇特定算法的原因以及一步步實(shí)現(xiàn)該解決方案的Python代碼。
3.在學(xué)習(xí)本書的過程中,讀者將獲得基于流行Python函數(shù)庫(例如Keras)來實(shí)現(xiàn)并訓(xùn)練神經(jīng)網(wǎng)絡(luò)的實(shí)際使用經(jīng)驗(yàn)。
4.在讀完本書后,讀者不僅可以掌握多種不同類型的神經(jīng)網(wǎng)絡(luò)架構(gòu),還能夠使用Python語言創(chuàng)建多個(gè)AI項(xiàng)目來豐富自己的作品集和項(xiàng)目經(jīng)歷。
詹姆斯·洛伊是一名數(shù)據(jù)科學(xué)家,他在金融和醫(yī)療行業(yè)有5年以上的工作經(jīng)驗(yàn)。他曾在新加坡的銀行工作,通過預(yù)測(cè)性分析驅(qū)動(dòng)創(chuàng)新,同時(shí)幫助銀行提高客戶的忠誠度。他也在醫(yī)療部門工作過,在那里他通過數(shù)據(jù)分析來改善醫(yī)院做出的決斷。他在喬治亞理工大學(xué)獲得了計(jì)算機(jī)科學(xué)碩士學(xué)位,研究方向?yàn)闄C(jī)器學(xué)習(xí)。
他關(guān)注的研究領(lǐng)域有深度學(xué)習(xí)和應(yīng)用機(jī)器學(xué)習(xí),還包括為工業(yè)自動(dòng)化系統(tǒng)開發(fā)基于計(jì)算機(jī)視覺的人工智能。他經(jīng)常在Towards Data Science上發(fā)表文章,這是一個(gè)很有名的機(jī)器學(xué)習(xí)網(wǎng)站,每個(gè)月的訪問量在300萬人次以上。
第 1章 機(jī)器學(xué)習(xí)和神經(jīng)網(wǎng)絡(luò)導(dǎo)論 1
1.1 什么是機(jī)器學(xué)習(xí) 2
1.1.1 機(jī)器學(xué)習(xí)算法 2
1.1.2 機(jī)器學(xué)習(xí)工作流 5
1.2 在你的計(jì)算機(jī)上配置機(jī)器學(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)練一個(gè)神經(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—強(qiáng)大的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ò)項(xiàng)目中使用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ù)測(cè)糖尿病 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ù)集、測(cè)試數(shù)據(jù)集和驗(yàn)證數(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 測(cè)試模型準(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ù)測(cè)出租車費(fèi)用 62
3.1 技術(shù)需求 62
3.2 預(yù)測(cè)紐約市出租車打車費(fèi)用 64
3.3 紐約市出租車打車費(fèi)用數(shù)據(jù)集 64
3.4 探索性數(shù)據(jù)分析 64
3.4.1 地理位置數(shù)據(jù)可視化 66
3.4.2 全天及小時(shí)客流量 69
3.5 數(shù)據(jù)預(yù)處理 71
3.6 特征工程 77
3.6.1 時(shí)空特征 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 計(jì)算機(jī)視覺和目標(biāo)識(shí)別 98
4.3 目標(biāo)識(shí)別的問題類型 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 最新趨勢(shì) 109
4.8 貓狗數(shù)據(jù)集 110
4.9 在Keras中處理圖像數(shù)據(jù) 112
4.10 圖像增強(qiáng) 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章 使用自動(dòng)編碼器進(jìn)行圖像降噪 130
5.1 技術(shù)需求 130
5.2 什么是自動(dòng)編碼器 132
5.3 隱式表示 133
5.4 用于數(shù)據(jù)壓縮的自動(dòng)編碼器 134
5.5 MNIST手寫數(shù)字?jǐn)?shù)據(jù)集 134
5.6 構(gòu)建簡單的自動(dòng)編碼器 136
5.6.1 在Keras中構(gòu)建自動(dòng)編碼器 137
5.6.2 隱藏層尺寸對(duì)自動(dòng)編碼器性能的影響 141
5.7 用于降噪的自動(dòng)編碼器 143
5.8 基于自動(dòng)編碼器的文件去噪 151
5.8.1 基本的卷積自動(dòng)編碼器 155
5.8.2 深度卷積自動(dòng)編碼器 158
5.9 小結(jié) 161
5.10 習(xí)題 161
第6章 使用長短期記憶網(wǎng)絡(luò)進(jìn)行情感分析 163
6.1 技術(shù)需求 164
6.2 機(jī)器學(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影評(píng)數(shù)據(jù)集 178
6.7 用向量表示詞語 180
6.7.1 獨(dú)熱編碼 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ò)實(shí)現(xiàn)人臉識(shí)別系統(tǒng) 201
7.1 技術(shù)需求 202
7.2 人臉識(shí)別系統(tǒng) 203
7.3 分解人臉識(shí)別問題 203
7.3.1 人臉檢測(cè) 204
7.3.2 人臉識(shí)別 209
7.4 人臉識(shí)別系統(tǒng)需求 209
7.4.1 速度 210
7.4.2 可擴(kuò)展性 210
7.4.3 基于小數(shù)據(jù)集來實(shí)現(xiàn)高準(zhǔn)確率 211
7.5 一次學(xué)習(xí) 212
7.6 孿生神經(jīng)網(wǎng)絡(luò) 213
7.7 對(duì)比損失函數(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)建一個(gè)實(shí)時(shí)人臉識(shí)別程序 234
7.13.1 人臉錄入過程 234
7.13.2 人臉識(shí)別過程 236
7.13.3 工作展望 239
7.14 小結(jié) 240
7.15 習(xí)題 241
第8章 未來是什么樣的 242
8.1 項(xiàng)目總結(jié) 242
8.1.1 機(jī)器學(xué)習(xí)和神經(jīng)網(wǎng)絡(luò)導(dǎo)論 243
8.1.2 基于多層感知機(jī)預(yù)測(cè)糖尿病 243
8.1.3 基于深度前饋網(wǎng)絡(luò)預(yù)測(cè)出租車費(fèi)用 244
8.1.4 貓還是狗——使用卷積神經(jīng)網(wǎng)絡(luò)進(jìn)行圖像分類 244
8.1.5 使用自動(dòng)編碼器進(jìn)行圖像降噪 245
8.1.6 使用LSTM對(duì)影評(píng)進(jìn)行情感分析 246
8.1.7 基于神經(jīng)網(wǎng)絡(luò)實(shí)現(xiàn)人臉識(shí)別系統(tǒng) 246
8.2 神經(jīng)網(wǎng)絡(luò)的最新進(jìn)展 247
8.2.1 生成對(duì)抗網(wǎng)絡(luò) 247
8.2.2 深度強(qiáng)化學(xué)習(xí) 248
8.3 神經(jīng)網(wǎng)絡(luò)的局限性 249
8.4 人工智能和機(jī)器學(xué)習(xí)的未來 250
8.4.1 強(qiáng)人工智能 251
8.4.2 自動(dòng)機(jī)器學(xué)習(xí) 251
8.5 持續(xù)獲取機(jī)器學(xué)習(xí)的相關(guān)信息 252
8.5.1 圖書 252
8.5.2 學(xué)術(shù)期刊 252
8.5.3 基于真實(shí)數(shù)據(jù)集進(jìn)行練習(xí) 253
8.6 推薦的機(jī)器學(xué)習(xí)數(shù)據(jù)集 253
8.7 總結(jié) 253