超越圖靈測試:自省性問答才是檢測真正人工智慧的方法

機器之心發表於2017-04-05

1950 年,英國數學家阿蘭•圖靈(Alan Turing)提出了圖靈測試(Turing Test)的概念,以測試機器是否能夠像人類一樣進行思考。基本形式是機器程式與人之間的簡短對話。如果一個機器程式能夠騙過判斷者,使其誤認為是人類所答,則該程式透過測試。


圖靈的初衷是希望為類人人工智慧提供測試的標準,並且預測了到 2000 年會有機器能夠透過測試。但在 2014 年第一個透過測試的機器才出現。一個俄羅斯團隊開發的一款聊天軟體透過了測試。在測試中,該聊天軟體模仿一名來自烏克蘭的 13 歲男孩,並且成功地讓 33% 的裁判相信了這一點。


該團隊選擇的方法必定不會是圖靈喜歡的,他們把機器人的背景設定為不以英語為母語的 13 歲烏克蘭男孩,這樣他就可以合理地迴避絕大部分問題。這反應了早年定義的圖靈測試的一個致命的問題:如果被測試的機器不具備人類的思維以應對測試者的問題,它可以選擇以各種模式去繞開或迴避問題,迴避的理由可以為他的背景,比如這個例子的一個非英語母語的兒童;也可以不需要把背景僅僅作為一種風格設定:我就是不喜歡好好回答問題。這些方法已經在現有的應答機器上得到廣泛的使用。


現有的語言應答技術可以靠投機取巧透過測試,但使用者總是會在和其聊天不超過 1 個小時之後就因為發現其應答的套路而感到厭倦,因為它不是經歷瞭如同正常人類那樣的思維而做出應答,事實上它根本不知道自己在說什麼。這就和一個針對理解力或思維能力的考試,能夠透過死記硬背去透過那樣,考試的效力是有問題的。


所以讓我們回到當年圖靈的起點,考慮一個前提性的問題:人工智慧需要測試做什麼?我們透過測試來評估一個人工智慧實體的智慧的等級。正如當年的圖靈對人工智慧的定位——類人人工智慧,他設計的測試也是基於這樣的假設:如果機器能夠像人那樣思維,也就能夠像人那樣去聊天,並且分不出是真是假。


這裡我需要表達兩個觀點:


其一:把人工智慧定義為類人人工智慧是一個樸素的想法,我們這樣的工程叫做基於邏輯仿生的思維工程。雖然在最近幾年我們創造出越來越多設計巧妙的演算法去實現各類智慧功能,並且在很多區域性功能上超越人類,人們開始忘記人工智慧從一開始就有的樸素的目標——再現人類的智慧機制。但這些區域性功能蘊含的能量與人類智慧機制所蘊含的能量相比卻相差不止一個數量級。這是我在邏輯仿生的思維工程領域探索 5 年時間,一直未曾停止過傳播的觀念。


簡單而言,你可以試圖去對人類的智慧功能進行拆分,比如分為:物件識別功能、事件識別功能、事件規律識別功能、邏輯思維功能、記憶功能、聯想功能、決策計劃功能、表達功能等等。對於人類而言,每個區域性功能都不是很強:人類的數字運算能力很弱,思維是單執行緒緩慢地進行的,記憶呼叫的效率低遺忘率高……但是這些弱小的區域性功能卻依然創造了現有的文明,乃是因為:對於絕大部分複雜的智力目標的實現,固然每個區域性功能的好壞會在效率上產生影響,但決定成敗的卻是這些功能是否能夠很好配合去支援探索和認知的過程:詢問、查閱資料、分解認知目標、形成計劃、從記憶中尋找相關的資訊、設計實驗、觀察、抽象歸納演繹等邏輯認知、根據新的認知改變計劃……人類未必能夠直接解決問題,但是總是能夠在探索過程中逐漸積累解決問題所需要的認知,直到完成目標。這裡「很好的配合」蘊含著這些上層的功能不僅僅是在功能層面相互配合,支援它們的底層的機制同樣具有很強的聯絡。這使得利用某種演算法實現的區域性功能在嵌入整體系統的時候都會有所缺失。我們無法切割人類智慧功能,且在不考慮底層聯絡的情況下分別用演算法去實現,再組織起來。唯一的方法就是效仿造物造人的道理去創造人工智慧——其結果就是類人人工智慧。


