一份幫助你更好地理解深度學習的資源清單

趙鈺瑩發表於2018-07-26

人工智慧和深度學習太火了,火得一塌糊塗,有很多人想從事這個行業。網路上也有很多教程可供大家開始深度學習。如果你完全是一個小白,那麼你可以在入行時選擇使用極好的史丹佛課程 CS221 或[CS224](),Fast AI課程或深度學習AI課程。除了 深度學習AI 之外的課程,其它的課程都可以在家中舒適地免費學習。此外,你只需要一臺好的計算機(最好使用Nvidia GPU),就可以正式地邁出深度學習的第一步。

然而,本文內容並沒有解決絕對的初學者問題,一旦你對深度學習演算法的工作方式有了一些感覺,你可能會想要進一步地瞭解整個過程是如何運作的。雖然深度學習中的大多數工作是新增像卷積層(Conv2d)這樣的層、在ADAM等不同型別的優化策略中更改超引數或者通過編寫一行命令來改變使用Batchnorm。深度學習方法一直被人稱為是一個“黑匣子”,很多人可能會想知道背後發生的事情。本文是一個資源列表,可能會幫助你瞭解背後的過程,比方說放置卷積層或在Theano中呼叫T.grad時發生的過程。

論文|General Treatise

深度學習花書(Deep Learning Book)是最知名的 資源 ,一直佔據各大電商相關書籍排行榜的第一位。其他很好的資源是Charniak教授的 課程 論文 ,主要是關於深度學習技術的介紹。如果還想從特定的角度理解事物,還有其他的一些資源可能需要學習。例如 ,本教程 是從應用數學家的角度編寫的,如果你只是想在沒有任何理論基礎的情況下開始程式設計實踐,那麼請閱讀 這個資源 。另外推薦的一個資源是關於PyTorch的深度學習課程, 該課程 將自下而上地對內容進行討論,幫助你開闊視角。

關於反向傳播的問題|Backpropogation

在很多時候,進入深度學習領域前,需要掌握的第一個演算法就是反向傳播(Backpropogation)演算法,這是因為神經網路中的引數更新方法過程大多數是反向傳播演算法。當你不知道“梯度下降和反向傳播有什麼關聯?”或“鏈式法則和反向傳播究竟是什麼?”時,為了理解基礎知識,我們可以選擇去閱讀Rumelhart、Hinton和Williams的原始論文, 這篇論文 是一篇非常簡單易懂的文章。
其他一些非常有用的資源可以在此閱讀完原始論文的基礎上,進一步閱讀Karpathy關於 反向推導 的部落格和解釋反向推導的 視訊

線性代數和其他數學|Linear Algebra & other Maths

任何有志於學習線性代數的人都會人轉向學習Strang教授的 課程 ,這個課程可能是市面上學習線性代數的最佳資源。類似於 Boyd教授 的優化課程或向量微積分的微積分書(可以在網路上找到pdf電子版)。       然而,人們並不需要完全地學會這些資源,深度學習所需要的數學知識深度沒有那麼的深。一個非常好的 快速入門方法 就是快速地複習一遍所有必備的微積分深度學習課程。還有一套非常好的講義, 該講義 只關注深度學習中使用的凸優化理論。另外一個很好的資源是Sebastian Reuder的 論文

自動微分和深度學習框架|Automatic Differentiation & Deep Learning Libraries

進行深度學習時,自動微分法(Automatic Differentiation)並不是你必須知道的知識。對於大大多數框架而言,比如Torch、Theano或tensorflow都會自動地為你完成這個演算法。在大多數情況下,你甚至不必知道如何進行微分,也就是說,如果你決定進一步深入瞭解深度學習框架的工作原理,那麼你可能需要了解自動微分法是 如何工作 的。瞭解深度學框架庫功能其它的好資源可以在這個 部落格 視訊 中找到。

卷積神經網路|Convolutional Neural Networks

當你完成一些使逆能夠使用基本神經網路的課程後,你可能需要的最有用的知識是瞭解卷積處理影像的過程。 “在輸入上應用某種型別的卷積後,輸出形狀是什麼?”、“步幅(stride)如何影響卷積?”,“什麼是批量標準化(Batch Normalization)?”等類似的內容。我在遇到這些型別的應用問題時,找到的兩個最好的資源是該 教程 和Ian Goodfellow的 討論 。如果你有其它的想法,可以在這裡對卷積網路進行更全面的評論。這篇關於 物件檢測的綜述性文章 是關於卷積神經網路這一主題非常好的資源。

深度學習中的自然語言處理|NLP

之前指出,史丹佛大學C224課程是學習NLP的一個非常好的起點,在學習完該課程之後,應該能夠對所有的事情處理得很好。此外,還有Graham Neubig(使用dynet工具包)在youtube上的 課程 以及Yoav Goldberg的 NLP書 ,還有一份關於NLP進展的綜述性文章 在此 。關於是否在文字上使用CNN或RNN(LSTM / GRU)還有一個公開討論的問題,這裡有一個很好的 概述

強化學習|Reinforcement Learning

sutton和Barto(1998)可以說是強化學習領域的一本聖經,這本書是免費的,可以在 這裡 獲取。 這個資源 提供了一份對最近的深度強化學習方法非常好的回顧, 這個資源 有關於強化學習的非常有趣的教程。
蒙特卡洛樹搜尋(Monte Carlo Tree Search)(這是Deepmind除了深度強化學習技術之外的AlphaGo演算法的一部分)的詳細介紹在此,但我使用一個 快速教程 來理解它。

其他一些好的綜述/教程|reviews & tutorials

關於GAN(生成性對抗網路)和生成模型的一個很好的教程是Goodfellow在ICLR 2016中給出,可以在 這裡 找到。神經網路已被用於遷移藝術(例如在Prisma應用程式中),可以 在此處 找到有關方法的詳細介紹。 Reuder對多工學習(由同一神經網路組合多個任務)的另外一個很好的調查研究可以 在此檢視

評論|Criticisms

儘管深度學習在多個任務上的表現十分出色,但我們自己心裡清楚,還有一些地方尚未明確或效果不好。一些好的評論是 Shalev-Shwartz等人 關於基於梯度學習演算法的失敗,還有在Hinton大牛的演講中列舉出的一些關於 卷積神經網路的問題 ,以及卷積神經網路如何解讀它們所 訓練的影像 的負面影響。 此處 的一個評論在幾天之後就變成了病毒性/爭議性的話題,還有關於惡意使用深度學習的 廣泛報導

對抗性樣本|Adversarial Examples

對抗樣本是一個製造人工/真實資料點的巨大領域,製作出的樣本可以欺騙卷積神經網路。我本可以把這部分放在評論部分,但由於以下原因沒有進行這樣的處理:

  • 它們不是所有應用程式的技術挑戰

  • 我對其的瞭解並不是很好。一個非常酷的生成“對抗物件”來欺騙神經網路案例 在此 ,感興趣的讀者可以研究下。
    你還可以閱讀有關你應該瞭解的機器學習演算法,以便成為 資料科學家

作者資訊

Muktabh Mayank,資料科學家和企業家
LinkedIn: https://www.linkedin.com/in/muktabh/
本文由阿里云云棲社群組織翻譯。
文章原標題《Best (and Free!!) Resources to Understand Nuts and Bolts of Deep Learning》,譯者:海棠,審校:Uncle_LLD。
文章為簡譯,更為詳細的內容, 請檢視原文

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31077337/viewspace-2168449/,如需轉載,請註明出處,否則將追究法律責任。

相關文章