Keras深度學習實戰
內容描述
本書從實用的角度出發,全方位介紹使用Keras如何解決深度學習中的各類問題。假設讀者無任何關於深度學習編程的基礎知識,本書首先介紹Keras這一高度模塊化、極簡式的深度學習框架的安裝、配置和編譯等平臺搭建知識,而後詳細介紹了度學習所要求的數據預處理、優化、可視化等基本內容,然後詳細講解捲積神經網絡、生成式對抗網絡、遞歸神經網絡這三種深度學習方法並給出相關實例代碼,最後介紹自然語言處理、強化學習兩方面的內容。
本書是一本實踐性很強的深度學習工具書,既適合希望快速學習和使用Keras深度學習框架的工程師、學者和從業者,又特別適合立志從事深度學習和AI相關的行業並且希望用Keras開發實際項目的工程技術人員。
採用Python編寫的Keras能夠快速準確地訓練捲積和遞歸神經網絡,這使得Keras在很短的時間里就成為一個流行的深度學習庫。
本書介紹瞭如何在時下流行的Keras庫的幫助下,解決訓練深度學習模型時遇到的各種問題。從安裝和設置Keras開始,展示瞭如何使用Keras進行深度學習;從加載數據到擬合、評估模型獲得最佳性能,逐步解決工作過程中遇到的每一個問題。在本書的幫助下,你可以分別實現捲積神經網絡、遞歸神經網絡、生成式對抗網絡等。除此之外,本書還講述瞭如何訓練這些模型以完成圖像處理和語言處理的任務。
本書最後還給出了一些實例,可以幫助你直觀地瞭解Python和Keras在深度學習上的強大功能。
通過閱讀本書,你將學到:
• 在TensorFlow中安裝和配置Keras
• 使用Keras庫進行神經網絡編程
• 瞭解不同的Keras層
• 使用Keras實現簡單的前饋神經網絡、捲積神經網絡和遞歸神經網絡
• 使用各種數據集和模型進行圖像和文本分類
• 使用Keras開發文本摘要和強化學習模型
目錄大綱
譯者序
審校者簡介
前言
第1章 Keras安裝1
1.1 引言1
1.2 在Ubuntu 16.04上安裝Keras 1
1.2.1 準備工作 2
1.2.2 怎麼做2
1.3 在Docker鏡像中使用Jupyter Notebook安裝Keras 7
1.3.1 準備工作 7
1.3.2 怎麼做7
1.4 在已啟動GPU的Ubuntu 16.04上安裝Keras 9
1.4.1 準備工作 9
1.4.2 怎麼做10
第2章 Keras資料集和模型 13
2.1 引言13
2.2 CIFAR-10數據集13
2.3 CIFAR-100數據集15
2.4 MNIST資料集 17
2.5 從CSV檔載入資料 18
2.6 Keras模型入門19
2.6.1 模型的剖析 19
2.6.2 模型類型 19
2.7 序貫模型 20
2.8 共用層模型 27
2.8.1 共用輸入層簡介 27
2.8.2 怎麼做27
2.9 Keras函數API 29
2.9.1 怎麼做29
2.9.2 示例的輸出 31
2.10 Keras函數API——鏈結層 31
2.11 使用Keras函數API進行圖像分類 32
第3章 資料預處理、優化和視覺化 36
3.1 圖像資料特徵標準化 36
3.1.1 準備工作 36
3.1.2 怎麼做37
3.2 序列填充 39
3.2.1 準備工作 39
3.2.2 怎麼做39
3.3 模型視覺化 41
3.3.1 準備工作 41
3.3.2 怎麼做41
3.4 優化43
3.5 示例通用代碼 43
3.6 隨機梯度下降優化法 44
3.6.1 準備工作 44
3.6.2 怎麼做44
3.7 Adam優化演算法 47
3.7.1 準備工作 47
3.7.2 怎麼做47
3.8 AdaDelta優化演算法50
3.8.1 準備工作 51
3.8.2 怎麼做51
3.9 使用RMSProp進行優化54
3.9.1 準備工作 54
3.9.2 怎麼做54
第4章 使用不同的Keras層實現分類 58
4.1 引言58
4.2 乳腺癌分類 58
4.3 垃圾資訊檢測分類 66
第5章 卷積神經網路的實現 73
5.1 引言73
5.2 宮頸癌分類 73
5.2.1 準備工作 74
5.2.2 怎麼做74
5.3 數位識別 84
5.3.1 準備工作 84
5.3.2 怎麼做85
第6章 生成式對抗網路 89
6.1 引言89
6.2 基本的生成式對抗網路 90
6.2.1 準備工作 91
6.2.2 怎麼做91
6.3 邊界搜索生成式對抗網路 98
6.3.1 準備工作 99
6.3.2 怎麼做100
6.4 深度卷積生成式對抗網路 106
6.4.1 準備工作 107
6.4.2 怎麼做108
第7章 遞迴神經網路 116
7.1 引言116
7.2 用於時間序列資料的簡單RNN 117
7.2.1 準備工作 118
7.2.2 怎麼做119
7.3 時間序列資料的LSTM網路128
7.3.1 LSTM網路 128
7.3.2 LSTM記憶示例 129
7.3.3 準備工作 129
7.3.4 怎麼做129
7.4 使用LSTM進行時間序列預測 133
7.4.1 準備工作 134
7.4.2 怎麼做135
7.5 基於LSTM的等長輸出序列到序列學習 143
7.5.1 準備工作 143
7.5.2 怎麼做144
第8章 使用Keras模型進行自然語言處理 150
8.1 引言150
8.2 詞嵌入150
8.2.1 準備工作 151
8.2.2 怎麼做151
8.3 情感分析 157
8.3.1 準備工作 157
8.3.2 怎麼做159
8.3.3 完整代碼清單 162
第9章 基於Keras模型的文本摘要 164
9.1 引言164
9.2 評論的文本摘要 164
9.2.1 怎麼做165
9.2.2 參考資料 172
第10章 強化學習 173
10.1 引言173
10.2 使用Keras進行《CartPole》遊戲174
10.3 使用競爭DQN演算法進行《CartPole》遊戲181
10.3.1 準備工作 183
10.3.2 怎麼做187
作者介紹
拉蒂普·杜瓦(Rajdeep Dua)在雲計算和大資料領域擁有超過18年的經驗。
他曾在IIIT Hyderabad、ISB、IIIT Delhi和Pune College of Engineering等印度一些久負盛名的科技大學教授Spark和大資料。
他目前是Salesforce印度分公司開發人員團隊的負責人,曾在海德拉巴舉行的W3C會議上展示BigQuery和Google App Engine,
並領導過Google、VMware和Microsoft的開發團隊,在雲計算相關的數百個會議上發表過演講。
曼普里特·辛格·古特(Manpreet Singh Ghotra)在企業軟體和大資料軟體的開發領域擁有超過15年的經驗。
他目前在Salesforce使用Keras、Apache Spark和TensorFlow等開源庫和框架從事機器學習平臺/API的開發。
他曾涉足過多個機器學習系統領域,包括情感分析、垃圾郵件檢測和異常檢測。
此外,他還曾是線上零售商之一的機器學習團隊的成員,使用Apache Mahout計算轉運時間、開發推薦系統。