天天看點

機器學習:統計與計算之戀

雷鋒網(公衆号:雷鋒網)按:本文轉自統計之都。原文是從張志華老師在第九屆中國r語言會議和上海交通大學的兩次講座中整理出來的。張志華老師是上海交通大學計算機科學與工程系教授,上海交通大學資料科學研究中心兼職教授,計算機科學與技術和統計學雙學科的博士生指導導師。在加入上海交通大學之前,是浙江大學計算機學院教授和浙江大學統計科學中心兼職教授。張老師主要從事人工智能、機器學習與應用統計學領域的教學與研究,迄今在國際重要學術期刊和重要的計算機學科會議上發表70餘篇論文,是美國“數學評論”的特邀評論員,國際機器學習旗艦刊物journal of machine learning research 的執行編委。其公開課《機器學習導論》和《統計機器學習》受到廣泛關注。

最近人工智能或者機器學習的強勢崛起,特别是剛剛過去的alphago和南韓棋手李世石九段的人機大戰,再次讓我們領略到了人工智能或機器學習技術的巨大潛力,同時也深深地觸動了我。面對這一前所未有的技術大變革,作為10多年以來一直從事統計機器學習一線教學與研究的學者,希望借此機會和大家分享我個人的一些思考和反思。

機器學習:統計與計算之戀

我的演講主要包含兩部分,在第一部分,首先讨論機器學習所蘊含的内在本質,特别是它和統計學、計算機科學、運籌優化等學科的聯系,以及它和工業界、創業界相輔相成的關系。在第二部分,試圖用“多級”、“自适應”以及 “平均”等概念來簡約紛繁多彩的機器學習模型和計算方法背後的一些研究思路或思想。

第一部分:回顧和反思

1、 什麼是機器學習

毋庸置疑,大資料和人工智能是當今是最為時髦的名詞,它們将為我們未來生活帶來深刻的變革。資料是燃料,智能是目标,而機器學習是火箭,即通往智能的技術途徑。機器學習大師mike jordan和tom mitchell 認為機器學習是計算機科學和統計學的交叉,同時是人工智能和資料科學的核心。

“it is one of today’s rapidly growing technical fields,  lying at the intersection of computer science and statistics, and at the core of artificial intelligence and data science”                                                               ---m. i. jordan

通俗地說,機器學習就是從資料裡面挖掘出有用的價值。資料本身是死的,它不能自動呈現出有用的資訊。怎麼樣才能找出有價值的東西呢?第一步要給資料一個抽象的表示,接着基于表示進行模組化,然後估計模型的參數,也就是計算,為了應對大規模的資料所帶來的問題,我們還需要設計一些高效的實作手段。

我把這個過程解釋為機器學習等于矩陣+統計+優化+算法。首先,當資料被定義為一個抽象的表示時,往往形成一個矩陣或者一個圖,而圖其實也是可以了解為矩陣。統計是模組化的主要工具和途徑,而模型求解大多被定義為一個優化問題,特别是,頻率統計方法其實就是一個優化問題。當然,貝葉斯模型的計算牽涉随機抽樣方法。而之前說到面對大資料問題的具體實作時,需要一些高效的方法,計算機科學中的算法和資料結構裡有不少好的技巧可以幫助我們解決這個問題。

借鑒marr的關于計算機視覺的三級論定義,我把機器學習也分為三個層次:初級、中級和進階。初級階段是資料擷取以及特征的提取。中級階段是資料處理與分析,它又包含三個方面,首先是應用問題導向,簡單地說,它主要應用已有的模型和方法解決一些實際問題,我們可以了解為資料挖掘;第二,根據應用問題的需要,提出和發展模型、方法和算法以及研究支撐它們的數學原理或理論基礎等,我了解這是機器學習學科的核心内容。第三,通過推理達到某種智能。最後,進階階段是智能與認知,即實作智能的目标。從這裡,我們看到,資料挖掘和機器學習本質上是一樣的,其差別是資料挖掘更接地于資料庫端,而機器學習則更接近于智能端。

2、 統計與計算

機學家通常具有強的計算能力和解決問題的直覺,而統計學家長于理論分析,具有強的模組化能力,是以,兩者有很好的互補性。

boosting, svm 和稀疏學習是機器學習界也是統計界,在近十年或者是近二十年來,最活躍的方向,現在很難說誰比誰在其中做的貢獻更大。比如,svm的理論其實很早被vapnik等提出來了,但計算機界發明了一個有效的求解算法,而且後來又有非常好的實作代碼被陸續開源給大家使用,于是svm就變成分類算法的一個基準模型。再比如,kpca是由計算機學家提出的一個非線性降維方法,其實它等價于經典mds。而後者在統計界是很早就存在的,但如果沒有計算機界從新發現,有些好的東西可能就被埋沒了。

機器學習現在已成為統計學的一個主流方向,許多著名統計系紛紛招聘機器學習領域的博士為教員。計算在統計已經變得越來越重要,傳統多元統計分析是以矩陣為計算工具,現代高維統計則是以優化為計算工具。另一方面,計算機學科開設進階統計學課程,比如統計學中的核心課程“經驗過程”。

我們來看機器學習在計算機科學占什麼樣的地位。最近有一本還沒有出版的書 “foundation of data science, by avrim blum, john hopcroft, and ravindran kannan,”作者之一john hopcroft是圖靈獎得主。在這本書前沿部分,提到了計算機科學的發展可以分為三個階段:早期、中期和當今。早期就是讓計算機可以運作起來,其重點在于開發程式語言、編譯原理、作業系統,以及研究支撐它們的數學理論。中期是讓計算機變得有用,變得高效。重點在于研究算法和資料結構。第三個階段是讓計算機具有更廣泛的應用,發展重點從離散類數學轉到機率和統計。那我們看到,第三階段實際上就是機器學習所關心的。

現在計算機界戲稱機器學習“全能學科”,它無所不在。一方面,機器學習有其自身的學科體系;另一方面它還有兩個重要的輻射功能。一是為應用學科提供解決問題的方法與途徑。說的通俗一點,對于一個應用學科來說,機器學習的目的就是把一些難懂的數學翻譯成讓工程師能夠寫出程式的僞代碼。二是為一些傳統學科,比如統計、理論計算機科學、運籌優化等找到新的研究問題。

3、 機器學習發展的啟示

機器學習的發展曆程告訴我們:發展一個學科需要一個務實的态度。時髦的概念和名字無疑對學科的普及有一定的推動作用,但學科的根本還是所研究的問題、方法、技術和支撐的基礎等,以及為社會産生的價值。

機器學習是個很酷的名字,簡單地按照字面了解,它的目的是讓機器能像人一樣具有學習能力。但在前面我們所看到的,在其10年的黃金發展期,機器學習界并沒有過多地炒作“智能”,而是更多地關注于引入統計學等來建立學科的理論基礎,面向資料分析與處理,以無監督學習和有監督學習為兩大主要的研究問題,提出和開發了一系列模型、方法和計算算法等,切實地解決工業界所面臨的一些實際問題。近幾年,因應大資料的驅動和計算能力的極大提升,一批面向機器學習的底層架構又先後被開發出來,深度神經網絡的強勢崛起給工業界帶來了深刻的變革和機遇。

機器學習的發展同樣诠釋了多學科交叉的重要性和必要性。然而這種交叉不是簡單地彼此知道幾個名詞或概念就可以的,是需要真正的融化貫通。mike jordan教授既是一流的計算機學家,又是一流的統計學家,是以他能夠承擔起建立統計機器學習的重任。而且他非常務實,從不提那些空洞無物的概念和架構。他遵循自下而上的方式,即先從具體問題、模型、方法、算法等着手,然後一步一步系統化。geoffrey hinton教授是世界最著名的認知心理學家和計算機科學學家。雖然他很早就成就斐然,在學術界名聲卓越,但他一直活躍在一線,自己寫代碼。他提出的許多想法簡單、可行又非常有效,是以被稱為偉大的思想家。正是由于他的睿智和力行,深度學習技術迎來了革命性的突破。

機器學習這個學科同時是相容并收。我們可以說機器學習是由學術界、工業界、創業界(或競賽界)等合力而造就的。學術界是引擎,工業界是驅動,創業界是活力和未來。學術界和工業界應該有各自的職責和分工。學術界職責在于建立和發展機器學習學科,培養機器學習領域的專門人才;而大項目、大工程更應該由市場來驅動,由工業界來實施和完成。

第二部分:幾個簡單的研究思路

在這部分,我的關注則回到機器學習的研究本身上來。機器學習内容博大精深,而且新方法、新技術正源源不斷地被提出、被發現。這裡,我試圖用“多級”、“自适應”以及 “平均”等概念來簡約紛繁多彩的機器學習模型和計算方法背後的一些研究思路和思想。希望這些對大家了解機器學習已有的一些模型、方法以及未來的研究有所啟發。

1. 多級 (hierarchical)

首先,讓我們來關注“多級”這個技術思想。我們具體看三個例子。

