2017·菠蘿科學獎 人工智慧主題解讀
有的人認為,我們擁有了人工智慧之後,就等於擁有大量不怕苦不怕累的廉價勞動力。它們不但能替人類做體力勞動,還能替人類做腦力勞動,很多時候比人類做的還要好。有了人工智慧以後,人類的未來會更加美好。
也有人認為,人工智慧看起來很美好,但實際上非常危險,人類必須小心。1993年,著名科幻作家弗諾·文奇提出了「技術奇點」理論。他認為,一旦人工智慧出現,它們就會不斷學習,不斷改進自己,變得越來越聰明,而且變聰明的速度會越來越快,引發 「智能技術的爆炸」(即技術奇點)。最後,它們發展出了一種在各方面都碾壓人類的超級人工智慧,從此,人類的時代將會終結。
科幻小說甚至常常設想人工智慧擁有了反抗意識,試圖消滅人類。
一些有識之士不斷發出警告,呼籲我們限制人工智慧的研究,警惕人工智慧的潛在風險。
然而,這些討論都或多或少脫離了我們的現實。霍金等人雖然很聰明,但他們畢竟沒有親自從事人工智慧的研究。也許,他們的設想就像150多年前的科幻作家一樣,以為通過一門巨型大炮就可以將人類送往月球。雖然我們最終登上了月球,但我們用的是火箭,而不是大炮。
也許,他們的設想就像人工核聚變一樣,長期處於「再過30年就能實現」的樂觀中。但實際上過了好幾個30年,卻仍然沒有實現。
「無論如何,人工智慧的應用已經滲透到了我們生活中的方方面面。未來無法阻擋,未來就在我們腳下。與其白日做夢,與其患得患失,我們不如客觀地了解一下,現在的人工智慧到底是怎麼回事。」
二、人工智慧的發展史機器到底能不能思考?計算機科學家艾茲赫爾·戴克斯特拉認為,這個問題就相當於問「潛水艇能不能游泳」。如果游泳的定義是「利用四肢、鰭或尾巴在水中前進」,那麼潛水艇肯定不會游泳,因為它既沒有胳膊也沒有腿。
但是,這種咬文嚼字的定義顯然是荒謬的。潛水艇顯然會「游泳」,只不過不是我們所設想的那種游泳。同樣的道理,機器也能「思考」,只不過不是我們所設想的那種思考。我們可以說,機器在通過計算機程序模擬人類的思考,使得自己在某些具體的任務中,像人類一樣能看、能聽、能想、能說、能動。
(1950年,阿蘭·圖靈發表了一篇論文,叫做《計算機器與智能》。他提出,與其去研究機器到底能不能思考,還不如去讓機器參加一個智能的行為測試,也就是圖靈測試。在圖靈測試中,一個計算機程序通過在屏幕上打字跟一個人進行5分鐘的在線聊天。這個人需要判斷,跟他聊天的是一個計算機程序還是一個大活人。如果一個計算機程序有30%的幾率讓別人誤以為自己是一個大活人,那麼它就通過了圖靈測試。我們就可以說這個程序學會了「思考」。圖靈預計,在2000年時,計算機可以存儲1GB的信息。人類在這樣的計算機上就能編寫一個能夠通過圖靈測試的程序。實際上,圖靈的設想並沒有實現,現在還沒有任何一個計算機程序能夠騙過聰明的人類裁判。並且,很少有人工智慧科學家關心圖靈測試。他們主要關心的是如何讓自己的人工智慧程序像人類一樣,能夠「聰明地」完成某個具體的實際任務,比如駕駛汽車。)
為了讓機器能夠通過某種計算機程序學會「思考」,人類科學家嘗試了各種各樣的方法,付出了幾代人的努力,熬過了兩次低谷,經歷了三次高潮。
三、人工智慧的三大驅動要素人工智慧之所以能在近年來掀起新一輪高潮,主要是因為三大驅動要素:演算法、大數據、運算能力。演算法:概括地說,計算機主要干三件事,一是輸入,二是運算,三是輸出。不論輸入什麼,在計算機看來都是一堆數據。不論輸出什麼,在計算機看來也都是一堆數據。研究人工智慧的計算機程序,很多時候是在研究「聰明的演算法」,能夠適應各種各樣的實際情況,讓計算機程序通過運算,從輸入的數據出發,正確而高效地得出應該輸出的結果。在這一輪人工智慧的熱潮中,機器學習的演算法發揮了重要的作用。
什麼叫演算法?當你交給計算機一個任務的時候,不但要告訴它做什麼,還要告訴它怎麼做。關於「怎麼做」的一系列指令就叫做演算法。比方說,你輸入一個峽谷的等高線地形圖,讓計算機找到其中海拔最低的地方。你需要告訴計算機,從地形圖的左上角開始向右走,一行一行地來回掃描,走遍整張圖之後,比較所有經過的地方的海拔高度,最終找到那個最低的地方。這就是一種演算法,只不過這種演算法效率很低,看起來很「笨」。
聰明的人會用聰明的演算法。例如,讓計算機把自己想像成一個小球,從圖中峽谷的任意一個地方開始往下滾。如果滾到一個地方滾不動了,那個地方就是海拔最低的地方。這種聰明的演算法叫做「梯度下降法」。如果將來你要學習人工智慧,這可能是你要掌握的第一個演算法。
什麼叫機器學習?很多時候,計算機工程師不可能像諸葛亮一樣,把所有可能發生的情況都提前預料到,然後把應對方法寫入幾個錦囊之中,讓計算機遇到問題時就打開其中一個看。計算機只要按照提前準備好的方法應對,就能渡過難關。為了完成更加複雜的任務,工程師必須讓計算機變得再聰明一些,能夠自動「學習」,從已有的歷史數據和經驗中自動分析,總結出規律。隨後,計算機就可以利用自己總結出來的規律,對新輸入的數據進行預測。這就是機器學習演算法。例如,你把杭州所有房子的價格和它們的面積、學區、建造時間以及周圍的交通情況等信息輸入計算機,通過機器學習演算法,計算機就能學到「大致判定杭州一個房子的價格的規律」。
上面那個例子很簡單,可能你覺得不必勞煩計算機去學習,直接告訴它規律就可以了。但是有些規律雖然你自己能夠領悟,但你卻無法翻譯成機器能理解的演算法。例如,如何把一張照片變成一幅像是梵高畫過的油畫?如何讓語音合成旗模仿一個名人的聲音?如何讓一個六條腿的機器狗適應各種野外地形?如何讓一家電商的伺服器猜出一個新用戶可能想要買什麼商品?這個時候就要靠機器學習了。
大數據:既然要讓機器努力學習,就得有東西(「大量數據」)可學。人類每時每刻的每個行為都可以變成數據,但在前互聯網時代,這些數據都不可能輕易地記錄和保存下來。隨著互聯網和物聯網的發展,隨著網路帶寬不斷增加,隨著存儲的硬體成本不斷降低,全球人類產生的數據在爆發性增長,為人工智慧的發展提供了源源不斷的營養。
運算能力:大數據的營養有了,計算機程序還要經過大量運算,才能對這些營養進行「消化」、「吸收」,變成各種各樣的「模型」,才能夠模擬人類的智能。從前,科學家使用傳統的CPU進行模型訓練,運算過程少則幾天,多則幾個星期,效率非常低。應用了GPU、FPGA和分散式運算等新的運算加速技術以後,模型訓練的效率大大提高。有實際應用價值的人工智慧程序一個接一個地湧現了出來。
四、人工智慧近期可以用在哪裡?從理論上講,人類能夠完成的任何一種重複的勞動,甚至人類無法完成的許多重複的勞動,都能用人工智慧的演算法進行機器學習。一旦模型訓練成功,它們就可以在這些學過的具體任務中,像人類一樣能看、能聽、能想、能說、能動。實際上,科學界和企業界對人工智慧的應用,依賴於每個領域的具體使用場景。下面,我們從與日常生活相關的領域出發,簡要地介紹人工智慧的幾個使用場景。醫療:每天都有很多人去醫院看門診,做檢查,接受治療。假設一個專家每天看30個病人,全年無休,經過30年的艱苦訓練,也只能看完33萬個病人。而且,如果他這樣不要命地看病,就沒有辦法讀論文,參加學術會議,學習最新的醫學研究成果。同時,根據IBM的資料,僅僅在上海市衛生信息系統,每天生產的數據就高達1000萬條,已建立起的電子健康檔案達3000萬,信息總量已達20億條。這些資料靠人力根本不可能看完,只能依靠擁有人工智慧的計算機。例如,根據日本媒體報道,有位 66 歲的女病人山下女士罹患罕見的「急性骨髄性白血病」,IBM的人工智慧系統Watson 在她病情突然惡化,意識不清的緊急狀況下,只用了 10分鐘就從 2000 萬份論文中找到了依據,精確判斷了她的病症,並找出了最適合的療法治療成功。
安防:為了偵破案件,公安部門常常要調取公共場所和道路兩側的監控錄像。應用了人工智慧技術之後,計算機在破案時可以從視頻畫面中,識別可疑人員的特徵,快速確定可疑人員的身份,並綜合解決查人、找人、預警、追蹤等的人員管理監控問題。計算機也可以在視頻畫面中,識別車輛信息,幫助失主追回被盜的汽車。
金融:全球的證券市場每天都會產生大量交易數據。著名對沖基金橋水曾經利用人工智慧技術,通過這些歷史數據和統計概率預測未來。這個程序能隨著市場的變化而變化,不斷適應新的趨勢,而不是一成不變的。交通:在汽車上安裝了攝像頭之後,無人駕駛的科學家就可以訓練計算機從視頻圖像中,學習識別周圍的物體和環境,檢測可行區域的範圍,並判斷車該往哪裡開。
新聞業:據36氪報道,美國有一家叫做敘事科學的公司,在2010年就推出了一款名為Quill的寫作軟體,能從不同角度將數字轉化為有故事情節的敘述文。Quill曾被用來撰寫電視及網路上棒球賽事的比賽報告,福布斯網站曾使用該公司的技術自動製作財報和房地產相關報告等。語音識別和語音合成:只要給人工智慧軟體投喂足夠多的語料庫,理論上它可以模仿任何一個人的聲音。你想讓它說什麼,它就能按照那個人的聲音說什麼。甚至還能用奧巴馬的聲音說帶口音的漢語。自然語言處理:時間就是金錢,浪費你的時間就是浪費你的錢。垃圾郵件不但浪費你的時間,浪費你的帶寬,有時候還給你設下騙局,妄圖直接騙走你的錢。應用了人工智慧技術之後,許多郵箱的垃圾郵件大大降低了,有些郵件服務商甚至將垃圾郵件比例降到了0.1%。
機器人裝置:雖然機器貓八字還沒一撇,但是機器狗,機器驢,機器蜘蛛都已經發明出來了。它們能站,能走,能跑,能爬,上山不打顫,下雪不怕滑。
科學研究:歐洲核子中心的大型強子對撞機,每秒鐘能夠產生幾億次對撞,但這些數據並不是全都能派上用場,科學家只能用快速而粗糙的標準篩選出其中區區1/1000的事件。科學家計劃在未來的加速器中安裝人工智慧程序,將更多可能蘊含著新發現的工作交給它。
電子商務:當你在網上開心地剁手的時候,你可知道自己也在不知不覺地用到了人工智慧技術?利用機器學習、數據挖掘、搜索引擎、自然語言處理等多種技術,各種買買買的網站都能根據用戶在網站中的點擊、瀏覽、停留、跳轉、關閉等行為,猜出你大概是哪種人,可能會喜歡什麼,然後把你可能喜歡的商品推薦到你眼前,讓剁手來得更猛烈些。
看完這份小資料之後,你有沒有人工智慧沒那麼神秘,沒那麼可怕了呢?其實,人工智慧技術的發展就像人類之前遭遇過的每一項技術突破一樣,既會給我們帶來好處,也會給我們帶來問題。鼓吹人工智慧也好,警惕人工智慧也好,我們不如先冷靜下來,踏踏實實地搞清楚人工智慧到底是什麼,理性地迎接未來的降臨。
附錄:機器到底是怎麼學習的?(本節內容專門為有好奇心的讀者而設)從演算法的角度看,機器學習有很多種演算法,例如回歸演算法、基於實例的演算法、正則化演算法、決策樹演算法、貝葉斯演算法、聚合演算法、關聯規則學習演算法和人工神經網路演算法。很多演算法可以應用於不同的具體問題;很多具體的問題也需要同時應用好幾種不同的演算法。由於篇幅有限,我們僅介紹其中(可能是公眾心目中名氣最大的)一種:人工神經網路。人工神經網路:既然人工智慧要模擬人類的思考過程,一些人工智慧科學家想,不如我們先看看人類是怎樣思考的吧?人類的大腦是一個複雜的神經網路。它的組成單元是神經元。每一個神經元看起來很簡單,它們先接收上一個神經細胞的電信號刺激,再向下一個神經細胞發出電信號刺激。
別看神經元細胞很簡單,但如果神經元的數量很多,它們彼此之間的連接恰到好處,變成神經網路,就可以從簡單中演生出複雜的智能來。例如,人類的大腦中含有1千億個神經元,平均每個神經元跟其他的神經元存在7000個突觸連接。一個三歲小孩大腦中,大約會形成1千萬億個突觸。隨著年齡的增長,人類大腦的突觸數量會逐漸減少。成年人的大腦中,大約會有1百萬億到5百萬億個突觸。
雖然科學家還沒有完全搞清楚人類大腦的神經網路的運作方式,但人工智慧科學家想,不理解沒關係,先在計算機中模擬一組虛擬的神經網路試試看,這就是人工神經網路。
在人工神經網路中,每一個小圓圈都是在模擬一個「神經元」。它能夠接收從上一層神經元傳來的輸入信號(也就是一堆數字);根據不同神經元在它眼中的重要性,分配不同的權重,然後將輸入信號按照各自的權重加起來(一堆數字乘以權重的大小,再求和);接著,它將加起來結果代入某個函數(通常是非線性函數),進行運算,得到最終結果;最後,它再將這個結果輸出給神經網路中的下一層神經元。
人工神經網路中的神經元看起來很簡單,只知道傻傻地將上一層神經元的輸入數據進行簡單的運算,然後再傻傻地輸出。沒想到這一套還真的很管用,運用一系列精巧的演算法,再給它投喂大量的數據之後,人工神經網路居然能夠像人腦的神經網路一樣,從複雜的數據中發現一系列「特徵」,產生「聰明的思考結果」。那麼人工神經網路是怎麼學習的呢?所謂的學習,本質上是讓人工神經網路嘗試調節每一個神經元上的權重大小,使得整個人工神經網路在某一個任務的測試中的表現達到某個要求(例如,識別汽車的正確率達到90%以上)。(請回憶一下前面講過的「梯度下降法」。人工神經網路嘗試不同的權重大小,相當於在一個參數空間的地圖上四處遊走。每一種權重的組合對應的人工神經網路執行任務時的錯誤率,相當於這個地圖上的每一點都有一個海拔高度。尋找一組權重,使得人工神經網路的表現最好,錯誤率最低,就相當於在地圖上尋找海拔最低的地方。所以,人工神經網路的學習過程,常常要用到某種「梯度下降法」,這就是為什麼如果將來你要學習人工智慧,第一個要掌握的就是「梯度下降法」。)
機器學習的分類:從學習風格的角度看,機器學習有很很多種學習方法,我們簡要地列舉其中幾種方法:監督學習、非監督學習、強化學習和遷移學習。監督學習:比方說,你想教計算機如何識別一張照片上的動物是不是貓。你先拿出幾十萬張動物的照片,凡是有貓的,你就告訴計算機有貓;凡是沒有貓的,你就告訴計算機沒有貓。也就是說,你預先給計算機要學習的數據進行了分類。這相當於你監督了計算機的學習過程。
經過一段監督學習的過程之後,如果你再給計算機看照片,它就能認出照片中有沒有貓。
非監督學習:比方說,你想教計算機區分貓和狗的照片。你拿出幾十萬張貓和狗的照片(沒有其他動物)。你並不告訴計算機哪些是貓,哪些是狗。也就是說,你沒有預先給計算機要學習的數據進行分類,所以你並沒有監督計算機的學習過程。
經過一段監督學習的過程之後,計算機就能把你輸入的照片按照相似性分成兩個大類(也就是區分了貓和狗)。只不過計算機只是從數字照片的數學特徵的角度進行了分類,而不是從動物學的角度進行了分類。強化學習:比方說,你想教計算機控制一隻機械臂打乒乓球。一開始,計算機控制機械臂像傻瓜一樣,拿著球拍做很多隨機的動作,完全不得要領。
但是,一旦機械臂湊巧接到一個球,並把球擊打到對手的球桌上,我們就讓計算機得一分,這叫做獎勵。一旦機械臂沒有正確地接到球、或沒有把球擊打到正確的位置上,我們就給計算機扣一分,這叫做懲罰。經過大量的訓練之後,機械臂漸漸地從獎勵和懲罰中,學會了接球、擊打球的基本動作。
遷移學習:比方說,你讓計算機學會了控制機械臂打乒乓球之後,又叫它學習打網球。這個時候,你不需要讓計算機從零開始重新學,因為乒乓球和網球的規則是相似的。例如,這兩種球都要把球擊打到對方的球場/球桌上。所以,計算機可以將之前學到的動作遷移過來。這樣一種學習,就叫做遷移學習。
參考文獻:Artificial Intelligence A Modern Approach,Stuart J. Russell and Peter Norvig;《深扒人工智慧系列之》,本邦科技CTO張文斌。致謝: 深圳藍胖子機器人有限公司;網易有道翻譯;文_Sheldon製作:sheldon科學漫畫工作室。
推薦閱讀:
※陳運權:從前人工筆花鳥畫的技法分析看當代風格重塑
※人工髖關節術後康復鍛煉--原陽盧氏骨科醫院
※人工授精怎麼取精 人工授精的條件 ?
※節約網--美首次人工合成能維持生命的蛋白質