人工智慧/定義
在過去的幾年裡,你可能已經接觸過“人工智慧”這個詞,並將其想象成外星生物或機器人的生動體現。但是,人工智慧究竟是什麼呢?在本節中,我們將探討“人工智慧”一詞的含義和語義。
人工智慧是尋找一種方法,將智慧對映到機械硬體中,併為該系統提供一個結構來形式化思想。目前還沒有關於人工智慧究竟是什麼的正式定義。在本節的討論過程中,我們將嘗試構建一個可行的定義,推理和闡述來自該領域其他作者和實踐者的各種觀點和偏好。首先,我們將考慮“人工智慧”中的“人工”和“智慧”這兩個詞作為靈感的主要來源,並以此為基礎,提出以下簡要描述:
| “ | 人工智慧是對人類智慧的研究,以便能夠人工複製它。 | ” |
在對該概念進行初步的正式聲明後,我們將逐步探討它的不同語義,並嘗試為 AI 探索一個更廣泛的定義。在他們的著作《人工智慧:一種現代方法》中,作者拉塞爾和諾維格試圖根據其他作者對 AI 的評論,將該領域的定義明確地劃分為不同的類別。對於以下這些系統的概念劃分符合這些條款:
- 思考和行動像人類一樣(專注於推理和人類框架)
- 理性思考和行動(專注於推理和對智慧的一般概念)
- 學習新的概念和任務
因此,人們可能會傾向於改進上面給出的定義,將這些事實納入考慮範圍,以便最終得到的定義表明:
| “ | 人工智慧是對人類智慧和行動的人工複製研究,使得最終結果對其設計具有合理的理性水平。 | ” |
關於人工智慧是什麼,有很多定義。
我們最終得到四個可能的目標:
- 思考像人類一樣的系統(專注於推理和人類框架)
- 理性思考的系統(專注於推理和對智慧的一般概念)
- 行動像人類一樣的系統(專注於行為和人類框架)
- 理性行動的系統(專注於行為和對智慧的一般概念)
什麼是理性? -> 簡單地說,就是“做正確的事情”。
定義
對於(1):“創造能夠執行人類執行時需要智慧的功能的機器的藝術”(庫茲韋爾)。這涉及認知建模 - 我們必須確定人類在字面意義上是如何思考的(解釋人類思維的內部運作機制,這需要實驗檢查或心理測試)。
對於(2):“GPS - 通用問題解決器”(紐厄爾和西蒙)。它處理“正確思考”並深入邏輯領域。它利用邏輯來表示世界和世界中物體之間的關係,並得出關於世界的結論。問題:難以將非正式知識編碼成形式邏輯系統,而且定理證明器有侷限性(如果給定的邏輯符號沒有解決方案)。
對於(3):圖靈將智慧行為定義為能夠在所有認知任務中達到人類水平的效能,足以欺騙一個人類(圖靈測試)。必須避免與機器的物理接觸,因為物理外觀與展示智慧無關。然而,“完整圖靈測試”包含外觀,包括視覺輸入和機器人技術。
對於(4):理性主體 - 在給定的信念下實現目標。這種方法沒有專注於人類,而是更具一般性,專注於主體(感知和行動)。它比嚴格的邏輯方法更具一般性(即理性思考)。
- 強 AI = 基於機器的人工智慧,能夠真正推理並變得具有自我意識(有感知),無論是像人類一樣(像人類思維一樣思考和推理)還是不像人類一樣(不同形式的感知和推理) - 由約翰·塞爾提出:“一個經過適當程式設計的計算機就是一個心智”(參見中文房間實驗)。
- 弱 AI = 基於機器的人工智慧,能夠在一個有限的領域內進行推理和解決問題。因此,它就像在該領域中具有智慧一樣,但不會真正具有智慧或感知。
一位人類評判員與另外兩位參與者進行自然語言對話,其中一位是人類,另一位是機器;如果評判員無法可靠地分辨出兩者,那麼該機器就被認為通過了測試。假定人類和機器都試圖表現得像人類。
- 機器可以透過測試模擬人類行為,但這可能被認為比智慧弱得多 - 機器可能只是遵循一組精心設計的規則。圖靈反駁說,也許人類思維也只是一直遵循一組精心設計的規則。
- 機器可以是智慧的,但不能與人類進行對話
- 許多人類可能會無法透過此測試,例如文盲或沒有經驗的人(例如兒童)。
試圖駁斥“強 AI”的說法。塞爾反對認為人類思維就是一個計算機,因此任何經過適當構造的計算機程式也可能是一個心智的觀點。
一個不會說中文的人坐在一個房間裡,透過一個縫隙遞給他寫有中文符號的紙張。他可以訪問一個手冊,其中包含一套關於如何對這種輸入做出響應的全面規則。塞爾認為,即使他能夠正確地回答,他也不理解中文;他只是遵循句法規則,並沒有接觸到它們的含義。塞爾認為,“心智”源於大腦功能,但不僅僅是一個“計算機程式” - 它需要意向性、意識、主觀性和心理因果關係。
這個問題探討了心理和生理事件之間的關係。假設我決定站起來。我的決定可以被視為一個心理事件。現在,我的大腦發生了某些事情(神經元發射、化學物質流動,等等),這可以被視為一個可以測量的生理事件。那麼,"心理"的東西如何能夠導致"生理"的東西呢?因此,很難說兩者是完全不同的東西。人們可以繼續認為這些心理事件實際上是生理事件:我的決定就是神經元發射,但我沒有意識到這一點——我覺得自己是在獨立於生理現象的情況下做出了決定。當然,反過來也行得通:所有生理事件實際上都可能是心理事件。當我做出決定(心理事件)後站起來時,我並沒有在生理上站起來,而是我的行為在我的大腦以及旁觀者的腦海中引起了心理事件——物理現實是一種幻覺。
問題是如何確定在不斷變化的環境中哪些東西保持不變。
當生物體或人工智慧處於某個當前狀態,並且不知道如何繼續操作才能達到所需的目標狀態時就會發生這種情況。這被認為是一個可以透過想出一個行動序列來解決的問題,這些行動序列導致目標狀態(“解決”)。
總的來說,搜尋是一種演算法,它以問題為輸入,從搜尋空間中返回一個解決方案。搜尋空間是所有可能的解決方案的集合。我們處理了很多所謂的“狀態空間搜尋”,其中問題是在狀態空間中找到目標狀態或從某個初始狀態到目標狀態的路徑。狀態空間是狀態、它們之間的弧線以及非空起始狀態集和目標狀態集的集合。將搜尋視為構建搜尋樹很有幫助——從任何給定的節點(狀態):我有哪些選擇可以繼續前進(朝向目標),最終到達目標。
無資訊搜尋(盲目搜尋)沒有關於從當前狀態到目標狀態的步驟數量或路徑成本的資訊。它們只能區分目標狀態和非目標狀態。沒有偏差去朝向目標。
對於搜尋演算法,開放列表通常表示尚未探索的節點集,封閉列表表示已經探索過的節點集。
- 廣度優先搜尋
- 從根節點開始,探索所有相鄰節點,並對所有這些節點重複此操作(在每次迭代中將搜尋樹的“深度”擴充套件一個)。這在FIFO佇列中實現。因此,它會進行窮舉搜尋,直到找到一個目標。
- BFS是完整的(即,如果存在目標,並且分支因子是有限的,它將找到目標)。
- 它是最優的(即,如果它找到了節點,它將是搜尋樹中最淺的)。
- 空間:
- 時間:
- 深度優先搜尋
- 探索一條路徑到最深層,然後回溯,直到找到目標狀態。這在LIFO佇列(即堆疊)中實現。
- DFS是完整的(如果搜尋樹是有限的)並且不完整的(如果搜尋樹是無限的)。
- 它不是最優的(它在找到第一個目標狀態時停止,無論是否存在比該目標狀態更淺的目標狀態)。
- 空間: (遠低於BFS)。
- 時間: (如果存在於低於樹的最大深度的層級上的解決方案,則高於BFS)。
- 可能出現記憶體不足或無限樹無限執行的危險。
- 深度受限搜尋 / 迭代加深
- 為了避免這種情況,DFS的搜尋深度可以限制為一個常數值,或者隨著時間的推移迭代地增加,逐漸增加應用它的最大深度。重複此操作,直到找到一個目標。結合了DFS和BFS的優點。
- ID是完整的。
- 它是最優的(最淺的目標狀態將首先被找到,因為級別在每次迭代中都會增加一個)。
- 空間: (優於DFS,d是最淺目標狀態的深度,而不是m,整個樹的最大深度)。
- 時間:.
- 雙向搜尋
- 從初始狀態向前搜尋樹,從目標狀態向後搜尋樹,當它們在中間相遇時停止。
- 它是完整的並且是最優的。
- 空間:.
- 時間: .
在啟發式搜尋中,一個啟發式被用作指導,它可以幫助我們在到達目標狀態時獲得更好的整體效能。與盲目地一次探索搜尋樹中的一個節點不同,我們將根據某個評估函式 來對我們可能去的節點進行排序,該函式決定哪個節點可能是“最優”的下一個節點。然後展開該節點並重復該過程(即最佳優先搜尋)。A* 搜尋是最佳優先搜尋的一種形式。為了將搜尋引導到目標,評估函式必須包含對從給定狀態到達最接近目標狀態的成本的估計。這可以基於對問題領域的瞭解、當前節點的描述以及到達當前節點的搜尋成本。最佳優先搜尋透過首先擴充套件最有希望的節點來最佳化深度優先搜尋。透過優先佇列實現對當前最佳候選人的高效選擇。
- 貪婪搜尋:
- 最小化到達目標的估計成本。根據最接近目標的節點總是首先被展開。它優化了區域性搜尋,但不總是能找到全域性最優解。
- 它不完整(可能會進入樹的無限分支)。
- 它不是最優的。
- 空間: ,對於最壞情況。
- 時間也是如此,但可以透過選擇好的啟發式函式來減少。
- A* 搜尋:
- 結合了一致代價搜尋(即展開到目前為止成本最低的路徑上的節點)和貪婪搜尋。評估函式是(或透過節點 n 的最便宜解決方案的估計成本)。可以證明,如果是容許的 - 也就是說,如果它從不高估到達目標的成本。這是樂觀的,因為他們認為解決問題的成本低於實際成本。
- 對的示例
- 在地圖中的路徑查詢:直線距離。
- 8 數碼難題:曼哈頓距離到目標狀態。
- 一切正常,它只需要是容許的(例如總是有效,但將 A* 變回一致代價搜尋)。
- 如果一個啟發式函式 比另一個啟發式函式 更好地估計了到目標的實際距離,那麼 支配 .
- A* 維護一個開放列表(優先佇列)和一個封閉列表(已訪問節點)。如果展開的節點已經在封閉列表中,並以更低的成本儲存,則忽略新節點。如果它以更高的成本儲存,則將其從封閉列表中刪除,並處理新節點。
- 是單調的,如果任何兩個相連節點的啟發式值之差不會高估這兩個節點之間的實際距離。非單調啟發式的示例: 和 是兩個相連的節點,其中 是 的父節點。假設 和 ,那麼我們知道透過 的解決方案路徑的真實成本至少為 7。現在假設 和 。因此,。
- 首先,啟發式值之間的差值(即 2)高估了這兩個節點之間的實際成本(為 1)。
- 但是,我們知道任何透過 的路徑也是透過 的路徑,我們已經知道任何透過 的路徑的真實成本至少為 7。因此, 的 f 值為 6 毫無意義,我們將考慮其父節點的 f 值。
- 是一致的,如果給定節點的 h 值小於或等於從該節點到下一個節點的實際成本加上該下一個節點的 h 值(三角不等式)。
- 如果 是允許的和單調的,A* 找到的第一個解決方案保證是最優解(不再需要開啟/關閉列表簿記)。
尋找啟發式
- 放鬆問題(例如 8 拼圖:曼哈頓距離)。
- 計算子問題的成本(例如 8 拼圖:計算前 3 個瓷磚的成本)。
對抗搜尋(遊戲玩法)
[edit | edit source]極小極大 適用於具有完美資訊的確定性遊戲。非確定性遊戲將使用 期望極小極大 演算法。
- 極小極大演算法:
- 兩人 零和博弈,其中兩個玩家輪流移動,由一個初始狀態(例如棋盤位置)、一組定義合法移動的運算子、定義遊戲結束的終止測試和一個 效用函式 定義,該函式確定遊戲的最終結果的數值(例如,獲勝為“1”,失敗為“-1”)。
- 如果這是一個搜尋問題,人們只需搜尋一條通往值為“1”的終止狀態的路徑。但是對手(Min)會嘗試最小化一個人的(Max)的結果。極小極大演算法生成整個 博弈樹 並將 效用函式 應用於每個終止狀態。然後它將效用值向上傳播一個級別,並繼續這樣做,直到到達起始節點。
- 傳播的工作方式如下:假設 Min 始終選擇對 Max 最糟糕的選擇(最小效用值)。如果在一個分支中,有三個終止狀態,其效用值為 1、2 和 3,那麼 Min 將選擇 1。因此,“1” 被傳播到下一級,依此類推。然後,Max 可以決定他最高階的開局行動(“極小極大決策”= 在對手會完美地發揮以最小化它的假設下最大化效用)。
- 對於過於複雜而無法計算整個博弈樹的遊戲,博弈樹會在某個時間點被截斷,而效用值則由啟發式評估函式估計(例如,國際象棋中的“物質價值”)。
- Alpha-Beta 剪枝
- 我們不必檢視遊戲樹中的每個節點:帶 alpha-beta 剪枝的極小極大演算法產生的結果與完整搜尋相同,但效率更高(將有效分支因子降低到其平方根)。
- 這裡我們將迄今為止找到的 Max 最佳值儲存在alpha中,將迄今為止找到的 Min 最佳值(即最低值)儲存在beta中。
- 如果在任何給定點,alpha變得小於beta,我們可以在此點剪枝遊戲樹。因此,需要評估至少一組從最深的 Min 節點分支出來的葉節點,然後使用獲得的 alpha 值來剪枝其餘搜尋。
- 機會
- 根據引入的可能性型別(例如,拋硬幣的 50/50 機會),在決策點引入“機會節點”,這些節點產生“預期值”(平均值 - 將效用值加起來,並根據實現它們的可能性進行加權)。
- 示例:3 個葉節點,值分別為 5、6 和 10,總共為 21 - 達到其中任何一個的機率為 1/3 - 因此期望值為
對於 CSPs,搜尋空間中的狀態由一組變數的值定義,這些變數可以從特定域中分配一個值,目標測試是一組約束,變數必須遵守這些約束才能構成對初始問題的有效解決方案。
示例:8 皇后問題;變數可以是八個皇后的位置,透過目標測試的約束是,沒有兩個皇后可以相互傷害。
不同型別的約束
- 一元(單個變數的值)
- 二元(變數對,例如 x > y)
- n 元
除此之外,約束可以是絕對的或偏好的(前者排除某些解決方案,後者只是說哪些解決方案更可取)。域可以是離散的或連續的。在搜尋的每一步中,都會檢查任何變數是否違反了任何約束 - 如果是:回溯並排除此路徑。
前向檢查檢查對尚未分配的變數的任何決策是否會被為變數分配值所排除。它會從每個尚未分配的變數的可能值集中刪除所有衝突的值。如果其中一個集合變為空 - 立即回溯。
也有一些用於對變數分配做出決策的啟發式方法。
選擇下一個變數
- 最受約束的變數與前向檢查一起使用(檢查哪些值對於每個尚未分配的變數仍然允許)
- 下一個要分配值的變數是具有最少可能值的變數(減少分支因子)。
- 最具約束力的變數將值分配給與對其他尚未分配的變數的最多約束相關的變數。
選擇變數後
- 最小約束值分配一個值,該值在中排除最少的數值
透過約束連線到當前變數的變數。
使用迭代改進的 CSP 通常被稱為“啟發式修復”方法,因為它們會修復當前配置中的不一致性。樹狀CSP 可以線上性時間內解決。