天天看點

巧用MOOC組合掌握機器學習學習途徑入門進階實踐補課讨論

今天學習不努力,明天努力找工作
巧用MOOC組合掌握機器學習學習途徑入門進階實踐補課讨論

學習

2017年1月,人類在智力領域數萬年積攢下來的嚣張氣焰遭到了若幹次無情的打壓。

咱們不提CES 2017上激動人心的自動駕駛産品(估計七八年之後你的駕駛證就可以扔掉了),也不細講《最強大腦》節目裡人類精英在圖像識别環節被碾壓(這曾經是人類可以嘲笑人工智能的典型領域),就說說圍棋界的海嘯吧。

數十位人類圍棋界頂尖高手,用人類圍棋對弈的千年智慧結晶,曆經艱苦卓絕的奮鬥,依然被Master用快棋打了個一塌糊塗——60:0。

巧用MOOC組合掌握機器學習學習途徑入門進階實踐補課讨論

别人輸棋以後都很茫然,唯獨古力九段戰後的話最為耐人尋味——“人類與人工智能共同探索圍棋世界的大幕即将拉開”。

這話我聽着,覺得韻腳極為熟悉。突然想起來王朔的《頑主》中描述過類似情節。

馬青興沖沖地走到了前面,對行人晃着拳頭叫喚着:“誰他媽敢惹我?誰他媽敢惹我?”一個五大三粗,穿着工作服的漢子走近他,低聲說:“我敢惹你。”馬青愣了一下,打量了一下這個鐵塔般的小夥子,四顧地說:“那他媽誰敢惹咱倆?”
巧用MOOC組合掌握機器學習學習途徑入門進階實踐補課讨論

玩笑歸玩笑,不過人類精英終于學會謙遜,并對人工智能表達了合作的誠意,這也是好事兒。人工智能的崛起讓很多人自以為認識到了一個現實:

你今天有工作的時候不學習人工智能,明天人工智能會取代你的工作。

你同意嗎?

其實這話錯了,它不是現實。

人和機器不會發生競争。人掙錢吃飯,機器有電就行。

現實是:

你今天有工作的時候不學習人工智能,明天就有人利用人工智能取代你的工作。

人和人永遠免不了競争。這場軍備競賽裡面,人工智能已經成為了個體可以掌握的核武器。别人懂了,你不懂,結果會很美妙。

?!……

當然我說的是别人的結果。

人工智能領域中,目前最火的技術是機器學習(machine learning),尤其是近年來伴随大資料産生而崛起的深度學習(deep learning)。不論是AlphaGo還是百度大腦,其實都是使用了(深度)機器學習,才變得如此厲害。

想不想學習一下“機器學習”呢?

途徑

要了解和掌握機器學習,路徑有很多。你可以選課、報班,甚至自己看書。但是我更推薦的,是MOOC。

對于大多數人來說,MOOC資源更容易獲得。隻要你有一台能上網的電腦,就可以開始學。

因為這幾年機器學習很火,是以相關MOOC很多。有好事者就開始進行梳理總結,把數十門課程分成初級、中級、進階,每一部分都有十餘門課程。然後羅列出來,供讀者按部就班來學習。

我的評價是,他們用非常認真負責的态度幹了一件糟糕透頂的事兒。

為什麼?

因為你一股腦羅列數十門課程,不會絲毫降低學習的門檻,反而迅速減少了“從入門到放棄”的時長。

沒錯,看完了你的清單,讀者就放棄了。他的結論是“機器學習這事兒看來跟我這輩子沒關系”。

本文嘗試做一件與衆不同的事兒——精選少數課程,組合一個易于入門和快速應用的路徑。

要達到這個目标,就需要從許許多多的MOOC裡選擇“最好的”課程。所謂“最好的”課程,需要滿足以下條件:

  1. 授課教師自身是牛人;
  2. 講授用心;
  3. 課程設計符合學習規律。

有了這個标準,許多課程立即被排除掉了。我們精選了數門課程,分别帶領初學者完成入門、進階、應用和補課等過程。組合起來,就是一個完整的機器學習了解和掌握路徑。

因為衆口難調,是以我們不可能找出所有人都公認的“最好”課程。如果你覺得我列出的課程或者組合方式還不夠好,不要直接開罵。因為這不是一場PK。歡迎你推薦心目中更好的課程給我們大家,謝謝!

入門