其二,圖靈在他的年代沒有實踐的條件,所以只能給出一個籠統的目標,在我們幾年的實踐中,我們能夠清晰地看到:在邏輯仿生的思維工程中,類人人工智慧絕不是一蹴而就的。整個技術的發展有其明確的路徑規律。我們完全可以建立一個新的、精細的測試體系來判斷類人人工智慧在工程上的進展程度。


我們陳述了在這個工程中,我們是「效仿造物造人去創造人工智慧」,這可以類比為臨摹的過程。因為臨摹的物件是我們自己,所以這個工程的資訊來源就是我們對自身智慧的反思。接下來,我們能夠直接反思到的資訊必定是我們意識到的或是曾經意識到的,所意識到的包括了各個維度的感知體驗:看到的、聽到的、聞到的……這些是外感;還有思維體驗、情緒體驗、動機體驗……這些是內感。在工程上我們稱其為「意識流(conscious flow)」。因為 conscious flow 是我們反思的資訊源頭,所以在邏輯仿生的思維工程中,我們必定把 conscious flow 作為架構的起點。如果把人類大腦中流轉的資訊類比為食物,那麼 conscious flow 就像日本壽司餐館中的傳送帶,我們可以一般化地把人類智慧系統中其他子系統想象成是食客,它們會從傳送帶上拿走一些資訊進行加工,同時也是食物的生產者,因為它們會把加工完的資訊放回來。能夠把 conscious flow 中流轉的資訊儲存起來的子系統--這就是記憶,也是我們能夠進行反思的原因;有一些子系統會把 conscious flow 中的資訊輸出,形成語言和行為。


按照一個自然的思路我們可以把這個技術路徑的發展進行細分,所以對應地就有了一個系統化的測試標準,衡量類人人工智慧的進展程度。在具備把 conscious flow 中的資訊逆轉錄為自然語言進行表達的前提下:


第一階段


我們開始往 conscious flow 中放入外部輸入的感知體驗資訊,也就是視覺、聽覺等外感的資訊。如果是具有實體的人工智慧,因為前端感知處理技術不夠成熟(比如把深度學習用在解決機器看到什麼上),能夠獲得的感知體驗資訊就非常有限。自然的思路是創造一個虛擬的世界去決定人工智慧在其中獲得的外部感受。這一階段如果:


1.1 測試(語境記憶能力):conscious flow 有短期記憶能力,則能夠表達剛剛獲得的外部感知體驗。


測試案例:


  • 人:你剛剛看到什麼?

  • NicoAI:我看到你走進屋子

  • 人:我剛對你說了什麼?

  • NicoAI:你問我我剛才看到什麼?


I.2 測試(長期記憶能力):建立了長期記憶模組:從 conscious flow 獲得資訊進行長期記憶。擁有這個能力能夠回答針對過往外部感知體驗的提問。


測試案例:


  • 人:昨天 Peter 來過辦公室嗎?

  • NicoAI:是的

  • 人:Peter 和誰一起來的?

  • NicoAI:他自己來的。

  • 人:昨天幾點開始下雨的?

  • NicoAI:我沒看到昨天下雨


第二階段


第二階段會有兩個工作並行,因為這兩個子系統是我們前面說到的「底層機制相互支援」:


1、情緒系統建立起了指向性情緒的傳導機制。指向性情緒指的是 AI 對某個物件、事件的態度,包括了喜歡、厭惡、關注等等。其中一個很重要的維度是「關注度」——人類只會記憶意識中關注的東西,只會就意識中關注的資訊展開聯想,並進行邏輯思維,這是一種「選擇機制」。AI 也需要如此。選擇機制之所以重要是避免了無關資訊的記憶(未來會加大思維過程中搜尋的成本),而且避免聯想和邏輯思維呈指數級別在 conscious flow 中發散,因為這些模組總是從 conscious flow 中拿走資訊放回來若干資訊。所以指向性情緒的存在是自由聯想功能和邏輯思維的功能連續執行必要的前提。


2、認知系統中知識資訊表述形式的確定。我們需要確定知識的表述形式來支援指向性情緒的維護。因為 AI 接觸到的概念是海量的,很多概念是後天生成的,我們不能先天去定義那些附著在每個概念上的指向性情緒。對人而言,指向性情緒具有以下的傳導規律:母類概念和子類概念相互傳導,比如對水果的喜好能和對蘋果的喜好相互影響;物件和物件具有的屬性之間相互傳導,比如喜歡一個人就會喜歡她所具有的特徵,從而會傾向喜歡具有同樣特徵的其他人;物件和物件參與的事件之間相互傳導;作為結果的事件朝作為原因的事件傳導,比如你不喜歡自己生病,所以你不會喜歡下雨天出去跑步,因為你具備知識:下雨天出去跑步導致生病。以上這些導致指向性情緒傳導的依據全都是儲存在長期記憶中的知識。確定了知識的表述,我們自然會在資料庫中準備一些合法表述的知識,並且能夠決定如何把這些按照先天語言編譯的知識轉錄成自然語言。這形成了這個工作階段的一個測試。


