1. 程式人生 > >《人工智慧:一種現代的方法》讀書筆記之 智慧Agent

《人工智慧:一種現代的方法》讀書筆記之 智慧Agent

本人人工智慧小白,為了惡補知識,所以買了一本綜述型的入門教材。終於看完了第一部分,人工智慧概述~~做一下筆記,便於後續記憶。

一、前提

AI的任務是設計Agent程式,實現的是把感知資訊對映到行動的Agent函式。

二、什麼是Agent

Agent就是能夠行動的某種東西,具備自主的操作、感知環境、長期持續、適應變化並能建立與追求目標。

三、什麼是合理Agent

合理Agent是一個為了實現最佳結果,或者,當存在不確定性時,為了實現最佳期望結果而行動的Agent。

  • 正確的推理
    合理行動的一種方法是邏輯地推理出給定行動將實現其目標的結論,然後遵照那個結論行動,但是正確的推理並不是合理性的全部。
  • 有限合理性
    當沒有足夠的時間來完成所有你想要做的計算時仍能恰當的行動。

四、什麼是智慧Agent

智慧Agent要採取一個環境中最好的可能行為。
智慧主要與理性行為相關。

五、Agent和環境的關係

Agent通過感測器感知環境並通過執行器對所處環境產生影響。

  • 感知是用來表示任何給定時刻Agent的感知輸入。
  • Agent的感知序列是該Agent所受到的所有輸入資料的完整歷史。Agent在任何給定時刻的行動選擇依賴於到那個時刻為止該Agent的整個感知序列。
  • Agent函式描述了Agent的行動,它將任意給定感知序列對映為行動。
    • Agent函式是抽象的數學描述
    • Agent程式是具體實現

六、理性-好的行為

6.1 什麼是理性Agent

理性Agent是做事正確的Agent。

6.2 理性的判斷依賴

  • 定義成功標準的效能度量
  • Agent對環境的先驗知識
  • Agent可以完成的行動
  • Agent截止到此時的感知序列

6.3 理性Agent的定義

對每一個可能的感知序列,根據已知的感知序列提供的證據和Agent具有的先驗知識,理性Agent應該選擇能使其效能度量最大化的行動。

6.4 理性與全知的區別

  • 一個全知的Agent明確的知道它的行動產生的實際結果並且做出相應的動作。全知者在現實中是不可能的。
  • 理性是使期望的效能最大化,而完美是使實際的效能最大化。對Agent而言,完美是不太合理的要求。
  • 理性並不要求全知。理性的選擇只依賴於到當時為止的感知序列。

6.5 理性Agent的兩大特點

  1. 資訊收集
    觀察有助於期望效能的最大化。
  2. 自主學習
    從所感知的資訊中儘可能多的學習,以彌補不完整的或者不正確的先驗知識。

七、任務環境

7.1 定義:PEAS描述

  • Performance效能
  • Environment環境
  • Actuators執行器
  • Sensors感測器

7.2 設計Agent的第一步

儘可能完整地詳細說明任務環境。

7.3 性質

7.3.1 完全可觀察的vs部分可觀察的

  • 如果Agent的感測器在每個時間節點上都能獲取環境的完整狀態,這個任務環境就是完全可觀察的。否則,則是部分可觀察的。
  • 如果感測器能夠檢測所有與行動決策相關的資訊,該任務環境就是有效完全可觀察的。
  • 如果Agent根本沒有感測器,環境則是無法觀察的。

7.3.2 單Agent vs 多Agent

區分兩者的關鍵在於Agent B 行為的效能度量最大化是否需要依賴於Agent A的行為。

  • 競爭性的多Agent環境
    Agent B想要最大化自己的效能度量,就需要最小化Agent A的效能度量。

  • 合作性的多Agent環境
    Agent B想要最大化自己的效能度量,就需要最大化Agent A的效能度量。

  • 部分合作部分競爭的多Agent環境
    上述兩種情況都會發生。

7.3.3 確定的 vs 隨機的

如果環境的下一個狀態完全取決於當前狀態和Agent執行的動作,則該環境是確定的;否則,是隨機的。

  • 不確定與隨機的區別

    • 環境不確定是指 環境不是完全可觀察的或不確定的,行動後果可能有多種,但與概率無關。
    • 環境隨機是指後果是不確定的並且可以用概率來量化。

7.3.4 片段式 vs 延續式

