讀AI新生:破解人機共存密碼筆記05邏輯

躺柒發表於2024-06-19

1. 困難問題

1.1. 管理政府或教授分子生物學之類的問題要困難得多

1.2. 這些環境很複雜,大部分是不可觀察的(一個國家的狀態,一個學生的思想狀態),還有更多的物件和物件型別,對動作沒有明確定義,規則大多是未知的,有大量的不確定性,以及非常長的時間跨度

1.3. 當我們設計出針對給定型別的較困難問題的有效方法,或者設計出需要較少和較弱假設的方法,以便適用於更多問題時,通用性的進展就出現了

1.3.1. 通用人工智慧將是一種適用於所有問題型別的方法,並且在做出很少假設的情況下,它能有效地處理大而難的例項

1.4. 在實現通用人工智慧方面取得的許多進步,都來自與構建可怕的通用人工智慧系統無關的研究

1.4.1. 來自對“工具人工智慧”或“狹義人工智慧”的研究,即為特定問題設計的完美、安全、乏味的人工智慧系統

1.4.1.1. 下圍棋或識別手寫數字

1.5. 關於機器能力的清晰界限意味著,當人們談論“機器智商”迅速增長並有可能超過人類智商時,他們是在胡說八道

1.5.1. 智商的概念在應用於人類時是有意義的,因為人類的能力往往在廣泛的認知活動中相互關聯

1.5.2. 馬跑得快,跳得高,但它們在撐竿跳高和擲鐵餅專案中會碰到很多麻煩

2. 人工智慧研究的終極目標

2.1. 一個不需要針對具體問題的工程學系統,人們可以簡單地要求它去管理政府或教授分子生物學

2.2. 它會從所有可用的資源中學習它需要學習的東西,在必要時提出問題,並開始制訂和執行有效的計劃

3. 工具人工智慧

3.1. 對工具人工智慧的研究能夠而且常常會在實現通用人工智慧方面取得進展,特別是當它由別具慧眼的研究人員攻克了當前的通用方法所不能解決的問題的時候

3.2. 解決方案所採用的路徑不僅僅是對一個聰明人在某種情況下會如何行動的臨時編碼,而是試圖使機器具備自己找出解決方案的能力

3.3. 谷歌DeepMind的AlphaGo團隊沒有設計只適用於圍棋的決策程式

3.3.1. 對兩種非常通用的技術進行了改進

3.3.2. 一是用前向搜尋(lookahead search)來做決策

3.3.3. 二是用強化學習來學習如何評估棋局

3.4. AlphaGo的一個叫AlphaZero(阿爾法元)的版本學會了在圍棋中打敗AlphaGo,還打敗了Stockfish(世界上最好的國際象棋程式,水平遠遠高於任何人類)和Elmo(世界上最好的日本將棋程式,水平同樣遠遠高於任何人類)

3.4.1. AlphaZero在一天內完成了這一切

3.4.2. AlphaZero有嚴格的限制:它只適用於獨立的、可觀察的、具有已知規則的雙人遊戲

3.4.2.1. 這種方法根本不適用於駕駛、教學、管理政府或接管世界

3.5. 20世紀90年代,在識別手寫數字的研究方面

3.5.1. AT&T(美國電話電報公司)實驗室的楊立昆(Yann LeCun)團隊並沒有使用搜尋曲線和迴環的方法

3.5.2. 改進了現有的神經網路學習演算法來生成卷積神經網路(convolutional neural network)

3.5.3. 用標記的樣本對這些網路進行適當訓練後,網路就展現出有效的識別字元的能力

3.5.4. 在深度學習的課題下,他們革新了語音識別和基於機器視覺的物體識別

3.5.4.1. 這些也是AlphaZero以及當前大多數無人駕駛汽車專案的關鍵組成部分之一

3.6. 在解決具體任務的狹義人工智慧專案中,出現朝向通用人工智慧的進展其實不足為奇,這些任務為人工智慧研究人員提供了一些研究思路

4. 目標和標準模型

4.1. 如果從外部看一個智慧體,重要的是看它從接收的輸入流中生成的動作流

