計(jì)算機(jī)不是只會(huì) “計(jì)算”,圖靈機(jī)也不是一臺(tái)“機(jī)器”

2020-06-03 11:43:35   來(lái)源:新浪科技   評(píng)論:0   [收藏]   [評(píng)論]
導(dǎo)讀:  人們往往根據(jù)自己的理解對(duì)一個(gè)概念下斷言,其實(shí)對(duì)方使用的概念并不是你所以為的含義。要想避免這種誤會(huì),就不該對(duì)自己沒(méi)有認(rèn)真研究過(guò)的問(wèn)題下結(jié)論! ≡谟懻撊斯ぶ悄艿臐摿拖薅葧r(shí),常常有人拿 圖靈機(jī)
  人們往往根據(jù)自己的理解對(duì)一個(gè)概念下斷言,其實(shí)對(duì)方使用的概念并不是你所以為的含義。要想避免這種誤會(huì),就不該對(duì)自己沒(méi)有認(rèn)真研究過(guò)的問(wèn)題下結(jié)論。

  在討論人工智能的潛力和限度時(shí),常常有人拿 “圖靈機(jī)” 和 “可計(jì)算性” 說(shuō)事。其論證大致是這樣幾步:

  (1)既然人工智能是在計(jì)算機(jī)中實(shí)現(xiàn)的,其能力自然在計(jì)算機(jī)能力范圍之內(nèi);

  (2)現(xiàn)有計(jì)算機(jī)的計(jì)算能力都和圖靈機(jī)相同;

  (3)那些圖靈機(jī)不能解決的問(wèn)題當(dāng)然也就是人工智能所無(wú)法解決的。

  有些人會(huì)進(jìn)一步主張:

  (4)人腦不受這些限制,因此不等價(jià)于圖靈機(jī);

  (5)所以人工智能的根本能力永遠(yuǎn)低于人類(lèi)智能,盡管在某些具體能力上可以超過(guò)人。

  由于人類(lèi)智能或人腦的能力范圍本身尚未有明確界定,4、5兩步仍有爭(zhēng)議(不少人相信人類(lèi)的計(jì)算能力也受同樣的限制),但前面三步卻罕有反對(duì)意見(jiàn)。我下面要說(shuō)的就是:這事不是這么簡(jiǎn)單。上面的論證,尤其是(3),在其通常解釋下是錯(cuò)的。

  “圖靈計(jì)算”到底是什么意思

  由于這個(gè)問(wèn)題直接涉及對(duì)計(jì)算機(jī)科學(xué)核心概念的理解,我們不可避免地要從概念的定義開(kāi)始。鑒于本文的性質(zhì),我會(huì)試圖用日常語(yǔ)言把這事說(shuō)得足夠明白。

  圖靈近年來(lái)成了個(gè)廣為人知的名字,這里就不介紹了。他在1936年的一篇文章中提出了一種抽象的 “計(jì)算機(jī)器“(computing machines),并用它來(lái)定義“可計(jì)算的數(shù)”(computable numbers)。請(qǐng)注意:在那時(shí)計(jì)算機(jī) (computers) 尚未出現(xiàn),而圖靈的本意也不是要設(shè)計(jì)這樣的機(jī)器,而是要為在數(shù)學(xué)中廣泛使用的 “可計(jì)算” 這一概念提供一個(gè)嚴(yán)格的定義。由于人們(甚至以嚴(yán)謹(jǐn)著稱的數(shù)學(xué)家們)往往對(duì)同一個(gè)概念有不同理解,圖靈試圖用一個(gè)想象的機(jī)械裝置來(lái)避免歧義。簡(jiǎn)單地說(shuō),如果滿足某個(gè)特征的數(shù)字都可以在有限時(shí)間內(nèi)被這樣一個(gè)機(jī)械裝置生成或識(shí)別,那么這類(lèi)數(shù)就是可計(jì)算的。

  在電子數(shù)字計(jì)算機(jī)(即今天所說(shuō)的“計(jì)算機(jī)”)出現(xiàn)后,計(jì)算機(jī)科學(xué)中的 “計(jì)算” 概念沿用了數(shù)學(xué)中的傳統(tǒng)意義,圖靈機(jī)也被廣泛用于刻畫(huà)計(jì)算機(jī)中的各種過(guò)程,因而成為理論計(jì)算機(jī)科學(xué)的核心概念。在專業(yè)文獻(xiàn)中圖靈機(jī)的定義大同小異,下面的 “科普版” 改編自Introduction to Automata Theory, Languages, and Computation [1]——這個(gè)領(lǐng)域里最常用的教科書(shū)之一。

  圖靈機(jī)是一臺(tái)可以逐個(gè)處理一列符號(hào)的裝置,如下圖所示。

  

  對(duì)圖靈機(jī)的完整描述包括七個(gè)成分:

 

  1、 一個(gè)有限的輸入符號(hào)集,

  2、 一個(gè)有限的內(nèi)部符號(hào)集(輸入符號(hào)集的擴(kuò)充),

  3、一個(gè)特殊的空白符號(hào)(用來(lái)標(biāo)記被處理的符號(hào)序列的邊界),

  4、 一個(gè)有限的狀態(tài)集,

  5、一組狀態(tài)變換規(guī)則,根據(jù)當(dāng)前狀態(tài)和所關(guān)注的符號(hào)的組合決定新的狀態(tài)和符號(hào),然后將關(guān)注點(diǎn)前移或后移至另一個(gè)符號(hào),

  6、一個(gè)特定的初始狀態(tài)(初態(tài)),此時(shí)所有待處理符號(hào)都是輸入符號(hào),且關(guān)注點(diǎn)在第一個(gè)符號(hào)處,

  7、 一組終止?fàn)顟B(tài)(終態(tài)),至此停止運(yùn)行。

  當(dāng)且僅當(dāng)存在一個(gè)圖靈機(jī),可以將一個(gè)問(wèn)題的每個(gè)實(shí)例作為輸入,并在有限的變換后停止運(yùn)行,這時(shí)我們稱這一個(gè)問(wèn)題是 “圖靈機(jī)可計(jì)算” 的。如果停止運(yùn)行是由于達(dá)到了一個(gè)終止?fàn)顟B(tài)造成的,輸入就算是被 “接受” 了。如果停止運(yùn)行是由于沒(méi)有變換規(guī)則可以應(yīng)對(duì)當(dāng)前情況,輸入就算是被 “拒絕” 了。這個(gè)圖靈機(jī)對(duì)輸入符號(hào)串所作的 “接受還是拒絕” 的判定就叫一個(gè)“計(jì)算”。

  下面我們描述一個(gè)簡(jiǎn)單的圖靈機(jī),叫它“機(jī)器甲”。它用0和1做輸入符號(hào),而內(nèi)部符號(hào)是0,1,外加空白符 #。機(jī)器甲的狀態(tài)只有A和B,外加一個(gè)終態(tài)Z,其中A是初態(tài)。其變換規(guī)則是

  • 如果當(dāng)前關(guān)注的符號(hào)是0,把它改成 #,狀態(tài)不變(A還是A,B還是B),后移至下一個(gè)符號(hào);

  • 如果當(dāng)前關(guān)注的符號(hào)是1,把它改成 #,狀態(tài)改變(A變成B,B變成A),后移至下一個(gè)符號(hào);

  • 如果在狀態(tài)A下所關(guān)注的符號(hào)是 #(所有輸入符號(hào)都處理完了),進(jìn)入終態(tài) Z

  不難看出,給機(jī)器甲一個(gè)01符號(hào)串(如0110111)做輸入,它會(huì)逐個(gè)抹去其中的符號(hào)(把0和1都變成 #),最后用是否進(jìn)入了終態(tài)來(lái)判定輸入中1的個(gè)數(shù)是否為偶數(shù)。

  現(xiàn)在讓我們定義一個(gè)“機(jī)器乙”。它和機(jī)器甲完全一樣,只是初態(tài)為B。機(jī)器乙所完成的計(jì)算也是確定輸入中的1的個(gè)數(shù)的奇偶性,但 “接受還是拒絕” 的判定恰好與機(jī)器甲相反。

  這兩個(gè)圖靈機(jī)盡管簡(jiǎn)單,但卻已經(jīng)揭示了一個(gè)普遍的誤解:一個(gè) “圖靈機(jī)” 不是指一臺(tái)“機(jī)器”,而是指一臺(tái)機(jī)器的一個(gè)特定的運(yùn)行過(guò)程或使用方式,包括對(duì)初態(tài)和終態(tài)的劃分。上述的機(jī)器甲和機(jī)器乙是同一個(gè)裝置,但完成的計(jì)算不同。同理,對(duì)任何其它圖靈機(jī),只要修改其初態(tài)或終態(tài)的劃分,它就成了不同的圖靈機(jī),所完成的計(jì)算也就不同了。

  計(jì)算與智能

  一個(gè)系統(tǒng)的 “初態(tài)” 和 “終態(tài)” 的劃分并不像看上去那么無(wú)關(guān)大局,F(xiàn)在讓我們考慮 “機(jī)器丙”,它和機(jī)器甲基本相同,只是取消了狀態(tài) Z和最后一條變換規(guī)則。這樣一來(lái),當(dāng)所有符號(hào)都成為 #,機(jī)器不再有適用變換規(guī)則,就會(huì)停在當(dāng)前狀態(tài),而這個(gè)狀態(tài)同樣可以代表輸入中1的個(gè)數(shù)的奇偶性(A對(duì)應(yīng)于偶數(shù),B對(duì)應(yīng)于奇數(shù)),因此也可以被用作機(jī)器丙的計(jì)算結(jié)果。這臺(tái)機(jī)器在處理完一個(gè)輸入序列后,只要將狀態(tài)重新初始化為A,即可以處理下一個(gè)序列。

  一個(gè)有趣的問(wèn)題是:如果不做狀態(tài)重新初始化,情況會(huì)怎樣?顯然,如果機(jī)器丙在一次計(jì)算之后狀態(tài)停在B,則下次計(jì)算這個(gè)機(jī)器就變成機(jī)器乙了,并且后面會(huì)不斷在機(jī)器甲和機(jī)器乙之間轉(zhuǎn)換,而不再完成一個(gè)確定的計(jì)算。這個(gè)機(jī)器的處理結(jié)果不僅僅取決于當(dāng)前輸入,還取決于開(kāi)始處理這個(gè)輸入時(shí)的系統(tǒng)狀態(tài),而這個(gè)狀態(tài)是系統(tǒng)的歷史決定的。

  這種可能性乍看起來(lái)沒(méi)有討論價(jià)值。一個(gè)符號(hào)串里面有多少個(gè)1,與處理機(jī)制的歷史和狀態(tài)不應(yīng)該有任何關(guān)系,所以對(duì)應(yīng)的計(jì)算當(dāng)然必須從同一個(gè)初始狀態(tài)開(kāi)始,這才能保證過(guò)程和結(jié)果的確定性,或者說(shuō)可重復(fù)性。

  但 “計(jì)算” 的概念不足以涵蓋所有與智能、認(rèn)知、思維等有關(guān)的過(guò)程(見(jiàn)參考文獻(xiàn) [2] 中的討論)。尤其像那些和“學(xué)習(xí)“、”適應(yīng)“、“靈機(jī)一動(dòng)”有關(guān)的現(xiàn)象,根據(jù)定義,它們不是對(duì)問(wèn)題的可重復(fù)解決。嚴(yán)格說(shuō)來(lái),一個(gè)不斷學(xué)習(xí)的系統(tǒng)是不重復(fù)先前的內(nèi)部狀態(tài)的,因此即使是相同的輸入,處理過(guò)程和結(jié)果都未必相同。在這種情況下,相對(duì)于這個(gè)輸入而言,這臺(tái)裝置就不是一個(gè)圖靈機(jī),盡管它可以具有圖靈機(jī)定義中的前面5個(gè)成分,就像機(jī)器丙那樣。

  當(dāng)然,如果我們把這個(gè)裝置的 “出廠” 狀態(tài)看作初態(tài),“報(bào)廢” 狀態(tài)看作終態(tài),那么其整個(gè)“生命周期” 仍可以被看成是一個(gè)圖靈計(jì)算過(guò)程,其輸入由它歷史上所經(jīng)歷的所有輸入符號(hào)串銜接組成。但問(wèn)題是,這個(gè)周期和我們平常關(guān)心的 “解題周期” 不是一回事。如果這個(gè)系統(tǒng)在學(xué)下棋,那么我們通常會(huì)把每盤(pán)棋看作一個(gè)要解決的問(wèn)題,而這和把整個(gè) “學(xué)下棋過(guò)程” 當(dāng)作一個(gè)問(wèn)題是非常不同的。相對(duì)前者而言,系統(tǒng)的解題行為應(yīng)該是隨著時(shí)間而變的(否則何談學(xué)習(xí)),因此不是一個(gè) “下棋圖靈機(jī)” 。這種變化是因?yàn)榍懊娼忸}周期的終態(tài)成為了后面解題周期的初態(tài),而不需要引入其它因素(如“自由意志”、“量子效應(yīng)”、“隨機(jī)選擇”等等)來(lái)解釋。

  那么能不能說(shuō) “這個(gè)系統(tǒng)仍是圖靈機(jī),只不過(guò)在下每盤(pán)棋時(shí)它是一臺(tái)不同的圖靈機(jī)”?

  如果硬要這么說(shuō)也不能算錯(cuò),只不過(guò)沒(méi)有任何實(shí)際價(jià)值。在數(shù)學(xué)和計(jì)算機(jī)科學(xué)中,可計(jì)算性的研究都是以嚴(yán)格可重復(fù)的解題過(guò)程為研究對(duì)象的,其結(jié)論的價(jià)值也正在于為未來(lái)的解題過(guò)程提供可靠預(yù)測(cè)。如果一個(gè)解題過(guò)程不可重復(fù),說(shuō)它 “每次都是個(gè)圖靈計(jì)算,但說(shuō)不準(zhǔn)是哪個(gè)” 和說(shuō)這個(gè)過(guò)程 “不是圖靈計(jì)算” 就沒(méi)有實(shí)際差別了,反正也不知道它會(huì)怎么做。類(lèi)似地,說(shuō)這個(gè)系統(tǒng)的解題過(guò)程仍是可重復(fù)的,但這個(gè)過(guò)程要包括系統(tǒng)從 “出生“ 開(kāi)始的全部歷史,這也沒(méi)錯(cuò),但即使如此,它的下棋過(guò)程也是不能看成圖靈計(jì)算的。

  既然圖靈機(jī)指的不是某類(lèi)裝置,而是(裝置中的)某類(lèi)過(guò)程,就不能用它對(duì)應(yīng)于一臺(tái)計(jì)算機(jī),而是對(duì)應(yīng)于(一臺(tái)計(jì)算機(jī)中的)某個(gè)程序或過(guò)程。圖靈機(jī)在計(jì)算機(jī)科學(xué)中的重要性也就在于,嚴(yán)格、清晰地表達(dá)出一個(gè)符號(hào)(數(shù)據(jù))處理過(guò)程——這樣我們就可以用一種統(tǒng)一的術(shù)語(yǔ)刻畫(huà)到底哪些過(guò)程是“可計(jì)算” 的,而不再依賴直觀或模棱兩可的語(yǔ)言。

  前面的討論也說(shuō)明,并不是計(jì)算機(jī)中的所有過(guò)程都可以或應(yīng)該看成“計(jì)算“, 并等價(jià)于圖靈機(jī)的。這里最重要的是那些由于包含了學(xué)習(xí)、適應(yīng)、進(jìn)化等機(jī)制而成為不可重復(fù)的過(guò)程,盡管它們?nèi)院陀?jì)算有關(guān)。這有點(diǎn)像搭積木:每個(gè)積木塊都是預(yù)制的,但如何把它們組合在一起卻是可以臨時(shí)起意,不循常規(guī)的。這樣的系統(tǒng)的計(jì)算能力并沒(méi)有超過(guò)圖靈機(jī),但可以完成一些不能被稱為“計(jì)算”的功能。

  我設(shè)計(jì)的納思系統(tǒng)就是這樣:其中每個(gè)基本步驟都是提前編好的程序,或者說(shuō)都是圖靈機(jī)。但面對(duì)一個(gè)具體問(wèn)題時(shí),如何把它們組合起來(lái)使用,卻是靠系統(tǒng)現(xiàn)場(chǎng)發(fā)揮,沒(méi)有預(yù)先寫(xiě)好的腳本的,因此納思對(duì)一個(gè)問(wèn)題的處理是依賴于系統(tǒng)當(dāng)前狀態(tài)的。在納思的一個(gè) “生命周期” (以記憶的初始化為界限)中,其內(nèi)部狀態(tài)不重復(fù),因此它對(duì)同一個(gè)問(wèn)題的處理也不一定是嚴(yán)格可重復(fù)的,即不是圖靈計(jì)算。當(dāng)然,這不說(shuō)明系統(tǒng)在任何問(wèn)題上都沒(méi)有穩(wěn)定答案。我在《計(jì)算機(jī)能有創(chuàng)造性嗎?》和《時(shí)間緊急,怎樣決策才算理性?》中對(duì)這種工作方式有進(jìn)一步討論,這里就不再重復(fù)了。

  人腦是個(gè)圖靈機(jī)嗎?根據(jù)上面的討論, 我們會(huì)發(fā)現(xiàn),這不是個(gè)有意義的問(wèn)題。人腦中的某些相對(duì)簡(jiǎn)單的過(guò)程可能被近似地被圖靈機(jī)(計(jì)算機(jī)程序)模擬, 但仍有大量過(guò)程是不能這樣處理的。這可能是由于我們對(duì)這些過(guò)程的了解還不夠,也可能是它們本來(lái)就不是嚴(yán)格可重復(fù)的。至于這些功能是否可以由人工智能中的非計(jì)算性的過(guò)程所再現(xiàn),則不是本文要討論的了。

  “顧名思義”的功過(guò)

  本文的討論還涉及一個(gè)普遍的現(xiàn)象。對(duì)不熟悉的概念,顧名思義是個(gè)有效的認(rèn)知策略,但也是誤解的常見(jiàn)來(lái)源。對(duì)科學(xué)概念尤其如此。我在《新理論該怎么為概念下定義?》中討論過(guò)這個(gè)問(wèn)題。當(dāng)我們將一個(gè)新概念引入一個(gè)理論中的時(shí)候,為了促進(jìn)其傳播,常會(huì)選用一個(gè)含義接近的日常詞匯。但這樣做的危險(xiǎn)就是:圈外人會(huì)按照他們的固有觀念來(lái)理解相關(guān)的科學(xué)結(jié)論。

  比如說(shuō),人們往往認(rèn)為 “計(jì)算”是包含了計(jì)算機(jī)所能做的一切,但在計(jì)算機(jī)理論中,這個(gè)詞僅指使用計(jì)算機(jī)的一種常見(jiàn)的(但并非唯一的)方式。把這二者搞混,就會(huì)得出“人工智能的能力范圍僅限于可計(jì)算的問(wèn)題” 這種錯(cuò)誤結(jié)論。至于把圖靈機(jī)看作一種計(jì)算裝置,則是典型的顧名思義了。甚至很多計(jì)算機(jī)專業(yè)出身的人在學(xué)過(guò)圖靈機(jī)的概念之后,仍沒(méi)有意識(shí)到其定義中包含初態(tài)、終態(tài)所造成的限制,而理所當(dāng)然地認(rèn)為這是描述一個(gè)裝置時(shí)所必須的。

  造成這個(gè)混淆的更深層原因就是計(jì)算機(jī)科學(xué)中的數(shù)學(xué)遺產(chǎn)。什么是“問(wèn)題”?怎樣算是“解決”?在數(shù)學(xué)中 ,“解決”總是相對(duì)于一個(gè)問(wèn)題類(lèi)而言的,解題過(guò)程和結(jié)果都必須是嚴(yán)格、精確、可重復(fù)的。而在數(shù)學(xué)之外的生活中,由于必須迎接新的太陽(yáng),踏進(jìn)不同的河流,所以不能以同樣的標(biāo)準(zhǔn)論成敗。

  最后一個(gè)例子就是“通用人工智能”了。一個(gè)常見(jiàn)的意見(jiàn)是:“顯然不存在能解決所有問(wèn)題的通用智能”,但稍微讀些文獻(xiàn)就會(huì)發(fā)現(xiàn),真正在這個(gè)領(lǐng)域中工作的人,并不是在這一意義下使用“通用”這個(gè)詞的,而是把它作為“專用”的對(duì)立面。所以,在這里,“通用系統(tǒng)”不是“萬(wàn)能”的意思,而是“可以合理應(yīng)對(duì)意料之外的問(wèn)題”的意思。

  這種誤會(huì)在科學(xué)討論中并不罕見(jiàn):根據(jù)自己的理解對(duì)一個(gè)概念下斷言,其實(shí)是攻擊了一個(gè)稻草人——因?yàn)閯e人不是在這個(gè)意義下使用這一概念的。要想避免這種誤會(huì),就不該對(duì)自己沒(méi)有認(rèn)真研究過(guò)的問(wèn)題下結(jié)論。顧名思義是不可靠的,尤其對(duì)是那些“顯然”的問(wèn)題。如果真是那么顯然,別人怎么會(huì)看不到呢?對(duì)人工智能類(lèi)似的誤會(huì)不少。

分享到:
責(zé)任編輯:zsz

網(wǎng)友評(píng)論