1. 程式人生 > >Deep learning:四十(龍星計劃2013深度學習課程小總結)

Deep learning:四十(龍星計劃2013深度學習課程小總結)

頭腦一熱,坐幾十個小時的硬座北上去天津大學去聽了門4天的深度學習課程,課程預先的計劃內容見:http://cs.tju.edu.cn/web/courseIntro.html。上課老師為微軟研究院的大牛——鄧力,群(qq群介紹見:Deep learning高質量交流群)裡面有人戲稱鄧力(拼音簡稱DL)老師是天生註定能夠在DL(Deep learning)領域有所成就的,它的個人主頁見:http://research.microsoft.com/en-us/people/deng/。這次我花費這麼大的力氣參加這個課程,是期望能達到3個目的的:一、把DL中一些常見基礎演算法弄明白,特別是跟能量模型等相關的演算法。二、站在更上一層的角度來理解DL,知道下一步該學哪些知識。三、和群友交流下科研心得,多認識幾個朋友。實踐表明,第二和第三個目的基本達到,但關於第一個有點小失望。

  下面簡單回憶下鄧老師這4天大概講了些什麼內容(沒做太多筆記,記憶有些模糊)。

  Day1:其課件主要見Lecture-Slides-DayOne.由於鄧老師講課時喜歡插入一些他和其它DL大牛(比如Hinton)之間的故事,所以這個課件沒有講完(課件本身內容頁太多),大概講了前面100頁,後面幾天還有不少內容是基於這個課件的。在這一天的課程中,他列出了一些DL研究小組的網頁,並給出了一些常見的學習工具。主要是從語音處理領域介紹DL,Dynamic model,以及兩者的結合;具體內容有:DL是分散式的表示;感知機介紹,SVM其實本質也是感知機;為什麼BP演算法在90年代末期被扔掉的原因;比較詳細的介紹了RBM以及RBM的訓練過程,對比了RBM和GMM模型;介紹了DBN模型,以及DBN在生成資料和識別上的使用方法;DNN模型(用generative method pre-training後的深度網路);從優化角度和過擬合角度介紹了為什麼pre-training會有效果;RBM等價於一個無窮層的DBN;微軟在語音識別領域的歷史進展;DBN(動態貝葉斯模型)在語音處理上的使用;DL和動態貝葉斯的結合。

  Day2:課件見Lecture-Slides-DayTwo,課件內容非常少。因為這一天放了一天的video,video內容都是coursera上的課程,其中一門課是Hintion的Neural Networks for Machine Learning,另一門課程是從生物角度介紹神經科學的:Computational Neuroscience。可能每個人基礎不同以及所期望的目的不同吧,反正本人對那一天的課程比較失望。因為那些課程都是網上公開的,課件和視訊網上都可以看得到,而鄧老師卻用了一天的時間在課程上放這些。比較好的方法應該是列出它要放的視訊的重點(幾頁ppt就可以搞定),然後大致提一下其內容,讓學員回去後對照看即可(比較大家千里迢迢跑來聽課是想多學點東西)。這一天的內容中鄧老師是想從生物神經的角度來推匯出DL,因為DL的數學理論太差,這點經常遭他人抨擊。而鄧老師的觀點是,DL其實是生物神經模型通過N步簡化而來的,具有一定的生物基礎,所以有一定的道理。這就是那一天的主要內容,交叉放生物神經模型和工程神經網路的視訊教程。聽說現場有些搞科研的老師聽完當天的課程後收穫非常大,因為受到鄧老師很多觀點的啟發,有了很多自己新的想法。另外,在第二天的課程中,鄧老師比較客觀的介紹了他自己認為DL能夠適用的領域(比如語音,影象,文字等),以及DL不擅長的領域(比如說Malware detection,movie recommender, speaker/language detection),理由是一些有感知機制的AI比較適合用DL,而一些Data Matching不太適合。

  Day3:課件雖為Lecture-Slides-DayThree,但是由於第二天有人反應上課方式和內容不太好,所以把鄧老師的計劃弄亂了,因此這一天的內容是想到哪方面還沒介紹就講哪方面的知識。主要內容好像是CNN;目標識別;dropout;SGD;Hopfield能量模型;RNN的介紹以及一些常見的RNN learning方法,包括long short term memory, Hessian Free optimization, Echo State Network等,主要還是用Hintion的NN課件。

  Day4:當天的內容更沒有預先的計劃,像打補丁似的想到哪就講到哪,課件主要用的是第一天沒有講完的內容和hintion的課件,還有一些是ICML2013的一些keynote,比如Vincent Vanhoucke的。主要講的內容有Deep AutoEncoder;DL在IR中的應用,重點講了鄧老師自己提出的模型DSN;DL在NLP領域的應用;DL在語音處理中的acoustic model中的應用。下午的安排主要是鄧老師回答同學的提問,問題是前一天通過已發郵件給胡老師(胡老師個人主頁:http://cs.tju.edu.cn/faculty/huqinghua/)整理過的,在鄧老師回答這些問題前請科大訊飛和中科院自動化所的人分享了一些Deep learning領域的心得,其中一個報告毫無內容,另一個沒太聽懂。同學提的問題比較多,從鄧老師的回答過程中也收穫了不少。

  總結:鄧老師還是相當厲害的,從他上課激動的語言可以看出,他對DL的未來還是比較樂觀的,他並不是盲目推崇DL,比如他也比較客觀的分析了哪些領域適合DL,哪些領域不適合DL。這次上課雖然沒有收穫太多的DL基本演算法細節,但是也知道了後續一段時間如果想繼續DL的,該看哪方面的知識。比如說至少知道了coursera是個很好的自學平臺。另外和群友一起參加小討論,逛校園,聚餐,整個過程還是相當愉快的,認識了不少朋友。

  10號到學校後花了3天多時間把Hition的課程Neural Networks for Machine Learning大概學了一遍。共16節課。感覺這個課程還是比較不錯的(很早以前有看過其中的一節RBM,完全不知所云,所以第一印象是他的課程不好),有很多工程經驗性的東西在裡面,因為課程主要是從工程角度上講解的,所以如果你對所將內容有過實際專案和實驗經驗的話,收穫會很大。這麼課的基本內容是:從什麼是機器學習,為什麼要使用機器學習到怎樣常見的NN演算法在機器學習中的應用;從感知機的學習到BP演算法;從NN在預測下一個單詞到圖片目標識別的應用;從梯度下降法到常見的NN優化演算法;從Hopfield Nets到RNN網路以及其訓練方法,從模型泛化到模型平均;從BM到RBM以及從RBM到DBN,DBM;從SBN到Week-Sleep演算法;從PCA到Deep AutoEncoder;從joint model到Hierachy part model;還有各種DL在語音,影象,文字上的應用,以及DL的未來都給出了一定的介紹。課程覆蓋的內容相當廣泛;相信隨著自己今後具體實踐時回過圖來參考這些課件,會很有幫助。

  總的來說說,”北伐”的這幾天,收穫還是不錯的。感謝龍星計劃和天津大學的組織者,感謝鄧老師這幾天辛苦的付出!