1. 程式人生 > >為你推薦一份深度學習書單,來學習吧~

為你推薦一份深度學習書單,來學習吧~

640?wx_fmt=png&wxfrom=5&wx_lazy=1

來源:雲棲社群

本文共4400字,建議閱讀8分鐘。
本文為大家帶來目前網際網路上12本最好的深度學習書籍。

640?wx_fmt=png&wxfrom=5&wx_lazy=1

我相信你應該知道人工智慧,尤其是深度學習在過去5年左右取得了不錯的進步。 

深度學習是由少數研究人員開始的一個相對較小的領域,現在已經變得如此主流,以至於我們現在每天使用的應用程式和服務,現在都在使用深度學習來執行不久前難以想象的任務。

但深度學習並不新鮮,從20世紀40年代開始,Warren McCulloch和Walter Pitts就基於數學和演算法建立了神經網路的計算模型。

然而,“深度學習”在不久前才開始流行起來,當時Geoffrey Hinton和Ruslan Salakhutdinov發表了一篇論文,  展示了一個多層神經網路如何可以一次預先訓練一層。

在2009年,人們發現,使用足夠大的資料集,你實際上並不需要預訓練,並且錯誤率可能因為資料的增加顯著下降。

2012年,Google的Deep Learning系統實現了人類發現貓的能力。

2016年,Google的阿爾法狗打敗了李世石,人工智慧大火。

2017年,Google的DeepMind構建了一種名為AlphaGo zero的演算法,該演算法可以自行掌握下圍棋,並取得了不錯的成績。

但這僅僅是一個開始。隨著資料集越來越大,處理器速度越來越快,以便能夠訓練更多的海量資料,深度學習的能力將不斷提高。

所以,如果你想成為這場革命的一部分,現在無疑是最佳的時間進入深度學習領域了。

隨著GPU和大資料集一應俱全,學習深度學習的機會巨大。這樣做將使你能夠訓練機器執行一些令人難以置信的任務,例如面部識別,癌症檢測,甚至是股市預測。

這就是這些書能派上用場的地方,因為它們可以讓你從零開始學習深度學習。本文綜述中的每一本書都有各自的優點,而且每一本書都非常出色。

不過,我已經把它們按我認為是最好的以及我建議學習先後的順序排名。

以下是目前網際網路上的12本最好的深度學習書籍:

1.用Scikit-Learn和TensorFlow進行機器學習

640?wx_fmt=jpeg

首先,在我看來最好的一本是採用流行的機器學習庫Scikit-Learn和Google的TensorFlow的實踐教程來學習深度學習的書。

作者試圖以一種幾乎任何人都能理解的方式來解釋複雜的話題,這在我看來是一個很大的優勢。

我喜歡“ 動手機器學習”,它可以讓你通過機器學習專案從開始到結束。因此,你可以看到如何處理真實資料,如何將資料視覺化以獲取洞察力,以及重要的是如何為機器學習演算法準備資料。

在本書後面,你將看到著名的MNIST分類器,模型是如何訓練以及一些基本的機器學習分類器,如SVM,決策樹,隨機森林等。

所有這一切都是為了讓你準備好本書的第二部分,內容涉及Tensorflow(包括安裝)以及基本的神經網路和深度神經網路。

我認為這本書的結構很好,並以正確的順序介紹了主題,而且書中的想法和具體例子都有很好的解釋。

2.深度學習(Deep Learning)

640?wx_fmt=jpeg

深度學習,可能是本文中最全面的書。 這本書由該領域的三位專家Ian Goodfellow,Yoshua Bengio和Aaron Courville撰寫。此書也是唯一得到企業家馬斯克認可的書。

這本書被許多人認為是深度學習的聖經,因為它彙集了數年和數年在一本書中學習和專注的研究。

這本書並不是為了專心學習,而是可以更好地用於睡前閱讀,因為它充滿了函式方程式,並以典型的教科書書寫,所以它不會寫成最有趣的風格。

它從一開始就介紹基礎數學,如線性代數,概率論,接著轉向機器學習基礎,最後介紹深度網路和深度學習。

所以,如果你是一個渴望掌握主題並進入深度學習研究的有抱負的學生,那麼這本書肯定會對你有所幫助。這可能是目前關於此主題的最全面的書籍。

3.Deep Learning for the Layman(為外行準備的深度學習)

640?wx_fmt=jpeg

我把這本書新增進來,因為正如標題所說的的那樣,它是為一般讀者而寫的。

對於外行的深度學習首先介紹深度學習,具體來說,它是什麼以及為什麼需要它。

