Category Archives: Machine Learning

常識推理系統 — OpenMind & Learner2

不管是哪一個人工智慧學者都會同意,學習能力才是邁向智慧的關鍵。但學習並不是一件容易的事,特別是在常識推理的領域中。這些對於人類毫無困難、但是卻多如牛毛的常識,往往讓電腦在推理的過程中屢遇挫折。

毫無疑問的,只要我們能夠建立一個包含所有常識的資料庫,又能夠建立一套快速搜尋的演算法,並提出能夠解決彼此矛盾的方法,我們就有機會讓電腦走入我們的生活。WWW 的發明人 Tim Berners-Lee 認為人們在網路上所發表的訊息本身就是最好的知識庫,因此著手制訂讓機器易於處理的格式規定,以便建立 Semantic Web (語意網) ,作為機器智能的基礎。

另一群人工智慧的研究者則利用 Internet 的群眾力量,來將這些難以數計的常識建入資料庫之中。MIT Media Lab 所建立的 OpenMind CommonSense 就是這樣的一個計劃,它設計了二十幾種方式來輸入常識,包括定義事實(Enter a fact)、因果關係(Cause and effect)、為什麼? (Explain why?) 等等,有一些方式是讓使用者直接輸入答案,有一些則是電腦的疑點要請使用者釐清。

南加大的 Learn2 系統也是秉持著同樣的想法,它請使用者來回答一些基本的問題,並透過上一個問題來詢問下一個問題。例如,當你輸入 "榔頭是用來敲東西的",它就會問,還有什麼東西可以用來"敲"?或是,在它的知識庫中已經知道門也可以敲,那它們是否相像?

除了建立知識庫之外,更重要的是運用常識推理。OpenMind 提供了 "ConceptNet Toolkit",讓其他需要使用常識推理的研究者可以直接套用,或是自行訓練一個特定領域的常識庫。透過公開的 ConceptNet,大家可以自行發展出各自的應用,而不再需要重複建立常識庫。

然而,目前關於常識庫的建立大都集中於英文上。在中文的領域其實還是一片空白,最大的問題應該還是出在斷字斷詞上,如果連使用者的回答都無法正確斷字斷詞,那麼要建立這樣一個常識庫顯然還有困難。或許也可以利用相同的方式來請使用者協助斷詞,但是要怎麼把建立常識庫變成一件好玩的事,其實才是通往成功之道。

參考資料:

評《建立以情緒為基礎的代理人決策架構》

上學期的作業報告,丟上來充數。XD

本篇論文主要是應用了情意計算的概念,來設計可以讓 agents 運用情緒資訊來最佳化的架構。

  • 論文題目:建立以情緒為基礎的代理人決策架構
  • 論文作者:清大資工陳光泰/蘇豐文
  • 論文發表於:TAAI 2004

內文簡述

本篇論文主要是提出一個可能的架構,用來在代理人系統的判斷中納入情緒考量,以解決目前以理性為基礎的Agents無法解決的問題,這些問題包括:著重短期利益、不適合產生利人的互助行為、對於事件的優先順序無法有一個完整而精簡的定義方式。藉著Antonio R. Damasio對於缺乏感情判斷能力者的臨床觀察,Affective Computing試圖把情緒納入電腦的判斷參考中,以建立更能夠在實際世界運作良好、與人(Human)和機(agents)合作得更好的擬真程式。

作者首先提出一個情緒架構,用來模擬情緒在人類作決定時所扮演的角色,以及情緒如何影響最終如何影響決定的產生。在這個架構中,環境的輸入先經由Belief Block轉為Belief,Belief再經由參考內在狀態以產生情緒和慾望,這些情緒和慾望參數再經由Planner轉為對應的決策,以朝向最有利於自己的方式改變;而這個改變除了改善自己的狀態外,也包括讓自己的情緒朝向更好的方式改變。

文中對於情緒的表示方式,引用了Piccard提出的方式,以一個Sigmoid function來為情緒建立Threshold和Saturation,其根本理由在於情緒其實是有下限和極限的,在兩個極端時差異其實並不大。

作者並改善南加大提出的情緒評估框架(EAF),在新提出的EEF中新增了一個目標狀態(goal state),以明確的告訴agents如何遠離負面情緒。這種方式的優缺點容後再議。

