成不了AI高手?因為你根本不懂資料!聽聽這位老教授多年心血練就的最實用統計學

AI科技大本營發表於2017-08-01

成不了AI高手?因為你根本不懂資料!聽聽這位老教授多年心血練就的最實用統計學

著名統計學家、中國人民大學統計學院教授吳喜之教授

採訪 | 胡永波,鴿子


導讀

機器學習是一門在統計學和電腦科學交叉點上茁壯成長起來的學科。關於資料的學問,全在統計學裡。

在經典統計學中,對於資料性質的研究、誤差的分析、資料質量的判斷、資料模型的建立,有著非常豐富的思想、理論和經驗成果。對於機器學習來說,統計學既是理論基礎,又是思想寶庫。

但是現實世界中,機器學習的實踐者大多出身電腦科學,除了本科學的那一點工科概率論與數理統計,對於統計學,基本上是“隨用隨學,夠用為止”,因此統計學當中大量的思想資源實際上是被閒置的。

事實上,無論是做人工智慧,還是做商業資料分析,如果能夠對統計學有系統的理解,那麼,他對於機器學習的研究和應用便會如虎添翼,登堂入室。

不過大多數統計學出身的學者推崇數學模型驅動的路子,在他們看來,直接從一堆實際資料出發做預測分析的“野路子”,是登不了學術的大雅之堂的。因此相當多的統計學者並沒有積極投身機器學習的研究、教學和應用中,與機器學習界的交流也遠遠不夠。

吳喜之教授則走的是一條實用應用之路。

吳喜之教授是我國著名的統計學家,退休前在中國人民大學統計學院任統計學教授。吳教授上世紀六十年代就讀於北京大學數學力學系,八十年代出國深造,在美國北卡羅來納大學獲得統計學博士學位,是改革開放之後第一批留美並獲得統計學博士學位的中國學者。多年來吳教授在國內外數十所高校講授統計學課程,在國內統計學界享有盛譽。

早在十多年前,吳教授就第一個在國內大學統計學課堂引入 R 語言,培養了國內第一批 R 語言專家。如今他已古稀之年,仍然孜孜不倦的學習新方法、新工具,並且親自程式設計實踐,探索不輟。

在統計學家當中,他積極擁抱機器學習方法,並且撰寫多部專著,致力於融合統計學和機器學習方法。另一方面,他對於機器學習,特別是資料性質和質量分析、迴歸與分類,複雜資料統計方法以及時間序列分析,有著統計學家特有的深刻思想和豐富實踐,對於機器學習的實踐者,是難得的明師。

因此我們抓住吳教授在京的寶貴時間,對他進行了一次專訪,請他結合親身實踐經驗,談談機器學習與統計學相互結合促進的問題。在訪談中吳教授介紹了大量的案例,清晰簡明地闡述了他對於機器學習和統計學一些重大問題的看法,是我們學習資料科學、機器學習和人工智慧一份難得的參考。

以下是訪談的部分內容。


做資料就要各領域交叉


AI科技大本營:現在大家都關心人工智慧,但我們AI科技大本營內部在討論的時候就發現,人工智慧的關注點更多的是放在演算法、模型方面,至於上游的資料蒐集和處理過程,大家關心得並不多。您怎麼看待這一現象呢?

吳教授:的確是這樣的,做任何資料分析,首先要有資料。但是怎麼得到這些資料,就是一個費力不討好的工作了。但這裡的事情必須得幹。比如,人們能通過程式設計拿到一些網路資料,但是,拿到資料以後,你怎麼看待這個資料?怎麼處理?用什麼模型?這絕不是一個標準的教科書問題,而是一個集知識、經驗、邏輯及創新能力為一體的過程。就拿我的書來說,我在書中寫模型,用的雖然都是國外現成的真實資料,但卻是挑選過的,如果對我們手中的應用資料,直接用書中的模型就未必合適,至少也需要做各種各樣的處理。

比如過去,我參與過稅務總局的一個專案,希望把資料中會逃稅的那些人給找出來,但資料並未指明哪些人逃稅。按照機器學習的術語,這屬於"無監督學習",對這個具體資料,沒有教科書或文獻給出任何的方法。具體的資料沒有哪兩個是一樣的,這就要有獨特的處理方法,你必須考慮基於什麼樣的偷稅漏稅機理和背景來建立模型,你總不能說大家都在偷稅漏稅,而的目的是要把最有可能偷稅漏稅的人找出來,所以你就要了解企業避稅方面的思維方式和可能採用的方法。

這就是說,你既要有相關應用領域的知識,又得知道怎麼來處理資料,還要會程式設計什麼的……所有的東西你都會了,才能做好。這就是資料科學比較複雜、比較費勁的地方,需要有較強的跨學科能力。

