《細說機器學(xué)習(xí):從理論到實踐》從數(shù)學(xué)知識入手,詳盡細致地闡述機器學(xué)習(xí)各方面的理論知識、常用算法與流行框架,并以大量代碼示例進行實踐。本書內(nèi)容分為三篇:篇為基礎(chǔ)知識,包括機器學(xué)習(xí)概述、開發(fā)環(huán)境和常用模塊、特征工程、模型評估、降維方法等內(nèi)容。本篇詳細而友好地介紹機器學(xué)習(xí)的核心概念與原理,并結(jié)合大量示例幫助讀者輕松入門。第二篇為算法應(yīng)用,涵蓋機器學(xué)習(xí)重要與高頻使用的模型,包括K-Means聚類、K近鄰、回歸、決策樹、樸素貝葉斯、支持向量機、神經(jīng)網(wǎng)絡(luò)等內(nèi)容。本篇不僅詳細講解各個算法的原理,還提供大量注釋詳盡的代碼示例,使這些算法變得直觀易懂。第三篇為拓展應(yīng)用,包括集成學(xué)習(xí)、深度學(xué)習(xí)框架TensorFlow與PyTorch入門、卷積網(wǎng)絡(luò)、激活函數(shù)以及模型微調(diào)與項目實戰(zhàn)。本篇內(nèi)容更加前沿與高級,帶領(lǐng)讀者跨過機器學(xué)習(xí)的門檻,進行真實項目的實踐與部署。 《細說機器學(xué)習(xí):從理論到實踐》內(nèi)容豐富、系統(tǒng)且實用,大量相關(guān)代碼示例貼近實戰(zhàn),能夠為讀者學(xué)習(xí)機器學(xué)習(xí)打下扎實的基礎(chǔ),并真正掌握運用這些知識與算法解決實際問題的技能。適合機器學(xué)習(xí)入門者、大學(xué)生、人工智能從業(yè)者,以及各行業(yè)技術(shù)人員和科研人員使用,也可作為培訓(xùn)機構(gòu)和大專院校人工智能課程的教學(xué)用書。
《細說機器學(xué)習(xí):從理論到實踐》是一個詳細介紹現(xiàn)代機器學(xué)習(xí)理論、經(jīng)典算法與流行框架及編程實現(xiàn)的機器學(xué)習(xí)入門書。
從統(tǒng)計學(xué)、線性代數(shù)與概率論等機器學(xué)習(xí)的基礎(chǔ)知識講起,然后介紹機器學(xué)習(xí)的基本概念,繼 而講解常用算法與編程實現(xiàn),最后介紹高級知識、框架實踐與項目案例,兼顧理論與應(yīng)用,詳 盡易懂。
每個知識點配合示例練習(xí),全書共設(shè)計200多個編程實例,向讀者展示機器學(xué)習(xí)算法與框架的實際應(yīng)用。
全書涉及面廣,如神經(jīng)網(wǎng)絡(luò)、卷積網(wǎng)絡(luò)、集成學(xué)習(xí)、遷移學(xué)習(xí)等當(dāng)前機器學(xué)習(xí)熱點均有所涉及 。
結(jié)合作者多年機器學(xué)習(xí)研究與開發(fā)經(jīng)驗,采用流行的Python語言實現(xiàn),講解細致,娓娓道來, 適合轉(zhuǎn)型想進入人工智能領(lǐng)域的大學(xué)生、開發(fā)人員、技術(shù)人員和研究人員閱讀。
前 言
21世紀大國之間的競爭歸根結(jié)底是人才的競爭,人工智能作為目前促進產(chǎn)業(yè)升級的關(guān)鍵技術(shù),在學(xué)術(shù)界和工業(yè)界都有廣泛的應(yīng)用,被國家提高到了戰(zhàn)略高度。廣大國民掌握人工智能技術(shù)將極大地促進生產(chǎn)力發(fā)展,提升國家綜合競爭力,為國家發(fā)展做出技術(shù)上的貢獻。出于這樣的思考,本書為有志于在21世紀從事人工智能事業(yè)的讀者編寫,希望通過本書為促進國家人工智能技術(shù)的進步做出微薄貢獻。
眾所周知,在國家層面,人工智能技術(shù)已經(jīng)成為社會經(jīng)濟發(fā)展的新引擎,該技術(shù)已經(jīng)被應(yīng)用于人們?nèi)粘I畹姆椒矫婷。PyTorch是實現(xiàn)人工智能的重要技術(shù)途徑之一,學(xué)好PyTorch將十分有利于掌握人工智能技術(shù)。
人工智能技術(shù)作為新一輪產(chǎn)業(yè)變革的核心驅(qū)動技術(shù),將進一步釋放歷次科技革命和產(chǎn)業(yè)變革積蓄的巨大勢能,進一步促進經(jīng)濟巨大發(fā)展,形成宏觀經(jīng)濟、微觀經(jīng)濟等領(lǐng)域的社會智能化新需求,激發(fā)新技術(shù)、新產(chǎn)品、新產(chǎn)業(yè)、新業(yè)態(tài)、新模式不斷涌現(xiàn),引發(fā)社會經(jīng)濟結(jié)構(gòu)重大變革,深刻改變國民日常生產(chǎn)生活方式和經(jīng)濟社會生活思維模式,實現(xiàn)國家生產(chǎn)力的跨越提升。
我國經(jīng)濟社會發(fā)展已經(jīng)進入了新階段,實現(xiàn)共同富裕已經(jīng)成為當(dāng)前主要的社會發(fā)展目標和任務(wù),需要加快人工智能應(yīng)用于實體經(jīng)濟產(chǎn)業(yè)領(lǐng)域,提升人工智能技術(shù)產(chǎn)業(yè)化水平,為我國社會發(fā)展注入強大的技術(shù)支持和核心科技
動力。
隨著我國社會發(fā)展和工業(yè)升級的需求,人工智能技術(shù)人才需求越來越大,但是由于人工智能技術(shù)是一門交叉學(xué)科,涉及的基礎(chǔ)知識繁雜,因此不易入門和學(xué)習(xí)。為了降低人工智能技術(shù)的入門門檻,本書從理論出發(fā),結(jié)合實例,盡量用簡單易懂的語言講述高深的知識點,為有志于從事基于PyTorch進行人工智能開發(fā)的從業(yè)者提供一本好的PyTorch技術(shù)參考書。
本書內(nèi)容
本書結(jié)合多年P(guān)yTorch使用經(jīng)驗與實際工程應(yīng)用案例,將PyTorch的編程方法與技巧詳細地講解給讀者。本書在講解過程中步驟詳盡、內(nèi)容新穎,輔以相應(yīng)的圖示,使讀者在閱讀時能一目了然,從而快速掌握書中所講的內(nèi)容。
第一篇為基礎(chǔ)知識,包括以下章節(jié):
第1章 人工智能和PyTorch 第2章 開發(fā)環(huán)境
第3章 PyTorch入門 第4章 卷積網(wǎng)絡(luò)
第5章 經(jīng)典神經(jīng)網(wǎng)絡(luò) 第6章 模型的保存和調(diào)用
第7章 網(wǎng)絡(luò)可視化 第8章 數(shù)據(jù)加載和預(yù)處理
第9章 數(shù)據(jù)增強
第二篇為高級應(yīng)用,包括以下章節(jié):
第10章 圖像分類 第11章 遷移學(xué)習(xí)
第12章 人臉檢測和識別 第13章 生成對抗網(wǎng)絡(luò)
第14章 目標檢測 第15章 圖像風(fēng)格遷移
第16章 ViT
本書特點
本書由資深業(yè)界專家精心編寫,內(nèi)容涵蓋PyTorch的基礎(chǔ)知識、經(jīng)典算法、模型訓(xùn)練及編程實現(xiàn)。
從PyTorch的安裝與基本知識開始,首先介紹和深度學(xué)習(xí)相關(guān)的庫NumPy和Matplotlib、Scikit-Learn,然后逐步深入細致地講解各個知識點,確保讀者可以快速上手。
基礎(chǔ)理論結(jié)合熱點應(yīng)用,比如,介紹了PyTorch在經(jīng)典的神經(jīng)網(wǎng)絡(luò)、卷積網(wǎng)絡(luò)、模型調(diào)用和保存、數(shù)據(jù)可視化、數(shù)據(jù)增強等方面的編程實現(xiàn),介紹了PyTorch在人臉識別、生成對抗網(wǎng)絡(luò)、圖像分類、目標檢測、遷移學(xué)習(xí)中的應(yīng)用以及前沿技術(shù)熱點Vit等。
每個知識點在講解的過程中,配套大量示例,全書涉及100多個編程實例,向讀者展示PyTorch在深度學(xué)習(xí)中的應(yīng)用。
讀者對象
本書適合PyTorch初學(xué)者和期望應(yīng)用PyTorch技術(shù)進行機器學(xué)習(xí)開發(fā)的讀者,具體說明如下:
初學(xué)PyTorch的技術(shù)人員
廣大從事深度學(xué)習(xí)的科研工作人員
大、中專院校的教師和學(xué)生
相關(guān)培訓(xùn)機構(gòu)的教師和學(xué)員
剛參加工作實習(xí)的深度學(xué)習(xí)菜鳥
PyTorch深度學(xué)習(xí)技術(shù)愛好者
源碼下載
本書提供了程序源代碼,讀者可掃描下面的二維碼,按掃描后的頁面提示填寫你的郵箱,把下載鏈接轉(zhuǎn)發(fā)到郵箱中下載。如果下載有問題或閱讀中發(fā)現(xiàn)問題,請用電子郵件聯(lián)系booksaga@126.com,郵件主題寫細說PyTorch深度學(xué)習(xí):理論、算法、模型與編程實現(xiàn)。
讀者服務(wù)
為了方便解決本書的疑難問題,讀者朋友在學(xué)習(xí)過程中遇到與本書有關(guān)的技術(shù)問題,可以關(guān)注算法仿真公眾號獲取幫助,我們將竭誠為您 服務(wù)。
本書由凌峰、丁麒文編著,雖然作者在本書的編寫過程中力求敘述準確、完善,但由于水平有限,書中疏漏之處在所難免,希望廣大讀者和同仁及時指出,共同促進本書質(zhì)量的提高。
最后,再次希望本書能為讀者的學(xué)習(xí)和工作提供幫助!
編者
2023年3月
凌峰,畢業(yè)于中國科學(xué)院大學(xué),博士,高級職稱,從事機器學(xué)習(xí)、計算機視覺、圖像處理、人 工智能研究與開發(fā)工作多年,擁有豐富的機器學(xué)習(xí)算法實現(xiàn)經(jīng)驗,一個低調(diào)潛心研究技術(shù)的高手。
目 錄
第1篇 基礎(chǔ)知識
第1章 人工智能和PyTorch2
1.1 人工智能和深度學(xué)習(xí)2
1.1.1 人工智能2
1.1.2 深度學(xué)習(xí)3
1.2 深度學(xué)習(xí)框架5
1.3 PyTorch7
1.3.1 PyTorch簡介7
1.3.2 PyTorch的應(yīng)用領(lǐng)域9
1.3.3 PyTorch的應(yīng)用前景10
1.4 小結(jié)12
第2章 開發(fā)環(huán)境13
2.1 PyTorch的安裝13
2.2 NumPy16
2.2.1 NumPy的安裝與查看17
2.2.2 NumPy對象17
2.2.3 數(shù)組21
2.2.4 數(shù)學(xué)計算26
2.3 Matplotlib32
2.3.1 Matplotlib的安裝和簡介33
2.3.2 Matplotlib Figure圖形對象35
2.4 Scikit-Learn47
2.5 小結(jié)48
第3章 PyTorch入門49
3.1 PyTorch的模塊49
3.1.1 主要模塊49
3.1.2 輔助模塊53
3.2 張量54
3.2.1 張量的數(shù)據(jù)類型55
3.2.2 創(chuàng)建張量56
3.2.3 張量存儲61
3.2.4 維度操作63
3.2.5 索引和切片65
3.2.6 張量運算67
3.3 torch.nn模塊76
3.3.1 卷積層76
3.3.2 池化層80
3.3.3 激活層87
3.3.4 全連接層91
3.4 自動求導(dǎo)92
3.5 小結(jié)95
第4章 卷積網(wǎng)絡(luò)96
4.1 卷積網(wǎng)絡(luò)的原理96
4.1.1 卷積運算96
4.1.2 卷積網(wǎng)絡(luò)與深度學(xué)習(xí)98
4.2 NumPy建立神經(jīng)網(wǎng)絡(luò)99
4.3 PyTorch建立神經(jīng)網(wǎng)絡(luò)101
4.3.1 建立兩層神經(jīng)網(wǎng)絡(luò)101
4.3.2 神經(jīng)網(wǎng)絡(luò)參數(shù)更新102
4.3.3 自定義PyTorch的nn模塊103
4.3.4 權(quán)重共享105
4.4 全連接網(wǎng)絡(luò)107
4.5 小結(jié)111
第5章 經(jīng)典神經(jīng)網(wǎng)絡(luò)112
5.1 VGGNet112
5.1.1 VGGNet的結(jié)構(gòu)112
5.1.2 實現(xiàn)過程114
5.1.3 VGGNet的特點115
5.1.4 查看PyTorch網(wǎng)絡(luò)結(jié)構(gòu)116
5.2 ResNet118
5.2.1 ResNet的結(jié)構(gòu)118
5.2.2 殘差模塊的實現(xiàn)120
5.2.3 ResNet的實現(xiàn)122
5.2.4 ResNet要解決的問題126
5.3 XceptionNet128
5.3.1 XceptionNet的結(jié)構(gòu)128
5.3.2 XceptionNet的實現(xiàn)131
5.4 小結(jié)135
第6章 模型的保存和調(diào)用136
6.1 字典狀態(tài)(state_dict)136
6.2 保存和加載模型138
6.2.1 使用ate_dict加載模型138
6.2.2 保存和加載完整模型139
6.2.3 保存和加載Checkpoint用于推理、繼續(xù)訓(xùn)練139
6.3 一個文件保存多個模型140
6.4 通過設(shè)備保存和加載模型141
6.5 小結(jié)143
第7章 網(wǎng)絡(luò)可視化144
7.1 HiddenLayer可視化144
7.2 PyTorchViz可視化146
7.3 TensorboardX可視化149
7.3.1 簡介和安裝149
7.3.2 使用TensorboardX150
7.3.3 添加數(shù)字151
7.3.4 添加圖片152
7.3.5 添加直方圖153
7.3.6 添加嵌入向量154
7.4 小結(jié)156
第8章 數(shù)據(jù)加載和預(yù)處理157
8.1 加載PyTorch庫數(shù)據(jù)集157
8.2 加載自定義數(shù)據(jù)集159
8.2.1 下載并查看數(shù)據(jù)集159
8.2.2 定義數(shù)據(jù)集類161
8.3 預(yù)處理164
8.4 小結(jié)168
第9章 數(shù)據(jù)增強169
9.1 數(shù)據(jù)增強的概念169
9.1.1 常見的數(shù)據(jù)增強方法170
9.1.2 常用的數(shù)據(jù)增強庫171
9.2 數(shù)據(jù)增強的實現(xiàn)172
9.2.1 中心裁剪173
9.2.2 隨機裁剪174
9.2.3 縮放175
9.2.4 水平翻轉(zhuǎn)176
9.2.5 垂直翻轉(zhuǎn)177
9.2.6 隨機角度旋轉(zhuǎn)178
9.2.7 色度、亮度、飽和度、對比度的變化179
9.2.8 隨機灰度化180
9.2.9 將圖形加上padding181
9.2.10 指定區(qū)域擦除182
9.2.11 伽馬變換183
9.3 小結(jié)184
第2篇 高級應(yīng)用
第10章 圖像分類186
10.1 CIFAR10數(shù)據(jù)分類186
10.1.1 定義網(wǎng)絡(luò)訓(xùn)練數(shù)據(jù)187
10.1.2 驗證訓(xùn)練結(jié)果192
10.2 數(shù)據(jù)集劃分193
10.3 貓狗分類實戰(zhàn)195
10.3.1 貓狗數(shù)據(jù)預(yù)處理195
10.3.2 建立網(wǎng)絡(luò)貓狗分類196
10.4 小結(jié)199
第11章 遷移學(xué)習(xí)200
11.1 定義和方法200
11.2 螞蟻和蜜蜂分類實戰(zhàn)202
11.2.1 加載數(shù)據(jù)202
11.2.2 定義訓(xùn)練方法204
11.2.3 可視化預(yù)測結(jié)果205
11.2.4 遷移學(xué)習(xí)方法一:微調(diào)網(wǎng)絡(luò)206
11.2.5 遷移學(xué)習(xí)方法二:特征提取器208
11.3 小結(jié)209
第12章 人臉檢測和識別210
12.1 人臉檢測210
12.1.1 定義和研究現(xiàn)狀210
12.1.2 經(jīng)典算法213
12.1.3 應(yīng)用領(lǐng)域216
12.2 人臉識別217
12.2.1 定義和研究現(xiàn)狀217
12.2.2 經(jīng)典算法220
12.2.3 應(yīng)用領(lǐng)域221
12.3 人臉檢測與識別實戰(zhàn)222
12.3.1 Dlib人臉檢測222
12.3.2 基于MTCNN的人臉識別225
12.4 小結(jié)227
第13章 生成對抗網(wǎng)絡(luò)228
13.1 生成對抗網(wǎng)絡(luò)簡介228
13.2 數(shù)學(xué)模型230
13.3 生成手寫體數(shù)字圖片實戰(zhàn)233
13.3.1 基本網(wǎng)絡(luò)結(jié)構(gòu)233
13.3.2 準備數(shù)據(jù)234
13.3.3 定義網(wǎng)絡(luò)和訓(xùn)練235
13.3.4 生成結(jié)果分析237
13.4 生成人像圖片實戰(zhàn)238
13.4.1 DCGAN簡介239
13.4.2 數(shù)據(jù)準備239
13.4.3 生成對抗網(wǎng)絡(luò)的實現(xiàn)241
13.5 小結(jié)250
第14章 目標檢測251
14.1 目標檢測概述251
14.1.1 傳統(tǒng)目標檢測算法的研究現(xiàn)狀252
14.1.2 深度學(xué)習(xí)目標檢測算法的研究現(xiàn)狀252
14.1.3 應(yīng)用領(lǐng)域253
14.2 檢測算法模型253
14.2.1 傳統(tǒng)的目標檢測模型253
14.2.2 基于深度學(xué)習(xí)的目標檢測模型255
14.3 目標檢測的基本概念259
14.3.1 IoU259
14.3.2 NMS261
14.4 Faster R-CNN目標檢測264
14.4.1 網(wǎng)絡(luò)原理265
14.4.2 實戰(zhàn)269
14.5 小結(jié)273
第15章 圖像風(fēng)格遷移274
15.1 風(fēng)格遷移概述274
15.2 固定風(fēng)格固定內(nèi)容的遷移277
15.2.1 固定風(fēng)格固定內(nèi)容遷移的原理277
15.2.2 PyTorch實現(xiàn)固定風(fēng)格遷移280
15.3 快速風(fēng)格遷移288
15.3.1 快速遷移模型的原理288
15.3.2 PyTorch實現(xiàn)快速風(fēng)格遷移290
15.4 小結(jié)297
第16章 ViT298
16.1 ViT詳解298
16.1.1 Transformer模型中的Attention注意力機制298
16.1.2 視覺Transformer模型詳解302
16.2 ViT圖像分類實戰(zhàn)305
16.2.1 數(shù)據(jù)準備305
16.2.2 定義ViT模型306
16.2.3 定義工具函數(shù)311
16.2.4 定義訓(xùn)練過程314
16.2.5 運行結(jié)果317
16.3 小結(jié)318
參考文獻319