當前位置:
首頁 > 新聞 > 五年過去,Hinton的《神經網路和機器學習》還是最好的機器學習課程嗎?

五年過去,Hinton的《神經網路和機器學習》還是最好的機器學習課程嗎?

雷鋒網AI科技評論按:Hinton的深度學習課程早在2012年上線,對於這門課程,有學者認為它太過艱深,不適合初學者上手;也有的學生覺得它受益良多,是值得一學的好課程。那麼五年過去,這門名為《神經網路和機器學習》的課程是否依然是「最值得學習的深度課程」?關於這個問題,目前就職於 Voci Technologies的首席語音架構師、畢業於香港科技大學的 Arthur Chan 日前在他的博客上發表了看法,雷鋒網做了不改動原意的翻譯和編輯。

此外,為了讓廣大 AI 青年們不再為英語所累,快速進入學習狀態,雷鋒網經Hinton教授的親自授權,推出了深度學習大牛 Geoffrey Hinton 的《Neutral Network for Machine Learning》中文系列視頻課程。目前正在大量招募長期字幕組成員,

以下為雷鋒網編譯的文章內容:

對我而言, Hinton的深度學習課程,或者《神經網路和機器學習》(NNML)課程,應當是很早之前就要完成的。如你們所知,這套課程最初上線已經是2012年的事情了,而我當時還並不怎麼看好深度學習。當然,2013年的時候我的想法開始有所變化,但是那時候課程已經下線存檔了。直到兩年以後,我打算嘗試吳恩達在機器學習方面的課程的時候,才有機會把Hinton的課程看一遍。等到去年10月,這套課程重新上線的時候,我決定再聽一遍,把所有的視頻看第二遍,完成所有的作業,還要拿到能夠通過的分數。當你與我一起體會這趟旅程的時候,你就會發現這個課程很有難度。所以有一些課程視頻我得看四五遍,才能差不多明白Hinton說的是什麼意思。有一些課後作業我要邊散步邊思考很久才能想清楚。最後,我完成了所有的20個課後作業,甚至還付錢拿到了證書方便炫耀。這是一段清爽的、引人深思的,還讓人覺得滿足的旅程。

所以這篇文章是我對Hinton的這一系列課程的評論,告訴大家為什麼這套課程是最值得學的課程,而你又應該在什麼時候學它。許多論壇上還有人提出了這個問題:「現在有那麼多的深度學習課程,Hinton的課程是否過時了?它還是最適合初學者的課程嗎?」 我會在文章的最後從幾個角度引出對它的回答。

舊模式讓人覺得很難

我對能夠在Coursera的老模式下完成這套課程的人其實抱有敬仰。眾所周知,許多評論都說Hinton的《神經網路和機器學習》比吳恩達的《機器學習》課程要難多了。我有一些博士朋友都沒辦法在課程的後一半里完全跟上Hinton的授課節奏。

這也不奇怪,當Kapathay在2013年評論這套課程時,他說很多從來沒有從事過機器學習的人現在也慕名而來,但對於初次接觸的人來說,要理解類似「基於能量的模型」這種很多人都跟不上的話題,簡直引人入睡。那「深度信念網路」(DBN)呢,這些人直到今天還會把它和深度神經網路(DNN)搞混。直白地說,別看我學完了這套課程,可我到現在都還不能領會第15堂課的某些證明,因為深度信念網路的內容真的很難。

這種舊模式裡面,每道測試題只允許嘗試3次,這讓截止時間變得很緊張,而且課程的內容你只能學一遍;有一次的課後作業還需要從細節開始導出反向傳播矩陣。這些都讓這套課程不太適合沒有大塊時間的個人(比如我),但是更適合第二年或者第三年的研究生,甚至是有很多時間的經驗豐富的實踐者。(可真的有這樣的人嗎?)

新的模式更加簡單,但是仍然有挑戰性

我去年10月的時候嘗試了這套課程,這時候Coursera已經把大多數的課程都換成了新模式,一門課可以反覆學好幾次。這樣讓課程任務的難度降低了一點,更重要的是它更適合忙碌的人了。不過這還不意味著你可以對課程隨隨便便:大多數時候,你還是會需要給課程做評論、自己做數學推導、編寫偽代碼,等等。課後作業還是需要你提取反向傳播矩陣。好處是,你還是可以體會得到學習這門課過程中的所有快樂(手動微笑);壞處是,如果少於每周10到15小時的投入,仍然不要指望可以完成這套課程。