AI科技大本營:那一般企業在資料處理上的問題多出在哪裡呢?解決這裡的問題需要什麼樣的能力?

吳教授:處理資料還在其次,他們很多沒有處理資料最起碼的條件,只能做一些很簡單的事情。記得在90年代,我去過一些比較落後的工廠:像是當時的天津汽車廠,生產雁牌輕型貨車,從零件到成品沒有完整的記錄,基本上沒有多少有關質量的資料;還有一個生產鎳氫電池的工廠,他們希望改進質量,但缺乏關鍵的資料……這一類的問題有好多,你就很難做。因為到具體單位解決問題時,你希望他有什麼資料,他可能就是沒有,要想做好事情得從頭開始干預。這說明企業生產線上的問題沒有那麼簡單,不是你想拿什麼就能拿到什麼。但在生產實踐上,恰恰需要這方面的資料來做質量控制,企業自己意識不強,你就很難越俎代庖。

AI科技大本營:當下機器學習非常火熱,在它落地到這些具體的應用場景時,應該怎麼面對這裡的資料呢?

吳教授:現在專業程式設計的人比較多,但真正明白這個資料,理解我們需要從資料得到什麼知識的不多。所以,一開始很難泛泛回答。

就說前面稅務總局的專案,我剛過去時並不清楚,就讓他們先給我講那個問題,我思考之後,就有了一個大體的概念。這些東西很難說是某一個領域的知識,它是一些領域的知識加上經驗、加上資料知識……相互關聯起來,然後才有進一步怎麼去做的打算。

這不是簡單靠幾本書、幾個模型就能解決的。而且,書上的模型一般比較固定,例子也相對簡單,畢竟書上只能介紹那點東西。比如說迴歸,一般迴歸書上大部分篇幅寫的都是一百年前的線性最小二乘迴歸,但在最近十幾年中就發展了大量基於演算法的新迴歸方法。僅我寫的書中介紹的機器學習迴歸就有很多種,比如基於決策樹的有隨機森林、bagging、boosting,還有支援向量機及較早就發展的神經網路,它們都能夠做迴歸,往往都比線性最小二乘迴歸強大……但你必須要挑一個最好的,所以就需要你把這些資料拿過來做交叉驗證,要讓資料自己來說話,來確定哪個模型好,哪個模型壞。而經典統計上確定模型的優劣方法嚴重依賴於對資料的無法證明的眾多數學假定。

在機器學習方面,很重要的一點就是交叉驗證,就是用一部分資料來建立一個模型,然後用另外一塊資料來驗證這個模型好不好。但是在經典統計裡就沒有這種東西。

以經典最小二乘迴歸為例,做了很多無法驗證的數學假定,比如模型及誤差的線性形式假定,樣本點的獨立同分布假定,分佈的正態性(或大樣本)假定,對損失函式的二次形式的假定等等,然後根據各種檢驗統計量得到p值,再按照p值大小得到結論(往往不加區別地認為p值小於0.05就顯著)。

這些基於百年前的知識結構產生的內容就要安排學生們花一個學期來學,即使這樣古老的課程還有許多原則性錯誤出現於教科書中,而資料科學所需要的最有用的內容卻往往被忽略。所以我常講經典統計的數學式教學方法和模型驅動的思維方式誤人子弟,這自然會得罪不少人。

一般來說統計專業出身的人對模型比較重視,但對資料感覺不夠,甚至不敢觸動陌生結構的資料(如果不是害怕的話),搞機器學習必須既瞭解模型又樂於和資料打交道。所以學統計的如果不跟搞計算機的合作就什麼也幹不成,這一點應該讓大家都知道。

AI科技大本營:那反過來像程式設計師這種學計算機的人,他們應該怎麼跟統計學結合呢?

吳教授:統計學對課程基礎的要求比較高,沒有辦法速成。我們知道,單純的程式設計比較容易學,他們最好是在應用中學習統計的批判性思維,需要什麼學什麼,這樣能夠保持興趣和學習動力,學的也較快。

但統計專業中,相當部分統計教授都不會程式設計,更不熟悉實際的資料分析,這還包括某些博導,他們見到稍微複雜的資料就蒙了。他們可以假定出一個模型,然後就說他們的模型怎麼怎麼好,但這是在很強的假定之下,比如資料一定要滿足什麼數學條件……一定要在這個條件下他們的模型才很好,他們最苦惱的就是尋找符合他們條件的資料(為了發表文章),但實際上只有老天爺才知道是否存在這樣滿足他們條件的資料。


統計學的兩種文化

成不了AI高手?因為你根本不懂資料!聽聽這位老教授多年心血練就的最實用統計學

