簡介:
這是一片發表在TPAMI上的文章,可以看見作者有余凱(是百度的那個余凱嗎?)
本文提出了一種3D神經網絡:通過在神經網絡的輸入中增加時間這個維度(連續幀),賦予神經網絡行為識別的功能。
相應提出了一種3D卷積,對三幅連續幀用一個3D卷積核進行卷積(可以理解為用三個二維卷積核卷積三張圖)。
3D神經網絡結構圖:
input—>H1
神經網絡的輸入為7張大小為60*40的連續幀,7張幀通過事先設定硬核(hardwired kernels)獲得5種不同特征:灰度、x方向梯度、y方向梯度、x方向光流、y方向光流,5個channels一共33個maps。對於這個做法,原文這么解釋“相比於隨機初始化,通過先驗知識對圖像的特征提取使得反向傳播訓練有更好的表現”。對此我的理解是,梯度表征了圖像的邊沿的分布,而光流則表征物體運動的趨勢,3DCNN通過提取這兩種信息來進行行為識別。
H1—>C2
用兩個7*7*3的3D卷積核對5個channels分別進行卷積,獲得兩個系列,每個系列5個channels共23個maps。然后為卷積結果加上偏置套一個tanh函數進行輸出。(典型神經網。)
卷積后map大小為54*34.
C2—>S3
2x2池化,下采樣
S3—>C4
為了提取更多的圖像特征,用三個7*6*3的3D卷積核分別對各個系列各個channels進行卷積,獲得6個系列,每個系列依舊5個channels的大量maps。然后加偏置套tanh。
C4—>S5
3X3池化,下采樣。
S5—>C6
進行了兩次3D卷積之后,時間上的維數已經被壓縮得無法再次進行3D卷積(兩個光流channels只有兩個maps)。此時對各個maps用7*42D卷積核進行卷積,加偏置套tanh(煩死了!),獲得C6層。C6層維度已經相當小,flatten為一列有128個節點的神經網絡層。
C6—>output
經典神經網絡模型兩層之間全鏈接,output的節點數目隨標簽而定。
相關概念——3D卷積:
老師說:“看圖說話”,上圖:
3D卷積可以理解為為想領的3幅圖用3個不同卷積核進行卷積,並把卷積結果相加。可以這么說,通過這種3幅圖之間的卷積,網絡提取了時間之間某種的相關性。
訓練:
同CNN,本網絡使用典型的隨機初始化——反向傳播算法進行訓練。反向傳播的算法在NN中的實現以前已經說過,請翻博文。不知到CNN中會不會有改進,具體方法以后貼一CNN論文出來。
效果:
使用3DCNN對3個標簽的veido(CellToEar, ObjectPut, Pointing)進行行為識別,效果與其他三種行為識別方法進行對比。發現在前兩中標簽下效果怒好與其他方法,Pointing則略遜。
MORE:在與其他方法進行對比的時候作者積極歪歪了各種特征我不知道他在說什么。另外,作者以后可能回訪出DBN版本的行為識別,或非監督版本的3DCNN。
我學完UFLDL之后就整天想3幀放在一起學習能不能行為識別啊有木有!但是多幀大圖片使用普通NN的話參數過多不實用,CNN則用局部鏈接+池化很好的解決了參數過多這個問題。本文作者對CNN在時間維度上進行擴充,實現了一個行為識別的功能,實乃快人一步。實際效果還得見同行評議(不知到老師的實驗室搞不搞)。
從這篇論文看出,目前的DL研究方法仍然十分Tricky,網絡的搭建和參數的選擇很大程度上依賴直覺與實驗,這個就比較考研研究人員的天賦 與……………………資源了。不知到什么時候才能有系統的NN設計方法出來。(還是已經有了我不知道?)