入門課程推薦吳恩達(Andrew Ng)教授Coursera平台上的《機器學習》。

巧用MOOC組合掌握機器學習學習途徑入門進階實踐補課讨論

吳恩達教授,就是《最強大腦》裡面帶着人工智能來砸場子的這位仁兄。

巧用MOOC組合掌握機器學習學習途徑入門進階實踐補課讨論

他是斯坦福大學教授,Coursera的聯合創始人之一。現在是百度首席科學家,全面負責百度研究院。

如果你在MOOC論壇上發問,網友們給你推薦的第一門機器學習課程八成也是這門。

原因是門檻低,天花闆很高。

所謂門檻低,是指不要求你多麼熟練掌握某種語言程式設計技術,也不需要你的數學知識達到做完若幹冊《吉米多元奇數學分析習題集》的水準。

所謂天花闆很高,是指該課程全面介紹了機器學習中的核心知識,并且擴充到若幹不同應用領域。其實我真是覺得這種課程設計方式非常值得我國大學來學習。在保證覆寫面的同時,隻在幾個關鍵知識點着力反複練習,使得學生學起來輕松,卻真的掌握到了精髓。

我覺得這才是真正的大師水準。

之前為這門課程專門寫過一篇文章《機器學習,你也行》。這裡就不再贅述了。感興趣的同學歡迎出門左轉去看看。

學完這門課,你就可以自豪地宣稱自己了解機器學習了。

進階

獲得了吳恩達教授課程證書之後,千萬要趁熱打鐵,掌握現今最為熱門的深度學習。

所謂深度學習,就是利用深度神經網絡進行機器學習。如下圖就是利用深度社交網絡辨識一張圖檔究竟是車、人,或是動物。

巧用MOOC組合掌握機器學習學習途徑入門進階實踐補課讨論

此處推薦的課程是Geoffrey Hinton教授的《神經網絡與機器學習》。

為什麼推薦這門課?

首先,你會發現這門課使用的軟體工具與上一門課程一樣,都是易于安裝、便于掌握的Octave。你不需要去了解程式設計環境的各種配置,拿過來直接用就行。架構代碼都已經提供,你隻需要在重點環節進行修改和補充。

其次,課程預設你學過吳恩達教授的課程作為前導。是以二者沒有什麼重疊,避免重複勞動。直接高屋建瓴,繼續向縱深推進。

第三,Hinton教授是深度學習領域公認的權威。

巧用MOOC組合掌握機器學習學習途徑入門進階實踐補課讨論

這位大叔最大的本領就是對事業有自己的思考和見解,不人雲亦雲。當年人工智能領域遭遇寒冬,資助都沒了,實驗室都維持不下去了。許多有才華的人都跳到其他領域去了,唯獨他老人家總是覺得不斷改進與發展中應該有機會,就留了下來。

事實證明這種堅持帶來的收獲是顯著的。他比别人提早深耕了數十年,如今的學者在深度學習領域無論寫什麼新論文幾乎都繞不開引他的文獻。:-P

是以,聽這樣泰山北鬥級别的人物給你授課,真的是一種幸福。對别人來說一種非常高深莫測的算法,讀起來要麼如同天書,要麼擊節贊歎,可在他嘴裡無非是“哦,那一年我試了一下這個,不成;後來突然開竅了,在這裡改變了一點點,然後就……”

有些人在讨論區留言說他的笑話講得太有趣了。這是真的。不過你學起來的時候對這個事兒期望不要太高——作為外國人,你的生活環境和文化底蘊不同,笑話就别指望都能聽懂了。

學完這門課,别人要是再想拿深度學習的概念來忽悠你,就很困難了。

這話你聽懂了嗎?

學完這門課,如果你拿深度學習的概念去忽悠别人……

咳咳。

實踐

通過前面兩門課,你了解了什麼是機器學習和深度學習。但是你可能不願意隻停留在概念了解上,卻很想做出些東西來實踐。實踐應用一方面可以檢驗你學習的效果,另一方面可以幫助你積累經驗,同時還可以帶來成就感。

不好意思,在應用實踐環節這裡,路徑上有個分支。

第一種選擇是Udacity上面的課程"Intro to Machine Learning"(ud120)。授課人是Sebastian Thrun,前幾年他一直是Google自動駕駛技術的負責人。

巧用MOOC組合掌握機器學習學習途徑入門進階實踐補課讨論