北大時期的吳喜之教授


AI科技大本營:您是怎麼開始做機器學習的?

吳教授:因為教學生,我要了解最新的方法,只要能用的、好用的,我就要教給學生去用。要想當好老師就需要不斷學習新的知識。機器學習這塊跟計算機程式設計直接相連,我學了以後,用機器學習的方法來解決問題,我覺得比經典統計要好用得多,真的不是一個數量級。

AI科技大本營:不是一個數量級,這該怎麼講呢?

吳教授:這是一種比方,而不是嚴格的術語。不過簡單來形容的話,對於很多複雜的資料,用機器學習的預測誤差如果只是1%、2%左右的話,那用經典統計就可能有百分之十幾以上,差別就很大。當然,對於比較簡單的資料,經典統計也可能表現不錯,這不能一概而論。儘管從數學上,那些經典的東西看起來很漂亮,很吸引人(特別是對數學背景的),但面對複雜的現實世界,必須要改變思想,不管方法漂亮與否,關鍵是能夠解決問題。許多機器學習方法也很美,但不是數學公式漂亮,而是其思維及邏輯的美。現在都有飛機了,你還靠拉著板車在那走,那就是你的問題了。

AI科技大本營:那您是什麼時候開始用機器學習的?

吳教授:這個是在非典的時候,03年吧,是用R語言。在中國,我大概是頭一個在正式課堂上教R語言的。

在那以前,我已經在教S-Plus了,S-Plus跟R很像,都是程式語言。但當時多數老師教統計是不用程式語言的,他們會用盜版的SPSS及SAS等點滑鼠式傻瓜軟體,不僅侵犯版權,還會讓學生產生依賴性。所以國內的學生不懂計算機程式設計,跟這一點關係很大。老師自己都不會程式設計,只能教學生用盜版軟體。只學點滑鼠肯定是學不會程式設計、也看不懂程式碼的。

我開始教R語言的那一級的學生,有些在資料領域中比較出名,比如李艦和劉思喆,比我要強多了。

後來我讀了一篇很有名的文章,《統計建模:兩種文化》(Statistical Modeling: The Two Cultures, 2001),作者是Leo Breiman,加州大學伯克利一個很有名的教授(CART決策樹、bagging及隨機森林的發明者),他去世後我才讀到他的這篇文章。他在文章中狠批了把資料限制在假定模型中的經典統計學界,然後大力推廣他在商業諮詢中用機器學習做演算法模型的有效經驗,這一點我感同身受。

機器學習圈子意識到資料的生成過程是複雜和未知的,這一點符合實際,學完之後就能用出來,所以我就自己去推廣。但是在國內推廣很難,只能自己去教、去寫書,把機器學習的東西寫進書裡,讓更多的人掌握。


用機器學習來改造統計學


AI科技大本營:那我可不可以這樣理解,你現在更多的希望,其實是想把機器學習的一些思想注入到統計學這個學科裡邊,對吧?

吳教授:我是希望改變統計學,用機器學習這個思想來改造統計學。機器學習的思維方式就是科學的思維方式。整個統計學界的問題太多,所以就需要改造。把它從數學假定主導的思維方式改造過來,從模型驅動改變成資料驅動或問題驅動,機器學習是實現這種改造的一個最佳方式。

其實我一直都對處理實際的資料感興趣,儘量從資料出發來做統計,問題驅動的思維一直都有。九幾年還在南開的時候,我就不斷倡導這個事情。現在統計學做的很多東西都跟實際資料沒什麼關係,這種做法不過是把人禁錮在自己的模型裡做夢。脫離實際的統計不但是無用的,而且是有害的。

Breiman的這篇文章使我的思維更加清晰,目的更加明確,Breiman的文章對我近年來走過的路程有著無可比擬的指導意義。

AI科技大本營:我們應該怎麼基於問題驅動的思維來學習呢,吳老師您在這方面都是怎麼做的?

吳教授:搞資料科學應該是問題驅動,學習知識也應該是問題驅動。我不喜歡完整地看大部頭的統計書,因為整本整本地看下來,目的不明,被作者牽著走,效果肯定不好……一定要有感興趣的問題來引導,才好鑽研進去。學東西一定要問題驅動。好多新方法,我都是從R語言裡面學來的:首先看那些軟體包能解決什麼問題;如果對這些問題感興趣我就看它的方法;如果想知道方法裡面是什麼原理、用的什麼數學、為什麼這樣做,就去進一步看參考文獻……這一套下來我自然就學會了;相對於打基礎式的學習方法來說,這是相反的學習方法,是拉動式學習方法。

