計算機視覺方向如何閱讀一篇論文,以《3D Convolutional Neural Networks for Human Action Recognition》爲例

寫在前面

首先自己想說的是自己在讀研期間讀論文遇到了很多障礙,有時候甚至懷疑自己是不適合讀計算機,比如讀論文的時候經常出現下面這些問題:
(1)一讀論文就眉毛鬍子一把抓,沒有重點;
(2)讀論文非常耗費時間,感覺自己讀的好辛苦,有時候一個上午過去了,纔讀了個introduction,尤其是早期學習SLAM的時候,那會兒我連cin cout都不知道什麼,更沒有基礎的數字圖像處理的知識,上來就看SLAM那些酷炫的《多視圖幾何》,《李羣李代數》什麼的,搞得自己暈暈乎乎;
(3)讀論文感覺就是讀論文而已,總感覺讀完沒有什麼實質的收穫,讀完就過去了,現在想來其實就是信息 != 知識
(4)所讀的文章對自己的研究方向感覺幫助不大,不知道怎麼用進去‘

等等,自己在這一方面其實一直蠻掙扎的。

針對上面這些問題,自己無意中看到了B站up主軟綿綿的小熊貓的一個視頻,真的感覺這個方法很酸爽,讀起來也很過癮,所以自己借《3D Convolutional Neural Networks for Human Action Recognition》這篇文章來第一次練手進行。希望由此可以簡歷屬於自己的讀論文方法,同時也真正建立自己的知識體系。

這裏以《3D Convolutional Neural Networks for Human Action Recognition》爲例進行,方便培養自己的論文閱讀習慣,以後的論文都需要這樣讀

〇、Make decision:

  • 論文標題:3D Convolutional Neural Networks for Human Action Recognition
    好了,通過標題我知道了這個是關於3D CNN的方法,並且是用在人體行爲識別任務上的。

  • 作者:Shuiwang Ji
    好了,自己也沒聽過,來自於Arizona州立大學

  • 用一句話概括:
    Original method assumed the action recognition task take places in uncontrolled environment and used handcraft features to deal with it(Which means is complex).
    So here comes the CNN based method, while traditional 2D CNN will regard the Video input as independent images. So in this paper, 3D CNN was proposed which can take both temporal and spatial information into account.

  • 做出決定:
    決定結果:精讀
    做出該決定的日期:4月5日

一、 精讀環節

Step1: 提出讀過摘要後的問題

自己雖然算是比較熟悉行爲識別這個領域,也對3DCNN有一些學習經驗,但是一直沒有讀過原論文,讀過該篇文章的摘要之後自己還是由一些疑問的

  • 問題
    (1)摘要中提到的uncontrolled environment以及其相對應的controlled environment到底或者說具體指的是什麼?
    (2)怎麼做到既從空間維度又從時間維度來獲取信息的(也就是3D CNN具體是怎麼操作的?)
    (3)怎麼從輸入幀生成了多通道的信息,最後的final feature representation又是如何通過各通道的合併在一起的?

Step2:讀Introduction

讀這部分的時候也要時刻注意以下三點:
(1)上一部分自己提出的問題有沒有在這一部分被放大?
(2)有沒有出現新的問題?
(3)前面摘要部分提出的問題有沒有得到解答?


好的,下面開始進行Introduction部分的閱讀:
首先就是第一個問題:

(1)uncontrollable environment與controlled environment的問題
在introduction中,文章講了03~07年的一些文章都是基於既定環境的(比如small scale and view- point changes),也就可以理解爲controlled environment,那麼與之相對應的真實環境就可以被理解爲uncontrollable environment。
好了,這個問題解決了,我就在之前的第一個問題上畫上刪除線,代表這個問題可以不用當有很多問好的小朋友了。
(1)摘要中提到的uncontrolled environment以及其相對應的controlled environment到底或者說具體指的是什麼?

現在還剩下的問題
(2)怎麼做到既從空間維度又從時間維度來獲取信息的(也就是3D CNN具體是怎麼操作的?)
(3)怎麼從輸入幀生成了多通道的信息,最後的final feature representation又是如何通過各通道的合併在一起的?

好了,接着讀Introduction,

