Python 深度學習 (Deep Learning with Python) Python深度学习

[美] 弗朗索瓦·肖萊

買這商品的人也買了...

商品描述

《Python深度學習》由Keras之父、現任Google人工智能研究員的Franc?ois Chollet執筆,詳盡展示了用Python、Keras、TensorFlow進行深度學習的探索實踐,涉及計算機視覺、自然語言處理、生成式模型等應用。在學習完本書後,讀者將了解深度學習、機器學習和神經網絡的關鍵概念,具備搭建自己的深度學習環境、建立圖像識別模型、生成圖像和文字等能力,學會解決現實世界中的深度學習問題。除此之外,本書還深刻剖析了當前的"人工智能熱",從理性的視角展望了深度學習在未來的可能性。

● 30多個代碼示例,帶你全面掌握如何用深度學習解決實際問題
● Keras框架速成的明智之選
●夯實深度學習基礎,在實踐中培養對深度神經網絡的良好直覺
●無須機器學習經驗和高等數學背景

"本書在當前的'人工智能熱'和深度學習的本來面目之間架起了一座橋樑。"--Peter Rabinovitch,雲平台Akamai高級性能工程師
"本書是助你進階為Keras及深度學習高手的秘笈。"--Claudio Rodriguez,IT服務公司Candid Partners高級DevOps工程師
"本書是我為華盛頓大學設計的一門深度學習課程所選的教材,非常實用。能夠直接得到Keras之父的建議真是一樁幸事。"--Amazon.com用戶Eric Nichols

作者簡介

弗朗索瓦•肖萊(François Chollet)

Keras之父,TensorFlow機器學習框架貢獻者,
Kaggle競賽教練,個人Kaggle競賽全球排名曾獲得第17名。
目前任職於Google,從事人工智能研究,尤其關注計算機視覺與機器學習在形式推理方面的應用。

目錄大綱

第一部分深度學習基礎
第1章什麼是深度學習2 

1.1人工智能、機器學習與深度學習2 
1.1.1人工智能3 
1.1.2機器學習3 
1.1.3從數據中學習表示4 
1.1.4深度學習之“深度” 6 
1.1.5用三張圖理解深度學習的工作原理7 
1.1.6深度學習已經取得的進展9 
1.1.7不要相信短期炒作9 
1.1.8人工智能的未來10 

1.2深度學習之前:機器學習簡史11 
1.2.1概率建模11 
1.2.2早期神經網絡11 
1.2.3核方法12 
1.2.4決策樹、隨機森林與梯度提昇機13 
1.2.5回到神經網絡14 
1.2.6深度學習有何不同14 
1.2.7機器學習現狀15 

1.3為什麼是深度學習,為什麼是現在15 
1.3.1硬件16 
1.3.2數據17
1.3.3算法17 
1.3.4新的投資熱潮17 
1.3.5深度學習的大眾化18 
1.3.6這種趨勢會持續嗎18 

第2章神經網絡的數學基礎20
 
2.1初識神經網絡20 

2.2神經網絡的數據表示23 
2.2.1標量(0D張量) 23 
2.2.2向量(1D張量) 24 
2.2.3矩陣(2D張量) 24 
2.2.4 3D張量與更高維張量24 
2.2.5關鍵屬性25 
2.2.6在Numpy中操作張量26 
2.2.7數據批量的概念27 
2.2.8現實世界中的數據張量27 
2.2.9向量數據27 
2.2.10時間序列數據或序列數據28 
2.2.11圖像數據28 
2.2.12視頻數據29 

2.3神經網絡的“齒輪”:張量運算29 
2.3.1逐元素運算30 
2.3.2廣播31
2.3.3張量點積32 
2.3.4張量變形34 
2.3.5張量運算的幾何解釋34 
2.3.6深度學習的幾何解釋35 

2.4神經網絡的“引擎”:基於梯度的優化36 
2.4.1什麼是導數37 
2.4.2張量運算的導數:梯度38 
2.4.3隨機梯度下降38 
2.4.4鍊式求導:反向傳播算法41 

