1. 程式人生 > >【機器視覺】 概率模型與計算機視覺

【機器視覺】 概率模型與計算機視覺

 概率模型與計算機視覺”
林達華
美國麻省理工學院(MIT)博士

上世紀60年代, Marvin Minsky 在MIT讓他的本科學生 Gerald Jay Sussman用一個暑假的時間完成一個有趣的Project : “link a camera to a computer and get the computer to describe what it saw”。從那時開始,特別是David Marr教授於1977年正式提出視覺計算理論,計算機視覺已經走過了四十多年的歷史。可是,從今天看來,這個已入不惑之年的學科,依然顯得如此年輕而朝氣蓬勃。

在它幾十年的發展歷程中,多種流派的方法都曾各領風騷於一時。最近二十年中,計算機視覺發展最鮮明的特徵就是機器學習與概率模型的廣泛應用。在這裡,我簡單回顧一下對這個領域產生了重要影響的幾個里程碑:
● 1984年:Stuart Geman和Donald Geman發表了一篇先驅性的論文:Stochastic Relaxation, Gibbs Distributions, and the Bayesian Restoration of Images. 在這篇文章裡,兩位Geman先生引入了一系列對計算機視覺以後的發展具有深遠影響的概念和方法:Markov Random Field (MRF), Gibbs Sampling,以及Maximum a Posteriori estimate (MAP estimate)。這篇論文的意義是超前於時代的,它所建立的這一系列方法直到90年代中後期才開始被廣泛關注。
● 1991年:Matthew Turk和Alex Pentland使用Eigenface進行人臉分類。從此,以矩陣的代數分解為基礎的方法在視覺分析中被大量運用。其中有代表性的方法包括PCA, LDA,以及ICA。
● 1995年:Corinna Cortes和Vladimir Vapnik提出帶有soft margin的Support Vector Machine (SVM)以及它的Kernel版本,並用它對手寫數字進行分類。從此,SVM大受歡迎,併成為各種應用中的基準分類器。
● 1996年:Bruno Olshausen 和David Field 提出使用Overcomplete basis對影象進行稀疏編碼(Sparse coding)。這個方向在初期的反響並不熱烈。直到近些年,Compressed Sensing在訊號處理領域成為炙手可熱的方向。Sparse coding 在這一熱潮的帶動下,成為視覺領域一個活躍的研究方向。
● 90年代末:Graphical Model和Variational Inference逐步發展成熟。1998年,MIT出版社出版了由Michale Jordan主編的文集:Learning in Graphical Models。 這部書總結了那一時期關於Graphical Model的建模,分析和推斷的主要成果——這些成果為Graphical Model在人工智慧的各個領域的應用提供了方法論基礎。進入21世紀,Graphical Model和Bayesian方法在視覺研究中的運用出現了井噴式的增長。
● 2001年:John Lafferty和Andrew McCallum等提出Conditional Random Field (CRF)。CRF為結構化的分類和預測提供了一種通用的工具。此後,語義結構開始被運用於視覺場景分析。
● 2003年:David Blei等提出Latent Dirichlet Allocation。2004年:Yee Whye Teh 等提出Hierarchical Dirichlet Process。各種引數化或者非引數化的Topic Model在此後不久被廣泛用於語義層面的場景分析。
● 雖然Yahn Lecun等人在1993年已提出Convolutional Neural Network,但在vision中的應用效果一直欠佳。時至2006年,Geoffrey Hinton等人提出Deep Belief Network進行layer-wise的pretraining,應用效果取得突破性進展,其與之後Ruslan Salakhutdinov提出的Deep Boltzmann Machine重新點燃了視覺領域對於Neural Network和Boltzmann Machine的熱情。

時間進入2013年,Probabilistic Graphical Model早已成為視覺領域中一種基本的建模工具。Probabilistic Graphical Model的研究涉及非常多的方面。 限於篇幅,在本文中,我只能簡要介紹其中幾個重要的方面,希望能為大家提供一些有用的參考。

