1. 程式人生 > >Learning hierarchical spatio-temporal features for action recognition with ISA

Learning hierarchical spatio-temporal features for action recognition with ISA



Reading papers_16(Learning hierarchical invariant spatio-temporal features for action recognition with independent subspace analysis)

  

  前言

  本次讀的文章是與feature learning相關,feature learning也叫做deep learning,是最近一個比較熱門的話題。因為它可以無監督的學習到圖片和視訊的一些特徵(當然在其它領域也可以,比如語音,語言處理等),而這些特徵並不需要人為手動去設。手動設計的特徵,常見的有sift,surf,hog等,它們都是經過了很長的時間才設計出來的,並且它只適應於2D的圖片,如果把所需學習的目標換成視訊,則也同樣需要把這些演算法擴充套件到3D,比如HOG3D,3Dsurf,這個擴充套件過程也是需要很多技巧和時間的。另外,手動設計的某一特徵只對某些資料庫表現好,而對其它的資料庫效果並不能保證就好。手動設計特徵的第二個缺點就是,當把資料換成某個領域的其它資料,比如說Kinect深度影象,視訊資料,多結構資料等,那麼以前存在的那些手動設計的的特徵點就表現更差了,也就是說換了一個非RGB領域的資料,這些特徵點就不適應了,因此又得重新設計,這不太划算了。第三個缺點是手動設計的提取過程所花時間很長,不利用大資料特徵的提取。當然了,deep learning一般是學習的層次結構,它也是有一定理論依據的,即模擬人腦的大腦皮層工作,因為大腦皮層的視覺區域也是分層次工作的,越底層的視覺皮層對那些底層特徵就越敏感。綜上所述,feature learning有這麼多應用需求的驅動和生物神經理論上的支援,註定它能夠在AI領域中發揮一定的作用。一些實驗表明,有些feature learning學習到的特徵幾乎比所有其它的特徵效果要好,比如本文中的ISA模型就是其中一個。

 

  Natural image中的ISA模型  

  下面來看看ISA模型在二維自然圖片中的模型,如下所示:

  

  其中圖中的第一層是輸入影象的path,第二層其實是ISA的第一層輸出,第二層和第一層之間的W就是我們需要learn的權值,第二層和輸出層第三層的權值V是固定的,是不需要學習的,可以看到第二層的2個綠色的圈和第三層紅色圈中的一個相鄰,所以這裡的子空間個數為2。第一層的輸入是把影象的二維patch變成一個一維的向量。當然這個W的學習過程就是在優化圖中下面那個公式,並且滿足權值矩陣W是正交矩陣。

  如果把權值矩陣的每一行反過來變成一個二維的patch圖片,則這些小的patch圖片就是我們在ISA的第一個輸出層完成後學習到的特徵圖片,如下圖所示:

   

  從圖中下面的英文解釋可以看出,這些學習到的patch有2個特徵,第一是它對一些edge比較敏感,也就是說它們是一些edge的檢測運算元。第二個特徵是是相鄰的2個patch之間具有類似的特徵,比如說都是檢測水平方向上的edge,或者都是檢測垂直方向上的edge。

  另外這些學習到的patch具有對輸入影象的平移不敏感,但是對輸入影象的頻率和旋轉非常敏感,所以說這些學習到的patch是可以識別一些不同頻率不同旋轉角度的影象的。這些patch的3個特徵的曲線測試圖如下所示:

   

 

  Natural video中的ISA模型

  上面的ISA模型是針對於二維影象而言的,當直接把這個模型擴充套件到3維的視訊資料中會碰到很大的困難,因為一個視訊資料就相當於一個長方體,那麼這個長方體的維數就非常大,如果我們直接把一個視訊資料變成一個一維的向量輸入到ISA模型的第一層,就會發現這個輸入向量的維度非常大,因而W的列數就非常大,這樣在訓練W引數的過程中由於需要計算有關W的特徵向量等一系列過程,這些過程的時間複雜度是與輸入向量的維數成3次方成正比,因而其計算速度非常之慢。所以作者在解決這個問題的時候採用的方法是:不一次輸入一個視訊的所以資料,而是在視訊長方體中擷取一個小的長方體patch,把這個patch變成向量後輸入到ISA模型中,此時的ISA輸入向量的維數就會大大降低,並且作者還使用了PCA進行降維,其維度會變得更低。另一方面,作者使用一些訓練視訊patch訓練出一個ISA模型後,就把這些模型直接複製到旁邊,這樣就有多個這樣的ISA模型,然後把它們的輸出直接當做第二個’大’的ISA模型的輸入(當然這中間也是需要經過PCA白化的),接著對第二個模型採用同樣的方法進行訓練,直到收斂。最後第二個ISA模型的輸出就是最終的特徵向量了。第二層的W同樣也是多個視訊patch,後面會提到。這裡的兩層ISA模型也就是作者在論文中所講的Stacked convolutional ISA。其結構如下:

   

  當然了,如果是訓練好了這2個ISA模型的引數W,就可以對新來的視訊資料進行測試了,對新來的視訊提取出特徵向量的示意圖如下所示:

   

  可以看出,作者是將2個ISA層的輸出聯合起來作為最終的特徵向量,因為這樣可以提高識別的準確率。

  另外還有兩點需要提到的是:1. 作者訓練ISA模型中的引數是採用的批量投影梯度下降法,其具體的優化過程論文中並沒有講,我也沒繼續深入去研究過,按照道理來說,這個優化演算法應該是個比較經典的演算法。2. 對第一層ISA的紅色圈輸出,並不是所有的輸出值都有采用,因為有些輸出值較小,說明其響應較小,就應該去掉。所以作者對這個值設定了一個閾值,閾值的選取是通過實驗的交叉驗證得到的。

 

  學習到的特徵的分析

  論文的後面部分對ISA模型中學習到的2層patch進行了下分析,第一層模型學習到的patch如下:

   

  這些特徵和在二維的圖片中學習到的特徵圖片類似,這裡每一組有10個patch說明輸入的視訊patch中時間維度上是取的10幀。當然了,這些從視訊資料學習到特徵也是具備對影象的平移不敏感,對影象的尺度變化,速度變化,旋轉變化非常敏感。

  這些特徵的曲線測試如下圖所示:

   

  作者還從統計上求出了那些響應大的神經元所對應視訊資料的旋轉角度和速度的點的分佈情況,如下圖所示:

   

  從圖中可以看出來,學習到的底層特徵在水平方向和垂直方向上的最多。

  高層學習到的特徵更為複雜,但是不容易解釋,如下圖所示:

   

 

  實驗結果

  作者在UCF,Hollywood2,Youtube,KTH這4個出名且很有挑戰的資料庫上做了測試,其測試結果表明,作者提出的演算法比在此之前的其它演算法的最好結果都要好,這是一個比較令人驚訝的地方。其演算法準確度結果如下:

   

 

  總結

  feature learning的學習能力還是非常強的,應該是以後的研究熱點,相應以後還會大大提高它在AI各個領域的作用。 

 

  附錄

  實驗室報告的ppt下載。

 

  參考資料

     http://ai.stanford.edu/~quocle/

 

 

 

 

作者:tornadomeet 出處:http://www.cnblogs.com/tornadomeet 歡迎轉載或分享,但請務必宣告文章出處。 (新浪微博:tornadomeet,歡迎交流!)