編者按:據(jù)傳宋徽宗趙佶曾以“深山藏古寺”為題命人作畫,奪魁的畫作,畫崇山峻嶺之中,一股清泉飛流直下,跳珠濺玉,泉邊有位老態(tài)龍鐘的和尚,正舀著泉水倒進桶里。
這幅畫的妙處在于,從“打水的老和尚”這一已知語義信息提取出“古寺”這一隱含信息,從而使得該畫切題應景。而在計算機視覺領(lǐng)域,這一典故正展示了結(jié)構(gòu)化分析中的隱含信息傳遞,對于畫面內(nèi)容理解的重要性。
近年來,深度學習取得了斐然的成績,然而自其提出之日起,“黑盒智能”、“可解釋性差”等質(zhì)疑之聲即不絕于耳,“黑盒智能”,意味著無法對結(jié)果作出保證,并極易陷入“自信的錯誤”這一致命問題。因此,世界上頂級實驗室都在思考“why"這一問題,并嘗試增強算法的可解釋性,以打開深度學習這一黑盒子。
今天,來自悉尼大學的歐陽萬里教授,將從物體之間的相關(guān)性出發(fā),利用結(jié)構(gòu)化建模,嘗試在圖像理解領(lǐng)域,窺一窺深度學習這一黑盒子。
本次報告中,我介紹一下我在香港中文大學以及在悉尼大學和很多老師、學生一起合作的工作。
首先我們來了解一下檢測和人體姿態(tài)識別相關(guān)的工作。給定一張圖像,確定感興趣的物體在圖片中的位置,比如說這位女士的牙刷,這就是物體檢測工作。目標檢測進一步往上分析,就是關(guān)系檢測。得到關(guān)系之后,可以進一步做更多語義的理解,比如用句子來描述圖片中某個區(qū)域它的語義,如說這位媽媽和可愛的小孩在刷牙。物體檢測后可以逐步把語義信息往上走,也可以對感興趣物體進行深入分析,比如說可以對人體關(guān)鍵點進行定位,也就是人體姿態(tài)識別。有了這些物體檢測、姿態(tài)檢測以后可以分析行人,分析人的動作。
關(guān)鍵點定位識別任務具有許多難點,例如說人可能穿不同顏色衣服,會被遮擋,人身體變動靈活,會由于形變產(chǎn)生劇烈視覺信息變化。
為了處理好視覺信息,我們引入結(jié)構(gòu)化學習,學習輸出結(jié)構(gòu)化的信息在我們打開深度學習黑盒子的過程中是很重要的一環(huán)。我們期望利用對問題的理解,幫助我們在深度學習能達到的結(jié)果之上得到更多的改善。
對于結(jié)構(gòu)化輸出的建模,我們有一些工作。比如在人體姿態(tài)識別任務中,對人體關(guān)鍵點之間的空間結(jié)構(gòu)關(guān)系可以進行建模。對于人與人之間的交互,可能會有很多交互因素,比如說有交互動作,具體到擁抱、手拉手。其它交互因素,比如說人與人之間的距離,傾斜度、朝向等這些因素,他們之間也會有位置關(guān)系,所以可以將它們進行結(jié)構(gòu)化建模?;趩文繑z像頭得到深度信息預測任務,可以利用卷積網(wǎng)絡(luò)幫我們在不同分辨率特征中得到不同對于深度信息的預測,它們之間也有很多相關(guān)性,可以對它們進行結(jié)構(gòu)化建模。最新工作考慮不同的模態(tài),在跨攝像頭尋人信息中對比兩個圖片是不是同一個人,對于人分割多值信息可以有結(jié)構(gòu)化信息幫助我們進行建模。
在進一步打開深度學習黑盒子的情況下,我們可以引入標簽或者輸出所不具備的因素,把對于因素中特性的建模和深度特征的學習繼續(xù)聯(lián)合學習。具體例子就是物體檢測,我們會遇到遮擋以及人的形變產(chǎn)生的變化,這些因素都是隱含的,標簽中只有一個矩形框,沒有這些信息。如果能夠設(shè)計需要非常少參數(shù)的方法能夠把隱含因素推理到,其實就能夠幫助到模型學到更好的特征,并實現(xiàn)更好的結(jié)果。
例如說有一幅圖像,我們可以利用深度學習模型或者已有手工設(shè)計的特征對它進行處理。這個任務中,一個隱含的因素是形變,我們可以引入處理形變和學習形變的模型,一個著名模型是deformable part model。另一個隱含因素是遮擋,比如說在這幅圖中這個人腿就被椅子擋住了。如果能夠?qū)θ梭w的遮擋進行推理,能夠把一些被遮擋的部分找出來,不要用被擋住的椅子學習人腿的視覺形狀。如果能夠得到這樣的隱含因素可以進一步提高檢測效果。最后是進行分類。這些模塊之間的學習都是固定住前面一部分的參數(shù),學習最后的參數(shù),每個模塊之間缺乏通信。我們可以設(shè)計聯(lián)合深度學習模型,將這些模塊聯(lián)合起來,在每次參數(shù)學習中,都能夠進行非常好的通信,從而使各模塊通過互相溝通學習到更好的模型以提高準確率。
這是我們設(shè)計基本模型,首先利用卷積網(wǎng)絡(luò)幫我們學習到特征,有了特征以后就可以利用形變層((deformation layer))學習身體各個部分的形變。
假設(shè)有一個檢測器可以檢測人的肩膀在圖片中的位置,其中一個檢測器的例子就是這樣一個肩膀,如果把這個肩膀檢測器在圖片中進行滑動的匹配將會得到這樣的響應圖譜。在沒有肩膀的地方會有我們不想要的高的響應,如果使用這些區(qū)域?qū)W習人的肩膀長什么樣,特征學不好,肩膀的檢測器也學不好。為了處理好這個問題,我們可以利用形變的特性。我們可以考慮到人的肩膀不會從對應的位置跑到人的右下角,所以我們設(shè)計形變的圖譜,自動學習人的形變特性。將這種概率化的描述轉(zhuǎn)化成圖譜,進行疊加就會得到修正以后的圖譜。如果利用修正以后的圖譜進行檢測,可以準確定位形變物體到底在哪里,相對于特征和檢測學習就會得到更好的結(jié)果。
另一方面,人的身體各個部位會被遮擋,會涉及不同大小身體部位的檢測器。比如說關(guān)于人的左腿和右腿的檢測器,如果兩個檢測器都被遮擋,兩條腿會一起被遮擋,所以不同檢測器它們之間關(guān)系可以用deep belief net來學習。
我們進行了一些實驗,在2013年時最大的行人檢測數(shù)據(jù)庫上,使用手工設(shè)計的特征再加上已有的分類器錯誤率為68%。如果處理好形變隱含的因素可以降到63%,如果將特征學習以及形變和遮擋進行聯(lián)合學習可以將錯誤率降到39%。如果進一步使用更好深度學習的方式,最近的工作錯誤率可以降低到9%。
論文相關(guān)代碼在如下地址:
http://www.ee.cuhk.edu.hk/~wlouyang/projects/ouyangWiccv13Joint/index.html.
上面所說的我們對于形變和遮擋這兩個隱含因素的學習主要用在單個行人檢測工作中,我們將它進行拓展。第一個拓展是把形變的學習拓展到普適的物體檢測中,我們開發(fā)了一個新的形變學習模型,這個工作2017發(fā)表在PAMI,連續(xù)幾個月都是TPAMI最受歡迎的文章之一。
另外一個擴展是將對于單個行人的可見性與不可見性的推理運用到兩個行人之中,互相遮擋的情況下,他們之間可見性有相融和不相融的關(guān)系,從而提高互相遮擋情況下的效果。
上面介紹的是我們利用隱含因素具體研究形變以及遮擋兩個隱含因素,對這兩個隱含因素參數(shù)的學習和深度學習中特征學習進行聯(lián)合學習,從而提高最終我們具體任務的效果。
為了進一步的打開深度學習的黑盒子,我們考慮特征之間的結(jié)構(gòu)化建模。它的動機是來自于另外一個觀察。全連接網(wǎng)絡(luò)或者卷積網(wǎng)絡(luò)它們有一個共同特性,在同一層中神經(jīng)元是沒有連接的,但人腦并不是這樣,在人腦中同一層神經(jīng)元之間是有連接的。
關(guān)于深度學習,研究者得到最多的信息就是要設(shè)計很好的學習方法以及很好模型設(shè)計方式,使得模型變得越來越深。是不是把模型變得更深就是我們唯一的出路呢?另外一個問題是做視覺研究者對于問題的觀察以及理解是不是也會有幫助?為了回答這個問題,我們設(shè)計了GBD-Net。GBD-NET利用上下文信息,幫助我們識別所感興趣的物體是什么。
計算機視覺研究者很早就知道上下文信息對于識別物體有幫助。有了深度學習模型以后怎樣考慮上下文信息呢?我們考慮的是可以學習不同上下文信息的特征之間的關(guān)系。比如說,現(xiàn)在有一個特征對應的是兔子的耳朵,它是比較少的上下文的信息,可以推測到下面應該有兔子的頭。因此兔子耳朵這樣比較少上下文的特征和兔子頭這個比較多的上下文特征,反之亦然。由此可見,不同上下文信息的特征之間可以互相驗證。
而另外一方面如果看見一個兔子耳朵并不一定下面就有兔子的頭,如上圖中的反例。在這種情況下,如果我們看見下面不是兔子的頭,而是一個人的臉,我們希望的是讓這個兔子的耳朵不要傳遞信息給兔子的頭。因此信息是需要傳遞的,但是信息的傳遞是需要受到控制的。
基于已有的檢測網(wǎng)絡(luò)基礎(chǔ)上我們設(shè)計了GBD-Net。它利用已有網(wǎng)絡(luò)結(jié)構(gòu)得到不同上下文特征。有了不同上下文信息特征以后,開始進行信息傳遞。
可以把信息從上往下傳,也就是讓上下文信息比較少的特征傳遞給上下文信息比較多的特征。也可以進行反向的傳遞,就是把上下文信息比較多的特征傳遞給上下文信息比較少的特征。我們將兩組通過不同方向傳遞的特征會進行結(jié)合,也引入一個函數(shù)來幫助我們控制信息的傳遞。
經(jīng)過信息傳遞以后,這些特征將會被得到修正,我們利用修正特征幫助我們做最終檢測的任務。
實驗發(fā)現(xiàn)在不同的數(shù)據(jù)庫和不同網(wǎng)絡(luò)結(jié)構(gòu)中,使用我們這樣的特征之間傳遞信息的方法,效果都可以得到很好的改善。我們利用這個方法參加了2016年的競賽,在靜態(tài)物體檢測和動態(tài)視頻物體檢測跟蹤中我們都取得第一名。
對GBD-Net進行總結(jié)。第一點,特征仍然是重要的。第二點,視覺工作者基于專業(yè)知識對于問題的觀察和分析同樣重要。第三點,我們使用深度學習,把它當做一個工具來幫助將特征之間的關(guān)系進行建模。具體而言,我們設(shè)計的GBD-Net是在不同上下文特征之間進行信息傳遞。論文相關(guān)代碼可以掃描二維碼。
剛才所做的只是在物體檢測中,是不是這個特征之間的結(jié)構(gòu)建模只是適用于物體檢測呢?其實不是這樣的,它在其他很多工作中也是有效的。比如說在人體姿態(tài)識別中,我們考慮每一個人體的關(guān)鍵點都是一個特征,在這些特征中可以進行信息傳遞??梢钥紤]每個關(guān)鍵點分別對應的一組特征,有了對應特征以后可以把對應特征認為是結(jié)點,有了結(jié)點以后可以考慮人體關(guān)鍵點樹型結(jié)構(gòu),在樹形結(jié)構(gòu)上的各個結(jié)點之間進行信息傳遞。論文相關(guān)代碼在:
https://github.com/chuxiaoselena/StructuredFeature.
剛才我們所介紹的仍然是具有類似語義信息的這樣一些特征,其實這樣的特征并不一定要具有相同語義。在具體工作中,可以考慮這些特征可以具有不同的語義信息。比如說物體檢測中可能有專門對應每一個物體的特征,比如說這位女士自己的特征,對于牙刷也有它自己的特征,小孩和他的牙刷都有自己的特征,往上走不同物體之間關(guān)系也有一組專門識別物體關(guān)系的特征。繼續(xù)上走,每個語句也有自己的特征。如果考慮每一個特征都是一個結(jié)點的話,仍然可以利用它們之間的關(guān)系,通用邊進行信息傳遞,最終提高這三個不同任務的效果。
上面介紹利用結(jié)構(gòu)化信息傳遞在不同任務進行結(jié)構(gòu)化信息建模。它面臨的問題是信息傳遞沒有任何理論指導,我們只是通過觀察來設(shè)計并通過實驗發(fā)現(xiàn)這樣做有效。為了解決這個問題,我們引入統(tǒng)計模型。具體而言,我們引入條件隨機場,幫助我們進行網(wǎng)絡(luò)結(jié)構(gòu)設(shè)計。網(wǎng)絡(luò)結(jié)構(gòu)符合這樣的統(tǒng)計模型。在具體工作中,我們對特征之間的信息傳遞利用條件隨機場進行建模,也對加入門限控制的特征信息傳遞利用條件隨機場進行建模。
在統(tǒng)計模型指導下,另外一個優(yōu)勢可以利用統(tǒng)計模型中一個很好的信息傳遞方法,幫助指導我們怎樣在各個節(jié)點之間傳遞信息才是最有效的。
所以,對于結(jié)構(gòu)化信息傳遞,在已有基礎(chǔ)上考慮結(jié)構(gòu)化的輸出,可以引入結(jié)構(gòu)化特征,將結(jié)構(gòu)化特征和結(jié)構(gòu)化輸出進行聯(lián)合學習。
除了結(jié)構(gòu)化學習,我們實驗室在基礎(chǔ)網(wǎng)絡(luò)設(shè)計上我們也做了很多工作。林達華老師設(shè)計非常好的網(wǎng)絡(luò)-PoLyNet,它是一種非常深的網(wǎng)絡(luò)結(jié)構(gòu)。這個網(wǎng)絡(luò)結(jié)構(gòu)的基本想法是同一個模塊中,引入多個inception module,可以并行或串行。利用這個方法達華老師所帶的學生參加2016年的競賽,競賽中單個模型結(jié)果是當時最好的。
另外一個工作動機是,如果有同樣大小的人臉,但是局部特征是不一樣的。比如說在這個例子中有三張同樣大小人臉,但是人的眼睛和嘴巴視覺信息大小是不一樣的。這就要求我們的神經(jīng)元具有多樣性能夠捕捉到這些不同大小的特征。
為了捕捉到不同大小的特征,有一種設(shè)計,就是設(shè)計不同大小的濾波器或者將不同大小的濾波器進行疊加,比如說有3×3再往上疊,可以得到5x5,這會增大參數(shù)量和計算復雜度。
我們考慮另外一種方式就是下采樣。第一個分支中不采用任何下采樣,這樣情況下3×3的卷積對應的視覺信息就是3×3的大小,如果另外一個分支使用2的下采樣,特征會變得原來1/2,3×3卷積看到大小就是6×6。通過這種方法,只需要改變下采樣的參數(shù),就能幫助我們實現(xiàn)捕捉不同大小特征的目的。最終,我們利用上采操作,使下采樣造成的不同大小分辨率的特征變成同樣大小,便于把它們連接起來。下采樣和上采樣不需要參數(shù),運算快。這種做法取得了良好的實驗效果。
論文相關(guān)代碼在:
https://github.com/bearpaw/PyraNet.
另外一個問題,最近大家提出多種網(wǎng)絡(luò)結(jié)構(gòu)化,如ResNet,DenseNet,ResNext,甚至像GoogleNet和我們設(shè)計的PolyNet,這些網(wǎng)絡(luò)具有一個共性:它有多個分支。有一個問題是,對應于有多個分支的網(wǎng)絡(luò)結(jié)構(gòu)情況下,常用的參數(shù)初始化方法的基本假設(shè)是不成立的。如果用這樣的參數(shù)初始化會帶來一些問題。為了解決這個問題,我們進行嚴格的理論推導,并給出最終答案。推導發(fā)現(xiàn)與輸入、輸出分支數(shù)和參數(shù)初始化是相關(guān)的。在圖像分類以及人體姿態(tài)識別上都發(fā)現(xiàn)使用我們的方法以后會得到更好的效果。
另外就是人的行為識別。行為識別和很多做視頻任務里很重要的信息是運動。
如果要得到關(guān)于運動的信息,我們發(fā)現(xiàn)有一種很簡單的操作,就是先得到兩幀圖像特征,把兩個特征點對點(element-wise)相減。這個相減是時間上的梯度,空間上的梯度可以用很簡單的操作得到。這樣簡單的操作它背后來源于我們數(shù)學的推導,數(shù)學的推導告訴我們這樣特征的表示和光流(optical flow)是正交的,正交意味著它們是互補的,這種特征會擁有原來optical flow沒有的信息。實驗發(fā)現(xiàn)使用我們這種特征而不使用optical flow,能達到的相似的準確率,但在速度上可以快很多。另外,由于特征是由它互補的,特征結(jié)合以后可以進一步改善準確率。論文相關(guān)代碼會在近期提供。
總結(jié)一下,結(jié)構(gòu)化深度學習在很多視覺任務中都是有效的。結(jié)構(gòu)化信息通常是來源于觀察,來源于對問題的理解。視覺領(lǐng)域的研究者對特定問題的觀察和理解可以聯(lián)合深度學習一起推進整個視覺的進步。另外,我們可以對輸出和特征進行結(jié)構(gòu)化的建模。而深度學習這樣一個工具提供的能力是將結(jié)構(gòu)的建模和特征的學習進行聯(lián)合學習,增大最終解決任務的能力。
-
濾波器
+關(guān)注
關(guān)注
161文章
7817瀏覽量
178148 -
黑盒子
+關(guān)注
關(guān)注
0文章
5瀏覽量
8781 -
深度學習
+關(guān)注
關(guān)注
73文章
5503瀏覽量
121175
原文標題:讓機器“解疑釋惑”:視覺世界中的結(jié)構(gòu)化理解|VALSE2018之八
文章出處:【微信號:deeplearningclass,微信公眾號:深度學習大講堂】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論