這門課采用的函數庫是Scikit-learn,建構于Python之上。課程設計得很吸引人,利用一些資料集,讓你熟悉如何用别人構造好的功能(函數調用),加上你自己的了解(參數調整)來完成一些小型項目。

巧用MOOC組合掌握機器學習學習途徑入門進階實踐補課讨論

我對這門課程總體上很滿意,吐槽在于對免費學習使用者而言,因為缺乏必要輔助,最後的大項目難度陡然提高。一般人難以适應,很容易中途放棄。當然,如果你是付費使用者,會有專人帶領你一步步前行,并且提供必要的幫助,感覺就好多了。

第二種是選擇Coursera平台上華盛頓大學的機器學習課程專項系列(specialization),課程名稱為“Build Intelligent Applications”。

巧用MOOC組合掌握機器學習學習途徑入門進階實踐補課讨論

先吐槽一下,我覺得這個課程明顯展現出資本市場對于學術活動的幹擾。課程系列包含了6門課。但是到目前為止隻推出了前4門。第5門一直在不停跳票。從2016年的9月份一直推遲到了2017年1月底。

為什麼?因為主講人兩口子的公司Turi被蘋果收購了。于是他們隻好暫緩手頭的課程制作,處理收購的各項事宜。

巧用MOOC組合掌握機器學習學習途徑入門進階實踐補課讨論

不過從已經推出的4門課來看,水準非常高,而且設計巧妙。

課程采用案例教學,就是每一個子產品都依照具體問題給定資料集進行處理。第一門課是總覽,讓使用者體會每一部分的重要内容,并且動手運作嘗試,增加趣味和信心。

然後從第二門開始,每門分别介紹一個機器學習類型。每一周的課程由淺入深,逐漸加碼。利用Jupyter Notebook儲存練習的結果,将來可以直接用到實踐中。

兩口子還非常大方地開放自己公司的産品免費給學生使用。他們的産品對于學術界也是相當于免費(每年需要手動免費更新一次證書),很慷慨。不過被收購以後,這個政策的事兒就不好說了。

有的章節題目很有一些難度。作為學習者,你得做好遠離舒适區,不停在學習區遨遊的準備。

上述這兩門課程選擇一門聽完,你應該可以具備自己動手處理一些小型資料集的能力了。對于學習、工作和科研應該會有很大的助益。

你很不滿意,想要處理大規模資料?這個事兒需要兩個條件支撐:

  1. 你需要能得到大規模資料;
  2. 你得有相應的硬體條件。

實話實說,目前絕大部分人不具備相應的條件。是以這個問題有空咱們再深入聊。

補課

你可能對自己的知識基礎沒有什麼信心——我不是數學或者計算機相關專業的,也能學會機器學習嗎?

從剛才的課程介紹,你應該不難看出。現在機器學習的門檻已經很低了。但是為了達成目标,你還是需要掌握一些非常基礎的知識,主要包括:

  1. 數學(初級微積分、機率論與統計、線性代數);
  2. 程式設計語言(例如Python)

如果你缺乏相應的知識,沒關系,補就是了。缺哪裡補哪裡,反複補充,這樣學習勁頭和效率都有保障。

Python語言的補課方式我建議采用密歇根大學的Coursera課程系列《人人都能學程式設計》。

巧用MOOC組合掌握機器學習學習途徑入門進階實踐補課讨論

這是目前我見到過的最适合資料科學初學者的Python語言入門方法。學了這門課程,你不僅掌握了一門語言,還可以掌握資料挖掘的基礎知識。包括資料庫操作、API和爬蟲等。跟前面的實踐類課程直接可以對接,嚴絲合縫。

至于數學知識的補充,我推薦的是Bill Gates一直贊不絕口的可汗學院。

巧用MOOC組合掌握機器學習學習途徑入門進階實踐補課讨論

可汗學院起家的本領就是幫助學生輔導數學功課。是以在MOOC領域,該平台的數學課程是積累最為豐富的,對學生來說也是最無痛的。

巧用MOOC組合掌握機器學習學習途徑入門進階實踐補課讨論

看到可汗學院這麼多數學課程類别了嗎?别猶豫,抓緊學吧。你不會重溫大學一年級的噩夢的,因為講授方式真的很生動、很有趣。

讨論

你還上過哪些講解機器學習的好MOOC?它的獨特之處在什麼地方?能否替換本文列出的部分課程,形成更好的組合?歡迎留言分享,我們一起讨論。