OpenCog的認知動力機制

OpenCog的認知動力機制

來自專欄 人工智慧與認知架構

從接觸OpenCog以來,我一直比較迷惑 AtomSpace中的知識是如何產生的,難道所有規則都需要手工錄入么?

這兩天啃《Build Better Mind》理解CogPrime才大概明白,一個通用AI系統需要具備的能力:

  1. 在環境中達成複雜目標的能力。
  2. 擁有多種記憶。 CogPrime指出的記憶有:聲明式記憶(Declarative memory)、過程式記憶(Procedural memory)、 感覺與情境記憶(Sensory and episodic memory)、 注意力記憶(Attentional memory,知道該如何分配注意力的記憶)、目標記憶(Intentional memory)
  3. 有知識發現機制(模式識別和構造)。 這也被叫做:cognitive processes 認知過程
  4. 能在認知過程認識到自己缺少信息、並依靠已知知識獲取新知識(或信息)的能力。
  5. 有協調多種認知過程的能力,以提高工作和獲取知識的效率。

在OpenCog的實現中"記憶"與"知識"這兩個概念其他沒有區別,它們都是存儲在AtomSpace的數據結構!可能聲明式記憶(Declarative memory)、過程式記憶(Procedural memory)和我們平常所說的知識的結構比較相近。所以一方面我們可以把不同結構記憶之間的轉換稱為knowledge creation,另一方面在上面的描述中,345強調的最終其實都是一種力量!

這種力量你可以把他叫生命力,叫創造力,叫激情,叫靈性。而在學術上我們對它的稱呼是 "認知動力"(cognitive dynamics) ,它是OpenCog整個架構運作起來的核心,是它讓僵化的知識體系的變得靈動而富有生命力!

整體來說認知動力在一個AI系統中由兩個方面組成:

  1. 是包涵我們自己實現的一些機制 CIM-Dynamics(Concretely-Implemented Mind Dynamics 翻譯起來應該叫認知動力學具體實現?)
  2. 是包涵系統運行過程中自組織湧現出的認知動力(這總讓我想到冥想課里講的概念:心猿意馬,我們的心正是一個這樣的湧現系統)

OpenCog的CIM-Dynamics是這樣實現的:

CogServer維護了一個認知循環,你可以理解它只是簡單的依次調用每一個Agent

而Agent根據各自的需要可以在AtomSpace里取出他們需要的知識atoms,並對他們進行操作(比如整理關係、修改權重等)

OpenCog源碼中就有不少例子比如ForgettingAgent(會根據長時記憶機制刪除Atoms)、ImportanceUpdatingAgent(會根據長時記憶和短時記憶規則調整節點的權重)、ImportanceDiffusionAgent、ImportanceSpreadingAgent

在opencog源碼examples目錄下有一個非常簡單的Agent例子,我們可以以它為模板實現自己的agent

github.com/opencog/open

具體做法可以參考官方文檔

Creating a new Mind Agent in C

Creating a Mind Agent that does something in C

最後打個廣告:人工智慧與認知架構討論Q群718388498,歡迎加入!

推薦閱讀:

人工智慧的三個層次:運算智能,感知智能,認知智能
電銷機器人是怎麼操作的
[探科技]進擊的人工智慧
關於「脫離」你應該知道的一切
艾米機器人能做什麼

TAG:人工智慧 | 認知心理學 | 認知科學 |