實驗的嚴謹性

今天跑了個incremental的程序, 因爲一次實驗結果很讓人滿意,就認爲自己的程序是正確的了。其實相信很多人都是這樣,自己寫好的程序,隨機樣本跑一遍,結果不錯,然後就認爲此程序正確了。之後我用此程序的改進版做了很多實驗,結果有好的,也有不好的,這就不應該了,一個正確的程序的結果應該是穩定的,即使是隨機取值,也不應該有低的離譜的結果出現。於是我將自己的方法的batch版本與標準的LDA程序進行了結果的比較,發現accuracy的差別時大時小,經過仔細分析後,終於發現我的實驗中,對樣本的隨機抽樣的方法與標準LDA程序的方法有一點差別,雖然在程序上只是一行代碼的位置寫錯地方了,但是結果卻千差萬別。

 

其實看過很多recognition方面的paper,他們的實驗部分有的嚴謹,有的牽強,有的需要調參數,有的是一些算法公式上的小trick,從而,可想而知,很多paper的方法也許是理論上就不能很好work的,也許是包含一些小的不易覺察的錯誤,而卻自以爲是的認爲自己的結果是對的。。。

 

實驗部分的嚴謹性是不能被忽略的,在理想的實驗條件下都不能很好work的方法,在實際中就更加難以應用。實驗的設計,並不是別人都用什麼方法,自己就要用什麼方法,也許很多人云亦云的實驗方法根本就不合理。針對自己的方法,適宜的設計實驗,才能更明確地體現出自己所提出的方法的優越性。對待實驗的嚴謹程度,甚至是別人重複你的實驗的時候,可以得到與你相同的結果,而不是其中還隱藏着種種讓人猜不到的trick

 

經過看一些嚴謹的paper的實驗,深深感到,用statistical 的方法,樣本的選取就要random到底,對於database中的所有樣本,用最最隨機的方法,多次求平均,或是用leave-one-out這種能求出期望結果的方法,得到的結論纔是經得起考驗的。並不是精心挑選可行樣本後,隨便run一次,或隨機run幾十次,求個平均,取個最好結果了事。

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