天天看點

【深度學習介紹系列】——前言

主要介紹機器學習的基礎知識(線性回歸,邏輯回歸,貝葉斯,支援向量機,馬爾科夫等),自編碼網絡,深度置信網絡,卷積神經網絡,遞歸神經網絡,深度強化學習。這些基本覆寫了機器學習和深度學習的主要算法。

首先介紹下機器學習與深度學習:

機器學習(Machine Learning)是一門專門研究計算機怎樣模拟或實作人類的學習行為,以擷取新的知識或技能,重新組織已有的知識結構使之不斷改善自身的性能的學科。

機器學習在圖像識别、語音識别、自然語言了解、天氣預測、基因表達、内容推薦等等得以應用。目前我們通過機器學習去解決這些問題的思路都是這樣的(以視覺感覺為例子):

從開始的通過傳感器(例如CMOS)來獲得資料。然後經過預處理、特征提取、特征選擇,再到推理、預測或者識别。最後一個部分,也就是機器學習的部分,絕大部分的工作是在這方面做的,也存在很多的paper和研究。而中間的三部分,概括起來就是特征表達。良好的特征表達,對最終算法的準确性起了非常關鍵的作用,而且系統主要的計算和測試工作都耗在這一大部分。但,這塊實際中一般都是人工完成的。靠人工提取特征。

2006年,加拿大多倫多大學教授、機器學習領域的泰鬥Geoffrey Hinton和他的學生RuslanSalakhutdinov在《科學》上發表了一篇文章,開啟了深度學習在學術界和工業界的浪潮。這篇文章有兩個主要觀點:1)多隐層的人工神經網絡具有優異的特征學習能力,學習得到的特征對資料有更本質的刻畫,進而有利于可視化或分類;2)深度神經網絡在訓練上的難度,可以通過“逐層初始化”(layer-wise pre-training)來有效克服,在這篇文章中,逐層初始化是通過無監督學習實作的。

目前多數分類、回歸等學習方法為淺層結構算法,其局限性在于有限樣本和計算單元情況下對複雜函數的表示能力有限,針對複雜分類問題其泛化能力受到一定制約。深度學習可通過學習一種深層非線性網絡結構,實作複雜函數逼近,表征輸入資料分布式表示,并展現了強大的從少數樣本集中學習資料集本質特征的能力。(多層的好處是可以用較少的參數表示複雜的函數)

深度學習的實質,是通過建構具有很多隐層的機器學習模型和海量的訓練資料,來學習更有用的特征,進而最終提升分類或預測的準确性。是以,“深度模型”是手段,“特征學習”是目的。差別于傳統的淺層學習,深度學習的不同在于:1)強調了模型結構的深度,通常有5層、6層,甚至10多層的隐層節點;2)明确突出了特征學習的重要性,也就是說,通過逐層特征變換,将樣本在原空間的特征表示變換到一個新特征空間,進而使分類或預測更加容易。與人工規則構造特征的方法相比,利用大資料來學習特征,更能夠刻畫資料的豐富内在資訊。

(引用自http://blog.csdn.net/zouxy09/article/details/8775360)

人臉識别的大概流程:

【深度學習介紹系列】——前言

面部特征定位——>幾何校正——>光度校正——>特征提取——>分類

下面用圖來大概說明下一般的淺層學習和深度學習的差別:其實深度學習就是把一般淺層學習中人工選取特征和預處理的部分用機器學習代替了。如紅色的框所示,深度學習包括特征提取和分類,是一個END-TO-END系統。

【深度學習介紹系列】——前言

學習資料推薦:

深度學習系列:

深度學習 - 我愛智能 - 部落格頻道 - CSDN.NET

http://blog.csdn.net/on2way/article/category/5920197

Deep Learning - 随筆分類 - tornadomeet - 部落格園

http://www.cnblogs.com/tornadomeet/category/497607.html

Deep Learning(深度學習)學習筆記整理

如果你是剛入門的小白,建議收藏這位大神的系列文章,這一系列基本山涵蓋了深度學習的所有基本東西,是以相對來說也是比較綜述性質的,很多的細節是你需要有一點了解的才能看得懂。可能第一遍下去看不懂,或者隻能懂很淺顯的一部分,但是不要緊,建議每隔一段時間看一看這個大綜述,每一次你都會有不同的收獲的。

如果覺得光看别人寫的很難了解,網絡上相關的視訊也是很多的,比如說複旦大學 

吳立德教授的

《深度學習課程》

講的很淺顯易懂,觀看他的教學視訊會對深度學習的很多底層原理有一個更好的了解,當然唯一的不足時這個系列視訊的分辨率有點低,看起來略費勁,但是還是可以學習的。 

關于該教授的課程總結,也有網友寫了: 

http://m.blog.csdn.net/blog/iichangle/44082827

另外一個學習較好的教程是吳恩達的UFLDL教程,該教程也有網友翻譯成中文版的了,可以說也是非常淺顯易懂的,裡面涉及到的代碼也是有網友分享過。關于吳恩達,感覺研究深度學習的沒幾個不知道的,他還有比較經典的機器學習教程,這些可謂是更底層的原理介紹與一些淺層學習算法,對于較好的了解機器學習乃至深度學習非常有幫助。深度學習UFLDL教程教程如下:

http://ufldl.stanford.edu/wiki/index.php/UFLDL%E6%95%99%E7%A8%8B

其機器學習教程網址如下:

http://openclassroom.stanford.edu/MainFolder/CoursePage.php?course=MachineLearning

該機器學習教程有更早的斯坦福課堂上的版本,在哪裡有網友翻譯的中文字幕,可以搜一下學習學習,很不錯。

當然還有很多很多很好的教程: 

部落格園上的網友總結系列,當你具體到學習某個部分的時候會很有用: 

http://www.cnblogs.com/tornadomeet/tag/Deep%20Learning/default.html?page=1

這位網友翻譯的系列: 

機器學習 

其英文版的課程: 

CS231n: Convolutional Neural Networks for Visual Recognition.

在貼一個國外大牛還未出版的電子書: 

http://neuralnetworksanddeeplearning.com/index.html

還有一個好的教程(有英文視訊) 

http://cl.naist.jp/~kevinduh/a/deep2014/

再就是DeepLearning的官網,裡面好的好東西自己發現: 

http://deeplearning.net/

關于學習深度學習工具,似乎也有好多(matlab版,c++版,python版等等深度學習庫),視你自己熟悉而定。比如一個比較适合初學者學習原理的matlab版工具箱:

DeepLearnToolbox 

(後面會基于這個工具箱進行相關實驗)。

繼續閱讀