學習深度學習的四個步驟

學習深度學習的四個步驟

4 人贊了文章

原文地址(訪問需fq。。。

首先,如果你需要了解一些關於深度學習的基本信息,或者需要了解為什麼深度學習會對未來有如此巨大的影響的話,請先看一下Andrew Ng的講解視頻:Andrew Ng: Deep Learning, Self-Taught Learning and Unsupervised Feature Learning(訪問需fq去youtube,關注「金融與機器學習」公眾號,回復「視頻66」,獲取國內視頻)

第00步: 機器學習基礎

(可選但強烈推薦)

如果不了解機器學習,可以從Andrew Ng在Coursera上的機器學習公開課開始學習(國內的網易公開課上有Andrew Ng授課時的版本,相對較難一點,但更推薦)。 他在課程里不僅教授了各種各樣的機器學習演算法,更重要的是,他還詳細講解了一般的機器學習研究方法,如數據預處理、調參等等。

要對深度學習有個初步的認識,可以閱讀由Geoff Hinton, Yoshua Bengio, and Yann LeCun等人合著的NIPS 2015 Deep Learning Tutorial ,很適合初學者入門。

第01步: 深入了解深度學習

是的,沒有看錯,這一步就已經要求我們能深入了解深度學習。

在學習方法上,我更喜歡在網上看深度學習的學習課程的視頻,網路上也確實有幾門相當不錯的課程,下面是我喜歡的幾門課程:

  • Deep learning at Oxford 2015 ,由Nando de Freitas主講。他詳細講解了深度學習的基礎知識,且淺顯易懂,適宜入門。當然,如果你已經熟悉了神經網路,迫不及待地想敲開深度學習的大門的話,可以直接從第9節課開始。這門課所有的示例基於深度學習框架Torch。(Videos on Youtube)

  • Neural Networks for Machine Learning,Geoffrey Hinton 在Coursera上的課程。Hinton是一個極好的研究員,演示了廣義的反向傳播演算法並且對深度學習的發展起到了決定性的作用。我非常非常尊敬他,但不得不說,他的課程有一些欠缺條理,更糟的是Coursera的考試的布置有些混亂。

  • Neural Networks Class ,Hugo Larochelle主講的另一門優秀課程。

  • Yaser Abu-Mostafa』s machine learning course: 本課程更注重理論。

如果你更喜歡看書學習,下面是一些極佳的學習材料。

  • Neural Networks and Deep Learning Book ,Michael Nielsen著, 這是一本在線書籍並且提供了一些互動式的JavaScript效果。

  • Deep Learning Book ,由Ian Goodfellow, Yoshua Bengio 和 Aaron Courville合著:內容有些緊湊,但絕對是一本好書。

第10步: 選擇一個應用領域並深入了解它

深度學習有很多應用領域,找到一個你感興趣的,並深入學習。因為深度學習的應用領域非常廣泛,所以下面的列表沒能全面展示深度學習的所有應用領域。

  1. 計算機視覺

    深度學習改寫了這一領域。斯坦福大學Andrej Karpathy的CS231n Convolutional Neural Networks for Visual Recognition課程是我所知的最佳學習資料。 他教你基礎的計算機視覺知識,並且幫助你建立在AWS上的GPU實例。還可以學習一下Mostafa S. Ibrahim的Getting Started in Computer Vision。

  2. 自然語言處理 (NLP)

    自然語言處理領域包含機器翻譯、智能問答、情感分析等領域。要掌握此領域需要深入理解演算法和自然語言的基礎計算屬性。Christopher Manning的課程CS 224N / Ling 284是入門的好資料。 CS224d: Deep Learning for Natural Language Processing,是另一門斯坦福公開課,由David Socher (MetaMind創始人)主講,裡面講解了深度學習與自然處理的最新研究進展,也是一門非常優秀的公開課。要了解更多自然語言處理相關知識的話,可以閱讀這篇文章:我是如何學習自然語言處理的?。

  3. 記憶網路 (RNN-LSTM)

    結合注意機制的LSTM循環神經網路自外部讀寫內存的工作意味著在建造系統的時候有一些有意思的工作,就是能夠以問答的方式理解、存儲和檢索信息。這個研究領域起源於NYU的Facebook AI研究室的Yann Lecun博士。Arxiv上最初的博客:Memory Networks。許多的變體、數據集和基準測試都起源於這裡,比如,Metamind的自然語言處理的動態記憶網路。

  4. 增強學習

    增強學習是通過AlphaGo變火的, 它的圍棋系統 最近擊敗了 歷史上圍棋最強的選手之一(今年擊敗柯潔後,應該把可以之一去掉了)。 David Silver的(Google Deepmind) RL視頻教程和Stutton研究豐富的教程是一個很好的學習起點。想要了解LSTM的話,可以閱讀Christopher的文章理解LSTM 網路 以及Andrej Karpathy的循環神經網路不可思議的力量。

  5. 生成模型

    儘管有辨識力的模型會嘗試檢測、識別和分割事物,但它們最終在倒在了尋找特徵的路上並且不能理解數據的基本層面。除了短期應用之外,生成模型還提供自動學習自然特徵的可能性,類別、尺寸或者完全是其它的特徵。下面是三種常用的生成模型?——?生成對抗網路 (GANs),變分自編碼器(VAEs) 和 對抗模型 (比如 PixelRNN)。其中,GAN是最流行的。深入閱讀:

      Ian Goodfellow et al.最初的GAN論文

    • 拉普拉斯對抗網路(LAPGAN)論文 可用於修復穩定性

    • 深度卷積生成對抗網路(DCGAN)論文 和DCGAN代碼 可以用來在沒有監督的情況下學習分層的特徵。同時, 可以看看DCGAN圖像超分辨

第11步: 知行合一

動手做項目是成為專家的關鍵。嘗試去做一些你感興趣而且和你技能水平相匹配的項目。下面是幾個幫助你思考的建議:

  • 傳統學習方法之一,在MNIST dataset上學習分類

  • 在ImageNet上進行人臉識別和分類。有興趣的話,可以參加ImageNet Challenge 2016。

  • 使用RNNs 和 CNNs在推特上進行情感分析(國內的話可以分析微博啊,貼吧啊等

  • 教神經網路學習著名藝術家的藝術風格, (藝術風格的神經元演算法)

  • 使用循環神經網路作曲 ,使用循環神經網路演奏ping-pong

  • 使用神經網路評價自拍使用深度學習自動地將圖片變為黑白色

想要有更多的靈感的話, 就看看CS231n Winter 2016 和 Winter 2015 這兩個項目吧。同時還可以關注一下Kaggle和HackerRank競賽,可以以個人或團隊形式在裡面進行參賽,競賽既可以幫助你學習,實力夠的話,也可以去獲取獎金。

其他資源

下面是一些幫助你繼續學習的方法:

  • 閱讀優秀的Blog。包括Christopher Olah的博客 和 Andrew Karpathy的博客,這兩個博客上有基礎概念解析文章和最新研究成果的跟蹤文章。

  • 關注Twitter上那些有影響力的學者。 這裡是一部分: @drfeifei, @ylecun, @karpathy, @AndrewYNg, @Kdnuggets, @OpenAI, @googleresearch. (更多: Who to follow on Twitter for machine learning information ? )

  • Yann LecunnGoogle+ 深度學習公共網頁, 這是一個接觸深度學習創新成果以及與專業研究員、深度學習愛好者交流的好去處。

Github上ChristosChristofidis/awesome-deep-learning項目里有很多深度學習的教程、項目,還有有趣的社區,值得star和fork。


推薦閱讀:

TAG:人工智慧 | 深度學習DeepLearning | 機器學習 |