1. 程式人生 > >從零開始學習深度學習,推薦幾本書單,建議按照先後順序排名進行學習

從零開始學習深度學習,推薦幾本書單,建議按照先後順序排名進行學習

深度學習能夠訓練機器執行一些令人難以置信的任務,例如面部識別,癌症檢測,甚至是股市預測。這就是為什麼我們要學深度學習。

以下這些書可以讓你從零開始學習深度學習。本文綜述中的每一本書都有各自的優點,而且每一本書都非常出色。我已經把它們按我認為是最好的以及我建議學習先後的順序排名。

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

作者試圖以一種幾乎任何人都能理解的方式來解釋複雜的話題,而且,你可以看到如何處理真實資料,如何將資料視覺化以獲取洞察力,以及重要的是如何為機器學習演算法準備資料。

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

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

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

2.深度學習(Deep Learning)

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

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

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

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

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

正如標題所說的的那樣,它是為一般讀者而寫的。

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

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

如果你想要一本簡單的英文指南,同時又能看到很少炒作的文字,那麼這本書可能適合你。

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

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

在本書中,你可以通過神經網路的數學指導,完整的理解神經網路的工作方式。你不僅可以知道他們如何工作,還可以在Python中實現兩個神經網路示例,這將有助於鞏固你對該主題的理解。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

人工智慧、大資料、雲端計算和物聯網的未來發展值得重視,均為前沿產業,有興趣的朋友,可以查閱多智時代,在此為你推薦幾篇優質好文: