如何評價 Vicarious 在 Science 上提出基於概率圖模型(PGM)的 RCN 模型?

問題中論文題目來自機器之心報道

https://mp.weixin.qq.com/s/jwdYAeCGleKRRiInY85bLw

文題 『A generative vision model that trains with high data efficiency and breaks text-based CAPTCHAs』

論文鏈接 A generative vision model that trains with high data efficiency and breaks text-based CAPTCHAs


目前只有一個回答,是否可以此推斷知乎CV界已經被深度學習佔領?

但是,在我的全球CV/AI群昨晚就此文炸開了鍋,由此將唱響傳統概率圖模型的崛起?

下個月有三篇paper due,沒有時間細讀此文,只是抓取關鍵詞地快速瀏覽了一下。

首先,抓取本文關於數學模型和演算法的關鍵詞:

RCN integrates and builds upon various ideas from compositional models— hierarchical composition, gradual building of invariances, blablabla into a structured probabilistic graphical model such that Belief Propagation can be used as the primary approximate inference engine.

Surfaces are modeled using a Conditional Random Field (CRF) which captures the smoothness of variations of surface properties.

We developed an approximate dynamic programming (DP) method that solves this in linear time.

簡單翻譯一下:

RCN把很多東西綜合起來,最後搞成一個概率圖模型,這樣置信傳播(BP)可以用來求解近似解。

表面用條件隨機場(Conditional Random Field)建模。

最後我們設計了一個近似動態規劃演算法,演算法複雜度是線性的。

因此,可以推斷,RCN本質是概率圖模型,演算法是動態規劃,message passing。

對此文感興趣的朋友,可以google以下關鍵詞,有助於理解:

MAP-MRF, MAP-CRF, Belief Propagation, Message Passing, Danamic Programming.

下面有選擇地梳理一下MRF、CRF建模和演算法的發展歷程及框架:

其中,MRF(Markov Random Field)和CRF是概率圖模型中的無向圖的情況,貝葉斯網路Bayesian network是有向圖(可以刻畫倆條邊w-v和v-w之間的不同處)。

https://www.slideshare.net/zukun/cvpr2010-higher-order-models-in-computer-vision-part-1-2

MRF核心意思就是簡化,如上圖左一,簡化成每個node(表示像素點)只和臨近的node有connection,而圖三則是最原始的情況,即每個點和其他所有點都有connection.

當然有更複雜的情況,例如圖像分割領域,convex prior(假設圖像每個分割的形狀是convex),以及connectivity prior(假設每個label的分割必須是聯通的),等等。

Carsten Rother關於MRF/CRF的暑期學校講座ppt:

MRFs and CRFs for Vision: Models Optimization

我的研究方向是用組合優化來做MRF,這個方向最經典的莫過於Yuri Boykov和Vladimir Kolmogorov的幾篇基於Graphcut(Network Flow中的最大流最小割定理)做圖像分割的文章:

https://de.mathworks.com/matlabcentral/fileexchange/40669-graph-cut-for-image-segmentation?focused=3852686tab=function

有哪些數學定理或者數學知識驚呆了你?

上面方法要完全work,只有在pairwise term(邊) 滿足submodular的特殊情況,比較苛刻。

並且在N個label(class)的情況,只能求得k=2的近似解。(是一種近似演算法,解釋見下鏈接)

【學界】整數規劃精確演算法/近似演算法/(元)啟發演算法/神經網路方反向傳播等演算法的區別與關聯

經典paper:Fast Approximate Energy Minimization via Graph Cuts

MRF模型的一般sudo表達式:

http://slideplayer.com/slide/8412077/

第一項是unary term, 用來表示這個節點屬於某個class的概率。

第二項pairwise term作為smooth piror。(平滑項,防止過擬合,類似與Lasso的規則項)

MRF本質是離散的,可以被建模成一個整數規劃問題:

【學界】離散/整數/組合/非凸優化概述及其在AI的應用

https://kislayvision.wordpress.com/2015/05/

但是由於整數規劃問題是NP難(演算法複雜度呈指數級)的,所以一般只求解其線性規劃鬆弛解(LP relaxation,演算法複雜度多項式時間)。

但是的但是,在計算機視覺領域,連LP都嫌慢!!!!(這樣我們搞運籌學的情何以堪)

因此,有學者研究出如BP、message passing,以及上面基於max flow(graphcut最大流演算法)等一系列解LP問題的替代方法,他們的優點就是--高效

PS:對PGM(概率圖模型),特別是離散概率圖模型、離散MRF感興趣的,可以關注下我最近倆個學期在海德堡大學開的相關seminar,裡面附了從上世紀80年代到最近深度學習時代的一系列重要的paper,以及部分學生的演講稿。

https://drive.google.com/drive/folders/0B-NDEl5vehB8dEJadmhPellyYWc

一些總結和展望

在深度學習流行之前,可以說計算機視覺是概率圖模型的天下。

因為它漂亮的數學理論以及衍生出來的一系列高效演算法。

但是深度學習出來了--簡單、粗暴,如同黑箱子。

它work well,但是大家不知道它為何work。

今天出來一個框架,明天調了個更好地參數,beat了benchmark,一篇頂會paper就出來了。

和許多CV的教授聊過,幾乎都說:「這年頭,不搞深度學習申不到funding。

Robin Shen:中國計算機視覺的前途在哪?機器視覺工程師又何去何從?

Heidelberg Collaboratory for Image Processing (HCI)以前也是概率圖模型的重地,開發了諸如Multicut這樣的有用模型,此文作者之一便是HCI Fred A. Hamprecht的博士畢業生。

HCI最近引進了微軟劍橋資深科學家Carsten Rother,在其lanch party上聊之,發現也轉到DL了。

