最佳深度學習書5本推薦給你

程序員書屋 發佈 2020-03-10T11:50:54+00:00

深度學習通過其他較簡單的表示來表達複雜表示,解決了表示學習中的核心問題。由於並不總是清楚計算圖的深度和機率模型圖的深度哪一個是最有意義的,並且由於不同的人選擇不同的最小元素集來構建相應的圖,所以就像電腦程式的長度不存在單一的正確值一樣,架構的深度也不存在單一的正確值。

深度學習(deep learning)通過其他較簡單的表示來表達複雜表示,解決了表示學習中的核心問題。

深度學習讓計算機通過較簡單的概念構建複雜的概念。圖1.2展示了深度學習系統如何通過組合較簡單的概念(例如角和輪廓,它們反過來由邊線定義)來表示圖像中人的概念。深度學習模型的典型例子是前饋深度網絡或多層感知機(multilayer perceptron,MLP)。多層感知機僅僅是一個將一組輸入值映射到輸出值的數學函數。該函數由許多較簡單的函數複合而成。我們可以認為不同數學函數的每一次應用都為輸入提供了新的表示。

學習數據的正確表示的想法是解釋深度學習的一個視角。另一個視角是深度促使計算機學習一個多步驟的電腦程式。每一層表示都可以被認為是並行執行另一組指令之後計算機的存儲器狀態。更深的網絡可以按順序執行更多的指令。順序指令提供了極大的能力,因為後面的指令可以參考早期指令的結果。從這個角度上看,在某層激活函數裡,並非所有信息都蘊涵著解釋輸入的變差因素。表示還存儲著狀態信息,用於幫助程序理解輸入。這裡的狀態信息類似於傳統電腦程式中的計數器或指針。它與具體的輸入內容無關,但有助於模型組織其處理過程。


圖1.2 深度學習模型的示意圖。
計算機難以理解原始感觀輸入數據的含義,如表示為像素值集合的圖像。將一組像素映射到對象標識的函數非常複雜。如果直接處理,學習或評估此映射似乎是不可能的。深度學習將所需的複雜映射分解為一系列嵌套的簡單映射(每個由模型的不同層描述)來解決這一難題。輸入展示在可見層(visible layer),這樣命名的原因是因為它包含我們能觀察到的變量。然後是一系列從圖像中提取越來越多抽象特徵的隱藏層(hidden layer)。因為它們的值不在數據中給出,所以將這些層稱為「隱藏層」;模型必須確定哪些概念有利於解釋觀察數據中的關係。這裡的圖像是每個隱藏單元表示的特徵的可視化。給定像素,第1層可以輕易地通過比較相鄰像素的亮度來識別邊緣。有了第1隱藏層描述的邊緣,第2隱藏層可以容易地搜索可識別為角和擴展輪廓的邊集合。給定第2隱藏層中關於角和輪廓的圖像描述,第3隱藏層可以找到輪廓和角的特定集合來檢測特定對象的整個部分。最後,根據圖像描述中包含的對象部分,可以識別圖像中存在的對象(經Zeiler and Fergus(2014)許可引用此圖)

目前主要有兩種度量模型深度的方式。一種方式是基於評估架構所需執行的順序指令的數目。假設我們將模型表示為給定輸入後,計算對應輸出的流程圖,則可以將這張流程圖中的最長路徑視為模型的深度。正如兩個使用不同語言編寫的等價程序將具有不同的長度,相同的函數可以被繪製為具有不同深度的流程圖,其深度取決於我們可以用來作為一個步驟的函數。圖1.3說明了語言的選擇如何給相同的架構兩個不同的衡量。

圖1.3 將輸入映射到輸出的計算圖表的示意圖,其中每個節點執行一個操作。

