您好,歡迎來電子發(fā)燒友網(wǎng)! ,新用戶?[免費注冊]

您的位置:電子發(fā)燒友網(wǎng)>源碼下載>數(shù)值算法/人工智能>

Google研究總監(jiān)談人工智能的另一面

大?。?/span>0.6 MB 人氣: 2017-10-10 需要積分:1
本文為《程序員》文章,未經(jīng)允許不得轉(zhuǎn)載,更多精彩文章請訂閱2016年《程序員》
  Peter Norvig是譽滿全球的人工智能專家,Google研究總監(jiān)(Director of Research),他同時也是經(jīng)典書籍《人工智能編程范式:Common Lisp案例研究》(Paradigms of AI Programming: Case Studies in Common Lisp)和《人工智能:一種現(xiàn)代方法》(Artificial Intelligence: A Modern Approach)的作者/合著者。在本文中,我們將看到Peter Norvig對人工智能目前進展和未來發(fā)展的思考,對人工智能技術(shù)在Google應(yīng)用的解讀,以及對最新軟件工程師在人工智能時代的成長的觀點。
  
  Peter Norvig眼中的人工智能
  問:人工智能領(lǐng)域在哪些方面發(fā)生了您未曾預(yù)料的演變?
  Peter Norvig:在1980年我開始從事人工智能研究時人工智能意味著:一位研究生用說明性語言寫下事實,然后撥弄這些事實和推理機制,直到從精心挑選的樣本上得到不錯的結(jié)果,然后寫一篇關(guān)于它的論文。
  雖然我接受并遵循這種工作模式,在我獲得博士學(xué)位的過程中,我發(fā)現(xiàn)了這種方法的三個問題:
  寫下事實太慢了。
  我們沒有處理異常情況或模糊狀態(tài)的良好方法。
  這個過程不科學(xué)——即使在選定的樣本上它能工作,但是在其他樣本上工作效果會如何呢?
  整個領(lǐng)域的演變回答了這三個問題:
  我們依靠機器學(xué)習(xí),而不是研究生付出的辛苦努力。
  我們使用概率推理,而不是布爾邏輯。
  我們希望使用科學(xué)嚴格的方式;我們有訓(xùn)練數(shù)據(jù)和測試數(shù)據(jù)的概念,而且我們也有比較不同系統(tǒng)處理標準問題所得到的結(jié)果。
  1950年,阿蘭圖靈寫道:“我們只能看到未來很短的一段距離,但是我們很清楚還有什么需要完成?!弊詮?950年,我們已經(jīng)得到許多發(fā)展并實現(xiàn)了許多目標,但圖靈的話仍然成立。
  問:對于機器學(xué)習(xí)研究,工業(yè)界與學(xué)術(shù)界有何不同呢?
  Peter Norvig:我認為,在教育機構(gòu)、商業(yè)機構(gòu)還是政府機構(gòu)并不是很重要——我曾經(jīng)在這三種機構(gòu)都學(xué)到很多東西。
  我建議你在有著一群出色同事和有趣問題的環(huán)境下工作??梢允枪I(yè)界、學(xué)術(shù)界、政府或者非營利企業(yè),甚至開源社區(qū)。在這些領(lǐng)域里,工業(yè)界往往有更多的資源(人、計算能力和數(shù)據(jù)),但如今有很多公開可用的數(shù)據(jù)供你使用,一個小團隊,一臺筆記本電腦,或者一個小而廉價的GPU集群,或者在云計算服務(wù)上租賃或捐獻時間。
  問:您對深度學(xué)習(xí)有什么看法?
  Peter Norvig:我清楚地記得80年代初的那一天,Geoff Hinton來到伯克利進行了關(guān)于玻爾茲曼機的講座。對我來說,這是個了不起的視角——他不贊同符號主義人工智能很強大很有用,而我了解到了一種機制,有三件令人興奮的新(對我而言)事情:根據(jù)大腦模型得出的認知合理性;從經(jīng)驗而不是手工編碼中學(xué)習(xí)的模型;還有表示是連續(xù)的,而不是布爾值,因此可以避免傳統(tǒng)符號專家系統(tǒng)的一些脆弱問題。
  事實證明,玻爾茲曼機在那個時代并沒有廣泛普及,相反,Hinton、LeCun、Bengio、Olshausen、Osindero、Sutskever、Courville、Ng以及其他人設(shè)計的架構(gòu)得到很好的普及。是什么造成了這種不同呢?是一次一層的訓(xùn)練技術(shù)嗎?是ReLU激活函數(shù)?是需要更多的數(shù)據(jù)?還是使用GPU集群可以更快地訓(xùn)練?我不敢肯定,我希望持續(xù)的分析可以給我們帶來更好的了解。但我可以說,在語音識別、計算機視覺識別物體、圍棋和其他領(lǐng)域,這一差距是巨大的:使用深度學(xué)習(xí)可以降低錯誤率,這兩個領(lǐng)域在過去幾年都發(fā)生了徹底變化:基本上所有的團隊都選擇了深度學(xué)習(xí),因為它管用。
  許多問題依然存在。在計算機視覺里,我們好奇深度網(wǎng)絡(luò)實際上在做什么:我們可以在一個級別上確定線條識別器,在更高層次確定眼睛和鼻子識別器,然后就是臉部識別器,最終就是整個人的識別器。但在其他領(lǐng)域,一直很難了解網(wǎng)絡(luò)在做什么。是因為我們沒有正確的分析和可視化工具嗎?還是因為實際上表示不一致?
  在有許多數(shù)據(jù)的時候,深度學(xué)習(xí)在各種應(yīng)用中表現(xiàn)不錯,但對于一次性或零次學(xué)習(xí),需要將一個領(lǐng)域的知識轉(zhuǎn)移并適應(yīng)到當(dāng)前領(lǐng)域又如何呢?深度網(wǎng)絡(luò)形成了什么樣的抽象,我們可以如何解釋這些抽象并結(jié)合它們?網(wǎng)絡(luò)會被對抗性輸入愚弄;我們?nèi)绾晤A(yù)防這些,它們代表了根本缺陷還是不相干的把戲?
  我們?nèi)绾翁幚硪粋€領(lǐng)域中的結(jié)構(gòu)?我們有循環(huán)網(wǎng)絡(luò)(Recurrent Networks)來處理時間,遞歸網(wǎng)絡(luò)(Recrsive Networks)來處理嵌套結(jié)構(gòu),但這些是否已經(jīng)足夠,現(xiàn)在討論還為時過早。
  我對深度學(xué)習(xí)感到興奮,因為很多長期存在的領(lǐng)域也是如此。而且我有興趣了解更多,因為還有許多剩余問題,而且這些問題的答案不僅會告訴我們更多關(guān)于深度學(xué)習(xí)的東西,還可以幫助我們大體理解學(xué)習(xí)、推理和表示。
  問:在深度學(xué)習(xí)最近取得的成就之后,符號主義人工智能是否還有意義?
  Peter Norvig:是的。我們圍繞著符號主義人工智能開發(fā)了許多強大的原理:邏輯預(yù)測、約束滿足問題、規(guī)劃問題、自然語言處理,乃至概率預(yù)測。因為這些算法的出色表現(xiàn),我們處理問題的能力比原來提升了幾個數(shù)量級。放棄這一切是件可恥的事。我認為其中一個有意識的研究方向是回過頭看每一種方法,探索非原子式符號被原子式符號取代的這個過程究竟發(fā)生了什么,諸如Word2Vec產(chǎn)生的Word Embedding之類的原理。
  下面是一些例子。假設(shè)你有這些邏輯“事實”:
  人會說話;
  除人以外的動物不會說話;
  卡通人物角色會說話;
  魚會游泳;
  魚是除人以外的動物;
  Nemo是一個卡通人物;
  Nemo是一條魚;
  那么我們要問了:
  Nemo會說話嗎?
  Nemo會游泳嗎?
  用邏輯來表述和解釋這個場景的時候遇到了兩個大問題。首先,這些事實都有例外,但是用邏輯很難窮舉這些例外情況,而且當(dāng)你邏輯出錯的時候預(yù)測就會出問題了。其次,在相互矛盾的情況下則邏輯無能為力,就像這里的Nemo既會說話又不會說話。也許我們可以用Word Embedding技術(shù)來解決這些問題。我們還需要Modus Ponens Embedding(分離規(guī)則,一種數(shù)學(xué)演繹推理規(guī)則)嗎?不學(xué)習(xí)“如果A且A暗示B,則B”這樣一種抽象的規(guī)則,我們是否可以學(xué)習(xí)何時應(yīng)用這種規(guī)則是恰當(dāng)?shù)模课矣X得這是一個重要的研究領(lǐng)域。
  再說一點:許多所謂的符號主意人工智能技術(shù)實際上還是優(yōu)秀的計算機科學(xué)算法。舉個例子,搜索算法,無論A*或是蟻群優(yōu)化,或是其它任何東西,都是一種關(guān)鍵的算法,永遠都會非常有用。即使是基于深度學(xué)習(xí)的AlphaGo,也包含了搜索模塊。
  問:我們哪兒做錯了?為什么Common Lisp不能治愈世界?
  Peter Norvig:我認為Common Lisp的思想確實能治愈這個世界。如果你回到1981年,Lisp被視作是另類,因為它所具有的下面這些特性還不被C語言程序員所知:
  垃圾回收機制;
  豐富的容器類型及相應(yīng)的操作;
  強大的對象系統(tǒng),伴隨著各種繼承和原生函數(shù);
  定義測試例子的亞語言(sublanguage)(并不屬于官方版本的一部分,但我自己配置了一套);
  有交互式的讀入-運算-打印循環(huán);
  敏捷的、增量式的開發(fā)模式,而不是一步到位的模式;
  運行時對象和函數(shù)的自省;
  能自定義領(lǐng)域特定語言的宏。
  如今,除了宏之外的所有這些特性都在主流編程語言里非常常見。所以說它的思想取勝了,而Common Lisp的實現(xiàn)卻沒有 —— 也許是因為CL還遺留了不少1958年編程語言的陋習(xí);也許只是因為一些人不喜歡用大括號。
  至于說宏,我也希望它能流行起來,但當(dāng)用到宏的時候,你成為了一名語言設(shè)計者,而許多開發(fā)團隊喜歡保持底層語言的穩(wěn)定性,尤其是那些大團隊。我想最好有一套使用宏的實用指南,而不是把它們?nèi)繏仐墸ɑ蚴窃贑語言里嚴格限制的宏)。
  問:在未來10年里,有沒有哪些情況下軟件工程師不需要學(xué)習(xí)人工智能或機器學(xué)習(xí)的,還是每個人都需要學(xué)習(xí)?
  Peter Norvig:機器學(xué)習(xí)將會是(或許已經(jīng)是)軟件工程的一個重要部分,每個人都必須知道它的運用場景。但就像數(shù)據(jù)庫管理員或用戶界面設(shè)計一樣,并不意味著每個工程師都必須成為機器學(xué)習(xí)專家——和這個領(lǐng)域的專家共事也是可以的。但是你知道的機器學(xué)習(xí)知識越多,在構(gòu)建解決方案方面的能力就越好。
  我也認為機器學(xué)習(xí)專家和軟件工程師聚在一起進行機器學(xué)習(xí)系統(tǒng)軟件開發(fā)最佳實踐將會很重要。目前我們有一套軟件測試體制,你可以定義單元測試并在其中調(diào)用方法,比如assertTrue或者assertEquals。我們還需要新的測試過程,包括運行試驗、分析結(jié)果、對比今天和歷史結(jié)果來查看偏移、決定這種偏移是隨機變化還是數(shù)據(jù)不平穩(wěn)等。這是一個偉大的領(lǐng)域,軟件工程師和機器學(xué)習(xí)人員一同協(xié)作,創(chuàng)建新的、更好的東西。
  問:我想從軟件工程師轉(zhuǎn)行成為人工智能研究員,應(yīng)該如何訓(xùn)練自己呢?
  Peter Norvig:我認為這不是轉(zhuǎn)行,而是一種技能上的提升。人工智能的關(guān)鍵點在于搭建系統(tǒng),這正是你手頭上的工作。所以你在處理系統(tǒng)復(fù)雜性和選擇合適的抽象關(guān)系方面都有經(jīng)驗,參與過完整的設(shè)計、開發(fā)和測試流程;這些對于AI研究員和軟件工程師來說都是基本要求。有句老話這樣說,當(dāng)一項人工智能技術(shù)成功之后,它就不再屬于人工智能,而是成為了軟件工程的一部分。人工智能工作者抱怨上述觀點的意思就是他們的工作永遠離成功有一步之遙,但你可以認為這表明你只是需要在已知的基礎(chǔ)上再添加一些新概念和新技術(shù)。
  人工智能在Google
  問:Google“沒有更好的算法,只是多了點數(shù)據(jù)而已”這種說法是真的嗎?
  Peter Norvig:我曾引用微軟研究院Michele Banko和Eric Brill發(fā)表的一篇關(guān)于分析詞性辨析算法的論文,他們發(fā)現(xiàn)增加訓(xùn)練數(shù)據(jù)得到的效果提升比更換算法更明顯。我說過有些問題確實如此,而另一些問題則不見得。你可以認為這篇論文是“大數(shù)據(jù)”的功勞,但要注意,在這個領(lǐng)域十億個單詞規(guī)模的訓(xùn)練數(shù)據(jù)集就能看出效果 —— 在筆記本電腦的處理范圍內(nèi) —— 還不到數(shù)據(jù)中心的量級。所以,如果你用不了數(shù)據(jù)中心,不必擔(dān)心 —— 你擁有的計算資源和數(shù)據(jù)量幾乎完勝任何一個上一代的人,你可以有更多的新發(fā)現(xiàn)。
  所以沒錯,大量與任務(wù)相契合的高質(zhì)量數(shù)據(jù)必然會有幫助。然而真正有挑戰(zhàn)的工作在于發(fā)明新學(xué)習(xí)系統(tǒng)的研究和讓其真正落實到產(chǎn)品中的工程實現(xiàn)。這個工作正是大多數(shù)機器學(xué)習(xí)成功案例的驅(qū)動力。正如Pat Winston所說:“人工智能就像葡萄干面包里的葡萄干,葡萄干面包的主要成分還是面包,人工智能軟件主體也是常規(guī)的軟件工程和產(chǎn)品開發(fā)?!?br />   問:成為一家“AI-first”公司對Google意味著什么?
  Peter Norvig:“傳統(tǒng)”的Google是一個信息檢索公司:你提供一個查詢,我們快速返回10個相關(guān)網(wǎng)頁結(jié)果,然后你負責(zé)找到與查詢詞相關(guān)的返回結(jié)果。“現(xiàn)代”的Google,CEO Sundar Pichai設(shè)定了愿景,它不僅基于相關(guān)信息建議,還基于通知和助理。通知,意味著當(dāng)你需要時,我們提供你需要的信息。例如,Google Now告訴你該去赴約了,或者你目前在一家雜貨店,之前你設(shè)定了提醒要買牛奶。助理意味著幫助你實施行動——如規(guī)劃行程、預(yù)定房間。你在互聯(lián)網(wǎng)上可以做的任何事情,Google都應(yīng)該可以幫你實現(xiàn)。
  對于信息檢索,80%以上的召回率和準確率是非常不錯的——不需要所有建議都完美,因為用戶可以忽略壞的建議。對于助理,門檻就高了許多,你不會使用20%甚至2%的情形下都預(yù)定錯房間的服務(wù)。所以助理必須更加精準,從而要求更智能、更了解情況。這就是我們所說的“AI-first”。
  Peter Nervig在Google
  問:你的職業(yè)生涯如何起步?
  Peter Nervig:我很幸運地進入了一所既有計算機編程又有語言課程的高中(在馬薩諸塞州牛頓縣)。這激發(fā)了我將兩者結(jié)合起來學(xué)習(xí)的興趣。在高中階段無法實現(xiàn)這個想法,但是到了大學(xué)我主修應(yīng)用數(shù)學(xué)專業(yè),得以研究這方面(當(dāng)時,我們學(xué)校并沒有真正的計算機專業(yè)。我開始是主修數(shù)學(xué),但很快發(fā)現(xiàn)自己并不擅長數(shù)學(xué)證明,反而在編程方面如魚得水)。
  大學(xué)畢業(yè)后,我當(dāng)了兩年的程序員,不過仍舊一直在思考這些想法,最后還是申請了研究生回來繼續(xù)從事科研(我過了四年才厭倦大學(xué)生活,而兩年就厭倦了工作狀態(tài),所以我覺得我對學(xué)校的熱愛是對工作的兩倍)。研究生階段為我學(xué)術(shù)生涯打下了基礎(chǔ),而我卻迷上了今天所謂的“大數(shù)據(jù)”(當(dāng)時還沒有這種叫法),我意識到在工業(yè)界更容易獲得所需要的資源,因此放棄了高校里的職位。我感到幸運的是每個階段都有優(yōu)秀的合作伙伴和新的挑戰(zhàn)。
  問:你在Google具體做什么?
  Peter Norvig:在Google最棒的事情之一就是總有新鮮事;你不會陷入例行公事之中。在快節(jié)奏的世界中每周都是如此,當(dāng)我角色改變之后,每年更是如此。我管理的人員從兩人變成了兩百人,這意味著我有時候能深入到所參與項目的技術(shù)細節(jié)中,有時候因為管理的團隊太大,只能提一些高層次的籠統(tǒng)看法,并且我相信我的團隊正在做的事情是正確的。在那些項目里,我扮演的角色更多的是溝通者和媒介——試圖解釋公司的發(fā)展方向,一個項目具體如何展開,將項目團隊介紹給合適的合作伙伴、制造商和消費者,讓團隊制定出如何實現(xiàn)目標的細節(jié)。我在Google不寫代碼,但是如果我有一個想法,我可以使用內(nèi)部工具寫代碼進行實驗,看看這個想法是否值得嘗試。我同樣會進行代碼審查,這樣我就可以了解團隊生產(chǎn)的代碼,而且這也必須有人去做。
  還有很多的會議、郵件、文檔要處理。與其他我工作過的公司相比,Google的官僚主義更少,但有時候是不可避免的。我也會花一些時間參加會議、去大學(xué)演講、與客戶交流,以及參與Quora問答。
  問:在加入Google之前,你曾擔(dān)任美國宇航局(NASA)計算科學(xué)部門的主要負責(zé)人,在美國宇航局的工作與Google的工作有何不同?有哪些文化的差異?
  Peter Norvig:美國宇航局與Google有很多共同之處:它們都有一群優(yōu)秀敬業(yè)并且充滿激情的員工,這些人相信它們的工作使命。而且兩者都在推動各自技術(shù)的上限。因此,他們在特定項目中的文化往往是相似的。
  同時也存在一些差異。美國宇航局的Gene Kranz曾說過一句名言:“失敗不是種選擇(Failure is not an option)?!泵绹詈骄纸?jīng)常會有幾億美元的使命任務(wù),任何一個錯誤都有可能毀滅一切。因此,需要極其小心。Google的項目范圍往往更接近Adam Savage的想法(與Jeff Dean相互呼應(yīng))“失敗自古至今就是一種選擇(Failure is always an option)”。Google相信,單臺計算機可能會發(fā)生故障,而設(shè)計網(wǎng)絡(luò)系統(tǒng)可以從故障中恢復(fù)。在Google,有時我們可以在用戶看到錯誤之前進行恢復(fù)糾正,而有時當(dāng)一個錯誤曝光后,我們可以在簡短的時間內(nèi)糾正它,同時向受到影響的用戶致歉,而這在美國宇航局是很少見的。
  一方面是因為失敗的預(yù)期成本存在差異,另一方面是由于空間硬件的成本巨大(參見我在那做的東西),再者就是政府與私人機構(gòu)的差異,基于這一優(yōu)勢,Google更容易啟動新項目,并在已有的項目中迅速推動新項目的進展。
  問:你是如何權(quán)衡新功能的開發(fā)與舊功能的維護呢?
  Peter Norvig:盡你所能將任務(wù)做得最好,并且不斷改進,這樣就會得到提高。
  我曾一次次地發(fā)現(xiàn):團隊的新員工說“我們?yōu)槭裁床皇褂肵?”,一位老員工回答說:“我們?nèi)昵熬驮囘^了X,結(jié)果證明它并不管用”。此時的難題是:你是否接受那位老前輩的回答?或者說,現(xiàn)在的情況已經(jīng)改變了,是時候重新審視X了?也許我們有新的數(shù)據(jù),或者新的技術(shù),又或者新員工將采取不同的方法,或者說世界改變了,X將會比以往工作得更好。我無法告訴你該問題的答案,你必須權(quán)衡所有證據(jù),并與其他類似問題進行比較。
  程序員提升之道
  問:《人工智能:一種現(xiàn)代方法》還會有新的版本嗎?
  Peter Norvig:是的,我正在為此努力。但至少還需要一年的時間。
  問:我是一名研究生,我的人工智能課程使用《人工智能:一種現(xiàn)代方法》作為參考教材,我如何才能為人工智能編程項目做貢獻?
  Peter Norvig:現(xiàn)在正是時候:我正在為《人工智能:一種現(xiàn)代方法》這本書的下一個版本的配套代碼工作,在https://github.com/aimacode上,你可以找到Java、Python和Java子項目,我們一直在尋找好的貢獻者。除了提供書中所有算法的代碼實現(xiàn),我們還希望提供tutorial材料和練習(xí)。此外,GitHub上也還有其他好的人工智能項目,都希望有鐵桿貢獻者。
  問:有沒有像可汗學(xué)院(Khan Academy)和Udacity一樣的在線資源,可以讓人們在不到“十年”就精通一門學(xué)科呢?
  Peter Norvig:精通可能需要十年,或者是10000個小時,這種時間會因任務(wù)、個體以及訓(xùn)練方法的不同而有所差異。但真正的精通并非易事??珊箤W(xué)院和Udacity主要是提供了技術(shù)培訓(xùn),讓你不斷努力地學(xué)習(xí)直到你真正地掌握它。在傳統(tǒng)的學(xué)校教學(xué)當(dāng)中,如果你在考試中獲得的成績是“C”,你就不會再去花更多的時間去學(xué)習(xí)并掌握它,你會繼而專注于下一個學(xué)科,因為班集里每個人都是這樣做的。在線資源不是萬能的,精通它需要加倍努力地學(xué)習(xí),而學(xué)習(xí)需要動力,動力則可以通過人與人之間的聯(lián)系逐步提升,這在網(wǎng)上是很難學(xué)到的。因此,在一個領(lǐng)域,走上正軌,我們需要在社交、動機方面做更多的工作,我們需要對個人需求有針對性地做更多的定制培訓(xùn),同時我們還需要做更多使實踐審慎和有效的工作。我認為,在線資源主要的最終結(jié)果不是縮短精通的時長,而是增加更多學(xué)生實現(xiàn)精通的機會。
  問:如果請你再次教授《計算機程序設(shè)計》(Udacity)這門課程,會做哪些改變呢?
  Peter Norvig:我認為這門課程很好,反饋(不管是數(shù)量還是質(zhì)量)大多都是好的。就個人而言,我希望有更多的實例程序和技術(shù)。我想修正之前我們犯下的一些錯誤(主要是因為課程進展太快,沒有太多的時間去測試所有的東西)。我希望系統(tǒng)能夠更加互動:讓學(xué)生獲得更多的反饋信息,不僅僅是“你的程序不正確”,同時可以讓學(xué)生看到下一件要做的事情,讓他們知道到目前為止已經(jīng)做了什么。我認為對于學(xué)生而言,正則表達式和語言這部分進展速度過快了;另外,我還想添加更多的材料,讓學(xué)生加快學(xué)習(xí)速度,同時給他們更多的機會去實踐新想法。
?

非常好我支持^.^

(0) 0%

不好我反對

(0) 0%

      發(fā)表評論

      用戶評論
      評價:好評中評差評

      發(fā)表評論,獲取積分! 請遵守相關(guān)規(guī)定!

      ?