課程的三大難點挑戰一:數學

跟吳恩達的課程或者cs231n的課程不一樣,《神經網路和機器學習》對於沒有高等數學基礎的初學者來說並不算容易。其中的數學部分不算太難,多數時候都是用鏈式規則做求導,憑直覺寫出黑塞矩陣,以及更重要的,向量求導——可是如果這些東西你以前都沒有學過,那這門課真的會讓你覺得雲里霧裡。在嘗試這套課程之前,一定要先學過高等數學,並且知道一些基本的矩陣方程。

挑戰二:基於能量的模型

另一個這套課程有難度的原因是,至少一半的課程內容是在我們稱作「基於能量的模型」之上進行的。它的意思是指Hopfield網路(HopfieldNet)、玻爾茲曼機(BM)以及受限玻爾茲曼機(RBM)。即便及對有監督學習的學習方法中的數學部分比較熟悉,比如線性衰退、對數衰退甚至反向傳播,RBM的數學公式部分還是會讓你覺得頭大。這也不奇怪,許多這種模型都來自於物理,比如伊辛模型(Ising model);深度學習的研究還會經常用到來自貝葉斯網路的想法。如果你對物理和貝葉斯網路兩者都不熟悉的話,也應當會覺得很困惑。

對我來講,我花了很多時間在谷歌上搜索、閱讀相關的文獻,這支持我解決了一些問題,但是這並不代表我就對這些課題真的了解了,因為它們可能真的會很深入,並且跟直覺相悖。

挑戰三:循環神經網路(RNN)

如果你近期學習過RNN,應該要麼是看了Socher的cs224d課程,要麼是看了Mikolov的論文吧。當你在考慮增加和減少維度問題的時候,LSTM很容易就會成為你腦中唯一考慮的那個方法。其它的方法當然也是有的,比如回聲狀態網路(ESN)和無黑塞模型的方法,不過近期很少有人討論它們了。再重複一下,它們的方程與你從反向傳播和梯度下降中學到的標準方法有很大區別,不過對他們的學習能夠拓展你的眼界,並且讓你思考這種狀態引用是否是正確的方法。

既然如此難,那麼它的優點在什麼地方呢?

假設你只用用機器學習、深度學習中的某些有趣的工具,我估計你只需要看吳恩達的課程、嘗試一些範例,然後就會覺得自己是個專家了;現在也有很多人這樣做。實際上,吳恩達的Coursera課程本來就是為了讓你上手試一試機器學習,當然了,你還可以在學習這個課程後再補充很多別的機器學習工具。

即便我說了剛才那些話,你還是需要知道,只做那些事的話,你對機器學習、深度學習的理解還是比較淺薄的。你心裡想的可能是:「哇,我有一大堆數據,那就扔到Algorithm X裡面去看看吧」,或者「嘿,我們就是想要用XGBoost,對吧!它總是能給出最好的結果!」你理應明白,性能指標並不是一切。知道你的模型裡面正在發生什麼是很重要的。當你的理解不足的時候,你很容易做出高成本的、短視的、狹隘的決定。這種事情時不時在我同事和我自己身上發生,甚至在我的有些導師身上也時有發生。

別再犯這樣的錯誤了!一定要思考得更深、試著弄懂其中的核心思想。如果你只是做了吳恩達的神經網路課程的課後作業,現在你肯定還在考慮這些內容要如何才能運用到其它的工作中。去聽聽Hinton的課,去反覆體會一下在教授的論述中眩暈的感覺。然後你就能開始建立對深度學習的更深的理解了。

另一個比較技術方面的提醒:如果你想學習深度無監督學習,我覺得這個課程也應當是你學習的第一套課程。Hinton教授會教會你對許多種機器的關鍵點,讓你也會有機會實際試試。對於Hopfiled網路和RBM,如果你了解基本的倍頻程編程的話,可行性也是很高的。

五年過去了,這門課過時了嗎?

現代的學習者,可以說他們很幸運,在學習一些像深度學習這樣艱深的課題的時候,他們有會很多的選擇。只需要看看我自己的前五大推薦,cs231n,cs224d,甚至Silver的課程都是非常適合作為第二個課程的。

但是我仍然推薦Hinton的「神經網路和機器學習」(NNML)課程,具體有四個原因如下:

