來源:http://blog.renren.com/share/228707015/7197269922
作者 : 龐宇
CVPR2011正在如火如荼的進行中,在網上能看到的部分文章中,我終于找到一篇讓我眼前冒光的文章。雖然,其實,也許,主要的理由是我好不容易能看懂一篇。不過,這并不妨礙該文章定會成為今年CVPR的一朵奇葩這件事。不過它肯定拿不了best paper啦,因為它只是篇poster,但我猜也許是組委會認為如果讓他們當oral,大牛現場賣萌會雷死觀眾,并可能引起大面積恐慌。
鑒于我沒有找到更好的平臺共享這一發現,就只好先放到校內了。不過這個主題不光是對計算機視覺的人有意義,只要是搞數據的人都會有些用處吧。
文章題目是:Unbiased Look at Dataset Bias,無偏見的研究數據集偏見。首先看看作者,一個是MIT的Antonio Torralba,另一個是CMU的Alexei A. Efros。 MIT和CMU在計算機視覺領域是兩個絕對的巨人,無人能望其項背。這兩個人這幾年剛拿到副教授職位,而且又是那種論文又高產又高質的家伙。要注意哦,這篇文章沒有研究僧,也就是說,這是一篇大牛和大牛的強強聯合之作。也正是如此,該文章發揮出了大牛賣萌的極致。滿篇充斥著“矮油”(alas),“讓我們玩兒個游戲/玩具實驗(toy experiment)”等等,各種你很難在一般論文里看到的搞笑語言。特別是文章的致謝和聲明:
The authors would like to thank the Eyjafjallajokull volcano as well as the wonderful kirs at the Buvette in Jardin du Luxembourg for the motivation (former) and the inspiration (latter) to write this paper. “作者要感謝埃Eyjafjallajokull的火山(就是2010年冰島那個倒霉的讓歐洲航線大面積癱瘓的火山)以及Buvette in Jardin du Luxembourg(法國一個酒吧)的美味基爾酒,前者給了我們寫作的動機,而后者給了我們靈感。”我猜測是那個時候他們在法國開會,結果被火山給關在那兒了,幾個無聊的人只好跑去酒吧喝酒,于是在酒精的刺激下想出了這個題目。唉,大牛就是大牛,這種時候都能搞出這樣一篇文章,讓我等草民怎么活啊,以后天天去喝酒好了。
Disclaimer: No graduate students were harmed in the production of this paper. Authors are listed in order of increasing procrastination ability.
聲明:沒有研究僧在制作論文的過程中受到傷害(喂喂,難道研究僧是保護動物么?那有木有研究僧保護協會啊?啊?有木有?)。作者是按照拖延癥的程度順次遞增排列(看來大牛們也有同樣問題)。
如此搞笑的文章,真的讓人欲罷不能。關鍵是兩位大牛在瘋狂賣萌的同時,適時的提出了一個計算機視覺界一個極富有爭議的問題,并做了很好的分析,可能會在未來很多年掀起一個風氣。不得不說,兩位大牛挖了一個超級NB的大坑。來來來,讓我們一起跳下去吧。
計算機視覺里面很大一塊是在做物體檢測、識別、分類(object detection, recognition, classification)。為了公平的比較不同的算法,大家就設計出了很多數據集(dataset)作為基準(benchmark)來比較算法的性能。所以,當你閱讀了灰常多的論文后,你會發現,大家的實驗部分都會說:在某某個數據集上我的算法是最牛X的;在某某數據集上我的算法和當前最牛X的其他地方差不多,但速度快/準確率高/誤報率低;雖然我的算法在某數據集一般,但幾個數據集一平均,我的最牛X…… 但是,這些數據集真的可以評價算法的優劣么?兩位大牛向這些數據集提出了挑戰。
首先,咱玩兒個游戲,叫連線配對,下面的每組圖片都是從同一個數據集挑出的,請把他們和正確的數據集名稱對應起來:
在他們的實驗室(大家都是搞這些的),所有人配對的正確率超過75%。其實隨便看看也能看出門道,有的數據集就是車,有的就是自然景色,有的就是局部場景,有的就是實物,有的就是干凈背景,有的就是專業攝影師拍攝的,有的就是隨便找的等等。所以,盡管大多數數據集都號稱“我們盡可能的多樣化,非刻意的人工的(in the wild)尋找樣本”,但事實上還是帶了偏見了。為了驗證這個假設,他們用最簡單的一些特征訓練了一個12路分類器,結果,分類效果還不錯,每類分正確的比例最小也有20%,有6個超過30%,1個超過99%,要知道隨機猜對的概率只有1/12 =8%。而且當訓練數據慢慢增多到每類1000個時,正確率還沒有收斂的跡象。一般來說,分類效果越好,證明兩個類別的區分度越高,也可以說不同的數據集來自“不同的世界”,而隨著樣本量增加,還很有可能區分度越來越高。我勒個去,你們都說自己“多樣化”的描述了這個世界,而實驗卻證明你們表現了不同世界,你們太坑爹了!特別是Caltech101,人家分類器正確率都99%了,你到底描述了一個多么簡單的世界啊!桑不起啊桑不起!大牛指出,和機器學習領域不同,它們的數據集就是它們自己的世界。而視覺領域不同,于是大牛把這些“偽世界”稱為“Corel世界”“Caltech101世界”“PASCAL VOL世界”等等,還是非常形象的。
那么換個角度,不同數據集中的同一個物體(例如車、人)會不會相對比較相似呢,如果相似不就說明他們還是展現了同一個世界,只不過角度不同嘛。
遺憾的是,即使是同一種物體,偏見還是大大的存在,人眼都看的出來!為了謹慎,作者還是對上述5個例子做了相同實驗,結果分類器正確率61% 遠大于隨機猜對的20%。所以,別說你們什么“多樣化”了,神馬都是浮云,事實證明,沒有偏見的數據集到現在還沒出生呢。
文章的小標題寫作“序幕”(prologue)…..“尾聲”(epilogue),二位果然是在演一臺賣萌大戲啊。文章首先回顧了視覺領域數據集的發展史,然后聲討了一下數據集帶給這個領域的壞處。“這個領域過度的追求數據評估,浪費很多時間在precision-recall曲線上而不是在像素上”,“現在的研究都是在前人基礎上,而很少有完全創新工作,因為全新的工作剛開始肯定拼不過那些經過認真細致調教的算法”,“大家越來越多的關注自己的算法在某一個數據集上勝出,而從不考慮它是不是有統計顯著性”。大牛啊,你們道出了我們的心聲啊!!大牛還說,從發展史看出,盡管我們不停的說要避免“偏見”,但每一個新數據集都不可避免的進入了另一種“偏見”,如果不搞明白到底錯在哪兒,我們注定會繼續錯下去的。
如果要談“偏見”我們就得有個標準,即觀測者和任務(人看到的世界和鳥看到的肯定不同)。好吧,那我們就定義“給定人類感受到的典型視覺環境世界,任務是去檢測其中的常見物體”。那么“偏見”就是拿一個數據集和真實視覺世界作比較。而真實世界,呃,我們得拿另一個數據集做代表,而另一個數據集,呃,它還是帶偏見的。腫么辦?腫么辦?還是大牛比較聰明,他們提出了如下方法,即交叉檢驗。
用一個數據集上訓練的分類器去分類另一個數據集。因為我們前提假定這些數據集都是在描繪同一個世界,那么就可以分出優劣了。具體的任務分為兩個,一個叫做分類(classification),即給定一張圖,指它是否包含某個特定物體。一個叫做檢測(detection),即給定一張圖,找出所有特定物體并指出它們的位置。 實驗結果表明,兩個任務基本都是,在任一個數據集上做的分類器,在其數據集上的效果都會變差,平均而言下降了40%左右,是非常顯著的。而且要不是因為有Caltech101和MSRC這兩個各種簡單的數據集罩著,可能下降更多。
作者分析偏見的罪魁禍首估計是這么幾個:1.“選擇偏見”,大家更偏愛選擇某類數據,例如風景、街景、或用關鍵詞搜索的網絡圖片。2.“拍照偏見”,攝影師更喜歡用相似角度拍同一種物體。3.“標簽偏見”,特別是語義分類的時候,同種東西可能有不同稱呼,例如“草地”“草坪”,“繪畫”“圖片”。4.“負樣本偏見”,對于分類器而言,想要分出來的東西是正樣本,其余都是負樣本。一般來說,負樣本應該是無窮大的,但實際上,我們只能用有限多的負樣本。那么這些有限的負樣本有代表性么?足夠了么?
我們再做個實驗,對每個數據集用它們自己的正負樣本訓練分類器,但測試時,從所有的數據中挑選負樣本。如果錯分率增加,說明其他數據集的負樣本被這個分類器當成了正樣本,進一步說明不同數據集的負樣本是不同的。結果也證實了我們的猜測,有3個數據集中招了,錯分率增加了20%,但ImageNet,Caltech101, MSRC沒有中招。據分析,ImageNet確實負樣本豐富多樣,這個實驗沒有給它造成困擾。但是,另外兩個嘛,你們太特么簡單了,簡單到不會分錯啊。簡單的數據集尼桑不起啊!
至于是否足夠?這里作者提出了一個有意思的問題。當我們要分類“船”的時候,假如你的船樣本都在水里,你怎么知道“懶惰的”分類器不是提取了“水”或者“岸”的特征呢?因此這確實很重要,但限于要求有大量的人力標定工作,暫時還沒有做,不過有了Mechanical Turk我們可以以后慢慢來。
討論完數據集的偏見,我們可以討論一下數據集的價值,特別偏見的價值就少,無偏見的價值就應該高。想象一下如果我們想提高一個分類器的準確率,當然牛X人選擇改進特征、物體表示方法以及學習算法,而簡單些的則是擴大樣本數量。但討厭的是,樣本數量的增大和準確率的提高是一個倒霉的對數關系,要想增加一點兒準確率,需要指數級增長的樣本量;另一方面,如前所述,如果增加了不是同一種“偏見”關系的樣本,可能還會造成負增長。
那么問題來了,我們到底能不能用一個數據集的樣本去提高另一個數據集的準確率呢?或者說怎么定義它們的關系呢?神奇的大牛給了我們如下方法:
假設從A數據集用1000個樣本訓練出的分類器,測A的數據集得到的平均precision-recall值(一種正確率)是30,又假設用B數據集訓練出的分類器測A數據集,要想得到30的值需要5000個樣本。 那么這兩個數據集的關系就是1000/5000 = 0.2,也就是說一個A中的樣本值0.2個B中的樣本。
這樣一來,數據集市場就呈現出這樣一種兌換關系,要想在PASCAL的市場上將用1250個訓練出的分類器增加10%的準確率,那么你需要1/0.26125010=50000個LabelMe樣本,好不值錢啊!而且你會發現,每個數據集都是“我的市場我做主”,其他數據集在自己市場永遠是不值錢的。所以如果你要問,如果用當前的數據集訓練一個真實世界的分類器,這些數據集值多少錢呢?那我的回答恐怕只能是“聊勝于無”了。
也許會有人說,這不是數據集的錯,而是你的表示物體的方法、訓練算法有問題,最終都會“過學習”使得看上去是數據集的錯。你看,我們人類學習時候也只見過一小部分實例,但我們的視覺系統克服了這個問題學到了正確的東西。好吧,大牛說,咱退一步,至少現在還不要把所有的錯都推給算法,畢竟,如果你的數據集只給出了“從后面觀看的賽車”是汽車,你不能期待我的算法能告訴你“側面看過去的家庭轎車”也是汽車吧。
而就目前情況來看,哪些數據集不錯,哪些比較垃圾呢?大牛說,毋庸置疑,Caltech101和MSRC,你們該下崗下崗,該回家回家,趕緊洗洗睡吧。而PASCAL VOC, ImageNet, SUN09看上去還湊合,也許我們正朝著正確的路在走。
那我們是不是應該關心我們的數據集的質量呢?大牛說,如果你只關心把你的數據集變成一堆特征向量并拿去機器學習的算法里去學習,那就不用管它了。而如果你想弄一種能理解真實世界的算法,那數據集的質量就至關重要了。
那么我們小弱們到底該怎么做呢?大牛解釋道,你們應該先試著做做交叉檢驗,我們很愿意公開代碼和數據集(小弱們開始歡呼雀躍)。大牛繼續說道,我們再給出幾個建議供你們制作數據集時參考:對于“選擇偏見”建議你們從多種源獲取,例如不同國家的不同搜索引擎,或者你們找一堆沒人標記過的圖片,然后人肉做標記;對于“拍照偏見”,(嘿嘿,大牛莞爾一笑)你們有沒有注意過,google image搜索“mug”絕大多數杯子的手柄都在右邊。對于這類問題,我們建議你們做做圖像變換,翻轉啦,扭曲啦神馬的。而對于“負樣本偏見”,你們可以加入其他數據的負樣本,或者用一些標準算法從沒標記過的樣本中搜索那些不容易區分的負樣本。但這同樣是帶偏見的,即“增加你算法的難度”偏見。
最后,大牛略作謙虛的表示,盡管標題是“無偏見的”,但也許我們自己的偏見已然融入了文字中。不過本文的目的是希望大家來一起討論一下這個重要但又一直被忽略的問題。
至此,文章戛然而止,留給了我們無限遐想的空間。此文一出,炸開了好大一個坑,不知道多久會被灌滿。冥冥之中也得罪了不少人,“我們還想靠著不同數據集的結果吃飯呢!”“我們的方法只能在這個數據集上行得通,你還讓不讓我們發表了!”“我的結果就是比你的好1.7%,怎么樣怎么樣!”當然,一群小牛也要跟上,趕緊做交叉檢驗,趕緊提出各種理論,爭取早日灌滿此坑。而至于我們這些小弱們,唉,還是不玩兒這么高端的了。老板讓干嘛就干嘛,偶爾看看如此賣萌的大牛們就心滿意足了。各種羨慕去參會的人們,你們趕緊發游記發pp發總結!!!!
文章列表