Graphical Model的基本型別
基本的Graphical Model 可以大致分為兩個類別:貝葉斯網路(Bayesian Network)和馬爾可夫隨機場(Markov Random Field)。它們的主要區別在於採用不同型別的圖來表達變數之間的關係:貝葉斯網路採用有向無環圖(Directed Acyclic Graph)來表達因果關係,馬爾可夫隨機場則採用無向圖(Undirected Graph)來表達變數間的相互作用。這種結構上的區別導致了它們在建模和推斷方面的一系列微妙的差異。一般來說,貝葉斯網路中每一個節點都對應於一個先驗概率分佈或者條件概率分佈,因此整體的聯合分佈可以直接分解為所有單個節點所對應的分佈的乘積。而對於馬爾可夫場,由於變數之間沒有明確的因果關係,它的聯合概率分佈通常會表達為一系列勢函式(potential function)的乘積。通常情況下,這些乘積的積分並不等於1,因此,還要對其進行歸一化才能形成一個有效的概率分佈——這一點往往在實際應用中給引數估計造成非常大的困難。

值得一提的是,貝葉斯網路和馬爾可夫隨機場的分類主要是為了研究和學習的便利。在實際應用中所使用的模型在很多時候是它們的某種形式的結合。比如,一個馬爾可夫隨機場可以作為整體成為一個更大的貝葉斯網路的節點,又或者,多個貝葉斯網路可以通過馬爾可夫隨機場聯絡起來。這種混合型的模型提供了更豐富的表達結構,同時也會給模型的推斷和估計帶來新的挑戰。

Graphical Model的新發展方向

在傳統的Graphical Model的應用中,模型的設計者需要在設計階段就固定整個模型的結構,比如它要使用哪些節點,它們相互之間如何關聯等等。但是,在實際問題中,選擇合適的模型結構往往是非常困難的——因為,我們在很多時候其實並不清楚資料的實際結構。為了解決這個問題,人們開始探索一種新的建立概率模型的方式——結構學習。在這種方法中,模型的結構在設計的階段並不完全固定。設計者通常只需要設定模型結構所需要遵循的約束,然後再從模型學習的過程中同時推斷出模型的實際結構。

結構學習直到今天仍然是機器學習中一個極具挑戰性的方向。結構學習並沒有固定的形式,不同的研究者往往會採取不同的途徑。比如,結構學習中一個非常重要的問題,就是如何去發現變數之間的內部關聯。對於這個問題,人們提出了多種截然不同的方法:比如,你可以先建立一個完全圖連線所有的變數,然後選擇一個子圖來描述它們的實際結構,又或者,你可以引入潛在節點(latent node)來建立變數之間的關聯。

Probabilistic Graphical Model的另外一個重要的發展方向是非引數化。與傳統的引數化方法不同,非引數化方法是一種更為靈活的建模方式——非引數化模型的大小(比如節點的數量)可以隨著資料的變化而變化。一個典型的非引數化模型就是基於狄利克萊過程(Dirichlet Process)的混合模型。這種模型引入狄利克萊過程作為部件(component)引數的先驗分佈,從而允許混合體中可以有任意多個部件。這從根本上克服了傳統的有限混合模型中的一個難題,就是確定部件的數量。在近幾年的文章中,非引數化模型開始被用於特徵學習。在這方面,比較有代表性的工作就是基於Hierarchical Beta Process來學習不定數量的特徵。

基於Graphical Model 的統計推斷 (Inference)
完成模型的設計之後,下一步就是通過一定的演算法從資料中去估計模型的引數,或推斷我們感興趣的其它未知變數的值。在貝葉斯方法中,模型的引數也通常被視為變數,它們和普通的變數並沒有根本的區別。因此,引數估計也可以被視為是統計推斷的一種特例。

