機器學習哪里有這么玄?

2014年春天,有一次我給研究生上課,一個學生問我這幾天是不是沒休息好?我說你算說對了,這些日子過得可不容易啊。

那一段時間,我正在以極為別扭的方式上一門MOOC課程。

課程的名字叫做機器學習。

2012年,大數據火了。于是2013年,機器學習緊跟著火了起來。

2013年夏天,我回母校聽講座。主講人是一個在美國讀書的博士生,講的就是她們如何利用機器學習方法對大量的文本數據進行情感分析。

如果你是個淘寶店主,你對情感分析應該并不陌生。你會讀顧客的評價吧?總得看看有多少人在夸你,有多少人在罵你啊。你說費這勁干嘛?看看評分數不就好了嗎?但每一個店主恐怕都想弄明白,商品或服務中哪些因素會讓顧客滿意,哪些因素是用戶最難以接受的。這樣,當你拓展新的客戶群的時候,你會依據新用戶的特性清楚地知道他們的滿意度大致是一個什么樣子,并且可以不斷改進自家的產品和服務。

情感分析是機器學習里面“分類”算法的一種,就是讓機器替人一條條看評論,完成上述分析工作。

我前排幾個博士生坐在下面聽得非常激動,還不住低聲交流表示贊同。看得出來,他們之前已經對機器學習有些了解,而且躍躍欲試,希望在自己的研究中有所應用。

我當時不是沒動過系統學習機器學習知識的念頭。我是個懶人,能讓機器替我干活兒,那是我夢寐以求的理想狀態啊。

但也正因為我是個懶人,所以懶得詢問他們學習機器學習的路徑是什么,因此和好的學習資源擦肩而過。教訓啊。

作為一個后知后覺者,我直到2014年春天才知道有這么一門講授機器學習的MOOC課程存在,趕緊報了名。

授課教師是Coursera的兩位創始人之一,斯坦福大學的Andrew Ng教授(很久以后,我才知道”Ng”這個單詞是中文的“吳”)。后來他擔任百度首席科學家,曝光度越來越高,學術成就有多厲害就不必我來介紹了吧。

這門課程怎么樣?截兩張圖給你看看學習者的評價。

這是Coursera平臺的:

這是MOOC學院的:

這門課是Coursera的“鎮宅之寶”。自從2012年Coursera上線以來,它就一直好評如潮。

上課就上課吧,怎么還說“極為別扭”呢?

我遲到了唄。

當時因為資源(主要是助教團隊)限制,Coursera的大部分課程都是分學期開課的。這個學期沒趕上,你就只能等下一個了。有的課需要等幾個月,有的課等1年,有的課……至今還沒見動靜。

等我發現這門課的時候,開課時間已經過去了3周。但還可以報名,于是我絲毫沒有猶豫就“上了車”。

上了車才發現,補票不是那么容易的事兒。

每一單元都有考核。要是超出截止時間一周,則扣掉該次得分的20%。期末統計得分時,扣掉1次最低分,剩下的成績求平均,必須高于80%才能獲得證書。

你可能會覺得這有什么了?多寬松啊。遲到算什么大不了的事兒?每次考核都刷到滿分,讓他隨便去扣那20%好了,反正最后證書能拿到啊。

你想多了。每次考核,你只有1次答題機會。

你干嘛哆嗦啊?哎,別走啊!……

現在Coursera平臺全線升級,這種變態的規定再也沒有了。一般規定答題嘗試次數為8小時之內最多3次。如果你愿意,把分兒刷得多么變態的高都是有可能的。但在當時,每一個錯誤都會讓你的心靈震顫一下。

修這門課的人是不是都有自虐傾向?沒有。因為課程內容太精彩了。

首先,這課會打破你的一個思維誤區。

那時候,大多數人都固執地認為人比機器聰明——程序不都是人寫的嗎?人要不是自己會了,怎么教會機器?

錯了。人自己不會(或者講不清)的東西,也能讓機器自己學會。金庸的小說深刻地揭示了這個道理。郭靖的武功厲害不?他的那一幫不算太厲害師父好像叫做江南七怪是吧?……

那畢竟是小說。現實中這架自動駕駛直升機的故事很能說明這個道理。

Dr. Ng坦言,他的研究團隊里面根本就沒有人知道該怎么編程才能讓直升機自己飛行。可打了“機器學習”這一管雞血后,雖然它摔下來許多次,可是之后突然就自己飛起來了,而且飛得挺好。