如果被老師限制住,你就算再聰明也能學傻了。所以一定不能死學,一定要有個目標,要有一個感興趣的目的。比如,你的目標是把這個資料分析好,你必須考慮用什麼方法來解決,怎麼來程式設計……這裡面的興趣自然而然就來了。如果你只是為了程式設計而程式設計,把語法一、二、三、四背下來,你就沒有一個載體把它們串起來。這是我最討厭的學習方式,學生為了打基礎,盲目地先看這本書,再看那本書,一堆書看完之後就完全迷失了,如果記憶力好會記一些東西,但絕對不會有助於增加動手能力。

反過來,為了解一個問題,你需要什麼東西就去看什麼,主動權在你手中掌握,這種拉動式的方式就讓你有動機去學,而且學到的東西都是有用的。這是我的經驗,你要是讓我從頭到尾去看一本書,我肯定是看不下去的。

AI科技大本營:那您在教學生的時候是怎樣的,是如何讓學生也能把你這套東西用起來的?

吳教授:對一般學生來說,我可能是有點像趕鴨子上架,如同魔鬼訓練。在每個學校,我都給每個學生一個或者兩個國外的資料網址,沒有兩個學生資料相同,然後給他們講解一些包括機器學習在內的資料分析方法及程式設計初步,並且給他們一些我自己編的程式模板,目的是讓他們得到任何從資料可以得到的結論。期末每個學生要上交資料、程式碼及PPT或Word檔案,並且上臺在一定時間內向大家講解資料的意義、所用的模型、計算過程及結論。這之後,學生就再也不害怕資料了。前年在雲南的大理大學我就是這樣做的,學生的基礎雖然不如一些重點大學好,但都做出來了,而且許多人把我給的作業作為畢業論文。

前些天我看到他們本科畢業論文中有三個人還得了優秀論文獎。之前我在雲南師大教課也一樣,他們學起來也挺苦的,不過後來其中有幾個人參加前年的全國大學生統計建模大賽,還拿到了一等獎。

當然,他們中的一些人在做完作業,甚至得獎以後,也可能還是不那麼明白裡面的道理,也可能只是會用現成的工具,但已經有了飛躍的進步,最重要的是他們有了信心。因為一開始他們真是什麼程式都不會,掌握的統計方法也很有限,要現教R語言及各種統計方法才能把課上下去。他們老師原來教的最多是Excel。我曾經看到一本教學生怎麼用Excel來解決問題的很不錯的書。我看了這書以後,花了半天功夫寫了大約一頁R程式,把那一本書的問題全給解決了,這說明R程式語言的簡潔及強大的能力。

總之,一個結果就是給學生一種新的眼界及新的體驗,讓他們有信心來把事情做下去。

實際上,零基礎的人也可以學機器學習,比如雲南的一個菸草公司,我給他們一線的員工講過幾天統計,裡面有人還是外語專業出身的,連統計的基本概念都不清楚,我就這樣給他們講,講完給他們不同的網站資料去做,結果包括外語專業在內的絕大部分學員都做完了所分配的資料分析。

剛開始學習的時候,你不可能什麼都學、什麼都知道。你要從基礎的模型開始,去理解它背後是怎麼想的,為什麼要這麼程式設計序、這麼去處理,這樣做的好處是什麼、能避免什麼樣的問題,背後這些東西弄清楚了,你就能弄清楚自己的問題是怎麼出的。這樣你就能學會怎麼去用這些模型,甚至發展自己的一些新東西出來。

其實弄懂機器學習背後的機理並不難,也不需要事先讀很多專業書。即使是Breiman那幾個天才的發明,他背後的思維方式及程式設計原則並不複雜,如果把這些弄清楚,你對統計學的理解就能進一大步。

成不了AI高手?因為你根本不懂資料!聽聽這位老教授多年心血練就的最實用統計學

吳喜之教授親自編寫程式解決問題

AI科技大本營:這麼說來,我們學機器學習、學資料科學,其實首先就是要有一種由問題來驅動的資料思維,用上這種思維就是對統計學的改造,我們能這樣理解嗎?

吳教授:一百年來,由於沒有計算機,資料量有限,於是由數學家發展的經典統計引入了大量的數學假定來彌補資料資訊的不足,這就給統計打上了很深的數學烙印,並且導致了很多統計學家模型驅動的錯誤思維方式。在計算技術飛速發展以及資料膨脹的新時代,如果還把自己束縛在這種模型驅動的思維方式中,就會被時代所拋棄。機器學習是典型的資料驅動的思維方式,它從資料出發,通過各種計算方法來理解資料,並建立適當的演算法模型來擬合資料並得到結論。不僅在應用中,而且要在統計教學中大量引入機器學習方法是非常必要的,目的是還統計以資料驅動或問題驅動的本來面目。

end


相關文章