Нейросеть научилась предсказывать поведение собаки
leiphone 作者:sanman
AI科技評論按:這篇文章提出了一種全新的CV任務。
來自華盛頓大學艾倫人工智慧研究所的Kiana Ehsani團隊突破傳統電腦視覺的研究任務,嘗試從目標對象(例如狗)的視角進行建模,並以此模型來預測對象的行為模式。
這種表示學習方法,與傳統的圖片訓練任務的不同之處在於,它的模型訓練是從特定視角出發,所以這是一種全新的CV任務。在論文中,作為案例,作者採用狗狗的視角來訓練模型,在狗的行為建模上取得顯著的成功。作者表示,該方法有望拓展到其他領域。
下面為小編對該論文的詳細解讀。
傳統的電腦視覺研究專注於分類、辨識、檢測及分割等子任務;當去解決一般的電腦視覺問題時,研究人員一般會將這些功能進行有機的組合。
但這種研究方法所得出的結果,一直與期望結果有較大的差距。
本文的作者受近期「行為和交互在視覺理解中作用」研究工作的啓發,他們將視覺智慧(visual intelligence)問題定義為:理解視覺數據並在視覺世界中採取行動或執行任務。
在這種定義下,作者認為要像一個視覺智慧體,在視覺世界中那樣去學習。
作為該項研究的切入口,他們選擇一隻狗作為視覺代理。相比於人類,狗有一個簡單的行為空間,這使任務能更容易地處理;而另一方面,它們能夠清楚地表現出視覺智慧,辨識食物、障礙物、其他人類和動物,並對這些輸入作出反應。
在實驗中,Kiana Ehsani團隊透過狗的自我視角錄製的影像數據,加上將傳感器安裝在狗的關節處,收集來的動作數據,構建了數據集DECADE(Dataset of Ego-Centric Actions in a Dog Environment)。
在作者的研究中,他們利用DECADE數據集,主要探索三個問題:
(1)Acting like a dog,即預測狗的行動;
(2)Planning like a dog,即預測狗的運動序列;
(3)Learning from a dog,即如何利用狗的動作作為表徵學習的監督信號。
1. 數據集
如上所述,作者使用了DECADE數據集。這個數據集包含380個影片剪輯片段,這些影片由安裝在狗頭部的攝影機拍攝而來。影片中還包含設備安裝部位和運動軌跡等資訊。
在實驗中,作者總共用了24500幀,其中21000幀用於訓練模型,1500幀用於驗證,2000幀用於最後的測試。
作者使用的是GoPro攝影機拍攝的這些影片,採樣頻率為5fps。該團隊使用4個慣性測量單元(IMUs)來測量狗的四肢的位置,一個單元測尾巴位置,還有一個測軀乾位置。這些設備可以用角向移動,來記錄運動。
他們獲取的每一幀都包含六個測量單元的角移。角移以4維4元數向量表示。慣性測量單元的絕對角移,與狗面向的方向有關,不同關節的角移是有區別的,這些區別也可以用四元數表示。他們認為兩個連續的幀之間角移的區別,就代表著這條狗這兩幀之間的動作。
獲取這些信息的的具體情形,是一個安裝在狗背上的Arduino監視器連接著各個測量單元(IMUs)來記錄位置資訊。它還能透過狗背上的微信麥克風來收集音訊,這些音訊可以為同步GoPro和Imus數據提供依據,最終可以將影像和IMU測量數據,同步精確到毫秒級別。
他們的團隊在多於50個不同環境下收集數據,收集時狗正處在特定的場景下,比如行走或撿東西或與其他狗互動。所有最終剪輯出來的幀都不帶備注,實驗均使用原始數據。
2. Acting like a dog
在不同的場景中如何預測狗的反應呢?作者所提出的模型,透過學習狗之前看到的場景圖片,來預測狗接下來的行動。
模型的輸入是一串視覺圖像的幀序列(I_1, I_2, . . . , I_t),而輸出則是在接下來的時間片里狗各個關節的動作t < t' ≦ N(a_t+1^j, a_t+2^j, . . . , a_t+N^j ),其中時間片大小為0.2秒。a_t^j就代表著關節 j 的運動。舉例說明,a_3^2代表著第二關節介於I3和I4幀之間的運動。
作者將預測問題表述為一個分類問題。他們將關節角移數字化編碼,並將不同關節的運動標籤化成特定的動作類。為了形成這些運動類,他們使用K-means算法來處理關節角移。每一個聚類中心都可以代表一個特定的運動。
其運動預測模型是編解碼結構的,主要目標就是找到輸入圖片與未來動作之間的映射關係。舉例說明這種關係,比如當狗看到拿著狗糧,這條狗之後的動作很可能是坐著等主人來餵。
上圖為這個模型的結構,其中編碼部分包含了CNN模型和一個LSTM。其中每個時間片內CNN都會接收到一對連續的圖片,即上文提到的行動前行動後圖片,對著其進行編碼後傳輸給LSTM。
實驗結果果表示,LSTM一個時間片內,接受兩幀可以明顯改善模型的表現。CNN包含兩層權重相同的ResNet-18,其中一個則為處理幀。
解碼器的目標,是根據已經被編碼的幀來預測狗關節的活動。解碼器接受編碼器傳來的隱藏初始狀態,和LSTM的處理結果,之後的每一個時間片,解碼器輸出上文提到的每個關節的動作類,而且前一個時間片的輸出,會被線性編碼器處理完,作為下一個時間片的輸入。
正是由於他們使用固定長度的處理後的輸出,作為下一個時間片的輸入,所以不需要停止標記,且他們的模型會在產生一定數量的輸出後停止。最後的效果就是他們的模型,每個時間片會輸出六個動作類。
每一張圖片都是獨立傳送給ResNet塔,且兩張圖片的特徵已經結合,結合起來的特徵會被線性轉化器處理後,輸入編碼器的LSTM。他們團隊在ImageNet上事先訓練了ResNet,然後優化一下來評估兩張連續幀之間的動作。
Kiana Ehsani團隊的編解碼器使用加權平均熵損失來處理每個關節。損失函數為:
3、Planning like a dog
狗是如何計劃行動來完成目標的?
為了給這個過程建模,作者設計了如下計劃:輸入兩張不連貫的圖片,然後去規劃從第一張圖片的狀態到第二張圖片的狀態中間可能出現的一系列行為。
他們指出先前的運動估計量已經不再適用,之前的運動估計是根據鏡頭的狀態變化,來補充兩張圖片變化之間的狀態。
現在則相反,我們的模型自行計劃去進行一些合理的行動,來補充圖片變化之間的狀態。更加正式的描述就是,
輸入兩張圖片(I_1,I_N),輸出時長為n-1的行動數據。這個輸出就是夠從I_1 狀態轉換到I_N狀態中間經歷的過程。
狗的每一步行動都會對下一步行動產生影響,所以作者設計了一個遞歸神經網路,這其中包含一層LSTM,用來處理一個時間片的的輸出,作為後一個時間片的輸入。
如圖所示,他們將圖片I1和IN,分別單獨的傳給ResNet-18塔,合併上一層的特徵並輸入LSTM。每一時間片內,LSTM cell都會輸出六個關節的運動數據。
他們將此作為下一個時間片的輸入,這就使得神經網路可以根據之前的狀態進行調整。同時他們還將行為出現的概率,這一數據也作下一時間片的輸入。這會使當前時間片中的低概率行為,在行動序列中進一步導致高概率行為,這樣就可以保證未來行為的多樣性。
作者使用等式所描述的加權的交叉熵損耗,在所有的時間片和關節上訓練,該遞歸神經網路。與解決如何像狗一樣,行動所採取的方法類似,他們使用了離散的動作域。
4. Learning from a dog
能否利用狗的動作,作為表徵學習的監督信號呢?
在學習從狗觀察到的圖像中,預測狗關節的運動時,可以獲得一個圖像表示,它編碼了不同類型的資訊。
為了學習表示,作者透過觀察狗在時間t-1和t中,觀察到的圖像,訓練ResNet-18模型,來估計當前的狗的運動(IMU從時間t-1到t的變化)。
隨後作者對這個表示進行測試,並與在ImageNet上訓練的ResNet-18模型進行比較,在不同的任務中會使用不同的數據。 在實驗中,作者使用SUN397數據集,進行了可行表面估計和場景分類。
為了展示表示的效果,作者將模型中藍色部分,用在ImageNet上訓練過的ResNet進行了替換,並將其與在DECADE上訓練的ResNet進行比較。
5. 實驗結果
下面這張圖中顯示了模型從5幀影像中,學習到當一個人朝狗扔球時狗的表現。在影片中,球越過狗後,狗轉向右側去追球。本文提出的模型只使用前5幀圖像,就可以正確地預測在球飛過時,狗如何轉向右側的行為。
下面為具體實驗結果:
(1)Learning to act like a dog
觀察五幀影像後預測接下來的五個行動的精確度。
(2)Learning to plan like a dog
在開始和結束幀之間進行規劃,這裡考慮開始幀和結束幀之間相隔5步。
(3)Learning from a dog
將在ImageNet上訓練的網路結果,與在DECADE上訓練的網路進行比較,評估指標為IOU。
6. 總結
Kiana Ehsani團隊選擇直接從目標對象視角建模,他們用從狗的視角拍攝的影像來訓練模型,最終的目標是讓自己的模型可以預測隨後的行動,可以像狗一樣去規劃自己的行為,來完成目標。
他們的工作是端到端建模的第一步,這種方法不需要手動標記的數據或擁有具體語義的數據。不僅如此,它還可以在多對象和多場景下應用,去獲取有價值的資訊。
小編認為,他們的方法還有許多有待拓展的地方。一方面是,本文實現的模型只接受視覺輸入,屬於CV問題,但事實上它完全可以拓展到其他領域,例如實現聽覺、觸覺等的輸入;此外,當前模型仍只是針對一條狗的行為建模,那麼是否可以拓展到多條狗的情形呢?
無論如何,採用主人公視角的數據集來訓練模型,這種思想獨特且有深刻意義,屬於一種新穎的CV task。
沒有留言:
張貼留言