人工智慧筆記《二:Agent》

Jimmy Lin
Oct 21, 2020

--

現在要來介紹AI裡面一個最基本的概念:Agent

Agent這個詞的翻譯有很多種,代理人、經紀人之類的,不過在中文裡面我覺得沒有一個可以很精確描述Agent概念的東西,所以我決定延用英文,硬要說的話就是「單位個體」吧。

這個章節主要探討的會是:

一個Agent是如何在不同的環境與條件中用理性的方式去行動

於是我們首先得定義Agent:能夠觀察環境並行動即是Agent,而一個理性的Agent的行動目的是最大化自己的表現。

於是我們接著得定義Task Environment,也就是整個任務的環境,其中包含了個體的表現如何評價、環境本身的條件、能夠被偵測的東西以及能夠採取的行動,舉例來說,一張考卷上面規定了每個題目是幾分,我們能夠偵測的東西就是題目的敘述,而能夠採取的行為就是回答問題,選擇題的話就會被限定能夠作答的選項,最後評分。

Agent Function

上面這張圖能夠對Agent與環境之間的關係作最好的說明:

Agent用感測器(Sensors)從環境中得到觀察的資訊(Percepts),丟入Agent Function以後決定作出什麼行為(Actuators),最重要的就是中間這個Agent Function,因為他決定了Agent怎麼跟環境作互動。

而在這之中,最基本的即是PEAS,也就是:

P:Performance(目的)
E:Environment(環境)
A:Actuators(可作的行為)
S:Sensors(感測的東西)

上述四樣東西算是分析一個Task Environment的重要指標。

其中Environment有一套最基本的分類方式:

  1. Fully observable or Partially observable:也就是整個Task的環境、行為是否可以全部被觀測,還是只能部分觀測而已。
  2. Single-agent or multi-agent:顧名思義,單人還是多人,這裡要強調的是,判斷多人並不只是看有沒有其他Agent,還要看其他Agent會不會影響到你的表現,所以單以考試來說,即使全班一起考是,依然算是single-agent,但是如果考完試後會依據班平均調分,那麼就是multi-agent了。
  3. Deterministic(決定) or Stochastic(隨機):下個瞬間的環境是否全部取決於你當下的環境與行為,舉例來說,掃地就不是Determinisic,因為即使你現在掃完了,你也無法保證下一秒會不會有落葉繼續落下(不過如果你將樹的位置、季節、風向都納入Environment的一環,也許又不一樣了)
  4. Episodic or Sequential:Episodic意味著行為前後不關聯,Sequential則意味著前後關聯,舉例來說,考試答題理論上是Episodic,但是如果是題組題,那麼就是Sequntial。
  5. Static or Dynamic:當下的環境在Agent做出行為之前會不會改變?如果是下棋的話,顯然就是不會,而如果是在路上開車,那麼顯然答案就是會。
  6. Discrete or Continuous:整個環境與行為是離散的還是連續的,比方說開車的一連串行為都會是連續的,但是下棋的話就會是一步一步完全分開的。
  7. Known or Unknown:Agent對於環境的Rules瞭不瞭解。

注意,某些情況下,整個Task Environment會是綜合的,不見得只能是兩邊的其中一個,像是可能某些行為是決定性的,但也加進了一些隨機的元素。(正常被往腦袋開槍就會死,但是有人能夠被救活)

此外,Performance Measure也就是評分的方式也會造成評估一個Agent是否理性的差異。舉例來說,如果今天選擇題的評分方式是答錯不倒扣,那麼對學生來說最好的策略就是不懂的題目也都亂猜,但是如果今天選擇題答錯要倒扣,那麼亂猜可能就不是一個理性的策略,甚至可能要去看倒扣的制度如何,才能決定我們的行為是否理性。

總結來說,一個理性的Agent的定義就是每個動作都追求評分的最大化,但是要注意,理性並不等於全知,也不等於預知,就像是我們寫考卷時,只是追求拿到考試的高分,但是並不代表我們能夠全知與預知答案,因此,即使是理性的Agent,也不等於成功的Agent。

接下來我們會些粗略的介紹一下幾種Agent的類別:

  1. Simple Reflex Agents
  2. Model-based reflex Agents
  3. Goal-based Agents
  4. Utility-based Agents
  5. Learning Agents

第一種Agent:Simple Reflex Agent

顧名思義,他只是很簡單的一種反射行為而已,他會根據當下的E跟S從A中選出適當的行為,比如說:
如果你會餓,就吃東西。
但是這有很大的問題,比方說要吃什麼東西?要怎麼點餐?這種複雜的東西如果要全部用simple reflex agent來完成的話可能就要寫到非常詳細,例如:

如果你會餓,是星期一,是中午,媽媽不在,有機車,就騎車去7–11買麻婆豆腐燴飯。

顯然,用這樣的方式去構築一個agent的規則在大部分的Task中是不可行的。
同時,他也只會根據當下的情況來決定要做什麼,而且只要缺少一些資料就無法做決定,因此就有了第二種Agent:Model-based Agent

Model-based Agent跟Simple reflex agent最大的差異就是Model-based agent的內在多了一些對於“現有世界”的Model,所以可以在partially observable的情況下進行。

比方說,今天開車有死角看不到後面有沒有車,Simple Reflex Agent可能就當機了,但是Model-based agent可能就會根據狀況而猜測後面沒車(或有車)而繼續行動。

接下來就是第三種Agent:Goal-based Agent

這種Agent則是連未來都開始考慮了,前面兩種Agent都只會做出行為,但是也許根本離目標越來越遠也不知道,而Goal-based agent則會連這點一起考慮進去,逐漸往目標前進(期望上)。

再來就是進階到第四種Agent:Utility-based Agent

這種Agent已經不只是考慮有沒有往目標前進,而且還會努力選擇更好的路徑,具體方法有像是BFS、DFS、Uniform-Cost Search、 A* Search等等。

最後一種顧名思義就是能夠學習的Agent,這一部份主要是Machine Learning的範疇,在一般的人工智慧課程裡比較少專注在這部分。

最終總結

  • Agent透過Actutors跟Sensors跟整個環境作互動。
  • Agent function會描述Agent在所以情況下應該如何行動。
  • 評分方式會影響行動理性與否。
  • 完美的理性Agent會時刻追求效益最大化
  • 任務環境通常用PEAS去定義
  • 環境的評估有多個面向,如靜態、單人等。
  • 有很多基本種類的Agent

--

--

Jimmy Lin

Hi, I'm Jimmy. I graduated from ASU and work in Amazon now.