第一個例子是隐含資料模型,它就是一種多級模型。作為機率圖模型的一種延伸,隐含資料模型是一類重要的多中繼資料分析方法。隐含變量有三個重要的性質。第一,可以用比較弱的條件獨立相關性代替較強的邊界獨立相關性。著名的de finetti 表示定理支援這點。這個定理說,一組可以交換的随機變量當且僅當在某個參數給定條件下,它們可以表示成一組條件随機變量的混合體。這給出了一組可以交換的随機變量的一個多級表示。即先從某個分布抽一個參數,然後基于這個參數,獨立地從某個分布抽出這組随機變量。第二,可以通過引入隐含變量的技術來友善計算,比如期望最大算法以及更廣義的資料擴充技術就是基于這一思想。具體地,一些複雜分布,比如t-distribution, laplace distribution 則可以通過表示成高斯尺度混合體來進行簡化計算。第三,隐含變量本身可能具有某種有可解釋的實體意思,這剛好符合應用的場景。比如,在隐含狄利克雷配置設定(lda)模型,其中隐含變量具有某種主題的意思。

機器學習:統計與計算之戀

laten dirichlet allocation

第二個例子,我們來看多級貝葉斯模型。在進行mcmc抽樣後驗估計時,最上層的超參數總是需要先人為給定的,自然地,mcmc算法收斂性能是依賴這些給定的超參數的,如果我們對這些參數的選取沒有好的經驗,那麼一個可能做法我們再加一層,層數越多對超參數選取的依賴性會減弱。

機器學習:統計與計算之戀

hierarchical bayesian model

第三例子,深度學習蘊含的也是多級的思想。如果把所有的節點全部的放平,然後全連接配接,就是一個全連接配接圖。而cnn深度網絡則可以看成對全連接配接圖的一個結構正則化。正則化理論是統計學習的一個非常核心的思想。cnn和rnn是兩大深度神經網絡模型,分别主要用于圖像處理和自然語言進行中。研究表明多級結構具有更強的學習能力。

機器學習:統計與計算之戀

deep learning

2. 自适應 (adaptive)

我們來看自适應這個技術思路,我們通過幾個例子來看這個思路的作用。

第一個例子是自适應重要采樣技術。重要采樣方法通常可以提高均勻采樣的性能,而自适應則進一步改善重要采樣的性能。

第二個例子,自适應列選擇問題。給定一個矩陣a,我們希望從中選取部分列構成一個矩陣c,然後用cc^+a去近似原矩陣a,而且希望近似誤差盡可能小。這是一個np難問題。在實際上,可以通過一個自适應的方式,先采出非常小一部分c_1,由此構造一個殘差,通過這個定義一個機率,然後用機率再去采一部分c_2, 把c_1 和 c_2 合在一起組成c。

第三個例子,是自适應随機疊代算法。考慮一個帶正則化的經驗風險最小問題,當訓練資料非常多時,批處理的計算方式非常耗時,是以通常采用一個随機方式。存在的随機梯度或者随機對偶梯度算法可以得到參數的一個無偏估計。而通過引入自适應的技術,可以減少估計的方差。

第四個例子,是boosting分類方法。它自适應調整每個樣本的權重,具體地,提高分錯樣本的權重,而降低分對樣本的權重。

3. 平均 (averaging)

其實,boosting 蘊含着平均思想,即我最後要談的技術思路。簡單地說,boosting是把一組弱分類器內建在一起,形成一個強的分類器。第一好處是可以降低拟合的風險。第二,可以降低陷入局部的風險。第三,可以擴充假設空間。bagging同樣是經典的內建學習算法,它把訓練資料分成幾組,然後分别在小資料集上訓練模型,通過這些模型來組合強分類器。另外這是一個兩層的內建學習方式。

機器學習:統計與計算之戀

經典的anderson 加速技術則是通過平均的思想來達到加速收斂過程。具體地,它是一個疊加的過程,這個疊加的過程通過求解一個殘差最小得到一個權重組合。這個技術的好處,是沒有增加太多的計算,往往還可以使數值疊代變得較為穩定。

另外一個使用平均的例子是分布式計算中。很多情況下分布式計算不是同步的,是異步的,如果異步的時候怎麼辦?最簡單的是各自獨立做,到某個時候把所有結果平均,分發給各個worker, 然後又各自獨立運作,如此下去。這就好像一個熱啟動的過程。

正如我們已經看到,這些思想通常是組合在一起使用的,比如boosting模型。我們多級、自适應和平均的思想很直接,但的确也很有用。

本文作者:陳楊英傑

繼續閱讀