2.5回顧第一個例子41 
本章小結42 

第3章神經網絡入門43 

3.1神經網絡剖析43 
3.1.1層:深度學習的基礎組件44 
3.1.2模型:層構成的網絡45 
3.1.3損失函數與優化器:配置學習過程的關鍵45 

3.2 Keras簡介46 
3.2.1 Keras、TensorFlow、Theano和CNTK 47 
3.2.2使用Keras開發:概述48 

3.3建立深度學習工作站49
3.3.1 Jupyter筆記本:運行深度學習實驗的首選方法49 
3.3.2運行Keras:兩種選擇50 
3.3.3在雲端運行深度學習任務:優點和缺點50 
3.3.4深度學習的最佳GPU 50 

3.4電影評論分類:二分類問題51 
3.4.1 IMDB數據集51 
3.4.2準備數據52 
3.4.3構建網絡52 
3.4.4驗證你的方法56 
3.4.5使用訓練好的網絡在新數據上生成預測結果59 
3.4.6進一步的實驗59 
3.4.7小結59 

3.5新聞分類:多分類問題59 
3.5.1路透社數據集60 
3.5.2準備數據61 
3.5.3構建網絡61 
3.5.4驗證你的方法62 
3.5. 5在新數據上生成預測結果65 
3.5.6處理標籤和損失的另一種方法65 
3.5.7中間層維度足夠大的重要性65
3.5.8進一步的實驗66 
3.5.9小結66 

3.6預測房價:回歸問題66 
3.6.1波士頓房價數據集67 
3.6.2準備數據67 
3.6.3構建網絡68 
3.6.4利用K折驗證來驗證你的方法68 
3.6.5小結72 
本章小結73 

第4章機器學習基礎74 

4.1機器學習的四個分支74 
4.1.1監督學習74 
4.1.2無監督學習75 
4.1.3自監督學習75 
4.1.4強化學習75 

4.2評估機器學習模型76 
4.2.1訓練集、驗證集和測試集77 
4.2.2評估模型的注意事項80 

4.3數據預處理、特徵工程和特徵學習80 
4.3.1神經網絡的數據預處理80 
4.3 .2特徵工程81 

4.4過擬合與欠擬合83
4.4.1減小網絡大小83 
4.4.2添加權重正則化85 
4.4.3添加dropout正則化87 

4.5機器學習的通用工作流程89 
4.5.1定義問題,收集數據集89 
4.5.2選擇衡量成功的指標89 
4.5.3確定評估方法90 
4.5.4準備數據90 
4.5.5開發比基準更好的模型90 
4.5.6擴大模型規模:開發過擬合的模型91 
4.5.7模型正則化與調節超參數92 
本章小結92 

第二部分深度學習實踐

第5章深度學習用於計算機視覺94 

5.1卷積神經網絡簡介94 
5.1.1卷積運算96 
5.1.2最大池化運算101 

5.2在小型數據集上從頭開始訓練一個卷積神經網絡102 
5.2.1深度學習與小數據問題的相關性103 
5.2.2下載數據103 
5.2.3構建網絡106
5.2.4數據預處理107 
5.2.5使用數據增強111 

5.3使用預訓練的捲積神經網絡115 
5.3.1特徵提取116 
5.3.2微調模型124 
5.3.3小結130 

5.4卷積神經網絡的可視化130 
5.4 .1可視化中間激活131 
5.4.2可視化卷積神經網絡的過濾器136 
5.4.3可視化類激活的熱力圖142 
本章小結146 

第6章深度學習用於文本和序列147 

6.1處理文本數據147 
6.1.1單詞和字符的one-hot編碼149 
6.1.2使用詞嵌入151 
6.1.3整合在一起:從原始文本到詞嵌入155 
6.1.4小結162 

