人工智能經(jīng)歷了3次發(fā)展浪潮,其中第三次是深度學(xué)習(xí)的復(fù)興,就目前來看似乎還處在循環(huán)的前半段: 技術(shù)突破先前的局限而快速發(fā)展,投資狂熱,追隨者甚多。問題是現(xiàn)在的熱潮是技術(shù)萌芽期的過分膨脹還是曇花一現(xiàn)且將逐漸冷卻后進入寒冬?Keras之父Francois Chollet總結(jié)了深度學(xué)習(xí)自身的特質(zhì)簡單、可擴展、多功能與可利用,并稱它確實是人工智能的革命,且能長盛不衰。李開復(fù)也曾總結(jié)第三次浪潮是由商業(yè)需求主導(dǎo)的,而這次更多的是解決問題。
那是不是每個人都要學(xué)習(xí)人工智能、深度學(xué)習(xí)呢?計算機工程越來越龐大和細分,方向繁多,諸如前端、后端、測試等,縱然是計算機從業(yè)人員,到后來大多也只能集中精力在一個方向上深入。實質(zhì)上,深度學(xué)習(xí)更像是一種新的思維,能補充我們對計算機乃至世界運行規(guī)律的理解。深度學(xué)習(xí)將傳統(tǒng)機器學(xué)習(xí)中最為復(fù)雜的特征工程自動化,使機器可以自主地抽象和學(xué)習(xí)更具統(tǒng)計意義的模式。
深度學(xué)習(xí)如何高效入門可以說是AI領(lǐng)域老生常談的一個問題,一種思路是從傳統(tǒng)的統(tǒng)計學(xué)習(xí)開始,然后跟著書上推導(dǎo)公式學(xué)數(shù)學(xué); 另一種思路是從實驗入手,通過學(xué)習(xí)深度學(xué)習(xí)框架TensorFlow和Keras以及具體的圖像識別的任務(wù)開展。
本書為什么會在眾多語言當(dāng)中選擇Python實現(xiàn)深度學(xué)習(xí)呢?其主要原因如下: Python是一種效率極高的語言; 相比其他語言,Python語言簡單、易學(xué)、易讀、易維護。
另外,對程序員來說,社區(qū)是非常重要的,大多數(shù)程序員都需要向解決過類似問題的人尋求建議,在需要有人幫助解決問題時,有一個聯(lián)系緊密、互幫互助的社區(qū)至關(guān)重要,Python社區(qū)就是這樣一個社區(qū)。
本書立足實踐,以通俗易懂的方式詳細介紹深度學(xué)習(xí)的基礎(chǔ)理論以及相關(guān)的必要知識,同時以實際動手操作的方式引導(dǎo)讀者入門人工智能深度學(xué)習(xí)。本書編寫特色主要表現(xiàn)在:
1. 內(nèi)容淺顯易懂
本書不會糾纏于晦澀難懂的概念,整本書力求用淺顯易懂的語言引出概念,用常用的方式介紹編程、用清晰的邏輯解釋思路,幫助非專業(yè)人員理解神經(jīng)網(wǎng)絡(luò)與深度學(xué)習(xí)。
2. 知識點全面,實例豐富
深度學(xué)習(xí)涉及面較廣,且有一定的門檻。沒有一定廣度很難達到一定深度,所以本書內(nèi)容包括機器學(xué)習(xí)、深度學(xué)習(xí)的主要內(nèi)容。書中各章一般先介紹相應(yīng)的架構(gòu)或原理,再通過相應(yīng)的經(jīng)典實例進行說明,幫助讀者快速領(lǐng)會知識要點。
3. 圖文并茂,實用性強
在深度學(xué)習(xí)中,有很多抽象的概念、復(fù)雜的算法、深奧的理論等,如果只用文字來描述,很難達到使讀者茅塞頓開的效果,如果用一些圖形進行展現(xiàn),再加上文字注明,那么呈現(xiàn)的效果是一目了然的。
4. 實用性強
本書在理論上突出可讀性并兼具知識的深度和廣度,實踐上強調(diào)可操作性并兼具應(yīng)用的廣泛性。書中每章都做到理論與實例相結(jié)合,內(nèi)容豐富、實用,幫助讀者快速領(lǐng)會知識要點。并且書中源代碼、數(shù)據(jù)集等讀者都可免費獲得。
全書共10章,每章的主要內(nèi)容如下。
第1章掀開深度學(xué)習(xí)的面紗,主要包括深度學(xué)習(xí)是什么、機器學(xué)習(xí)與深度學(xué)習(xí)、深度學(xué)習(xí)的應(yīng)用領(lǐng)域與架構(gòu)等內(nèi)容。
第2章神經(jīng)網(wǎng)絡(luò)的數(shù)學(xué)基礎(chǔ),主要包括認(rèn)識神經(jīng)網(wǎng)絡(luò)、神經(jīng)網(wǎng)絡(luò)的數(shù)據(jù)表示、張量運算、梯度優(yōu)化、神經(jīng)網(wǎng)絡(luò)剖析、Keras介紹等內(nèi)容。
第3章機器學(xué)習(xí)的基礎(chǔ),主要包括機器學(xué)習(xí)概述、過擬合和欠擬合、監(jiān)督學(xué)習(xí)與數(shù)據(jù)預(yù)處理等內(nèi)容。
第4章神經(jīng)網(wǎng)絡(luò)分析與應(yīng)用,主要包括單層感知器、激活函數(shù)、解決XOR問題、優(yōu)化算法等內(nèi)容。
第5章計算視覺分析與應(yīng)用,主要包括從全連接到卷積、卷積神經(jīng)網(wǎng)絡(luò)、現(xiàn)代經(jīng)典網(wǎng)絡(luò)、卷積神經(jīng)網(wǎng)絡(luò)CIFAR10數(shù)據(jù)集分類等內(nèi)容。
第6章文本和序列分析與應(yīng)用,主要包括處理文本數(shù)據(jù)、循環(huán)神經(jīng)網(wǎng)絡(luò)、ACF和PACF、循環(huán)神經(jīng)網(wǎng)絡(luò)的應(yīng)用等內(nèi)容。
第7章目標(biāo)檢測分析與應(yīng)用,主要包括目標(biāo)檢測概述、目標(biāo)檢測法、典型的目標(biāo)檢測算法等內(nèi)容。
第8章生成式深度學(xué)習(xí)分析與應(yīng)用,主要包括使用LSTM生成文本、DeepDream算法、風(fēng)格遷移、深入理解自編碼器、生成對抗網(wǎng)絡(luò)等內(nèi)容。
第9章人臉檢測分析與應(yīng)用,主要包括KLT、CAMShift跟蹤目標(biāo)、OpenCV實現(xiàn)人臉識別、HOG識別微笑、卷積神經(jīng)網(wǎng)絡(luò)實現(xiàn)人臉識別微笑檢測、MTCNN算法實現(xiàn)人臉檢測等內(nèi)容。
第10章強化學(xué)習(xí)分析與應(yīng)用,主要包括強化學(xué)習(xí)的特點與要素、Q學(xué)習(xí)、深度Q學(xué)習(xí)、雙重深度Q網(wǎng)絡(luò)、對偶深度Q網(wǎng)絡(luò)、深度Q網(wǎng)絡(luò)經(jīng)典應(yīng)用等內(nèi)容。
本書可作為高等學(xué)校相關(guān)專業(yè)本科生和研究生的教學(xué)用書,也可作為相關(guān)專業(yè)科研人員、學(xué)者、工程技術(shù)人員的參考用書。
本書是由佛山科學(xué)技術(shù)學(xué)院丁偉雄編寫。
由于時間倉促,加之作者水平有限,書中疏漏之處在所難免,誠懇地期望得到各領(lǐng)域的專家和廣大讀者的批評指正。
作者2024年6月
下載源碼
第1章掀開深度學(xué)習(xí)的面紗
1.1深度學(xué)習(xí)是什么
1.1.1深度學(xué)習(xí)的基本思想
1.1.2深度學(xué)習(xí)和淺層學(xué)習(xí)
1.1.3深度學(xué)習(xí)與神經(jīng)網(wǎng)絡(luò)
1.1.4深度學(xué)習(xí)的訓(xùn)練過程
1.2機器學(xué)習(xí)與深度學(xué)習(xí)
1.2.1機器學(xué)習(xí)的算法流程
1.2.2機器學(xué)習(xí)算法建模
1.2.3機器學(xué)習(xí)任務(wù)
1.2.4深度學(xué)習(xí)算法流程
1.3深度學(xué)習(xí)的應(yīng)用領(lǐng)域與架構(gòu)
1.3.1深度學(xué)習(xí)的應(yīng)用領(lǐng)域
1.3.2深度學(xué)習(xí)相關(guān)框架
1.3.3深度學(xué)習(xí)實際應(yīng)用
第2章神經(jīng)網(wǎng)絡(luò)的數(shù)學(xué)基礎(chǔ)
2.1認(rèn)識神經(jīng)網(wǎng)絡(luò)
2.2神經(jīng)網(wǎng)絡(luò)的數(shù)據(jù)表示
2.2.1標(biāo)量
2.2.2向量
2.2.3矩陣
2.2.43D張量與更高維張量
2.2.5關(guān)鍵屬性
2.2.6操作張量
2.2.7數(shù)據(jù)批量
2.2.8現(xiàn)實數(shù)據(jù)張量
2.3張量運算
2.3.1張量的創(chuàng)建
2.3.2索引和切片訪問張量中的數(shù)據(jù)
2.3.3逐元素運算
2.3.4張量變形
2.3.5廣播
2.3.6張量運算的幾何解釋
2.4梯度優(yōu)化
2.4.1導(dǎo)數(shù)
2.4.2梯度
2.4.3反向傳播算法
2.5神經(jīng)網(wǎng)絡(luò)剖析
2.5.1層
2.5.2模型
2.5.3損失函數(shù)與優(yōu)化器
2.6Keras介紹
2.6.1Keras的工作方式
2.6.2Keras的設(shè)計原則
2.6.3Keras深度學(xué)習(xí)鏈接庫特色
2.6.4使用Keras創(chuàng)建神經(jīng)網(wǎng)絡(luò)
2.6.5使用Keras實現(xiàn)二分類問題
2.6.6使用Keras處理多分類問題
2.6.7使用Keras實現(xiàn)預(yù)測房價問題
第3章機器學(xué)習(xí)的基礎(chǔ)
3.1機器學(xué)習(xí)概述
3.1.1機器學(xué)習(xí)的歷程
3.1.2機器學(xué)習(xí)的4個分支
3.1.3機器學(xué)習(xí)的步驟
3.2過擬合和欠擬合
3.2.1減小模型大小
3.2.2添加權(quán)重正則化
3.2.3添加dropout正則化
3.3監(jiān)督學(xué)習(xí)
3.3.1線性模型
3.3.2邏輯回歸
3.3.3支持向量機
3.3.4Adaboost算法
3.3.5決策樹
3.3.6隨機森林
3.4數(shù)據(jù)預(yù)處理
3.4.1數(shù)據(jù)預(yù)處理概述
3.4.2數(shù)據(jù)清理
3.4.3數(shù)據(jù)集成
3.4.4數(shù)據(jù)變換
3.4.5數(shù)據(jù)歸約
3.4.6Python的數(shù)據(jù)預(yù)處理函數(shù)
第4章神經(jīng)網(wǎng)絡(luò)分析與應(yīng)用
4.1單層感知器
4.1.1分類特征表示
4.1.2單層感知器概述
4.1.3多層神經(jīng)網(wǎng)絡(luò)
4.2激活函數(shù)
4.2.1sigmoid激活函數(shù)
4.2.2tanh激活函數(shù)
4.2.3ReLU激活函數(shù)
4.2.4ReLU6激活函數(shù)
4.2.5Leaky ReLU激活函數(shù)
4.2.6softmax激活函數(shù)
4.2.7ELU激活函數(shù)
4.2.8Swish激活函數(shù)
4.2.9Mish激活函數(shù)
4.2.10Maxout激活函數(shù)
4.3解決XOR問題
4.4優(yōu)化算法
4.4.1梯度下降法
4.4.2AdaGrad算法
4.4.3RMSProp算法
4.4.4AdaDelta算法
4.4.5Adam算法
4.4.6各優(yōu)化方法實現(xiàn)
4.4.7無約束多維極值
第5章計算視覺分析與應(yīng)用
5.1從全連接到卷積
5.2卷積神經(jīng)網(wǎng)絡(luò)
5.2.1卷積計算過程
5.2.2感受野
5.2.3輸出特征尺寸計算
5.2.4全零填充
5.2.5批標(biāo)準(zhǔn)化
5.2.6池化
5.2.7舍棄
5.3現(xiàn)代經(jīng)典網(wǎng)絡(luò)
5.3.1LeNet網(wǎng)絡(luò)
5.3.2AlexNet網(wǎng)絡(luò)
5.3.3VGGNet網(wǎng)絡(luò)
5.3.4NiN
5.3.5Google Inception Net網(wǎng)絡(luò)
5.3.6ResNet網(wǎng)絡(luò)
5.3.7DenseNet網(wǎng)絡(luò)
5.4卷積神經(jīng)網(wǎng)絡(luò)CIFAR10數(shù)據(jù)集分類
第6章文本和序列分析與應(yīng)用
6.1處理文本數(shù)據(jù)
6.1.1單詞和字符的onehot編碼
6.1.2使用詞嵌入
6.2循環(huán)神經(jīng)網(wǎng)絡(luò)
6.2.1循環(huán)神經(jīng)網(wǎng)絡(luò)概述
6.2.2Keras中的循環(huán)層
6.2.3RNN的改進算法
6.3ACF和PACF
6.3.1截尾與拖尾
6.3.2自回歸過程
6.3.3移動平均過程
6.4循環(huán)神經(jīng)網(wǎng)絡(luò)的應(yīng)用
6.4.1溫度預(yù)測
6.4.2數(shù)據(jù)準(zhǔn)備
6.4.3基準(zhǔn)方法
6.4.4基本的機器學(xué)習(xí)方法
6.4.5第一個循環(huán)網(wǎng)絡(luò)基準(zhǔn)
6.4.6使用dropout降低過擬合
6.4.7循環(huán)層堆疊
6.4.8使用雙向RNN
第7章目標(biāo)檢測的分析與應(yīng)用
7.1目標(biāo)檢測概述
7.1.1傳統(tǒng)目標(biāo)檢測
7.1.2基于深度學(xué)習(xí)的目標(biāo)檢測
7.1.3目標(biāo)檢測的未來
7.1.4目標(biāo)檢測面臨的挑戰(zhàn)
7.2目標(biāo)檢測法
7.2.1選擇性搜索算法
7.2.2保持多樣性的策略
7.2.3錨框?qū)崿F(xiàn)
7.2.4多尺度目標(biāo)檢測
7.3典型的目標(biāo)檢測算法
7.3.1RCNN算法
7.3.2Fast RCNN算法
7.3.3Faster RCNN算法
7.3.4RPN算法
7.3.5YOLO算法
7.3.6SSD算法
第8章生成式深度學(xué)習(xí)分析與應(yīng)用
8.1使用LSTM生成文本
8.1.1如何生成序列數(shù)據(jù)
8.1.2采樣策略
8.2DeepDream算法
8.2.1DeepDream算法原理
8.2.2DeepDream算法流程
8.2.3DeepDream算法實現(xiàn)
8.3風(fēng)格遷移
8.3.1風(fēng)格遷移定義
8.3.2風(fēng)格遷移方法
8.3.3風(fēng)格遷移實例
8.4深入理解自編碼器
8.4.1自編碼器
8.4.2欠完備自編碼器
8.4.3正則自編碼
8.5生成對抗網(wǎng)絡(luò)
8.5.1GAN原理
8.5.2GAN實現(xiàn)
第9章人臉檢測分析與應(yīng)用
9.1KLT
9.1.1光流
9.1.2KLT算法
9.2CAMShift跟蹤目標(biāo)
9.2.1MeanShift算法
9.2.2CAMShift算法
9.3OpenCV實現(xiàn)人臉識別
9.3.1Haar級聯(lián)實現(xiàn)人臉檢測
9.3.2級聯(lián)實現(xiàn)實時人臉檢測與人臉身份識別
9.4HOG識別微笑
9.4.1HOG原理
9.4.2HOG實例應(yīng)用
9.5卷積神經(jīng)網(wǎng)絡(luò)實現(xiàn)人臉識別微笑檢測
9.6MTCNN算法實現(xiàn)人臉檢測
第10章強化學(xué)習(xí)分析與應(yīng)用
10.1強化學(xué)習(xí)的特點與要素
10.2Q學(xué)習(xí)
10.2.1Q學(xué)習(xí)的原理
10.2.2Q學(xué)習(xí)經(jīng)典應(yīng)用
10.3深度Q學(xué)習(xí)
10.3.1經(jīng)驗回放
10.3.2回合函數(shù)的近似法
10.3.3半梯度下降法
10.3.4目標(biāo)網(wǎng)絡(luò)
10.3.5相關(guān)算法
10.3.6訓(xùn)練算法
10.3.7深度Q學(xué)習(xí)的應(yīng)用
10.4雙重深度Q網(wǎng)絡(luò)
10.5對偶深度Q網(wǎng)絡(luò)
10.6深度Q網(wǎng)絡(luò)經(jīng)典應(yīng)用
參考文獻