1. 程式人生 > >【論文筆記】Unsupervised Learning of Video Representations using LSTMs

【論文筆記】Unsupervised Learning of Video Representations using LSTMs

這篇文章是深度學習應用在視訊分析領域的經典文章,也是Encoder-Decoder模型的經典文章,作者是多倫多大學深度學習開山鼻祖Hinton教授的徒子徒孫們,引用量非常高,是視訊分析領域的必讀文章。

摘要翻譯

我們使用長短時記憶(Long Short Term Memory, LSTM)網路來學習視訊序列的表徵。我們的模型使用LSTM編碼器將輸入序列對映到一個固定長度的表徵向量。之後我們用一個或多個LSTM解碼器解碼這個表徵向量來實現不同的任務,比如重建輸入序列、預測未來序列。我們對兩種輸入序列——原始的影象小塊和預訓練卷積網路提取的高層表徵向量——都做了實驗。我們探索不同的設計選擇,例如解碼器的LSTM是否應該取決於生產的輸出。我們定量地分析模型的輸出來探討學習模型對過去和未來視訊序列的表徵能力。我們通過監督學習任務——UCF101和HMDB-51資料集動作識別——微調學習的表徵向量來進一步評估表徵能力。我們發現這些表徵提高了分類準確度,尤其是當只有少量訓練樣本的情況下。即使模型通過不相關的資料集(300 hours of YouTube videos)預訓練,也能夠提高動作識別的效能。

模型描述

LSTM Autoencoder Model

模型中有兩個遞迴神經網路,編碼器LSTM和解碼器LSTM,如下圖。模型的輸入是向量序列(影象小塊或者特徵向量)。當最後一個輸入被讀入之後,編碼器的內部狀態和輸出狀態將會被直接給入decoder。Decoder輸入目標序列或者預測序列,目標序列是和輸入序列一樣的,只不過在順序上是反向,把順序反向可以使得優化更簡單因為LSTM的輸出就是反過來的嘛。解碼器decoder既可以是有條件約束的也可以是無條件約束的。有條件約束的decoder就是decoder接受生成的最後一幀作為輸入,即下圖中的虛線框。無條件約束的decoder就不接受這個輸入。
這裡寫圖片描述


在encoder讀入最後視訊最後一幀之後LSTM的狀態就是輸入視訊的表徵。因為decoder就是需要用到這個表徵向量來重建序列,所以這個表徵向量需要包含目標、背景以及運動等資訊。但是所有自編碼器結構的模型都面臨著一個問題,就是直接把輸入和輸出進行對比來實現無監督學習,很難學習到表徵能力特別強的簡單對映關係。主要兩個原因,一個是空間上神經元的數量固定,所以不可能學習到無限長度輸入序列的對映;另一個原因是動態單元的數目必須遞迴地用在表徵向量上,這也使得模型很難學習一個通用統一的對映。

LSTM Future Predictor Model

預測模型和自編碼器幾乎是一樣的,差別就在於最後訓練的輸出,預測模型用的是未來幾幀的影象,只不過輸出是正序,而不是倒序的,這裡作者沒有解釋,但其實也很好理解,預測的正序和自編碼器的倒序是統一的,因為encoder-decoder模型都是從最近的時刻想最遠的時刻逐漸解碼。自編碼器從1,2,3到3,2,1是從近到遠,預測的1,2,3到4,5,6也是從近到遠。和自編碼器類似,預測模型也有條件約束和非條件約束兩種,所以最後的預測模型如下圖這裡寫圖片描述

A Composite Model

作者把上面兩種模型組合成一個模型,這個模型可以同時實現重建輸入和預測輸出的功能。上面的兩種模型都有各自的缺點,自編碼器傾向記住輸入序列的資訊,而預測模型傾向記住未來幾幀的資訊。而組合模型把兩部分的損失用來訓練網路,所以最後得到的表徵向量既有過去的記憶也有預測未來的能力,其模型如下圖。
這裡寫圖片描述

模型描述

作者設計實驗來實現以下目的:

  • 定性的瞭解LSTM到底學會了什麼
  • 用無監督學習訓練的引數去初始化有監督學習的引數,尤其是小樣本訓練的無監督網路,測試下這樣做是否對有監督學習有益
  • 比較提出的不同模型——自編碼器、預測模型和融合模型以及它們是否有條件約束的情況
  • 和最領先動作識別的基準進行比較

訓練