除了最簡單的一些模型,統計推斷在計算上是非常困難的。一般而言,確切推斷(exact inference)的複雜度取決於模型的tree width。對於很多實際模型,這個複雜度可能隨著問題規模增長而指數增長。於是,人們退而求其次,轉而探索具有多項式複雜度的近似推斷(approximate inference)方法。

主流的近似推斷方法有三種:

(1)基於平均場逼近(mean field approximation)的variational inference。這種方法通常用於由Exponential family distribution所組成的貝葉斯網路。其基本思想就是引入一個computationally tractable的upper bound逼近原模型的log partition function,從而有效地降低了優化的複雜度。大家所熟悉的EM演算法就屬於這型別演算法的一種特例。

(2)Belief propagation。這種方法最初由Judea Pearl提出用於樹狀結構的統計推斷。後來人們直接把這種演算法用於帶環的模型(忽略掉它本來對樹狀結構的要求)——在很多情況下仍然取得不錯的實際效果,這就是loop belief propagation。在進一步的探索的過程中,人們發現了它與Bethe approximation的關係,並由此逐步建立起了對loopy belief propagation的理論解釋,以及刻畫出它在各種設定下的收斂條件。值得一提的是,由於Judea Pearl對人工智慧和因果關係推斷方法上的根本性貢獻,他在2011年獲得了電腦科學領域的最高獎——圖靈獎。

基於message passing的方法在最近十年有很多新的發展。Martin Wainwright在2003年提出Tree-reweighted message passing,這種方法採用mixture of trees來逼近任意的graphical model,並利用mixture coefficient和edge probability之間的對偶關係建立了一種新的message passing的方法。這種方法是對belief propagation的推廣。
Jason Johnson等人在2005年建立的walk sum analysis為高斯馬爾可夫隨機場上的belief propagation提供了系統的分析方法。這種方法成功刻畫了belief propagation在高斯場上的收斂條件,也是後來提出的多種改進型的belief propagation的理論依據。Thomas Minka在他PhD期間所建立的expectation propagation也是belief propagation的在一般Graphical Model上的重要推廣。

(3)蒙特卡羅取樣(Monte Carlo sampling)。與基於優化的方法不同,蒙特卡羅方法通過對概率模型的隨機模擬執行來收集樣本,然後通過收集到的樣本來估計變數的統計特性(比如,均值)。取樣方法有三個方面的重要優點。第一,它提供了一種有嚴謹數學基礎的方法來逼近概率計算中經常出現的積分(積分計算的複雜度隨著空間維度的提高呈幾何增長)。第二,取樣過程最終獲得的是整個聯合分佈的樣本集,而不僅僅是對某些引數或者變數值的最優估計。這個樣本集近似地提供了對整個分佈的更全面的刻畫。比如,你可以計算任意兩個變數的相關係數。第三,它的漸近特性通常可以被嚴格證明。對於複雜的模型,由variational inference或者belief propagation所獲得的解一般並不能保證是對問題的全域性最優解。在大部分情況下,甚至無法瞭解它和最優解的距離有多遠。如果使用取樣,只要時間足夠長,是可以任意逼近真實的分佈的。而且取樣過程的複雜度往往較為容易獲得理論上的保證。

蒙特卡羅方法本身也是現代統計學中一個非常重要的分支。對它的研究在過去幾十年來一直非常活躍。在機器學習領域中,常見的取樣方法包括Gibbs Sampling, Metropolis-Hasting Sampling (M-H), Importance Sampling, Slice Sampling, 以及Hamiltonian Monte Carlo。其中,Gibbs Sampling由於可以納入M-H方法中解釋而通常被視為M-H的特例——雖然它們最初的motivation是不一樣的。

Graphical Model以及與它相關的probabilistic inference是一個非常博大的領域,遠非本文所能涵蓋。在這篇文章中,我只能蜻蜓點水般地介紹了其中一些我較為熟悉的方面,希望能給在這方面有興趣的朋友一點參考。

Licence:
本文節選自林達華老師在中科院計算所的報告,轉載請註明原作者林達華老師。