1. 程式人生 > >怎樣做研究(五) 劉挺

怎樣做研究(五) 劉挺

怎樣思考

1、把問題定義清楚

有的同學做了很長時間的課題,還沒有把問題定義清楚。以自動文摘問題,好像就是把一篇文章中的核心內容提取出來嗎,還怎麼定義,其實不然。文章是什麼樣的文章?議論文、記敘文、還是說明文,還是包括小說之類的文學作品?文章的來源是哪裡?是《人民日報》等用語非常規範的文章,還是網路文體,比如blog或BBS上的文章?文章有沒有長度上限,10萬多字的博士論文是否需要提取摘要?能否對多篇話題相同的文章一起做摘要?再說摘要,適用於閱讀的報道性文摘,還是用於判定主題相關性的指示性文摘?有字數限制還是比例限制?是否根據使用者的需求有所偏向?對文摘的連貫性有沒有要求?怎樣評價一篇文摘的質量。只有把問題的初始狀態(此處為原文)和問題的終止狀態(此處為文摘)搞得一清二楚才敢說問題定義清楚了。“知止而後定”,問題定義清楚了,把子立好了看清了,心也容易靜下來,再怎麼做工作始終圍繞一個目標,這樣的工作才不會左右搖擺,才有意義。

2、 思維邏輯要乾淨

思維邏輯啊,思維邏輯!我越來越覺得這是一個人從事科研工作的最重要的素質。我的學生有兩種,大多數人的思維是非常乾淨的,而確有少數同學的思維是混亂的、粘滯的。思維邏輯混亂的同學需要通過不斷的自我認識,找出自己的誤區,否則在前進的過程中會步履維艱。打一個比方,人腦好比一臺計算機,閱讀資料是資料輸入,加工處理則要靠思維邏輯,思維邏輯如果混亂就彷彿是程式有Bug,輸入的資料再充分再正確也無濟於事,甚至由於處理能力有限,輸入的閱讀,處理起來越亂。

有的同學還鑽牛角尖,抓住一個很細節的無關緊要的問題不放;有的同學思維的跳躍性非常大,一會在問題的高層思考,還沒有討論清楚,忽然又跳到一個底層的細節上;有的同學聽不進別人的意見,滿腦子只有自己的聲音;有的同學不懂得矛盾對立統一的道理,總想把問題絕對化,造成自己很大的困擾;有的同學做慣了開發,總是想著怎麼把一個系統實現,而不是把注意力集中在創新上;有的同學不善於剖析問題,分析資料,不懂得先分析再綜合的思維方法,總是在問題的表層打轉轉,始終無法深入。。。。。。

計算機大學本科專業科中的不少內容在今後的工作中都不能夠直接地排上用場,但是有一位在醫科大學教計算機課程的老師向我反映,她叫醫科大學的學生編寫程式非常困難,因為思維邏輯完全不對,醫學需要大量的死記硬背,而很多病症都是模模糊糊,需要大量經驗,而計算機的思維是非常嚴謹周密的。教管理學院學生的,教人文學院學生學習計算機的老師們也都有自己不同的感受。這是什麼原因呢?原因就是計算機本科專業科,比如離散數學(包括數理邏輯)、演算法與資料結構、高階程式設計等課程給計算機專業的學生奠定了一些思維邏輯上的基礎,思維方式在無形地對一個人未來的工作發生著重要的影響。

我有一個同事是從理科轉過來學計算機的,我和他就明顯不同,他很少程式設計,但每次做了一個試驗後,他習慣於花大量的時間對資料進行分析。而我對資料分析不夠重視,思維傾向於怎樣巧妙地把搞出一套方法來,實現一個系統,解決一個問題。理科偏重於解釋世界,工科偏重於實現系統。我們只有通過不斷的內省,發現自己的思維方式,善加利用,有所修正,才能夠順暢地開展科研工作。

3、分析與綜合