4.2. 如果從內部看,動作必須由智慧體程式選擇

4.3. 人類天生就有一個智慧體程式,這個程式隨著時間的推移學會了在大量任務中合理、成功地行動

4.4. 傳達目標最簡單的方式是以“終點”的形式

4.5. 在人工智慧研究的古典主義時期,即在20世紀80年代,不確定性成為一個主要問題之前,大多數人工智慧研究都假設世界是完全可觀察的和確定的,終點作為一種明確目標是有意義的

4.6. 前向搜尋

4.6.1. “在心中模擬”可能行動的效果

4.6.2. 前向搜尋演算法起源於20世紀60年代,它透過前向搜尋許多可能的動作序列來找到最優路徑

4.6.3. 這些演算法構成了現代基礎設施中無處不在的一部分,它們不僅提供行車路線,還提供航空旅行解決方案、機器人裝配、建築規劃和物流配送

4.6.4. 前向搜尋的概念同樣適用於井字遊戲、國際象棋和圍棋等遊戲,這些遊戲的目標是根據遊戲對勝利的特定定義來努力取勝,只不過人們還需要對演算法做一些修改來處理對手的賴皮行為

4.6.5. 前向搜尋演算法對於具體的任務非常有效,但不是很靈活

4.7. 在邏輯、機率和學習系統中,人們在開發標準模型的各種例項化方面已經做了大量出色的工作,由此產生的許多系統都非常有用

4.8. 我們不能繼續依賴慣常的做法,即透過反覆試驗來消除目標函式中的主要錯誤:智慧日益提高、全球影響力日益增強的機器不會允許我們享受這種奢侈

5. AlphaGo

5.1. “瞭解”圍棋的規則

5.2. “瞭解”只是建立在它有兩個用C++等傳統程式語言編寫的子程式的意義上

5.2.1. 一個子程式生成所有可能的合規走法

5.2.2. 另一個子程式對目標進行編碼,確定給定的局面是贏還是輸

5.3. 為了讓AlphaGo玩不同的遊戲,必須有人重寫所有這些C++程式碼

5.4. AlphaGo的知識基本上被鎖在一個黑盒裡

5.5. 沒有任何圍棋著法可以讓你到達系外行星

6. 基於知識的系統

6.1. 約翰·麥卡錫提出了一種更通用的方法

6.2. 編寫通用的推理程式。這個程式可以吸收一切主題的知識,並能回答一切可以回答的問題

6.3. 使用形式邏輯作為知識和推理的基礎

7. 邏輯

7.1. 命題邏輯

7.1.1. 布林邏輯

7.1.2. 古希臘人以及古代中國和印度的哲學家都知道它

7.1.3. 與構成計算機晶片電路的與門、非門等邏輯閘相同

7.1.4. 現代CPU(中央處理器)就是用命題邏輯語言編寫的一個非常龐大的數學表示式,長達數億頁

7.2. 一階邏輯

7.2.1. 麥卡錫提議用於人工智慧的邏輯

7.2.2. 一階邏輯語言遠比命題邏輯語言更有表現力,這意味著有些東西用一階邏輯可以很容易地表達出來,但用命題邏輯很難表達

7.2.3. 圍棋規則在一階邏輯中的表達只需要一頁

7.2.3.1. 在命題邏輯中則長達數百萬頁

7.2.4. 可以很容易地表達關於國際象棋、英國公民身份、稅法、買賣、搬家、繪畫、烹飪,以及我們的常識世界中許多其他方面的知識

7.2.5. 從原則上講,使用一階邏輯推理的能力讓我們朝著實現通用智慧的目標邁出了一大步

7.3. 加州史丹佛研究所的Shakey專案是世界上第一個大型移動機器人專案,它就是基於邏輯推理的

7.3.1. Shakey如今證明了亞里士多德對人類認知和行為的分析至少部分是正確的

7.3.2. 亞里士多德(和麥卡錫)的分析離完全正確還有很長的路要走

7.3.2.1. 主要的問題是無知

