學習資料參考:從深度學習到自然語言處理

學習資料參考:從深度學習到自然語言處理

</br>

注意:本文已經更新,新版結合深度學習簡介和發展歷程,給出了更詳盡的學習資料參考。新版鏈接:深度學習簡介與學習資料參考


本文主要介紹一些與神經網絡自然語言處理相關的經典教程、資料,以便初學者能有個比較清晰的學習參考。

<a name='from-ml-to-dl'></a>

從機器學習到深度學習

深度學習脫胎于神經網絡,而神經網絡又是一種機器學習的經典算法。因此,如果希望從理論上更深刻地掌握深度學習,建議了解相關的機器學習知識。

<a name='ml'></a>

機器學習

Andrew Ng.(吳恩達)的機器學習教程

機器學習入門方面,Ng的教程應該算是比較經典的資料了。網上有兩種版本的課程資料:

為了與后續的神經網絡、深度學習等知識進一步銜接,建議在學習機器學習時,重點關注這些知識點:

機器學習基本概念(模型 -> 訓練 -> 測試)
有監督學習與無監督學習
Linear Regression與Softmax Regression
目標函數的概念,如何訓練一個模型
梯度下降等優化算法
過擬合與欠擬合的理解
模型的約束與正則(Regularization)

<a name='dl'></a>

深度學習

盡管深度學習現在已涌現出多樣的模型,但其最基礎的模型DNN(Deep Neural Network)則脫胎于神經網絡中的MLP(Multi-Layer Perceptron)模型。在學習深度學習相關內容時,建議先粗略了解下神經網絡的發展歷史,所謂的三起三落,對于每次的興起或是衰落,如果能清楚地知道其興衰原因,就能對神經網絡與深度學習有個宏觀的了解,便于迅速把握其脈絡。

首先推薦兩個深度學習入門的博客:

  • Deep learning學習筆記整理 這篇文章比較詳細地介紹了神經網絡到深度學習的背景知識,特別是從特征學習這個角度講到了深度學習的重要意義。文中也涉及到不少常見的深度學習模型,這部分簡要了解即可。
  • 神經網絡淺講:從神經元到深度學習 這篇文章側重于從神經網絡歷史發展的角度,簡述了神經網絡與深度學習相關的內容。

下面介紹幾個比較經典的深度學習教程:

Neural Networks and Deep Learning (Michael Nielsen)

這個資料可以作為神經網絡/深度學習的極佳入門資料。因為其中有不少動畫演示,目前暫時只能在網頁端查看,作者本人也表示并沒有出pdf等版本的打算。該教程以圖像領域經典的mnist手寫數字識別任務為例,幾乎是從零開始,介紹了神經網絡與深度學習中很重要的一些基本概念。該教程的主要內容如下:

1) Using neural nets to recognize handwritten digits
2) How the backpropagation algorithm works
3) Improving the way neural networks learn
4) A visual proof that neural nets can compute any function
5) Why are deep neural networks hard to train?
6) Deep learning

個人覺得,該教程的主要亮點在于,不依賴任何第三方機器學習的庫(僅使用了numpy),一步步搭建起深度學習網絡模型,對BP(反向傳播)算法做了比較詳細的闡釋和推導,并且利用case study描述了為什么神經網絡可以從理論上去逼近任何一個函數(但并不是數學意義上的證明)。

由于該教程立足于入門,因此僅介紹了DNN,并沒有介紹深度學習其他眾多的模型,現在經常使用的ReLU激活函數、dropout技術等都沒有介紹。實現上,也沒有采用向量化實現(這會嚴重影響程序執行效率)。但這并不妨礙該教程成為一個經典的入門材料。學習時,建議按照該教程思路,能夠自己將神經網絡實現一遍。

誤。。。前幾天重新看了下這個教程,發現作者已經加入了關于ReLU, dropout, Theano等不少新的內容,力薦這個教程啊!以及,眾網友們合作出了該教程的LaTeX中文版pdf,可以從這里下載。

Stanford UFLDL(Unsupervised Feature Learning and Deep Learning)教程

這個教程從名字上就強調了深度學習的重要意義——特征學習。該教程作者也是Andrew Ng,如果從Ng的機器學習教程入手,再學習該教程會有比較好的連貫性。教程在Stanford官網有個主頁,如主頁所述,教程有新版,舊版的英文版中文版。新版相對于舊版,在知識架構了做了比較大的改動,但具體到詳細的知識點,差別不是太大。

Deep Learning Tutorials

Deep Learning Tutorials教程是Bengio團隊LISA lab維護的一個深度學習教程。該教程最大的特色是,使用基于theano工具,將教程中的各個模型均實現了一遍,因此很適合詳細地去了解每個模型的細節。實際上,theano工具便是該團隊開發的。學習該教程時,建議按照如下的順序(教程主頁已經有閱讀順序的建議):

