Python神經(jīng)網(wǎng)絡(luò)項(xiàng)目實(shí)戰(zhàn)
本書(shū)主要講述了神經(jīng)網(wǎng)絡(luò)的重要概念和技術(shù),并展示了如何使用Python來(lái)解決日常生活中常見(jiàn)的神經(jīng)網(wǎng)絡(luò)問(wèn)題。本書(shū)包含了6個(gè)神經(jīng)網(wǎng)絡(luò)相關(guān)的項(xiàng)目,分別是糖尿病預(yù)測(cè)、出租車(chē)費(fèi)用預(yù)測(cè)、圖像分類(lèi)、圖像降噪、情感分析和人臉識(shí)別,這6個(gè)項(xiàng)目均是從頭開(kāi)始實(shí)現(xiàn),且使用了不同的神經(jīng)網(wǎng)絡(luò)。在每個(gè)項(xiàng)目中,本書(shū)首先會(huì)提出問(wèn)題,然后介紹解決該問(wèn)題需要用到的神經(jīng)網(wǎng)絡(luò)架構(gòu),并給出選擇該神經(jīng)網(wǎng)絡(luò)模型的原因,最后會(huì)使用Python語(yǔ)言從頭實(shí)現(xiàn)該模型。此外,本書(shū)還介紹了機(jī)器學(xué)習(xí)和神經(jīng)網(wǎng)絡(luò)的基礎(chǔ)知識(shí),以及人工智能未來(lái)的發(fā)展。
1.本書(shū)介紹神經(jīng)網(wǎng)絡(luò)和深度學(xué)習(xí)的基本概念的同時(shí)還講解了基于Python實(shí)現(xiàn)神經(jīng)網(wǎng)絡(luò)時(shí)用到的函數(shù)庫(kù)。
2.本書(shū)包含神經(jīng)網(wǎng)絡(luò)在不同領(lǐng)域中實(shí)際應(yīng)用的案例,包括費(fèi)用預(yù)估、圖像分類(lèi)、語(yǔ)義分析等。對(duì)于每個(gè)案例,本書(shū)提供了完整的問(wèn)題描述以及解決該問(wèn)題所需要的神經(jīng)網(wǎng)絡(luò)架構(gòu)。不僅如此,本書(shū)還介紹了選擇特定算法的原因以及一步步實(shí)現(xiàn)該解決方案的Python代碼。
3.在學(xué)習(xí)本書(shū)的過(guò)程中,讀者將獲得基于流行Python函數(shù)庫(kù)(例如Keras)來(lái)實(shí)現(xiàn)并訓(xùn)練神經(jīng)網(wǎng)絡(luò)的實(shí)際使用經(jīng)驗(yàn)。
4.在讀完本書(shū)后,讀者不僅可以掌握多種不同類(lèi)型的神經(jīng)網(wǎng)絡(luò)架構(gòu),還能夠使用Python語(yǔ)言創(chuàng)建多個(gè)AI項(xiàng)目來(lái)豐富自己的作品集和項(xiàng)目經(jīng)歷。
詹姆斯·洛伊是一名數(shù)據(jù)科學(xué)家,他在金融和醫(yī)療行業(yè)有5年以上的工作經(jīng)驗(yàn)。他曾在新加坡的銀行工作,通過(guò)預(yù)測(cè)性分析驅(qū)動(dòng)創(chuàng)新,同時(shí)幫助銀行提高客戶的忠誠(chéng)度。他也在醫(yī)療部門(mén)工作過(guò),在那里他通過(guò)數(shù)據(jù)分析來(lái)改善醫(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)開(kāi)發(fā)基于計(jì)算機(jī)視覺(jué)的人工智能。他經(jīng)常在Towards Data Science上發(fā)表文章,這是一個(gè)很有名的機(jī)器學(xué)習(xí)網(wǎng)站,每個(gè)月的訪問(wèn)量在300萬(wàn)人次以上。
第 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從頭開(kāi)始訓(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——開(kāi)源深度學(xué)習(xí)庫(kù) 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ù)庫(kù) 31
1.7 小結(jié) 32
第 2章 基于多層感知器預(yù)測(cè)糖尿病 33
2.1 技術(shù)需求 33
2.2 糖尿病——理解問(wèn)題 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è)出租車(chē)費(fèi)用 62
3.1 技術(shù)需求 62
3.2 預(yù)測(cè)紐約市出租車(chē)打車(chē)費(fèi)用 64
3.3 紐約市出租車(chē)打車(chē)費(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 回歸問(wèn)題的損失函數(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)行圖像分類(lèi) 96
4.1 技術(shù)需求 97
4.2 計(jì)算機(jī)視覺(jué)和目標(biāo)識(shí)別 98
4.3 目標(biāo)識(shí)別的問(wèn)題類(lèi)型 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)建簡(jiǎn)單的卷積神經(jīng)網(wǎng)絡(luò) 116
4.11.2 通過(guò)遷移學(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手寫(xiě)數(shù)字?jǐn)?shù)據(jù)集 134
5.6 構(gòu)建簡(jiǎn)單的自動(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章 使用長(zhǎng)短期記憶網(wǎng)絡(luò)進(jìn)行情感分析 163
6.1 技術(shù)需求 164
6.2 機(jī)器學(xué)習(xí)中的順序問(wèn)題 165
6.3 自然語(yǔ)言處理和情感分析 166
6.4 RNN 168
6.4.1 RNN的內(nèi)部結(jié)構(gòu) 169
6.4.2 RNN中的長(zhǎng)短期依賴 170
6.4.3 梯度消失問(wèn)題 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 用向量表示詞語(yǔ) 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í)別問(wèn)題 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ù)集來(lái)實(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 人臉?shù)浫脒^(guò)程 234
7.13.2 人臉識(shí)別過(guò)程 236
7.13.3 工作展望 239
7.14 小結(jié) 240
7.15 習(xí)題 241
第8章 未來(lái)是什么樣的 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è)出租車(chē)費(fèi)用 244
8.1.4 貓還是狗——使用卷積神經(jīng)網(wǎng)絡(luò)進(jìn)行圖像分類(lèi) 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í)的未來(lái) 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 圖書(shū) 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