本書的下一部分解釋了監督學習,無監督學習和強化學習之間的差異,並介紹了分類和聚類等主題。本書後面將討論人工神經網路,包括它們是如何構建的以及構成網路中每一層的部分。最後討論了深度學習,包括構成當今許多計算機視覺演算法的一部分的卷積神經網路。

我將這本書看作是對深度學習的介紹,並瞭解所涉及的概念。但實際上,我不確定這本書會對你有好處,但如果你想要一本簡單的英文指南,同時又能看到很少炒作的文字,那麼這本書可能適合你。

4.建立你自己的神經網路(Make Your Own Neural Network)

640?wx_fmt=jpeg

這不是嚴格意義上的“深度學習”,但本書將帶你深入瞭解神經網路及其工作原理,幫助你瞭解深度神經網路。

在本書中,你可以通過神經網路的數學指導,完整的理解神經網路的工作方式。

你不僅可以知道他們如何工作,還可以在Python中實現兩個神經網路示例,這將有助於鞏固你對該主題的理解。

本書從機器學習的高層概述開始,然後深入研究神經網路的細節。所涉及的數學並沒有超出大學水平,但包含微積分的介紹,這是以儘可能多的人訪問的方式解釋的。

有兩個部分可以建立自己的神經網路,第一部分是關於思想和理論的,第二部分是更實際的。

在第二部分中,你將學習Python程式語言,並逐漸建立起自己的能夠識別手寫數字的神經網路。

作為獎勵,你還將學習如何讓你的神經網路在Raspberry Pi上執行!

對於那些希望學習基本神經網路的基本內容的人來說,這本書是一本很棒的書,並且可以成為本次綜述中有關深度學習的其中一本書的重要先決條件。

5.深度學習初學者(Deep Learning for Beginners)

640?wx_fmt=jpeg

對於初學者的深度學習,這本書並不太重視深度學習的數學,而是使用圖表來幫助你理解深度學習的基本概念和演算法。

本書採用與許多其他書籍不同的方法,通過提供深度學習演算法的工作原理的簡單示例,然後逐步構建這些示例並逐步引入更復雜的演算法部分。

本書的目標受眾非常多樣,從電腦科學新手到資料科學專業人員和導師都希望以最簡單的方式向學生解釋相關主題。

就書本結構而言,你將首先學習人工神經網路的基礎知識,並瞭解機器學習和深度學習之間的差異。之後,你將在進入卷積神經網路(CNN)和其他深度學習演算法之前瞭解有關多層感知器(MLP)的所有資訊。

這是一本很好的初學者書籍,可以很好地解釋這些概念,但是如果你正在尋找更實用的東西,那麼你應該在本綜述中查詢其他書籍。

6.神經網路和深度學習(Neural Networks and Deep Learning:Deep Learning explained to your granny)

640?wx_fmt=jpeg

一本通俗解釋深度學習的書,簡單地說,你的奶奶都可以在本書的幫助下理解深度學習!

神經網路和深度學習:讓你逐步瞭解神經網路和深度學習的基礎知識,對於那些想要了解這個主題但不一定想深入瞭解所有數學背景的人來說,這本書是一本很棒的書。

因此,在簡要介紹機器學習之後,你將學習有監督學習和無監督的學習,然後研究諸如神經元、啟用函式和不同型別的網路體系結構等。

最後,你將學習深度學習的實際工作原理,深度神經網路的主要型別(包括卷積神經網路),如何給神經網路提供記憶,還討論了可用的各種框架和庫。

7.深度學習基礎:設計下一代機器智慧演算法(Fundamentals of Deep Learning: Designing Next-Generation Machine Intelligence Algorithms)

640?wx_fmt=jpeg

Nikhil Buduma和Nicholas Locascio撰寫的這本書以及旨在幫助你開始深度學習,但其目標是那些熟悉Python並具有微積分背景的人。

儘管如此,深度學習基礎知識確實涵蓋了機器學習和神經網路的基礎,並且教會了如何訓練前饋神經網路。

我認為這本書的亮點之一是它大量使用了Tensorflow,它是Google的深度學習框架,用於構建神經網路。事實上,書中有一整章專門介紹它,這在我看來是一個巨大的優勢。

就本書的其餘部分而言,它涉及一些相當先進的特性,如梯度下降、卷積濾波器、深度強化學習等等。

8.學習TensorFlow:構建深度學習系統的指南(Learning TensorFlow: A Guide to Building Deep Learning Systems)

640?wx_fmt=jpeg

接下來是一本完全關注Tensorflow的書,本書為Tensorflow提供了一個實用的實踐方法,適用於廣泛的技術人員,從資料科學家到工程師,學生。

通過在Tensorflow中提供一些基本示例,本書開始非常入門,但隨後轉向更深入的主題,如卷積神經網路等神經網路體系結構,如何使用文字和序列、TensorBoard視覺化、TensorFlow抽象庫以及多執行緒輸入管道。