其次,這門課把精華高度濃縮。

短短10周的時間里,這門課就要涉及到機器學習里面各項重要內容。從最簡單的線性回歸到邏輯回歸、SVM、深度神經網絡、圖像識別和推薦系統,種種重要的概念都有涉及。每一個概念并非蜻蜓點水的介紹,而是真正給你講明白。什么叫做講明白?就是你學完之后,能自己動手用這些知識做出應用來。

在美國,郵寄信件的費用越來越低,而且近年來有顯著的下降,為什么?人工費降低?不是。因為許多工作機器代替了人來完成。

從前分揀郵件都是人工完成的,根據郵政編碼把郵件分成不同類別,寄送到不同地區。現在由機器來掃描,成本可以忽略不計,而且效率大大提升。

你可能會有疑問——不對啊,郵政編碼不都是手寫的嗎?每個人的字體都不一樣啊。機器能認識各種手寫字符?

能。

在這門課程里面,Dr. Ng講到神經網絡模式識別這一模塊,就真的讓學生自己動手編程,去識別手寫的阿拉伯數字。

在我們人類看來,許多數字被寫得也是毫無規律可言的,所以我們無法給機器定義識別規則。然而,只要你讓機器見識足夠多的樣例,奇跡就會發生——它識數了!

看著那些潦草的記號被你跌跌撞撞寫出來的程序準確無誤識別出來的時候,你可能跟我一樣,會像個剛獲得新玩具的孩子一般興奮。

第三,這門課的知識深入淺出。

這個世界上掌握機器學習技能的人可能并不少,但是能把這門知識高效傳授給別人的人卻遠沒有那么多。許多人把本來很簡單的原理搞得很復雜,聽不懂的人愈發覺得玄妙,會贊嘆不已。而Coursera這門課反其道而行之,把一些被外界吹得神乎其神的概念用三兩句話便給初學者講明白了。后來我就思考,什么叫做大師呢?氣定神閑中,把要講授的內容娓娓道來,讓學生的思路清晰如泉水,這便是大師的氣質之一吧。也許在Dr. Ng眼中機器學習是一個完整的體系,本來就沒有炫酷(fancy)的概念。

你羨慕亞馬遜、淘寶或者豆瓣的智能推薦功能嗎?學院里面有個研究生當時打算以推薦系統研究作為畢業論文。自己啃相關的大部頭書籍數月,依然困惑不已,毫無進展。我把推薦系統這一章節的視頻和講義下載下來發給他,很快他就體會到了“芝麻開門”的感覺。

深入淺出還體現在練習的設計里面。這么短的時間講授一門課,其實連Matlab/Octave這個編程環境的基礎知識都不夠介紹完畢。怎么辦呢?Dr. Ng用的是“填空”的方式。數據讀取、圖形繪制這些工作都由教學者替學生完成了,因為這些知識很容易后續自行補充。習題中留出了問題解決過程中最為關鍵緊要的部分,標記出來讓學生自行完成,以考察課程知識掌握的程度。

最有意思的是,因為Cousera平臺自上線開始就有機器學習的技術基因,因此至少到目前為止,它對于學習者的數據挖掘和分析做的是最好的。Coursera記錄了學習者在練習環節犯錯誤的過程,機器會不斷進行挖掘分析。當有許多學生同時栽倒在一個題目上的時候,就會進行人工干預。如果題目有錯或者有歧義,抓緊修改;如果確實是學生概念不清,就在課程中重點強調,加強講解。作為一個老師,我知道這些都是最為難得的教學參考數據。可惜傳統課堂上,教師并不容易獲得它們。作為學生,MOOC平臺的使用者是幸運的。

我自己的學習歷程,就遠沒有那么幸運了。2014年6月,我的第一次證書獲取嘗試失敗了。底線是80分,我得分已經超過77。好可惜。這給了我一個教訓,就是“心急吃不了熱豆腐”。

學習是有規律和節奏的,“畢其功于一役”的心態不僅無助于掌握知識,也未必能帶來想追逐的其他東西。

幸好,1個月之后,新一輪的機器學習課程便開始了。依靠著之前積累的編程練習資料,這一輪課后習題我完成得無比輕松。證書真的拿到手上的時候,心里五味雜陳。

延伸閱讀

數據科學相關文章合集(玉樹芝蘭) - 簡書

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容