7.3.2.1.1. 是所有人類和機器無知,無論是現在還是未來的人類和機器都是無知的
7.3.2.1.2. 在我們的知識中,只有很少一部分是絕對確定的
7.3.2.1.3. 我們對未來知之甚少
7.3.2.1.4. 對一個純粹的邏輯系統而言,無知是一個無法克服的問題

7.4. 一個人永遠不可能絕對肯定任何經驗性問題,除非他已經知道答案

7.4.1. 確定性對行動來說是完全不必要的:我們只需要知道哪個行動是最好的,而不是哪個行動肯定會成功

7.4.2. 不確定性意味著“輸入機器的目標”通常是一個無法精確描述的目標,所以我們不能讓機器不惜一切代價去實現它

7.4.2.1. 任何動作序列都會產生多種可能的結果,其中一些不會實現目標

7.4.2.2. 尋找用最大的可能性實現目標的計劃,依然無法拯救目標

7.4.2.3. 人們不可避免地需要考慮不同結果的相對可取性以及它們發生的可能性

7.4.2.4. 我們可以用效用函式,而不是用目標,來描述不同結果或狀態序列的可取性

8. 完全性定理

8.1. 1930年,才華橫溢的奧地利邏輯學家庫爾特·哥德爾(Kurt Gödel)發表了他著名的“完全性定理”

8.1.1. 哥德爾實際上並沒有提供演算法,他只是證明了演算法的存在

8.2. 對於一階邏輯可表達的任何知識集合與任何問題,如果答案存在,那麼演算法將告訴我們問題的答案

8.2.1. 我們可以告訴系統圍棋的規則,它會告訴我們(如果我們等待足夠長的時間)是否存在必勝的開局著法

8.2.2. 我們可以告訴系統當地的地理情況,它會告訴我們去機場的路

8.2.3. 我們可以告訴系統關於幾何學、運動和餐具的知識,它會告訴機器人如何擺好餐桌

8.3. 只要我們給定任意可實現的目標和關於其行動所產生的影響的充分知識,智慧體就可以使用該演算法制訂一個計劃,它可以執行這個計劃來實現目標

9. 不確定性

9.1. 貝葉斯定理

9.1.1. 貝葉斯網路和貝葉斯邏輯是以英國牧師托馬斯·貝葉斯(Thomas

Bayes)的名字命名的,他對現代思想的持久貢獻——現在被稱為“貝葉斯定理”

9.1.2. 貝葉斯定理的現代形式以一種非常簡單的方式描述了先驗機率

9.1.3. 一個人對一組可能性假設的初始可信度,是如何由於觀察到一些證據而變成後驗機率的

9.1.4. 隨著更多新證據的到來,後驗成為新的先驗,貝葉斯定理中更新的過程無限重複

9.2. 貝葉斯網路

9.2.1. 朱迪亞·珀爾引入的貝葉斯網路語言

9.2.2. 貝葉斯網路是命題邏輯的機率學表親

9.2.3. 一階邏輯也有機率學表親,包括貝葉斯邏輯和各種各樣的機率程式語言

9.3. 貝葉斯理性

9.3.1. 它假設一個理性的智慧體可以獲得一個後驗機率分佈,這一後驗機率分佈是基於當前世界可能的狀態以及基於過去所有經驗的關於未來的假設

9.4. 運籌學、控制理論和人工智慧領域的研究人員也開發了各種各樣的演算法,用於在不確定的情況下做出決策,其中一些演算法可以追溯到20世紀50年代

9.4.1. “動態規劃演算法”是前向搜尋和規劃的機率學表親,可以為金融、物流、交通等各種實際問題提供最優或接近最優的行動計劃

9.5. 與動態規劃演算法一樣,輸入強化學習演算法中的目標是獎勵函式,而且強化學習演算法會總結出一種狀態值(有時是動作值)的估算器

9.5.1. 該估算器可以與時間跨度相對較短的前向搜尋相結合,產生高水平的行為

10. 強化學習系統

10.1. 第一個成功的強化學習系統是阿瑟·塞繆爾的西洋跳棋程式,1956年,該程式在電視上播出時引起了轟動

10.1.1. 這個程式基本上是從零開始學習的,方法是自我對弈和觀察贏棋的獎勵與輸棋的懲罰

