You are currently at: ejtech.hkej.com
Skip This Ads
Don't Miss

我在Google無人車研究組的日子

By on June 14, 2014

20140613006a

本文作者田淵棟,2005 年及 2008 年獲上海交通大學電子資訊及電氣工程電腦系學士學位及碩士學位,2013 年獲機器人系博士學位,主要研究電腦視覺,機器學習及最優化方法,在頂級會議上發表過多篇會議及雜誌論文,曾獲 2011 年微軟博士研究獎學金,獲 2013 年國際電腦視覺會議(ICCV)最佳論文提名獎。現於 Google X 實驗室 (Google X Lab) 無人駕駛汽車 (Google driverless car) 研究組,擔任研究員 / 軟體工程師職位。本文寫於 2014 年 1 月。

到 Google 無人車組全職工作已經有四個月了。寫一下感想。

鑒於項目的高度機密性,很多話不能說,我唯一能透露的,就是兩條:同事們都很厲害,然後都非常努力。主管不怎麼主動管,但大家都明白如果事情做不完就得加班,因為一個一個小發佈(release)的最後期限(deadline)擺在那裡。節奏很快,不像是在大公司裡工作,反倒更像是在一個初創團隊裡忙碌。

這四個月感覺下來,Google[x] 實驗室有幾個很有趣的特點。其一是軟硬件結合極其緊密,這一點從已有的報導裡可以看出,不論是無人車 (Self-driving car),眼鏡 (Google Glass) 還是最近公佈的氣球無線網路 (Loon) 及能測血糖的隱形眼鏡 (Iris),都是軟硬結合的產品。這直接導致的結果,就是我們每天面對的問題和之前在學術圈時思考的完全不同。

在學術圈,問題的已知條件和資料集都是給定的,我們要做的就是像解數學題一樣,鑽進去找到更好的解法,並在已知的資料集上和前人對比證明其有效性。但在 Google[x] 則完全不同,大的項目(比如說開發無人車)擺在這裡,但已知條件,解決方案,使用何種硬件,如何分配資源,都是不確定的;唯一確定的,是要以最快的方式和最小的成本把它實現出來,讓一輛車能安全地自行其道,同時生產成本又最少。

在這樣的特定背景下,碰到一個難題,首先想的不是如何把它不計成本地解出來,而是問自己有沒有必要解它,能不能繞開它而實現目標?事實證明,在這樣高自由度的空間裡尋找一個特定的解決方案,幾乎總是能繞過學術界的難題,找到簡單易行的實用方法。

這就像要發明能在道路上移動的機器人,不是絞盡腦汁去研究人類兩足的機理,而是用容易控制又廉價的輪子代替;要設計飛機,不去模仿鳥類形態優美卻機理複雜的撲翼,而是使用固定機翼加噴氣動力。

其二是幾乎沒有專職的研究職位。所有人既是研究員 (Researcher),又是軟件工程師 (Software Engineer)。基本上每個人負責一個具體的方向,對這個方向自主地分析現存的問題,並不斷通過和同事討論提出新方案,最後評估方案的效果。就算是組裡的主管(Manager),甚至是主管的老闆,也要寫代碼查錯誤完成具體工作,唯一的不同點,是他們對系統有更整體的理解,遇到問題能幫忙找到下屬找不到的角度。碰到許多工同時需要完成的時候,能分清主次,丟卒保車,確保整個組的大方向正確。

對於從來沒有碰到過的新問題,思考新思路和寫代碼開發是同時進行的,C++ 代碼寫完就直接上產品去測試看效果如何,不行就分析研究再換一種,如此快速反覆運算直到找到好方案為止,如果一兩星期裡找不到好方案,那就認為這個問題是困難的,於是就要退一步思考,想辦法繞開它。

因為這個原因,諸如「寫代碼和做研究的時間比例是多少」之類的問題就沒有什麼意義,因為完全看需要解決的是什麼問題,寫很多格式漂亮架構清晰的代碼卻不能解決問題沒有意義,天馬行空地思考不在實際資料上跑也沒有意義,最重要的只是「解決問題」這四個字。

這種思路決定了研究風格是「具體問題具體分析」式的,有額外條件和額外資訊就儘量用上,不會花時間思考一般情況;是「崇尚簡單方案快速出結果」式的,而不會使用精巧複雜卻不太直觀的數學理論,也不會花幾個月賭一個萬能演算法。這種研究方式的缺點顯而易見,就是沒有辦法產生深遠及本質的成果,但是既然目標是利用人類現有的技術,去完成一個舉世矚目的新系統和新產品,我想不出來有其它更好的推動方式了。

其三是組內資訊交流的極端重要性。學術界強調鑽研問題,獨立工作和原創性成果;業界強調合作,共同解決問題。一個人,特別是剛進來的新人,對整個系統的組成沒有深刻理解,也不去詢問同事,主管給一個問題就按自己的想法單幹,結果發現三分之一工作和無人車目前急需解決的難點無關,三分之一工作已有人做出過類似工具,還有三分之一工作聽起來很有道理,自成一說,但是在實際資料上一跑效果很差。這些情況是完全可能的。按學術界的思路,這些工作都可以成為不同風格的學術文章,但在我們這裡,全都是沒有用的。

而充分交流討論就能避免這類情況。有越多來自別人的資訊,就越能明確目標直入主題;越知道系統的優劣和目前的可用工具,就越能借風使力,提高效率。有時候跨組間不經意的一兩句對話,少則抵得上幾小時或者幾天的辛勤勞作,多則改變整個組的行進方向。無人車組裡中國人非常非常少,因此英語的地位相應提高,實在是需要在業餘時間多加訓練才好。

對於這樣一個開創性項目,雖然已經取得了重要的進展,但還是有很多棘手的具體問題需要解決,每一個細節都決定成敗。並且,越接近最終目標就越為艱難,有時候為了有百分之一的效果提升,是不惜從頭再來,將原來的工作全部推翻的。所以說這個項目最後是否成功,還要看全體同事的聰明才智和勤奮努力,及一點點捉摸不定的運氣。

希望運氣在我們這邊。

田淵棟 2014 年 1 月 23 日

[原文:36Kr]

支持EJ Tech



如欲投稿、報料,發布新聞稿或採訪通知,按這裏聯絡我們