分析與綜合是兩把思維的利器,一定要好好運用。通常一個問題來了,我們感到無所適從,不要著急,請先使用“分析”這把“刀”,把問題劃分為若干子問題,子問題之間的關聯越少說明這一刀砍的越是合理,如果實在非要“連著骨頭帶著肉”,也沒有關係,但是要記錄下子問題之間的照應關係。子問題如果很容易解決了,就是本原問題,不用再分,如果還是比較複雜,可以進一步分析,得到一些“孫子”問題。經過深入分析,一個貌似強大的問題已經被我們看得清清楚楚,每個本原問題都比較容易找到解決方法了,研究者的精神也可以放鬆一下。

但是,搞研究不是做工程,不能滿足於用打補丁的辦法解決一個具體問題。在分析之後,還有在拿起另一把武器“綜合”,“綜合”的作用是合併同類項,比如通過對子問題1、4、5的考察覺得這個問題象是一個球體,通過對子問題2、3的考察覺得這個問題象是一個圓形平面,經過歸納則可以給這個問題建立起“半球體”模型,很可能就接近真實情況。歸納後可以演繹一下,看看靈也不靈,那就是用測試資料進行測試了。

概括地說,分析是分類並考察每一類的特徵,分析是顯微鏡,幫我們看清了問題的每一個細節。綜合是儘可能地找出統一的模型概括各類現象,統一的模型可能是多個模型的融合,但最好不是簡單拼接,而是鐳射焊,在分子層面把多個模型融為一體。分析決定深度,綜合決定高度,缺一不可。

順便給出一個觀點:普遍認為國記憶體在著低水平充分研究的現象,比如搞搜尋引擎,從很少有人涉獵到一下子冒出很多家來,都在搞搜尋引擎,而且大多數都處於起步階段,難分伯仲。大家都覺得研究空間狹窄,競爭激烈,但又不知道怎樣解決這個問題。其實對一個課題進行深入分析,把大課題分解為小課題,各家不搞大而全,或者即使全,但在“全”中都有自己明確的重點,比如專注於搜尋引擎中的分散式計算問題,或專注於跨語言檢索問題,或專注於問答系統等精準搜尋,等等。對於規模小一點的組,甚至可以專注於更細的問題,比如問答系統中的問題分類,跨語言搜尋中的查詢翻譯及擴充套件等。我們知道大樹的根,越深的地方分差越多,覆蓋的泥土空間也越大,研究也是這個道理,都浮在表層,就會感到空間狹小,如果深入下去空間就大了,不容易撞車。而且在一個細分的問題上,可以集中優勢兵力作出突破性的成果來,又因為研究同一個細分問題的學者相對較少,研究工作的積累也相對不足,你動一動就可能做出新的成果來。因此,我的建議是:深入、深入,再深入。

4、 創新思維

嗚呼哀哉,我的弟子中真正有創新能力的寥寥無幾啊。我一直在思考如何挖掘和培養學生們的創新能力,在此談談自己的想法。

創新是科研工作的靈魂!“不創新,無寧死”,每個科研人員都應該有這種決心。科學界沒有“省級運動會”,“全國運動會”,只有“奧運會”。你說你是中國首次提出“狹義相對論”的人,毫無意義。那麼,創新就應該是在世界上內第一個提出某個想法的人,如果你的想法在地球的某個角落裡已經有人提出了,那就不是創新,那就是重複,是浪費科研資源,浪費人力物力。人生短暫,大多數芸芸眾生都在幹著日復一日的重複勞動,有幸成為科研工作者,可以表現一下自己獨特的想法,何其快哉,如果拾人牙慧,又何其痛哉。


創新這件事沒有固定的套路,如果有,就好像炒股票有了確定的獲利方式一樣,大家就都能賺錢,都能創新了。我很喜歡岳飛的一句話:“運用之妙,存乎一心”。史書記載:岳飛英勇善戰,受到宗澤的賞識和器重。一次宗澤召見岳飛,說:“爾智勇才藝,世良將不能過,然好野戰,非萬全計。”因向飛傳授作戰陣圖。飛說:“陣而後戰,兵法之常,運用之妙,存乎一心。”宗澤聽了以後,深為讚賞。搞研究象打戰一樣,固定的陣法戰法也有,但真的想取勝需要“奇兵”,所謂“以正合以奇勝”。怎麼出奇,完全靠指揮員的心思一轉。