深度是從輸入到輸出的最長路徑的長度,但這取決於可能的計算步驟的定義。這些圖中所示的計算是邏輯回歸模型的輸出,σ(wTx),其中σ是logistic sigmoid函數。如果使用加法、乘法和logistic sigmoid作為計算機語言的元素,那麼這個模型深度為3;如果將邏輯回歸視為元素本身,那麼這個模型深度為1

另一種是在深度機率模型中使用的方法,它不是將計算圖的深度視為模型深度,而是將描述概念彼此如何關聯的圖的深度視為模型深度。在這種情況下,計算每個概念表示的計算流程圖的深度可能比概念本身的圖更深。這是因為系統對較簡單概念的理解在給出更複雜概念的信息後可以進一步精細化。例如,一個AI系統觀察其中一隻眼睛在陰影中的臉部圖像時,它最初可能只看到一隻眼睛。但當檢測到臉部的存在後,系統可以推斷第二隻眼睛也可能是存在的。在這種情況下,概念的圖僅包括兩層(關於眼睛的層和關於臉的層),但如果我們細化每個概念的估計將需要額外的n次計算,那麼計算的圖將包含2n層。

由於並不總是清楚計算圖的深度和機率模型圖的深度哪一個是最有意義的,並且由於不同的人選擇不同的最小元素集來構建相應的圖,所以就像電腦程式的長度不存在單一的正確值一樣,架構的深度也不存在單一的正確值。另外,也不存在模型多麼深才能被修飾為「深」的共識。但相比傳統機器學習,深度學習研究的模型涉及更多學到功能或學到概念的組合,這點毋庸置疑。

總之,這本書的主題——深度學習是通向人工智慧的途徑之一。具體來說,它是機器學習的一種,一種能夠使計算機系統從經驗和數據中得到提高的技術。我們堅信機器學習可以構建出在複雜實際環境下運行的AI系統,並且是唯一切實可行的方法。深度學習是一種特定類型的機器學習,具有強大的能力和靈活性,它將大千世界表示為嵌套的層次概念體系(由較簡單概念間的聯繫定義複雜概念、從一般抽象概括到高級抽象表示)。圖1.4說明了這些不同的AI學科之間的關係。圖1.5展示了每個學科如何工作的高層次原理。

圖1.4 維恩圖展示了深度學習既是一種表示學習,也是一種機器學習,可以用於許多(但不是全部)AI方法。維恩圖的每個部分包括一個AI技術的實例

圖1.5 流程圖展示了AI系統的不同部分如何在不同的AI學科中彼此相關。陰影框表示能從數據中學習的組件

深度學習書單

1、深度學習 [deep learning]

  • AI聖經!深度學習領域奠基性的經典暢銷書!
  • 長期位居美國ya馬遜AI和機器學習類圖書榜首!
  • 所有數據科學家和機器學習從業者的bi讀圖書!
  • 特斯拉CEO埃隆·馬斯克等國內外眾多專家推jian!

本書囊括了數學及相關概念的背景知識,包括線性代數、機率論、資訊理論、數值優化以及機器學習中的相關內容。同時,它還介紹了工業界中實踐者用到的深度學習技術,包括深度前饋網絡、正則化、優化算法、卷積網絡、序列建模和實踐方法等,並且調研了諸如自然語言處理、語音識別、計算機視覺、在線推薦系統、生物信息學以及視頻遊戲方面的應用。最後,本書還提供了一些研究方向,涵蓋的理論主題包括線性因子模型、自編碼器、表示學習、結構化機率模型、蒙特卡羅方法、配分函數、近似推斷以及深度生成模型。

2、動手學深度學習