但是值得慶幸的是,他們通常把DL作為概率圖模型的預處理,算出pixel屬於某類class或edge是否處於boundary的probability map,然後基於這些數據,求解MAP-MRF或MAP-CRF。

例如我最近細讀的這篇做semantic classification和segmentation的CVPR2018 paper,beat了基於CNN的benchmark score:

InstanceCut: from Edges to Instances with MultiCut

我想,這些物理和數學家們,還是有一定自己的堅守的。

深度學習作為預處理,這個概念我在很多運籌學大牛教授那裡也聽過不止一次,其中包括和深度學習四大金剛之一Yoshua Bengio深度合作的Andea Lodi.

PGM will rise again!

以後有時間寫篇PGM的綜述和入門貼,會發布在以下專欄。

更多運籌學與人工智慧的結合,敬請關註:

[運籌帷幄]大數據和人工智慧時代下的運籌學


感覺很有意思,於是去看了這個論文,發現確實跟以往的CNN稍有區別。

最大的新意,在於應用了實驗神經科學的結論,哺乳動物(比如人)在識別物體的時候,大腦視覺皮層對於物體的輪廓(contour)和表面(surface)的識別,機制不一樣,並且是協同工作。

於是根據這個結論提出了新模型,遞歸皮層網路,Recursive Cortical Netowks,簡稱 RCN,這是一種整合了實驗神經科學結論的概率生成模型,但重點並不是說概率生成模型超越了神經網路;RCN 在局部還是會用到神經網路。

RCN 對於一個物體的輪廓和表面分別進行了建模。表面用的是條件隨機場(Conditional Random Field),輪廓用的是特徵組合層級結構(Compositional hierarchy of features),這些都是專有名詞。

這個模型的目的同樣在於提高計算機識別圖像中字母的準確度,最終目的是讓計算機像人一樣高效率地辨認任何圖像中的字母,正確處理字母的形狀扭曲、顏色變化、組合、遮擋等這些複雜情況。這個實驗的訓練和驗證對象,除了ImageNet等,還有各種網站的驗證碼。

除了準確率高,還有一個亮點,就是所用的數據量比 CNN 少得多,這對於提高數據使用效率也許是個很好的辦法。

總結起來,就是兩點:

  • 在結合實驗神經科學和機器智能的路上更進了一步
  • 提高機器學習演算法的數據使用效率,使其更接近人


PGM能夠達到這個程度不稀奇,而作者也是HTM的作者,是大牛。這篇文章能在《科學》上發表,有種圖模型要捲土重來的感覺;我覺得圖模型肯定要得到重視,因為它更擅長語義,而前饋深度學習網路更擅長感知提取特徵,二者結合必將迎來人工智慧的再一次小小的進步。


視覺求索公眾號上的介紹很詳細

http://mp.weixin.qq.com/s/e3c06On19arU2R5nPahm7w


測試結果不太理想,看測試結果拉到最後

vicariousinc/science_rcn

看到代碼第一時間想測試一下

但是mnist不能說明什麼問題,就想到了zalandoresearch/fashion-mnist

github上也有同學提到想測試一下rcn在fashion-mnist上的性能

Can you try to test fashion-mnist? · Issue #6 · vicariousinc/science_rcn

測試:

1. 按其要求抽取fashion-mnist到training和testing目錄,並保持label結構,腳本代碼如下

import os
import cv2
import numpy as np

from tqdm import tqdm

def convert(imgf, labelf, directory, n):
f = open(imgf, "rb")
l = open(labelf, "rb")

f.read(16)
l.read(8)

pbar = tqdm(total=n)
for i in range(n):
pbar.update(1)
label = ord(l.read(1))
image = []
for j in range(28*28):
image.append(ord(f.read(1)))
image = np.array(image).reshape((28, 28))
path = "%s/%s"%(directory, str(label))
if not os.path.exists(path):
os.makedirs(path)
name = "/%s.bmp"%str(i)
cv2.imwrite(path + name, image)
pbar.close()

f.close()
l.close()

convert("train-images-idx3-ubyte", "train-labels-idx1-ubyte", "training", 60000)
convert("t10k-images-idx3-ubyte", "t10k-labels-idx1-ubyte", "testing", 10000)

2. 執行測試

#修改run_experiment參數data_dir為fashion-mnist抽取的目錄
demobin@workstation:~/github/science_rcn$ python science_rcn/run.py --train_size 20 --test_size 20 --parallel
INFO:__main__:Training on 20 images...
INFO:__main__:Testing on 20 images...
Total test accuracy = 0.6

第一次,20x20準確率:0.6,官方提供的mnist準確率~60%

第二次,100x20準確率:0.7,官方提供的mnist準確率~90%

第三次,1000x10000準確率:0.7235,官方提供的mnist準確率~97.7%+


這都可以發Science……

另外,這應該是Vicarious在N年前搞出來的技術了,那時候CNN還沒有這麼火

(匿了


跑了下代碼,發現test比train慢很多。代碼在官方博客最後:https://www.vicarious.com/2017/10/26/common-sense-cortex-and-captcha/


覺得Yann Lecun2013年批評的有點過了:

聊一聊Vicarious發表在Science的那篇生成視覺模型,被LeCun痛批的遞歸皮質網路RCN


推薦閱讀:

為什麼Jarvis和Ultron同樣是Tony Stark創造出來的人工智慧,表現出的道德性卻完全相反?
非計算機專業理工科學生在 AI 的研究和應用中如何發揮自身優勢?
國內有哪些團隊在做類似Amazon echo 的事兒?
目前國內研發什麼類型的機器人會較有前景及市場?
拳頭做一個可以打贏對面5白金的人機難嗎?

TAG:人工智慧 | 計算機視覺 | 神經網路 | 概率圖模型 | 遞歸皮層網路RCN |