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)的名字命名的,他對現代思想的持久貢獻——現在被稱為“貝葉斯定理”