FCN(2)——CRF通俗非嚴(yán)謹(jǐn)?shù)娜腴T 前面我們簡單介紹了FCN——這個(gè)將High-Level任務(wù)轉(zhuǎn)到Low-Level任務(wù)的模型。這里的High和Low并不是我們通常意義中的High和Low,兩種任務(wù)并沒有高低之分,但是兩種任務(wù)實(shí)際上需要的技術(shù)還是有所不同的。CNN模型從High-Level任務(wù)起家,直接將它們放到Low-Level的任務(wù)中還是有些“水土不服”,于是乎,大神們想出了用概率圖模型來補(bǔ)充這些細(xì)粒度的任務(wù)。 由于在這個(gè)專欄中我們還沒有介紹概率圖模型的基本內(nèi)容,這一篇我們簡單介紹下概率圖模型和CRF的基本概念,為后面的內(nèi)容做鋪墊。 無向圖模型 想了解無向圖模型,先要了解無向圖的特點(diǎn)。無向圖和有向圖有什么區(qū)別呢?不用說,就是方向嘛。那么有方向會(huì)有什么好處呢?當(dāng)然就是整個(gè)概率圖中概率或者信念(belief)的流動(dòng)性。在有向圖模型中,每一個(gè)小部分可以看作是一個(gè)CPD,也就是Conditional Probablistic Distribution。這樣的局部條件概率是很有用的,但是對(duì)于無向圖來說,沒有了方向也就喪失了這樣的優(yōu)勢。 沒有方向的無向圖也就沒法擁有CPD了,但是無向圖模型還是有自己的辦法。無向圖模型一個(gè)個(gè)小部分被稱作Factor,像CPD一樣,F(xiàn)actor也可以表示成tabular的形式。也就是對(duì)于幾個(gè)隨機(jī)變量,我們隨機(jī)變量的某個(gè)賦值會(huì)對(duì)應(yīng)一個(gè)實(shí)數(shù)。但是factor有一個(gè)特點(diǎn),那就是一個(gè)factor內(nèi)容沒有和為1的約束。 沒有和為1的約束?Are you kidding?當(dāng)然不是kidding。如果我們想求解概率還是有方法的,那就是把所有的Factor像有向圖模型的貝葉斯網(wǎng)絡(luò)那樣都乘起來,再做一個(gè)歸一化。我們就得到了總體的聯(lián)合概率。得到了聯(lián)合概率,就不用擔(dān)心得到那些marginal probabilities和conditional probabilities了。這樣無向圖模型和有向圖模型又走到同一起跑線。 那么問題又來了?為什么無向圖模型不像有向圖模型學(xué)習(xí),也用CPD表示一個(gè)個(gè)的子部分,而要使用一個(gè)新東西呢?實(shí)際上有向圖模型并不能夠表示所有的真實(shí)場景,有向圖模型通常需要一個(gè)有順序的推斷過程,其中的一些依賴關(guān)系和獨(dú)立關(guān)系是有限制的,而無向圖模型就沒那么多限制了。所以說無向圖模型可以對(duì)更多的問題進(jìn)行建模。但是放棄了方向,也就意味著放棄了條件依賴和一些條件獨(dú)立的特性,于是我們只能用Factor的形式進(jìn)行表示。 當(dāng)然Factor也有自己的好處,因?yàn)闆]有和為1的限制,所以整體上它的數(shù)值要求不是那么嚴(yán)格。但是它也有自己的壞處,那就是我們從Factor的Tabular形式中想讀出一些有價(jià)值的信息是比較困難的。這個(gè)困難有兩個(gè)方面: 首先,因?yàn)椴痪哂泻蜑?的限制,所以我們想計(jì)算聯(lián)合概率就比較抽象。這個(gè)大家去看幾個(gè)真實(shí)的Factor就能明白了。再看看貝葉斯網(wǎng)絡(luò)的CPD,你就會(huì)感慨還是CPD寫的清楚啊。 其次,F(xiàn)actor的Tabular中記述的一些關(guān)系和全局狀態(tài)下的一些關(guān)系有時(shí)是相反的。我們具體看某個(gè)Factor時(shí),會(huì)覺得這些隨機(jī)變量更有可能產(chǎn)生某幾個(gè)數(shù)值,但是如果我們站在全局觀察,把聯(lián)合概率計(jì)算出來再去計(jì)算marginal probability,就會(huì)發(fā)生局部的關(guān)系可能是錯(cuò)誤的。而CPD在這方面具有優(yōu)勢,局部的概率放在全局還是合理的。 說實(shí)話前面的知識(shí)量還是有點(diǎn)大,但是上面的就是無向圖模型的基礎(chǔ),總結(jié)起來就是這些。 Gibbs Distribution Gibbs Distribution就是利用Factor表示的無向圖模型的概率分布,Gibbs Distribution的表示形式如下所示: 這也就是利用無向圖模型表示聯(lián)合概率的方式。 Log-Linear Model 上面的Gibbs Distribution實(shí)際上已經(jīng)可以用了,但是它并不是十分好用。為什么呢?因?yàn)槊恳粋€(gè)Factor實(shí)際上還是需要采用Tabular的形式進(jìn)行表達(dá),這對(duì)我們建模還是個(gè)不小的負(fù)擔(dān)。所以我們需要將這個(gè)形式進(jìn)行一定的轉(zhuǎn)換。 我們重新定義Factor: 我們把 稱作Factor function,把 稱作Energy Function。在物理學(xué)中,能量越大的物質(zhì)存在的概率越小,這樣也可以解釋這個(gè)嶄新登場的函數(shù)。 為什么要定義這個(gè)函數(shù)呢?我們知道Factor function中的每一項(xiàng)都需要是非負(fù)的,這個(gè)限制也會(huì)對(duì)我們的建模造成困擾,因此利用指數(shù),我們的Energy Function擺脫了非負(fù)數(shù)的限制,現(xiàn)在變得可正可負(fù)。 另外一個(gè)十分重要的特性,是我們把原來的乘法關(guān)系變成了加法關(guān)系。我們現(xiàn)在有 變成加法關(guān)系對(duì)我們建模求解來說都是一個(gè)令人興奮的事情,因?yàn)榧臃ǖ年P(guān)系更利于求導(dǎo)化簡。當(dāng)然,模型形式到了這一步還不夠,我們還要做進(jìn)一步的化簡,那就是引入Feature這個(gè)概念。 我們知道Factor的一般形式是Tabular的形式,但是很多時(shí)候我們的Tabular實(shí)際上是比較稀疏的。雖然參與一個(gè)Factor的隨機(jī)變量很多,但是真正有意義的關(guān)系其實(shí)沒幾個(gè)。所以我們希望放棄Tabular的形式,轉(zhuǎn)而使用Feature的形式進(jìn)行表示,說白了就是盡可能地合并相同結(jié)果的表示條件。這樣的話Factor的表示就會(huì)簡潔很多。 于是我們就完成線性模型的構(gòu)建。 CRF CRF的全稱是Conditional Random Field。它的形式如下所示: 可以看出,條件隨機(jī)場在建模的時(shí)候同樣需要計(jì)算聯(lián)合概率,只不過這一次參與計(jì)算的有兩部分隨機(jī)變量——X和Y。一般來說,我們把X稱作觀察變量,也就是已知的變量;Y稱作目標(biāo)變量或者隱含變量,是我們想知道的變量。 比方說圖像分割的問題,X就是圖像的像素,Y就是每個(gè)像素所歸屬的類別。當(dāng)然對(duì)于二維的圖像問題還是有點(diǎn)復(fù)雜,那么我們用一個(gè)簡單的一維問題做了例子:比方說自然語言處理中的詞性標(biāo)注問題,那么它的建模形式如下所示: 總結(jié) 如果你在讀這篇文章之前并不了解CRF,那么我相信這篇文章并不能讓你對(duì)CRF有很深的印象,但是多多少少會(huì)有點(diǎn)了解。總體來說,采用無向圖模型建模的CRF具有很強(qiáng)的靈活性和適應(yīng)性,但是計(jì)算起來卻不那么容易。所有的inference必須從求解聯(lián)合概率入手,而且還要計(jì)算normalization那一項(xiàng)。所以計(jì)算是無向圖模型的難題,后面我們也會(huì)深入計(jì)算這個(gè)問題,試圖解決難以計(jì)算這個(gè)問題。 |
|