不少作research的朋友喜歡top-downapproach,包括我本身。就是說,在開始一個topic的時候,在第一時間就設定了大致的formulation,model又或者methodology。至於選擇哪一種設定,每每取決於研究者自己的偏好,知識背景,或者對問題的第一反應。算法
接下來的事情就瓜熟蒂落了,推導數學模型和相關公式以及算法步驟,而後設計程序進行實驗。固然少不了再拉上幾個相關工做,比較一番。若是本身的設計很幸運地有明顯的improvement,因而很是滿意,開始寫paper(在很多狀況下,paper的理論部分甚至提早寫好了)。但是,若是不work呢?一般你們會採起下面一些方法中的一種或者幾種:數據結構
不管如何,你總算把實驗搞定了。可是,爲何work呢?除了幾條曲線,你總得找一些「讓人信服」的理由。在我所在的領域,有一些理由幾乎是萬能的,於是廣泛出如今paper裏面:app
還有不少,不一而足。整體來講,就是增長了某方面的複雜性,推廣了模型,或者把某些部分變得更加時髦,數學更深。正由於多了東西能夠調節,只要花上足夠時間去設定參數,仍是有很大機會能找到一組能獲得improvement的參數的。但是,這種improvement是否是真正有意義呢?是否是足夠significant,以致於所增長的複雜性是值得的呢?性能
咱們的世界老是無限複雜的,和無數的因素相關,這些因素又老是有某種聯繫。咱們的前輩們留給咱們的最好的方法,就是從問題中分離出最關鍵的要素,和最重要的關係,而非不斷地增長價值不大的因素,創建意義不大的聯繫。.net
我並非一個徹底拒絕複雜,可是我我的以爲對複雜性的增加應該慎重。每增長一個要素,都應該是基於對問題的深刻分析,而不是先入爲主的設想和堂而皇之的理由。這不徹底是知識能力的問題,更多的是一種治學態度——是否是願意安心下來對問題自己進行深刻細緻的解剖,找出問題自己的關鍵所在,而不是脫離問題預先構想某種「漂亮」模型或者「巧妙」方法,而且經過上面所述的種種方法推銷出去。設計
研究是一種創新的過程,廣拓思路是必須的。可是真正有價值的novelty應該是創建在對問題自己的深刻理解,確實發現了別人忽略的關鍵因素,或者主流算法的真正不足,而且創造性地提出解決方法。這須要鍥而不捨的努力。真正經得起考驗的學術價值,源於解決尚未被解決的問題,而不是使用了某種所謂別人沒用過的「新穎」方法來解決原本已經解決的問題,又或者給模型加入某個要素來取得非實質性的性能改進。orm
上面所說的這些問題,幾乎都發生在個人身上。而湯老師的不少建議,其實正是指出了這些問題,卻沒有被我認真思考,反而老是覺得只要理論作得高深,模型設計得精巧,就是好的工做。來了MIT以後,更多地閱讀一些有歷史價值的文章(如今看CVPR反而比較少了),接觸一些更加solid的工做。許多有重要貢獻的工做,每每未必有很炫的方法和模型,可是,其對於問題自己的深刻發掘和洞察卻令我慚愧。get
要作真正的學問,首先要戒除浮躁。數學