片段式是指 當前決策不會影響到未來的決策。
延續式是指 當前決策會影響到所有未來的決策。

7.3.5 靜態 vs 動態

如果環境在Agent計算的時候會變化,該環境是動態的,否則是靜態的。
如果環境本身不隨時間變化而變化,但Agent的效能評價隨時間變化,則環境是半動態的。

7.3.6 離線 vs 連續

離線和連續的使用場景有:

  • 環境的狀態
  • 時間的處理方式
  • Agent的感知資訊和行動

7.3.7 已知 vs 未知

Agent的知識狀態。
如果環境是未知的,Agent需要學習環境是如何工作的,以便做出好的決策。

7.4 最難處理的情況

部分可觀察的、多Agent的、隨機的、延續的、動態的、連續的和未知的環境。

8 Agent的結構

Agent = 體系結構 + 程式。

8.1 體系結構

體系結構:某個具備物理感測器和執行器的計算裝置。

體系結構為程式提供來自感測器的感知資訊,執行程式,並把程式計算出的行動決策送達執行器。

8.2 Agent程式的框架

8.2.1 輸入

從感測器得到的當前感知資訊

8.2.2 輸出

執行器的行動抉擇

8.2.3 基本的Agent程式

8.2.3.1 簡單反射Agent
  • 定義
    基於當前的感知選擇行動,不關注感知歷史。
    最簡單的Agent型別。
    針對完全可觀察的環境。

  • 方法
    Step 1:首先構建一個通用的條件-行為規則直譯器。
    Step 2:根據特定任務環境建立相應的規則集合。

  • 缺點
    在部分可觀察環境中運轉的簡單反射Agent經常不可避免地陷入無限迴圈中。

  • 示意圖和虛擬碼見書P44
    這裡寫圖片描述

8.2.3.2 基於模型的反射Agent
  • 定義

    • 世界模型:

      • 知識一:世界是如何獨立於Agent而發展的資訊
      • 知識二:Agent自身的行動如何影響世界
    • 使用世界模型的Agent稱為基於模型的Agent

    • 通過將當前的感知資訊與過去的內部狀態結合來更新當前狀態
    • 針對部分可觀測環境
  • 缺點
    部分可觀察環境中的Agent不能精準確定當前狀態

  • 示意圖和虛擬碼見書P46
    這裡寫圖片描述

8.2.3.3 基於目標的Agent
  • 定義
    既跟蹤記錄世界的狀態,也記錄它要達到的目標集合,並選擇能(最終)導致目標達成的行動
  • 特點
    效率低、靈活、可學習。
  • 不適用的情況
    1. 多個目標互相沖突
    2. 有幾個目標,但沒有一個有把握達到

這兩種情況,通過效用Agent可以解決

  • 示意圖見P47
    這裡寫圖片描述
8.2.3.4 基於效用的Agent
  • 定義
    理性的基於效用的Agent 選擇 期望效用最大化的行動,Agent在給定每個結果的概率和效用下,期望得到的平均效用。
  • 方法
    Step 1:使用關於世界的模型,以及對各個世界狀態的偏好程度進行度量的效用函式。
    Step 2:選擇可以取得最佳期望效用的行動。
    Step 3:通過結果的概率來確定權值,最佳期望效用是通過計算所有可能結果狀態的加權平均值得到的。
  • 適用情況
    1、當多個目標互相沖突時,只有其中一些目標可以達到時,效用函式可以在它們之間適當的折中。
    2、當Agent有幾個目標,但沒有一個有把握達到時,效用函式可以在它們之間適當的折中。
  • 示意圖見書P48
    這裡寫圖片描述

8.2.4 學習Agent的通用模型

8.2.4.1 學習元件

負責改進提高

8.2.4.2 效能元件

負責選擇外部行動,接受感知資訊並決策

8.2.4.3 評判元件

根據固定的效能指標告訴學習元件Agent的運轉情況

8.2.4.4 問題產生器

負責可以得到新的和有資訊的經驗的行動提議,建議探索性行動

這裡寫圖片描述

8.2.5 Agent程式的元件表示形式

8.2.5.1 原子表示

每個狀態是不可見的,沒有內部結構

8.2.5.2 要素化表示

將狀態表示為變數或者特徵的集合,每個變數或特徵都可能有值。
兩個不同的要素化表示可以共享一些特徵。

8.2.5.3 結構化表示

描述物件之間的關係

這裡寫圖片描述

8.3 Agent函式

輸入:整個感知歷史