[人工智慧導論](https://app.notion.com/p/3e6fc631b0308131b213f0a3d93fe91d) › [W2(9/17)](https://app.notion.com/p/3e6fc631b0308175a433e5fa4bc500df) › 02|影片 [0:13:28–0:40:28](https://www.youtube.com/watch?v=hNZQIO0q74o&t=808s)|投影片 Ch2 p.2、p.9–26(p.2–12 是上週複習)|上一章 [01 HW1 提案寫法與分組(0:01–0:13)](https://app.notion.com/p/3e6fc631b030816cb5e8d1b405b4349e)|下一章 [03 搜尋問題的定義(0:53–1:08)](https://app.notion.com/p/3e6fc631b03081c8a7e0e152c12bbd25) ## 重點 - Agent 是任何「用 sensor(感測器)感知環境、用 actuator(致動器)對環境做動作」的東西;收到資料就算感知,送出資料也算動作。描述一個 agent,要先寫出它的任務環境 PEAS。 - 任務環境用七組性質分類(看得全不全、有沒有別的 agent、結果確不確定、這步會不會影響之後、思考時環境會不會變、離散或連續、知不知道規則)。環境不同,agent 的設計方法就不同;開計程車幾乎每組都落在難的那邊。 - AI 的工作是設計 agent program(把感知對應到動作的程式)。由簡單到複雜有五種:simple reflex(只看現在)、model-based(加記憶)、goal-based(加目標、想未來)、utility-based(算期望效益)、learning(靠回饋自己變好)。 ## Exam-ready - **Agent**: "An agent is anything that can be viewed as perceiving its environment through sensors and acting upon that environment through actuators (促動器)."(Ch2 p.2)【老師強調】(0:14:14) - 中文:agent 是任何靠感測器(sensors)感知環境、靠致動器(actuators,促動器)對環境做動作的東西。白話:收到資料就算感知,送出資料就算動作,不一定要是機器人才算 agent。 - **Task environment (PEAS)**: "Task environment: we have to specify the performance measure, the environment, and the agent’s actuators and sensors."(Ch2 p.9) - 中文:要描述一個任務環境,得寫出四件事:績效怎麼算(performance measure)、環境本身(environment)、agent 能做的動作(actuators)、agent 收資訊的方式(sensors)。白話:PEAS 就是幫 agent 寫規格書要填的四個欄位。 - **Observable / Multiagent**: "Fully observable: if the sensors detect all aspects that are relevant to the choice of action" "The key distinction is whether B’s behavior is best described as maximizing a performance measure whose value depends on agent A’s behavior."(Ch2 p.11) - 中文:fully observable(完全可觀察)指感測器看得到做決定所需的全部資訊;判斷對方算不算另一個 agent,關鍵是它的行為是不是在最大化一個「會被你的行為影響」的績效分數。白話:能不能看到全局、身邊有沒有「對手」,是兩個不同的問題。 - **Deterministic**: "If the next state of the environment is completely determined by the current state and the action executed by the agent, then we say the environment is deterministic; otherwise, it is stochastic." "“Stochastic” generally implies that uncertainty about outcomes is quantified in terms of probabilities"(Ch2 p.12) - 中文:deterministic(確定性)指下一個狀態完全由現在狀態+agent 的動作決定;否則是 stochastic(隨機性),這時結果的不確定性會用機率描述。白話:同一個動作做兩次,會不會保證得到一樣的結果。 - **Episodic / Dynamic**: "Episodic: the next episode does not depend on the actions taken in previous episodes." "If the environment can change while an agent is deliberating (思考), then we say the environment is dynamic for that agent."(Ch2 p.13) - 中文:episodic(情節式)指這一輪的決定不會影響下一輪;dynamic(動態)指 agent 還在思考(deliberating)的時候,環境會自己變。白話:這步跟下一步有沒有關聯、想事情的時候世界會不會偷偷動。 - **Discrete / Known**: "The chess environment has a finite number of distinct states." "Taxi driving is a continuous-state and continuous-time problem." Known vs. unknown: "The agent’s (or designer’s) state of knowledge about the “laws of physics” of the environment."(Ch2 p.14) - 中文:discrete(離散)指狀態數量數得完(像西洋棋);continuous(連續)指狀態、時間都連續變化(像開車)。known/unknown 指 agent(或設計者)知不知道環境背後的規則,像物理定律一樣的東西。白話:格子數不數得完是一件事,規則是不是黑箱是另一件事,兩者互相獨立。 - **Agent program**: "The job of AI is to design an agent program that implements the agent function— the mapping from percepts to actions." "...computing device with physical sensors and actuators—we call this the architecture." "agent = architecture + program"(Ch2 p.16)"The table-driven approach to agent construction is doomed to failure – tables could be too huge"(Ch2 p.17) - 中文:AI 的工作是設計 agent program(把感知對應到動作的程式),它跑在有實體感測器、致動器的裝置(architecture)上,所以 agent=architecture+program。用查表法把每一種可能的感知序列都列出來,表會大到列不完,注定失敗。白話:一個像硬體、一個像軟體,硬湊一張列出所有情況的表不可行。 - **Simple reflex agent**: "Select actions on the basis of the current percept, ignoring the rest of the percept history."(Ch2 p.18)"Work only if the correct decision can be made on the basis of only the current percept—that is, only if the environment is fully observable."(Ch2 p.19) - 中文:只看現在這一刻收到的 percept(感知資料)來選動作,不管過去發生過什麼;只有在光靠目前這筆資訊就能做對決定時才有效,也就是環境要 fully observable(完全可觀察)。白話:像膝跳反射,看到什麼就反應什麼,不記憶。 - **Model-based reflex agent**: "Handle partial observability: the agent keeps track of the part of the world it can’t see now. The agent should maintain some sort of internal state that depends on the percept history."(Ch2 p.20) - 中文:靠 internal state(內部狀態)處理只能看到部分環境的情況:agent 心裡記著一份「世界現在長什麼樣」的狀態,這份狀態是從過去收到的一連串感知(percept history)算出來的,會不斷更新。白話:看不到的部分靠記憶和推理補上。 - **Goal-based agent**: "Knowing the current state of environment is not always enough to decide what to do." "The goal-based agent’s behavior can easily be changed ... simply by specifying that destination as the goal." "Consideration of the future – both “What will happen if I do such-and-such?” and “Will that make me happy?”"(Ch2 p.22) - 中文:光知道世界現在的狀態,不足以決定要做什麼,還要有目標(goal);這種 agent 會考慮「做了這件事之後會怎樣」以及「那樣我會不會滿意」,也就是會想未來。白話:多了「往哪裡去」的方向感,不只是反射動作,換個目的地就能自動換行為。 - **Utility-based agent**: "Goals alone are not enough to generate high-quality behavior in most environments." "When there are conflicting goals, only some of which can be achieved" "A rational utility-based agent chooses the action that maximizes the expected utility of the action outcomes."(Ch2 p.24)"Utility-based agent programs handle the uncertainty inherent in stochastic or partially observable environments."(Ch2 p.25) - 中文:光有目標還不夠讓 agent 表現好——目標可能互相衝突,或只能達成一部分;理性的 utility-based agent 會選能讓 expected utility(期望效益)最大的動作,這種做法也能處理隨機(stochastic)或看不全(partially observable)環境裡的不確定性。白話:目標只有「達成/沒達成」兩種結果,utility 幫你在幾個目標之間打分數、做取捨。 - **Learning agent**: "Learning element is responsible for making improvements, and the performance element is responsible for selecting external actions." "The learning element uses feedback from the critic ... and determines how the performance component should be modified to do better in the future."(Ch2 p.26) - 中文:learning element(學習元件)負責讓 agent 進步,performance element(績效元件)負責選出真正要執行的動作;learning element 靠 critic(評判者)給的回饋,決定要怎麼修改 performance element,讓它以後表現更好。白話:一塊負責「做」,一塊負責「靠回饋改進做法」。 ## [0:13:28](https://www.youtube.com/watch?v=hNZQIO0q74o&t=808s) 複習:agent、PEAS 與前三組環境性質 Agent 感知環境、做出動作,動作又改變環境,下一刻再感知,一直循環。老師提醒 sensor 不一定是物聯網感測器,收到資料就算;動作也不一定是實體移動,送出一筆資料也算【老師強調】(0:14:14)。描述 agent 要寫出 PEAS:Performance(怎麼評分,看需求定)、Environment(身處的環境)、Actuators(能做的動作)、Sensors(資訊從哪來:人類司機靠眼睛耳朵,自駕車靠攝影機、聲納、光達)。老師補充:agent 的概念幾十年前就有了,現在常讓 LLM(大型語言模型)當 agent 的「大腦」,決定收到訊息後做什麼 (0:17:37)。環境性質一變,agent 的設計方法就跟著變 (0:18:39),所以接著複習前三組性質(見摺疊)。下表是課本的計程車 PEAS(p.10 另列醫療診斷等五種)。 (第 1 週學過:agent 就是「感知→決定→動作」一直循環的東西,PEAS 是描述它的四個欄位。這段是複習,忘了可以回 [W1 週頁](https://app.notion.com/p/3e7fc631b03081309a2adad7f8ae1e27) 看。)
AgentPerformanceEnvironmentActuatorsSensors
Taxi driverSafe, fast, legal, comfortable trip, maximize profitsRoads, other traffic, pedestrians, customersSteering, accelerator, brake, signal, horn, displayCameras, sonar, speedometer, GPS, odometer, accelerometer, engine sensors, keyboard
前三組環境性質各在問什麼? - **Fully vs. partially observable**:感測器看不看得到做決定需要的所有資訊?圍棋整個盤面都看得到(fully);LOL 的地圖大部分是黑的,只看得到自己的視野(partially)。 - **Single agent vs. multiagent**:有沒有別的 agent 跟你互動?下棋有對手(multi);兩格地磚加一台吸塵器的世界(single)。判斷對方算不算 agent(p.11):它是不是在最大化一個會受你影響的績效。路上滾來的石頭不算,搶你車道的車算。 - **Deterministic vs. stochastic**:下一個狀態是否完全由「現在狀態+你的動作」決定?吸塵器叫它往右就一定到右格(deterministic);計程車右轉偶爾會有行人衝出來(stochastic,不確定性用機率描述)。
老師原話是什麼? 「那在這邊大家要注意的是,這裡講的感測器,不見得一定是什麼IoT的」(0:14:14) 「缺了一個很重要的東西,就是大腦」(0:17:37) 「我們用LLM來當成是Agent的大腦」(0:18:01) 「只要符合有這個PEAS的,都可以視為是一種Agent」(0:18:30)
## [0:22:04](https://www.youtube.com/watch?v=hNZQIO0q74o&t=1324s) 新的四組環境性質 這週新講四組,每組是一個問題: - **Episodic vs. sequential**:這一步會不會影響之後?下棋、開車一步接一步(sequential);零件分揀機器人每個零件各判斷一次,互不影響(episodic,情節不連貫的)。 - **Static vs. dynamic**:思考時環境會不會變?下棋想五分鐘盤面不變(static);開車想 0.5 秒,後車就更近了(dynamic)。 - **Discrete vs. continuous**:狀態、時間、動作是一格一格還是連續的?西洋棋狀態有限(discrete);計程車的位置、速度、時間都連續(continuous)。 - **Known vs. unknown**:agent(或設計者)知不知道環境背後的規則,像物理定律? p.15 的表(老師只帶過)可以拿來練習:遮住右邊自己判斷。 [[IMG: C:\D槽\TAICA課程\_work\notes-v2\ai-w2\img\ai_ch2_p015.png | Ch2 p.15 圖 2.6:十種任務環境的六組性質對照。計程車(Taxi driving)六欄全落在難的那邊]] 圖上重點:標題 Properties of Task Environments=任務環境的性質。欄位由左到右:Observable(看得全不全:Fully 全看得到/Partially 只看到部分)、Agents(Single 只有自己/Multi 有別的 agent)、Deterministic(確定)/Stochastic(隨機)、Episodic(每輪獨立)/Sequential(前後相關)、Static(靜態)/Semi(半動態)/Dynamic(動態)、Discrete(離散)/Continuous(連續)。左欄十種任務:Crossword puzzle 填字遊戲、Chess with a clock 計時西洋棋、Poker 撲克、Backgammon 西洋雙陸棋、Taxi driving 開計程車、Medical diagnosis 醫療診斷、Image analysis 影像分析、Part-picking robot 零件分揀機器人、Refinery controller 煉油廠控制器、Interactive English tutor 互動式英文家教。這張圖在講:同一套問題可以替任何任務分類,越往下的任務越多欄落在難的那邊。
怎麼用七個問題替一個任務分類? 數獨解題程式:看得到全部格子(fully)、沒有對手(single)、填了結果確定(deterministic)、這格影響後面的格子(sequential)、想的時候題目不變(static)、格子一個一個(discrete)、規則已知(known)。跟填字遊戲一樣,是最簡單的一類。
哪些地方容易答錯? - **Semi(semidynamic)**:課本定義是環境本身不隨時間改變,但績效分數會。計時西洋棋盤面不動,但想越久時鐘扣越多。 - **Known 不等於 fully observable**(課本的例子):撲克牌接龍規則全知道(known),但蓋著的牌看不到(partially);新買的電玩畫面全看得到(fully),但還不知道按鈕做什麼(unknown)。 - p.15 的表沒有 Known 欄,要自己補。
老師原話是什麼? 「下棋就是我想個五分鐘,盤面還是沒變,那它就是Static」(0:23:18) 「你是知道它這個環境背後的運作的原理嗎」(0:24:12)
## [0:25:03](https://www.youtube.com/watch?v=hNZQIO0q74o&t=1503s) Agent = architecture + program AI 的工作是設計 agent program:收到感知(percept)就決定做什麼動作的程式。它跑在 architecture(有實體感測器、致動器的裝置,如相機、馬達)上,所以 agent = architecture + program,一個像硬體、一個像軟體。虛擬世界也算:電玩裡你操控的角色就是 architecture。最直觀的查表法(table-driven agent)因為表大到列不完而注定失敗;下表比較接下來五種做法。
類型做決定時看什麼例子
**Simple reflex**這一刻的 percept + condition-action rule髒就吸,乾淨就換一格
**Model-based reflex**記憶中的世界狀態(internal state)+規則記得 A 已經吸過,兩格都乾淨就停
**Goal-based**預測「做了會怎樣」,挑能達成目標的路口轉哪邊,看乘客要去哪
**Utility-based**每種結果多好,挑期望效益最大的又要快又要安全
**Learning**上面任一種+critic 的回饋,自己變好上次三點這條路很塞,這次避開
查表法摺疊在算什麼(白話):它算出就算是只有兩格的吸塵器玩具世界,活 10 步就要準備一百多萬格答案,用數字證明「把所有情況列成一張表」行不通。
要先懂什麼?percept、agent function、agent program 差在哪? - **percept**:某一瞬間收到的輸入(p.3),例如吸塵器的 [A, Dirty]。從開機到現在的所有 percept 排起來叫 percept sequence。 - **agent function**:抽象的對應,把任何一串感知序列對應到一個動作(p.3)。像考卷的標準答案。 - **agent program**:真正跑在機器上、把這個對應做出來的程式。像考生實際的解題方法。
查表為什麼注定失敗? 查表 agent(p.17)拿「從開機到現在的整串 percept」去查表,所以每一種可能的序列都要留一格。吸塵器世界有 4 種 percept(2 個位置 × 髒或乾淨):活 3 步要 4 + 16 + 64 = 84 格,活 10 步要 1,398,100 格(課本一般式:|P|¹ + … + |P|^T)。玩具世界就爆了,計程車更不可能列完。
老師原話是什麼? 「其實我們可以說AI人工智慧其實就是要去設計Agent」(0:25:05) 「這個東西一定不可行吧,因為我們不可能列舉所有的狀況」(0:28:00)
## [0:28:17](https://www.youtube.com/watch?v=hNZQIO0q74o&t=1697s) Simple reflex agent 最簡單又能用的 agent program:只看這一刻的 percept,不管過去,用 condition-action rule(「如果…就…」的規則)決定動作,像膝跳反射。用上週的吸塵器世界當例子(只有 A、B 兩格,每格髒或乾淨,吸塵器能吸、往左、往右):這格髒就吸;乾淨的話,在 A 往右、在 B 往左。p.18 的 REFLEX-VACUUM-AGENT 就是這三行 if。限制是只有光看現在就能做對決定時才行,也就是環境要 fully observable。 下面手算摺疊在比較什麼(白話):讓兩種吸塵器各打掃 8 步再比分數,會記憶的 model-based 掃完會停下來不白跑,所以分數比較高(13 比 8)。表裡的 Suck=吸、Right/Left=往右/往左移、NoOp(No Operation)=什麼都不做;[A, Dirty] 是「我在 A 格、這格髒」這筆感知。上面說的「三行 if」是程式裡的「如果…就…」判斷。吸塵器世界是第 1 週學過的:只有 A、B 兩格的玩具世界,專門用來示範 agent 怎麼運作([W1 週頁](https://app.notion.com/p/3e7fc631b03081309a2adad7f8ae1e27))。
手動跑一次吸塵器,simple reflex 和 model-based 各拿幾分? 開始時在 A,兩格都髒。計分:每步結束每一格乾淨得 1 分,每移動一次扣 1 分。右兩欄是下一段會記憶的 model-based agent。
步Simple reflex分Model-based分
1[A, Dirty]:Suck1同左1
2[A, Clean]:Right0同左0
3[B, Dirty]:Suck2同左2
4[B, Clean]:Left1[B, Clean]:NoOp2
5–8Right、Left 來回跑每步 1停在 B 不動每步 2
**合計****8****13**
Simple reflex 不記得另一格掃過,第 4 步起永遠來回跑。
為什麼一定要 fully observable? 課本例子:拔掉位置感測器,吸塵器只知道這格髒不髒。乾淨時它不知道自己在 A 或 B,規則只能寫死「往右」或「往左」。寫「往右」而剛好從 B 出發,就永遠往右撞牆。課本說隨機選方向可以脫困,更根本的解法是下一段的記憶。
老師原話是什麼? 「只考慮單一一個瞬間收到的資料,然後我去做一個反射性的動作」(0:29:07)
## [0:29:42](https://www.youtube.com/watch?v=hNZQIO0q74o&t=1782s) Model-based reflex agent 升級一:加上記憶。這一刻看到的常常不完整(先往左看,右邊還沒看到),所以它保留一份 internal state(內部狀態:心中「世界現在長什麼樣」的版本),每一步用「上一刻的狀態、上一刻做的動作、現在看到的」更新它。決定動作仍然用 condition-action rule,只是比對的是更新後的狀態。所以它能處理 partially observable 的環境:看不到的部分靠記憶補。 [[IMG: C:\D槽\TAICA課程\_work\notes-v2\ai-w2\img\ai_ch2_p020.png | Ch2 p.20 圖 2.11:model-based reflex agent。State、How the world evolves、What my actions do 加上感測器資料算出「世界現在長什麼樣」,再用 condition-action rules 決定動作]] 圖上重點:上方句子 Handle partial observability=處理「看不全」的情況;agent 要保留 internal state(內部狀態,心裡記的世界樣子),它 depends on the percept history(由過去收到的感知累積出來)。框圖流程:Sensors(感測器)收資料 → 跟 State(記住的狀態)、How the world evolves(世界自己怎麼變)、What my actions do(我的動作會造成什麼)合起來 → What the world is like now(世界現在長怎樣)→ 套 Condition-action rules(如果…就…規則)→ What action I should do now(現在該做什麼)→ Actuators(致動器)去做;虛線表示新狀態存回 State。這張圖在講:比 simple reflex 多了左上那三個框,也就是記憶和對世界的理解。 摺疊裡那行程式在做什麼(白話):先用新看到的東西更新心中的世界狀態,再找出符合現況的規則,最後執行那條規則說的動作。
它到底怎麼運作?圖上每個框在做什麼? - **State**:上一步記下的世界狀態。 - **How the world evolves**:世界自己會怎麼變(後車正在加速靠近)。 - **What my actions do**:自己的動作會造成什麼(方向盤左打,車往左偏)。 - 後兩項合起來就是 **model**(「世界怎麼運作」的知識),名字由此而來。 - 程式(p.21):state = UPDATE-STATE(state, action, percept, model);rule = RULE-MATCH(state, rules);回傳 rule.ACTION。 套回吸塵器:第 3 步後,狀態記著「A 第 1 步吸過、B 剛吸完、灰塵不會自己回來」,規則「兩格都乾淨就 NoOp」成立,所以停下來拿 13 分。
用生活例子講? 換車道時後照鏡有盲點,看不到旁邊的機車。但你記得三秒前看到一台機車在靠近(state),也知道機車會往前騎(how the world evolves),推論它現在在盲點裡,所以先不切。
老師原話是什麼? 「它有一個Internal State或者是有Memory的這個概念」(0:30:26) 「決定做什麼動作依舊是一些規則」(0:31:16)
## [0:31:37](https://www.youtube.com/watch?v=hNZQIO0q74o&t=1897s) Goal-based agent 升級二:給目標。知道世界現在長什麼樣,不一定知道該做什麼:計程車到了路口要左轉、右轉還是直走,得看乘客要去哪。所以要給它目標資訊,描述哪些情況是想要的。goal-based agent 會預測「做了這個動作,世界會變怎樣」,挑能更接近目標的動作,也就是會考慮未來。好處是目標一換,行為就跟著換,不用重寫規則。下一章的搜尋(BFS、A*)就是在幫這種 agent 找出達成目標的一連串動作。 BFS、A* 是什麼?下一章才教,這裡先知道:它們是兩種「有系統地把可能的走法試一遍,找出一條到得了目標的路」的方法。BFS 一層一層往外找;A* 會估計還剩多遠,先走看起來最近的。
它跟 reflex agent 到底差在哪? 同樣遇到前車亮煞車燈:reflex agent 照寫死的規則「看到煞車燈就煞車」;goal-based agent 推想「不煞會撞上,撞上就到不了目的地,所以煞車」。結果一樣,但後者是推出來的,目的地改了、前面封路,它能自己推出新做法。p.23 的圖比 model-based(p.20)多了「What it will be like if I do action A」一框,並把 Condition-action rules 換成 Goals。 **注意:投影片標題寫 Goal-based Reflex Agents,課本的名稱是 goal-based agent(它已經不只是反射),考卷寫 goal-based agent 即可。**
老師原話是什麼? 「他要考慮到未來」(0:33:04)
## [0:33:49](https://www.youtube.com/watch?v=hNZQIO0q74o&t=2029s) Utility-based agent 升級三:衡量「有多好」。目標只分達成或沒達成,p.24 說兩種情況不夠用:目標互相衝突、只能顧到一部分(搭計程車又要快又要安全,開快就比較危險);或有好幾個目標可追,要權衡哪個較可能達成、哪個較重要。utility(效益)替每種結果打分數,代表「變成那樣有多滿意」,怎麼打分看應用而定;理性的 utility-based agent 選 expected utility(期望效益)最大的動作。因為用機率加權平均,它也能處理 stochastic 或 partially observable 環境的不確定性(p.25,老師沒特別講)。 [[IMG: C:\D槽\TAICA課程\_work\notes-v2\ai-w2\img\ai_ch2_p025.png | Ch2 p.25 圖 2.14:utility-based agent。跟 goal-based 的圖幾乎一樣,Goals 換成 Utility(How happy I will be in such a state)]] 圖上重點:標題 Utility-based Reflex Agents(投影片寫法,課本叫 utility-based agent)。上方句子:這種 agent 能處理 uncertainty(不確定性),也就是 stochastic(隨機)或 partially observable(看不全)環境裡本來就有的不確定。框圖比 model-based 多兩格:What it will be like if I do action A(如果我做動作 A,世界會變怎樣)、How happy I will be in such a state(變成那樣我會有多滿意,由 Utility 效益打分)。圖說 Figure 2.14:用世界模型加上效益函數,選 expected utility(期望效益)最高的動作;期望效益=把每種可能結果的分數依發生機率加權平均。這張圖在講:goal-based 只問「到不到得了」,utility-based 改問「到了有多好」。 摺疊的手算在做什麼(白話):拿開快和開穩兩個選項,各自把「每個可能結果的分數 × 發生機率」加起來比大小;算出來的數字代表「平均下來每次能拿到多少滿意度」,大的那個就是理性的選擇。式子裡的 Σ 是「全部加起來」,P(結果 | a) 是「做了動作 a 之後,這個結果發生的機率」。rational(理性)是第 1 週學過的:理性 agent 選的是「平均來說」最好的動作,不保證每次結果都好([W1 週頁](https://app.notion.com/p/3e7fc631b03081309a2adad7f8ae1e27))。
expected utility 怎麼手算? EU(a) = Σ P(結果 | a) × U(結果):每個可能結果的分數乘上發生機率,再加起來。 - 開快:90% 準時到(U = 10),10% 擦撞(U = −50)。EU = 0.9 × 10 + 0.1 × (−50) = 9 − 5 = 4。 - 開穩:100% 晚五分鐘到(U = 7)。EU = 7。 7 > 4,選開穩。老師說若一路上沒什麼複雜路口,就越快越好 (0:35:37):擦撞機率降到 2%,EU(開快) = 0.98 × 10 + 0.02 × (−50) = 8.8 > 7,改選開快。
要先懂什麼?期望值和 rational agent 是什麼? - **期望值**:重複很多次平均會得到多少。公正骰子點數的期望值 = (1+2+…+6) ÷ 6 = 3.5;expected utility 就是把點數換成滿意度。 - **Rational agent**(上週講過):"Rationality maximizes expected performance, while perfection maximizes actual performance."(Ch2 p.7)重點是「期望」最大:運氣不好出事,不代表它不理性。
老師原話是什麼? 「原因是有時候你有好幾個目標,而這幾個目標是衝突的」(0:34:03) 「一個理性的Utility based agent,他會最大化預期的效益」(0:36:03)
## [0:37:06](https://www.youtube.com/watch?v=hNZQIO0q74o&t=2226s) Learning agent 與第二章收尾 升級四:自己學。前四種的決策方式都要人設計;learning agent 從資料和回饋中自動改進,越做越好。它有四塊:performance element(選動作,就是前四種之一)、critic(照固定的 performance standard 評分、給回饋)、learning element(依回饋修改 performance element)、problem generator(提議試新動作,課本補充)。老師說後來的機器學習、深度學習走的就是這條路。 [[IMG: C:\D槽\TAICA課程\_work\notes-v2\ai-w2\img\ai_ch2_p026.png | Ch2 p.26 圖 2.15:learning agent。Critic 照 performance standard 給 feedback,learning element 據此修改 performance element,problem generator 提議新動作]] 圖上重點:上方兩句:learning element(學習元件)負責 making improvements(讓自己進步),performance element(績效元件)負責 selecting external actions(選出對外執行的動作);learning element 用 critic(評判者)的 feedback(回饋),決定 performance element 要怎麼改,to do better in the future(以後做得更好)。框圖:Performance standard(固定的評分標準)→ Critic 評分 → feedback → Learning element → changes(修改)Performance element;Performance element 把 knowledge(目前的知識)回傳給 Learning element;learning goals(學習目標)交給 Problem generator(問題產生器)提議新動作。這張圖在講:agent 裡多了一個「評分→改進」的回路,不靠人改也能越做越好。 機器學習、深度學習是什麼(白話):機器學習(machine learning)=不由人寫規則,讓電腦從大量資料自己找出規律;深度學習(deep learning)是其中一種,用很多層的「神經網路」來找規律,現在的 LLM 就是這樣做出來的。 **注意:老師說第一、二章講得很 high level,像聊天 (0:39:32)。這不代表不考,投影片上的定義仍要能用英文寫出來。**
用生活例子講? 老師的例子 (0:37:50):下午三點走某條路效果不錯,下次同時段照走;很糟就避開。對到四塊: - performance element:決定走哪條路、開多快。 - critic:看結果打分數。猛然橫切三個車道、被別的駕駛罵,critic 就回報「這樣開不好」(課本例子)。 - learning element:把「三點這條路很塞」記成經驗,改下次的選路。 - problem generator:偶爾試一條沒走過的路,才知道有沒有更好的。
要先懂什麼?老師提到的監督式學習是什麼? 監督式學習(supervised learning):給機器很多「題目+正確答案」讓它對照修正,例如標好貓狗的照片。老師說可以用監督的訊號告訴 agent 上次做得好不好 (0:38:38)。critic 常常只給好或不好的分數而不是標準答案,靠這種回饋學習的方式叫 reinforcement learning(強化學習)。
老師原話是什麼? 「不要由我們人來設計,而是你自動從資料裡面去學會」(0:37:20) 「其實就是後來我們慢慢的從機率推論變成Machine learning,到現在過去這十幾年的Deep learning」(0:39:14) 「我們說過第一章跟第二章都是聊聊天的,講得非常非常的high level」(0:39:32)
## Self-check
Q1. Classify taxi driving along the seven task-environment dimensions. Why is it dynamic?(中文:把開計程車套進七組任務環境性質分類,為什麼它是 dynamic?) **Answer**: Partially observable, multiagent, stochastic, sequential, dynamic, continuous, and mostly known. It is dynamic because the other cars and the taxi itself keep moving while the agent is deliberating. 中文:除了 known(規則大致已知)之外,其他六組都落在難的那一邊:partially observable(看不到全部路況)、multiagent(有其他車和行人)、stochastic(結果不確定,行人可能突然衝出)、sequential(這一步會影響下一步)、dynamic(動態)、continuous(位置、速度、時間都連續)。是 dynamic 的原因:agent 還在思考、還沒決定動作的時候,其他車輛和自己的車都還在移動,環境不會等它想完才變。
Q2. When does a simple reflex agent work? How does a model-based reflex agent overcome this limitation?(中文:simple reflex agent 什麼時候才有效?model-based reflex agent 怎麼突破這個限制?) **Answer**: Only if the environment is fully observable. A model-based reflex agent keeps an internal state built from the percept history and a model of the world, then applies condition-action rules. 中文:simple reflex agent 只有在環境是 fully observable(完全可觀察)時才有效,因為它只看這一刻收到的資料就決定動作,看到的資訊不完整時沒辦法補救。model-based reflex agent 多了一份 internal state(內部狀態),這份狀態是從過去收到的感知歷史、加上一個「世界怎麼運作」的模型算出來、並持續更新的,再拿更新後的狀態去比對 condition-action rule,所以就算看不到全部,也能靠記憶把缺的部分補起來。
Q3. Driving fast: on time with P = 0.9 (U = 10), accident with P = 0.1 (U = −50). Driving safely: always 5 minutes late (U = 7). Which does a rational utility-based agent choose, and why are goals alone not enough?(中文:開快與開穩兩種選擇,理性的 utility-based agent 會選哪個?為什麼光有目標不夠用?) **Answer**: EU(fast) = 0.9 × 10 + 0.1 × (−50) = 4 < EU(safe) = 7, so it drives safely. Both reach the goal, but speed and safety conflict; goals are only binary, so utility is needed to trade them off. 中文:開快的期望效益 EU(fast) = 0.9×10 + 0.1×(−50) = 9 − 5 = 4,開穩則保證拿到 7 分,4 小於 7,所以理性的 utility-based agent 會選開穩。目標不夠用的原因:不管開快還是開穩,最後都算「到達目的地」這個目標達成,但快跟安全這兩件事互相衝突,goal 只能回答「達成了沒有」,沒辦法告訴你在衝突的目標之間該怎麼取捨;要靠 utility 把每種結果打分數,才能算出哪個選擇整體比較好。
Q4. Name the four components of a learning agent and their roles.(中文:學習型 agent 有哪四個元件?各自負責什麼?) **Answer**: Performance element selects actions; critic gives feedback against a fixed performance standard; learning element uses the feedback to improve the performance element; problem generator suggests exploratory actions. 中文:四個元件是——performance element(績效元件)負責選出實際要執行的動作;critic(評判者)依照一個固定不變的 performance standard(績效標準)評分,給出回饋;learning element(學習元件)根據這份回饋去修改 performance element,讓它以後做得更好;problem generator(問題產生器)負責提議一些沒試過的新動作,讓 agent 有機會發現更好的做法,不會一直重複同樣的選擇。
讀完了嗎?下一章:[03 搜尋問題的定義(0:53–1:08)](https://app.notion.com/p/3e6fc631b03081c8a7e0e152c12bbd25)|回到週頁:[W2(9/17)](https://app.notion.com/p/3e6fc631b0308175a433e5fa4bc500df)