10.2. 1992年,格里·泰索羅(Gerry Tesauro)將同樣的想法應用到西洋雙陸棋中,該程式在經過150萬盤的對弈後達到了世界冠軍的水平

10.3. 從2016年開始,DeepMind的AlphaGo及其後續程式使用強化學習和自我對弈,戰勝了圍棋、國際象棋和日本將棋中最優秀的人類棋手

10.4. 強化學習演算法還可以學習如何基於原始感知輸入選擇動作

10.4.1. DeepMind的DQN系統完全從零開始學習翫49種不同的雅達利電子遊戲,包括《乒乓球》《高速公路》《太空入侵者》等

10.4.2. 它只使用螢幕畫素作為輸入,遊戲分數作為獎勵訊號

10.4.3. 像圍棋和《Dota 2》這樣的遊戲是強化學習方法的一個很好的試驗場,因為獎勵函式是伴隨著遊戲規則的

10.5. 所有這些任務都比現實世界簡單得多:它們是完全可觀察的,它們涉及的時間跨度很短,並且它們具有相對較小的狀態空間和簡單的、可預測的規則

10.5.1. 如果我們放寬這些條件中的任何一個,都意味著標準方法將失效

10.6. 在現實世界中就不那麼方便了,已經有幾十個例子說明對獎勵錯誤的定義會導致奇怪且出乎意料的行為

10.6.1. 有些行為是無害的,比如模擬進化系統,它本應進化出快速移動的生物,實際上卻產生了個頭很高的生物,透過跌跟頭快速移動

10.6.2. 其他行為就沒那麼無害了,比如社交媒體的點選最佳化器,它把我們的世界搞得一團糟

11. 反射型智慧體

11.1. 是最簡單的,它就是將感知與行動直接聯絡起來的程式,不需要任何中間的思考或推理

11.2. 反射指的是人類和動物表現出的低階神經反射,這種反射不受思想的調節

11.3. 眨眼反射並不“知道自己在做什麼”

11.4. 反射動作也在更常規的任務中發揮作用

11.5. 反射型智慧體雖然實現了設計者的目標,但它們不知道目標是什麼,也不知道為什麼要以某種方式行動

11.5.1. 意味著它們不能真正為自己做決定,而其他人,通常是人類設計者或生物進化過程,必須事先決定一切

11.6. 反射型智慧體也非常不靈活,當環境表明反射型智慧體執行的策略不再合適時,它們也無法改變自己的行為

12. 深度學習

12.1. 當前機器翻譯領域最優秀的學習演算法是所謂的深度學習的一種形式,它以人工神經網路的形式產生一個規則,這個人工神經網路有數百個層次和數百萬個引數

12.2. 機器翻譯、語音識別和基於機器視覺的物體識別是人工智慧中三個最重要的子領域

12.3. 在人工智慧的標準模型中,演算法最佳化了固定的目標

12.4. 對深度學習或者任何監督學習演算法來說,“把目的輸入機器”通常是為了最大化預測精度,或者最小化誤差(二者是等效的)

12.4.1. 取決於習得的規則在整個系統中所扮演的角色

12.4.2. 第一個角色是純粹的感知角色:人工神經網路處理感官輸入,並以機率估計的形式將感知到的資訊提供給系統的其餘部分

12.4.3. 從純粹的感知角色轉變為決策角色(第二個角色)

12.4.3.1. 經過訓練的用於識別物體的網路可能會自動為網站或社交媒體賬號上的圖片生成標籤。

12.4.3.2. 貼這些標籤是有後果的行為

12.4.3.3. 谷歌的機器學習演算法旨在最小化一個固定的、確定的損失函式,而且這個損失函式為所有錯誤分配了相等的代價

12.4.3.3.1. 它假設將一個人錯誤歸類為大猩猩的代價與將諾福克㹴犬誤歸類為諾威奇㹴犬的代價等同起來

12.4.3.4. 正確的做法是承認錯誤分類代價的不確定性,並設計一種對代價和代價不確定性適當敏感的學習和分類演算法

相關文章