近年來,隨著生成對抗網絡(GAN)、變分自動編碼器和深度強化學習等技術的發展,深度學習取得了巨大進展。本書是讀者采用R語言實現深度學習技術的操作手冊。
本書引導讀者通過R語言編程實現各種深度學習技術。本書提供的一套實例將幫助讀者解決回歸、二項分類和多項分類問題,並詳細探索超參數優化等問題。讀者將通過實戰案例實現卷積神經網絡(CNN)、循環神經網絡(RNN)、長短時記憶網絡(LSTM)、序列到序列模型、生成對抗網絡(GAN)和強化學習。讀者學習使用GPU進行大型數據集的高性能計算,以及R語言中的並行計算編程,還將熟悉諸如MXNet這樣的並行編程庫,這些庫是專為高效利用圖形處理器(GPU)計算和實現的深度學習算法而設計的。讀者將學習如何解決NLP中常見和不那麼常見的問題,如目標檢測和動作識別,還將在深度學習應用程序中利用預先訓練好的模型進行遷移學習。
閱讀完本書,讀者將對深度學習算法和不同的深度學習編程庫有一個深刻的理解,並將能夠為要解決的問題構建合適的解決方案。
讀者對像
本書為數據科學家、機器學習實踐者、深度學習研究人員和AI愛好者提供了學習深度學習領域關鍵算法的實戰案例。讀者可能會在研究工作或項目中面臨實現深度學習技術和算法的問題。要更好地閱讀本書,必須具備機器學習基礎知識和R語言的編程知識。
內容結構
第1章 理解人工神經網絡和深度神經網絡,將向讀者展示如何建立一個深度學習環境來訓練模型。然後向讀者介紹人工神經網絡,從人工神經網絡如何工作、什麼是隱藏層、什麼是誤差反向傳播、什麼是激活函數等概念開始講解。本章使用Keras庫來演示實戰案例。
第2章 卷積神經網絡實戰,將向讀者展示卷積神經網絡(CNN)模型,並講解如何訓練CNN模型,以進行圖像識別和完成自然語言處理的任務。本章還介紹了CNN中使用的各種超參數和優化器。
第3章 循環神經網絡實戰,將向讀者展示循環神經網絡(RNN)的理論知識與案例實現。本章還將介紹長短時記憶網絡(LSTM)和門控(GRU)等RNN的改進模型,並對LSTM的超參數進行詳細的探討。除此之外,讀者將學習如何使用Keras建立一個雙向RNN模型。
第4章 使用Keras實現自動編碼器,將介紹使用Keras庫實現各種類型的自動編碼器。讀者還將了解自動編碼器的各種應用,如降維和圖像著色。
第5章 深度生成模型,將向讀者展示深度神經網絡的另一種架構——生成對抗網絡(GAN)模型。本章將演示如何訓練一個由兩個獨立網絡(生成器和鋻別器)組成的GAN模型。本章還將討論變分自動編碼器的實現,並將其與GAN進行比較。
第6章 使用大規模深度學習處理大數據,包含了利用GPU處理大數據集的高性能計算案例研究。讀者還將了解為高效利用GPU進行並行計算和實現的深度學習而設計的R語言並行編程庫(如MXNet)。
第7章 自然語言處理,涉及序列數據相關主題的案例研究,包括文本數據的自然語言處理(NLP)和語音識別。讀者將使用各種深度學習庫實現端到端深度學習算法。
第8章 深度學習之計算機視覺實戰,將講解用於目標檢測和人臉識別的端到端模型實例。
第9章 實現強化學習,將向讀者介紹強化學習的概念。讀者將學習與強化學習相關的各種方法,如馬爾可夫決策過程,QLearning和經驗回放,並在R中使用實例展示這些方法。讀者還將使用諸如MDPtoolbox和ReinforcementLearning等R語言包實現端到端強化學習實例。
閱讀本書的預備知識
閱讀本書前,讀者需要具備一定的機器學習基礎知識和R語言編程知識。
下載示例代碼文件
讀者可以在登錄www.packt.com網站後下載本書的實例代碼文件,也可以訪問www.packtpub.com/support,並注冊賬號後下載實例代碼文件。
讀者可按以下步驟下載實例代碼文件: 登錄www.packt.com,並完成注冊; 選擇Support菜單項; 單擊Code Downloads菜單項; 在搜索框中輸入圖書的名稱,然後按照網頁上的說明操作。
下載文件後,請確保使用新版本的壓縮軟件:
Windows操作繫統要安裝WinRAR/7Zip軟件;
Mac操作繫統要安裝Zipeg/iZip/UnRarX軟件;
Linux操作繫統要安裝7Zip/PeaZip軟件。
本書的代碼包也可以從GitHub上獲取,網址是
https://github.com/PacktPublishing/DeepLearningwithRCookbook
如果代碼有更新,也將在現有的GitHub存儲庫上同步更新。Packt出版社在https://github.com/PacktPublishing/網站上提供出版書籍的代碼程序和視頻。
下載彩色圖片
本書還提供了一個PDF文件,其中有本書中使用的插圖/圖表的彩色圖片,訪問鏈接是http://www.packtpub.com/sites/default/files/downloads/9781789805673_ColorImages.pdf。
注意: 為方便讀者下載,請掃描下方二維碼下載原書中的程序代碼和彩色圖片。
程序代碼和彩色圖片
本書內容約定
本書使用了許多文本格式約定。
CodeInText(代碼字體): 該字體用於文本中的代碼塊、數據庫表名、目錄名、文件名、文件擴展名、路徑名、URL、用戶輸入和Twitter句柄。 例如,在步驟(1)中,使用 dataset_fashion_mnist() 函數導入了MNIST數據集,並查看其訓練集和驗證集的維度,代碼段格式如下:
fashion - dataset_fashion_mnist()
x_train - fashion$train$x
y_train - fashion$train$y
x_test - fashion$test$x
y_test - fashion$test$y
粗體: 表示術語、重要單詞或在屏幕上看到的單詞。例如,菜單或對話框中的單詞會以粗體格式出現在文本中(比如,從“開始”菜單中選擇Anaconda Navigator)。
圖標表示警告或重要說明內容。
圖標表示提示和技巧內容。
小節標題
在本書中,讀者會發現幾個經常出現的小節標題(準備工作、操作步驟、原理解析、內容拓展和參考閱讀)。通過下述各小節的內容組織,清楚地講解實戰案例的實現過程。
準備工作: 本節告訴讀者實例要實現的內容,並描述如何設置軟件或實例所需的準備工作。
操作步驟: 本節包含實例的具體操作步驟。
原理解析: 本節包含對操作步驟小節內容的原理講解。
內容拓展: 本節包含實例有關的拓展內容,以使讀者更了解該實例。
參考閱讀: 本節提供了與實例有關的資源鏈接。
關於作者
斯沃納·古普塔(Swarna Gupta): 計算機科學學士學位,在數據科學領域擁有6年的工作經驗。她目前在勞斯萊斯公司擔任數據科學家,主要工作是利用深度學習和機器學習為企業創造價值。她在汽車遠程信息處理和太陽能光伏制造行業廣泛開展基於物聯網應用的項目。她在勞斯萊斯公司工作以來,開發了應用於航空航天領域的基於深度學習技術的先進的數據分析繫統。斯沃納還會從繁忙的工作中抽出時間,定期為一些社會組織提供無償技術服務,借助數據科學和機器學習技術幫助他們解決具體的商業問題。
雷漢·阿裡·安薩裡(Rehan Ali Ansari): 電子電氣工程學士學位,在數據科學領域擁有5年工作經驗。 他目前在A.P.穆勒馬士基集團(AP Moller Maersk Group)擔任數據科學家,負責數據挖掘研究工作。他在時尚/零售、物聯網、可再生能源、貿易融資和供應鏈管理等多個領域化的工作背景。他堅信采用敏捷方法來開發AI產品和解決方案。他對數據科學領域的技術有著深刻的理解。在繁忙的工作之外,他還開展機器人和人工智能的交叉領域研究。
迪帕揚·薩卡爾(Dipayan Sarkar): 經濟學碩士學位,並擁有超過17年的工作經驗。 他曾經在預測建模領域的國際競賽中獲獎,他的研究興趣是機器學習技術背後的數學理論。 他曾在美國和歐洲的財富500強公司擔任高級數據科學家,目前在多家公司和教育機構擔任數據科學和機器學習領域的技術顧問和專業導師。他目前還在大湖管理學院(Great Lakes Institute of Management)擔任客座教授(講授數據分析課程),在BML Munjal大學擔任兼職教授(講授數據分析和機器學習課程)。他還出版了技術書——《集成學習與Python實踐》(Ensemble Machine Learning with Python)。
關於審稿人
斯雷·阿加瓦爾(Sray Agarwal): 在數據科學領域有12年的工作經驗,並在金融服務與保險、電子商務、零售、電信、酒店、旅遊、教育、房地產和娛樂等眾多領域有數據分析工作經驗。他目前在倫敦的Publicis Sapient公司擔任數據科學家。他的技術專長是預報建模、預測算法和高級機器學習。他對計算機算法和高級統計學有著深刻的理解。他擁有管理學和經濟學背景,並獲得了數據科學與數據分析專業的碩士學位。他還是SAS認證的預測建模師。他目前的研究領域是公平(偏差緩解)和可解釋的機器學習。