學習TensorFlow的終極目標是教你如何通過儲存和匯出模型以及如何使用Tensorflow服務API,在Tensorflow中構建和部署適用於生產的深度學習系統。

9.用Python深入學習(Deep Learning with Python)

640?wx_fmt=jpeg

深度學習with python作為標題建議介紹深度學習使用Python程式語言和開源Keras庫,它允許簡單快速的原型設計。

關於這本書的偉大之處在於作者非常有吸引力,這使得本書非常易讀。正因為如此,人工智慧和深度學習的一些更具挑戰性的方面的佈局簡單易懂。

本書還避免了數學符號,而是專注於通過程式碼片段(其中有30多個)解釋概念。

在Python深度學習中,  你將從一開始就學習深度學習,你將學習所有關於影象分類模型,如何使用深度學習獲取文字和序列,甚至可以學習如何使用神經網路生成文字和影象。

本書是為那些具有Python技能的人員編寫的,但你不必在機器學習,Tensorflow或Keras方面有過任何經驗。你也不需要先進的數學背景,只有基礎的高中水平數學應該讓你跟隨和理解核心思想。

10.深度學習:從業者的方法(Deep Learning :A Practitioner’s Approach)

640?wx_fmt=jpeg

與本綜述中的其他書不同,本書重點介紹Deep Learning For Java(DL4J),它是用於訓練和實施深度神經網路的Java框架/庫。

現在大多數人工智慧研究都是用Python進行的,因為快速原型開發通常更快,但隨著更多組織(其中許多使用Java)擁抱AI,我們可能會看到更多的AI演算法轉向Java,如DL4J。

本書首先是關於深度學習的初學者書籍,但如果你已經具備Java或深度學習的經驗,那麼你可以直接檢視示例。

如果你在深度學習方面沒有經驗,但是有豐富的Java經驗,那麼你應該從封面閱讀。如果你根本不瞭解Java,那麼我強烈推薦閱讀其中一本  Java初學者書籍。

通過閱讀本書,你將總體瞭解機器學習概念,特別關注深度學習。你將瞭解深度神經網路是如何從基礎神經網路發展而來的,你還將瞭解一些深層網路架構,如卷積神經網路和迴圈神經網路。

如果你熟悉Hadoop和Spark,那麼你將能夠了解如何使用DL4J本身的這些技術。

11.用TensorFlow進行專業深度學習(Pro Deep Learning with TensorFlow)

640?wx_fmt=jpeg

本書將以親身實踐的方式教給你Tensorflow,讓你能夠從零開始學習深度學習,快速掌握Tensorflow API並學習如何優化各種深度學習網路架構。

專業深度學習將幫助你開發調整現有神經網路體系結構所需的數學知識和經驗,甚至創造出可能挑戰最新技術水平的全新體系結構。

本書中的所有程式碼都以iPython筆記本的形式提供,因為我過去曾使用過Tensorflow,我發現在開發過程中使用iPython膝上型電腦非常有用。

本書面向資料科學家和機器學習專業人員、軟體開發人員、研究生和開源愛好者,並將為你提供數學基礎和機器學習原理,使你能夠開展研究並將深度學習解決方案部署到生產環境中。

12.用於深度學習的TensorFlow(TensorFlow for Deep Learning)

640?wx_fmt=jpeg

在撰寫本文時,深度學習的TensorFlow尚未釋出,但可用於預購。

本書將通過從頭開始的例項向你介紹深度學習的概念,專門為開發經驗豐富的構建軟體系統的開發人員但沒有深度學習體系結構的經驗設計。

本書將向你展示如何設計可執行物件檢測,翻譯人類語言,分析視訊甚至預測潛在藥物特性的系統!

你將獲得關於Tensorflow API的深入知識,如何在大型資料集上訓練神經網路以及如何在卷積網路,迴圈網路,LSTM和強化學習中使用TensorFlow。

本書的確需要一些基本線性代數和微積分的背景知識,但這是一本實用的書,旨在教你如何建立可以學習的系統。

總結

所以這就是它們,這是目前最好的深度學習書籍。人工智慧,尤其是深度學習,已經非常火熱了,而且這項技術已經實現了非凡的功能。然而,它仍處於起步階段,許多組織尚未接受它。

但是,這恰恰是為願意學習深度學習的人提供了時間和機會。

深度學習有能力改變許多行業,並且還有許多尚未被夢想過的創業公司的想法。我覺得我們只是站在技術革命的開端。

作為Java開發人員,我有過深度學習的一些經驗,但我知道很多同事還沒有學習這個主題。所以,趁早抓住機會學習吧。

640?wx_fmt=png

640?wx_fmt=jpeg