什麼樣的人擅長創新的,我覺得首先是那些平素喜歡天馬行空胡思亂想的人,孔子有一個非常有才具的學生叫子貢,但孔子說他只能問一知三,說他不如顏回,顏回能夠問一知十。觸類旁通,在自己的識體系內利用各種相似性建立關聯,就為創新創造了條件。“草聖”張旭的草書是從公孫大娘劍舞中悟出的,因為張旭通過多年苦練對書法的基本技巧已經爐火純青,再想發展在書法本身上已經很難汲取新的營養,最後他從劍舞中悟到了獲得了新的草書結構,藝術上峰迴路轉,又上層樓。

有不少同學,做研究只看和自己的課題最相關的文章,如果是一個新的領域,文章很少,他就會感到很苦悶,他更不知道從領域之外後的靈感了。搞文字檢索的人,要了解一下影象檢索的知識,從中可以獲得啟發,反之亦然。語言模型原來就是在語音處理中使用,現在卻成了文字處理領域最成熟的理論方法。類比、嫁接從來都是創新的重要手法,視野不開闊,只知道自己眼皮底下的一點點東西,始終跳不出自己給自己設下的思維陷阱,是無法提出新想法的。

創新還必須從自己獨特的體驗中來。以詩歌為例,詩反映的就是一個人獨特的生命體驗,因此最忌諱用一些大眾常用的泛泛的詞彙,比如形容長江大河,不能說“浪濤洶湧”,要說“驚濤拍岸,捲起千堆雪”。搞研究也是如此,要用你自己的眼睛去觀察資料,發現別人沒有發現的特徵,發現別人沒有發現的故障點,找到別人不曾用過的觀察視角重新觀察你的研究物件,人與人的閱歷不同,觀察和思考問題的方式各異,如果你能夠再重複調研的基礎上,以“我”為主,把自己的原始體驗經過歸納總結表達出來,那麼即使是很小的一點進步,因為與眾不同,那也是一個有價值的創新。何況,在你這一個課題上,全世界能夠有個人堅持不懈地幹上兩年三年,並不多,就怕你沒有自我,只要堅持你自己,表達你自己,即便資質差一點,也一定能夠有所創新。

創新有種種,開闢一個新的領域,提出一個新的問題,是大的創新。在研究生階段不容易做到,可以先紮紮實實地做一些方法層面的創新。方法上的創新也有大小之分,“模型創新”就屬於比較大的創新,“模型”永遠不等於“實際”,模型是對實際的最大限度的逼近,對於相同的輸入,好的模型能夠給出與真實情況更接近的輸出。比如資訊檢索中有向量空間模型,這個模型因簡單而常用,但是他沒有考慮詞項之間的關聯,如果能夠提出一種新的模型,把詞項之間的專案制約關係也考慮進去,就有可能獲得和更好的效果。這種創新還比較直接,如果能夠徹底推翻向量空間模型,提出類似LSI(隱性語義索引)之類的模型,則是更大的創新。再比如長尾真提出基於例項的機器翻譯,就是思維一轉,對翻譯過程看成例項匹配,而不是查詞典和調序,這屬於比較大的創新,也是我認為很有意義的創新。

如果提出新的特徵,或新的特徵抽取方法,或採用別人在該問題上沒有用過的機器學習方法等,只要能夠說出道理來,也都是創新,只是不那麼激動人心而已。

創新思維是求異思維,不是求同思維,高人出手,變化多端,無所不用其極。要從東西南北,上下左右去觀察事物,如果面對的事物太龐大,壓扁了再處理行不行?切成碎片再處理行不行?燒化了變成水再處理行不行?在地面上實在處理不了,運到海底行不行,送到空間站上行不行?影象處理中有從空域到頻域的變換,在空域裡剝離不了的噪聲到了頻域裡很容易分辨出來;在詞義消歧中,bank不知道是“河岸”還是“銀行”,放到巨集觀上下文一看,比如知道這邊文章是金融類的,那它十有八九是“銀行”。

創新是要“悟道”,很多時候要靠直覺,直覺就是大腦的平行計算,它把各種資訊綜合在一起,給出答案來。因此,你的靈感來了,要趕緊抓住,我有時有了好點子,身邊沒有紙筆,就感謝寫到手機裡,生怕忘記。