--- tags: 人工智慧, 大三筆記 --- # 人工智慧:啥是數位代理人 ## 智慧代理人 (Intelligent Agents) * 代理人透過 **感測器** 感知 **環境** 變化 * **環境** 變化時,啟動 **執行器**,進行某種 **行動** <img src='https://hackmd.io/_uploads/r1Gl1a83yl.png' height=300> ### 常見名詞解釋 * 代理人 (Agents):具智慧的電腦程式 * 感測器 (Sensor):用來感知環境的裝置 * 知覺 (Percept):代理人感測器的資料輸入 * 知覺序列 (Percept sequence):感測器一段時間內收到的一連串資料輸入,通常用來決定代理人的行動 * 環境 (Environment):代理人所處的世界 * 狀態 (State):環境在某特定時間的情況 * 執行器、制動器 (Actuator):代理人影響環境的裝置,用來執行 **行動** * 行動 (Action):代理人透過制動器進行的動作 * 效能 (Performance):衡量代理人是否達成目標的標準,通常透過 [目標函數](##效能測量) 來評估 --- ### 代理人的功能 代理人行為依賴某種數學模型,演算法及程式 * 功能 * 完成特定 AI 功能 * 以感測器序列資料為輸入 * 判斷環境狀態,以一序列行動為輸出 * 工程師設計 AI 演算法,寫成 AI 程式,以完成代理人功能 --- ### 代理器的結構 Agent = Architecture (結構) + Program (程式) * 結構:計算裝置、感測器、制動器 * 代理器程式: * Input:目前的感測資料 * Input for Agent function:整個感測器資料序列 #### 簡單的代理器程式:Table-Driven-Agent ```python= def TableDrivenAgent(percept) -> Action: global percepts # A sequence of percepts global table # A table of actions, indexed by percepts percepts.append(percept) action = table[percepts] return action ``` > 每次收到一個新的感測資料 `percept`,程式會將感測資料紀錄 (Line 5) 並查表回傳相應的行動 (Line 6 & 7) 雖然查表法很有效,但該程式所需的記憶體可能會無窮大: $$ \begin{aligned} P&=\text{The set of possible percepts}\\ T&=\text{Lifetime of the agent}\\ S&=\text{Size of the lookup table}\\ \end{aligned} $$ P 為一組感知序列的大小,T 為代理人生命週期 (一共會收到幾次感知序列) 在這個情況下,我們 Lookup table 的大小 S 為: $$ S=\Sigma^T_{t=1}\lvert P \rvert^t $$ 看起來還行?我們以簡單的下棋為例 $$ \begin{aligned} P&=10\\ T&=150\\ S &\approx 10^{150} \end{aligned} $$ ~~這記憶體使用量夠我載 GTA 10 了~~,而且範例甚至不是玩圍棋 <img src='https://hackmd.io/_uploads/SkDohEK3Jx.png' height=150> 因此,如何製作短小精幹的 AI Agent,是一門很重要的課題 #### AI 的關鍵挑戰技術 如何製作出 **容易擴充** 的 **理性** 代理人程式 * 程式碼越小越好 * 不需要大量的 table entries --- ### 代理器程式種類 #### 簡單反射型代理人 (Simple reflex agents) * 使用當前的感知來做決定,不會在乎之前的感知歷史 * 規則形式:condition-action,根據符合當前條件的規則來行動 * 最簡單有效,但很智障 * 無法適應環境變化 * 適用環境:[完全可觀察的環境](####藏的深不深) * 因為不考慮歷史資訊,因此無法在 **部分可觀查** 環境下運作  #### 基於模型的反射型代理人 (Model-based reflex agents) * 對環境世界有一定的了解 * 有兩個重要因素 * **內部狀態**:依賴感知歷史 * **模型**:了解「環境的事情如何發生」 * 依賴兩種知識 * 環境如何變化 * 行動如何影響整個環境 * 使用環境:[部分可觀察的環境](####藏的深不深)  #### 目標導向代理人 (Goal-based agents) * 目前環境的資訊永遠不充足 * 以 **目標評估** 來補上缺乏的資訊 * 代理人根據一個明確目標來決策,以 **搜尋與規劃** 來選擇最佳行動,以更接近並達成目標  #### 效用導向代理人 (Utility-based agents) * 相較於目標導向,增加了一個 **偏好程度** 指標 * 代理人會選擇具 **最佳期望效用** 的行動  #### 學習代理人 (Learning agents) * 能夠學習、分析效能,並尋找提高性能的方法 * 具有四項基本功能 * 學習元件 (Learning element):負責學習 * 效能元件 (Performance element):選擇對應的行動 * 批評者 (Critic):給予學習元件反饋 * 問題產生器 (Problem generator):負責建議一些新的操作,以從中學習新知識  --- ## 效能測量 使用一 **目標函式 (objective function)** 來測量效能 * 以最佳化後的 **效能** 定義代理人是否運作成功 * 代理人制定一連串行動後,由目標函式量測最佳化效能,以此判斷代理人是否成功 * 不同的 AI 程式需要不同的目標函式 ## 理性 定義:能夠最大化地完成事先所定義的目標 ### 理性的代理人 (Rational Agents) * **決策最佳化**:使用效能測量公式定義成功與否 * **環境的事先知識**:代理器必須有環境的先備知識 * **明確的行動類別**:行動必須 **可執行** * **感測器資料**:感測資料須 **隨時更新** 當一個代理器滿足以上定義,並可根據最新的感測器序列,輸出具最大效能的行動序列,即為理性的代理人 > * 你在考試的時候 **看到 (感測器資料)** 一個題目,你以將 **分數最大化 (決策最佳化)**、和你昨晚複習的 **先備知識** 作為考量,進而 **選擇 (行動類別)** 出一個你認為正確的答案。 > * 如果你能夠做到以上這些,那恭喜你,我的朋友,你是一個合格的理性代理人 (? ### 無所不知代理人 (Omniscience Agents) * 每個行動類別的輸出事先已知 * 不會有其他結果輸出 * 不存在 * 不是理性的代理人 > 無所不知代理人不會透過決策來優化結果 --- ## 自動化 (Autonomy) ### 自動化的意義 * **學習以前的感測資料**:用以建立更棒的決策模型 * **知識隨時間變化**:用新的感測資料修補歷史經驗的缺失 ### 自動化的反例:時鐘 * 沒有感測器輸入 * 根據固定演算法運行 * 沒有學習能力 <img src='https://hackmd.io/_uploads/BJplwv_hkx.png' height='100'> --- ## 任務環境 任務環境是 AI 問題的集合 * 理性代理器是問題的答案 * 任務環境定義解決問題所需的代理器 ### 任務環境的定義 - PEAS 描述 * 效能目標 (Performance) * 環境 (Environment) * 執行器 (Actuators) * 感測器 (Sensors)  ### 任務環境的特性 #### 藏的深不深 * 完全可觀察 (Fully observable) * 感測器啥都看得到 * 感測器資料與行動決策有關 * 下棋 * 部分可觀察 (Partially observable) * 環境只有部分可觀察 > 感測器帶有雜訊、資料不完整 * 玩牌 #### 你確定嗎 * 確定的 (Deterministic) * 根據現在的感測器資料及行動決定下個環境狀態 * 隨機的 (Stochastic) * 環境可能受隨機因素影響,因此當前行動無法完全決定下一個狀態 * 自動駕駛 <img src='https://hackmd.io/_uploads/S1ddkdd2kx.png' height='100'> #### 分段還連續 * 片段的 (Episodic) * 兩個片段的決策間彼此無關 * 環境較簡單:代理器不須往前思考 * 影像分類、醫學診斷 * 連續的 (Sequential) * 目前的行動將會影響未來的決策 * 自動駕駛、下棋 #### 動態還靜態 * 靜態 (Static):環境不隨時間變化 * 動態 (Dynamic):環境隨時間變化 * 半動態 (Semidynamic):環境不隨時間變化,但代理器效能隨時間變化 #### 連續還離散 * 離散 (Discrete) * 狀態類別數是有限的 * 可清楚定義所需的感測資料及行動類別 * 下棋 * 連續 (Continuous) * 無限個狀態類別 * 自動駕駛 #### Why are you single * 單一代理器 (Single agent) * 數獨 * crossword 填詞遊戲 * 多代理器 (Multiagent) * 井字遊戲 * 西洋棋 - 兩個代理人 * 電競遊戲 - 多代理人競爭環境 (Competitive multiagent environment) * 自動駕駛代理人 - 多代理人合作環境 (Cooperative multiagent environment) <img src='https://hackmd.io/_uploads/ry0hJuu21x.png' height=100> #### 知之為知之不知為不知,是隻豬也 * 已知 * 執行 Action 的結果已知 * 下圍棋 * 未知 * 代理人需要學習如何執行 Action 才有好結果  ---
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up