作為一名在人工智能領域搬磚了十幾年的老工匠,我非常高興與大家共同學習和探討深度學習的那些事兒。書中闡述的很多觀點和實踐,都是我多年來的教學經(jīng)驗和項目經(jīng)驗累積,是入門深度學習必須要掌握的基本功。感謝讀者朋友們選擇本書作為開啟深度學習實踐的教材,期待閱讀本書后,大家可以領悟并掌握深度學習的“套路”,并舉一反三,輕松駕馭學業(yè)和工作中與深度學習相關的任務。
2020年,COVID19席卷全球、國際形勢瞬息萬變,加速了中國產(chǎn)業(yè)政策和基礎教育的變革,同時也加快了走出“舒適區(qū)”的步伐。不難想象,未來20年,中國的人工智能必將進入高速發(fā)展階段,機遇與挑戰(zhàn)并存!俺孙L破浪會有時,直掛云帆濟滄!,我很期待下一代人工智能的領航人能在中國誕生,能在本書的讀者中產(chǎn)生。
特色一: 理論和代碼結合、實踐與平臺結合,幫助讀者快速掌握深度學習基本功
目前在市面上,關于人工智能和深度學習的圖書已經(jīng)汗牛充棟,但大多偏重理論,對于AI實踐應用的介紹涉獵較少。但以我多年的經(jīng)驗來看,作為深度學習的初學者,應該更需要一本理論和代碼結合、實踐與平臺結合的書,因為多數(shù)開發(fā)者更習慣通過實踐代碼來理解模型背后的原理。本書介紹的內容和相關代碼,都配有在線課程,讀者可掃描封底的二維碼獲取。在線課程以Jupyter notebook的方式呈現(xiàn),代碼可以在線運行。
建議本書最佳的閱讀方式: 閱讀本書時,讀者可以觀看視頻課程,同時在線運行實踐代碼,觀察打印結果。通過紙質圖書、線上課程視頻和交互式的編程平臺三位一體的設計策略,可以幫助讀者在最短的時間內,輕松愉悅地掌握深度學習的基本功,這就是本書撰寫的初衷。
■圖理論知識講解和可運行代碼演示一體化
特色二: 工業(yè)實踐案例和作業(yè)結合,幫助讀者快速具備深度學習應用的能力
很多接觸深度學習時間不是很長的開發(fā)者都會面臨一個困惑,雖然系統(tǒng)學習了很多相關課程,能獨立實踐經(jīng)典的學術問題,并追平領先的效果,但在產(chǎn)業(yè)應用時,仍然信心不足,感覺自己和在工業(yè)界摸爬滾打多年的工程師們有很大的差距。因此本書在撰寫時,除了選取一些經(jīng)典的學術問題,作為介紹深度學習知識的案例外,還選取了一些真實的工業(yè)實踐項目,作為比賽題和作業(yè)題。這些項目都來源于百度工程師正在研發(fā)的與人工智能相關的工業(yè)應用。
在這些真實的工業(yè)實踐項目中,讀者會接觸到很多獨有的數(shù)據(jù)集和有趣的問題,并和成千上萬的讀者們共同較量模型優(yōu)化的效果。如果您能在這些實踐中獨占鰲頭,那么恭喜您,與在人工智能前端沖浪已久的工程師們相比,您已經(jīng)毫不遜色。如果愿意,您甚至可以嘗試面試頂級科技公司,從事與人工智能相關的研發(fā)工作。
特色三: 深度學習全流程工具支撐,幫助讀者武裝到牙齒
在人工智能應用飛速落地的今天,如何實現(xiàn)快速建模,如何提升模型的訓練和部署效率,已經(jīng)成為工業(yè)界普遍關注的課題。因此本書在介紹深度學習的各種“生存技巧”之后,還為讀者配備了飛槳“最先進武器”,內容由“武器”的制造者——飛槳產(chǎn)品架構師們共同撰寫。高超生存技巧,配以先進的武器,相信可以讓讀者更加自信地駕馭這場轟轟烈烈的AI浪潮,并大放異彩。
全書共8章,可分為3部分: 第1部分包括第1~2章,以最基礎的深度學習任務(房價預測和手寫數(shù)字識別)為例,內容由淺入深,層層剖析,幫助讀者入門深度學習的編程并掌握深度學習各環(huán)節(jié)的優(yōu)化方法; 第2部分包括第3~7章,以計算機視覺、自然語言處理和推薦系統(tǒng)三個深度學習最常用領域的典型任務為例,介紹各領域的基礎知識和應用深度學習解決實際問題的方案及實踐過程,幫助讀者對深度學習模型有更深刻的理解; 第3部分為第8章,系統(tǒng)化地介紹飛槳提供的各種武器,包括模型資源、工業(yè)化訓練和部署工具,以及如何基于飛槳進行二次研發(fā)。
特別感謝王海峰老師在百忙中給本書作序,您對人工智能發(fā)展趨勢的深刻理解為我們提供了方向指引; 感謝吳甜女士的指導和幫助,您對人工智能技術的熱愛、對AI人才的重視和培育讓本書的誕生成為可能; 感謝馬艷軍、于佃海、李軒涯、周奇在本書撰寫過程中的大力支持,讓其更匹配深度學習讀者的需求; 感謝飛槳研發(fā)工程師們?yōu)楸緯膶懽魈峁┗A素材和提供簡潔、高效、易用的實踐代碼; 最后還要感謝遲愷、吳蕾、聶浪、張克明、錢芳、鄭子禾等同學對于本書細致入微的編輯和校對。
如果通過本書的學習,能夠讓讀者得到開悟,并激發(fā)大家在深度學習領域持續(xù)深耕的興趣,那將是本書作者的最大的榮幸。由于本書作者學識有限,深度學習方法也還在不斷完善,書中難免存在疏漏,希望讀者朋友不吝賜教,共同將這本書打造得更完美。
百度杰出架構師、飛槳產(chǎn)品負責人
2020年11月于北京
第1章零基礎入門深度學習
1.1機器學習和深度學習綜述
1.1.1人工智能、機器學習、深度學習的關系
1.1.2機器學習
1.1.3深度學習
1.1.4作業(yè)
1.2使用Python和NumPy構建神經(jīng)網(wǎng)絡模型
1.2.1波士頓房價預測任務
1.2.2構建波士頓房價預測任務的神經(jīng)網(wǎng)絡模型
1.2.3小結
1.2.4作業(yè)
1.3飛槳開源深度學習平臺介紹
1.3.1深度學習框架
1.3.2飛槳開源深度學習平臺
1.3.3作業(yè)
1.4使用飛槳重寫房價預測模型
1.4.1飛槳深度學習平臺設計之“道”
1.4.2使用飛槳構建波士頓房價預測模型
1.4.3作業(yè)
1.5NumPy介紹
1.5.1概述
1.5.2基礎數(shù)據(jù)類型: ndarray數(shù)組
1.5.3隨機數(shù)np.random
1.5.4線性代數(shù)
1.5.5NumPy保存和導入文件
1.5.6NumPy應用舉例
1.5.7作業(yè)
第2章一個案例帶你吃透深度學習
2.1使用飛槳完成手寫數(shù)字識別模型
2.1.1手寫數(shù)字識別任務
2.1.2構建手寫數(shù)字識別的神經(jīng)網(wǎng)絡模型
2.1.3飛槳各模型代碼結構一致,大大降低了用戶的編碼難度
2.1.4采用“橫縱式”教學法,適用于深度學習初學者
2.2通過極簡方案快速構建手寫數(shù)字識別模型
2.2.1通過極簡方案構建手寫數(shù)字識別模型
2.2.2作業(yè)
2.3“手寫數(shù)字識別”之數(shù)據(jù)處理
2.3.1概述
2.3.2讀入數(shù)據(jù)并劃分數(shù)據(jù)集
2.3.3訓練樣本亂序并生成批次數(shù)據(jù)
2.3.4校驗數(shù)據(jù)有效性
2.3.5封裝數(shù)據(jù)讀取與處理函數(shù)
2.3.6異步數(shù)據(jù)讀取
2.4“手寫數(shù)字識別”之網(wǎng)絡結構
2.4.1概述
2.4.2經(jīng)典的全連接神經(jīng)網(wǎng)絡
2.4.3卷積神經(jīng)網(wǎng)絡
2.5“手寫數(shù)字識別”之損失函數(shù)
2.5.1概述
2.5.2分類任務的損失函數(shù)
2.5.3作業(yè)
2.6“手寫數(shù)字識別”之優(yōu)化算法
2.6.1概述
2.6.2設置學習率
2.6.3學習率的主流優(yōu)化算法
2.6.4作業(yè)
2.7“手寫數(shù)字識別”之資源配置
2.7.1概述
2.7.2單GPU訓練
2.7.3分布式訓練
2.8“手寫數(shù)字識別”之訓練調試與優(yōu)化
2.8.1概述
2.8.2計算模型的分類準確率
2.8.3檢查模型訓練過程,識別潛在訓練問題
2.8.4加入校驗或測試,更好評價模型效果
2.8.5加入正則化項,避免模型過擬合
2.8.6可視化分析
2.8.7作業(yè)
2.9“手寫數(shù)字識別”之恢復訓練
2.9.1概述
2.9.2恢復訓練
2.10完整掌握深度學習建模小結
第3章計算機視覺
3.1卷積神經(jīng)網(wǎng)絡基礎
3.1.1概述
3.1.2卷積神經(jīng)網(wǎng)絡
3.1.3作業(yè)
3.2卷積的四種操作
3.2.1概述
3.2.2池化
3.2.3ReLU激活函數(shù)
3.2.4批歸一化
3.2.5丟棄法
3.2.6作業(yè)
3.3圖像分類
3.3.1概述
3.3.2LeNet
3.3.3AlexNet
3.3.4VGG
3.3.5GoogLeNet
3.3.6ResNet
3.3.7小結
3.3.8作業(yè)
第4章目標檢測YOLOv3
4.1目標檢測基礎概念
4.1.1概述
4.1.2目標檢測發(fā)展歷程
4.1.3目標檢測基礎概念
4.2目標檢測數(shù)據(jù)處理
4.3目標檢測YOLOv3
4.3.1YOLOv3模型設計思想
4.3.2產(chǎn)生候選區(qū)域
4.3.3對候選區(qū)域進行標注
4.3.4圖形特征提取
4.3.5計算預測框位置和類別
4.3.6定義損失函數(shù)
4.3.7多尺度檢測
4.3.8網(wǎng)絡訓練
4.3.9模型預測
4.3.10模型效果及可視化展示
4.4AI識蟲比賽
4.4.1AI識蟲比賽
4.4.2實現(xiàn)參考
4.4.3更多思路參考
第5章自然語言處理
5.1自然語言處理
5.1.1概述
5.1.2自然語言處理的發(fā)展歷程
5.1.3自然語言處理技術面臨的挑戰(zhàn)
5.1.4自然語言處理的常見任務
5.1.5使用深度學習解決自然語言處理任務的套路
5.1.6使用飛槳探索自然語言處理
5.1.7作業(yè)
5.2詞向量Word Embedding
5.2.1概述
5.2.2如何將詞轉換為向量
5.2.3如何讓向量具有語義信息
5.3使用飛槳實現(xiàn)Skipgram
5.3.1概述
5.3.2數(shù)據(jù)處理
5.3.3網(wǎng)絡定義
5.3.4網(wǎng)絡訓練
5.3.5詞向量的有趣使用
5.3.6作業(yè)
第6章情感分析
6.1自然語言情感分析
6.1.1概述
6.1.2使用深度神經(jīng)網(wǎng)絡完成情感分析任務
6.1.3作業(yè)
6.2循環(huán)神經(jīng)網(wǎng)絡RNN和長短時記憶網(wǎng)絡LSTM
6.2.1RNN和LSTM網(wǎng)絡的設計思考
6.2.2循環(huán)神經(jīng)網(wǎng)絡RNN
6.2.3長短時記憶網(wǎng)絡LSTM
6.2.4作業(yè)
6.3使用LSTM完成情感分析任務
6.3.1概述
6.3.2使用飛槳實現(xiàn)基于LSTM的情感分析模型
6.4AI文本分類比賽
6.4.1中文新聞標題分類比賽
6.4.2更多思路參考
第7章推薦系統(tǒng)
7.1推薦系統(tǒng)介紹
7.1.1推薦系統(tǒng)的產(chǎn)生背景
7.1.2推薦系統(tǒng)的基本概念
7.1.3思考有哪些信息可以用于推薦
7.1.4使用飛槳探索電影推薦
7.1.5作業(yè)
7.2數(shù)據(jù)處理與讀取
7.2.1數(shù)據(jù)集回顧
7.2.2數(shù)據(jù)處理流程
7.2.3構建數(shù)據(jù)讀取器
7.2.4小結
7.3電影推薦模型設計
7.3.1模型設計介紹
7.3.2Embedding介紹
7.3.3電影特征提取網(wǎng)絡
7.3.4相似度計算
7.3.5小結
7.4模型訓練與特征保存
7.4.1模型訓練
7.4.2保存特征
7.4.3作業(yè)
7.5電影推薦
7.5.1根據(jù)用戶喜好推薦電影
7.5.2幾點思考收獲
7.5.3在工業(yè)實踐中的推薦系統(tǒng)
7.5.4作業(yè)
第8章精通深度學習的高級內容
8.1精通深度學習的高級內容
8.1.1為什么要精通深度學習的高級內容
8.1.2高級內容包含哪些武器
8.1.3飛槳開源組件使用場景概覽
8.2模型資源之一: 預訓練模型應用工具PaddleHub
8.2.1概述
8.2.2預訓練模型的應用背景
8.2.3快速使用PaddleHub
8.2.4PaddleHub提供的預訓練模型
8.2.5使用自己的數(shù)據(jù)Finetune PaddleHub預訓練模型
8.2.6PaddleHub創(chuàng)意賽
8.2.7往屆優(yōu)秀學員作品展示
8.3模型資源之二: 各領域的開發(fā)套件
8.3.1概述
8.3.2PaddleSeg用于解決圖像分割的問題
8.3.3PaddleSeg是開發(fā)套件,不僅是模型庫
8.3.4PaddleSeg實戰(zhàn)
8.3.5作業(yè)
8.3.6相關參考
8.3.7往屆優(yōu)秀學員作品展示
8.4模型資源之三: 模型庫介紹
8.4.1概述
8.4.2從模型庫中篩選自己需要的模型
8.4.3使用飛槳模型庫或在其基礎上二次研發(fā)的優(yōu)勢
8.4.4一個案例掌握Models的使用方法
8.4.5相關參考
8.5設計思想、靜態(tài)圖、動態(tài)圖和二次研發(fā)
8.5.1飛槳設計思想的核心概念
8.5.2飛槳聲明式編程(靜態(tài)圖)與命令式編程(動態(tài)圖)
8.5.3飛槳二次研發(fā)
8.6工業(yè)部署
8.6.1概述
8.6.2飛槳模型部署組件介紹
8.6.3飛槳原生推理庫Paddle Inference
8.6.4飛槳服務化部署框架Paddle Serving
8.6.5飛槳輕量化推理引擎Paddle Lite
8.6.6飛槳模型壓縮工具PaddleSlim
8.6.7往屆優(yōu)秀學員作品展示
8.7飛槳全流程開發(fā)工具PaddleX
8.7.1飛槳全流程開發(fā)工具PaddleX
8.7.2PaddleX圖形化開發(fā)界面
8.7.3PaddleX 快速使用方法
8.7.4PaddleX客戶端使用方法
8.7.5往屆優(yōu)秀學員作品展示
8.8應用啟發(fā): 行業(yè)應用與項目案例
8.8.1人工智能在中國的發(fā)展和落地概況
8.8.2傳統(tǒng)行業(yè)有AI應用空間嗎
8.8.3項目案例: 飛槳助力國網(wǎng)山東進行輸電通道可視化巡檢
8.8.4作業(yè)
8.8.5往屆優(yōu)秀學員作品展示