全連接條件隨機場(DenseCRF)
對於每個像素i具有類別標籤xi還有對應的觀測值yi,這樣每個像素點作爲節點,像素與像素間的關係作爲邊,即構成了一個條件隨機場。而且我們通過觀測變量yi來推測像素i對應的類別標籤xi。條件隨機場如下:
條件隨機場符合吉布斯分佈:(此處的x即上面說的觀測值)
其中的E(x|I)是能量函數,爲了簡便,以下省略全局觀測I:
其中的一元勢函數∑iΨu(xi)即來自於前端FCN的輸出。而二元勢函數如下:
二元勢函數就是描述像素點與像素點之間的關係,鼓勵相似像素分配相同的標籤,而相差較大的像素分配不同標籤,而這個“距離”的定義與顏色值和實際相對距離有關。所以這樣CRF能夠使圖片儘量在邊界處分割。而全連接條件隨機場的不同就在於,二元勢函數描述的是每一個像素與其他所有像素的關係,所以叫“全連接”。
關於這一堆公式大家隨意理解一下吧… …而直接計算這些公式是比較麻煩的(我想也麻煩),所以一般會使用平均場近似方法進行計算。而平均場近似又是一堆公式,這裏我就不給出了(我想大家也不太願意看),原意瞭解的同學直接看論文吧。
CRFasRNN
最開始使用DenseCRF是直接加在FCN的輸出後面,可想這樣是比較粗糙的。而且在深度學習中,我們都追求end-to-end的系統,所以CRFasRNN這篇文章將DenseCRF真正結合進了FCN中。這篇文章也使用了平均場近似的方法,因爲分解的每一步都是一些相乘相加的計算,和普通的加減(具體公式還是看論文吧),所以可以方便的把每一步描述成一層類似卷積的計算。這樣即可結合進神經網絡中,並且前後向傳播也不存在問題。當然,這裏作者還將它進行了迭代,不同次數的迭代得到的結果優化程度也不同(一般取10以內的迭代次數),所以文章才說是as
RNN。優化結果如下:
馬爾科夫隨機場(MRF)
在Deep Parsing Network中使用的是MRF,它的公式具體的定義和CRF類似,只不過作者對二元勢函數進行了修改:
其中,作者加入的λk爲label context,因爲uk只是定義了兩個像素同時出現的頻率,而λk可以對一些情況進行懲罰,比如,人可能在桌子旁邊,但是在桌子下面的可能性就更小一些。所以這個量可以學習不同情況出現的概率。而原來的距離d(i,j)只定義了兩個像素間的關係,作者在這兒加入了個triple penalty,即還引入了j附近的z,這樣描述三方關係便於得到更充足的局部上下文。具體結構如下:
這個結構的優點在於:
- 將平均場構造成了CNN
- 聯合訓練並且可以one-pass inference,而不用迭代
高斯條件隨機場(G-CRF)
這個結構使用CNN分別來學習一元勢函數和二元勢函數。這樣的結構是我們更喜歡的:
而此中的能量函數又不同於之前:
而當(A+λI)是對稱正定時,求E(x)的最小值等於求解:
而G-CRF的優點在於:
- 二次能量有明確全局
- 解線性簡便很多
感悟
- FCN更像一種技巧。隨着基本網絡(如VGG, ResNet)性能的提升而不斷進步。
- 深度學習+概率圖模型(GPM)是一種趨勢。其實DL說白了就是進行特徵提取,而GPM能夠從數學理論很好的解釋事物本質間的聯繫。
- 概率圖模型的網絡化。因爲GPM通常不太方便加入DL的模型中,將GPM網絡化後能夠是GPM參數自學習,同時構成end-to-end的系統。