文章的第二段主要意圖是介紹深度學習方法的優勢,考慮到這篇文章是在2010年發表的,那麼強調這件事還是很有必要打,當然自己對3DCNN的理解或者就上面剩餘的兩個問題而言到目前爲止還沒有什麼顯性的幫助。

文章的第三段可以分爲兩個部分來看,首先寫把CNN應用到視頻上的任務也是存在的,但是是用來分析胚胎髮育的,而且一般的2D CNN是對時序沒有什麼貢獻和考慮的。第二部部分在第一部分的基礎上引出,講了這篇文章的意義和價值,也就是自己提出的3DCNN可以解決時序關聯性的問題。讀文章的時候千萬不要忘記前面自己的疑問或者問題,通過這一段的閱讀,我發現自己在摘要部分提出的後兩個問題不但沒有解決,反而在此刻疑惑加深了,小小的腦袋有了更大的問號,
(1)那就是3DCNN到底是怎麼同步建模時序信息和空間信息的?
(2)關於通道融合的問題,是怎麼把時空feature給融合在一起的呢?

帶着問題繼續閱讀。

introduction的最後一段,基本上如管理一般讚揚了自己方法的優越性。比如在數據集上的表現啊什麼的,當然這段的最後一句話:
We also observe that the performance differences between 3D CNN and other methods tend to be larger when the number of positive training samples is small.
就是
3DCNN的方法爲什麼在正例的訓練樣本小的時候和和其他方法的性能差別會顯得特別大?這個問題是不是就是後面大家經常提到的3DCNN不好訓練,需要大量的訓練數據做支撐。
好了,我們新增了一個問題,現在的問題又回到了3個,如下:

現在還剩下的問題
(1)怎麼做到既從空間維度又從時間維度來獲取信息的(也就是3D CNN具體是怎麼操作的?)
(2)怎麼從輸入幀生成了多通道的信息,最後的final feature representation又是如何通過各通道
(3)3DCNN的方法爲什麼在正例的訓練樣本小的時候和和其他方法的性能差別會顯得特別大?的合併在一起的?

現在再做出決定,本篇文章還需要繼續讀下去嗎?
就這篇文章而言,因爲我的疑惑還沒有解決,所以答案是Yes, 還需要繼續讀下去,如果遇到別的文章到這裏自己的基本疑惑已經解決,那真的其實已經沒有必要繼續讀下去了,浪費時間。

Step3:讀Conclusion

也是 分爲兩個部分來看,第一部分主要還是強調了開頭摘要裏的那一大段話。
然後最後還有相應的討論,第二部分還是很有意義的,要是放在2010年我高中的時候的話,那肯定後續工作有很多可以擴展,文章提到了兩個有可能的方向:
(1) 是基於Hinton的deep belief networks的進行擴展;
(2) 另一個文中提到了對數據的標註是一件很耗時費力的事情,因此基於非監督網絡訓練方式會更有意義。

接下來就是精度方法部分了。

Step4: 精讀方法部分

(1)讀基本知識點(比如每段的開頭結尾);
(2)看圖看錶(全局掌握);
(3)完成上述兩個之後,再次做出決定要不要繼續讀下去。
(4)如果要的話,那麼就繼續看最最頭疼的算法部分(好在這篇文章其實沒有什麼算法部分)
(5)看到上述過程,再決定要不要復現,復現是非常消耗精力的一件事情,需要慎重做出決定。如果復現之後,再將自己跑出來的結果和論文給出的結果做對比,然後分析原因,通常發水文的思路或者說點子就可以說是這麼來的。

Step5: 關於Related Work的整理

這部分關注兩個問題
(1)這篇文章是不是在某篇基礎上寫出來的,如果是的話返回去讀讀父類論文;
(2)與其他文章有什麼關係或者聯繫,借鑑了什麼方法,或者有什麼異同;
(3)類似的數據集有沒有更新,各自的表現如何

Step6:反思:

個一段時間後,可以返回來,想想這些東西有沒有價值,爲什麼大家都在做這些,貼上去自己的看法,並且時時刻刻要記得將這些信息轉變成自己的知識。

好了,以後可以稱之爲《六步論文法》了,當然這是針對一篇論文的,當有一些列文章的時候,自己更得鍛鍊好信息的取捨,檢索,分類,總結,梳理的能力。加油!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章