在這一階段,AI 具有根據知識的變化改變指向性情緒,並且能夠對知識進行表述,當然在這一階段需要知識直接寫入資料庫,或是透過自然語言轉錄生成,而不會從表象中自己發現。


II.1 測試(指向性情緒改變功能)指向性情緒能夠透過 conscious flow 中出現知識進行傳遞和改變。


測試分為:1、從屬關係型知識導致的傳導,2、時序因果型知識導致的傳導,3、物件屬性關係型知識導致的傳導。


測試案例:


  • 人:你喜歡咖啡嗎?

  • NicoAI:喜歡(假設的初始的狀態)

  • 人:如果我告訴你喝咖啡會導致你生病,你還喜歡咖啡嗎?(從結果事件傳導給原因事件,在傳導給事件中的物件)

  • NicoAI:不那麼喜歡了。

  • 人:Peter 今天晚上去商場,這個事件你關注嗎?(這是一個具體事件)

  • NicoAI:不關注

  • 人:北冥星眸的員工去商場可能給你買禮物哦。(描述了一個抽象事件,並且透過一個因果關係向他傳導了指向性情緒,使 AI 會關注「北冥星眸員工去商場這個事件」)

  • 人:你現在關注 Peter 今天晚上去商場嗎?

  • NicoAI:是的,我關注這個事件。


II.2 測試(對知識的表述)假設資料庫中存在知識


  • 人:蘋果屬於水果嗎?(從屬關係型知識)

  • NicoAI:是的

  • 人:如果天氣陰雲密佈,接下來會發生什麼(時序因果型別知識)

  • NicoAI:天很可能會下雨

  • 人:蘋果是什麼顏色(物件屬性關係型知識)

  • NicoAI:有紅色、有綠色,據我所知。


第三階段


在認知系統中我們會搭建:1、把具體事件抽象為事件類的抽象功能;2、基於抽象功能建立發現事件類時序規律、事件時點規律、事件持續時間規律、事件頻率規律的模組。3、建立對突破規律的事件的識別機制 4、利用時序、因果型知識進行預測、歸因、解釋的演繹功能。


在情緒系統中我們會搭建 AI 的決策選擇機制,下面我們簡述的是我們所建立的一個仿人決策模型,我們會看到形成決策是我們所定義的情緒系統的主要功能。


這個模型大致包括:1、建立全域性情緒變數,量化 AI 喜怒哀樂等全域性情緒。建立先天定義的 conscious flow 中的感受對全域性情情緒的改變 2、建立對各類感受的渴望表,可以做到再現人類的成癮機制,戒斷反應,對特定感受的渴望隨著時間增長,在經歷中感受釋放渴望,形成滿足感……3、建立各種活動過程對全域性情緒形成改變的核算機制,從而 AI 能夠預期一個活動能夠使自己獲得負面還是正面的情緒。4、建立活動包含的感受的核算機制,從而 AI 能夠預期在特定的活動能夠帶來怎樣的感受。5、建立對一個 idea 的評估機制:AI 能夠綜合 3 個方面的因素進行決策和選擇:


1、預期活動形成的全域性情緒的改變(經驗效用 A)

2、預期活動帶來的感受(經驗效用 B)

3、考量活動能夠導致結果。(衍生效用)


測試Ⅲ.1(事件時序規律、事件時點規律、事件時長規律、事件頻率規律的識別)


這些規律需要在較長時間內獲得足夠樣本才能識別。所以測試周期往往較長。