1,它比其它課程更深度、更難。就像我剛才說過的,神經網路和機器學習很難,不完全難在數學上(Socher的和Silver的數學也不簡單),而是難在概念上,比如基於能量的模型和不同的訓練RNN的方式,都是典型的例子。

2. 許多機器學習、深度學習的概念都可以從多個角度解讀。比如,偏置和多樣性之間需要為了頻率做權衡,但是這對於貝葉斯來說又是「頻率論幻覺」。同樣的情況也發生在反向傳播、梯度遞減這樣的概念中。一旦你開始思考他們,就會發現他們都是非常艱深的概念。所以,上課學習的原因之一,並不是教會你這個概念就結束,而是讓你能夠從不同的角度來觀察這件事。從這個角度講,NNML這門課簡直天造地設。我發現自己經常走在路上還會經常思考Hinton講過的話。

3. Hinton的觀點:Hinton教授在過去的30年中,幾乎都在機器學習的失敗的那一面。但是隨著他一直堅持,你可以通過他的講述中感受到他如何、又為什麼要開始這樣一種研究方向,沒準最後你還會知道如果自己以後要研究什麼東西,你應該如何做。

4. Hinton教授的授課方法很幽默。可以去第10節課看看他是如何看待80年代的時候物理學家為什麼要在神經網路上花費精力的(備註:他在研究無神經網路之前是物理學家)

結論

說了這麼多,Hinton教授的「神經網路和機器學習」(NNML)課程真的是必修課。我們每一個人,不論初學者還是專家,都能從教授的視角和課題的寬度中受益。

不過如果你完全是門外漢,我確實還是建議你先學習一下Ng的課程,或者學一學微積分,加一些線性代數、概率論和數理統計,這會讓課程變得更容易接受(以及可能更有可行性)。在我看來,Kapathy的課程和Socher的課程都是Hinton課程之下的更簡單的第二好的課程。

當你完成這門課以後,最好還是看看其它的基礎課程。從我這篇「學習深度學習——我的前五大推薦」博文中,你會對下面要學的東西有不少想法。額外提到一件事情是Paphne Koller的「概率圖形模型」,我覺得它同樣具有挑戰性,而且沒準能夠在比如深度信念網路這樣非常深奧的課題中帶給你一些洞見。

再給你一個建議:你可以上完一遍以後再上第二遍。這也是我打算在半年以後做的事情——正如前文所說,我還沒能理解課程里的每一個細枝末節。但是我覺得等我第六次或者第七次學習這些材料的時候,應當就能完全領悟了。

via The Grand Janitor Blog - A Review on Hinton"s Coursera "Neural Networks and Machine Learning"

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 雷鋒網 的精彩文章:

美海軍測試補給投送無人機 成本3000美元以下
科沃斯DD3掃地機器人媒體品鑒會
人工智慧輔助診斷落戶南京,機器人如何2分鐘診斷出甲狀腺結節?
雖然不造車,但是蘋果人工智慧的未來就靠自動駕駛了?

TAG:雷鋒網 |

您可能感興趣

Hinton「神經網路與機器學習」課程經驗與簡評
使用 Python 開始你的機器學習之旅
Python超過R,成為數據科學和機器學習的最常用語言
很污的機器學習:從xhamster網站找到喜歡的片子
Python vs R,誰才是機器學習編程語言的首選?
Intel發布專為機器學習而設計的Intel? Nervana?神經網路處理器,年底量產
Intel發布專為機器學習而設計的Intel Nervana神經網路處理器,年底量產
除了 Python,這些語言寫的機器學習項目也很牛(二)
Google AI 實力打臉:你真的懂機器學習嘛?
Python機器學習和深度學習:你需要知道的內容
Elastic機器學習Steve Dodson:機器學習的潛能
迭代速度慢?成熟的機器學習流如何設計:微博大規模機器學習框架Weiflow揭秘
除了 Python,這些語言寫的機器學習項目也很牛
Python 語言下的機器學習庫
每月好書:Python與機器學習實戰
深度學習有很長的一段路要走!Keras作者談機器學習的局限性
選擇Spark機器學習API的四大機器學習演算法,你掌握了多少?
程序員想搞機器學習?看看Nodejs之父這一年摸爬滾打的心路歷程
Kaggle 上機器學習的八個步驟