訓練使用RMSProp+monentum基友組合方式。(PS:通常Adam系的訓練函式能夠更快的收斂,而RMSProp+monentum這個組合通常能得到更好的全域性最優解)

資料集

資料集使用的是UCF-101和HMDB-51的監督學習資料集。為了訓練無監督的模型,作者還使用Sports-1M中的Youtube視訊子集。作者發現和僅僅使用Youtube資料集做無監督訓練相比,使用Youtube和UCF-101以及HMDB-51三個資料集做無監督訓練並沒有提高效能(從側面驗證了上面四個目標中的第二個)。原始的RGB影象使用的網路是,而提取的運動光流使用網路是.另外作者發現fc6全連線層的效能比fc7全連線層要好,所以最後選擇了fc6的4096維輸出作為視訊的表徵向量。另外作者提到論文只用了影象中一個小patch做實驗,也許用多個patches並且做些畸變加些噪聲的預處理或者去除水平偏移等能提高效能。

視覺化和定量分析

為了視覺化分析三種模型的效能,作者首先利用移動的Mnist資料集訓練模型,每個視訊含有20幀影象,包含了2個在移動的數字,影象塊大小為64×64畫素。這些數字及其出現的位置都是隨機的,每個數字的運動方向也是在均勻分割的單位圓內隨機選一個。如果數字碰到了邊緣就反彈,就和打磚塊差不多,如果重合了就疊加。
作者首先訓練了融合模型,LSTM擁有2048個神經元,編碼器輸入10幀序列,解碼器重建10幀輸入序列和預測未來10幀序列。輸出使用sigmoid啟用函式,損失使用交叉熵損失函式。下圖是結果,通過一層模型和兩層模型來驗證增加深度是否能提高效能,通過增加條件約束來驗證條件約束是否能提高效能。
這裡寫圖片描述
之後對於實際的視訊也做了實驗,作者從UCF-101資料集的視訊中提取了32×32畫素的小塊,輸出用identity啟用函式,損失用最小二乘損失函式,輸入是16幀,輸出重建輸入的16幀序列和預測未來的13幀。實驗用了2048個神經網路和4096個神經元做對比,結果顯示重建序列的影象更加清晰,預測的影象很快就變得模糊。
這裡寫圖片描述

UCF-101/hmdb-51動作識別

這一部分主要是探討無監督學習的特徵是否有助於提高監督學習任務。大致思路是用Youtube的視訊訓練融合模型,網路輸入是16幀視訊,網路輸出是重建16幀和預測未來的13幀。之後用這個網路的encoder部分的引數去初始化有監督學習任務的網路,並在最後一次加一層softmax分類層。測試時用的是所有時間step輸出的平均,因為LSTM每個時間step都會有一次預測。最後和幾個主流的baseline網路進行對比,結果顯示本文的方法在各種情況下都提高了準確度,包括利用光流資訊的情況。具體數字就不重複了,可以看圖表。
這裡寫圖片描述
這裡寫圖片描述

不同模型的比較

作者提到,雖然本文的方法有效的降低了重建序列的損失,但是這並不能用來衡量方法的好壞,真正能夠衡量方法好壞的應該是動作識別的效能以及預測未來序列的效能。於是作者就用Mnist資料集的交叉熵損失和視訊影象的最小二乘損失來衡量未來序列預測的好壞(為什麼Mnist可以用交叉熵而視訊序列要用最小二乘呢,我猜測是因為Mnist資料集是二值影象,所以等效為分類問題會更好一點,所以用交叉熵,而實際的視訊影象是連續的畫素值,所以用最小二乘誤差)。Table2顯示用條件約束的融合模型是最好的。

和動作識別基準的對比

實在不想寫了,要不就看下最後的結果圖吧,反正就是還不錯啦。
這裡寫圖片描述

總結

其實這篇論文要說很華麗倒也沒有很華麗,實驗放到現在來看也是比較簡單,甚至比較粗糙的,論文的篇幅雖然有好幾頁其實最後都是在重複的表述著同一些東西,或者敘述圖表的數字。但是這篇文章的貢獻意義非常大,雖然不敢完全肯定是否是第一篇,但至少這是我看到的最早的一篇把LSTM引入視訊分析的論文,並且文中作者提到,為了提高監督學習任務的準確度,可以引入卷積網路,並且堆疊多層本文的方法。於是這一句話開創了視訊分析任務的新天地,成功預測出(或者說是指明)了CNN+LSTM網路在視訊分析領域的王者地位。畢竟是帶著Hinton血脈的文章,所以引用量也是非常高的。