目前市面上有關深度學習介紹的書籍大多可分兩類,一類側重方法介紹,另一類側重實踐和深度學習工具的介紹。本書同時覆蓋方法和實踐。本書不僅從數學的角度闡述深度學習的技術與應用,還包含可運行的代碼,為讀者展示如何在實際中解決問題。為了給讀者提供一種交互式的學習體驗,本書不但提供免費的教學視頻和討論區,而且提供可運行的Jupyter記事本文件,充分利用Jupyter記事本能將文字、代碼、公式和圖像統一起來的優勢。這樣不僅直接將數學公式對應成實際代碼,而且可以修改代碼、觀察結果並及時獲取經驗,從而帶給讀者全新的、交互式的深度學習的學習體驗。
本書面向希望了解深度學習,特別是對實際使用深度學習感興趣的大學生、工程師和研究人員。本書不要求讀者有任何深度學習或者機器學習的背景知識,讀者只需具備基本的數學和編程知識,如基礎的線性代數、微分、機率及Python編程知識。本書的附錄中提供了書中涉及的主要數學知識,供讀者參考。

3、PyTorch深度學習

  • 本書對當今前沿的深度學習庫PyTorch進行了講解。憑藉其易學習性、高效性以及與Python開發的天然親近性,PyTorch獲得了深度學習研究人員以及數據科學家們的關注。本書從PyTorch的安裝講起,然後介紹了為現代深度學習提供驅動力的多個基礎模塊,還介紹了使用CNN、RNN、LSTM以及其他網絡模型解決問題的方法。本書對多個先進的深度學習架構的概念(比如ResNet、DenseNet、Inception和Seq2Seq)進行了闡述,但沒有深挖其背後的數學細節。與GPU計算相關的知識、使用PyTorch訓練模型的方法,以及用來生成文本和圖像的複雜神經網絡(如生成網絡),也在本書中有所涵蓋。
    學完本書後,讀者可以使用PyTorch輕鬆開發深度學習應用程式。
    本書內容:
    在GPU加速的張量計算中使用PyTorch;
  • 為圖像自行創建數據集和數據裝載器,然後使用torchvision和torchtext測試模型;
  • 使用PyTorch來實現CNN架構,從而構建圖像分類器;
  • 使用RNN、LSTM和GRU開發能進行文本分類和語言建模的系統;
  • 學習的CCN架構(比如ResNet、Inception、DenseNet等),並將其應用在遷移學習中;
  • 學習如何混合多個模型,從而生成一個強大的集成模型;
  • 使用GAN生成新圖像,並使用風格遷移生成藝術圖像。

4、深度學習案例精粹

  • python深度學習機器學習教程
  • 機器學習實戰,Tensorflow實戰教程,Tensorflow自然語言處理
  • Python從入門到實踐

本書主要講述了深度學習中的重要概念和技術,並展示了如何使用TensorFlow實現高級機器學習算法和神經網絡。本書首先介紹了數據科學和機器學習中的基本概念,然後講述如何使用TensorFlow訓練深度學習模型,以及如何通過訓練深度前饋神經網絡對數字進行分類,如何通過深度學習架構解決計算機視覺、語言處理、語義分析等方面的實際問題,最後討論了高級的深度學習模型,如生成對抗網絡及其應用。

5、深度學習與飛槳PaddlePaddle Fluid實戰


  • 百度飛槳PaddlePaddle技術人員深度解析
  • 涵蓋飛槳設計思想與核心技術、解析飛槳移動端底層技術
  • 詳解8種CV、NLP的工業級經典案例,提供源碼下載資源

本書適合對人工智慧感興趣的學生、從事機器學習相關工作的讀者閱讀,尤其適合想要通過飛槳PaddlePaddle掌握深度學習應用技術的研究者和從業者參考。

本書包括以下內容:

  • 飛槳PaddlePaddle 的核心設計思想;
  • PaddlePaddle在MNIST上進行手寫數字識別;
  • 圖像分類網絡實現案例;
  • 「天網」中目標檢測和像素級物體分割的實現;
  • NLP技術應用案例 :word2vec、情感分析、語義角色標註及機器翻譯;
  • Paddle-Mobile與Anakin框架等高級主題;
  • 飛槳PaddlePaddle與TensorFlow、Caffe框架的常用層對比。
關鍵字: