1. 程式人生 > >深度學習相關最新圖書推薦

深度學習相關最新圖書推薦

作者:不會停的蝸牛 | CSDN AI專欄作者
責編:王藝 | CSDN AI編輯/記者 [email protected]

如果您是初學者,那麼您可能會將深度學習與機器學習混為一談。實際上,機器學習包含深度學習,深度學習只是機器學習的研究領域之一。深度學習是一個交叉學科,涉及到神經網路、人工智慧、圖建模、最優化理論、模式識別和訊號處理等多學科領域知識。硬體計算能力的升級使得深度學習在人們的日常生活中有了用武之地。深度學習的應用領域包括計算機視覺、語音識別、影象識別,自動駕駛,自然語言理解、手寫識別、音訊處理、資訊檢索、機器人學等。
關於深度學習,市場上已經有很多參考資料以及著作。若您是個書蟲,點選這裡可以看到 Amazon 上關於深度學習最新的一些書。這裡我們主要推薦一些理論和實踐相結合得比較好的書,供大家學習參考。

關於深度學習

Deep Learning (Adaptive Computation and Machine Learning series)

這本書的作者是 Ian Goodfellow,是谷歌大腦的科學家之一。
很多人認為這本書是深度學習的聖經,因為它是目前為止唯一一本將數十年的研究整合在一起的書。
不過,需要讀者有一定的數學基礎,因為它包含了線性代數、概率論、數值計算和機器學習等相關的背景知識。如果是入門的話,不建議從這本入手,讀起來會很有挫敗感。
如果是要掌握深度學習,這本可以算得上比較全面的指南,因為除了背景知識,它還對正則化,優化演算法,實用性方法等有詳細的講述,對自然語言處理、語音識別、計算機視覺等深度學習的實際應用也做了一個詳盡的分析。

Hands-On Machine Learning with Scikit-Learn and TensorFlow

儘管這本書也有很多公式,但是它可讀性非常好,強烈推薦。
作者 Aurélien Géron 可以將複雜的概念用非常簡單的方式講出來,一般的讀者不需要具有特別精深的專業知識也可以理解。
這本書中不僅有很好理解的例子,還有相應的程式碼。如果在第一遍時比較關注實戰和例子,那麼第二遍的時候可以回頭看看相關的原理和公式,更加深入地去學習。

Deep Learning with Python

作者 Francois Chollet,
正如他在 Keras 專案中,可以將複雜的概念簡單化一樣,他的寫作方式也同樣具有很漂亮的可讀性,即使是 AI and deep learning 裡最具有挑戰性的概念,他也能夠深入淺出地講出來。
而且本書中也有很多不錯的例子,可以先看一下他的

github 上的程式碼 就知道這個風格了。

Deep Learning: A Practitioner’s Approach

這本書主要用了 Java 的框架 DL4J,關於人工智慧的很多研究多數都是用 Python 來做的,但隨著越來越多的企業應用機器學習等技術,我們很可能會看到越來越多的深度學習應用將用 Java 來實現,因為它在很多大公司還是使用最廣的語言。
如果你已經有一些深度學習的基礎知識,只是想看如何用 Java 來實現,那就可以跳過前面直接看例子。
但是如果你並沒有太多的深度學習的經驗,也沒有很強的 Java 背景,那麼這本書你可以好好翻一翻。尤其是第 4 章-深入學習的主要架構,這一章非常的好,可以幫你解決現實應用中的關鍵的架構問題。

TensorFlow Machine Learning Cookbook

這本書雖然在內容和程式碼裡會有一些列印錯誤,但整體上它在人工智慧應用的各領域如自然語言處理,都給出了一些很好的例子。
和其他的手冊書一樣,這本書主要關注在程式碼上,如果你還不知道一個卷積神經網路的輸入和輸出是什麼,那麼直接讀它就會覺得有一些困惑,所以入門的話不推薦此書。
如果你已經看過其它的書,實戰了一些例子,那麼這本書可以提供更多的練習。

下面幾本是我覺得對初學者會有幫助的書。

很多對深度學習感興趣的夥伴,可能最擔心的就是自己的數學已經忘的差不多了。我覺得不一定要先把數學學的很好才能學深度學習,但如果你在看這些演算法時,遇到了不明白的地方,某些公式推導不清楚為什麼時,還是有必要先複習一下本科時學的那幾門最基礎的數學的,例如,線性代數,微積分基礎,概率論,有條件的話,可以把這三本書放在電腦旁,有空的時候翻一下,回顧一下原理,遇到問題的時候就知道該去哪裡查了。
或者想進一步瞭解一下數學的話,可以看一下這本:

數學

Mathematics: A Very Short Introduction

這本書將問題分解成更簡單,更乾淨的步驟。
生活就是一系列複雜的演算法,但我們並不需要完美的模型,數學可以幫我們將問題分解為其最基本的元件,變數和規則,我們只需要學習這些變數和規則即可。

數學上比較令人害怕的就是各種符號啦,如果知道它們的意思,那麼就不會被嚇到了,這裡有一個網站,可以檢視各符號的含義

另外我覺得比較基礎的理論就是神經網路,例如常用於影象識別的卷積神經網路,常用於自然語言處理的迴圈和遞迴神經網路等,這些網路在 Kaggle 的比賽中也比較受歡迎,調的好的話效果會很好,為了有更好的效果,瞭解一下內部原理是必要的。

下面這本書就一步一步教你用 Python 搭建自己的神經網路,並且專門介紹了神經網路所需的數學,對於理解神經網路會比較有幫助。

Make Your Own Neural Network

TensorFlow

當然啦,除了理論,實戰也是很重要的,而且也是有趣的一部分,那就要用到深度學習的框架。
在 Github 上比較火的開源框架有 TensorFlow,Caffe,Keras,CNTK,MXNet,Torch7,Theano等,可以找到很多比較的文章,我這裡就不贅述啦。

我現在是在學 TensorFlow,接著打算學一下 Keras。
關於 TensorFlow,官方文件就是一個很好的教程,不過如果想了解多一些理論知識的話,可以看一下下面兩本書。裡面除了詳細的程式碼講解,還有一些背景的介紹。
當然,因為是工具書,理論不會講的太深,但對於初學者也是夠用了,關於 AlexNet,VGGNet,ResNet 等會介紹基本的來源,分析一下優勢和不足,介紹基本的網路結構,演算法的實現過程,一步一步的程式碼實現和詳細的講解。
如果對某些結構感興趣,想要深入地研究 ,可以去翻相關的論文或者書籍。

TensorFlow實戰

TensorFlow:實戰Google深度學習框架

這裡分享一下我的學習過程,最開始的時候,會對它的應用比較感興趣,所以會去看如何用它實現簡單的自動駕駛,聊天機器人,語音識別,寫音樂。當了解完大體的應用場景和過程時,就會專注於一個比較感興趣的應用,看看是不是可以做的稍微高階一點。接著就會想要掌握一下整體 TensorFlow 框架的各種基本組建,像搭樂高似的,看是否可以再組裝的更豐滿一些。
你有哪些學習心得呢,歡迎分享出來哦。

機器學習

接下來再推薦三本關於機器學習的書,我覺得這三本各有所長,喜歡三者結合著看。

機器學習

我比較喜歡這本書的公式表達,很簡單清晰,不會一翻開就被特別嚇人的符號嚇到,每個演算法都會用一個小例子來講一下具體的過程,複雜的概念可以很清晰明瞭地解釋清楚。

機器學習實戰

上面是演算法理論,這本書就是教你用 Python 的程式碼實現。它會列出演算法的優缺點,列出清晰的流程,先寫出演算法的虛擬碼,再配上 Python 程式碼,關鍵的程式碼行還有詳細的講解。

統計學習方法

這本書會更深地講演算法背後的理論,尤其是從數學的角度,公式推導也更細,要知其然,還要知其所以然。這個時候如果被數學卡住了,就可以用前面的方法,以目標為導向,抓住要點去回顧吧。

好了,我覺得上面這些就夠看一陣子的了。
今天的目的就是列出一個書單的短評,供大家選擇適合自己的,如果是踏踏實實在學習的話,根據各書特色和自己的需求,建議先選中其中一本,要把 80% 的時間花在最重要的 20% 的事情上面,效能才最高。