前陣子在讀ICCV的paper時,有兩位作者引起我很大的興趣,原因不在於論文的好壞,而是他們把自己做實驗時的研究方法公開在網頁上。
為什麼說這是一件重要的事情呢? 這要先岔題一下:
在電腦視覺的領域,一篇好的研究,除了理論完整、實驗漂亮之外,能否讓其他人重複得到該作者的實驗結果也是非常重要的。
目前在這個領域,已經有公用的測試資料庫供大家使用。想像一下,說假設我提出一套方法,可以找出照片中的行人,要評估我的方法好壞,可以用一組前人已經做過實驗的照片,用他們的結果來比較。而這樣的比較結果,自然是放在我的論文之中。不過問題來了,當有人質疑我的實驗結果時,他們必須用想辦法重現我的實驗結果,不過這是一件很困難的事情。
困難的理由在於,首先你要把我的方法寫成程式,這是一件很花功夫的事,然而當你寫好程式之後還有一個難關,在電腦視覺這個領域中 (電腦科學的很多領域也是),
一個演算法之中會有很多參數,而參數的設定不同就會造成實驗結果的差異
類比一下,好比說我給你一份食譜,裡面說要加牛肉幾兩、油、鹽、糖幾匙等等
如果我今天漏掉了其中一樣東西的分量,那你就只能自己嘗試,找出最好的分量,
不然味道就會差一點
令人驚訝的是,論文中就是會把很多參數給漏掉
這其實也不能責怪作者,當你的系統大到一個程度時,你自然不可能巨細靡遺的把每個參數寫在論文上面,尤其是當這些參數是跟你的演算法無關的部分。
面對這種情況,
許多論文作者並不會主動提供這些資訊,比如說放在個人網頁上面等等
有時候當你寫信去問時,得到的回覆可能是"抱歉,我的程式不知道放在哪個硬碟了"
這通常不是作者敷衍你,而是一個常見的情形,因為研究題目可能兩三年就會有變動,之前寫的程式往往不能再用(啊哈!你想到軟體的重複利用,但是研究人員不一定具有好的軟體工程能力)
比較好心的作者會把他的程式碼公開,讓其他的研究者可以輕鬆的重複實驗,
這樣子通常可以獲得回報:會提高其他研究者引用他的論文的意願,
而論文的被引用次數,是一個研究者最直接也是最重要的指標(甚至比發表的論文數目還重要)
回到一開始,Brian Fulkerson 和 Andrea Vedaldi 這兩位研究員,他們不只公開程式碼,同時也整理了整個實驗的架構,告訴你可以修改那些地方,讓你能在他們的基礎上來改進這個系統。這才真正的站在巨人的肩膀上! (當然這是指在學術界啦,在業界的話這可是公司賴以生存的寶物,怎能輕易公開!)
(未完待續)
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment