大約在一百年前,電氣化改變了交通運輸行業(yè)、制造業(yè)、醫(yī)療行業(yè)、通信行業(yè),如今AI帶來了同樣巨大的改變。AI的各個分支中發(fā)展為迅速的方向之一就是深度學(xué)習(xí)。
本書主要涉及以下內(nèi)容:第1部分是神經(jīng)網(wǎng)絡(luò)的基礎(chǔ),學(xué)習(xí)如何建立神經(jīng)網(wǎng)絡(luò),以及如何在數(shù)據(jù)上面訓(xùn)練它們。第2部分進行深度學(xué)習(xí)方面的實踐,學(xué)習(xí)如何構(gòu)建神經(jīng)網(wǎng)絡(luò)與超參數(shù)調(diào)試、正則化以及一些高級優(yōu)化算法。第3部分學(xué)習(xí)卷積神經(jīng)網(wǎng)絡(luò)(CNN),以及如何搭建模型、有哪些經(jīng)典模型。它經(jīng)常被用于圖像領(lǐng)域,此外目標檢測、風(fēng)格遷移等應(yīng)用也將涉及。后在第4部分學(xué)習(xí)序列模型,以及如何將它們應(yīng)用于自然語言處理等任務(wù)。序列模型講到的算法有循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN)、長短期記憶網(wǎng)絡(luò)(LSTM)、注意力機制。
通過以上內(nèi)容的學(xué)習(xí),讀者可以入門深度學(xué)習(xí)領(lǐng)域并打下扎實基礎(chǔ),為后續(xù)了解和探索人工智能前沿科技做知識儲備。
本書配有電子課件,需要配套資源的教師可登錄機械工業(yè)出版社教育服務(wù)網(wǎng)www.cmpedu.com免費注冊后下載。
本教材的作者是海外引進人才,既有國外學(xué)習(xí)工作的背景,也有在國內(nèi)院校教學(xué)的經(jīng)驗,本書正是將二者有機結(jié)合起來,編寫而成的深度學(xué)習(xí)的入門級教材。通過本書的學(xué)習(xí),可以打下扎實基礎(chǔ),為后續(xù)了解人工智能前沿做知識儲備。
前 言
不論你是生活在哪里、工作學(xué)習(xí)于什么領(lǐng)域,可能都已經(jīng)發(fā)現(xiàn)人工智能的時代已經(jīng)飛快地向人們走來,這種感受就像是浪潮不斷漲起,它將過去的一些傳統(tǒng)的工作方式革新甚至取代。比如說,人工智能在圖像識別、圖像生成、自然語言翻譯、自動駕駛領(lǐng)域的進步,使得傳統(tǒng)的安保、插畫、翻譯、駕駛等工作受到前所未有的挑戰(zhàn)。未來它也將不斷改變現(xiàn)代人的生活,并且變革人們的工作內(nèi)容。
這背后的技術(shù)進步正是由于深度學(xué)習(xí)的人工智能第三次科技浪潮的興起,它順應(yīng)著數(shù)據(jù)的大爆發(fā)與芯片技術(shù)的高度發(fā)展,孕育了當(dāng)今時代新的發(fā)展機遇,值得年輕的學(xué)生與技術(shù)工作者去努力學(xué)習(xí)。然而現(xiàn)有的教材通常側(cè)重理論基礎(chǔ),與實踐結(jié)合不夠,或者實踐的講解不夠深入、詳細。同時有些國外經(jīng)典教材是英文撰寫,不利于國內(nèi)英語基礎(chǔ)不好的讀者學(xué)習(xí)。
我深入了解到工業(yè)界學(xué)習(xí)者和在校學(xué)生的這些學(xué)習(xí)需求,所以編寫了本書。深度學(xué)習(xí)自身是一個實踐性要求極高的領(lǐng)域,需要借助實例去講解,所以本書參考了吳恩達教授的課程,在編寫中詳細地介紹了各種深度學(xué)習(xí)模型的數(shù)學(xué)運算原理,對各種發(fā)展成熟的神經(jīng)網(wǎng)絡(luò)都有深入分析,為此閱讀本書需要高等數(shù)學(xué)、線性代數(shù)的基礎(chǔ)知識,并且會使用Python編程語言進行簡單的操作與數(shù)據(jù)分析。本書主要涉及以下內(nèi)容:
第1部分是神經(jīng)網(wǎng)絡(luò)的基礎(chǔ),學(xué)習(xí)如何建立神經(jīng)網(wǎng)絡(luò),以及如何在數(shù)據(jù)上面訓(xùn)練它們。接下來在第2部分進行深度學(xué)習(xí)方面的實踐,學(xué)習(xí)如何構(gòu)建神經(jīng)網(wǎng)絡(luò)與超參數(shù)調(diào)試、正則化以及一些高級優(yōu)化算法。第3部分學(xué)習(xí)卷積神經(jīng)網(wǎng)絡(luò)(CNN),以及如何搭建模型、有哪些經(jīng)典模型。它經(jīng)常被用于圖像領(lǐng)域,此外目標檢測、風(fēng)格遷移等應(yīng)用也將涉及。后在第4部分學(xué)習(xí)序列模型,以及如何將它們應(yīng)用于自然語言處理等任務(wù)。序列模型講到的算法有循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN)、長短期記憶網(wǎng)絡(luò)(LSTM)、注意力機制。通過以上內(nèi)容的學(xué)習(xí),讀者可以入門深度學(xué)習(xí)領(lǐng)域并打下扎實基礎(chǔ),為后續(xù)了解和探索人工智能前沿科技做知識儲備。
我開始有寫一本深度學(xué)習(xí)教材的想法源于2020年開始在東北大學(xué)秦皇島分校講機器學(xué)習(xí)與深度學(xué)習(xí)相關(guān)課程,在實踐中積累教學(xué)經(jīng)驗,梳理了該領(lǐng)域的知識,雖然內(nèi)容繁多還有些雜亂,但是對讀者應(yīng)該有用。這個時候正好學(xué)院的郭院長組織編寫自動化系列教材,能與機械工業(yè)出版社合作,我就開始編寫本書。這期間科研工作也極為忙碌,所以經(jīng)歷了落筆、停滯、繼續(xù)重啟、再停滯,如此重復(fù)。中間想過放棄,但是羅編輯的耐心解答、郭院長的悉心鼓勵以及呂同學(xué)的大力幫忙,終還是讓這本書得以成形,也圓了我編著書籍的夢想。同時也要感謝我的家人在這期間對我的關(guān)懷和幫助,他們一直支持著我,無論我是在國外留學(xué)還是回國工作。
后,本人能力水平有限,希望讀者不吝賜教。
王舒禹
2022年12月
目 錄
前言
第1部分神經(jīng)網(wǎng)絡(luò)和深度學(xué)習(xí)
第1章深度學(xué)習(xí)簡介
1.1神經(jīng)網(wǎng)絡(luò)
1.2神經(jīng)網(wǎng)絡(luò)的監(jiān)督學(xué)習(xí)應(yīng)用
1.3為什么深度學(xué)習(xí)會興起
第2章神經(jīng)網(wǎng)絡(luò)的編程基礎(chǔ)
2.1二分類
2.2邏輯回歸
2.3邏輯回歸的代價函數(shù)
2.4梯度下降法
2.5計算圖
2.6使用計算圖求導(dǎo)數(shù)
2.7邏輯回歸中的梯度下降
2.8m個樣本的梯度下降
2.9向量化
2.10向量化邏輯回歸
2.11向量化邏輯回歸的輸出
2.12Python中的廣播
2.13numpy向量
2.14logistic損失函數(shù)的解釋
第3章淺層神經(jīng)網(wǎng)絡(luò)
3.1神經(jīng)網(wǎng)絡(luò)概述
3.2神經(jīng)網(wǎng)絡(luò)的表示
3.3計算一個神經(jīng)網(wǎng)絡(luò)的輸出
3.4多樣本向量化
3.5激活函數(shù)
3.6激活函數(shù)的導(dǎo)數(shù)
3.7神經(jīng)網(wǎng)絡(luò)的梯度下降
3.8理解反向傳播
3.9隨機初始化
第4章深層神經(jīng)網(wǎng)絡(luò)
4.1深層神經(jīng)網(wǎng)絡(luò)概述
4.2前向傳播和反向傳播
4.3深層網(wǎng)絡(luò)中矩陣的維數(shù)
4.4為什么使用深層表示
4.5超參數(shù)
第2部分改善深層神經(jīng)網(wǎng)絡(luò):超參數(shù)調(diào)試、正則化以及優(yōu)化
第5章深度學(xué)習(xí)的實踐
5.1訓(xùn)練、驗證、測試集
5.2偏差、方差
5.3機器學(xué)習(xí)基礎(chǔ)
5.4正則化
5.5正則化如何降低過擬合
5.6dropout正則化
5.7理解dropout
5.8其他正則化方法
5.9歸一化輸入
5.10梯度消失/梯度爆炸
5.11梯度的數(shù)值逼近
5.12梯度檢驗
第6章優(yōu)化算法
6.1mini-batch梯度下降
6.2理解mini-batch梯度下降法
6.3動量梯度下降法
6.4RMSprop
6.5Adam 優(yōu)化算法
6.6學(xué)習(xí)率衰減
6.7局部問題
第7章超參數(shù)調(diào)試、正則化
7.1調(diào)試處理
7.2超參數(shù)的合適范圍
7.3歸一化網(wǎng)絡(luò)的激活函數(shù)
7.4將batch norm擬合進神經(jīng)網(wǎng)絡(luò)
7.5batch歸一化分析
7.6softmax回歸
7.7訓(xùn)練一個softmax分類器
7.8TensorFlow
第3部分卷積神經(jīng)網(wǎng)絡(luò)及應(yīng)用
第8章卷積神經(jīng)網(wǎng)絡(luò)
8.1計算機視覺
8.2邊緣檢測示例
8.3邊緣檢測內(nèi)容
8.4填充
8.5卷積步長
8.6三維卷積
8.7單層卷積網(wǎng)絡(luò)
8.8簡單卷積網(wǎng)絡(luò)示例
8.9池化層
8.10卷積神經(jīng)網(wǎng)絡(luò)示例
8.11為什么使用卷積
第9章深度卷積網(wǎng)絡(luò):實例探究
9.1經(jīng)典網(wǎng)絡(luò)
9.2殘差網(wǎng)絡(luò)
9.3殘差網(wǎng)絡(luò)為什么有用
9.4網(wǎng)絡(luò)中的11卷積
9.5谷歌Inception網(wǎng)絡(luò)
9.6遷移學(xué)習(xí)
9.7數(shù)據(jù)增強
第10章目標檢測
10.1目標定位
10.2特征點檢測
10.3目標檢測
10.4滑動窗口的卷積實現(xiàn)
10.5Bounding Box預(yù)測
10.6交并比
10.7非極大值抑制
10.8Anchor Boxes
10.9YOLO算法
第11章特殊應(yīng)用:人臉識別和神經(jīng)風(fēng)格遷移
11.1One-Shot學(xué)習(xí)
11.2Siamese網(wǎng)絡(luò)
11.3Triplet損失
11.4人臉驗證與二分類
11.5神經(jīng)風(fēng)格遷移
11.6深度卷積網(wǎng)絡(luò)學(xué)習(xí)什么
11.7代價函數(shù)
11.8內(nèi)容代價函數(shù)
11.9風(fēng)格代價函數(shù)
11.10一維到三維推廣
第4部分序列模型
第12章循環(huán)序列模型
12.1為什么選擇序列模型
12.2數(shù)學(xué)符號
12.3循環(huán)神經(jīng)網(wǎng)絡(luò)模型
12.4通過時間的反向傳播
12.5不同類型的循環(huán)神經(jīng)網(wǎng)絡(luò)
12.6語言模型和序列生成
12.7對新序列采樣
12.8循環(huán)神經(jīng)網(wǎng)絡(luò)的梯度消失
12.9GRU單元
12.10長短期記憶
12.11雙向循環(huán)神經(jīng)網(wǎng)絡(luò)
12.12深層循環(huán)神經(jīng)網(wǎng)絡(luò)
第13章序列模型和注意力機制
13.1序列結(jié)構(gòu)的各種序列
13.2選擇可能的句子
13.3集束搜索
13.4改進集束搜索
13.5集束搜索的誤差分析
13.6注意力模型直觀理解
13.7注意力模型
附錄
附錄A深度學(xué)習(xí)符號指南
A.1數(shù)據(jù)標記與上下標
A.2神經(jīng)網(wǎng)絡(luò)模型
A.3正向傳播方程示例
A.4通用激活公式
A.5損失函數(shù)
A.6深度學(xué)習(xí)圖示
附錄B線性代數(shù)
B.1基礎(chǔ)概念和符號
B.2矩陣乘法〖=(〗