AI編程范式 第5章 ELIZA:和機器對話(一)

第5章 ELIZA:和機器對話

解釋就是掩飾,越抹越黑。
——Joseph Weizenbaum
MIT 計算機科學家
本章和第一部分的地域章節會著重測試在60年代更加知名的三個AI程序。ELIZA會模擬一個心理治療師來和用戶進行對話。STUDENT解決的是在高中代數書上找到的某種問題,MACSYMA解決的是各種符號數學問題,包括分數和整數計算。前兩個程序我們根據之前版本的大部分特性來開發自己的版本,第三個程序我們會實現一個程序功能的精簡版本。
所有的這三個程序在一種叫做模式匹配的技術中非常有用。第一部分就是致力于展現這種技術的豐富,當然也有一定的局限。
在這三個程序中,頭兩個的輸入是普通的英語,后兩個解決的問題是不凡的數學問題,所以基本上可以稱他們是智能的。另一方面,我們應該認識到這種智能很大程度上是一種幻像,ELIZA實際上就是被設計來展示這種幻像的,并不是一個嚴謹的AI程序。
ELIZA是第一個把英語作為輸入和輸出的程序,這是他的一大特性。這個程序的名字來源于《賣花女》中的女主角,她由以為杰出的女教師來教授英語。ELIZA最初的開發者,MIT的Joseph Weizenbaum教授,在1966年一月寫出了一篇關于ELIZA的論文,其中有一些詳細的介紹:

據說解釋就是掩飾,越抹越黑。這句格言用在計算機編程上真的是再合適不過,特別是對啟發式編程和人工智能來說。即使對那些按照特定方式制造的機器,也足以讓有經驗的觀察者炫目著迷。但是一旦顯露出特定的程序,一旦內部的工作被解釋成足以理解的普通語言的時候,就會神奇地崩潰。他代表的僅僅是透露每一個可以理解的過程的集合。觀察著會對自己說,我本來可以寫成的。帶著這種想法,他把程序從智能的架子上拿下來,當做古董,僅僅展示給那些不比他聰明多少的人。
本論文的目標就是為了引起對于關于程序被解釋的再評價。很少有程序需要更多了。

我來指出本書的主要目的就是讓讀者對自己說,我本可以寫出他們的。這樣的想法就是因為讀者已經掌握了某些東西僅僅是因為針對問題的程序失去了炫目的能力罷了。
我們從Weizenbaum教授論文中的一個ELIZA對話實例開始說起。ELIZA的設計師由多種腳本構成的,或者說是多種交互的模式。事實上,還包括一些德語的和威爾士語的腳本。我們使用的ELIZA腳本是基于英語的,他模擬的是一個個人心理治療師的角色。個人心理治療師非導向性的,他讓患者更加暴露自己。這是一種ELIZA很容易實現的模式,以為他只要保持積極和回答反映就好了,而不需要上給出新的信息。在下面的列表中,用戶的輸入是大小寫混搭的,ELIZA的回答都是大寫的:
Men are all alike. (患者:男人都一樣)
IN WHAT WAY (ELIZA:哪方面來說)
They're always bugging us about something or another. (患者:他們總是說我們這兒不好的那兒不好)
CAN YOU BE MORE SPECIFIC (ELIZA:能更加具體一些么?)
Well, my boyfriend made me come here. (患者:恩,我男朋友讓我到這里來的)
YOUR BOYFRIEND MADE YOU COME HERE (ELIZA:你男票讓你來的?)
He says I'm depressed much of the time. (患者:他說我大多時候都很沮喪)
I AM SORRY TO HEAR YOU ARE DEPRESSED(ELIZA:沮喪么?我很抱歉)
It's true. I am unhappy. (患者:這是真的,我很不高興)
DO YOU THINK COMING HERE WILL HELP YOU NOT TO BE UNHAPPY (ELIZA:你覺得來這里可以讓你高興起來)
I need some help, that much seems certain. (患者:我覺得我需要幫助,這是肯定的)
WHAT WOULD IT MEAN TO YOU IF YOU GOT SOME HELP (ELIZA:對你來說什么會對你有幫助呢)
Perhaps I could learn to get along with my mother. (患者:也許我該試著和我媽媽好好相處)
TELL ME MORE ABOUT YOUR FAMILY(ELIZA:跟我說說你的媽媽)

這個對話令人印象深刻,程序對很多的回答都比較合理,甚至可以說是“善解人意”的。但是正如Weizenbaum解釋說的,這種表現是一種幻像,程序對應一些困難的理解的時候,會通過仔細的分析,轉化,對輸入一步步回應。整個過程就是在尋找特定的模式,基于輸入的關鍵詞或者單詞。例如,程序檢索到輸入中有單詞,alike或者same,就會打印相似的信息來詢問,in what way。其他的模式或許更加復雜。在后面的談話中,ELIZA首先會放棄逗號后面的所有信息,使用模式搜索關于I need X的信息反饋,轉化成輸出what would it mean to you if you got X,X在這里就是some help。這個方法最大的好處就是每一個問題都會帶來更多的輸入:需要一個假期就會返回有了假期的話對你意味著什么?對于程序來說這都是自動完成的,假期和幫助沒有什么區別。這個程序的缺點在于有時候會做出一些愚蠢的回答。我需要這個就像我的腦袋上有個洞一樣,程序就會回答,你的腦袋上有個洞的話對你意味著什么?,事實上,程序僅僅會對那些有意義的輸入產生有意義的輸出,還要有人很好的解釋答案才行。對于沒有意義的輸入,程序會照本宣科,不顧是錯誤的回答。另一個原始ELIZA程序的例子就是和另一個程序PARRY進行通信,這個程序是由Kenneth Colby博士根據模仿偏執行為寫成的。一部分對話摘錄如下:
I don't understand your motives. (PARRY:我不明白你的動機)
WHY DON'T YOU UNDERSTAND MY MOTIVES? (ELIZA:為什么你不明白我的動機)
Shouldn't I be? (PARRY:我應該明白么?)
WHY DO YOU SAY THAT JUST NOW? (ELIZA:你剛說的是什么意思?)
That's just the way it is. (PARRY:字面意思)
SUPPOSE THAT'S JUST THE WAY IT WERE NOT. (ELIZA:假設是不是字面的意思)
So? (PARRY:所以呢?)
I AM NOT SURE I UNDERSTAND YOU FULLY. (ELIZA:我不確定我明白你的意思)
You harp on the same questions too much. (PARRY:你太執著了,死抓一個問題)
WHAT DOES THAT SIMILARITY SUGGEST TO YOU? (ELIZA:有什么相似的可說的)
I don't get you. (PARRY:我沒明白你的意思)
DO YOU WISH THAT YOU DID GET I?(ELIZA:你是希望我明白我自己?)

這表明ELIZA和PARRY對對話都沒有深入的理解。當有人類來承擔大部分對話中信息的理解的時候,程序還算是可以,但是人類的角色從對話中拿掉,程序的弱點就開始暴露了。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容