前面幾篇談了一些對(duì)數(shù)學(xué)的粗淺看法。其實(shí),如果對(duì)某門數(shù)學(xué)有興趣,最好的方法就是走進(jìn)那個(gè)世界去學(xué)習(xí)和體驗(yàn)。
這里說(shuō)說(shuō)幾本我看過(guò)后覺(jué)得不錯(cuò)的數(shù)學(xué)教科書(shū)。
1. 線性代數(shù) (Linear Algebra):
我想國(guó)內(nèi)的大學(xué)生都會(huì)學(xué)過(guò)這門課程,但是,未必每一位老師都能貫徹它的精要。這門學(xué)科對(duì)于Learning是必備的基礎(chǔ),對(duì)它的透徹掌握是必不可少的。我在科大一年級(jí)的時(shí)候就學(xué)習(xí)了這門課,后來(lái)到了香港后,又重新把線性代數(shù)讀了一遍,所讀的是
Introduction to Linear Algebra (3rd Ed.) by Gilbert Strang.
這本書(shū)是MIT的線性代數(shù)課使用的教材,也是被很多其它大學(xué)選用的經(jīng)典教材。它的難度適中,講解清晰,重要的是對(duì)許多核心的概念討論得比較 透徹。我個(gè)人覺(jué)得,學(xué)習(xí)線性代數(shù),最重要的不是去熟練矩陣運(yùn)算和解方程的方法——這些在實(shí)際工作中MATLAB可以代勞,關(guān)鍵的是要深入理解幾個(gè)基礎(chǔ)而又 重要的概念:子空間(Subspace),正交(Orthogonality),特征值和特征向量(Eigenvalues and eigenvectors),和線性變換(Linear transform)。從我的角度看來(lái),一本線代教科書(shū)的質(zhì)量,就在于它能否給這些根本概念以足夠的重視,能否把它們的聯(lián)系講清楚。Strang的這本書(shū) 在這方面是做得很好的。
而且,這本書(shū)有個(gè)得天獨(dú)厚的優(yōu)勢(shì)。書(shū)的作者長(zhǎng)期在MIT講授線性代數(shù)課(18.06),課程的video在MIT的Open courseware網(wǎng)站上有提供。有時(shí)間的朋友可以一邊看著名師授課的錄像,一邊對(duì)照課本學(xué)習(xí)或者復(fù)習(xí)。
http://ocw.mit.edu/OcwWeb/Mathematics/18-06Spring-2005/CourseHome/index.htm
2. 概率和統(tǒng)計(jì) (Probability and Statistics):
概率論和統(tǒng)計(jì)的入門教科書(shū)很多,我目前也沒(méi)有特別的推薦。我在這里想介紹的是一本關(guān)于多元統(tǒng)計(jì)的基礎(chǔ)教科書(shū):
Applied Multivariate Statistical Analysis (5th Ed.) by Richard A. Johnson and Dean W. Wichern
這本書(shū)是我在剛接觸向量統(tǒng)計(jì)的時(shí)候用于學(xué)習(xí)的,我在香港時(shí)做研究的基礎(chǔ)就是從此打下了。實(shí)驗(yàn)室的一些同學(xué)也借用這本書(shū)學(xué)習(xí)向量統(tǒng)計(jì)。這本書(shū) 沒(méi)有特別追求數(shù)學(xué)上的深度,而是以通俗易懂的方式講述主要的基本概念,讀起來(lái)很舒服,內(nèi)容也很實(shí)用。對(duì)于Linear regression, factor analysis, principal component analysis (PCA), and canonical component analysis (CCA)這些Learning中的基本方法也展開(kāi)了初步的論述。
之后就可以進(jìn)一步深入學(xué)習(xí)貝葉斯統(tǒng)計(jì)和Graphical models。一本理想的書(shū)是
Introduction to Graphical Models (draft version). by M. Jordan and C. Bishop.
我不知道這本書(shū)是不是已經(jīng)出版了(不要和Learning in Graphical Models混淆,那是個(gè)論文集,不適合初學(xué))。這本書(shū)從基本的貝葉斯統(tǒng)計(jì)模型出發(fā)一直深入到復(fù)雜的統(tǒng)計(jì)網(wǎng)絡(luò)的估計(jì)和推斷,深入淺 出,statistical learning的許多重要方面都在此書(shū)有清楚論述和詳細(xì)講解。MIT內(nèi)部可以access,至于外面,好像也是有電子版的。
3. 分析 (Analysis):
我想大家基本都在大學(xué)就學(xué)過(guò)微積分或者數(shù)學(xué)分析,深度和廣度則隨各個(gè)學(xué)校而異了。這個(gè)領(lǐng)域是很多學(xué)科的基礎(chǔ),值得推薦的教科書(shū)莫過(guò)于
Principles of Mathematical Analysis, by Walter Rudin
有點(diǎn)老,但是絕對(duì)經(jīng)典,深入透徹。缺點(diǎn)就是比較艱深——這是Rudin的書(shū)的一貫風(fēng)格,適合于有一定基礎(chǔ)后回頭去看。
在分析這個(gè)方向,接下來(lái)就是泛函分析(Functional Analysis)。
Introductory Functional Analysis with Applications, by Erwin Kreyszig.
適合作為泛函的基礎(chǔ)教材,容易切入而不失全面。我特別喜歡它對(duì)于譜論和算子理論的特別關(guān)注,這對(duì)于做learning的研究是特別重要的。 Rudin也有一本關(guān)于functional analysis的書(shū),那本書(shū)在數(shù)學(xué)上可能更為深刻,但是不易于上手,所講內(nèi)容和learning的切合度不如此書(shū)。
在分析這個(gè)方向,還有一個(gè)重要的學(xué)科是測(cè)度理論(Measure theory),但是我看過(guò)的書(shū)里面目前還沒(méi)有感覺(jué)有特別值得介紹的。
4. 拓?fù)?(Topology):
在我讀過(guò)的基本拓?fù)鋾?shū)各有特色,但是綜合而言,我最推崇:
Topology (2nd Ed.) by James Munkres
這本書(shū)是Munkres教授長(zhǎng)期執(zhí)教MIT拓?fù)湔n的心血所凝。對(duì)于一般拓?fù)鋵W(xué)(General topology)有全面介紹,而對(duì)于代數(shù)拓?fù)?Algebraic topology)也有適度的探討。此書(shū)不需要特別的數(shù)學(xué)知識(shí)就可以開(kāi)始學(xué)習(xí),由淺入深,從最基本的集合論概念(很多書(shū)不屑講這個(gè))到Nagata- Smirnov Theorem和Tychonoff theorem等較深的定理(很多書(shū)避開(kāi)了這個(gè))都覆蓋了。講述方式思想性很強(qiáng),對(duì)于很多定理,除了給出證明過(guò)程和引導(dǎo)你思考其背后的原理脈絡(luò),很多令人 贊嘆的亮點(diǎn)——我常讀得忘卻饑餓,不愿釋手。很多習(xí)題很有水平。
5. 流形理論 (Manifold theory):
對(duì)于拓?fù)浜头治鲇幸欢ò盐諘r(shí),方可開(kāi)始學(xué)習(xí)流形理論,否則所學(xué)只能流于浮淺。我所使用的書(shū)是
Introduction to Smooth Manifolds. by John M. Lee
雖然書(shū)名有introduction這個(gè)單詞,但是實(shí)際上此書(shū)涉入很深,除了講授了基本的manifold, tangent space, bundle, sub-manifold等,還探討了諸如綱理論(Category theory),德拉姆上同調(diào)(De Rham cohomology)和積分流形等一些比較高級(jí)的專題。對(duì)于李群和李代數(shù)也有相當(dāng)多的討論。行文通俗而又不失嚴(yán)謹(jǐn),不過(guò)對(duì)某些記號(hào)方式需要熟悉一下。
雖然李群論是建基于平滑流形的概念之上,不過(guò),也可能從矩陣出發(fā)直接學(xué)習(xí)李群和李代數(shù)——這種方法對(duì)于急需使用李群論解決問(wèn)題的朋友可能更加實(shí)用。而且,對(duì)于一個(gè)問(wèn)題從不同角度看待也利于加深理解。下面一本書(shū)就是這個(gè)方向的典范:
Lie Groups, Lie Algebras, and Representations: An Elementary Introduction. by Brian C. Hall
此書(shū)從開(kāi)始即從矩陣切入,從代數(shù)而非幾何角度引入矩陣?yán)钊旱母拍睢2⑼ㄟ^(guò)定義運(yùn)算的方式建立exponential mapping,并就此引入李代數(shù)。這種方式比起傳統(tǒng)的通過(guò)“左不變向量場(chǎng)(Left-invariant vector field)“的方式定義李代數(shù)更容易為人所接受,也更容易揭示李代數(shù)的意義。最后,也有專門的論述把這種新的定義方式和傳統(tǒng)方式聯(lián)系起來(lái)。
————————————————————————————
無(wú)論是研究Vision, Learning還是其它別的學(xué)科,數(shù)學(xué)終究是根基所在。學(xué)好數(shù)學(xué)是做好研究的基石。學(xué)好數(shù)學(xué)的關(guān)鍵歸根結(jié)底是自己的努力,但是選擇一本好的書(shū)還是大有益 處的。不同的人有不同的知識(shí)背景,思維習(xí)慣和研究方向,因此書(shū)的選擇也因人而異,只求適合自己,不必強(qiáng)求一致。上面的書(shū)僅僅是從我個(gè)人角度的出發(fā)介紹的, 我的閱讀經(jīng)歷實(shí)在非常有限,很可能還有比它們更好的書(shū)(不妨也告知我一聲,先說(shuō)聲謝謝了)。
近日來(lái),抽空再讀了一遍點(diǎn)集拓?fù)?Point Set Topology),這是我第三次重新學(xué)習(xí)這個(gè)理論了。我看電視劇和小說(shuō),極少能有興致看第二遍,但是,對(duì)于數(shù)學(xué),每看一次都有新的啟發(fā)和收獲。
代 數(shù),分析,和拓?fù)洌环Q為是現(xiàn)代數(shù)學(xué)的三大柱石。最初讀拓?fù)洌窃趦扇昵埃捎趯W(xué)習(xí)流形理論的需要。可是,隨著知識(shí)的積累,發(fā)現(xiàn)它是很多理論的根基。可 以說(shuō),沒(méi)有拓?fù)洌蜎](méi)有現(xiàn)代意義的分析與幾何。我們?cè)诟鞣N數(shù)學(xué)分支中接觸到的最基本的概念,比如,極限,連續(xù),距離(度量),邊界,路徑,在現(xiàn)代數(shù)學(xué)中, 都源于拓?fù)洹?
拓?fù)鋵W(xué)是一門非常奇妙的學(xué)科,它把最直觀的現(xiàn)象和最抽象的概念聯(lián)系在一起了。拓?fù)涿枋龅氖瞧毡槭褂玫母拍睿ū热玳_(kāi)集,閉 集,連續(xù)),我們對(duì)這些概念習(xí)以為常,理所當(dāng)然地使用著,可是,真要定義它,則需要對(duì)它們本質(zhì)的最深刻的洞察。數(shù)學(xué)家們經(jīng)過(guò)長(zhǎng)時(shí)間的努力,得到了這些概念 的現(xiàn)代定義。這里面很多第一眼看上去,會(huì)感覺(jué)驚奇——怎么會(huì)定義成這個(gè)樣子。
首先是開(kāi)集。在學(xué)習(xí)初等數(shù)學(xué)時(shí),我們都學(xué)習(xí)開(kāi)區(qū)間 (a, b)。可是,這只是在一條線上的,怎么推廣到二維空間,或者更高維空間,或者別的形體上呢?最直觀的想法,就是“一個(gè)不包含邊界的集合”。可是,問(wèn)題來(lái) 了,給一個(gè)集合,何謂“邊界”?在拓?fù)鋵W(xué)里面,開(kāi)集(Open Set)是最根本的概念,它是定義在集合運(yùn)算的基礎(chǔ)上的。它要求開(kāi)集符合這樣的條件:開(kāi)集的任意并集和有限交集仍為開(kāi)集。
我最初的時(shí) 候,對(duì)于這樣的定義方式,確實(shí)百思不解。不過(guò),讀下去,看了和做了很多證明后,發(fā)現(xiàn),這樣的定義一個(gè)很重要的意義在于:它保證了開(kāi)集中每個(gè)點(diǎn)都有一個(gè)鄰域 包含在這個(gè)集合內(nèi)——所有點(diǎn)都和外界(補(bǔ)集)保持距離。這樣的理解應(yīng)該比使用集合運(yùn)算的定義有更明晰的幾何意義。但是,直觀的東西不容易直接形成嚴(yán)謹(jǐn)?shù)亩? 義,使用集合運(yùn)算則更為嚴(yán)格。而集合運(yùn)算定義中,任意并集的封閉性是對(duì)這個(gè)幾何特點(diǎn)的內(nèi)在保證。
另外一個(gè)例子就是“連續(xù)函數(shù) ”(Continuous Function)。在學(xué)微積分時(shí),一個(gè)耳熟能詳?shù)亩x是“對(duì)任意的epsilon > 0,存在delta > 0,使得 。。。。”,背后最直觀的意思就是“足夠近的點(diǎn)保證映射到任意小的范圍內(nèi)”。可是,epsilon, delta都依賴于實(shí)空間,不在實(shí)空間的映射又怎么辦呢?拓?fù)涞亩x是“如果一個(gè)映射的值域中任何開(kāi)集的原像都是開(kāi)集,那么它連續(xù)。”這里就沒(méi)有 epsilon什么事了。
這里的關(guān)鍵在于,在拓?fù)鋵W(xué)中,開(kāi)集的最重要意義就是要傳遞“鄰域”的意思——開(kāi)集本身就是所含點(diǎn)的鄰域。這樣連續(xù)定義成這樣就順理成章了。稍微把說(shuō)法調(diào)節(jié)一下,上面的定義就變成了“對(duì)于f(x)的任意領(lǐng)域U,都有x的一個(gè)鄰域V,使得V里面的點(diǎn)都映射到U中。”
這里面,我們可以感受到為什么開(kāi)集在拓?fù)鋵W(xué)中有根本性的意義。既然開(kāi)集傳達(dá)“鄰域”的意思,那么,它最重要的作用就是要表達(dá)哪些點(diǎn)靠得比較近。給出一個(gè)拓?fù)浣Y(jié)構(gòu),就是要指出哪些是開(kāi)集,從而指出哪些點(diǎn)靠得比較近,這樣就形成了一個(gè)聚集結(jié)構(gòu)——這就是拓?fù)洹?
可是這也可以通過(guò)距離來(lái)描述,為什么要用開(kāi)集呢,反而不直觀了。某種意義上說(shuō),拓?fù)涫?#8220;定性”的,距離度量是“定量”的。隨著連續(xù)變形,距離會(huì)不斷變化,但是靠近的點(diǎn)還是靠近,因此本身固有的拓?fù)涮匦圆粫?huì)改變。拓?fù)鋵W(xué)研究的就是這種本質(zhì)特性——連續(xù)變化中的不變性。
在 拓?fù)涞幕靖拍钪校盍钊速M(fèi)解的,莫過(guò)于“緊性”(Compactness)。它描述一個(gè)空間或者一個(gè)集合“緊不緊”。正式的定義是“如果一個(gè)集合的任意 開(kāi)覆蓋都有有限子覆蓋,那么它是緊的”。乍一看,實(shí)在有點(diǎn)莫名其妙。它究竟想描述一個(gè)什么東西呢?和“緊”這個(gè)形容詞又怎么扯上關(guān)系呢?
一 個(gè)直觀一點(diǎn)的理解,幾個(gè)集合是“緊”的,就是說(shuō),無(wú)限個(gè)點(diǎn)撒進(jìn)去,不可能充分散開(kāi)。無(wú)論鄰域多么小,必然有一些鄰域里面有無(wú)限個(gè)點(diǎn)。上面關(guān)于 compactness的這個(gè)定義的玄機(jī)就在有限和無(wú)限的轉(zhuǎn)換中。一個(gè)緊的集合,被無(wú)限多的小鄰域覆蓋著,但是,總能找到其中的有限個(gè)就能蓋全。那么,后 果是什么呢?無(wú)限個(gè)點(diǎn)撒進(jìn)去,總有一個(gè)鄰域包著無(wú)數(shù)個(gè)點(diǎn)。鄰域們?cè)僭趺葱《际沁@樣——這就保證了無(wú)限序列中存在極限點(diǎn)。
Compact這個(gè)概念雖然有點(diǎn)不那么直觀,可是在分析中有著無(wú)比重要的作用。因?yàn)樗P(guān)系到極限的存在性——這是數(shù)學(xué)分析的基礎(chǔ)。了解泛函分析的朋友都知道,序列是否收斂,很多時(shí)候就看它了。微積分中,一個(gè)重要的定理——有界數(shù)列必然包含收斂子列,就是根源于此。
在
學(xué)習(xí)拓?fù)洌蛘咂渌F(xiàn)代數(shù)學(xué)理論之前,我們的數(shù)學(xué)一直都在有限維歐氏空間之中,那是一個(gè)完美的世界,具有一切良好的屬性,Hausdorff,
Locally compact, Simply
connected,Completed,還有一套線性代數(shù)結(jié)構(gòu),還有良好定義的度量,范數(shù),與內(nèi)積。可是,隨著研究的加深,終究還是要走出這個(gè)圈子。這
個(gè)時(shí)候,本來(lái)理所當(dāng)然的東西,變得不那么必然了。
兩個(gè)點(diǎn)必然能分開(kāi)?你要證明空間是Hausdorff的。
有界數(shù)列必然存在極限點(diǎn)?這只在locally compact的空間如此。
一個(gè)連續(xù)體內(nèi)任意兩點(diǎn)必然有路徑連接?這可未必。
一 切看上去有悖常理,而又確實(shí)存在。從線性代數(shù)到一般的群,從有限維到無(wú)限維,從度量空間到拓?fù)淇臻g,整個(gè)認(rèn)識(shí)都需要重新清理。而且,這些絕非僅是數(shù)學(xué)家的 概念游戲,因?yàn)槲覀兊氖澜绮皇怯邢蘧S向量能充分表達(dá)的。當(dāng)我們研究一些不是向量能表達(dá)的東西的時(shí)候,度量,代數(shù),以及分析的概念,都要重新建立,而起點(diǎn)就 在拓?fù)洹?/p>
題目中所說(shuō)到的四個(gè)詞語(yǔ),都是Machine Learning以及相關(guān)領(lǐng)域中熱門的研究課題。表面看屬于不同的topic,實(shí)際上則是看待同一個(gè)問(wèn)題的不同角度。不少文章論述了它們之間的一些聯(lián)系,讓大家看到了這個(gè)世界的奇妙。
從圖說(shuō)起
這里面,最簡(jiǎn)單的一個(gè)概念就是“圖”(Graph),它用于表示事物之間的相互聯(lián)系。每個(gè)圖有一批節(jié)點(diǎn)(Node),每個(gè)節(jié)點(diǎn)表示一個(gè)對(duì) 象,通過(guò)一些邊(Edge)把這些點(diǎn)連在一起,表示它們之間的關(guān)系。就這么一個(gè)簡(jiǎn)單的概念,它對(duì)學(xué)術(shù)發(fā)展的意義可以說(shuō)是無(wú)可估量的。幾乎所有領(lǐng)域研究的東 西,都是存在相互聯(lián)系的,通過(guò)圖,這些聯(lián)系都具有了一個(gè)統(tǒng)一,靈活,而又強(qiáng)大的數(shù)學(xué)抽象。因此,很多領(lǐng)域的學(xué)者都對(duì)圖有著深入探討,而且某個(gè)領(lǐng)域關(guān)于圖的 研究成果,可以被其它領(lǐng)域借鑒。
矩陣表示:讓代數(shù)進(jìn)入圖的世界
在數(shù)學(xué)上,一種被普遍使用的表達(dá)就是鄰接矩陣(Adjacency Matrix)。一個(gè)有N個(gè)節(jié)點(diǎn)的圖,可以用一個(gè)N x N的矩陣G表示,G(i, j)用一個(gè)值表示第i個(gè)節(jié)點(diǎn)和第j個(gè)節(jié)點(diǎn)的聯(lián)系,通常來(lái)說(shuō)這個(gè)值越大它們關(guān)系越密切,這個(gè)值為0表示它們不存在直接聯(lián)系。這個(gè)表達(dá),很直接,但是非常重 要,因?yàn)樗褦?shù)學(xué)上兩個(gè)非常根本的概念聯(lián)系在一起:“圖”(Graph)和“矩陣”(Matrix)。矩陣是代數(shù)學(xué)中最重要的概念,給了圖一個(gè)矩陣表達(dá), 就建立了用代數(shù)方法研究圖的途徑。數(shù)學(xué)家們幾十年前開(kāi)始就看到了這一點(diǎn),并且開(kāi)創(chuàng)了數(shù)學(xué)上一個(gè)重要的分支——代數(shù)圖論(Algebraic Graph Theory)。
代數(shù)圖論通過(guò)圖的矩陣表達(dá)來(lái)研究圖。熟悉線性代數(shù)的朋友知道,代數(shù)中一個(gè)很重要的概念叫做“譜”(Spectrum)。一個(gè)矩陣的很多 特性和它的譜結(jié)構(gòu)——就是它的特征值和特征向量是密切相關(guān)的。因此,當(dāng)我們獲得一個(gè)圖的矩陣表達(dá)之后,就可以通過(guò)研究這個(gè)矩陣的譜結(jié)構(gòu)來(lái)研究圖的特性。通 常,我們會(huì)分析一個(gè)圖的鄰接矩陣(Adjacency Matrix)或者拉普拉斯矩陣(Laplace Matrix)的譜——這里多說(shuō)一句,這兩種矩陣的譜結(jié)構(gòu)剛好是對(duì)稱的。
譜:“分而治之”的代數(shù)
譜,這個(gè)詞匯似乎在不少地方出現(xiàn)過(guò),比如我們可能更多聽(tīng)說(shuō)的頻譜,光譜,等等。究竟什么叫“譜”呢?它的概念其實(shí)并不神秘,簡(jiǎn)單地說(shuō),譜這 個(gè)概念來(lái)自“分而治之”的策略。一個(gè)復(fù)雜的東西不好直接研究,就把它分解成簡(jiǎn)單的分量。如果我們把一個(gè)東西看成是一些分量疊加而成,那么這些分量以及它們 各自所占的比例,就叫這個(gè)東西的譜。所謂頻譜,就是把一個(gè)信號(hào)分解成多個(gè)頻率單一的分量。
矩陣的譜,就是它的特征值和特征向量,普通的線性代數(shù)課本會(huì)告訴你定義:如果A v = c v,那么c 就是A的特征值,v就叫特征向量。這僅僅是數(shù)學(xué)家發(fā)明的一種數(shù)學(xué)游戲么?——也許有些人剛學(xué)這個(gè)的時(shí)候,并一定能深入理解這么個(gè)公式代表什么。其實(shí),這里 的譜,還是代表了一種分量結(jié)構(gòu),它為使用“分而治之”策略來(lái)研究矩陣的作用打開(kāi)了一個(gè)重要途徑。這里我們可以把矩陣?yán)斫鉃橐粋€(gè)操作(operator), 它的作用就是把一個(gè)向量變成另外一個(gè)向量:y = A x。對(duì)于某些向量,矩陣對(duì)它的作用很簡(jiǎn)單,A v = cv,相當(dāng)于就把這個(gè)向量v 拉長(zhǎng)了c倍。我們把這種和矩陣A能如此密切配合的向量v1, v2, ... 叫做特征向量,這個(gè)倍數(shù)c1, c2, ...叫特征值。那么來(lái)了一個(gè)新的向量x 的時(shí)候,我們就可以把x 分解為這些向量的組合,x = a1 v1 + a2 v2 + ...,那么A對(duì)x的作用就可以分解了:A x = A (a1 v1 + a2 v2 + ...) = a1 c1 v1 + a2 c2 v2 ... 所以,矩陣的譜就是用于分解一個(gè)矩陣的作用的。
這里再稍微延伸一點(diǎn)。一個(gè)向量可以看成一個(gè)關(guān)于整數(shù)的函數(shù),就是輸入i,它返回v( i )。它可以延伸為一個(gè)連續(xù)函數(shù)(一個(gè)長(zhǎng)度無(wú)限不可數(shù)的向量,呵呵),相應(yīng)的矩陣 A 變成一個(gè)二元連續(xù)函數(shù)(面積無(wú)限大的矩陣)。這時(shí)候矩陣乘法中的求和變成了積分。同樣的,A的作用可以理解為把一個(gè)連續(xù)函數(shù)映射為另外一個(gè)連續(xù)函數(shù),這時(shí) 候A不叫矩陣,通常被稱為算子。對(duì)于算子,上面的譜分析方法同樣適用(從有限到無(wú)限,在數(shù)學(xué)上還需要處理一下,不多說(shuō)了)——這個(gè)就是泛函分析中的一個(gè)重 要部分——譜論(Spectral Theory)。
馬爾可夫過(guò)程——從時(shí)間的角度理解圖
回到“圖”這個(gè)題目,那么圖的譜是干什么的呢?按照上面的理解,似乎是拿來(lái)分解一個(gè)圖的。這里譜的作用還是分治,但是,不是直觀的理解為把 圖的大卸八塊,而是把要把在圖上運(yùn)行的過(guò)程分解成簡(jiǎn)單的過(guò)程的疊加。如果一個(gè)圖上每個(gè)節(jié)點(diǎn)都有一個(gè)值,那么在圖上運(yùn)行的過(guò)程就是對(duì)這些值進(jìn)行更新的過(guò)程。 一個(gè)簡(jiǎn)單,大家經(jīng)常使用的過(guò)程,就是馬爾可夫過(guò)程(Markov Process)。
學(xué)過(guò)隨機(jī)過(guò)程的朋友都了解馬爾可夫過(guò)程。概念很簡(jiǎn)單——“將來(lái)只由現(xiàn)在決定,和過(guò)去無(wú)關(guān)”。考慮一個(gè)圖,圖上每個(gè)點(diǎn)有一個(gè)值,會(huì)被不斷 更新。每個(gè)點(diǎn)通過(guò)一些邊連接到其它一些點(diǎn)上,對(duì)于每個(gè)點(diǎn),這些邊的值都是正的,和為1。在圖上每次更新一個(gè)點(diǎn)的值,就是對(duì)和它相連接的點(diǎn)的值加權(quán)平均。如 果圖是聯(lián)通并且非周期(數(shù)學(xué)上叫各態(tài)歷經(jīng)性, ergodicity),那么這個(gè)過(guò)程最后會(huì)收斂到一個(gè)唯一穩(wěn)定的狀態(tài)(平衡狀態(tài))。
圖上的馬爾可夫更新過(guò)程,對(duì)于很多學(xué)科有著非常重要的意義。這種數(shù)學(xué)抽象,可以用在什么地方呢?(1) Google對(duì)搜索結(jié)果的評(píng)估(PageRank)原理上依賴于這個(gè)核心過(guò)程,(2) 統(tǒng)計(jì)中一種廣泛運(yùn)用的采樣過(guò)程MCMC,其核心就是上述的轉(zhuǎn)移過(guò)程,(3) 物理上廣泛存在的擴(kuò)散過(guò)程(比如熱擴(kuò)散,流體擴(kuò)散)和上面的過(guò)程有很重要的類比,(4) 網(wǎng)絡(luò)中的信息的某些歸納與交換過(guò)程和上述過(guò)程相同 (比如Random Gossiping),還有很多。非常多的實(shí)際過(guò)程通過(guò)某種程度的簡(jiǎn)化和近似,都可以歸結(jié)為上述過(guò)程。因此,對(duì)上面這個(gè)核心過(guò)程的研究,對(duì)于很多現(xiàn)象的理 解有重要的意義。各個(gè)領(lǐng)域的科學(xué)家從本領(lǐng)域的角度出發(fā)研究這個(gè)過(guò)程,得出了很多實(shí)質(zhì)上一致的結(jié)論,并且很多都落在了圖的譜結(jié)構(gòu)的這個(gè)關(guān)鍵點(diǎn)上。
圖和譜在此聯(lián)姻
根據(jù)上面的定義,我們看到鄰接矩陣A其實(shí)就是這個(gè)馬爾可夫過(guò)程的轉(zhuǎn)移概率矩陣。我們把各個(gè)節(jié)點(diǎn)的值放在一起可以得到一個(gè)向量v,那么我們就 可以獲得對(duì)這個(gè)過(guò)程的代數(shù)表示, v(t+1) = A v(t)。穩(wěn)定的時(shí)候,v = A v。我們可以看到穩(wěn)定狀態(tài)就是A的一個(gè)特征向量,特征值就是1。這里譜的概念進(jìn)來(lái)了。我們把A的特征向量都列出來(lái)v1, v2, ...,它們有 A vi = ci vi。vi其實(shí)就是一種很特殊,但是很簡(jiǎn)單的狀態(tài),對(duì)它每進(jìn)行一輪更新,所有節(jié)點(diǎn)的值就變成原來(lái)的ci倍。如果0 < ci < 1,那么,相當(dāng)于所有節(jié)點(diǎn)的值呈現(xiàn)指數(shù)衰減,直到大家都趨近于0。
一般情況下,我們開(kāi)始于一個(gè)任意一個(gè)狀態(tài)u,它的更新過(guò)程就沒(méi)那么簡(jiǎn)單了。我們用譜的方法來(lái)分析,把u分解成 u = v1 + c2 v2 + c3 v3 + ... (在數(shù)學(xué)上可以嚴(yán)格證明,對(duì)于上述的轉(zhuǎn)移概率矩陣,最大的特征值就是1,這里對(duì)應(yīng)于平衡狀態(tài)v1,其它的特征狀態(tài)v2, v3, ..., 對(duì)應(yīng)于特征值1 > c2 > c3 > ... > -1)。那么,我們可以看到,當(dāng)更新進(jìn)行了t 步之后,狀態(tài)變成 u(t) = v1 + c2^t v2 + c3^t v3 + ...,我們看到,除了代表平衡狀態(tài)的分量保持不變外,其它分量隨著t 增長(zhǎng)而指數(shù)衰減,最后,其它整個(gè)趨近于平衡狀態(tài)。
從上面的分析看到,這個(gè)過(guò)程的收斂速度,其實(shí)是和衰減得最慢的那個(gè)非平衡分量是密切相關(guān)的,它的衰減速度取決于第二大特征值c2,c2 的大小越接近于1,收斂越慢,越接近于0,收斂越快。這里,我們看到了譜的意義。第一,它幫助把一個(gè)圖上運(yùn)行的馬爾可夫過(guò)程分解為多個(gè)簡(jiǎn)單的字過(guò)程的疊 加,這里面包含一個(gè)平衡過(guò)程和多個(gè)指數(shù)衰減的非平衡過(guò)程。第二,它指出平衡狀態(tài)是對(duì)應(yīng)于最大特征值1的分量,而收斂速度主要取決于第二大特征值。
我們這里知道了第二大特征值c2對(duì)于描述這個(gè)過(guò)程是個(gè)至關(guān)重要的量,究竟是越大越好,還是越小越好呢?這要看具體解決的問(wèn)題。如果你要 設(shè)計(jì)一個(gè)采樣過(guò)程或者更新過(guò)程,那么就要追求一個(gè)小的c2,它一方面提高過(guò)程的效率,另外一方面,使得圖的結(jié)構(gòu)改變的時(shí)候,能及時(shí)收斂,從而保證過(guò)程的穩(wěn) 定。而對(duì)于網(wǎng)絡(luò)而言,小的c2有利于信息的迅速擴(kuò)散和傳播。
聚類結(jié)構(gòu)——從空間的角度理解圖
c2的大小往往取決于圖上的聚類結(jié)構(gòu)。如果圖上的點(diǎn)分成幾組,各自聚成一團(tuán),缺乏組與組之間的聯(lián)系,那么這種結(jié)構(gòu)是很不利于擴(kuò)散的。在某些 情況下,甚至需要O(exp(N))的時(shí)間才能收斂。這也符合我們的直觀想象,好比兩個(gè)大水缸,它們中間的只有一根很細(xì)的水管相連,那么就需要好長(zhǎng)時(shí)間才 能達(dá)到平衡。有興趣的朋友可以就這個(gè)水缸問(wèn)題推導(dǎo)一下,這個(gè)水缸系統(tǒng)的第二大特征值和水管流量與水缸的容積的比例直接相關(guān),隨比例增大而下降。
對(duì)于這個(gè)現(xiàn)象進(jìn)行推廣,數(shù)學(xué)上有一個(gè)重要的模型叫導(dǎo)率模型(Conductance)。具體的公式不說(shuō)了,大體思想是,節(jié)點(diǎn)集之間的導(dǎo) 通量和節(jié)點(diǎn)集大小的平均比例和第二大特征值之間存在一個(gè)單調(diào)的上下界關(guān)系。導(dǎo)率描述的是圖上的節(jié)點(diǎn)連接的空間結(jié)合,這個(gè)模型把第二特征值c2和圖的空間聚 集結(jié)構(gòu)聯(lián)系在一起了。
圖上的聚類結(jié)構(gòu)越明顯, c2越大;反過(guò)來(lái)說(shuō),c2越大,聚類的結(jié)構(gòu)越明顯,(c2 = 1)時(shí),整個(gè)圖就斷裂成非連通的兩塊或者多塊了。從這個(gè)意義上說(shuō),c2越大,越容易對(duì)這個(gè)圖上的點(diǎn)進(jìn)行聚類。機(jī)器學(xué)習(xí)中一個(gè)重要課題叫做聚類,近十年來(lái), 基于代數(shù)圖論發(fā)展出來(lái)的一種新的聚類方法,就是利用了第二大特征值對(duì)應(yīng)的譜結(jié)構(gòu),這種聚類方法叫做譜聚類(Spectral Clustering)。它在Computer Vision里面對(duì)應(yīng)于一種著名的圖像分割方法,叫做Normalized Cut。很多工作在使用這種方法。其實(shí)這種方法的成功,取決于c2的大小,也就是說(shuō)取決于我們?nèi)绾螛?gòu)造出一個(gè)利于聚類的圖,另外c2的值本身也可以作為衡 量聚類質(zhì)量,或者可聚類性的標(biāo)志。遺憾的是,在paper里面,使用此方法者眾,深入探討此方法的內(nèi)在特點(diǎn)者少。
歸納起來(lái)
圖是表達(dá)事物關(guān)系和傳遞擴(kuò)散過(guò)程的重要數(shù)學(xué)抽象
圖的矩陣表達(dá)提供了使用代數(shù)方法研究圖的途徑
譜,作為一種重要的代數(shù)方法,其意義在于對(duì)復(fù)雜對(duì)象和過(guò)程進(jìn)行分解
圖上的馬爾可夫更新過(guò)程是很多實(shí)際過(guò)程的一個(gè)重要抽象
圖的譜結(jié)構(gòu)的重要意義在于通過(guò)它對(duì)馬爾可夫更新過(guò)程進(jìn)行分解分析
圖的第一特征值對(duì)應(yīng)于馬爾可夫過(guò)程的平衡狀態(tài),第二特征值刻畫(huà)了這個(gè)過(guò)程的收斂速度(采樣的效率,擴(kuò)散和傳播速度,網(wǎng)絡(luò)的穩(wěn)定程度)。
圖的第二特征分量與節(jié)點(diǎn)的聚類結(jié)構(gòu)密切相關(guān)。可以通過(guò)譜結(jié)構(gòu)來(lái)分析圖的聚類結(jié)構(gòu)。
馬爾可夫過(guò)程代表了一種時(shí)間結(jié)構(gòu),聚類結(jié)構(gòu)代表了一種空間結(jié)構(gòu),“譜”把它們聯(lián)系在一起了,在數(shù)學(xué)刻畫(huà)了這種時(shí)與空的深刻關(guān)系。
我們所做的topic,一般有幾個(gè)階段:
Analysis: 分析問(wèn)題,找到問(wèn)題的關(guān)鍵
Modeling / Formulation: 對(duì)問(wèn)題進(jìn)行數(shù)學(xué)抽象,建立模型,或者formulate目標(biāo)函數(shù)
Solving: 設(shè)計(jì)出求解的算法
Experiments: 實(shí)驗(yàn)
最近的工作都集中在Solving這部分,就說(shuō)說(shuō)這個(gè)吧。
求解的方法
求解問(wèn)題有很多不同的方法,就我知道的來(lái)說(shuō),大概有這么幾個(gè)大家族。
Heuristics。 就是根據(jù)對(duì)問(wèn)題的觀察而設(shè) 計(jì)的一些簡(jiǎn)單的方法,不一定遵循什么規(guī)范,或者有什么深刻的數(shù)學(xué)根據(jù)。這類方法往往比較簡(jiǎn)單易懂,intuition比較明顯,很多時(shí)候 performance也挺不錯(cuò)的,不見(jiàn)得比高深的方法差,因而在實(shí)際工程中很受歡迎,幾乎應(yīng)用在全部的學(xué)科。不過(guò),好像很多朋友對(duì)這類方法頗為不屑,認(rèn) 為“沒(méi)有技術(shù)含量”,或者叫做“沒(méi)有理論深度”。
確實(shí),有相當(dāng)部分的Heuristics純粹粗制濫造,投機(jī)取巧。不過(guò),還有很多Heuristics雖然簡(jiǎn)單,但是切中問(wèn)題要害,在 長(zhǎng)期的復(fù)雜的實(shí)際應(yīng)用中經(jīng)受住了考驗(yàn)。這些方法,表面看來(lái)可能只是再簡(jiǎn)單不過(guò)的幾條四則運(yùn)算公式,說(shuō)不上多少理論,但是并不代表它沒(méi)有深刻的理論基礎(chǔ)。一 個(gè)典型的例子是Google PageRank中使用的傳導(dǎo)公式(簡(jiǎn)單版本),道理和公式都很簡(jiǎn)單,可是,做過(guò)類似工作的朋友可能都知道,它和代數(shù)圖論以及馬爾可夫隨機(jī)過(guò)程有著很深的 聯(lián)系。 又比如,F(xiàn)ourier Transform在剛出來(lái)的時(shí)候,僅僅是工程師的一些heuristics,后來(lái)關(guān)于它的理論已經(jīng)成為了泛函分析的一個(gè)核心組成部分,也是信號(hào)處理的理 論基礎(chǔ)之一。
真正好的heuristics,它的好處肯定不是瞎懵出來(lái),而是有內(nèi)在原因的。對(duì)它們的原理的探索,不斷帶動(dòng)理論方面的發(fā)展,甚至創(chuàng)造 了新的理論方向。說(shuō)到這里,有人可能會(huì)argue,這是“理論家們?cè)诠逝摶祜埑?#8221;。Hmm,這種說(shuō)法我不能認(rèn)同,但是,確實(shí)存在“把工程方法胡亂進(jìn)行 理論化”的事實(shí)。什么才叫有價(jià)值的理論化,而不是故弄玄虛,確實(shí)值得思考,這里先不展開(kāi)了。
Analytical Solution。 當(dāng)你把 問(wèn)題formulate出來(lái)后,有些情況是直接可以從問(wèn)題推導(dǎo)出解析解的。這種情況通常存在于objective function是Linear或者Quadratic的情況。大家都很喜歡這種情況的出現(xiàn),理論漂亮,實(shí)現(xiàn)簡(jiǎn)潔。但是,據(jù)我的觀察,很多情況下,這種 elegance是通過(guò)減化模型換取的。把cost寫(xiě)成quadratic term,把distribution假設(shè)為Gauss,很多時(shí)候都能得到這樣的結(jié)果。
我不反對(duì)進(jìn)行簡(jiǎn)化,也欣賞漂亮的analytical solution,如果它把問(wèn)題解決得很好。但是,這里面有個(gè)問(wèn)題,很多能獲得簡(jiǎn)單解析解的問(wèn)題已經(jīng)被做過(guò)了,剩下的很多難點(diǎn),未必是一個(gè)簡(jiǎn)化模型能有效 解決的。簡(jiǎn)化是一種很好的方法,但是,使用起來(lái),尤其是在實(shí)際中的應(yīng)用必須慎重,要清楚了解它們可能帶來(lái)的問(wèn)題。
比如說(shuō),很多模型喜歡使用差的平方來(lái)衡量誤差大小。但是,這很早就被指出是unrobust的,一個(gè)很大的deviation會(huì) dominate整個(gè)optimization,使得solution嚴(yán)重偏離方向。如果這種robustness在帶解決的問(wèn)題中是一個(gè)必須考慮的要 素,那么用平方誤差就要仔細(xì)考慮了。
Numerical Optimization。 如 果formulation沒(méi)有解析解,那么自然的想法就是使用數(shù)值方法求解。目前大家常用的是基于Gradient/Hessian之類的local optimization的方法,有時(shí)會(huì)加上random initialization。如果objective function是convex的,那么這種方法保證收斂到global optimal,這是大家很希望的。convex problem無(wú)論在formulation還是在solution的階段,都是很有學(xué)問(wèn)的。很多問(wèn)題可以formulate成convex的,但是未必 都那么直接,這需要有這方面的基礎(chǔ)。Solving一個(gè)convex problem有現(xiàn)成的方法,但是,如果能對(duì)問(wèn)題的結(jié)構(gòu)有insightful的觀察,可能能利用問(wèn)題本身的特點(diǎn)大幅度降低求解的復(fù)雜度——這往往比直接 把問(wèn)題扔進(jìn)solver里面等答案更有意義。
除了convex optimization,還有一種數(shù)值方法應(yīng)用非常廣泛,叫做coordinate ascend或者alternate optimization。大概的思路是,幾個(gè)有關(guān)的變量,輪流選擇某個(gè)去優(yōu)化,暫時(shí)固定其它的。在Machine Learning里面非常重要的Expectation-Maximization (EM算法)就屬于這個(gè)大家族。另外,很多復(fù)雜的graphical model采用的variational inference也是屬于此類。使用這類方法,有兩個(gè)問(wèn)題:一個(gè)是如果幾個(gè)variable之間相互影響,變一個(gè),其他跟著變的話,那么直接使用這種方 法可能是錯(cuò)誤的,并不能保證收斂。另外一個(gè)問(wèn)題是,如果problem不是convex的話,可能沒(méi)有任何保證你得到的solution和global solution有聯(lián)系。很可能,你得到的解和真正的全局最優(yōu)解相差十萬(wàn)八千里。這個(gè)沒(méi)有什么通用有效的途徑來(lái)解決。不過(guò),針對(duì)具體問(wèn)題的結(jié)構(gòu)特點(diǎn),在求 解過(guò)程中施加一定的引導(dǎo)是有可能的。
Dynamic Programming。 這個(gè)方 法更多見(jiàn)于經(jīng)典計(jì)算機(jī)算法中,不過(guò)現(xiàn)在越來(lái)越多在Vision和Learning見(jiàn)到它的影子。主要思路是把大問(wèn)題分解為小問(wèn)題,總結(jié)小問(wèn)題的 solution為大問(wèn)題的solution。至于如何設(shè)計(jì)分解和綜合的過(guò)程,依賴于對(duì)問(wèn)題的觀察和分析,并無(wú)通用的法則可循。用DP解決問(wèn)題的洞察力需 要逐步的積累。不少經(jīng)典算法就源自于DP,比如shotest path。一個(gè)可能有用的觀察是,如果問(wèn)題或者模型呈現(xiàn)鏈狀,樹(shù)狀,或者有向無(wú)環(huán)圖結(jié)構(gòu)的,可能很有希望能通過(guò)DP高效解決。
Local Exchange。 很多建立在圖上的 問(wèn)題,都可以通過(guò)某種局部交換來(lái)達(dá)到全局的平衡。像Belief propagation, Junction tree等等在graphical model的重要inference方法,還有tranduction model,都用到了類似的策略。這在實(shí)踐中被證明為非常有效。但是,并不是隨便設(shè)計(jì)的局部交換過(guò)程都是收斂的。這里面需要關(guān)注兩個(gè)問(wèn)題:(1)交換過(guò)程 是不是能保證某些重要的invariance不被破壞;(2)交換過(guò)程中,是不是有一個(gè)objective,比如距離全局平衡的deviation,它在 每一步都保持單調(diào)。有很多交換過(guò)程,在有向無(wú)環(huán)圖中保證收斂,但是,在帶環(huán)圖中由于信息的重復(fù)傳遞可能引起不穩(wěn)定,或者不能收斂到正確的解。
Monte Carlo Sampling。 蒙特 卡羅采樣的原理非常簡(jiǎn)單,就是用樣本平均,來(lái)逼近期望(這個(gè)可能需要用intractable的積分完成,沒(méi)法直接算)。求平均很簡(jiǎn)單,關(guān)鍵在于采樣過(guò) 程。我們求解問(wèn)題,通常是在后驗(yàn)分布中采樣,這種分布在大部分問(wèn)題中,不要說(shuō)直接采樣了,可能連解析形式都沒(méi)法給出。如果采樣問(wèn)題有效解決了,基本上我們 研究的大部分問(wèn)題其實(shí)都可以通過(guò)采樣完成。
由于直接采樣往往非常困難,于是就產(chǎn)生了其它的方法,間接做這個(gè)事情。一種想法就是,既然p(x)不好直接采,我找一個(gè)比較容易采樣的 q(x)來(lái)逼近p(x),然后給從q(x)采出的每個(gè)樣本加一個(gè)weight,p(x) / q(x)。這在理論上被嚴(yán)格證明是對(duì)的——這種方法叫做Importance Sampling。這里的問(wèn)題在于,如果q(x)和p(x)不太接近,那么采樣效率非常低下,如果在一個(gè)高維空間,可能采1000年都達(dá)不到要求。可是, 要得到一個(gè)approximate很好的q(x)本身不比直接從p(x)采樣來(lái)得容易。
還有一種聰明一點(diǎn)的方法,叫sequential importance sampling。在這里面q(x),不是一蹴而就建立起來(lái)的,而是每個(gè)樣本先采一部分,然后根據(jù)那部分,確定下一部分的proposal distribution,繼續(xù)采,也就是說(shuō)q(x)和樣本都是dynamically built up。這個(gè)方法在vision里面一個(gè)非常著名的應(yīng)用是用于tracking,相應(yīng)發(fā)展出來(lái)的方法論叫做particle filtering。
另外一大類重要的采樣方法,叫Markov Chain Monte Carlo(MCMC)。這個(gè)的想法是,設(shè)計(jì)一個(gè)馬爾科夫鏈,讓它的平衡分布恰好是p(x),那么等它平衡時(shí)開(kāi)始采。以前我們做隨機(jī)過(guò)程作業(yè)是已知一個(gè) markov chain,求equilibrium distribution,設(shè)計(jì)MCMC就是反過(guò)來(lái)了。最重要的MCMC方法莫過(guò)于Metropolis-Hastings Algorithm和Gibbs Sampling,前者常被用于設(shè)計(jì)在solution space的隨機(jī)游走(Random walk),后者則是conditional sampling的基礎(chǔ)方法。
可是Markov過(guò)程怎么轉(zhuǎn)移呢。最簡(jiǎn)單的Random Walk結(jié)合acceptance rate之后理論上是對(duì)的。可是,讓sampler隨便亂走,猴年馬月才能把solution space走一遍阿。于是,有人提出結(jié)合一個(gè)solution space的局部信息來(lái)引導(dǎo)它往有用的方向走。一個(gè)重要的方法叫做Hybric Monte Carlo(HMC),想法就是把它模擬成一個(gè)物理場(chǎng),把要sample的分布視為波爾茲曼分布后獲得物理場(chǎng)的勢(shì)能,通過(guò)哈密頓動(dòng)力學(xué)模型(其實(shí)就是牛頓 力學(xué)的推廣)來(lái)驅(qū)動(dòng)sampler。可是,如果問(wèn)題更為復(fù)雜呢,比如整個(gè)solution space有幾個(gè)井,sample掉到某一個(gè)井可能出不來(lái)了。為了解決這個(gè)問(wèn)題,一種重要的方法叫Tempering,就是開(kāi)始給分子充分加熱,讓它獲得 足夠的動(dòng)能能在各個(gè)井之間來(lái)回跳,然后逐步冷卻,從而能捕捉到多個(gè)勢(shì)井。
Monte Carlo方法較早的時(shí)候主要用于統(tǒng)計(jì)物理,目前已經(jīng)廣泛應(yīng)用于計(jì)算機(jī),生物,化學(xué),地質(zhì)學(xué),經(jīng)濟(jì)學(xué),社會(huì)學(xué)等等的研究。這是目前所知道的用于求解復(fù)雜的 真實(shí)模型的最有效的方法。它的核心,就是猜——你直接解不出來(lái),只好猜了,呵呵。但是,怎樣才能猜得準(zhǔn),則是大有學(xué)問(wèn)——幾十年來(lái)各個(gè)領(lǐng)域關(guān)于Monte Carlo研究的工作汗牛充棟,有很多進(jìn)展,但是還有很長(zhǎng)的路要走。
和這里很多留學(xué)生一樣,我一向潛心于自己的學(xué)習(xí)和研究。可是最近,我們的世界并不寧?kù)o,我認(rèn)識(shí)的不只一個(gè)在美國(guó)的朋友受到了不太友好的挑釁——在不 知不覺(jué)中,我們可能已經(jīng)身處反分裂和支持奧運(yùn)的前線。我看到包括MIT CSSA在內(nèi)的很多學(xué)生團(tuán)體開(kāi)始組織起來(lái)支持自己的祖國(guó)。我沒(méi)有具體幫上什么,但是,我對(duì)所有在用自己的行動(dòng)捍衛(wèi)國(guó)家榮譽(yù)的同胞懷有最深的敬意。我也希 望,我的努力,能讓外國(guó)的朋友明白中國(guó)人是值得尊敬的。
我 們的生活從來(lái)不缺乏距離的概念,無(wú)論是時(shí)間的還是空間的,可以測(cè)量的還是不可以測(cè)量的。自我們來(lái)到這個(gè)世界,就會(huì)用我們還很幼小的眼睛測(cè)量著自己和身邊的 人的距離,然后跟著距離自己最近的人學(xué)叫“媽媽”;長(zhǎng)大了,我們學(xué)會(huì)了用“距離產(chǎn)生美”這種不知道屬于公理還是定理的命題,提醒自己不要和心儀的mm走得 太近;而垂垂老矣的人們則開(kāi)始計(jì)算自己到生命終點(diǎn)的距離,盤(pán)算著什么時(shí)候該立遺囑了。
什么叫距離呢?隨便翻開(kāi)一本數(shù)學(xué)教科書(shū),你會(huì)發(fā) 現(xiàn),這些書(shū)會(huì)在這個(gè)或者那個(gè)角落告訴你,所謂距離,就是一個(gè)符合對(duì)稱性和三角不等式的非負(fù)二元函數(shù)。為什么要符合對(duì)稱性和三角不等式呢——大部分的書(shū)會(huì)告 訴你,這是規(guī)定——不符合的就不是距離。少部分負(fù)責(zé)任一些的書(shū)會(huì)告訴你,不符合這些條件的“距離”會(huì)多麻煩。于是你接受了。
當(dāng)你放下書(shū) 本,回到我們多姿多彩的生活中的時(shí)候,這個(gè)呆板的定義似乎不能有效地解決你生活中的問(wèn)題。你去hiking的時(shí)候,入口處告訴你,從山下到山上的距離是多 少多少里路,按說(shuō)上山和下山的距離是一樣的,可是當(dāng)你攀到山頂又走回來(lái)的時(shí)候,心里可能犯嘀咕,怎么感覺(jué)距離不一樣呢?偉大的數(shù)學(xué)家們是不會(huì)錯(cuò)的。這是相 對(duì)論!——那些費(fèi)了半天勁才把洛侖茲變換搞明白的人們,生怕錯(cuò)過(guò)了這個(gè)機(jī)會(huì)就沒(méi)有機(jī)會(huì)顯示自己深厚的物理底蘊(yùn)了。不過(guò),我只是相信一點(diǎn),根據(jù)目前人類的進(jìn) 化水平,即使把世界短跑冠軍的運(yùn)動(dòng)速度和地球公轉(zhuǎn)自轉(zhuǎn)速度加起來(lái)再乘以10,離光速還遠(yuǎn)著呢。
再說(shuō)一個(gè)例子,不知道男同胞們是不是發(fā) 現(xiàn),當(dāng)你想去接近你的夢(mèng)中情人的時(shí)候,距離似乎遙不可及——走出太陽(yáng)系似乎都沒(méi)有那么遠(yuǎn),反過(guò)來(lái),當(dāng)她想接近你的時(shí)候,這個(gè)距離比任何預(yù)先給定的正實(shí)數(shù)都 小——我有點(diǎn)懷疑,牛頓或者萊布尼茨當(dāng)年是不是有過(guò)類似體驗(yàn),才總結(jié)出了微機(jī)分——這告訴我們?yōu)槭裁次C(jī)分不是女生提出的。
為了能讓距 離去解釋上面說(shuō)到的現(xiàn)象,我們有必要把它的概念推廣一下,把對(duì)稱性去掉——很多情況下,我們甚至把三角不等式也去掉。一個(gè)著名的例子,就是 Kullback-Leibler divergence——用來(lái)描述兩個(gè)分布的“距離”。大家注意了,這里定義這個(gè)的人很聰明,為了不和數(shù)學(xué)家作對(duì),他選擇叫做divergence,而不 是distance。不過(guò),很多信息論和統(tǒng)計(jì)學(xué)的書(shū)都猶抱琵琶半遮面地告訴我們,其實(shí)可以把它YY成為某種距離。伴隨著對(duì)稱性的喪失,距離的方向性出現(xiàn) 了。就是說(shuō)從a到b的距離,和從b到a的距離是不一樣的——恩,這種推廣看起來(lái)很適合用來(lái)計(jì)算你和你心儀的人的距離,或者山頂和山腳的距離。
小 學(xué)老師告訴我們?cè)趺慈チ慷葍蓚€(gè)點(diǎn)之間的距離,就是拿一把尺子。可是,很多時(shí)候,你沒(méi)有機(jī)會(huì)使用直尺的。你所能做的就是從這點(diǎn)走到那點(diǎn),看看費(fèi)了多少勁—— 這就是我們大多數(shù)人在生活經(jīng)驗(yàn)中的距離。黎曼老先生,作為理論聯(lián)系實(shí)際的代表,第一次從在數(shù)學(xué)上總結(jié)了這種生活上的距離——geodesic distance,中文叫做測(cè)地距離。它是怎么算距離的呢?就是從起點(diǎn)出發(fā),一步步走向目標(biāo),然后把每一步費(fèi)了多少勁加起來(lái)。至于,每一步費(fèi)了多少勁怎么 算,大家都可以有不同的算法——但是,這些都叫Riemann Metric。 為了大家計(jì)算距離時(shí)的身體健康,鼓勵(lì)大家節(jié)省能源,規(guī)定,只有按照最省事的方法到達(dá)目標(biāo),這樣算出來(lái)的才叫距離。 不過(guò),在很多實(shí)際應(yīng)用中,大家只能找到比較省事的方法,未必是“最省的”,也睜一只眼閉一只眼,把算出來(lái)的東西追加“距離”的光榮稱號(hào)。
打 破對(duì)稱性的千年枷鎖,扔掉直尺這種陳腐工具,人們獲得了空前的思想解放。男生和女生們開(kāi)始附庸風(fēng)雅地用曾經(jīng)只存在于象牙塔的概念——距離——去評(píng)價(jià)自己和 她或者他的關(guān)系。如何評(píng)價(jià),見(jiàn)仁見(jiàn)智——在我看來(lái),很多人的metric里面不外乎寫(xiě)了多少情書(shū),給電信公司貢獻(xiàn)了多少短信費(fèi),qq/msn在線了多少時(shí) 間,又或者吃了多少頓麥當(dāng)勞。。。。。。在這個(gè)定義的基礎(chǔ)上,“距離產(chǎn)生美”——這個(gè)掛在多少人口頭的箴言橫空出世了。根據(jù)距離就是費(fèi)了多少勁的意思,這 句話告訴我們,只有費(fèi)了很多功夫,死了無(wú)數(shù)腦細(xì)胞,才能得到,或者還得不到的才是美的;信手而獲,不需要追求的,就談不上美了。從這個(gè)意義上說(shuō),這句話和 高中的學(xué)到的“勞動(dòng)產(chǎn)生價(jià)值”的道理是一樣的,只不過(guò),“勞動(dòng)產(chǎn)生價(jià)值”是物質(zhì)層次的——太俗了,“距離產(chǎn)生美”是精神層次的,檔次和格調(diào)顯然不一樣。
感覺(jué)數(shù)學(xué)似乎總是不夠的。這些日子為了解決research中的一些問(wèn)題,又在圖書(shū)館捧起了數(shù)學(xué)的教科書(shū)。
從 大學(xué)到現(xiàn)在,課堂上學(xué)的和自學(xué)的數(shù)學(xué)其實(shí)不算少了,可是在研究的過(guò)程中總是發(fā)現(xiàn)需要補(bǔ)充新的數(shù)學(xué)知識(shí)。Learning和Vision都是很多種數(shù)學(xué)的交 匯場(chǎng)。看著不同的理論體系的交匯,對(duì)于一個(gè)researcher來(lái)說(shuō),往往是非常exciting的enjoyable的事情。不過(guò),這也代表著要充分了 解這個(gè)領(lǐng)域并且取得有意義的進(jìn)展是很艱苦的。
記得在兩年前的一次blog里面,提到過(guò)和learning有關(guān)的數(shù)學(xué)。今天看來(lái),我對(duì)于數(shù)學(xué)在這個(gè)領(lǐng)域的作用有了新的思考。
對(duì)于Learning的研究,
Linear Algebra (線性代數(shù)) 和 Statistics (統(tǒng)計(jì)學(xué)) 是最重要和不可缺少的。這代表了Machine Learning中最主流的兩大類方法的基礎(chǔ)。一種是以研究函數(shù)和變換為重點(diǎn)的代數(shù)方法,比如Dimension reduction,feature extraction,Kernel等,一種是以研究統(tǒng)計(jì)模型和樣本分布為重點(diǎn)的統(tǒng)計(jì)方法,比如Graphical model, Information theoretical models等。它們側(cè)重雖有不同,但是常常是共同使用的,對(duì)于代數(shù)方法,往往需要統(tǒng)計(jì)上的解釋,對(duì)于統(tǒng)計(jì)模型,其具體計(jì)算則需要代數(shù)的幫助。
以代數(shù)和統(tǒng)計(jì)為出發(fā)點(diǎn),繼續(xù)往深處走,我們會(huì)發(fā)現(xiàn)需要更多的數(shù)學(xué)。
Calculus (微積分),只 是數(shù)學(xué)分析體系的基礎(chǔ)。其基礎(chǔ)性作用不言而喻。Learning研究的大部分問(wèn)題是在連續(xù)的度量空間進(jìn)行的,無(wú)論代數(shù)還是統(tǒng)計(jì),在研究?jī)?yōu)化問(wèn)題的時(shí)候,對(duì) 一個(gè)映射的微分或者梯度的分析總是不可避免。而在統(tǒng)計(jì)學(xué)中,Marginalization和積分更是密不可分——不過(guò),以解析形式把積分導(dǎo)出來(lái)的情況則 不多見(jiàn)。
Partial Differential Equation (偏微分方程),這主要用于描述動(dòng)態(tài)過(guò)程,或者仿動(dòng)態(tài)過(guò)程。這個(gè)學(xué)科在Vision中用得比Learning多,主要用于描述連續(xù)場(chǎng)的運(yùn)動(dòng)或者擴(kuò)散過(guò)程。比如Level set, Optical flow都是這方面的典型例子。
Functional Analysis (泛函分析), 通俗地,可以理解為微積分從有限維空間到無(wú)限維空間的拓展——當(dāng)然了,它實(shí)際上遠(yuǎn)不止于此。在這個(gè)地方,函數(shù)以及其所作用的對(duì)象之間存在的對(duì)偶關(guān)系扮演了 非常重要的角色。Learning發(fā)展至今,也在向無(wú)限維延伸——從研究有限維向量的問(wèn)題到以無(wú)限維的函數(shù)為研究對(duì)象。Kernel Learning 和 Gaussian Process 是其中典型的例子——其中的核心概念都是Kernel。很多做Learning的人把Kernel簡(jiǎn)單理解為Kernel trick的運(yùn)用,這就把kernel的意義嚴(yán)重弱化了。在泛函里面,Kernel (Inner Product) 是建立整個(gè)博大的代數(shù)體系的根本,從metric, transform到spectrum都根源于此。
Measure Theory (測(cè)度理論),這 是和實(shí)分析關(guān)系非常密切的學(xué)科。但是測(cè)度理論并不限于此。從某種意義上說(shuō),Real Analysis可以從Lebesgue Measure(勒貝格測(cè)度)推演,不過(guò)其實(shí)還有很多別的測(cè)度體系——概率本身就是一種測(cè)度。測(cè)度理論對(duì)于Learning的意義是根本的,現(xiàn)代統(tǒng)計(jì)學(xué)整 個(gè)就是建立在測(cè)度理論的基礎(chǔ)之上——雖然初級(jí)的概率論教科書(shū)一般不這樣引入。在看一些統(tǒng)計(jì)方面的文章的時(shí)候,你可能會(huì)發(fā)現(xiàn),它們會(huì)把統(tǒng)計(jì)的公式改用測(cè)度來(lái) 表達(dá),這樣做有兩個(gè)好處:所有的推導(dǎo)和結(jié)論不用分別給連續(xù)分布和離散分布各自寫(xiě)一遍了,這兩種東西都可以用同一的測(cè)度形式表達(dá):連續(xù)分布的積分基于 Lebesgue測(cè)度,離散分布的求和基于計(jì)數(shù)測(cè)度,而且還能推廣到那種既不連續(xù)又不離散的分布中去(這種東西不是數(shù)學(xué)家的游戲,而是已經(jīng)在實(shí)用的東西, 在Dirchlet Process或者Pitman-Yor Process里面會(huì)經(jīng)常看到)。而且,即使是連續(xù)積分,如果不是在歐氏空間進(jìn)行,而是在更一般的拓?fù)淇臻g(比如微分流形或者變換群),那么傳統(tǒng)的黎曼積 分(就是大學(xué)一年級(jí)在微積分課學(xué)的那種)就不work了,你可能需要它們的一些推廣,比如Haar Measure或者Lebesgue-Stieltjes積分。
Topology(拓?fù)鋵W(xué)),這 是學(xué)術(shù)中很基礎(chǔ)的學(xué)科。它一般不直接提供方法,但是它的很多概念和定理是其它數(shù)學(xué)分支的基石。看很多別的數(shù)學(xué)的時(shí)候,你會(huì)經(jīng)常接觸這樣一些概念:Open set / Closed set,set basis,Hausdauf, continuous function,metric space, Cauchy sequence, neighborhood, compactness, connectivity。很多這些也許在大學(xué)一年級(jí)就學(xué)習(xí)過(guò)一些,當(dāng)時(shí)是基于極限的概念獲得的。如果,看過(guò)拓?fù)鋵W(xué)之后,對(duì)這些概念的認(rèn)識(shí)會(huì)有根本性的拓 展。比如,連續(xù)函數(shù),當(dāng)時(shí)是由epison法定義的,就是無(wú)論取多小的正數(shù)epsilon,都存在xxx,使得xxx。這是需要一種metric去度量距 離的,在general topology里面,對(duì)于連續(xù)函數(shù)的定義連坐標(biāo)和距離都不需要——如果一個(gè)映射使得開(kāi)集的原像是開(kāi)集,它就是連續(xù)的——至于開(kāi)集是基于集合論定義的,不 是通常的開(kāi)區(qū)間的意思。這只是最簡(jiǎn)單的例子。當(dāng)然,我們研究learning也許不需要深究這些數(shù)學(xué)概念背后的公理體系,但是,打破原來(lái)定義的概念的局限 在很多問(wèn)題上是必須的——尤其是當(dāng)你研究的東西它不是在歐氏空間里面的時(shí)候——正交矩陣,變換群,流形,概率分布的空間,都屬于此。
Differential Manifold (微分流形), 通俗地說(shuō)它研究的是平滑的曲面。一個(gè)直接的印象是它是不是可以用來(lái)fitting一個(gè)surface什么的——當(dāng)然這算是一種應(yīng)用,但是這是非常初步的。 本質(zhì)上說(shuō),微分流形研究的是平滑的拓?fù)浣Y(jié)構(gòu)。一個(gè)空間構(gòu)成微分流形的基本要素是局部平滑:從拓?fù)鋵W(xué)來(lái)理解,就是它的任意局部都同胚于歐氏空間,從解析的角 度來(lái)看,就是相容的局部坐標(biāo)系統(tǒng)。當(dāng)然,在全局上,它不要求和歐氏空間同胚。它除了可以用于刻畫(huà)集合上的平滑曲面外,更重要的意義在于,它可以用于研究很 多重要的集合。一個(gè)n-維線性空間的全部k-維子空間(k < n)就構(gòu)成了一個(gè)微分流形——著名的Grassman Manifold。所有的標(biāo)準(zhǔn)正交陣也構(gòu)成一個(gè)流形。一個(gè)變換群作用于一個(gè)空間形成的軌跡(Orbit) 也是通常會(huì)形成流形。在流形上,各種的分析方法,比如映射,微分,積分都被移植過(guò)來(lái)了。前一兩年在Learning里面火了好長(zhǎng)時(shí)間的Manifold Learning其實(shí)只是研究了這個(gè)分支的其中一個(gè)概念的應(yīng)用: embedding。其實(shí),它還有很多可以發(fā)掘的空間。
Lie Group Theory (李群論),一 般意義的群論在Learning中被運(yùn)用的不是很多,群論在Learning中用得較多的是它的一個(gè)重要方向Lie group。定義在平滑流行上的群,并且其群運(yùn)算是平滑的話,那么這就叫李群。因?yàn)長(zhǎng)earning和編碼不同,更多關(guān)注的是連續(xù)空間,因?yàn)長(zhǎng)ie group在各種群中對(duì)于Learning特別重要。各種子空間,線性變換,非奇異矩陣都基于通常意義的矩陣乘法構(gòu)成李群。在李群中的映射,變換,度量, 劃分等等都對(duì)于Learning中代數(shù)方法的研究有重要指導(dǎo)意義。
Graph Theory(圖論),圖, 由于它在表述各種關(guān)系的強(qiáng)大能力以及優(yōu)雅的理論,高效的算法,越來(lái)越受到Learning領(lǐng)域的歡迎。經(jīng)典圖論,在Learning中的一個(gè)最重要應(yīng)用就 是graphical models了,它被成功運(yùn)用于分析統(tǒng)計(jì)網(wǎng)絡(luò)的結(jié)構(gòu)和規(guī)劃統(tǒng)計(jì)推斷的流程。Graphical model所取得的成功,圖論可謂功不可沒(méi)。在Vision里面,maxflow (graphcut)算法在圖像分割,Stereo還有各種能量?jī)?yōu)化中也廣受應(yīng)用。另外一個(gè)重要的圖論分支就是Algebraic graph theory (代數(shù)圖論),主要運(yùn)用于圖的譜分析,著名的應(yīng)用包括Normalized Cut和Spectral Clustering。近年來(lái)在semi-supervised learning中受到特別關(guān)注。
小時(shí)候,老師就告訴我們,讀書(shū)講究先由薄而厚,再由厚而薄。前者是吸收和積累,后者是融會(huì)和消化。
這些年,讀了不少關(guān)于統(tǒng)計(jì)學(xué)習(xí)的東西,很多東西都記不清楚了。從我自己的角度看來(lái)(可能是很膚淺的),學(xué)概率和統(tǒng)計(jì),關(guān)鍵是記住三個(gè)概念:測(cè)度(measure),期望(expectation),和獨(dú)立性(independence)。
測(cè)度是現(xiàn)代概率理論的基石。在經(jīng)典的概率論里面——比如我們?cè)诒究茖W(xué)的那些——大多是通過(guò)舉例子和文字說(shuō)明的方式告訴你概率是什么,這容易 明白,不過(guò)缺乏嚴(yán)密的公理化根基。現(xiàn)代概率論整個(gè)建立在測(cè)度理論的基礎(chǔ)上,概率的定義非常簡(jiǎn)單,不過(guò)也很抽象——所謂“概率”,就是歸一化的測(cè)度。沒(méi)有測(cè) 度,就沒(méi)有整個(gè)概率論的大廈,所以它很重要——不過(guò),它在實(shí)用中直接用上的機(jī)會(huì)不大,所以不是這篇文章的主體。關(guān)于獨(dú)立性,以及它的一個(gè)孿生的名 詞:Markov,也扮演著非常重要的角色,它是Graphical models的基礎(chǔ)。有興趣的可以去讀M. I. Jordan的書(shū)。
而在統(tǒng)計(jì)學(xué)習(xí)的實(shí)際應(yīng)用中,就是你平時(shí)寫(xiě)code,用得最多的就是期望,或者一個(gè)通俗點(diǎn)的版本——平均值。其實(shí)這兩者不太一樣,期望是從model出發(fā)演繹的,平均值通常是指從data出發(fā)歸納的。不過(guò)它們的關(guān)系確實(shí)非常密切。
統(tǒng)計(jì)學(xué)習(xí)在很多情況下,就是求平均值
我們平常說(shuō)去Learn一個(gè)model——其實(shí),在很多情況下,這就是干一件聽(tīng)上去很簡(jiǎn)單的事情,求平均值。我們知道,我們所接觸的大部分 重要的概率分布,都屬于exponential family,比如Gauss, Binomial, Multinomial, Dirichlet, Poisson, Exponential, Gamma等等分布都屬于這個(gè)家族。它的一個(gè)重要特點(diǎn)就是——得期望者得天下。就是說(shuō),知道了某些統(tǒng)計(jì)量的期望,就知道了整個(gè)model,至于model 的參數(shù),或者就是期望本身(比如Gauss),或者不難從期望中得到。可以證明,對(duì)于這些model,對(duì)它們的最大似然估計(jì)(Maximum Likelihood estimation),就是從data中算出某些統(tǒng)計(jì)量的平均值作為model的期望。
在Bayes學(xué)習(xí)中,我們還考慮先驗(yàn)分布(prior)。在這里,model的估計(jì)還是求平均值。所謂prior是怎么來(lái)的?就是以前 曾經(jīng)觀察過(guò)的data那里總結(jié)得到的,然后以prior的形式影響當(dāng)前的model估計(jì)。一般而言,使用exponential family,我們通常會(huì)使用conjugate prior,這種prior,基本就是沿著剛才說(shuō)的,假想我們已經(jīng)看過(guò)一些data的思路得到的,它的形式和data mean幾乎如出一轍。而帶了prior的估計(jì),還是在求平均值,不過(guò)這里的平均值就是(假想)以前觀察過(guò)的數(shù)據(jù)和當(dāng)前的數(shù)據(jù)合在一起求平均。
對(duì)于更加復(fù)雜的Graphical model,每個(gè)節(jié)點(diǎn)的estimate和update,很多時(shí)候,其實(shí)是做了這樣的事情——把其它節(jié)點(diǎn)傳來(lái)的平均值和這個(gè)節(jié)點(diǎn)接觸的數(shù)據(jù)的平均值混合進(jìn) 行新的平均。從最簡(jiǎn)單的Gauss, 到更加復(fù)雜的Gaussian Mixture Model, Latent Dirichlet Allocation, Markov Random Field, Generalized Kalman Filtering概莫能外——大家可以仔細(xì)看看它們的每一個(gè)update公式,看看哪個(gè)不是在求平均值。
怎樣求平均值
平均值是很重要的。不過(guò)怎么求呢?這似乎是小學(xué)初中就解決了的問(wèn)題。不過(guò),求平均值的世界其實(shí)是如此博大精深。如果說(shuō)它是少林武學(xué),我現(xiàn)在這點(diǎn)水平,也就夠在嵩山下掃掃地罷了。很多在世界上赫赫有名的數(shù)學(xué)家,窮畢生心血,方能一窺堂奧。
雖然,只有掃地的水平,不過(guò)起碼也看過(guò)大師們練武。這門學(xué)問(wèn)主要有兩個(gè)方面:得到data求平均值,得到model求期望。
先說(shuō)說(shuō)求data的平均值。這太簡(jiǎn)單了,有什么好說(shuō)的。不就是加法和乘法么,小學(xué)學(xué)過(guò)算術(shù)的人都會(huì)算,即使沒(méi)學(xué)過(guò),拿個(gè)計(jì)算器也照樣算。在 通常的實(shí)數(shù)空間內(nèi),確實(shí)很簡(jiǎn)單;不過(guò)對(duì)于一般的求平均值的情況,就非常非常困難了。一般來(lái)說(shuō),求平均值有兩個(gè)流派,一種是基于線性代數(shù)(linear algebra),另外一種是基于度量空間(metric space)。前面一種大家很熟悉:
m = (x1 + x2 + ... + xn) * (1/n)。
這是我們讀了這么多年書(shū)最常見(jiàn)的平均值。不過(guò),這樣定義太局限了,它要求這些東西能做加法和數(shù)乘——我不得不說(shuō),這個(gè)要求實(shí)在太高,只有線性空間 (這種空間是數(shù)學(xué)里面的貴族,它們什么好處都全了)能夠滿足——對(duì)于數(shù)學(xué)領(lǐng)域更廣大的人民群眾(各種更一般的數(shù)學(xué)結(jié)構(gòu),比如群,拓?fù)淞餍危臃ê蛿?shù)乘簡(jiǎn) 直是一種奢侈得不切實(shí)際的活動(dòng)。
其實(shí)平均值是一個(gè)非常廣泛的概念,不僅僅存在于線性空間中,還為廣大人民群眾服務(wù)。對(duì)于某個(gè)度量空間,它的一般性定義是這么給出的
使得 d(m, x1) + d(m, x2) + ... + d(m, xn) 最小的那個(gè)m
也就是說(shuō),求平均值是一個(gè)優(yōu)化問(wèn)題。關(guān)于這個(gè)問(wèn)題,在不同的空間中有不同的答案:在最高級(jí)的希爾伯特空間中(定義了內(nèi)積的完備線性空間),m就是上 面給出的基于線性代數(shù)的形式。所以說(shuō),基于線性代數(shù)的定義僅僅是基于度量空間的定義的一個(gè)特例。不過(guò)由于這個(gè)特例被廣泛使用,所以大家一說(shuō)平均值就想起 它,而不是一般形式。在推廣一些的巴拿赫空間中(定義了范數(shù)的完備線性空間),上述的問(wèn)題是一個(gè)凸優(yōu)化問(wèn)題,因?yàn)榉稊?shù)必然是凸函數(shù)。它具有唯一的最優(yōu)解。
最困難的是在非線性空間中。一個(gè)典型的例子是黎曼流形(注意,這里我們只討論黎曼流形,對(duì)于更為一般的拓?fù)淞餍位蛘呶⒎至餍危驗(yàn)椴痪哂? 度量結(jié)構(gòu),所以不能定義均值。)在黎曼流形上,兩點(diǎn)間的距離是通過(guò)測(cè)地距離給出的。在黎曼流形上,通過(guò)測(cè)地距離定義的平均值,叫做黎曼中心。一部分朋友對(duì) 于這幾個(gè)術(shù)語(yǔ)可能不太熟悉,還是舉個(gè)形象點(diǎn)的例子。比如,在地球上給出幾個(gè)地點(diǎn),你要在地面上找一個(gè)“平均地點(diǎn)”,使得它到那幾個(gè)地點(diǎn)的“地面距離”的平 方和最小。如果,用傳統(tǒng)的算術(shù)方法拿這些地點(diǎn)的三維坐標(biāo)來(lái)算,你估計(jì)得在那鉆個(gè)油井了。對(duì)于“球面平均”問(wèn)題(專門一點(diǎn)的說(shuō)法叫做特殊正交群SO(3)的 黎曼中心,恩,這個(gè)名詞我也有點(diǎn)暈),到了在本世紀(jì),在數(shù)學(xué)里依舊可以發(fā)paper,目前還沒(méi)有一般情況下的解析解。
別的領(lǐng)域我不懂,不過(guò)“球面平均”在vision里面價(jià)值是很大的,它是對(duì)三維旋轉(zhuǎn)變換建立統(tǒng)計(jì)模型的基礎(chǔ)——我們?cè)僖淮慰吹搅饲笃骄? 值對(duì)于統(tǒng)計(jì)的重要意義。球面平均求的是“平均”的旋轉(zhuǎn),如果對(duì)于一般的仿射變換(Affiine transform),“平均”的變換又怎么求呢?這是個(gè)open problem,留待大家思考。
怎樣求期望
說(shuō)完從data求平均值,再說(shuō)說(shuō)從model得到期望(expectation)——這們學(xué)問(wèn)就更博大了。雖然,期望的定義很簡(jiǎn)單——求和或者積分就行了。不過(guò),它的實(shí)際計(jì)算,對(duì)于很多實(shí)際模型是intractable的。
概率論最早源于擲色子,我們的前輩數(shù)學(xué)家們?yōu)榱似平馇髲?fù)雜模型求期望的問(wèn)題,提出的方法就是擲色子。在學(xué)術(shù)上,美其名曰“蒙特卡羅方法”(Monte Carlo)。原理很簡(jiǎn)單,不斷地?cái)S色子來(lái)大量采樣,然后從采來(lái)的樣本求平均值來(lái)逼近模型的期望。
擲色子是世界上最有學(xué)問(wèn)的之一,正因?yàn)槿绱耍覀儗?duì)于“賭神”,“賭王”之類的人物崇拜猶如滔滔江水,因?yàn)樗鼈償S色子擲得好。無(wú)數(shù)的統(tǒng)計(jì)學(xué)家把畢生經(jīng)歷奉獻(xiàn)給擲色子(采樣)事業(yè),并且做出偉大成就。關(guān)于采樣的專著和文獻(xiàn),汗牛充棟。
擲色子就這么難么?是的。據(jù)估算,即使對(duì)于一個(gè)復(fù)雜度不高的model,要得到一個(gè)可以接受的估計(jì),所需的樣本量往往大得驚人,而且指數(shù)增 長(zhǎng)。如果不掌握要領(lǐng),你即使擲到宇宙末日,估計(jì)離一個(gè)靠譜的估計(jì)還遠(yuǎn)著呢。采樣技術(shù)名目繁多,最流行的莫過(guò)于重要性采樣(importance sampling)和馬爾科夫鏈蒙特卡羅過(guò)程(MCMC)。具體就不多說(shuō)了。
http://dahua.spaces.live.com/blog/cns!28AF4251DF30CA42!2489.entry
7月9日
Learning中的代數(shù)結(jié)構(gòu)的建立
Learning是一個(gè)融會(huì)多種數(shù)學(xué)于一體的領(lǐng)域。說(shuō)起與此有關(guān)的數(shù)學(xué)學(xué)科,我們可能會(huì)迅速聯(lián)想到線性代數(shù)以及建立在向量空間基礎(chǔ)上的統(tǒng)計(jì)模型——事實(shí)上,主流的論文中確實(shí)在很大程度上基于它們。
R^n (n-維實(shí)向量空間) 是我們?cè)趐aper中見(jiàn)到最多的空間,它確實(shí)非常重要和實(shí)用,但是,僅僅依靠它來(lái)描述我們的世界并不足夠。事實(shí)上,數(shù)學(xué)家們給我們提供了豐富得多的工具。
“空間”(space),這是一個(gè)很有意思的名詞,幾乎出現(xiàn)在所有的數(shù)學(xué)分支的基礎(chǔ)定義之中。歸納起來(lái),所謂空間就是指一個(gè)集合以及在上面定義的某種數(shù)學(xué)結(jié)構(gòu)。關(guān)于這個(gè)數(shù)學(xué)結(jié)構(gòu)的定義或者公理,就成為這個(gè)數(shù)學(xué)分支的基礎(chǔ),一切由此而展開(kāi)。
還是從我們最熟悉的空間——R^n 說(shuō)起吧。大家平常使用這個(gè)空間的時(shí)候,除了線性運(yùn)算,其實(shí)還用到了別的數(shù)學(xué)結(jié)構(gòu),包括度量結(jié)構(gòu)和內(nèi)積結(jié)構(gòu)。
第 一,它是一個(gè)拓?fù)淇臻g(Topological space)。而且從拓?fù)鋵W(xué)的角度看,具有非常優(yōu)良的性質(zhì):Normal (implying Hausdorff and Regular), Locally Compact,
Paracompact, with Countable basis, Simply connected (implying connected
and path connected), Metrizable.
第二,它是一個(gè)度量空間(Metric
space)。我們可以計(jì)算上面任意兩點(diǎn)的距離。
第三,它是一個(gè)有限維向量空間(Finite dimensional space)。因此,我們可以對(duì)里面的元素進(jìn)行代數(shù)運(yùn)算(加法和數(shù)乘),我們還可以賦予它一組有限的基,從而可以用有限維坐標(biāo)表達(dá)每個(gè)元素。
第四,基于度量結(jié)構(gòu)和線性運(yùn)算結(jié)構(gòu),可以建立起分析(Analysis)體系。我們可以對(duì)連續(xù)函數(shù)進(jìn)行微分,積分,建立和求解微分方程,以及進(jìn)行傅立葉變換和小波分析。
第 五,它是一個(gè)希爾伯特空間(也就是完備的內(nèi)積空間)(Hilbert space, Complete inner product space)。它有一套很方便計(jì)算的內(nèi)積(inner product)結(jié)構(gòu)——這個(gè)空間的度量結(jié)構(gòu)其實(shí)就是從其內(nèi)積結(jié)構(gòu)誘導(dǎo)出來(lái)。更重要的,它是完備的(Complete)——代表任何一個(gè)柯西序列 (Cauchy
sequence)都有極限——很多人有意無(wú)意中其實(shí)用到了這個(gè)特性,不過(guò)習(xí)慣性地認(rèn)為是理所當(dāng)然了。
第六,它上面的線性映射構(gòu)成的算子空間仍舊是有限維的——一個(gè)非常重要的好處就是,所有的線性映射都可以用矩陣唯一表示。特別的,因?yàn)樗怯邢蘧S完備空間,它的泛函空間和它本身是同構(gòu)的,也是R^n。因而,它們的譜結(jié)構(gòu),也就可以通過(guò)矩陣的特征值和特征向量獲得。
第七,它是一個(gè)測(cè)度空間——可以計(jì)算子集的大小(面積/體積)。正因?yàn)榇耍覀儾趴赡茉谏厦娼⒏怕史植?distribution)——這是我們接觸的絕大多數(shù)連續(xù)統(tǒng)計(jì)模型的基礎(chǔ)。
我 們可以看到,這是一個(gè)非常完美的空間,為我們的應(yīng)用在數(shù)學(xué)上提供了一切的方便,在上面,我們可以理所當(dāng)然地認(rèn)為它具有我們希望的各種良好性質(zhì),而無(wú)須特別 的證明;我們可以直接使用它的各種運(yùn)算結(jié)構(gòu),而不需要從頭建立;而且很多本來(lái)不一樣的概念在這里變成等價(jià)的了,我們因此不再需要辨明它們的區(qū)別。
以此為界,Learning的主要工作分成兩個(gè)大的范疇:
這里只討論第一個(gè)范疇。先看看,目前用得比較廣泛的一些方法:
不過(guò),這在數(shù)學(xué)上有一點(diǎn)小問(wèn)題,在大部分情況下,根據(jù)數(shù)據(jù)產(chǎn)生的物理原理,這些向量的值域并不能 充滿整個(gè)空間。比如圖像的像素值一般是正值,而且在一個(gè)有界閉集之中。這帶來(lái)的問(wèn)題是,對(duì)它們進(jìn)行線性運(yùn)算很可能得到的結(jié)果會(huì)溢出正常的范圍——在大部分 paper中,可能只是采用某些heuristics的手段進(jìn)行簡(jiǎn)單處理,或者根本不管,很少見(jiàn)到在數(shù)學(xué)上對(duì)此進(jìn)行深入探討的——不過(guò)如果能解決實(shí)際問(wèn) 題,這也是無(wú)可厚非的,畢竟不是所有的工作都需要像純數(shù)學(xué)那樣追求嚴(yán)謹(jǐn)。
這樣做不可避免要丟失信息。但是,由于小鄰域內(nèi)信號(hào)的高度相關(guān),信息丟失的程度往往并不顯著。而且,從理論上說(shuō),這相當(dāng)于在頻域中的低通過(guò)率。對(duì)于有限能量的連續(xù)信號(hào),不可能在無(wú)限高的頻域中依然保持足夠的強(qiáng)度,只要采樣密度足夠,丟失的東西可以任意的少。
除了表示信號(hào),對(duì)于幾何形體的表達(dá)也經(jīng)常使用量化,比如表示curve和surface。
最簡(jiǎn)單的情況,就是使用原始向量表達(dá)的歐氏距離 (Euclidean distance)作為metric。不過(guò),由于原始表達(dá)數(shù)值的不同特性,這種方式效果一般不是特別好,未必能有效表達(dá)實(shí)際對(duì)象的相似性(或者不相似 性)。因此,很多工作會(huì)有再此基礎(chǔ)上進(jìn)行度量的二次建立。方式是多種多樣的,一種是尋求一個(gè)映射,把原空間的元素變換到一個(gè)新的空間,在那里歐氏距離變得 更加合適。這個(gè)映射發(fā)揮的作用包括對(duì)信息進(jìn)行篩選,整合,對(duì)某些部分進(jìn)行加強(qiáng)或者抑制。這就是大部分關(guān)于feature selection,feature extraction,或者subspace learning的文章所要做的。另外一種方式,就是直接調(diào)節(jié)距離的計(jì)算方式(有些文章稱之為metric learning)。
這兩種方式未必是不同的。如果映射是單射,那么它相當(dāng)于在原空間建立了一個(gè)不同的度量。反過(guò)來(lái),通過(guò)改變距離計(jì)算方式建立的度量在特定的條件下對(duì)應(yīng)于某種映射。
一種方法是直接建立。就是給這些東西定義自己的加法和數(shù)乘。這往往不是那么直接(能很容易建 立的線性運(yùn)算結(jié)構(gòu)早已經(jīng)被建立好并廣泛應(yīng)用了),可能需要涉及很深的數(shù)學(xué)知識(shí),并且要有對(duì)問(wèn)題本身的深入了解和數(shù)學(xué)上的洞察力。不過(guò),一個(gè)新的代數(shù)結(jié)構(gòu)一 旦建立起來(lái),其它的數(shù)學(xué)結(jié)構(gòu),包括拓?fù)洌攘浚治觯约皟?nèi)積結(jié)構(gòu)也隨之能被自然地誘導(dǎo)出來(lái),我們也就具有了對(duì)這個(gè)對(duì)象空間進(jìn)行各種數(shù)學(xué)運(yùn)算和操作的基 礎(chǔ)。加法和數(shù)乘看上去簡(jiǎn)單,但是如果我們對(duì)于本來(lái)不知道如何進(jìn)行加法和數(shù)乘的空間建立了這兩樣?xùn)|西,其理論上的貢獻(xiàn)是非常大的。
(一個(gè) 小問(wèn)題:大家常用各種graphical model,但是,每次這些model都是分別formulate,然后推導(dǎo)出estimation和evaluation的步驟方法。是否可能 對(duì)"the space of graphical model"或者它的某個(gè)特定子集建立某種代數(shù)結(jié)構(gòu)呢?(不一定是線性空間,比如群,環(huán),廣群, etc)從而使得它們?cè)诖鷶?shù)意義上統(tǒng)一起來(lái),而相應(yīng)的estimation或者evaluation也可以用過(guò)代數(shù)運(yùn)算derive。這不是我的研究范 圍,也超出了我目前的能力和知識(shí)水平,只是我相信它在理論上的重要意義,留作一個(gè)遠(yuǎn)景的問(wèn)題。事實(shí)上,數(shù)學(xué)中確實(shí)有一個(gè)分支叫做 Algebraic statistics 可能在探討類似的問(wèn)題,不過(guò)我現(xiàn)在對(duì)此了解非常有限。)
“嵌入”是一種在數(shù)學(xué)上應(yīng)用廣泛的手段,其主要目標(biāo)就是通過(guò)嵌入到一個(gè)屬性良好,結(jié)構(gòu)豐富的空間,從而利 用其某種結(jié)構(gòu)或者運(yùn)算體系。在拓?fù)鋵W(xué)中,嵌入到metric space是對(duì)某個(gè)拓?fù)淇臻g建立度量的重要手段。而在這里,我們是已有度量的情況下,通過(guò)嵌入獲取線性運(yùn)算的結(jié)構(gòu)。除此以來(lái),還有一種就是前些年比較熱的 manifold embedding,這個(gè)是通過(guò)保持局部結(jié)構(gòu)的嵌入,獲取全局結(jié)構(gòu),后面還會(huì)提到。
在很多教科書(shū)中,以二 次核為例子,把二維空間變成三維,然后告訴大家kernel用于升維。對(duì)于這種說(shuō)法,我一直認(rèn)為在一定程度上是誤導(dǎo)的。事實(shí)上,kernel的最首要意義 是內(nèi)積的建立(或者改造),從而誘導(dǎo)出更利于表達(dá)的度量和運(yùn)算結(jié)構(gòu)。對(duì)于一個(gè)問(wèn)題而言,選擇一個(gè)切合問(wèn)題的kernel比起關(guān)注“升維”來(lái)得更為重要。
kernel被視為非線性化的重要手段,用于處理非高斯的數(shù)據(jù)分布。這是有道理的。通過(guò)nonlinear kernel改造的內(nèi)積空間,其結(jié)構(gòu)和原空間的結(jié)構(gòu)確實(shí)不是線性關(guān)聯(lián),從這個(gè)意義上說(shuō),它實(shí)施了非線性化。不過(guò),我們還應(yīng)該明白,它的最終目標(biāo)還是要回到 線性空間,新的內(nèi)積空間仍舊是一個(gè)線性空間,它一旦建立,其后的運(yùn)算都是線性的,因此,kernel的使用就是為了尋求一個(gè)新的線性空間,使得線性運(yùn)算更 加合理——非線性化的改造最終仍舊是要為線性運(yùn)算服務(wù)。
值得一提的是,kernelization本質(zhì)上說(shuō)還是一種嵌入過(guò)程:對(duì)于一個(gè)空間先建立內(nèi)積結(jié)構(gòu),并且以保持內(nèi)積結(jié)構(gòu)不變的方式嵌入到一個(gè)高維的線性空間,從而繼承其線性運(yùn)算體系。
從拓?fù)鋵W(xué)的角度說(shuō),流形就是一個(gè)非常優(yōu)良的拓?fù)淇臻g:符合Hausdorff分離公理(任何不同的兩點(diǎn)都可以通過(guò)不相交的鄰域分 離),符合第二可數(shù)公理(具有可數(shù)的拓?fù)浠⑶腋匾氖牵植客哂赗^n。因此,一個(gè)正則(Regular)流形基本就具有了各種最良好的拓?fù)涮?性。而局部同胚于R^n,代表了它至少在局部上可以繼承R^n的各種結(jié)構(gòu),比如線性運(yùn)算和內(nèi)積,從而建立分析體系。事實(shí)上,拓?fù)淞餍卫^承這些結(jié)構(gòu)后形成的 體系,正是現(xiàn)代流形理論研究的重點(diǎn)。繼承了分析體系的流形,就形成了微分流形(Differential manifold),這是現(xiàn)代微分幾何的核心。而微分流形各點(diǎn)上的切空間(Tangent Space),則獲得了線性運(yùn)算的體系。而進(jìn)一步繼承了局部?jī)?nèi)積結(jié)構(gòu)的流形,則形成黎曼流形(Riemann manifold),而流形的全局度量體系——測(cè)地距離(geodesics)正是通過(guò)對(duì)局部度量的延伸來(lái)獲得。進(jìn)一步的,當(dāng)流行本身的拓?fù)浣Y(jié)構(gòu)和切空間 上的線性結(jié)構(gòu)發(fā)生關(guān)系——也就獲得一簇拓?fù)潢P(guān)聯(lián)的線性空間——向量叢(Vector bundle)。
雖然manifold theory作為現(xiàn)代幾何學(xué)的核心,是一個(gè)博大精深的領(lǐng)域,但是它在learning中的應(yīng)用則顯得非常狹窄。事實(shí)上,對(duì)于manifold,很多做 learning的朋友首先反應(yīng)的是ISOMAP, LLE, eigenmap之類的算法。這些都屬于embedding。當(dāng)然,這確實(shí)是流形理論的一個(gè)重要方面。嚴(yán)格來(lái)說(shuō),這要求是從原空間到其映像的微分同胚映 射,因此,嵌入后的空間在局部上具有相同的分析結(jié)構(gòu),同時(shí)也獲得了各種好處——全局的線性運(yùn)算和度量。不過(guò),這個(gè)概念在learning的應(yīng)用中被相當(dāng)程 度的放寬了——微分同胚并不能被完全保證,而整個(gè)分析結(jié)構(gòu)也不能被完全保持。大家更關(guān)注的是保持局部結(jié)構(gòu)中的某個(gè)方面——不過(guò)這在實(shí)際應(yīng)用中的折衷方案也 是可以理解的。事實(shí)表明,當(dāng)原空間中的數(shù)據(jù)足夠密集的情況下,這些算法工作良好。
Learning中流形應(yīng)用的真正問(wèn)題在于它被過(guò)濫地 運(yùn)用于稀疏空間(Sparse space),事實(shí)上在高維空間中撒進(jìn)去幾千乃至幾十萬(wàn)點(diǎn),即使最相鄰的幾點(diǎn)也難稱為局部了,局部的范圍和全局的范圍其實(shí)已經(jīng)沒(méi)有了根本差別,連局部的概 念都立不住腳的時(shí)候,后面基于其展開(kāi)的一切工作也都沒(méi)有太大的意義。事實(shí)上,稀疏空間有其本身的規(guī)律和法則,通過(guò)局部形成全局的流形思想從本質(zhì)上是不適合 于此的。雖然,流形是一種非常美的理論,但是再漂亮的理論也需要用得其所——它應(yīng)該用于解決具有密集數(shù)據(jù)分布的低維空間。至于,一些paper所報(bào)告的在 高維空間(比如人臉)運(yùn)用流形方法獲得性能提升,其實(shí)未必是因?yàn)?#8220;流形”本身所起的作用,而很可能是其它方面的因素。
李代數(shù)和李 群的關(guān)系是非常漂亮的。它把變換的微變化轉(zhuǎn)換成了線性空間的代數(shù)運(yùn)算,使得移植傳統(tǒng)的基于線性空間的模型和算法到李空間變得可能。而且李代數(shù)中的矩陣比起 變換本身的矩陣甚至更能反映變換的特性。幾何變換的李代數(shù)矩陣的譜結(jié)構(gòu)就能非常方便地用于分析變換的幾何特性。
最后,回頭總結(jié)一下關(guān)于 嵌入這個(gè)應(yīng)用廣泛的策略,在learning中的isometry, kernel和manifold embedding都屬于此范疇,它們分別通過(guò)保持原空間的度量結(jié)構(gòu),內(nèi)積結(jié)構(gòu)和局部結(jié)構(gòu)來(lái)獲得到目標(biāo)(通常是向量空間)的嵌入,從而獲得全局的坐標(biāo)表 達(dá),線性運(yùn)算和度量,進(jìn)而能被各種線性算法和模型所應(yīng)用。
在獲得這一系列好處的同時(shí),也有值得我們注意的地方。首先,嵌入只是一種數(shù)學(xué) 手段,并不能取代對(duì)問(wèn)題本身的研究和分析。一種不恰當(dāng)?shù)脑冀Y(jié)構(gòu)或者嵌入策略,很多時(shí)候甚至適得其反——比如稀疏空間的流形嵌入,或者選取不恰當(dāng)?shù)?kernel。另外,嵌入適合于分析,而未必適合于重建或者合成。這是因?yàn)榍度胧且粋€(gè)單射(injection),目標(biāo)空間不是每一個(gè)點(diǎn)都和原空間能有效 對(duì)應(yīng)的。嵌入之后的運(yùn)算往往就打破了原空間施加的限制。比如兩個(gè)元素即使都是從原空間映射過(guò)來(lái),它們的和卻未必有原像,這時(shí)就不能直接地回到原空間了。當(dāng) 然可以考慮在原空間找一個(gè)點(diǎn)它的映射與之最近,不過(guò)這在實(shí)際中的有效性是值得商榷的。
和Learning有關(guān)的數(shù)學(xué) 世界是非常廣博的,我隨著學(xué)習(xí)和研究的深入,越來(lái)越發(fā)現(xiàn)在一些我平常不注意的數(shù)學(xué)分支中有著適合于問(wèn)題的結(jié)構(gòu)和方法。比如,廣群(groupoid)和廣 代數(shù)(algebroid)能克服李群和李代數(shù)在表示連續(xù)變換過(guò)程中的一些困難——這些困難困擾了我很長(zhǎng)時(shí)間。解決問(wèn)題和建立數(shù)學(xué)模型是相輔相成的,一方 面,一個(gè)清晰的問(wèn)題將使我們有明確的目標(biāo)去尋求合適的數(shù)學(xué)結(jié)構(gòu),另一方面,對(duì)數(shù)學(xué)結(jié)構(gòu)的深入理解對(duì)于指導(dǎo)問(wèn)題的解決也是有重要作用的。對(duì)于解決一個(gè)問(wèn)題來(lái) 說(shuō),數(shù)學(xué)工具的選擇最重要的是適合,而不是高深,但是如果在現(xiàn)有數(shù)學(xué)方法陷入困難的時(shí)候,尋求更高級(jí)別的數(shù)學(xué)的幫助,往往能柳暗花明。數(shù)學(xué)家長(zhǎng)時(shí)間的努力 解決的很多問(wèn)題,并不都是理論游戲,他們的解決方案中很多時(shí)候蘊(yùn)含著我們需要的東西,而且可能導(dǎo)致對(duì)更多問(wèn)題的解決——但是我們需要時(shí)間去學(xué)習(xí)和發(fā)現(xiàn)它 們。