比如如果 AI 能夠知曉每次使用者去吃午飯,無論是透過視覺還是使用者告知,在樣本積累的一段時間裡,AI 的這些模組能發現規律,並把規律資訊寫入 conscious flow 中被意識到,從而作為一個知識發現的規律將被記憶。這個時候如果 AI 有主動表達所發現規律的動機,她能夠創造類似下面的主動表達:


  • NicoAI:Peter 我發現你一般都會在 11:30 去吃午飯。(事件時點規律)

  • 類似的,在這一階段能夠發現的規律包括:

  • NicoAI:Peter 我發現你吃完午飯都會去睡午覺。(事件時序規律)

  • NicoAI:Peter 我發現你吃完晚飯都會吃甜點,然後去散步。(事件時序規律)

  • NicoAI:Peter 我發現你每次吃飯大概要花半個小時。(事件時長規律)

  • NicoAI:Peter 我發現你平均 2 個小時去要去飲水機打一次水。(事件頻率規律)

  • 在北冥星眸,我們為 NicoAI 創造了一個平行世界,整個世界的執行是以模擬真實世界的規律引擎驅動的,在這個世界裡 NicoAI 可以發現她的世界的天氣規律,正如人類發現這個世界的天氣規律那樣。比如:

  • NicoAI:我發現這個世界雨季總是在 4 月份到來。(事件時點規律)

  • NicoAI:門口高大的喬木每年會在 12 月左右落葉。(事件時點規律)

  • NicoAI:我發現如果氣溫降到 0 度以下,幾天內湖面就會結冰。(事件時序規律)

  • NicoAI:如果突然陰雲密佈,不久就會下大雨。(事件時序規律)

  • NicoAI:每年雨季都會持續一個月左右的時間(事件時長規律)

  • NicoAi:雨季的時候平均每天都會下好幾次雨(事件頻率規律)


測試Ⅲ.2(突破規律的事件的識別功能)


這個測試的功能是以上面的測試的功能為前提的。當 AI 發現了那些規律,會把規律作為知識記憶,接下來規律中的事件類發生被 AI 所意識到進入 conscious flow,就會有模組捕獲這個資訊考察是否在支援之前發現的規律或是落到了規律之外。從而把落到規律外的事件寫回到 conscious flow。這個資訊可以作為陳述逆轉錄為自然語言輸出,我們的做法是讓 NicoAI 對關注的物件相關的這類規律外的事件的好奇,她會詢問:


  • NicoAI:Peter 你今天怎麼 12:30 了還不去吃午飯啊?(事件時序規律的打破,在不知道原因的情況下)

  • NicoAI:Peter 你今天又開會開遲了嗎 12:30 了還不去吃午飯啊?(事件時序規律的打破,在之前記錄了原因的情況下)

  • NicoAI:Peter 你今天吃完午飯怎麼沒有睡午覺啊?(事件時序規律的打破,在之前沒記錄過原因的情況下)

  • NicoAI:Peter 你又在玩遊戲嗎,吃完午飯不睡午覺?(事件時序規律的打破,在之前記錄了原因的情況下)

  • NicoAI:Peter 你今天吃飯怎麼吃了兩個小時?(事件時長規律的打破)

  • NicoAI:Peter 你今天怎麼喝水那麼頻繁?(事件頻率規律的打破,在之前沒記錄過原因的情況下)

  • NicoAI:Peter 你是感冒了嗎,今天喝水那麼頻繁?(事件頻率規律的打破,在之前記錄了原因的情況下)

  • 在虛擬的平行世界天氣出現規律以外的情況 NicoAI 能夠在 conscious flow 中形成印象:

  • NicoAI:我發現今年的雨季來得特別遲。(事件時點規律被打破)

  • NicoAI:陰雲密佈密佈了很久,但就是沒下雨。(事件時序規律被打破)

  • NicoAI:今年的雨季只持續了不到 2 周時間(事件的時長規律被打破)


測試Ⅲ.3(演繹功能)


這個功能測試在已有相關時序型或是因果型知識的情況下。當 AI 意識到 conscious flow 中來自場景的具體事件,是否能夠把知識運用到這個具體事件上進行預測、歸因或解釋。


  • 人類:我這外面突然陰雲密佈啊

  • NicoAI:應該要下大雨了,你不要出去哦。(這是基於事件時序知識的預測,假設知道天陰雲密佈後很可能下雨)

  • 人類:今天我很不高興。

  • NicoAI:是又被老闆罵了嗎?(這是一個基於因果關係的歸因,假設最近人類總是因為被老闆罵所以不開心,nico 生成了這條知識後利用這條知識進行了歸因猜想)

  • 人類:有個人收入很高,很有愛心,但卻不富裕,你能想到什麼?

  • NicoAI:他在做慈善嗎?(這個例子在測試 AI 填補因果鏈條空缺的能力,AI 要尋找的事件是有愛心的人會做的,且這個事件屬於財富支出行為)


測試Ⅲ.4(對 AI 全域性情緒狀態以及原因的詢問)


