人工智慧入門與實戰 使用Raspberry Pi和Python演練
人工智慧入門與實戰
使用 Raspberry Pi 和 Python 演練 |
|
|
[美] | 唐納德 • J. 諾利斯(Donald J. Norris) | 著 |
沈益冉 潘海為 高琳琳 | 譯 |
|
北 京
Donald J. Norris
Beginning Artificial Intelligence with the Raspberry Pi
EISBN:
978-1-4842-2742-8
Original English language edition published by Apress Media. Copyright © 2017 by Apress Media. Simplified
Chinese-Language edition copyright © 2018 by Tsinghua University Press. All rights reserved.
本書中文簡體字版由
Apress
出版公司授權清華大學出版社出版。未經出版者書面許可,不得以任何方式復
制或抄襲本書內容。
北京市版權局著作權合同登記號 圖字:
01-2018-2641
本書封面貼有清華大學出版社防偽標籤,無標籤者不得銷售。
版權所有,侵權必究。侵權舉報電話:
010-62782989 13701121933
圖書在版編目
(CIP)
資料
人工智慧入門與實戰: 使用
Raspberry Pi
和
Python
演練
/ (美)唐納德•J.諾利斯(Donald J. Norris)
著; 沈益冉,
潘海為,高琳琳 譯.
—北京:清華大學出版社,
2018
書名原文:
Beginning Artificial Intelligence with the Raspberry Pi
ISBN 978-7-302-50171-8
Ⅰ.
①人… Ⅱ.
①唐… ②沈… ③潘… ④高… Ⅲ.①人工智慧 Ⅳ.
①TP18
中國版本圖書館
CIP
資料核字(2018)第
103225
號
責任編輯:王 軍 李維傑
封面設計:牛豔敏
版式設計:思創景點
責任校對:孔祥峰
責任印製:劉海龍
出版發行:
清華大學出版社
網 址:
,
地 址:
北京清華大學學研大廈
A
座
郵 編:
100084
社 總 機:
010-62770175
郵 購:
010-62786544
投稿與讀者服務:
010-62776969,
c-service@tup.tsinghua.edu.cn
質 量 反 饋:
010-62772015,
zhiliang@tup.tsinghua.edu.cn
印 裝 者:北京鑫海金澳膠印有限公司
經 銷:全國新華書店
開 本:
170mm×240mm
印 張:
20.25
字 數:
373
千字
版 次:
2018
年
7
月第
1
版
印 次:
2018
年
7
月第
1
次印刷
定 價:
59.80
元
————————————————————————————————————————————————————
產品編號:
077863-01
譯者序
人工智慧(Artificial Intelligence,
AI)是電腦科學的一個重要分支,是研究、開
發用於模擬、延伸和擴充套件人的智慧的理論、方法、技術及應用系統的一門新的技術科
學,該領域的研究方向包括機器人、語言識別、影像識別、自然語言處理和專家系統
等。人工智慧自誕生以來,理論和技術日益成熟,應用領域也不斷擴大,可以設想,
未來人工智慧帶來的科技產品,將會是人類智慧的“容器”。人工智慧可以對人的意
識、思維的資訊過程進行模擬。人工智慧不是人的智慧,但能像人那樣思考,也可能
超過人的智慧。
人工智慧是一門極富挑戰性的科學,被認為是
21
世紀三大尖端技術之一。近
30
年來,人工智慧發展極為迅速,被廣泛應用於眾多學科領域,並取得了豐碩的成果。
人工智慧已逐步成為一個獨立的分支,無論在理論還是實踐上都已自成一個系統。
樹莓派是由註冊於英國的慈善組織“Raspberry Pi
基金會”開發的。
2012
年
3
月,
英國劍橋大學的埃本·阿普頓(Eben Epton)正式發售世界上最小的桌上型電腦,又稱卡片
式電腦,它是一款基於
ARM
的微型電腦主機板,以
SD/MicroSD
卡為記憶體硬碟,卡片
主機板周圍有
1/2/4
個
USB
介面和一個
10/100
兆乙太網介面(A
型沒有網口),可連線鍵
盤、滑鼠和網線,同時擁有影片模擬訊號的電視輸出介面和
HDMI
高畫質影片輸出介面,
以上部件全部整合在一張僅比信用卡稍大的主機板上,具備所有
PC
的基本功能。只需
要接通電視機和鍵盤,就能執行電子表格和文書處理、玩遊戲、播放高畫質影片等諸多
功能。樹莓派的
B
款只提供電腦板,無記憶體、電源、鍵盤、機箱或連線。樹莓派支援
目前主流的程式語言,例如
Python、
Java、
C
和
Perl
等。
對於讀者來說, 將當前最尖端的人工智慧方法和最具便攜功能的樹莓派如此完美
結合在一起的書籍並不多見,其中更是涉及
Prolog
和
Python
語言的實用程式設計。雖然
對人工智慧方法和基於樹莓派的程式設計的學習十分枯燥,過程也頗為艱辛,但是學成之
後所獲得的成就感和實用性是不言而喻的。透過本書,作者呈現了對基於樹莓派的機
器人和遊戲等實際應用的豐富見解和實用解決方案, 突出了目前被廣泛使用的人工智
能方法的優勢,以幫助讀者決定哪一個方法才最適合自己所面對的應用問題。透過逐
步的編碼方法,以及循序漸進、深入淺出的描述,讀者能夠理解多種人工智慧方法的
基本原理和不同程式語言的實現技巧。
本書配備了非常實用的示例和程式碼片段, 以確保讀者能夠很好地掌握用於解決實
際問題的人工智慧方法。本書在介紹人工智慧(AI)、專家知識系統、機器學習和模糊
邏輯等基本概念之後,詳細描述在實際應用中使用最為普遍的多項技術的基本原理,
這些技術分別是模糊邏輯系統、淺層機器學習、人工神經網路(ANN)、深度學習和進
化計算。對每一項技術的講解都是從一個基於樹莓派的實際問題案例(例如遊戲和機
器人)開始,透過
Prolog
或
Python
語言的程式設計實現,向讀者展示了人工智慧技術是如
何工作並實實在在地應用於現實問題中的。本書極具易讀性、實用性和可操作性,將
理論和實踐有機地結合在了一起。
在這裡要感謝清華大學出版社的編輯, 他們為本書的翻譯投入了巨大的熱情並付
出了很多心血。沒有你們的幫助和鼓勵,本書不可能順利付梓。
對於這本實用力作,由於涉及知識面廣,內容豐富,術語量大,翻譯難度可想而
知,譯者本著“誠惶誠恐”的態度,在翻譯過程中力求專業性、準確性和通俗性,但
是鑑於譯者水平有限,錯誤和失誤在所難免,如有任何意見和建議,請不吝指正。感
激不盡!本書全部章節由沈益冉和潘海為翻譯,參與翻譯的還有高琳琳、邊曉菲、孫
明、李儉、任春友、李鵬、張春新等。
譯者
2018
年
2
月於哈爾濱
作者簡介
Donald J. Norris
擁有電子工程學士學位及生產管理
MBA
學位。他目前在南新罕布什爾大學任職,教授本科生和研究生計
算機科學相關課程。同時,他也開設了一些機器人技術的課程。
他擁有
33
年的教學經驗,曾在多所大學擔任副教授。
Donald
後來從美國海軍的民間聯合服務組織退休,在那裡他
專注於核潛艇有關的聲學和高階數字訊號處理。自此,他作為一
位使用
C、
C#、
C++、
Python、
MicroPython、
Node.js
和
Java
等
語言的專業軟體開發者已經擁有超過
23
年的程式設計經驗,其中有
6
年擔任
IT
安全顧問。
Donald
撰寫並出版了
6
本書,主題內容涉及樹莓派、如何組裝和操作自己的無人
機、
MicroPython、物聯網和
Edison
微處理器等方面。
Donald
建立了名為
Norris Embedded Software Solutions (dba NESS LLC)的諮詢顧
問公司,專門開發基於微處理器和微控制器的應用解決方案。
Donald
認為自己是一個
充滿激情的極客,總是去嘗試新鮮事物。他也是私人飛行員、攝影愛好者、業餘無線
電操作員和狂熱的跑步健身者。
技術審校者簡介
Massimo Nardone
在安全、
Web/移動開發、雲和
IT
架構方面擁有超過
22
年的經驗,但他真正關注的是安全防
護和
Android
開發。
20
多年來,他一直在教授學生如何使用
Android、Perl、
PHP、
Java、
VB、
Python、
C/C++和
MySQL
等進行程式設計。
他在義大利的薩萊諾大學獲得電腦科學碩士學位。
Massimo
擔任過專案經理、軟體工程師、研究員、首
席安全架構師、資訊保安經理、
PCI / SCADA
稽核員和高
級
IT
安全/雲/ SCADA
架構師職位。
Massimo
的技術能力卓越, 熟悉的技術領域包括安全防護、
Android、 雲、
Java、
MySQL、Drupal、Cobol、Perl、Web
和移動開發、MongoDB、D3、Joomla、Couchbase、
C/C++、
WebGL、
Python、
Pro Rails、
Django CMS、
Jekyll、
Scratch
等。
目前他是
Cargotec Oyj
的首席資訊保安官(CISO)。
Massimo
還曾在赫爾辛基理工大學(現名為阿爾託大學)的網路實驗室擔任客
座講師和導師。他持有
4
個國際專利(PKI、
SIP、
SAML
和
Proxy
領域)。
Massimo
已經為不同的出版公司審校了
40
多部
IT
圖書,他還是
Pro Android
Games
(Apress,
2015)一書的作者之一。
前 言
人工智慧(Artificial Intelligence,
AI)是一個飛速發展的領域,寫這本書旨在向
你展示這一領域的“神奇”。在本書中將使用
Raspberry Pi(樹莓派)作為主要工具,
可以透過它瞭解人工智慧的工作原理,進一步將
AI
應用在未來的工作與專案中。
在最開始想宣告一點:即使讀完本書並完成書中所有的示例,你也不會成為
人工智慧領域的專家。這個道理就好比一個人參加完急救課程後,也不可能立即
成為醫生或護士一樣。想要成為
AI
專家,需要學習不同領域的大學課程,其中包
括數學、電腦科學、邏輯學,甚至哲學。當然也有來自其他領域的人工智慧專
家,包括音樂和聯合藝術。做了上述宣告後,希望你明白,透過閱讀本書可以快
速瞭解
AI
的基本知識及原理,但想要成為人工智慧專家,還需要更進一步的學習。
接下來,將討論為什麼
Raspberry Pi
是學習
AI
的一個良好平臺。首先,雖然
沒有現代
PC
或
Mac
的計算速度快,但它本身是一臺功能完整的計算機。Raspberry
Pi 3
的時脈頻率為
1 GHz,
CPU
為
4
核,
RAM
大小為
1GB,但讓人驚喜的是,它
只需要
35
美元(USD)就可以買到。其次,我們推薦使用
Raspberry Pi
作為學習人
工智慧的基本工具,主要原因就是它相當於一個微控制器。由於微控制器可以很
方便地連線各種感測器,因此可以實現
AI
與現實世界的簡單且有效的互動。
雖然
PC
也可以控制感測器,但它通常需要昂貴、複雜的專用介面來實現這
些功能。
Raspberry Pi
最初的目的就是以最少的介面要求來感知和控制裝置,更準
確地說,是以最小的軟體成本。同時
PC
軟體介面通常非常複雜,一般針對某項
功能定製而成——這意味著使用者難以進行個性化的修改和設定。
本書中使用的
Raspberry Pi
搭載的作業系統是名為
Jessie
的
Linux
發行版。 它
是一款非常穩定的作業系統(Operating System,
OS),並且完全開源,可以從
Raspberry Pi
基金會的網站免費下載。
Jessie
支援絕大部分的開源應用, 這也就是說,
本書中使用的所有軟體都是免費提供的,可以下載並部署在你的
Raspberry Pi
上。
本書的各種演示程式和專案使用的語言主要是
Python、
Prolog
和
Wolfram。
這些語言中的每一種都有自身獨有的特性,使得我們可以根據不同的應用場景,
快速高效地實現所需的功能。
我使用的主要應用是
Mathematica,它是一款科學計算軟體,很好地結合了數
值和符號計算引擎、圖形系統、程式語言、文字系統,以及與其他應用的高階連
接。這是一款商業軟體,由
Wolfram
公司的
Stephen Wolfram
博士(CEO)贈予我免
費使用。
我按照邏輯順序編排了本書的章節內容,第
1
章首先介紹人工智慧(AI)。盡
管
AI
已經應用於我們的日常生活,但向沒有聽說過的人解釋清楚
AI
也不是一件
容易的事情。第
1
章中給出了
AI
的定義並列舉了一些
AI
用於日常生活中的具體
例子。你會發現無論喜歡與否,人工智慧已經滲透到現代社會的很多領域,正以
越來越多的形式影響著我們的生活。另外,還會介紹一下商業智慧(Business
Intelligence,
BI),它與
AI
密切相關,主要應用於汽車領域。一些
AI
從業者通常
將
BI
簡稱為
AI
在商業環境中的應用。但這遠不止於此。之所以介紹,是因為它
是一種合理的簡化。
接下來,將在第
2
章中探討
AI
的一些基本概念。首先講解一些基本的邏輯結
構,瞭解基本邏輯推理是理解
AI
核心的重要基礎。接著介紹專家知識系統,它是
知識管理系統(Knowledge Management System,
KMS)的主要組成部分,同時也是
BI
的重要組成部分之一。然後介紹機器學習,這是一個前景廣闊的
AI
研究方向。
最後,在該章的小結中簡單介紹模糊邏輯(Fuzzy Logic),在後續的章節中還會著
重研究它。
第
3章主要介紹如何使用
Prolog語言編寫一個實用的專家系統。將使用
Prolog
編寫一個簡單的控制檯問答程式來闡述
Prolog
的一些關鍵特性,這種特殊語言在
實現人工智慧的概念方面非常有用。與
Prolog
相比,實現相同的目的,使用
C、
C++、
Java
等語言則需要更多的程式碼和擴充套件程式。
第
4
章著重於介紹人工智慧與遊戲。雖然例子中的遊戲很簡單,但本章的主
要目的是演示
AI
如何應用於遊戲邏輯。這些遊戲
AI
概念可以很容易地延伸到更
複雜的遊戲中。使用
Python
來實現透過傳統文字控制檯介面控制遊戲的功能。不
要期望在本章中看到《魔獸世界》
(
World of Warcraft
,
WoW),但請放心,
WoW
在
遊戲中使用了
AI。
在第
5
章中,將再次使用
Prolog
來實現一些模糊的邏輯控制,在這個專案中
也有一個簡化的專家規則系統。由一個使用溫度和溼度感測器的
Raspberry Pi
系
統控制一個虛擬的加熱和冷卻系統。
第
6
章介紹淺層機器學習的概念。我們將編寫一個
Python
程式,它的功能是
使計算機“學習”你最喜歡的顏色,並根據顏色選擇做出“決定”。在該章的最後,
前 言
VII
將會介紹自適應學習,它在
BI
中起著重要的作用。
第
7
章透過人工神經網路(Artificial Neural Network,
ANN)來繼續機器學習的
話題。
ANN
是目前用於實現機器學習的最普遍的
AI
方法。該章將詳細講解
ANN
的構建方法,並演示一個使用
Python
建立的實際神經網路。
第
8
章繼續討論深度學習。在該章的專案中,將詳細討論多層次的
ANN
功
能,包括梯度搜尋特性。
第
9
章包含兩個使用多層
ANN
深度學習的案例。第一個是對手寫數字的識
別,它使用
MNIST資料集進行訓練和測試。 第二個使用帶有相機功能的
Raspberry
Pi
對手寫數字進行成像,然後使用先前訓練過的
ANN
來確定最接近的數字。
第
10
章涉及進化計算(Evolutionary Computing,
EC),包含進化規劃、遺傳算
法和遺傳規劃。將列舉幾個有趣的示例,突出了一些
EC
功能,提供了很好的入
門介紹。
第
11
章討論包容,這是一個基於行為的機器人研究領域。它與
AI
密切相關。
該章使用第
7
章介紹的機器人汽車來進行演示。使用包容行為的機器人可以更好
地模仿人類的行為,從而實現人類思考和機械運動之間的
AI
迴圈。
透過閱讀本書和動手復現書中的示例,相信你會對
AI
有更為深刻的理解,並
且對於如何將其融入未來的專案中有更進一步的規劃。
目 錄
第
1
章 人工智慧簡介
····················1
1.1 AI
的歷史起源······················1
1.2
智慧
······································6
1.3
強
AI
與弱
AI,廣義
AI
與
狹義
AI·································7
1.4
推理
······································8
1.5
人工智慧的分類···················9
1.6
人工智慧和大資料·············11
1.7
小結
····································12
第
2
章 基礎
AI
概念
····················13
2.1
布林代數·····························13
2.2
推論
····································15
2.3
專家系統·····························16
2.3.1
衝突解決
························
16
2.3.2
反向鏈····························
18
2.4
配置
Raspberry Pi ···············18
2.5 SWI Prolog
簡介·················19
2.6
在
Raspberry Pi
上安裝
Prolog ·································19
2.7 Prolog
初步演示
·················20
2.8
模糊邏輯簡介·····················22
2.8.1 FL
的例子
······················
23
2.8.2
去模糊化························
24
2.9
問題解決
···························· 25
2.9.1
廣度優先搜尋
················
25
2.9.2
深度優先搜尋
················
25
2.9.3
深度有限搜尋
················
26
2.9.4
雙向搜尋························
26
2.9.5
問題解決的其他例子·····
26
2.10
機器學習
·························· 27
2.10.1
預測
···························
27
2.10.2
分類
···························
28
2.10.3
進一步分類················
31
2.11
神經網路··························· 32
2.12
淺層學習與深度學習······· 37
2.13
進化計算
·························· 37
2.14
遺傳演算法
·························· 38
2.15
小結
·································· 39
第
3
章 專家系統演示
··················41
3.1
例
3-1:辦公室資料庫······· 42
3.2
例
3-2:識別動物
·············· 47
3.3
例
3-3:井字遊戲
·············· 51
人工智慧入門與實戰
使用 Raspberry Pi 和 Python 演練
X
3.4
例
3-4:感冒還是
流感?
································56
3.5
例
3-5:使用
Raspberry Pi
GPIO
控制輸出的專家
系統
····································58
3.5.1
安裝
PySWIP
庫·············
59
3.5.2
安裝硬體
························
60
3.5.3
配置
Rpi.GPIO ···············
61
3.5.4
帶
LED
控制的專家
系統································
62
3.6
小結
····································64
第
4
章 遊戲
·································65
4.1
例
4-1:剪刀石頭布···········66
4.1.1
帶開關和
LED
的剪刀
石頭布遊戲
····················
69
4.1.2
中斷································
73
4.2
例
4-2:
Nim ·······················75
4.2.1
帶
LCD
和開關的
Nim` ·······························
81
4.2.2 LCD
螢幕
···················
84
4.2.3
載入
Adafruit LCD
庫
····
85
4.2.4 LCD
測試
·······················
86
4.2.5 automated_nim.py···········
87
4.3
小結
····································93
第
5
章 模糊邏輯系統
··················95
5.1
部件清單·····························95
5.2
軟體安裝·····························96
5.3
基礎
FLS·····························96
5.4
初始化:定義語言變數
和術語
································97
5.5
例
5-1:使用
FL
計算
小費
····································97
5.6
初始化:構建隸屬函式
·····98
5.7
初始化:構建規則集······· 101
5.8
推理:根據規則集評價
模糊集
······························ 103
5.9
聚集:綜合每個規則的
評估結果
·························· 106
5.10
去模糊化:將模糊集
轉換為清晰的輸出值····· 106
5.11
例
5-2:修改
tipping.py
程式································ 113
5.12
例
5-3:
FLS
加熱和製冷
系統································ 114
5.12.1
模糊化
·····················
116
5.12.2
推理·························
117
5.12.3
聚集·························
118
5.12.4
去模糊
·····················
119
5.12.5
測試控制程式
·········
121
5.13
例
5-4:修改
HVAC
程式································ 122
5.14
小結
································ 124
第
6
章 機器學習
·······················125
6.1
部件清單
·························· 125
6.2
例
6-1:顏色選擇
············ 126
6.2.1
演算法
·····························
126
6.2.2
輪盤賭演算法··················
129
6.3
例
6-2:自主機器人········· 131
6.3.1
自主演算法······················
132
6.3.2
測試執行······················
138
6.3.3
額外學習······················
138
6.4
例
6-3:使用能源消耗
計算的自適應學習··········· 142
6.5
小結
·································· 147
目 錄
XI
第
7
章 機器學習:人工神經
網路
······························149
7.1
部件清單···························149
7.2 Hopfield
網路····················149
7.3
例
7-1:數字影像識別
示例
··································155
7.4
例
7-2:使用
ANN
的
自主機器人小車
···············161
7.5
例
7-3:用於避開障礙物的
機器人小車的
Python
控制
指令碼
··································164
7.6
例
7-4:尋光機器人·········169
7.6.1
未知情況
······················
172
7.6.2
大腦對映
······················
172
7.6.3
光強感測器
··················
173
7.6.4
用於尋求目標的機器人小
車的
Python
控制指令碼···
175
7.6.5
測試執行
······················
180
7.6.6
障礙物迴避和尋光·······
181
7.7
小結
··································182
第
8
章 機器學習:深度學習
······183
8.1
泛化的
ANN ·····················183
8.1.1
較大的
ANN·················
188
8.1.2
三層
ANN
中的後向
傳播······························
191
8.1.3
更新加權矩陣
··············
193
8.2
梯度下降在
ANN
中的
運用
··································199
8.3
工作範例···························203
8.3.1 ANN
學習的一些
問題······························
204
8.3.2
初始權重的選擇···········
204
8.4
例
8-1:
ANN
的
Python
指令碼·································· 205
8.4.1
初始化··························
206
8.4.2
測試執行······················
208
8.5
例
8-2:訓練
ANN··········· 209
8.6
小結
·································· 213
第
9
章 機器學習:實用的
ANN
示例
······························215
9.1
部件清單
·························· 215
9.2
例
9-1:
MNIST
資料集
··· 216
9.2.1
影像化一條
MNIST
記錄
·····························
219
9.2.2
調整輸入和輸出數
據集
·····························
221
9.2.3
為手寫數字檢測配置
ANN·····························
224
9.2.4
測試執行······················
226
9.3
例
9-2:使用
Pi Camera
識別手寫數字
·················· 231
9.3.1
更改的
trainANN.py
指令碼
·····························
236
9.3.2
使用
ANN
自動識別
數字
·····························
237
9.3.3
測試執行······················
239
9.4
小結
·································· 240
第
10
章 進化計算
·····················241
10.1 alife ································· 241
10.2
進化程式設計
························ 242
10.3
例
10-1:手動計算········· 243
10.4
例
10-2:
Conway
的生命
遊戲
································ 251
10.4.1 Sense HAT
硬體
安裝·························
253
人工智慧入門與實戰
使用 Raspberry Pi 和 Python 演練
XII
10.4.2 Sense HAT
軟體
安裝·························
253
10.4.3
生命遊戲:
Python
版本·························
254
10.4.4
測試執行
·················
262
10.4.5
單代生命遊戲··········
264
10.5
小結
································267
第
11
章 基於行為的機器人
········269
11.1
部件清單·························269
11.2
人類的大腦結構
·············270
11.3
包容架構·························271
11.3.1
傳統方法··················
273
11.3.2
基於行為的機器人
方法·························
273
11.4
例
11-1:
Breve
專案
······ 276
11.5
例
11-2:構建使用包容架
構的機器人小車············· 284
11.6
例
11-3:
Alfie
機器人
小車
································ 288
11.6.1
新增另一個行為
······
296
11.6.2
測試執行··················
297
11.7
小結
································ 298
附錄
Alfie
機器人小車搭建
指南
··································299
第
1
章
人工智慧簡介
本章簡要介紹人工智慧(Artificial Intelligence,
AI),為理解
AI
是什麼,以及
為什麼
AI
是一個令人興奮且快速演變的研究領域建立框架。下面讓我們先從
AI
的歷史起源講起。
1.1 AI
的歷史起源
在很早以前就已經出現類似於人工智慧的原型。據記載,古希臘哲學家曾研
究過如何製造擁有智慧的機器。在
1517
年,猶太教主教創造了
Prague Golem,如
圖
1-1
所示。
圖
1-1 Prague Golem
1637
年,法國著名的哲學家
René Descartes
在他的著作
Discourse on Method
中寫提到:機器的智慧化是不可能實現的。但這篇論文表明瞭他的態度。
接下來是一個更奇特的人工智慧故事——或者更恰當地說,是一個“騙局”。
在
18
世紀末到
19
世紀中期的歐洲,人們創造出了一個自動化的國際象棋棋手,
它被稱為
The Turk,如圖
1-2
所示,
The Turk
的形象被印刷在郵票上。
圖
1-2
智慧象棋棋手
The Turk
是一臺智慧機器,可以和人類對手相互對弈。實際上,有一個人類
棋手藏在機器的支撐箱中,由他來操作機器移動棋子。不妨想一下,一定有一個
微型的潛望鏡或小孔,可以讓這個隱藏的國際象棋“玩家”看見棋盤的情況。
The
Turk
這個名字很奇怪,它源自德語單詞
Schachtürke,意思是“自動棋手”。這個
隱藏在盒子中的人通常都是下棋高手,可以在多場比賽中取得勝利,包括與拿破
侖·波拿巴(Napoleon Bonaparte)和本傑明·富蘭克林(Benjamin Franklin)的對弈。
真正的“智慧象棋棋手”在很多年以後才出現。
1943
年,
McCulloch
和
Pitts
提出了一種名為“感知機”的數學模型,它是基
於生物腦細胞結構的抽象。他們在論文中詳細描述了神經元細胞如何像電子電
路一樣以二進位制的方式傳遞神經訊號。不僅如此,研究表明,神經元細胞能夠
隨著時間的變化動態地改變自身,也就是說,可以動態地對外部刺激做出響應。
這篇論文是神經網路領域的開山之作,後面的章節將更詳細地討論這個話題。
1947
年,艾倫·圖靈(Alan M. Turing)寫道:
在我看來,如何製造出更大容量的記憶體比實現更快的運算速度更為重要。出
於商業目的,機器的工作速度越快,其商業價值越高,但是如果進行復雜瑣碎的
工作,則需要大容量的儲存空間。因此,儲存能力是更基本的要求。
第二次世界大戰期間,圖靈破譯了德國的恩尼格瑪密碼機(Enigma),這加快
了第二次世界大戰的結束。他認為與計算速率相比,儲存容量將成為未來所有的
“智慧”前提。關於圖靈測試,在本章後面會有更多詳細的說明。
1951
年,一位名為
Marvin Minsky
的年輕數學博士生和
Dean Edmonds,根
據
McCulloch
和
Pitts
的論文模型設計並建立了一臺基於感知機的計算機,這臺
計算機被稱為隨機神經模擬加固計算機(Stochastic Neural Analog Reinforcement
Computer,
SNARC),由
40
個真空管“神經元”組成。這些“神經元”可以控制
外部的閥門、電機、齒輪、離合器和執行器。這個系統是一個隨機連線的
Hebb
突觸網路,構成了一臺神經網路學習機。
SNARC
可能是第一臺具備自我學習能力
的機器。 能成功地模擬老鼠穿越迷宮尋找食物的行為。 該系統具有一些基本的“學
習”能力,可以讓老鼠最終走出迷宮。
人工智慧發展的一個重大轉折點發生在
1956
年的達特茅斯學院人工智慧會
議上。這次會議由
Minsky、
John McCarthy
和
Claude Shannon
聯合發起,會議的
主題是探討人工智慧方向的新研究領域。克勞德·夏農(Claude Shannon)常被稱為
“資訊理論之父”,這是對他在聲名遠揚的貝爾實驗室(Holmdel, NJ)完成的傑出工作
表達的敬重之情。
約翰·麥卡錫(John McCarthy)也不是泛泛之輩,他第一個提出“人工智慧”
的概念,同時也建立了
Lisp
程式語言
1
。
他對
ALGOL
語言程式設計設計和計算機分時系統的發展做出了重大貢獻, 後者
奠定了現代計算機網路的基礎。此外,明斯基(Minsky)和麥卡錫一起組建了世界
上第一個人工智慧實驗室,現在被稱為麻省理工學院電腦科學和人工智慧實
驗室。
回到
1956
年的達特茅斯學院人工智慧會議上,在這次會議上麥卡錫給出了
人工智慧的經典定義。據我所知,這仍然是大多數人在定義
AI
時使用的“黃金
標準”:
1
譯者注:麥卡錫在
1958
年發明了
LISP
語言,該語言至今仍在人工智慧領域廣泛使用,並於
1960
年將其設計發表在《美國計算機學會通訊》上。
人工智慧是一門製造智慧機器,特別是智慧計算機程式的學科。它與使用計
算機來理解人類智慧類似,但人工智慧並不侷限於生物學上可觀察到的方法。
麥卡錫在這個定義中使用了“人類智慧”這個短語,稍後會進一步探討它。這
次會議還提出了人工智慧的許多基本概念,雖然無法在本書中一一論述,但強烈
建議感興趣的讀者自行查閱相關資料以瞭解學習。
20
世紀
60
年代是人工智慧研究發展迅速的十年。可以說,
Newell
和
Simon
詳細闡述了
General Problem Solver(一般問題的求解)演算法。這種方法同時使用了計
算機和人類解決問題的技術。遺憾的是,當時的計算機技術還在發展,記憶體容量
和計算速度都無法滿足這個演算法的要求。最終這個專案被放棄,但並不是因為它
的理論不正確,而是因為實現它所需的硬體要求暫時無法滿足。
20
世紀
60
年代,
AI
領域內另一個重要的突破是
Lofti Zadeh
提出了模糊集合
和邏輯的概念,從而演變出名為模糊邏輯的人工智慧分支。
Zadeh
認為計算機能
以一種更像人類的模糊邏輯方法來表現,而不是必須以一種精確的、離散的邏輯
模式來表現。在第
5
章將列舉一個有趣的模糊邏輯示例。
20
世紀
60
年代的一項研究表明:計算機可以模擬人腦。當然,在那個時代
不存在模仿人類大腦的實際功能的計算能力,這使得很多人覺得人工智慧無法繼
續發展。
模仿或以某種方式複製人腦的工作過程,並將這種功能放入機器,被稱為經
典人工智慧方法。但也有許多研究者認為機器應該以自己的方式變得智慧化,而
不是單純地模仿人類,這種方法也被稱為現代人工智慧。這兩種方法在人工智慧
社群內部產生了嚴重分歧。
20
世紀
60
年代後期,研究人員對計算機如何透過使用自然語言而不是計算
機程式碼來與人互動做了很多工作。在此期間,
Joseph Weisenbaum
建立了
ELIZA
計劃。雖然按當今的標準來說,它還是很原始的,但它仍然能夠愚弄一些使用者,
讓使用者以為他們正在和“人”而不是機器交談。
ELIZA
專案引發了一個非常有趣
的爭論,即如何確定一臺機器是否達到某種程度的“智慧”。在
1950
年的
Journal
of Computing Machinery and Intelligence
雜誌的一篇文章中,
Alan Turing
闡述了機
器已經達到智慧化的狀態的充分條件。他認為,如果機器能夠成功地欺騙一個知
識淵博的人類觀察者,即讓他無法分辨交談物件是機器還是人,那麼這臺機器就
可以被認為是智慧的。當然,談話必須用中立的溝通渠道以避免聲音或外表等明
顯線索暴露測試主體。即使到了今天,圖靈測試仍然是一個合理的基準。人們甚
至可以使用現代的高效語音識別、合成技術來進一步愚弄觀察者。圖靈測試在哲
學家和其他研究智力本質以及對此感興趣的學者中仍然存在爭議。
20
世紀
70
年代,由於計算技術發展緩慢,
AI
沒有太大的進展。雖然人們對
自然語言處理和影像識別及分析非常感興趣,但遺憾的是,研究人員可用的計算
資源十分有限,不能勝任這些艱鉅的任務。這使人們意識到,電腦科學的進步
是人工智慧發展的先決條件。此外, 也出現了反對
AI
的哲學觀點, 包括
John Searle
提出著名的“中文房間”
2
的說法。明斯基反對
Searle
的假設,同時,麥卡錫認為
人類的智慧與機器智慧應以不同的方式處理。
20
世紀
80
年代,由於個人計算機的出現,許多研究者開始關注麥卡錫的方
法,人工智慧也有了進一步的發展。在這個時間段誕生了專家系統,並在商業和
工業/製造部門得到了實際應用,在後面的章節中將會演示幾個專家系統的應用。
經典的人工智慧方法也得到了進一步研究;同時,人工智慧正逐步被認可,也許
更重要的是因為它被用於許多實際場景中。巧合的是,機器人和模擬機器人的發
展在這一段時間也有了很大的進展。人工智慧研究自然被這個領域所吸引,因為
兩者之間看起來是完全互補的。隨著現代計算技術的巨大進步,人工智慧進入實
用時代。此時,摩爾定律的真正影響才顯現出來。摩爾定律由英特爾公司的創始人
戈登·摩爾(Gordon Moore)於
1965
年提出,具體內容是,“當價格不變時,整合電
路每英寸可容納的元器件的數目, 約每隔一年便會增加一倍, 效能也將提升一倍”。
電子元器件密度的指數增長與計算機效能的提高密切相關, 這對於
AI
的改進
和發展非常需要。
人工智慧發展的重要里程碑是,
1997
年
IBM
的電腦“深藍”在與世界冠軍
國際象棋大師加里·卡斯帕羅夫(Garry Kasparov)的比賽中獲得勝利。儘管這場勝
利令人印象深刻,但是我們也應認識到它並不能解決所有棋盤遊戲的問題,例如
中國傳統棋盤遊戲——圍棋。
中國和日本的圍棋是同一種棋類遊戲,遊戲中由玩家輪流行動。圍棋暴露了
目前在人類遊戲中應用人工智慧的侷限。儘管付出了相當大的努力(不像國際象棋
那麼多),但計算機在圍棋遊戲中的發揮與人類相比仍然相距甚遠。問題是程式在
做出決策時需要將可能的情況劃分為一系列的假設,首先這些假設被單獨分析,
然後分析它們之間的相互作用。儘管人類棋手也會這麼做,但是人類在決策時會
2
譯者注:“中文房間”的實驗過程可表述如下。
一個對漢語一竅不通,只說英語的人被關在一間只有一個開口的封閉房間中。房間裡有一本用英文寫
成的手冊,指示該如何處理收到的漢語資訊以及如何以漢語回覆。房間外的人不斷向房間內遞進用中文寫
成的問題。房間內的人便按照手冊上的說明,查詢到合適的指示,將相應的中文字元組合成對問題的解答,
並將答案遞出房間。
約翰·希爾勒認為,儘管房間裡的人可以以假亂真,讓房間外的人以為他確確實實說漢語,而他卻壓
根不懂漢語。在上述過程中,房間外的人的角色相當於程式設計師,房間內的人相當於計算機,而手冊則相當
於計算機程式:每當房間外的人給出輸入,房間內的人便依照手冊給出答覆(輸出)。而正如房間內的人不
可能透過手冊理解中文一樣,計算機也不可能透過程式獲得理解能力。既然計算機沒有理解能力,所謂“計
算機於是便有智慧”便無從談起了。
——來自維基百科中文
考慮到全域性性的影響。因此,為了彌補這種智力機制的缺陷,象棋程式(如深藍)
在決策時必須進行數百萬倍的計算,以對比每種決策可能產生的後果。
這使得我們可以稍稍放心,暫時不會出現諸如許多科幻電影(包括《終結者》
系列、《2001:太空漫遊》和《星球大戰》系列)中描述的機器智力與人類相當的
情況。在計算系統變得真正智慧之前,還有很長的路要走,還需要作更多的研究。
這也是下一節討論的主題。
1.2
智 能
智慧的本質是什麼始終是
AI
入門課程的一個主題。學生們經常陷入如何定義
智慧以及如何認識智慧的問題中。通常情況下,探索智慧的結果就是創造出一個
幾乎無休止的問題黑洞,例如:
z
老鼠是智慧的嗎?
z
對於機器來說,智慧意味著什麼?
z
海豚是海洋中最聰明的哺乳動物嗎?
z
外星人如何認知地球上的智慧體?
我們可以提出無數類似的問題,也許回想起來,剛剛建立這樣的問題是智慧
的一種明確表現,由此讀者可以明白透過迴圈推理的意義。事實證明,給智慧下
一個通俗的定義是很難的。智慧在
Meriam-Webster
線上字典中的定義如下:
1)
學習、理解或應對新的或嘗試的情況的能力——理性,以及理性地運用理
性;運用知識來操縱環境或以客觀標準進行抽象思考的能力(如測試),基督教科
學——神聖心靈的基本永恆品質,心智敏銳——精明。
2)
聰明的實體,尤其是天使;聰明的頭腦或頭腦中的智慧。
3)
理解的行為——理解力。
4)
資訊、新聞;關於敵人或可能的敵人或地區的資訊;一家從事獲取這類信
息行為的機構。
5)
執行計算機功能的能力。
根據上面的定義,你會發現字典編撰者試圖從多個方面定義智慧,包括人性、
精神、宗教等,尤其是最後第
5
點的定義:執行計算機功能的能力。
線上
Macmillan
字典提供瞭如下更簡潔的定義:
智慧是瞭解和思考事物,獲取和使用知識的能力。
如果檢視其他字典中關於智慧的定義,就會發現,幾乎每本字典都有自己的
定義範疇。這也客觀說明智慧的定義涉及多個方面,很難有一個公認的定義。
智慧也與感性輸入和輸出有關。例如,人類具有功能強大的大腦以及五個感
官系統:視覺、聽覺、味覺、觸覺和嗅覺。這些感官系統使得我們“智慧”。當然,
事實證明:
即使人類的某些感官系統有缺陷,但智力不會受到太大的影響。正如人的身
體可以針對某些器官受到傷害做出適應性的調整一樣,人類智力也可以做出不同
的反應。失去說話的能力並沒有讓史蒂文·霍金(Steven Hawking)成為白痴。擁有
步行、跑步、開車或駕駛飛機的能力,讓人類可以有更多機會探索和了解外部環
境,從而擴大獲取知識和經驗的來源,但不一定會使得人類更加智慧——除非認
為知識和智慧是同義詞。
研究動物以及它們是否智慧只是一個小小的飛躍。鳥類可以在天空中自由飛
翔,因此相比人類而言它們有更好的視野。這是否意味著鳥類的智力會比人類更
高呢?顯然,這是不確定的,這也引出了我們接下來的話題。動物智慧和機器智
能不應該與人類智慧相比較,就像將橘子與蘋果作比較,沒有意義。
在前面的討論中,目標是重申現代人工智慧技術的前提:機器智慧應該被單
獨考慮,而不是與人類智慧相比較。基於這個前提,我們探索人工智慧的發展應
用,但不期望也不需要模仿或模擬人類的智慧。
1.3
強
AI
與弱
AI
,廣義
AI
與狹義
AI
正如標題中所寫的,通常根據
AI
的特點,對現有的
AI
進行分類,以達到人
類最高智力水平為目標的
AI
稱為強人工智慧。可以推測傳統人工智慧的支持者也
會贊同這一術語。強與弱形成鮮明的對比。弱
AI
是使實際的人工智慧系統能夠
有效運作,而不考慮模擬人類的行為,這種方法也稱為現代方法。雖然不知道
這些強與弱的定性何時產生,但是它們應該得到同等的重視和認可。這裡只介
紹這些術語,如果閱讀了關於人工智慧應用的文章,就會明白它們的重要性。
本書對這兩種說法都不採用,相反,只關注人工智慧的應用——無論它們強或弱。
章節標題中使用的另一對術語是廣義
AI
和狹義
AI。 廣義
AI
關心的是一般情
況,而不是特定的任務或應用。我認為廣義的人工智慧和強大的人工智慧擁有一
種自然的聯絡,這兩者都與人類的推理和思考相關。狹義
AI
專注於應用於具體的
任務,不具有魯棒性。當然也有例外,谷歌已經開發出一套非常優秀的系統,能
夠識別或描述“物體”。谷歌應用程式是廣義和狹義
AI
的結合體。亞馬遜同樣開
發了一套智慧推薦系統,這套系統可以根據已有的客戶資訊給予客戶更好的商品
推薦資訊。
下面用圖
1-3
結束本節的內容,這是透過在
Raspberry Pi 3
上執行
Mathematica
建立的詞雲。
圖
1-3
是一種簡單的圖形表示,包含許多常用的人工智慧詞彙。圖
1-3
中顯
示的所有單詞都來自於維基百科。
圖
1-3
人工智慧詞雲
1.4
推 理
在之前的討論中,提到了原因和推理。但是推理和人工智慧有什麼關係呢?
推理是對事物的探索延伸。原因指的是思考事物或思想是如何聯絡在一起的。下
面的一些例子可以幫助闡明我想表達的想法:
z
學習是基於檢查或討論現有知識集, 構建新知識集的過程。 這種情況下的
集合是任何資料集合,無論是否基於現實。
z
語言的使用是將詞彙轉換為無論書面還是口頭上的想法和支援性的關
系。
z
基於邏輯的推論意味著基於邏輯關係決定某些事物是否為真。
z
基於證據的推論意味著根據所有支援性現有證據來確定某些事情是否
屬實。
z
自然語言生成存在,以使用給定的語言滿足溝通目的和目標。
z
解決問題是確定如何實現既定目標的過程。
任何這些活動都必須涉及推理才能取得令人滿意的最終結果。請注意,在列
表中沒有一項將推理僅限於人。其中一些活動是可以由機器實現的,在某些情況
下,甚至是動物。有很多實驗已經令人滿意地證明動物可以解決問題,特別是如
果涉及食物的話。
最近,聲控網際網路裝置的數量激增,包括亞馬遜的
Alexa、微軟的
Cortana、
蘋果的
Siri
和谷歌的
Home
等。這些都是在智慧手機上安裝的獨立裝置或應用程
序。在任何情況下,它們都能很好地識別聲音,並轉換為可操作的指令。最後,
以一種高度可理解的格式將結果傳遞給使用者,通常是談吐文雅的女性聲音。這些
裝置/應用程式必須使用某種推理邏輯來執行它們的預期功能,即使不理解使用者的
請求也要做出相應的回答。
1.5
人工智慧的分類
表
1-1
中列舉了現代人工智慧的大部分類別。當然,裡面無法囊括所有分類,
可能有一些類別在無意中遺漏了。但確實忽略了一些類別,比如人工智慧的歷史
和哲學,因為它們與表
1-1
的意圖關聯不大。
表
1-1
現代人工智慧分類
分類 | 簡述 |
情感計算 |
研究和開發可識別、解釋、處理和模擬人類影響的
系統和裝置 |
人工免疫系統 |
基於規則的智慧機器學習系統,主要基於脊椎動物
免疫系統中的固有原理和過程 |
聊天機器人 |
一種會話代理或計算機程式,用於模擬透過文字或
音訊通道與一人或多人進行智慧會話 |
認知架構 |
關於人的思維結構的理論。其中一個主要目標是將
認知心理學的概念納入綜合計算機模型 |
計算機視覺 |
涉及計算機如何從數字影像或影片獲得高層次理解
的跨學科領域 |
進化計算(Evolutionary Computing) |
進化演算法是基於達爾文進化論延伸而來的。
進化演算法是基於三元組的問題求解,並使用元啟發 式或全域性隨機方法求得 |
遊戲人工智慧(Gaming AI) |
人工智慧在遊戲中用於產生智慧行為,主要是在非
玩家角色(Non-Player Character, NPC)的設計中模擬 人類智慧 |
人機介面(Human-Computer-Interface,
HCI) |
HCI
研究計算機技術的設計和使用,重點研究人(用
戶)與計算機之間的介面 |
(續表)
分類 | 簡述 |
智慧助理(Intelligent Personal Assistant,
IPA) |
一種可以為個人執行任務或服務的軟體代理。這些任
務或服務通常基於使用者的輸入、位置資訊以及從各種 線上來源訪問資訊的能力。這種代理的例子包括蘋果 的 Siri、亞馬遜的 Brainasoft、亞馬遜的 Evi、谷歌的 Home、微軟的 Cortana、 Lucida、 Braina(Brainasoft 為 Windows 系統開發的應用程式)、三星的 Voice 和 LG G3 的 Voice Mate |
知識工程(Knowledge Engineering) |
指在構建、維護和使用以知識為基礎的系統方面所
涉及的所有技術、科學 |
知識表示(Knowledge Representation,
KR) |
致力於用計算機系統解決複雜任務的形式來表示世
界的資訊,例如診斷醫療條件或用自然語言進行會話 |
邏輯程式設計(Logic Programming) |
一種主要基於形式邏輯的程式設計。任何用邏輯程式設計語
言編寫的程式都是一組邏輯形式的句子,表達了一 些問題域的事實和規則。主要的邏輯程式語言有 Prolog、 ASP(Answer Set Programming)和 Datalog |
機器學習(Machine Learning, ML) |
在人工智慧環境中,機器學習提供了計算機在沒有
明確程式設計的情況下學習的能力。淺度學習和深度學 習是兩個主要的子領域 |
多代理系統(Multi-Agent System) |
多代理系統是由多個相互作用的智慧代理組成的計
算機系統 |
機器人技術(Robotics) |
機器人技術是工程和科學的跨學科分支,包括機械
工程、電子工程、電腦科學、人工智慧等 |
機器人(Robots) |
機器人是一種機器,特別是指由計算機可程式設計的機
器,它能夠自主地完成一系列複雜的動作 |
規則引擎\系統(Rule Engines、 Systems) |
基於規則的系統用於儲存和操作知識,以一種有用
的方式來解釋資訊 |
圖靈測試(Turing Test) |
圖靈測試是由
Alan Turing
於
1950
年開發的一種判
斷機器是否具有與人類相同智力的測試 |
表
1-1
並未涵蓋所有的現代人工智慧研究和活動,但它確實突出了大多數重
要的研究和活動。本書展示了這些類別中的一部分,但可以說明如何使用相對簡
單的計算機資源實現人工智慧。
上面簡短的論述,希望能拓寬讀者的知識範圍,並且能夠明白人工智慧已對
我們的日常生活產生了深遠的影響。
1.6
人工智慧和大資料
大多數讀者都聽說過“大資料”這個詞,但可能不知道它是什麼,它是如何
影響現代社會的。有很多關於大資料的定義,就像人工智慧有很多定義一樣。本
人喜歡的定義相當簡單:一個資料集合,其特徵是資料量龐大、更新速度快且類
型豐富。
上述定義中提到的資料量龐大指的是資料通常是用
PB
來測量的,其中
1PB
等
於
100
萬
GB。更新速度快指的是資料是如何生成或建立的。人們只需要看看
Facebook,就能欣賞到成千上萬個線上使用者不斷建立新內容的速度。最後,定義
中的型別豐富指的是構成巨大資料流的各種資料型別,包括圖片、影片、音訊以
及普通文字。上傳至
Facebook
的平均照片可能需要
4MB~5MB
兆位元組的儲存空
間。將這些照片乘以不斷上傳的數百萬張照片,很快就會意識到大資料的本質。
那麼人工智慧是如何影響大資料的呢?答案是:應用於大資料集時,人工智慧學
習系統可以讓使用者從巨大而嘈雜的輸入中提取有用的資訊。
能夠處理大資料的典型計算機系統由數千個處理器組成,它們以一種並行的
方式協同工作,極大地加快了通常稱為
MapReduce
的資料還原過程。
IBM
的沃森
(Watson)計算機就是這樣一個系統的典型例子。它透過使用一個基於規則的引擎
來實現專家醫療系統,並處理成千上萬條醫療記錄。最終的結果是一個計算機系
統,它可以幫助醫生診斷疾病和相關疾病,而這些疾病並沒有明顯可與已知疾病
相關的症狀。
亞馬遜的網站上整合了一個令人印象深刻的人工智慧系統,該系統可以很容
易地對每一個潛在或實際的客戶進行詳細的描述, 這些使用者可以反覆訪問其網站。
它將客戶的搜尋與其他搜尋或詢問類似產品的客戶的搜尋相匹配。它還會進一步
嘗試根據過去的搜尋和訂單來預測一個網站的訪問者可能會感興趣的內容。亞馬
遜系統所使用的所有資料都是事務性的,主要是識別潛在客戶的利益。這種交易
資料,也被認為是大資料,是亞馬遜人工智慧計算機系統的主要輸入。輸出是前
面提到的配置檔案,但也可能被認為是與潛在客戶或實際客戶關聯的一組字元;
例如,一個網站的建議可能看起來如下:
你可能對
Robert Heinlein
的書
The Moon is a Harsh Mistress
感興趣,因為你買
了以下書:
z
Full Moon
z
Star Wars: The Empire Strikes Back
z
The Shawshank Redemption
這些看似無關的書籍可能表明,顧客對某些話題有興趣,包括月球、外太空
的衝突、監獄裡的不公正等,所有這些可能在某種程度上受到
Heinlein
的書的影
響(順便說一下,
Heinlein
的書在
1967
年獲得了最佳科幻小說雨果獎)。如果想在
客戶買過的圖書和
Heinlein
的書籍之間建立一種模糊的聯絡,就需要做認真的計
算分析以及擁有豐富的資料來源。
全球最大的大資料分析使用者是美國政府, 他們用來輔助反恐行動(Global War on
Terrorism,
GWOT)。美國國家安全域性(US National Security Agency,
NSA)在發現可
能發生的恐怖襲擊事件中處於領先地位。它每年的機密預算據估計超過150
億美元,
其中絕大部分用於收集和分析各種大資料, 用於對抗
GWOT。 收集的資訊以及如何
進行大資料分析是超機密的,但是我們可以很合理地假設美國國家安全域性的專家們
使用多種人工智慧技術,他們中的許多人也是從事秘密人工智慧研究的專家。
本節結束了對人工智慧的介紹,雖然有點簡略。從第
2
章開始,我們著手對
特定的
AI
概念進行研究。
1.7
小 結
本章首先講解了人工智慧的歷史起源,從古代開始直到現代,人類花了很長
時間思考智慧機器的製造。直到最近,計算機才具備實現智慧行為的能力。
然後本章對人工智慧發展的經典方法和現代方法的區別進行了簡短的討論。
簡而言之,經典的方法是嘗試讓計算機模仿或模擬人腦,而現代的方法只是利用
計算機固有的速度和處理能力來實現人工智慧。本章還定義了其他術語,如廣泛
的人工智慧和狹義的人工智慧,強人工智慧和弱人工智慧。
對智慧本質作簡要探索是為了激發你的好奇心,並思考如何判別一個機器或
生物具有智慧。接下來是關於推理的簡短分析,其中包括一些例子,幫助我們在
人工智慧應用中體會推理的含義。
之後,本章介紹了人工智慧的分類,以說明當前人工智慧研究的主要應用領
域。在本書中,我們只講解了其中的一部分。
本章末尾介紹了人工智慧如何影響現代社會(尤其在處理大資料時)。
購買地址:
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/26421423/viewspace-2217195/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Raspberry Pi with Go langGo
- Pytorch入門演練PyTorch
- 電子創客案例手冊 Arduino和Raspberry Pi電子製作實戰UI
- [Raspberry PI 4B]where to find Rev num of a Raspberry PI 4B
- Gin實戰演練
- raspberry pi bookworm setting static ipWorm
- PyCharm使用技巧:Raspberry Pi的遠端開發PyCharm
- 張高興的 Raspberry Pi AI 開發指南:(二)使用 Python 和 HailoRT 進行實時目標檢測AIPython
- iOS 元件化 使用cocoapods整合實戰演練iOS元件化
- FreeBSD on Raspberry PI root, freebsd account password
- install java javac on kali linux, raspberry piJavaLinux
- Raspberry Pi 3簡明配置教程
- Raspberry Pi 400上安裝vscodeVSCode
- SAP PI入門
- [實戰演練]python3使用requests模組爬取頁面內容Python
- Raspberry PI:Shadowsocks+Polipo實現全域性科學上網
- Python人工智慧常用庫Numpy使用入門Python人工智慧
- Raspberry Pi 4B 安裝 CentOS 8CentOS
- crontab on raspberry pi, full path, not relative path, is needed.
- 《Flink入門與實戰》簡介
- Gulp4.0入門和實戰
- 十 | 門控迴圈神經網路LSTM與GRU(附python演練)神經網路Python
- ElasticSearch實戰系列六: Logstash快速入門和實戰Elasticsearch
- Python安裝與Pycharm使用入門PythonPyCharm
- 使用Pytorch訓練分類器詳解(附python演練)PyTorchPython
- 容災演練,一鍵切換,浙大二院實戰演練圓滿成功!
- Kubeflow實戰: 入門介紹與部署實踐
- WinForm企業級框架實戰專案演練ORM框架
- Known框架實戰演練——進銷存框架搭建框架
- 一、Python安裝與Pycharm使用入門PythonPyCharm
- Flutter+Dart入門與實戰套餐(全)FlutterDart
- 《Elasticsearch技術解析與實戰》Chapter 1.1:Elasticsearch入門和倒排索引ElasticsearchAPT索引
- Flutter 入門與實戰(五十五):和 Provider 一起玩 WebSocketFlutterIDEWeb
- Flutter 入門與實戰(四十三):setState 和 ModelBinding用法對比Flutter
- FreeBSD on Raspberry PI,首次執行pkg update出現bootstrap errorbootError
- Python網路爬蟲實戰(一)快速入門Python爬蟲
- podman 入門實戰
- Canal詳細入門實戰(使用總結)