作者並提出情緒如何合成,參考的觀點包括1.信仰;2.利益;3.代理人;4.經驗。而這些觀點有的又帶有較理性的偏好情感,有的則是非理性的道德情感。在道德情感又分為義務論(Deontology)和目的論(Teleology),以免正義被過份擴張,或是為了多數犧牲少數的情形發生。

經由以上的架構建構出的網路可以用來計算每一個決定背後可能對agent所帶來的”快樂”為何。”快樂”在這個架構中取代了”利益”,成為agent最佳化的目標。由於不同的agents會因為自己的利益、信念、經驗等因素而產生不同的”快樂”,最後在互動的過程中也會產生合作或利它的行為,最終使得系統達到global optima。

問題與討論

  • 情緒是否適合用Sigmoid function來表示?該如何表示極度的情緒產生的「暴虎馮河」行為?

    Sigmoid function的確可以表示一般狀態下的情緒,但是若用來表示盛怒之下、完全不考慮其他事情的情緒,就顯得有點不足了。事實上,在這個狀況下,情緒的作用還比較像是offset極大的二極體(diode),在超過一定範圍後電阻趨近於零。雖然這種情緒帶來的效果往往是不好的,但例如像成在火災時奮力一跳以求能跳到另一個大樓,此時這個決定若是會釋放大量的腎上腺素(而不考慮這樣做是否會造成血醣存量不足),那麼就能夠讓agent更有生存的機會。

    所以除了Sigmoid function外,我相信必定還需要某個function來處理這種緊急狀態。

  • 遠離負面情緒的方式是否能夠embed在EAF中而成為EEF呢?這樣的設計是否有侷限或缺點呢?

    將遠離負面情緒的方式加在描述情緒的描述之中,雖然看起來比較方便agent參考,但是實際上卻仍有兩個問題。

    1. 遠離負面情緒的選項往往不只一個,以巨大聲響而言,細胞內部有兩種學習機制,一種是敏感化、一種是習慣化,前者會引致個體嘗試逃避該刺激的行為,後者則是讓刺激對細胞的影響減弱,兩種方式都可以達到減少負面情緒的作用。如果連細胞層次都有這樣不同的行為產生,更不用說對於高階生物而言應該有多少種對應了,這麼多的對應要如何存於EEF中呢?個體對於各選項的偏好又要如何取捨呢?
    2. 針對goal state個體應該要能夠調適,就如同我們都覺得愛乾淨是好事,但是不顧一切保持乾淨會成為潔癖而影響正常生活;所以個體如何調適自我的情緒以滿足設定錯誤的goal?在自動控制系統中,我們知道在傳統的feedback model,有時候設定的goal會無法達成,造成永遠存在的落差,這時如果這個goal被寫死在agent的設定中似乎不是最好的選擇。相反的,應該要能夠讓agent把目標也當成內部狀態能夠自我調適。

  • 在這篇論文中提出了要考慮無聊的因素,但卻沒有定義如何表達無聊。無聊該如何定義呢?

    無聊這個東西,必然關連於時間以及內在狀態。但是對於agents來說,如果它會覺得一直採用相同的步驟(也許是已知最佳解)是無聊的,那麼系統就永遠不會進入穩定最佳解,無聊也許可以幫助系統跳出local optima,那就同樣可能跳離global optima。同時,如果它知道自己先前都採取什麼步驟,它要如何記憶?它又需要在什麼時候採取無聊的狀態?

  • 在這麼多因素的條件下,如何設計出會合作的Rules?

    賦予agents感情並期待其出現合作的行為,看似要利用基因演算法來產生Rules。如果是由人來設計Rules,那是否會出現某種不確定的環境,造成「保証毀滅」的軍武競賽結果?即使採用演化的方式,我們也無從知曉是否在某種環境下,agents會被trigger成完全不顧goal state、只顧維持自己的生存。所以我們必須要問,我們的goal state以長期而言,真的能被滿足嗎?而長遠的合作真的是穩態嗎?

結語

將Affective導入agents中雖然是個很有趣的點子,但是也讓系統的複雜度大為增加,甚至無從預測系統會產生什麼樣的整體行為。作者提出的觀點儘管補足了現存架構之不足,但從系統的架構、Rule的產生、個體的定義以及情緒的反應,都還需要更進一步的探討。