本文來自於MIT的人工智慧實驗室,創作於1988,雖然有30多年, 但作為新進碩士博士研究生的參考,寫的絕對精闢,奉為經典。中文譯本由北京師範大學資訊學院2000級博士生柳泉波完成。
1. 簡介
並沒有什麼神丹妙藥可以保證在研究中取得成功,本文只是列舉了一些可能會有所幫助的非正式意見。
目標讀者是誰?
本文件主要是為MIT人工智慧實驗室新入學的研究生而寫,但對於其他機構的人工智慧研究者也很有價值。即使不是人工智慧領域的研究者,也可以從中發現對自己有價值的部分。
如何使用?
要精讀完本文,太長了一些,最好是採用瀏覽的方式。很多人覺得下面的方法很有效:先快速通讀一遍,然後選取其中與自己當前研究專案有關的部分仔細研究。
本文件被粗略地分為兩部分。 第一部分涉及研究者所需具備的各種技能:閱讀,寫作和程式設計,等等。 第二部分討論研究過程本身:研究究竟是怎麼回事,如何做研究,如何選題和選導師,如何考慮研究中的情感因素。很多讀者反映,從長遠看,第二部分比第一部分更有價值,也更讓人感興趣。
- 如何透過閱讀打好AI研究的基礎。列舉了重要的AI期刊,並給出了一些閱讀的訣竅。
- 如何成為AI研究領域的一員:與相關人員保持聯絡,他們可以使你保持對研究前沿的跟蹤,知道應該讀什麼材料。
- 如何學習AI相關領域的知識。對幾個領域都有基本的理解,對於一個或者兩個領域要精通。
- 如何做研究筆記。
- 如何寫期刊論文和畢業論文。如何為草稿寫評審意見,如何利用別人的評審意見。如何發表論文。
- 如何做研究報告。
- 有關程式設計的。AI程式設計與平常大家習慣的程式設計有所不同。
- 有關研究生涯最重要的問題,如何選導師。不同的導師具有不同的風格,本節的意見有助於你找到合適的導師。導師是你必須瞭解如何利用的資源。
- 關於畢業論文。畢業論文將佔據研究生生涯的大部分時間,本部分涉及如何選題,以及如何避免浪費時間。
- 有關研究方法論,尚未完成。
或許是最重要的一節:涉及研究過程中的情感因素,包括如何面對失敗,如何設定目標,如何避免不安全感,保持自信,享受快樂。
2. 閱讀
很多研究人員花一半的時間閱讀文獻。從別人的工作中可以很快地學到很多東西。本節討論的是AI中的閱讀,在第四小節將論述其他主題相關的閱讀。
閱讀文獻,始於今日。一旦你開始寫作論文,就沒有多少時間了,那時的閱讀主要集中於論文主題相關的文獻。在研究生的頭兩年,大部分的時間要用於做課程作業和打基礎。此時,閱讀課本和出版的期刊文章就可以了。(以後,你將主要閱讀文章的草稿,參看小節三)。
在本領域打下堅實的基礎所需要的閱讀量,是令人望而卻步的。但既然AI只是一個很小的研究領域,因此你仍然可以花幾年的時間閱讀本領域已出版的數量眾多論文中最本質的那部分。一個有用的小技巧是首先找出那些最本質的論文。此時可以參考一些有用的書目:例如研究生課程表,其他學校(主要是史丹佛大學)研究生錄取程式的建議閱讀列表,這些可以讓你有一些初步的印象。如果你對AI的某個子領域感興趣,向該領域的高年級研究生請教本領域最重要的十篇論文是什麼,如果可以,借過來影印。最近,出現了很多精心編輯的有關某個子領域的論文集,尤其是 Morgan-Kauffman出版的。
AI實驗室有三種內部出版物系列:Working Papers,Memos和TechnicalReports,正式的程度依次增加,在八層的架子上可以找到。回顧最近幾年的出版物,將那些非常感興趣的複製下來。這不僅是由於其中很多都是意義重大的論文,對於瞭解實驗室成員的工作進展也是很重要。
有關AI的期刊有很多,幸運的是,只有一部分是值得看的。最核心的期刊是Artificial Intelligence,也有寫作"the Journal of Artificial Intelligence "或者"AIJ"的。AI領域真正具備價值的論文最終都會投往AIJ,因此值得瀏覽每一年每一期的AIJ;但是該期刊也有很多論文讓人心煩。Computational Intelligence是另外一本值得一看的期刊。Cognitive Science也出版很多意義重大的AI論文。 Machine Learning是機器學習領域最重要的資源。IEEE PAMI(Pattern Analysis andMachine Intelligence)是最好的有關視覺的期刊,每期都有兩三篇有價值的論文。 International Journal of Computer Vision(IJCV)是最新創辦的,到目前為止還是有價值的。Robotics Research的文章主要是關於動力學的,有時候也有劃時代的智慧機器人論文。IEEE Robotics andAutomation偶爾有好文章。
附註: [中國計算機學會推薦國際學術會議和期刊目錄]
每年都應該去所在學校的電腦科學圖書館(在MIT的Tech Square的一層),翻閱其他院校出版的AI技術報告,並選出自己感興趣的仔細加以閱讀。
閱讀論文是需要練習的技能。不可能完整地閱讀所有的論文。閱讀論文可分為三個階段: 第一階段是看論文中是否有感興趣的東西。AI論文含有摘要,其中可能有內容的介紹,但是也有可能沒有或者總結得不好,因此需要你跳讀,這看一點那看一點,瞭解作者究竟做了些什麼。內容目錄(the table of contents)、結論部分(conclusion)和簡介(introduction)是三個重點。如果這些方法都不行,就只好順序快速瀏覽了。一旦搞清楚了論文的大概和創新點,就可以決定是否需要進行第二階段了。 在第二階段,要找出論文真正具有內容的部分。很多15頁的論文可以重寫為一頁左右的篇幅;因此需要你尋找那些真正激動人心的地方,這經常隱藏於某個地方。論文作者從其工作中所發現的感興趣的地方,未必是你感興趣的,反之亦然。 最後,如果覺得該論文確實有價值,返回去通篇精讀。
讀論文時要牢記一個問題, “我應該如何利用該論文?”“真的像作者宣稱的那樣麼?”“如果……會發生什麼?”。 理解論文得到了什麼結論並不等同於理解了該論文。理解論文,就要了解論文的目的,作者所作的選擇(很多都是隱含的),假設和形式化是否可行,論文指出了怎樣的方向,論文所涉及領域都有哪些問題,作者的研究中持續出現的難點模式是什麼,論文所表達的策略觀點是什麼,諸如此類。
將閱讀與程式設計聯絡在一起是很有幫助的。如果你對某個領域感興趣,在閱讀了一些論文後,試試實現論文中所描述的程式的“玩具”版本。這無疑會加深理解。[Nebula4] 可悲的是,很多AI實驗室天生就是孤僻的,裡面的成員主要閱讀和引用自己學校實驗室的工作。要知道,其他的機構具有不同的思考問題的方式,值得去閱讀,嚴肅對待,並引用它們的工作,即使你認為自己明曉他們的錯誤所在。
經常會有人遞給你一本書或者一篇論文並告訴你應該讀讀,因為其中有很閃光的地方且/或可以應用到你的研究工作中。但等你閱讀完了,你發現沒什麼特別閃光的地方,僅僅是勉強可用而已。於是,困惑就來了,“我哪不對啊?我漏掉什麼了嗎?”。
實際上,這是因為你的朋友在閱讀書或論文時,在頭腦中早已形成的一些想法的催化下,看出了其中對你的研究課題有價值的地方。
3. 建立關係
一兩年後,對自己準備從事的子領域已經有了一些想法。此時——或者再早一點——加入Secret Paper Passing Network是很重要的。這個非正式的組織是人工智慧真正在做什麼的反映。引導潮流的工作最終會變成正式發表的論文,但是至少在牛人完全明白一年之後,也就是說,牛人對新思想的工作至少領先一年。
牛人如何發現新思路的?可能是聽自於某次會議,但是最可能來自於Secret Paper Passing Network。下面是該網路工作的大致情況。Jo Cool有了一個好想法。她將尚不完整的實現與其他一些工作融合在一起,寫了一份草稿論文。她想知道這個想法究竟怎麼樣,因此她將論文的複製傳送給十位朋友並請他們進行評論。朋友們覺得這個想法很棒,同時也指出了其中的錯誤之處,然後這些朋友又把論文複製給他們各自的一些朋友,如此繼續。幾個月後,Jo對之進行了大量修訂,並送交給AAAI。六個月後,該論文以五頁的篇幅正式發表(這是AAAI會議錄允許的篇幅)。最後Jo開始整理相關的程式,並寫了一個更長的論文(基於在AAAI發表論文得到的反饋)。然後送交給AI期刊。AI期刊要花大約兩年的時間,對論文評審,包括作者對論文修改所花費的時間,以及相應的出版延遲。因此,理想情況下,Jo的思想最終發表在期刊上需要大約三年時間。所以牛人很少能從本領域出版的期刊文章中學到什麼東西,來得太遲了。你,也可以成為一個牛人。 下面是建立學術關係網的一些訣竅:有很多討論某個AI子領域(如連線主義或者視覺)的郵件列表,選擇自己感興趣的列表加入。
當與很熟悉本領域的人討論自己的思想時,他們很可能不直接評價你的想法,而是說:“你讀過某某嗎?”這並不是一個設問,而是建議你去閱讀某份文獻,它很可能與你的想法有關係。如果你還沒有讀過該文獻,從跟你交談的高手那裡得到該文獻的詳細資訊,或者直接從他那裡借一份複製下來。
當你讀到某份讓你感到很興奮的論文,影印五份送交給對之感興趣的其他五個人。他們可能會反饋回來很好的建議。
本實驗室有很多針對不同子領域的非正式(持續發展的)論文討論組,他們每星期或每兩星期聚會一次,對大家閱讀完的論文進行討論。
有些人並不介意別人去翻看他們的書桌,也就是說,去翻閱他們堆在書桌上的不久要閱讀或者經常翻閱的論文。你可以去翻翻看,有沒有自己感興趣的。當然了,首先要得到主人的許可,要知道有些人確實反感別人翻自己的東西。去試試那些平易近人的人。
同樣,有些人也並不介意你翻看他們的檔案櫃。實驗室中可是有很多學問精深的人,他們的檔案櫃裡也是有好多寶貝。與利用學校圖書館相比,這通常是更快更可靠的尋找論文的方式。
只要自己寫下了些東西,將草稿的複製分發給那些可能感興趣的人。(這也有一個潛在的問題:雖然AI領域的剽竊很少,但也確實有。你可以在第一頁寫上“ 請不要影印或者引用”的字樣以做部分防範。)大部分人並不會閱讀自己收到的大部分論文,因此如果只有少數人返回評論給你,也不用太在意。你可以如此反覆幾次——這是期刊論文所必需的。注意,除了自己的導師,一般很少將兩次以上的草稿送給同一個人。
當你寫完一篇論文後,將論文的複製送給那些可能感興趣的人。別以為人家自然而然地就會去閱讀發表論文的期刊或者會議錄。如果是內部的出版物(備忘錄和技術報告)就更不容易讀到了。
你保持聯絡的人越是各式各樣,效果就越好。嘗試與不同研究組,AI實驗室,不同學術領域的人交換論文。使自己成為沒有聯絡的兩個科研組交流的橋樑,這樣,很快的,你的桌子上就會冒出一大摞相關的論文。
如果某篇論文引用了自己感興趣的某些東西,做好筆記。 維護一份自己感興趣參考文獻的日誌。到圖書館去看看能不能找到這些論文。如果要了解某個主題的發展軌跡,可以有意地去做一張引用的“參考文獻”圖。所謂的參考文獻圖,是指引用組成的網:論文A引用B和C,B引用C和D,C引用D,等等。注意那些被經常引用的論文,這通常是值得閱讀的。參考文獻圖有奇妙的性質。一個是經常有研究同一主題的研究組相互不瞭解。你搜尋該圖,突然發現了進入另一部分的方式,這通常出現於不同學校或者不同方法存在的地方。儘可能瞭解多種方法是很有價值的,這總比非常深入的瞭解某一種方法更好。
暫時擱置。跟別人交談。告訴他們你在做什麼,並詢問人家在做什麼。(如果你對與別的學生討論自己的想法感到害羞,也要堅持交談,即使自己沒有什麼想法,與他們討論自己認為確實優秀的論文。這將很自然地引導到下一步做什麼的討論。)每天中午在活動樓七層有一個非正式的午餐討論會。在我們實驗室,人們都習慣於晚上工作,所以午餐的時候可以跟別人組成鬆散的小組進行討論。如果你與外界的交流很多——做演示或者參加會議——去印張事務名片,
主要要使自己的名字容易記住。從某個時間開始,你將會開始參加學術會議。如果你確實參加了,你會發現一個事實,幾乎所有的會議論文都令人生厭或者愚蠢透頂。(這其中的理由很有意思,但與本文無關,不做討論)。那還去參加會議幹嗎?主要是為了結識實驗室之外的人。外面的人會傳播有關你的工作的新聞,邀請你作報告,告知你某地的學術風氣和研究者的特點,把你介紹給其他人,幫助你找到一份暑期工作,諸如此類。如何與別人結識呢?如果覺得某人的論文有價值,跑上去,說:“我非常欣賞您的論文”,並提問一個問題。
獲得到別的實驗室進行暑期工作的機會。這樣你會結識另外一群人,或許還會學到另外一種看待事物的方式。可以去問高年級同學如何獲取這樣的機會,他們或許已經在你想去的地方工作過了,能幫你聯絡。
通常的情況,你只能做AI領域的事情,對AI領域之外的事情一無所知,好像有些人現在也仍然這麼認為。但是,現在要求好的研究者對幾個相關的領域都瞭解頗深。
計算的可行性本身並沒有對什麼是智慧提供足夠的約束,其他的領域給出了其他形式的約束,例如心理學獲得的經驗資料。更重要的是,其他的研究領域給了你思考的新工具,看待智慧的新方法。學習其他領域的另外一個原因是AI本身並沒有評價研究價值的標準,全是借自於其他領域。數學將定理作為進展;工程會問某個物件是否工作可靠;心理學要求可重複的試驗;哲學有嚴格的思辨;等等。所有這些標準有時都在AI中起作用,熟悉這些標準有助於你評價他人的工作,深入自己的工作以及保護自己的工作。
經過六年左右的課程方可獲得MIT的PhD,你可以在一到兩個非AI領域裡打下堅實的基礎,在更多的領域內具有閱讀水平,並且必須對大部分內容具有一定程度的理解。下面是如何學習自己所知甚少領域的一些方法:
- 選修一門研究生課程,這很牢靠,但通常不是最有效的方法。
- 閱讀課本。這方法還算不錯,不過課本的知識經常是過時的,一般還有很高比例的與內容無關的修辭。
- 找出該領域最棒的期刊是什麼,向該領域的高人請教。然後找出最近幾年值得閱讀的文章,並跟蹤相關參考文獻。這是最快的感受該領域的方法,但有時候你也許會有錯誤的理解。
- 找出該領域最著名的學者,閱讀他們所著的書籍。
- 跟該領域的研究生泡在一起。
- 參看外校研究該領域的系的課程表。拜訪那裡的研究院辦公室,挑選有用的的文獻數學可能是接下來需要了解的最重要的學科。對於工作在視覺或者機器人學的人來說更關鍵。對於以系統為中心的工作,表面上看,並不相關,但數學會教你有用的思維方式。你需要能閱讀定理,如果具有證明定理的能力將會給本領域的大多數人留下深刻的印象。很少有人能自學數學,光做個聽眾是不夠的,還得做習題集。儘可能早地選修儘可能多的數學課,其他領域的課程以後選也很容易。
電腦科學是以離散數學為基礎的:代數,圖論,等等。如果你要從事推理方面的工作,邏輯是很重要的。邏輯在MIT用得不多,但是在史丹佛以及其他地方,這是認識思維的主流方法。所以你必須具備足夠的邏輯知識,這樣你才能保護自己的觀點。在MIT數學系選修一兩門課程就足夠了。要是研究興趣在感知和機器人,那麼不僅需要離散數學,還需要連續數學。在分析,微分幾何和拓撲學具有紮實的基礎將會給你提供最常使用的技巧。統計和機率只是一般有用。
認知心理學與AI共享幾乎完全相同的觀點,但是實踐者確實具有不同的目標,他們主要是做實驗而不是寫程式。每一個人都需要知道認知心理學的某些知識。在MIT,MollyPotter開了一門很好的有關認知心理學的初級研究生課程。
如果你想做有關學習的工作,那麼發展心理學是很重要的。發展心理學從一般意義上講也是很有用的,它能告訴你對於人類智慧來說,哪些事情難哪些容易。它還給出了有關認知體系結構的認知模型。例如,有關兒童語言習得的工作就對語言處理理論施加了堅實的約束。在MIT,Susan Carey開了一門很好的有關發展心理學的初級研究生課程。
心理學中更“軟”的部分,例如心理分析和社會心理學,對AI的影響看似很小,但具有潛在的重大意義。它們會給你非常不同的理解人是什麼的方式。象社會學和人類學這樣的社會科學可以起相似的作用。具有多種觀點是很有用的。上述學科你需要自學。不幸的是,很難區分出這些領域哪些是優秀的成果哪些是垃圾。到哈佛去學習:對於MIT的學生來說,很容易交叉註冊哈佛的課程。
神經科學告訴我們有關人體可計算硬體的知識。隨著最近可計算神經科學和聯結主義的興起,對AI具有非常大的影響。MIT的腦和行為科學系提供了非常好的課程,視覺(Hildreth, Poggio, Richards, Ullman),移動控制(Hollerbach, Bizzi)和普通神經科學(9.015,由專家組講授)。
如果你想研究自然語言處理,語言學是很重要的。不僅如此,它還包含了很多有關人類認知的約束。在MIT,語言學主要由Chomsky學院負責。你可以去看看是不是符合自己的興趣。George Lakoff最近出版的書《Women, Fire, and Dangerous Things》可作為另外一種研究程式的例子。
工程,特別是電機工程,已經被很多AI研究機構作為一個研究領域。我們實驗室在培養程式中加入了很多需要確實做一些東西的要求,例如分析電路。瞭解EE也有助於建造定製的晶片或者除錯自己的Lisp機器上的電源。
物理學對於那些對感知和機器人感興趣的人具有強大的影響。
哲學是所有AI領域看不見的框架。很多AI工作都有蘊含著哲學的影響。學習哲學也能幫助你運用或者讀懂很多AI論文中用到的觀點。哲學可沿著至少兩個正交的軸分解。哲學通常是某種東西的哲學;有關思維和語言的哲學與AI更相關。然後存在著多種哲學學派,從比較大的範圍來分,哲學可分為分析哲學和大陸哲學。分析哲學有關思維的觀點與AI領域大多數研究者一致。大陸哲學則對我們習以為常的很多東西有非常不同的看待方式。它曾經被Dreyfus用於證明AI是不可能的。就在不久前,有幾位研究者認為大陸哲學與AI是相容的,提供了另外一種解決問題的方法。MIT的哲學屬於分析哲學,哲學學院深深地受到Chomsky在語言學方面工作的影響。
看起來要學習太多的東西,是不是?確實如此。要小心一個陷阱:認為對於所有的X,“只有我對X瞭解的更多,這個問題才會變得容易”。要知道,與之相關需要進一步瞭解的東西是永遠沒完的,但最終你還是要坐下來,解決問題的。
5. 筆記
很多科學家都有做科研筆記的習慣,你也應該這樣。可能你曾被告知從五年級開始,對於每一門科學課都應該記筆記,確實如此。不同的記筆記方式適用於不同的人,可以做線上筆記,記在筆記本或者便箋簿上。可能需要在實驗室有一個,家裡還有一個。
在筆記本上記錄下自己的想法。只有你自己才會去讀它,因此可以記得比較隨意。記錄下自己的思索,當前工作中遇到的問題,可能的解決方案。對將來可能用到的參考文獻作小結。
定期翻閱你自己的筆記本。有些人會做月度總結,方便將來的引用。筆記中記錄中的東西經常可以作為一篇論文的骨幹。這會使生活變得輕鬆些。相反,你會發現寫粗略的論文——標題,摘要,分標題,以及正文的片段——是一種記錄自己當前工作的有效方式,即使你並不準備把它變成一篇真正的論文。(過一段時間你或許會改變想法)。
你或許會發現Vera Johnson-Steiner的書 《Notebooks of the Mind》很有用,該書並不是描寫如何做筆記的文獻,它描述了隨著思想片斷的積累,創新思想是如何出現的。
6. 寫作
寫作的理由有很多。在整個讀研的過程中,你需要寫一到兩篇(這取決於你所在系的規定)畢業論文,以獲得PhD或者MS。
勤於寫作不僅僅給你練習的機會。
學術的規則就是要麼發表,要麼腐爛。在很多領域和學校,這通常開始於你成為一名教授時,但是我們實驗室的很多研究生畢業之前就已經開始發表論文了。
鼓勵發表和分發論文是很好的政策。
寫下自己的想法是很好的調整思路的方式。你會經常地發現自以為很完美的想法一旦寫下來就顯得語無倫次。
如果你工作的目的是不僅為自己還要為他人服務,就必須把它發表。這也是研究的基本責任。如果你寫得精彩,會有更多的人來了解你的工作。
AI但憑單打獨鬥是很難做的,你需要經常地從他人那裡獲得反饋。對你的論文作評論就是最重要的一種形式。任何事情,要做就要做到最好。
閱讀有關如何寫作的書籍。Strunk和White的《Elements of Style》對基本的應該如何不應該如何做了介紹。Claire的《The MLA's Line By Line》(Houghton Mifflin)是有關在句子級別如何編輯的書籍。Jacques Barzun的《Simple and Direct : A Rhetoric for Writers》(Harper and Row, 1985)是有關如何作文的。[Nebula6]
寫論文時,讀讀那些寫作高超的書,並思考作者的句法運用。你會發現不知不覺地,你已經吸收了作者的風格。
要成為寫作高手,需要付出頗多,歷經數年,期間還要忍受和認真對待他人的批評。除此之外,並無捷徑可走。
寫作有時候是很痛苦的,看起來好像是從“實際的”工作中分心了。但如果你已經掌握了寫作技巧,寫起來會很快。而且如果你把寫作當作一門藝術的話,你能從中得到很多樂趣。
你肯定會遇到思路阻塞的情況,這有很多的可能原因,沒有一定可以避免的方法。追求完美可能導致思路阻塞:無論開始寫什麼,總覺得不夠好。要理解寫作是一個除錯的過程。先寫一個草稿,然後返回修訂。寫草稿有助於理順思路,如果寫不出來正文,那就寫個大綱。逐步對之細化,直到已經很容易寫出子部分的內容。如果連草稿也寫不出來,隱藏掉正在寫作的所有視窗,然後隨便輸入自己腦袋裡想到的東西,即使看起來好像是垃圾。當你已經寫出了很多文字後,重新開啟視窗,將剛才寫的東西編輯進去。
另外一個錯誤是以為可以將所有的內容依次寫出。通常你應該將論文的核心內容寫出來,最後才是介紹部分。引起作者思路阻塞的另一個原因是不切實際的以為寫作是很容易的事情。寫作是耗時耗力的,如果發現自己每天只能寫一頁,也不要放棄。
完美主義可能會導致對本來已經足夠好的論文還在不停地打磨。這是浪費時間。(這也是一種有意無意之間逃避做研究的表現)。將論文看作你與本領域其他人交談時的一句話。在交談中,並不是每一句話都是完美的。很少有人會期待自己的某次談話就是全部的故事,是與對方的最後一次交流。
寫信是一種很好的練習。很多技術論文,如果其風格更類似於給朋友的信,那麼會有很大的提高。堅持記日記也是練習寫作的方法(也會使你試驗更多的文體,不僅僅是技術論文)。這兩種方法還有其它的實質作用。
一個常見的陷阱是花很多時間去追求修辭而不是內容。要避免這樣。LaTeX並非完美,但是它有很多你所需的修飾語。如果這還不夠,還可從其他從事這一研究的人那裡借用一些詞語用法。很多站點(例如MIT)維護了一個寫作修辭的庫。
清楚自己要表達什麼。這是清楚的寫作中最難最重要的因素。如果你寫了拙劣的東西,且不知道如何修改,這很有可能是因為你不知道自己要說什麼。一旦搞清楚了自己要說什麼,說就行了。
論文的寫作要有利於讀者查詢到你所做的工作。無論是段落的組織還是通篇的組織,都要將最核心的部分放在前面。要精心寫作摘要。確保摘要已經反映出你的好思路是什麼。確保自己明白自己的創新點是什麼,然後用幾句話表達出來。太多的論文摘要只是一般性地介紹論文,說是有一個好思路,卻不說是什麼。
不要用大話來販賣你的工作。你的讀者都是很優秀的人,正直且自尊。與之相反,也不要為自己的工作道歉或者進行消減。
有時候你意識到某個子句、句子或者段落不夠好,卻不知道如何修改。這是因為你鑽到死衚衕裡出不來了。你需要返回重寫這一部分。現實中這種情況很少發生。
確保自己的論文中有中心思想。如果你的程式在10毫秒內解決了問題X,告訴讀者你是如何辦到的。不要只是解釋呢的系統是如何構建的,是做什麼的,還要解釋其工作原理和價值所在。
寫作是給人看的,而不是機器。因此光觀點正確是不行的,還要易懂。不要靠讀者自己去推理,除非是最明顯的推論。如果你在第七頁的腳註上解釋了某個小玩意的工作原理,接著在第二十三頁沒有進一步解釋就引用了它,此時如果讀者感到困惑一點都不值得奇怪。正式的論文要寫清楚是很難的。不要模仿數學領域的文獻,它們的標準是儘可能少的解釋,使讀者感到越困難越好。這並不適用於AI。
寫完一篇論文後,刪掉第一段或者頭幾句話。你會發現那是與內容無關的一般性話語,更好的介紹語句在第一段最後或者第二段的開頭。
如果你等做完所有的工作後才開始寫作,會失去很多。一旦開始了某個科研專案,要養成這樣的習慣:寫作解釋當前工作進展或者每幾個月學習所得的非正式論文。
從你的研究筆記中的記載開始。花兩天的時間寫下來——如果你花的時間更長,說明你是一個完美主義者。將論文與你的朋友分享。寫的是草稿——不是為了被引用的那種。將論文複製數十份,送給那些感興趣的人(包括你的導師)。與寫正式論文相比,這樣做具有很多相同的好處(評論,理清思路,寫作練習等等),而且從某種意義上講,付出無需那麼多。經常地,如果你做得不錯,這些非正式論文以後可以作為正式論文的骨幹內容,也就是從AI實驗室的Working Paper成為一篇期刊文章。
一旦你成為Secret Paper Passing Network的成員,會有很多人給你寄論文複製要求評論。獲得他人對自己的論文的評論是很有價值的。因此你評論的論文越多,你獲得支援就越多,也會收到更多人對你論文的評論。不僅如此,學習評價別人的論文有助你的選擇。
為論文寫有用的評論是一門藝術。
要寫出有用的評論,需要讀兩遍論文。第一遍瞭解其思想,第二遍開始作評論。
如果某人在論文中屢次犯同一錯誤,不要每次都標記出來。而是要弄清楚模式是什麼,他為什麼這樣做,對此還可以做什麼,然後在第一頁清晰地指出或者私下交流。
論文的作者在合併你的評論時,將會遵循最小修改的原則。如果可以,就只修改一個詞,不行再修改一個片語,再不行才修改整個句子。如果他的論文中某些拙劣之處使得他必須修改整個段落,整個小節甚至整篇論文的組織,要用大字型的字母指出來,這樣他才不會忽視。
不要在論文寫毀滅性的批評如“垃圾”。這對於作者毫無幫助。花時間提出建設性的建議。要設身處地地為作者著想。評論有很多種。有對錶達的評論,有對內容的評論。對錶達的評論也可以很不同,可以是校對打字稿,標點,拼寫錯誤,字詞丟失等。應該學一些標準的編輯符號。還可以是校正語法,修辭,以及混亂不清楚的段落。通常人們會持續地犯同一語法錯誤,因此需要花時間明確地指出。接下來是對組織結構的評論:不同程度(子句,句子,段落,小節乃至一章)的次序混亂,冗餘,無關的內容,以及丟失論點。
很難描述對內容進行評論的特徵。你可能建議作者擴充套件自己的想法,考慮某個問題,錯誤,潛在的問題,表達讚美等。“因為Y,你應該讀X”是一種總是有用的評論
你無須接受所有的意見,但是必須都認真對待。將論文的部分內容裁掉是挺令人痛心的,但往往也提高了論文的水平。你經常會發現某個意見確實指出了問題,但是解決方法你覺得不可接受,那麼就去尋找第三條道路。
要多發表論文,這其實比想象中的容易。基本上,AI出版物評審者評審論文的標準是:(a)有新意;(b)在某些方面,符合標準。看看IJCAI的會議錄,你會發現論文錄取的標準相當低。這種情況由於評審過程本身固有的隨機性而變得更糟糕了。所以一個發表論文的訣竅是不停地試。
確保論文可讀性比較好。論文被拒絕的原因,除了沒有意義之外,就是無法理解或者組織糟糕。論文在投往期刊之前,應該交流一段時間,並根據反饋的評論進行適當的修訂。要抵制那種急匆匆地把結果投往期刊的做法。在AI領域,沒有競賽,而且不管怎麼說,出版週期的延遲要大大超過對草稿進行評論的時間。讀一讀你想投稿的期刊或者會議的過刊,確保自己論文的風格和內容是適合的。
很多出版物都有一頁左右的“作者投稿須知”,仔細看看。
主要的會議都會在被接收的論文中評出內容和表達俱佳的獲獎論文,仔細研究研究。
通常是向會議投交一篇篇幅比較短的有關部分工作內容的早期報告,然後再往期刊投交一份篇幅長的最終的正式論文。
論文被拒絕了——千萬不要沮喪灰心。
期刊和會議的論文評審過程存在很大的不同。為了節省時間,會議論文的評審必須迅速,沒有時間細究或者交流。如果你被拒絕了,你就失敗了。但期刊論文則不同,你可以經常地與編輯爭辯,透過編輯與評審人爭辯。
評審人一般都會對你有幫助的。如果你收到了令人生厭的評審報告,應該向大會的程式主席或者編輯投訴。不能期望可以從會議論文評審人的報告那裡得到多少反饋。但對於期刊論文,往往可以得到非常棒的建議。你不必完全按照評審報告的建議去做,但是,如果你不按照報告去做,那麼就必須解釋原因,並且要意識到這可能會導致進一步的負面評價。不管怎麼樣,無論是哪種的評審,作為評審者都要有禮貌。因為在餘下的職業生涯中,你將會與被評審者在一個學術圈子裡。
MIT AI Lab Memos大體上是或者接近發表的水平。實際上,Technical Reports基本上都是這些Memos的修訂版本。WorkingPapers則更不正式,這是很好的將自己的論文分發給同事們的方法。要出版這些內部檔案,只需到Publications Office(在活動樓八層)領一份表格,並有兩位教員簽字即可? 就像其它的科研活動一樣,論文寫作所花的時間總是比期望的要高。論文的發表在耗費時間這個問題上則更嚴重。當你完成了一篇論文,投出去,等待發表。數月後,論文以及評論被返回來。你不得不對論文進行修改。然後又是幾個月,才返回對你的修改的確認。如果你同時發表了該論文的不同形式,如有一篇短的投會議,一篇長的投期刊,這樣的過程將反覆數個回合。結果有可能是當你已經厭倦了,研究主題也已經令人生厭後數年,你仍然在修改那篇論文。這啟示我們:不要去做那些需要熱情投入但是很難發表論文的研究——苦不堪言。
7. 講演
與同行交流的另外一種方式就是講演,上面提到的有關論文寫作的問題,同樣適用於講演。站在聽眾面前從容講演而不會使聽眾懨懨欲睡的能力,對於你成功地獲得別人的承認、尊敬乃至最終的求職都是很關鍵的。講演的能力不是天生的,下面是一些學習和練習講演的方法:
Patrick Winston有一篇很好的有關如何作講演的小論文。每年的一月,他都會就此作講演,演示和描述它的演講技巧。
如果你覺得自己是一個糟糕的演講者,或者想成為一名優秀的演講者,選一門公共演講課。初級的表演課也很有用。
如果你的導師有定期的研究討論會,自願去作演講。
MIT AI實驗室有一系列的半正式座談會,叫做Revolving Seminar。如果你覺自己的某些觀點值得寫進AI Memo或者會議論文中,自告奮勇去作一場報告。深入瞭解實驗室的不同機器人專案,當你外地的親朋好友來的時候,你可以領著他們逛一圈,並就機器人做60分鐘的報告。
由於修改演講遠比修改論文容易,有些人會覺得這是很好的尋找如何表達思想的方式。(Nike Brady有一次曾說,他所有最好的論文都來自於演講)。
在一間空屋子裡練習,最好就是你馬上要做的報告。這有助於調整報告的技巧:每一張幻燈講些什麼;轉換的延遲以及保持平滑;保持解釋和幻燈的同步;估計報告的時間長度。你花在調整裝置上的時間越少,留下來的與人交流的時間就越長用鏡子,錄音機或者錄影機練習是另外一種方法。實驗室有這三種裝置。這也有助於調整自己的發音和肢體語言。
對於比較正式的報告——特別是你的答辯——應該在幾個朋友面前練習一遍,請他們批評指正。觀察別人是如何做報告的。有很多訪問MIT的人會做報告。參加這樣的報告會能夠感受自己不熟悉的領域,並且如果報告令人提不起興趣,你可以暗中分析報告者錯在哪裡。
找一位朋友,將你最近的想法說給他聽。這既可以提高的交際技巧,又能除錯自己的思路。
8. 程式設計
並不是所有的AI論文都包含程式碼,而且本領域的很多重量級人物從來沒有寫過一個重要的程式。 但是為了初步的近似AI工作原理,你必須會程式設計。不僅僅是很多AI研究工作需要編寫程式碼,而且學會程式設計能給你什麼是可計算的什麼是不可計算的直覺,這是AI對認知科學貢獻的主要來源。在MIT,本質上所有的AI程式設計都使用CommonLisp。如果還不知道,趕快學吧。當然,學習一門語言並不能等同於學習程式設計;AI程式設計包含的一些技術與那些在系統程式設計或者應用程式設計中用到的大不相同。開始學的時候,可以先看看Abelson和Sussman的《Structure and Interpretation of Computer Programs》,並做一些練習。這本書與AI程式設計本質上並不相干,但是包含了一些相同的技術。然後讀Winston和Horn寫的Lisp書第三版,書裡有很多優雅的AI程式。最後,進行實際的程式設計,而不是閱讀,才是最好的學習程式的方法。
學習Lisp程式設計有很多傳統。有些人習慣一起寫程式碼,這取決於個性。還有的人尋找機會直接向有經驗的程式設計師學習,或者請他對你的程式碼進行評價。閱讀別人的程式碼也是很有效的方法。如果可以向高年級同學要他們的原始碼。他們可能會有些抱怨,說自己的程式設計風格差極了,程式實際上並不能工作云云。不管怎麼樣,最後你獲得了原始碼。然後你要仔細地通篇閱讀,這很費時間。通常閱讀並完全理解別人程式碼所花的時間與你自己程式設計完成的時間是一樣多的,因此要計劃好在你的頭一個或者頭兩個學期用數週的時間去閱讀別人的程式碼。你將從中學到很多以前不曾想到在課本中也沒有的技巧。如果你讀到了大段大段不可理解沒有註釋的程式,你就會明白不應該如何寫程式碼了。
在軟體工程課裡學習到的那些知識在AI程式設計中依然有用。要給程式碼加註釋。使用正確的資料抽象。將圖和你的程式碼隔離開,由於你使用的語言基本上是Common Lisp,因此可移植性很好。諸如此類。
經過頭幾年的學習後,應該寫一些自己的標準AI模組,如:
- 真值維護系統
- 規劃器
- 規則系統
- 不同風格的直譯器
- 具有流程分析的最佳化編譯器
- 具有繼承特性的框架系統
- 幾種搜尋方法
- 基於解釋的學習器
任何你感興趣的東西都可以嘗試用程式實現。你可以抓住問題的實質,在幾天之
內完成一個功能版本。修改已有的程式是另外一種有效的方法,前崾悄鬩丫垂?樣的東西,並且確實瞭解其工作原理,優缺點以及效率等問題。
不象其他通常的程式設計師,AI程式設計師之間很少相互借閱程式碼。(演示程式碼例外)。這部分由於AI程式很少有真正起作用的。(很多著名的AI程式只在作者論文所提到的那三個例子上起作用,雖然最近這種情況已經有所改善)。另外一個原因是AI程式通常是匆忙湊成,並沒有考慮一般化的問題。使用Foobar的“標準”規則直譯器,開始時很有效,不久就會發現缺少一些你需要的功能,或者不夠有效率。雖然可以對程式碼
進行修改滿足自己的需要,但記住理解別人的程式碼是很耗時的,有時候還不如自己寫一個。有時候構建一個標準包的工作本身就可以成為一篇論文。
像論文一樣,程式也有可能過於追求完美了。不停重寫程式碼以求完美,最大化的抽象所有的東西,編寫宏和庫,與作業系統核心打交道,這都使得很多人偏離了自己的論文,偏離了自己的領域。(從另外一方面,或許這正是你需要將來謀生的手段)
9. 導師
在MIT,有兩種型別的導師,教學導師和論文導師。
教學導師的工作比較簡單。每一位研究生都被分配了系裡的一位老師作為教學導師。教學導師的作用是作為系方代表,告訴你對你的正式要求是什麼,如果你的進度慢了敦促你,批准你的課程計劃等。如果一切順利的話,你每年只需要見教學導師兩次,在註冊日那天。從另一方面講,如果你遇到了困難,教學導師替你向系裡反映或者提供指導。
論文導師是監督你研究的人。選擇論文導師是你讀研期間最重要的選擇,比選題都重要得多。從更廣的意義上講,AI是透過師傅帶徒弟的方式學習的。有很多領域的技術方面或者研究過程方面的非正式知識,只能從導師那裡學到,在任何教科書上都找不到。
很多AI教員都是行為古怪的人,畢業生也如此。導師與研究生的關係是非常個性化的,你的個人特點必須與導師的配合得很好,這樣你們才能合作成功。
不同的導師具有不同的風格。下面是一些需要值得考慮的因素:
- 你需要多大程度的指導?有些導師會給你一個定義良好的適合做論文的問題,對解決方法進行解釋,並告訴你如何開展工作。如果你陷在某個地方了,他們會告訴你如何開展下去。其他的導師屬於甩手型,他們可能對你的選題毫無幫助,但是一旦你選好題目,他們對於引導你的思路具有非常大的作用。你需要考慮清楚自己適合獨立工作還是需要指導。
- 你需要多大程度的聯絡?有的導師要求每週與你見面,聽取你工作進展的彙報。他們會告訴你應該讀的論文,並給你實際的練習和專案做。其他的導師每學期與你的談話不會超過兩次。
- 你能承受的壓力有多大?有些導師施加的壓力是很大的。
- 需要多少情感支援?
- 聽取導師意見的認真程度如何?大多數導師會相當正式的建議你的論文題目。有些導師是值得信賴的,他們給出的建議,如果按照執行,幾乎肯定會做出一篇可接受程度的論文,如果不是令人興奮的論文的話。其他的則一下子丟擲很多思路,大部分是不切實際的,但是有一些,或許會導致重大突破。如果選了這樣的一位導師,你首先得把自己當作一個過濾器。
- 導師提供了什麼型別的研究組?有些教授會創造環境,把所有的學生聚集在一起,即使他們做的不是同一個專案。很多教授每週或者每兩週與自己的學生們會面。這對你有用麼?你能與教授的學生和睦相處麼?有些學生發現他們更能與其他教研組的學生建立良好的工作關係。
- 你想參與大的專案麼?有些教授將大系統分解,每個學生負責一部分。這給了你與一組人討論問題的機會。
- 你想被共同監督麼?有些論文專案包含了多個AI領域,需要你與兩個以上的教授建立密切的工作關係。雖然你正式的論文導師只有一位,但是有時候這並不反映實際情況。
- 導師願意指導其研究領域之外的論文題目麼?你是否能與導師一起工作,比你做什麼本身更重要。MIT的機器人系就曾指導過量子物理學和認知建模方面的論文;推理方面的教員指導過視覺方面的論文。但是有些教員只願意指導自己研究興趣領域內的論文。這對於那些欲獲得終身職位的年輕教員來說尤其如此。
- 導師會為了你跟體制作鬥爭嗎?有些導師會為了你跟系裡或者某些有敵意的實體作鬥爭。有時候體制對某些型別的學生不利(特別是對於女學生和怪癖的學生),因此這一點很重要。
- 導師願意並且能夠在會議上推薦你的工作嗎?這是導師工作的一部分,對你將來工作意義重大。
上述這些因素,不同學校的情況很不相同。與大部分學校相比,MIT提供了多得多的自由。
找論文導師是你研究生一年級最主要的任務。研一結束時,或者研二學年開始階段,你必須有一個論文導師。下面是一些訣竅:
- 查閱實驗室的研究總結。其中有一頁左右的篇幅描述了每個教師以及很多研究生目前在做什麼。
- 如果你對某些教師的研究工作感興趣,查閱其最近的論文。
- 在第一學期,與儘可能多的教師交談。去感受他們喜歡做什麼,他們的研究和指導風格是什麼。
- 與預期導師的研究生交談。要保證與導師的多個學生交流,因為每位導師在與不同的學生交流時有不同的工作方式和交流效果。不能被一個學生的看法所左右。
- 很多教師所在研究組的會議對新同學都是公開的。這是非常好的瞭解導師工作方式的途徑
作為一門學科,AI不同尋常的一點是很多有用的工作是由研究生完成的,而不是博士——他們忙著做管理去了。這有幾個後果。一是某個教師的聲望,是否會獲得終身聘用,在很大程度上取決於學生的工作。這意味著教授有很強烈的動機吸引最好的學生為自己工作,並給與有效的指導和足夠的支援。另外一個後果是,由於大部分學生的論文方向是由導師形成的,因此整個領域的方向和發展很大程度上取決於導師選擇什麼樣的研究生。當選定了導師,決定了自己對導師的要求後,要確保導師知道。不要由於交流不好,浪費時間於自己並不想做的專案上。
不要完全依賴你的導師,要建立自己的網路。找一些能定期評審你的工作的人是很重要的,因為研究時很容易走火入魔。網路中的人可以包括自己實驗室或者外單位的研究生和老師。
在與其他學生、老師甚至自己的導師的關係中,很可能會碰到種族主義者,性別歧視,同性戀或者其他令人尷尬的事情。如果你不幸碰到了,去尋求幫助。MIT的ODSA出版了一本叫做“STOP Harrassment”的小冊子,裡面有很多建議。《ComputerScience Women's Report》,可在LCS文件室找到,也與之相關。
實驗室中有些同學只是名義上由導師指導。這對於那些獨立性很強的人來說很好。但是如果你已經完成了某項導師指導的工作,除非你確保沒有導師也行且自己有牢靠的支援網路,否則就不要這麼幹。
10. 論文
做畢業論文將佔據研究生生活的大部分時間,主要是去做研究,包括選題,這比實際的寫作耗時更多。 碩士論文的目的是為做博士論文練兵。博士水平的研究如果沒有準備好的話,是很難進行的。碩士論文最本質的要求是展示自己的掌握程度:你已經完全理解了本領域最新進展,並具備相應的操作水平。並不需要你對本領域的最新知識有所擴充,也不要求發表你的論文。然而我們實驗室的論文總是比較大氣的,因此很多碩士論文實際上都對本領域的發展作出了顯著的貢獻,大約有一半都出版了。這並不一定是好事情。
很多人精力都集中於碩士的工作,所以MIT有這樣的名聲:碩士論文的質量往往比博士論文高。這有悖於碩士工作本來是為博士研究作準備的原有目的。另外一個因素是所做研究要對領域有所貢獻,至少需要兩年,這使得研究生學習時間之長令人難以忍受。現在或許你感受不到匆忙,但當你已經在實驗室呆了七年後,你肯定迫不及待地想逃出去。碩士從入學到畢業平均時間是兩年半,但是,計算機系強烈鼓勵學生提前畢業。如果某個碩士生的題目過於龐大,可將之分解,一部分來做碩士論文,另一部分給博士生作博士論文。
想要了解碩士論文研究是什麼樣的,讀幾本最新的碩士論文。記住比較好的論文是那些出版的或者成為技術報告的,因為這標誌著該論文被認為是擴充套件了領域的最新知識——換句話說,他們的論文遠遠超出了碩士論文的水平。還要讀一些透過的但是沒有出版的論文,所有透過的論文都可以在MIT圖書館中找到。博士論文必須對最新知識有所擴充,博士論文的研究必須具備可出版的質量。MIT的泱泱氣質又表現出來了,很多博士論文在幾年內都是某個子領域的權威工作。對於MIT的博士論文來說,開創一個新領域,或者提出並解決一個新問題,並不是什麼了不起的事情。雖然,這並不是必需的。
一般來說,需要兩到三年的時間來做博士論文。很多人花一到兩年的時間跟碩士生活說再見,以及選題。這段時間可以去嘗試一些別的事情,例如做助教或者在某個非AI領域打下堅實的基礎或者組織個樂隊。博士論文的實際寫作時間大約是一年。
選題是論文工作中最重要最困難的部分:
好的論文題目不僅能夠表達個人觀點,而且可與同行交流。
選擇題目必須是自己願意傾注熱情的。個人遠景觀點是你作為一個科學家的理由,是你最為關切的意象,原則,思路或者目標。有多種形式。或許你想造一臺可與之交談的計算機,或許你想把人類從計算機的愚蠢使用中拯救出來,或許你想展示萬物都是統一的,或許你想在太空發現新生命。遠景觀點總是比較大的,你的論文並不能實現你的遠景,但是可以朝著那個方向努力。
做論文時,最困難的就是如何將問題消減至可解決的水平,同時規模又足以做一篇論文。“解決AI的寬度優先”是常見毛病的一個例子,題目太大太虛了。你會發現需要不斷的縮小題目的範圍。選題是一個漸進的過程,不是一個離散的事件,會持續到你宣佈論文已經完成那一刻為止。實際上,解決問題通常比精確地描述問題要容易得多。如果你的目標是一個五十年的工程,那麼合理的十年工程是什麼,一年的呢?如果目標的結構龐大,那麼最核心的部件是什麼,如何最大程度的瞭解核心部件?
一個重要的因素是你可以忍受多大程度的風險。在最終的成功和風險之間需要權衡。這也並不總是對的,AI中有很多研究者尚未涉及的想法。
好的論文選題有一箇中心部分,你確信肯定可以完成,並且你和你的導師都同意這已經滿足畢業要求了。除此之外,論文中還有多種擴充套件,有失敗的可能,但如果成功了,會增加論文的精彩程度。雖然不是每一個論文選題都符合這個模式,但值得一試。
有些人覺得同時在多個專案中工作可以在選題的時候選擇可以完成的那個。這確實降低了風險。另外一些人則願意在做任何工作之前,選一個單獨的題目。
可能你只對某個領域感興趣,這樣你的選題範圍就狹窄得多。有時候,你會發現系裡的老師沒有一個人能夠指導你選擇的領域。可能還會發現好像那個領域沒什麼很自然的選題,反而對別的領域有好想法。
碩士選題比博士選題更難,因為碩士論文必須在你所知不多沒有足夠自信時就完成。
博士選題需要考慮的一個因素是是否繼續碩士階段所研究的領域,可能擴充或者作為基礎,或者乾脆轉到另外一個領域。待在同一個領域事情就簡單了,可能只需要一到兩年就畢業了,特別是如果在碩士階段的工作中已經發現了適合做博士論文的題目。不足之處在於容易定型,改換領域則能增加知識的寬度。
有的論文題目很新奇,有的則很普通。前者開創了新領域,探索了以前未曾研究過的現象,或者為很難描述的問題提供了有效的解決方法;後者則完美地解決了定義良好的問題。兩種論文都是有價值的。選擇哪一種論文,取決於個人風格。
論文的“將來的工作”部分,是很好的論文題目來源。
無論選什麼樣的題目,必須是前人未曾做過的。即使是同時有人做的工作,也不好。有很多東西可作,根本無需競爭。還有一種常見的情況,讀了別人的論文後感覺很驚慌,好像它已經把你的問題解決了。這通常發生在確定論文題目過程中。實際上往往只是表面類似,因此將論文送給某個瞭解你的工作的高人看看,看他怎麼說。
MIT AI實驗室的論文並非全是有關人工智慧的;有些是有關硬體或者程式設計語言的,也行。
選好題後,即使有點虛,你必須能夠回答下列問題:論文的論點是什麼?你想說明什麼?你必須有一句,一段,五分鐘的答案。如果你不知道自己在幹什麼,別人也不會嚴肅對待你的選題,更糟糕的是,你會陷在選題——再選題的圈子裡而不能自拔。
開始作論文研究後,一定要能夠用簡單的語言解釋每一部分的理論和實現是如何為目標服務的。
記住,一旦選好了題目,你必須與導師就論文完成的標準達成清晰的一致。如果你和他對論文具有不同的期望,最後你肯定死得很慘。必須定義好“完成測試”的標準,像一系列的能夠證明你的理論和程式的例子。這是必須做的,即是你的導師並不這麼要求。如果環境發生了根本的變化,測試也要隨之改變。
首先嚐試論文問題的簡化版本。用例項檢驗。在形成理論抽象之前,要完整的探究具有代表性的例子。
做論文的過程中,有很多浪費時間的方式。要避免下列活動(除非確實跟論文相關):語言表達的設計;使用者介面或者圖形介面上過分講究;發明新的形式化方法;過分最佳化程式碼;建立工具;官僚作風。任何與你的論文不是很相關的工作要儘量減少。
一種眾所周知的現象“論文逃避”,就是你突然發現改正某個作業系統的BUG是非常吸引人也很重要的工作。此時你總是自覺不自覺的偏離了論文的工作。要記住自己應該做些什麼。(本文對於部分作者來說就屬於論文逃避現象)。
11. 研究方法論
研究方法學定義了什麼是科研活動,如何開展研究,如何衡量研究的進展,以及什麼叫做成功。AI的研究方法學是個大雜燴。不同的方法論定義了不同的研究學派。
方法是工具。使用即可,不要讓他們來使用你。不要把自己陷於口號之中:“AI研究需要牢靠的基礎”,“哲學家只會高談闊論,人工智慧則需要拼搏”,“在問為什麼之前,先搞清楚計算的是什麼”。實際上,要在人工智慧領域取得成功,你必須擅長各種技術方法,還必須具備懷疑的態度。例如,你必須能夠證明定理,同時你還必須思考該定理是否說明了什麼。
很多優秀的AI篇章都是巧妙地在幾種方法論中取得平衡。例如,你必須選擇一條在太多理論(可能與任何實際問題都無關)和繁瑣的實現(把實際的解決方法表達得語無倫次)之間的最佳路線。你經常會面臨區分“乾淨”和“骯髒”的研究決策。你應該花時間將問題在某種程度上形式化嗎?還是保持問題的原始狀態,此時雖然結構不良但更接近實際?採用前一種方法(如果可行的話)會得到清晰確定的結果,但這一過程往往是繁瑣的,或者至少不會直接解決問題。後者則有陷入各種處理的漩渦之中的危險。任何工作,任何人,必須作出明智的平衡。
有些工作象科學。你觀察人們是怎樣學習算術的,大腦是如何工作的,袋鼠是如何跳的,然後搞清楚原理,形成可檢驗的理論。有些工作象工程:努力建立一個更好的問題解決器或者演算法。有些工作象數學:跟形式化打交道,要理解屬性,給出證明。有些工作是例項驅動的,目標是解釋特定的現象。最好的工作是以上幾種的結合。
方法具有社會性,看看別人是如何攻克類似難題的,向別人請教他們是如何處理某種特殊情況的。
12. 情感因素
研究是艱苦的工作,很容易對之失去興趣。一個令人尷尬的事實是在本實驗室讀博的學生只有很少比例最後獲得學位。有些人離開是因為可以在產業界賺到更多的錢,或者由於個人的原因;最主要的原因則是由於論文。本節的目標是解釋這種情況發生的原因,並給出一些有益的建議。
所有的研究都包含風險。如果你的專案不可能失敗,那是開發,不是研究。面對專案失敗時是多麼艱難啊,很容易將你負責的專案失敗解釋為你自己的失敗。雖然,這實際上也證明了你有勇氣向困難挑戰。在人工智慧領域很少有人總是一直成功,一年年地出論文。實際上,失敗是經常的。
你會發現他們經常是同時做幾個專案,只有一些是成功的。最終成功的專案也許反覆失敗過多次。經歷過很多由於方法錯誤的失敗之後,才取得最終的成功。
在你以後的工作生涯中,會經歷很多失敗。但是每一個失敗的專案都代表了你的工作,很多思想,思考方式,甚至編寫的程式碼,在若干年後你發現可用於另外一個完全不同的專案。這種效果只有在你積累了相當程度的失敗之後才會顯現出來。因此要有最初的失敗以後將會起作用的信念。
研究所花費的實際時間往往比計劃的要多得多。一個小技巧是給每個子任務分配三倍於預期的時間(有些人加了一句:“……,即使考慮了這條原則”)。
成功的關鍵在於使得研究成為你日常生活的一部分。很多突破和靈感都發生在你散步時。如果無時無刻地都潛意識的思考研究,就會發現思如泉湧。成功的AI研究者,堅持的作用一般大於天資。“嘗試”也是很重要的,也就是區分淺薄的和重要的思路的能力。
你會發現自己成功的比例是很隨機的。有時候,一個星期就做完了以前需要三個月才能完成的工作。這是令人欣喜的,使得你更願意在本領域工作下去。其他一些時候,你完全陷在那裡,感覺什麼也做不了。這種情況很難處理。你會覺得自己永遠不會做出任何有價值的東西了,或者覺得自己不再具備研究者的素質了。這些感覺幾乎肯定是錯誤的。如果你是MIT錄取的學生,你就是絕對合格的。你需要的是暫停一下,對糟糕的結果保持高度的容忍。
透過定期設定中短期的目標,例如每週的或者每月的,你有很多工作要做。增加達到這些目標的可能性有兩種方法,你可以把目標記在筆記本中,並告訴另外一個人。你可以與某個朋友商定交換每週的目標並看誰最終實現了自己的目標。或者告訴你的導師。
有時你會完全陷在那裡,類似於寫作過程的思路阻塞,這有很多可能的原因,卻並無一定的解決方法。
範圍過於寬泛了,可嘗試去解決流程中的子問題。
有時候對你研究能力的懷疑會消磨掉你所有的熱情而使得你一事無成。要牢記研究能力是學習而得的技能,而不是天生的。
如果發現自己陷入嚴重的困境,一個多星期都毫無進展,嘗試每天只工作一小時。幾天後,你可能就會發現一切又回到了正軌。
害怕失敗會使得研究工作更加困難。如果發現自己無法完成工作,問問自己是否是由於在逃避用實驗檢驗自己的思路。發現自己最近幾個月的工作完全是白費的這種可能,會阻止你進一步開展工作。沒有辦法避免這種情況,只要認識到失敗和浪費也是研究過程的一部分。
看看Alan Lakien的書 《How to Get Control of Your Timeand Your Life》,其中包含很多能使你進入充滿創造力的狀態的無價方法。
很多人發現自己的個人生活和做研究的能力是相互影響的。對於有些人來說,當生活中一切都不如意時,工作是避難所。其他的人如果生活陷入混亂時就無法工作了。如果你覺得自己確實悲痛得難以自拔,去看看心理醫生。一份非正式的調查表明,我們實驗室大約有一半的學生在讀研期間看過一次心理醫生。
使得人工智慧那麼難的一個原因是沒有被普遍接受的成功標準。在數學中,如果你證明了某個定理,你就確實做了某些事情;如果該定理別人都證不出來,那麼你的工作是令人興奮的。人工智慧從相關的學科中借來了一些標準,還有自己的一些標準。不同的實踐者,子領域和學校會強調不同的標準。MIT比其他的學校更強調實現的質量,但是實驗室內部也存在很大的不同。這樣的一個後果就是你不可能令所有的人都滿意。另外一個後果就是你無法確定自己是否取得了進展,這會讓你覺得很不安全。對你工作的評價從“我所見過最偉大的”到“空虛,多餘,不明所以”不一而足,這都是很正常的,根據別人的反饋修訂自己的工作。
有幾種方法有助於克服研究過程中的不安全感。被承認的感覺:包括畢業論文的接受,發表論文等。更重要的是,與儘可能多的人交流你的思路,並聽取反饋。首先,他們能貢獻有用的思路;其次,肯定有一些人會喜歡你的工作,這會使得你感覺不錯。
參考連結: