【機器學習元老親授】即使有點難度,但你還是不該錯過這個神級機器學習課程

Geoffrey Hinton,截圖自 YouTube

【我們為什麼挑選這篇文章】Geoffrey Hinton 是知名計算機學家,以他在神經網路方面的貢獻為大家所知 。他曾推出深度學習的線上課程,至今五年過去,是否還是適合大家學習的課程?目前擔任語音架構師的 Arthur Chan 就在 部落格 上發表了他的看法,由雷鋒網編譯。(責任編輯:黃筱 雯)

雷鋒網 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 的「概率圖形模型」,我覺得它同樣具有挑戰性,而且沒准能夠在比如深度信念網絡這樣非常深奧的課題中帶給你一些洞見。

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

延伸閱讀

【高效自學術】如何找到一份「深度學習」的工作?讓這些資源充實你必備的知識!
《你的名字》濾鏡 App 爆紅技術關鍵:機器學習和神經網路
不用學英文了?Google 翻譯導入類神經機器學習,Google 小姐變聰明啦!
人工智慧、機器學習算什麼?美科學家成功培養出人類大腦

(本文經合作夥伴雷鋒網授權轉載,並同意 TechOrange 編寫導讀與修訂標題,原文標題為 〈五年過去,Hinton 的《神經網絡和機器學習》還是最好的機器學習課程嗎?〉。)


我們正在找夥伴!

2019 年我們的團隊正在大舉擴張,需要你的加入跟我們一起找出台灣創新原動力! 我們正在徵 《採訪社群編輯》、《助理編輯》,詳細職缺與應徵辦法 請點我

點關鍵字看更多相關文章: