人工智慧筆記《二: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

Sign up to discover human stories that deepen your understanding of the world.

Free

Distraction-free reading. No ads.

Organize your knowledge with lists and highlights.

Tell your story. Find your audience.

Membership

Read member-only stories

Support writers you read most

Earn money for your writing

Listen to audio narrations

Read offline with the Medium app

Jimmy Lin
Jimmy Lin

Written by Jimmy Lin

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

No responses yet

Write a response