Posted by Mr. Thursday
Read Write Web提到了一個問答系統 eeggi,使用者可以在上面用自然語言問句,來尋找答案,有興趣的讀者可以在這邊觀看約4分鐘的DEMO。eeggi可以區分同義字,並且根據問句的上下文來判斷回傳的答案,並且會把語意上真正相關的結果整理在一起回傳。文章中還提到了eeggi會依照發現的繼承關係,自動套用相關的屬性,譬如說Mary是一位女孩,那麼女孩相關的屬性就會自動列入搜尋範圍。不過這卻也讓我想到了算是人工智慧裡面一個知識表達還算有名的問題。
這個問題是甚麼呢?首先我們先提一下古老以前亞里斯多德提出了一種邏輯推論法,叫做三段式論證。三段式論證舉個例子如下:
1. 人都會死 (Men are mortal.)
2. 拿破崙是個人 (Napoleon is a man.)
3. 所以拿破崙會死 (Napoleon is mortal.)
不知道各位是否看出三段式論證的規則了呢?就是第一行先論述一整個類別的性質,地行行列出某個事物屬於這個類別,第三行就是結論,也就是這個事物具有第一行類別提到的性質,或是說這個事物繼承了這個性質。
不過後來研究人工智慧的學者,喜孜孜地想要應用到知識表達的邏輯系統裡面的時候,卻發現有個反例,舉例如下:
1. 鳥會飛
2. 企鵝是一種鳥
3. 可是企鵝不會飛
這該怎麼辦呢?後來有滿多種解法,像是 reference class、Maximun Entropy以及 Random World Model等等。有興趣繼續研究的讀者,不妨參考這一篇由Stanford教授Daphne Koller所寫的博士畢業論文,就是在解決這一種知識表達資料庫的問題,裡面相關文獻也有提到剛才所講的各種寫法。目前我還沒有全部唸完一遍,因此有機會唸完,或是讀者已經有唸完這篇paper的也歡迎分享心得!
難的問題,不代表就不做。eeggi即使真的運轉的時候,可能不會像Demo的影片那麼準確地找出答案,仍然是可以繼續努力改進的!
相關連結
- eeggi.com Demo影片
- (Read Write Web) eeggi: The Intelligent Retrieving, Responding and Discovering Engine
- (Stanford CS) Daphne Koller, From Knowledge to Belief, PhD Thesis, Stanford University.
過去的今天:
- 虛擬人生 - Chapter 1 - 2007
- 柏林3D化 - 2007
- Paper Mario - 2007
相關推薦
![]() |
![]() |











如果是這樣的話,那反例的第一句「鳥會飛」不就錯誤的描述了「整個類別的性質」了嗎?
路人上
因為知識表達系統
就是希望能夠把已經知道的屬性
應用在同一類的物體上面
但是依照類別繼承屬性之後
發現有太多例外的物件
如果只有一個例外…那麼可以直接處理例外就好
但是例外很多…或是新事物進來之後甚麼時候會變成例外
就不曉得了
原本想要省力氣的繼承屬性的方法
應用下去卻無法保證邏輯推論的正確
只好發明其他可以省力氣繼承屬性
卻又不會造成邏輯推論錯誤的運算方式
也就是後來的人想要解決的問題了…
嗯,上面例子中的那個反例不代表邏輯推論錯誤吧。
三段式論證本身是純粹嚴謹的。
那個所謂的反例,當中「鳥會飛」這個前提本身是錯誤的。
前提假設是錯的話,推論方式是正確的也沒用。但不能說三段式論證有反例。
實際上那個「鳥會飛」是屬於「歸納法」的問題。
「歸納法」取之於經驗,一但有超出經驗的例外,所歸納出的法則就破滅。
比如大多數人所見的天鵝都是白色的,所以依經驗歸納出「凡是天鵝都是白色的」
然而最後發現澳大利亞有一種黑天鵝,這個例外使「凡是天鵝都是白色的」破滅。
所以文中「鳥會飛」是屬於「歸納法」的問題,不能指涉邏輯推論錯誤。
嗯…我舉的例子其實有些簡化…
正確的例子應該是像下面這個樣子 (Google到的資料)
Default Reasoning
If time permits, default reasoning and/or circumscription can also be introduced.
Consider the following:
Tweety is a bird.
Birds fly.
Therefore, Tweety flies.
What if we also know that:
Penguins are birds.
Penguins do not fly.
Tweety is a penguin.
Therefore, Tweety does not fly!
Default reasoning provides a solution. A default rule specifies a plausible inference:
Typically birds fly.
I.e., In the absence of evidence to the contrary, all birds fly. Since it can now be shown that Tweety is a penguin, and penguins do not fly, and hence Tweety does not fly, the default rule will not be applicable.
In the absence of the fact that Tweety is a penguin, the default inference would still be possible. Later on, if it is asserted that Tweety is a penguin, the earlier inference would have to be retracted. Such logics are called nonmonotonic. One has to extend FOPC to include such default rules.
所以應該是一個 “預設規則” (default reasoning)的問題
後來還有人發明circumscription…也就是預設一些東西不成立
(好像又太簡化…不過大致的意思是這樣子)
第一個提出circumscription的人似乎是McCarthy的樣子…
東西好多有空有興趣在繼續研究吧
怕貼網址會壞掉
把網置貼在這邊
例子的網址
http://cs.brynmawr.edu/~dkumar/UGAI/logic.html
—————————————–
John McCarthy
Circumscription - A Form of Nonmonotonic Reasoning was published in Artificial Intelligence in 1980.
http://www-formal.stanford.edu/jmc/circumscription.html