6.2理解循環神經網絡162 
6.2.1 Keras中的循環層164 
6.2.2理解LSTM層和GRU層168 
6.2.3 Keras中一個LSTM的具體例子170
6.2.4小結172 

6.3循環神經網絡的高級用法172 
6.3.1溫度預測問題172 
6.3.2準備數據175 
6.3.3一種基於常識的、非機器學習的基準方法177 
6.3.4一種基本的機器學習方法178 
6.3.5第一個循環網絡基準180 
6.3.6使用循環dropout來降低過擬合181 
6.3.7循環層堆疊182 
6.3.8使用雙向RNN 184 
6.3.9更多嘗試187 
6.3.10小結187 

6.4用卷積神經網絡處理序列188 
6.4.1理解序列數據的一維卷積188 
6.4.2序列數據的一維池化189 
6.4.3實現一維卷積神經網絡189 
6.4.4結合CNN和RNN來處理長序列191 
6.4.5小結195 
本章總結195 

第7章高級的深度學習最佳實踐196

7.1不用Sequential模型的解決方案:Keras函數式API 196 
7.1.1函數式API簡介199 
7.1.2多輸入模型200 
7.1.3多輸出模型202 
7.1.4層組成的有向無環圖204 
7.1.5共享層權重208 
7.1.6將模型作為層208 
7.1.7小結209 

7.2使用Keras回調函數和TensorBoard來檢查並監控深度學習模型210 
7.2.1訓練過程中將回調函數作用於模型210 
7.2.2 TensorBoard簡介:TensorFlow的可視化框架212 
7.2.3小結219 

7.3讓模型性能發揮到極致219 
7.3.1高級架構模式219 
7.3.2超參數優化222 
7.3.3模型集成223 
7.3.4小結224 
本章總結225 

第8章生成式深度學習226 

8.1使用LSTM生成文本227
8.1.1生成式循環網絡簡史227 
8.1.2如何生成序列數據228 
8.1.3採樣策略的重要性229 
8.1.4實現字符級的LSTM文本生成230 
8.1.5小結234 

8.2 DeepDream 235 
8.2.1用Keras實現DeepDream 236 
8.2.2小結241 

8.3神經風格遷移241 
8.3.1內容損失242 
8.3.2風格損失243 
8.3.3用Keras實現神經風格遷移243 
8.3.4小結249 

8.4用變分自編碼器生成圖像249 
8.4.1從圖像的潛在空間中採樣249 
8.4.2圖像編輯的概念向量250 
8.4.3變分自編碼器251 
8.4.4小結256 

8.5生成式對抗網絡簡介257 
8.5.1 GAN的簡要實現流程258 
8.5.2大量技巧259
8.5.3生成器260 
8.5.4判別器261 
8.5.5對抗網絡261 
8.5.6如何訓練DCGAN 262 
8.5.7小結264 
本章總結264 

第9章總結265 

9.1重點內容回顧265 
9.1.1人工智能的各種方法265 
9.1.2深度學習在機器學習領域中的特殊之處266 
9.1.3如何看待深度學習266 
9.1.4關鍵的推動技術267 
9.1.5機器學習的通用工作流程268 
9.1.6關鍵網絡架構268 
9.1.7可能性空間272 

9.2深度學習的局限性273 
9.2.1將機器學習模型擬人化的風險273 
9.2.2局部泛化與極端泛化275 
9.2.3小結276 

9.3深度學習的未來277 
9.3 .1模型即程序277
9.3.2超越反向傳播和可微層278 
9.3.3自動化機器學習279 
9.3.4終身學習與模塊化子程序復用279 
9.3.5長期願景281 

9.4了解一個快速發展領域的最新進展281 
9.4. 1使用Kaggle練習解決現實世界的問題281 
9.4.2在arXiv閱讀最新進展282 
9.4.3探索Keras生態系統282 

9.5結束語282 

附錄A在Ubuntu上安裝Keras及其依賴283 
附錄B在EC2 GPU實例上運行Jupyter筆記本287