![](/c49/99/12556197.jpg)
出版社:人民郵電出版社 ISBN:9787115515421 版次:1 商品編碼:12556197 品牌:iTuring 包裝:平裝 開本:16開 出版時間:2019-07-01 用紙:膠版紙 頁數:365 正文語種:中文 作者:喬希·帕特森,Josh,Patterson],亞當·吉布森,鄭明智
" 編輯推薦 本書從調優、並行、向量化、構建管道等深度學習基礎知識開始,逐步深入,通過現實生活中的例子,展現深度網絡架構的方法和策略。本書避免了艱深的理論討論,而是針對實際問題提供了必要的指引。 -深入理解機器學習和深度學習基本概念 -了解從神經網絡到深度網絡的演化歷程 -探索主流深度網絡架構,包括卷積神經網絡和循環神經網絡 -了解如何將特定的深度網絡應用於適合的問題 -全面了解通用的對神經網絡和特定深度網絡架構調優的基礎知識 -學習針對不同類型數據的向量化技術以及如何在Spark和Hadoop平臺上原生地使用DL4J 內容簡介 本書是由兩位技術出身的企業管理者編寫的深度學習普及書。本書的前四章提供了足夠的關於深度學習的理論知識,包括機器學習的基本概念、神經網絡基礎、從神經網絡到深度網絡的演化歷程,以及主流的深度網絡架構,為讀者閱讀本書剩餘內容打下基礎。後五章帶領讀者進行一繫列深度學習的實踐,包括建立深層網絡、調優技術、各種數據類型的向量化和在Spark上運行深度學習工作流。 作者簡介 Josh Patterson是Skymind公司副總裁,曾任Cloudera公司通用解決方案架構師、田納西河流域管理局機器學習與分布式繫統工程師。 Adam Gibson是Skymind公司CTO,在幫助公司處理和解析大量實時數據方面經驗豐富 目錄 版權聲明 iii O'ReillyMedia, Inc.介紹 iv 前言xv 第1 章 機器學習回顧1 1.1學習的機器1 1.1.1機器如何學習2 1.1.2生物學的啟發4 1.1.3什麼是深度學習5 1.1.4鑽進奇幻的兔子洞5 1.2提出問題6 1.3機器學習背後的數學:線性代數7 1.3.1標量7 1.3.2向量7 1.3.3矩陣8 1.3.4張量8 1.3.5超平面8 1.3.6相關數學運算8 1.3.7將數據轉換成向量9 1.3.8方程組求解10 1.4機器學習背後的數學:統計學12 1.4.1概率12 1.4.2條件概率14 1.4.3後驗概率14 1.4.4分布15 1.4.5樣本與總體16 1.4.6重采樣方法16 1.4.7選擇性偏差17 1.4.8似然17 1.5機器學習如何工作17 1.5.1回歸17 1.5.2分類19 1.5.3聚類19 1.5.4欠擬合與過擬合20 1.5.5優化20 1.5.6凸優化21 1.5.7梯度下降22 1.5.8SGD24 1.5.9擬牛頓優化方法24 1.5.10生成模型與判別模型25 1.6邏輯回歸25 1.6.1邏輯函數26 1.6.2理解邏輯回歸的輸出26 1.7評估模型27 1.8建立對機器學習的理解30 第2 章 神經網絡基礎與深度學習31 2.1神經網絡31 2.1.1生33 2.1.2感知器34 2.1.3多層前饋網絡37 2.2訓練神經網絡42 2.3激活函數49 2.3.1線性函數49 2.3.2sigmoid函數49 2.3.3tanh函數50 2.3.4hard tanh函數51 2.3.5softmax函數51 2.3.6修正線性函數51 2.4損失函數53 2.4.1損失函數的符號53 2.4.2用於回歸的損失函數54 2.4.3用於分類的損失函數56 2.4.4用於重建的損失函數57 2.5超參數58 2.5.1學習率58 2.5.2正則化59 2.5.3動量59 2.5.4稀疏59 第3 章 深度網絡基礎60 3.1定義深度學習60 3.1.1什麼是深度學習60 3.1.2本章結構67 3.2深度網絡的通用構建原則67 3.2.1參數68 3.2.2層68 3.2.3激活函數69 3.2.4損失函數70 3.2.5優化算法71 3.2.6超參數73 3.2.7小結77 3.3深度網絡的構造塊77 3.3.1RBM78 3.3.2自動編碼器82 3.3.3變分自動編碼器83 第4 章 深度網絡的主要架構85 4.1UPN85 4.1.1DBN86 4.1.2GAN88 4.2CNN91 4.2.1生物學啟發92 4.2.2思路92 4.2.3CNN架構概要93 4.2.4輸入層94 4.2.5卷積層95 4.2.6池化層101 4.2.7全連接層102 4.2.8CNN的其他應用102 4.2.9CNN列表103 4.2.10小結103 4.3RNN103 4.3.1時間維度建模104 4.3.2三維空間輸入105 4.3.3為什麼不是馬爾可夫模型107 4.3.4常見的RNN架構107 4.3.5LSTM網絡108 4.3.6特定領域應用與混合網絡114 4.4遞歸神經網絡115 4.4.1網絡架構115 4.4.2遞歸神經網絡的變體115 4.4.3遞歸神經網絡的應用116 4.5小結與討論116 4.5.1深度學習會使其他算法過時嗎116 4.5.2不同的問題有不同的最佳方法117 4.5.3什麼時候需要深度學習117 第5 章 建立深度網絡118 5.1將深度網絡與適合的問題匹配118 5.1.1列式數據與多層感知器119 5.1.2圖像與CNN119 5.1.3時間序列與RNN120 5.1.4使用混合網絡121 5.2DL4J工具套件121 5.2.1向量化與DataVec121 5.2.2運行時與ND4J121 5.3DL4J API的基本概念123 5.3.1加載與保存模型123 5.3.2為模型獲取輸入124 5.3.3建立模型架構124 5.3.4訓練與評估125 5.4使用多層感知器網絡對CSV數據建模126 5.4.1建立輸入數據128 5.4.2確定網絡架構128 5.4.3訓練模型131 5.4.4評估模型131 5.5利用CNN對手寫圖像建模132 5.5.1使用LeNet CNN的Java代碼示例132 5.5.2加載及向量化輸入圖像134 5.5.3DL4J中用於LeNet的網絡架構135 5.5.4訓練CNN網絡138 5.6基於RNN的序列數據建模139 5.6.1通過LSTM生成莎士比亞風格作品139 5.6.2基於LSTM的傳感器時間序列分類146 5.7利用自動編碼器檢測異常152 5.7.1自動編碼器示例的Java代碼列表152 5.7.2設置輸入數據156 5.7.3自動編碼器的網絡結構與訓練156 5.7.4評估模型157 5.8使用變分自動編碼器重建MNIST數字158 5.8.1重建MNIST數字的代碼列表158 5.8.2VAE模型的檢驗161 5.9深度學習在自然語言處理中的應用163 5.9.1使用Word2Vec的學習詞嵌入163 5.9.2具有段落向量的句子的分布式表示168 5.9.3使用段落向量進行文檔分類171 第6 章 深度網絡調優176 6.1深度網絡調優的基本概念176 6.1.1建立深度網絡的思路177 6.1.2構建思路的步驟178 6.2匹配輸入數據與網絡架構178 6.3模型目標與輸出層的關繫180 6.3.1回歸模型的輸出層180 6.3.2分類模型的輸出層180 6.4處理層的數量、參數的數量和存儲器182 6.4.1前饋多層神經網絡183 6.4.2控制層和參數的數量183 6.4.3估計網絡內存需求185 6.5權重初始化策略187 6.6使用激活函數188 6.7應用損失函數190 6.8理解學習率191 6.8.1使用參數更新比率192 6.8.2關於學習率的具體建議193 6.9稀疏性對學習的影響195 6.10優化方法的應用195 6.11使用並行化和GPU更快地進行訓練197 6.11.1在線學習與並行迭代算法197 6.11.2DL4J中的SGD並行199 6.11.3GPU201 6.12控制迭代和小批量的大小202 6.13如何使用正則化203 6.13.1使用先驗函數正則化204 6.13.2最大範數正則化204 6.13.3Dropout205 6.13.4其他正則化事項206 6.14處理類別不平衡207 6.14.1類別采樣方法208 6.14.2加權損失函數208 6.15處理過擬合209 6.16通過調優UI來使用網絡統計信息210 6.16.1檢測不佳的權重初始化212 6.16.2檢測非混洗數據213 6.16.3檢測正則化的問題214 第7 章 調優特定的深度網絡架構217 7.1CNN217 7.1.1卷積架構常見的模式218 7.1.2配置卷積層220 7.1.3配置池化層224 7.1.4遷移學習225 7.2RNN226 7.2.1網絡輸入數據和輸入層227 7.2.2輸出層與RnnOutputLayer228 7.2.3訓練網絡228 7.2.4調試LSTM的常見問題230 7.2.5填充與掩碼230 7.2.6掩碼評估與評分231 7.2.7循環網絡架構的變體232 7.3受限玻爾茲曼機232 7.3.1隱藏與可用信息建模233 7.3.2使用不234 7.3.3用RBM正則化234 7.4DBN235 7.4.1利用動量235 7.4.2使用正則化235 7.4.3確定的數量236 第8 章 向量化237 8.1機器學習中的向量化方法237 8.1.1為什麼需要將數據向量化238 8.1.2處理列式原始數據屬性的策略240 8.1.3特征工程與規範化技術241 8.2使用DataVec進行ETL和向量化247 8.3將圖像數據向量化248 8.3.1DL4J中的圖像數據表示248 8.3.2使用DataVec將圖像數據與向量規範化250 8.4將序列數據向量化251 8.4.1序列數據源的主要變體251 8.4.2使用DataVec將序列數據向量化252 8.5將文本向量化256 8.5.1詞袋257 8.5.2TF-IDF258 8.5.3Word2Vec與VSM的比較261 8.6使用圖形261 第9 章 在Spark上使用深度學習和DL4J262 9.1在Spark和Hadoop上使用DL4J的介紹262 9.2配置和調優Spark運行266 9.2.1在Mesos上運行Spark267 9.2.2在YARN中執行Spark268 9.2.3Spark調優簡要介紹269 9.2.4對在Spark上運行的DL4J作業調優273 9.3為Spark和DL4J建立Maven項目對像模型274 9.3.1一個pom.xml文件依賴模板275 9.3.2為 CDH 5.x設置POM文件279 9.3.3為HDP 2.4創建POM文件279 9.4Spark和Hadoop故障排除280 9.5DL4J在Spark上的並行執行281 9.6Spark平臺上的DL4J API最佳實踐284 9.7多層感知器的Spark示例285 9.7.1建立Spark MLP網絡架構288 9.7.2分布式訓練與模型評估289 9.7.3構建和執行DL4J Spark作業290 9.8使用Spark和LSTM生成莎士比亞作品290 9.8.1建立LSTM網絡架構292 9.8.2訓練、跟蹤進度及理解結果293 9.9基於park上的CNN進行MNIST建模294 9.9.1配置Spark作業和加載MNIST數據296 9.9.2建立LeNet CNN架構與訓練297 附錄A人工智能是什麼299 附錄BRL4J與強化學習307 附錄C每個人都需要了解的數字325 附錄D神經網絡和反向傳播:數學方法326 附錄E使用ND4J API330 附錄F使用DataVec341 附錄G從源代碼構建DL4J350 附錄H設置DL4J項目352 附錄I為DL4J項目設置GPU356 附錄J解決DL4J安裝上的問題359 關於作者365 關於封面365 查看全部↓
" |