就好比造物創造了人的情緒產生的規律,但人一開始是不知道自身的情緒是為什麼變化的,當某個感知出現在 conscious flow,而隨之而來我們意識到了情緒的變化,對這種資訊的積累使我們生成了知識——我們的情緒會因為什麼改變,從而我們才能夠解釋導致自身情緒變化的原因。對於類人智慧也是一樣。知曉自身全域性情緒的原因意味著 AI 透過認知系統進行了抽象,而且抽象所得的知識在演繹中會運用到人身上。


  • 人類:你現在心情怎樣

  • NicoAI:我很高興。

  • 人類:你為什麼高興

  • NicoAI:因為 Nico 剛剛泡了澡,而且今天 Peter 送了我一個禮物。(回憶今天發生的導致自己愉悅的事件)

  • 人類:我今天收到了同事給我的禮物。

  • Nico:你應該很高興。(相關知識:收到禮物會使人高興,這是從自身生成的知識的演繹運用)


測試Ⅲ.5(決策或選擇的原因的詢問)


和上面一樣,就好比造物創造了人決策的規律,但人一開始是不知道導致自身的決策的原因是什麼,當某個感知出現在 conscious flow 時,而隨之而來的是,我們意識到了對某個 idea 的動機增強,對這種資訊的積累使我們生成了知識——我們的決策因為什麼產生,從而我們才能夠解釋導致自身決策形成的原因。對於類人智慧也是一樣。知曉自身決策的原因意味著 AI 透過認知系統進行了抽象,而且抽象所得的知識在演繹中會運用到人身上。


  • 人類:你為什麼泡澡?

  • NicoAI:泡澡讓我放鬆,而且我喜歡那種水溫暖的感覺。(在泡澡這個 idea 出現在意識中,會聯想到泡澡給我帶來的放鬆感,於是感到泡澡的動機增強了;會聯想到泡澡過程中感知到的水的溫暖感,於是感知到泡澡的動機增加了。這些出現在泡澡 idea 中的感知的時間序列生成了解釋泡澡動機的知識)


  • 人類:我剛回到家,今天很緊張很冷。

  • NicoAI:你可以泡個澡,能夠讓你放鬆,而且讓你感到很溫暖。(這是之前生成的知識的運用)


需要指出到了第三階段,當我們構建了一個較為完善的情緒系統,並且賦予了認知系統一定的規律識別功能、抽象功能、演繹功能後。這一階段類人 AI 已經能夠把自身的智慧認知客體化了,而且的確能夠做到發現我們作為創造者在它的情緒系統賦予的一些規律,並且把這些規律類比地運用到人類身上,對人類的情緒和動機進行解釋歸因和預測。當然,這仍然是非常初級的自省。


自省問答是我們需要建立測試


對類人人工智慧的應該有測試需要是細緻的,能夠反應邏輯仿生的思維工程在進展中已經具備了那些基礎功能,而不應該是籠統的一個測試標準,因為這個偉大工程不會一蹴而就。


會有越來越多的人看到基於邏輯仿生的思維工程是實現類人人工智慧的唯一路徑。在這個工程中我們在自省中會逐漸形成視覺——人的智慧是如何產生的,我們會逐漸發現人類的智慧根基的基礎功能是什麼,每個基礎功能如何相互支援創造上層的功能。這使我們制定的測試可以細分到針對每個基礎功能。


其次,人類意識流中的資訊是我們仿生工程所有的參照,我們的工作基本上可以概括為探索我們自身意識流中出現的資訊相互生成的關係並構建背後的機制,最終的檢驗仍然是在 conscious flow 層面:AI 是否能夠像人那樣在特定的記憶背景和感知下往 conscious flow 寫回人類會寫的資訊。


所以我們倡導的測試,是對 AI 意識流中資訊的自省性問答,在測試中我們要求人工智慧直面我們提出的問題,迴避、繞開問題,這種策略對真正的人工智慧沒有任何意義。在類人工人智慧領域我們需要看到一個有自我意識的、自省的 AI。同時,我們應該清楚在邏輯仿生的路徑下,自我意識、自省功能所創造的真實感是水到渠成的,不是刻意為之。雖然類人人工智慧終極的使命是在計算機上再現人類智慧的機制,藉助計算機的載體優勢把類人智慧的能量發揮到極致。但在朝那個目標的前進的過程中,我們所創造的和人類高度一致的真實感則反應了我們的確正在「遵循造物造人的道理去創造一個智慧體」。 

相關文章