[重要] Machine Learning, Deep Learning and Theano basics
[重要] Logistic Regression -> MLP (Multi-Layer Perceptron) -> Deep CNN (Convolutional Networks)
Auto Encoders -> Stacked DAE (Denoising Autoencoders)
RBM (Restricted Boltzmann Machines) -> DBN (Deep Belief Networks)
Other Models

以上是幾個比較經典的深度學習教程。如果希望系統地按照課程學習方式來學習相關知識,可以參考Deep Learning大牛Hinton老師的Coursera課程Neural Networks for Machine Learning。值得注意的是,如果僅是服務于個人的研究工作的話,里面涉及到的模型不必面面俱到,比如Restricted Boltzmann Machines現在使用的已經不是太廣泛了。06年導致Deep Learning火起來的unsupervised layer-wise pre-training方法,也往往可以用良好的初值選取策略、ReLU和dropout等技術來替代(但并不完全等價)。

<a name='nlp'></a>

自然語言處理

應當說,Deep Learning最早是在圖像和語音領域火起來的,但近些年的研究也逐漸發現,Deep Learning在NLP (Natural Languang Processing)領域也開始取得可喜的效果。實際上,圖像、語音、文本,本來就是信息記載的不同載體,Deep Learning能綜合運用在這些領域的不同任務上,不足為怪。這里引用下Deep Learning Tutorials中的一句話:

Deep Learning is about learning multiple levels of representation and abstraction that help to make sense of data such as images, sound, and text.

重要部分我已經加粗顯示了。

實際上,在使用神經網絡技術之前,NLP的研究經歷了從規則統計的過程。這段有趣的歷史可以參考吳軍博士的《數學之美》中的前7章內容。在學習Deep Learning應用于NLP之前,建議先了解下簡單的統計語言模型的知識,包括語言模型n-gramVSM (Vector Space Model)One-Hot等基本概念。關于統計語言模型,可以參考我們是這樣理解語言的-統計語言模型這篇文章。

Deep Learning for NLP課程推薦:

Stanford University CS224d: Deep Learning for Natural Language Processing

CS224d是專門介紹Deep Learning for NLP的課程,從基本的語言模型、詞的向量表示開始,介紹了深度學習的相關知識,以及在NLP中常見的模型。目前而言,在NLP中常見的模型包括CNNRecursive NNRecurrent NN模型,尤以卷積、循環網絡居多。

<a name='we'></a>

詞嵌入(Word Embeddings)

DL應用于NLP,最激動人心的成果當屬詞嵌入(Word Embeddings)概念的產生了。簡單來說,就是用一個低維、稠密的向量來表示一個word,這種表示是通過神經網絡語言模型學習而來的。當得到這些詞向量之后,研究者發現它有著很好的特定,比如蘊含語義特征(man-woman $\approx$ king-queen),用這些詞向量代替原來的特征,可以在各種任務中取得state of art的效果,等等。

此外,詞向量的獲取往往依賴于語言模型,因此便產生了神經網絡語言模型的概念。從2001/2003年Bengio的工作開始,有不少基于神經網絡的語言模型已被提出,也產生了不少開源工具來產生詞向量,如word2vecGloVe等。

詳細知識點不再展開,推薦相關教程、資料如下:

<a name='comp'></a>

語義組合(Semantic Composition)

在獲取詞向量之后,我們得到了word的向量式表示,因此下一個很自然的問題是,如果利用這些word是表示,獲取更高層次概念(如phrase, sentence, document)的表示,這其中涉及的概念即為語義組合(Semantic Composition)。

目前,常見的語義組合方法可以分為以下4類:

上面的這些模型在CS224d課程中也均有比較詳細的介紹。

總結來說,如果希望比較詳細地了解神經網絡、深度學習的細節,還是需要不少學習的。現在很多第三方的庫(如Caffe、Theano、Keras、Lasagne、TensorFlow等)使得許多深度學習模型可以快速實現,但這些庫往往屏蔽了諸多算法的細節(如BP、Gradient Descent、AdaDelta等),如果希望進一步做一些比較深入的工作,對相關模型的深入了解還是必不可少的。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 230,791評論 6 545
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 99,795評論 3 429
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 178,943評論 0 384
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 64,057評論 1 318
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 72,773評論 6 414
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 56,106評論 1 330
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 44,082評論 3 450
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 43,282評論 0 291
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 49,793評論 1 338
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 41,507評論 3 361
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 43,741評論 1 375
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 39,220評論 5 365
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,929評論 3 351
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 35,325評論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,661評論 1 296
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 52,482評論 3 400
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 48,702評論 2 380

推薦閱讀更多精彩內容