官术网_书友最值得收藏!

  • 漫畫圖解人工智能
  • (法)尼古拉·薩布雷文 利澤特·德阿西斯繪
  • 4705字
  • 2021-06-07 15:47:30

什么是人工智能?

本章將帶領我們了解什么是計算機、算法和程序,特別是人工智能程序。

什么是人工智能?在討論機器是否有將人類變成圈養的奴隸的風險之前,也許我們需要問問自己人工智能到底是什么。讓我們首先明確一點:人工智能并非在尋求將計算機智能化。計算機是機器,它們只是簡單地執行人類要求它們執行的工作而已。

計算機科學和計算機

要完全理解計算機能做什么,不能做什么,首先必須理解什么是計算機科學。讓我們就從這里開始。

計算機科學是信息處理的科學,用來設計自動處理各種信息(數字、文本、圖片等)的機器。

首先從計算器開始。當時處理的信息包括數字和一些待執行的操作。例如:

346 + 78 = ?

然后,就像史前工具一樣,一步一步向前發展,處理的信息變得越來越復雜。從數字到單詞,再到圖片,最后到聲音。今天,我們知道如何制造可以聽取人類命令(待處理的“信息”)的機器以及可以利用聽到的信息執行人類要求的操作的機器。例如就像您向您的蘋果手機提問的時候:“Siri,告訴我跟醫生預約的時間是幾點?”計算機就是處理這些信息的機器。

計算機和算法

為了處理信息,計算機應用了一種被稱為“算法”的方法。讓我們嘗試著了解一下它是什么。在上學的時候,您已經學會了如何做加法:必須將數字排成列,每個數位必須對齊;然后計算每一個數位的總和。如果個位有進位,您需要把它記錄下來并且加在十位數上,以此類推得到最終的答案。

這種方法就是一種“算法”。

算法就是數學的烹調菜譜:比如炒蛋需要把雞蛋打碎倒進碗里,進行充分攪拌,然后倒入長柄平底鍋……算法也是同樣的道理。就像一本烹飪食譜中炒蛋的烹調步驟一樣,您可以將描述任何一種信息處理方式的算法寫出來,例如如何做加法。因此我們可以對這些算法進行學習并加以應用。

在計算器中,我們將算法轉換成一套電子線路。然后,我們就獲得了一臺能夠在給出兩個數字的情況下,計算并顯示其相加結果的機器。這三個概念(烹調菜譜、算法和執行算法的電子機器)或多或少有點兒復雜,但是我們已經掌握得很好了:廚師知道如何編寫和按照烹調菜譜做菜;計算機科學家知道如何編寫算法;電子工程師知道如何構建計算器。

算法和計算機科學

計算機科學的中心思想就是算法本身,即信息。

你能想象用數字或機器可以解釋的其他符號形式描述加法的配方嗎?

讓我們想象一下,能用數字或者機器可以解釋的其他符號形式。然后再想象一下,我們要建造的這臺機器,它不是計算器,它比計算器稍微復雜一些,我們可以向其提供兩個數字和我們編寫的加法算法。這臺機器需要能夠“解碼”算法并執行其描述的操作。這樣會發生什么呢?

您可能會對我說:“好吧,是的,它會做加法了,可然后呢?”然后,就像計算器可以用來對任意數字進行加法運算一樣,這臺用于解碼算法的機器也可以配合任何其他的算法一起使用,例如乘法運算!現在,就是見證奇跡的時刻,我們可以使用一臺機器同時進行任意的加法和乘法!

天哪,我感覺激動得不行了……做加法和乘法,雖然這在您看來可能并沒有什么特別之處。但是查爾斯·巴貝奇提出的這個絕妙主意就是計算機的起源!計算機是根據在物理介質(一般情況下就是提供數據的介質)上編寫的整套指令處理物理介質上提供的數據的機器(例如一張打孔的卡片、一盤磁帶、一張數碼光盤):它是一臺執行算法的機器!

一臺萬能的機器

艾倫·圖靈在1936年提出了計算機的數學模型:著名的圖靈機。每臺圖靈機上有一條紙帶,紙帶上可以寫上符號。為了更好地向您展示這個東西,您可以想象一個35毫米的電影膠卷,上面都是一個一個的小格子,您可以在每個格子里面放上一張照片。在圖靈機上,我們不是使用照片,而是一個一個的字母,也就是一個符號的清單(比如說,0和1就是計算機科學家們最喜歡的符號)。每個格子里只能寫一個符號。

為了使圖靈機可以正常運行,您需要像下面這樣對編號的指令集進行定義:

指令編號為1267:

符號0 → 向右移動一個空格,跳轉至指令3146

符號1 → 寫0,向左移動一個空格,重新開始指令1267

圖靈機會分析當前格子里包含的符號,然后執行相關的指令。

這個原理有點兒像以您為主角的書:請注意,您已經拿起了一把劍,然后翻到第37頁。可以拿來對比的就只有這一點。與您是主角的那本書的讀者不同,機器不會選擇打開箱子或進入龍的巢穴:它只執行這本書的作者寫在頁面上的內容,而不會做任何決定。

它完全遵循算法中編寫的內容。

艾倫·圖靈證明了他的“機器”可以復制任何一種算法,無論有多么復雜。然而,更確切地說,計算機的工作方式完全和圖靈機一模一樣:計算機有一個存儲器(相當于圖靈機的“紙帶”),它可以通過電子線路讀取存儲器格子里的符號,然后執行其定義的指令。因此,從理論上來說,計算機就是一臺可以執行任何算法的機器。

生成程序的程序

我們總結一下,計算機是一臺帶有存儲器的機器,存儲器中寫入了兩種東西:數據(更通常來說是信息,這也是信息科學這個名稱的來源)和由特定語言編碼的算法,算法用來定義對這些數據的處理。用機器可以翻譯的語言編寫的算法被叫作計算機程序,當機器執行算法中描述的操作時,我們稱之為計算機正在運行該程序。

我們已經在圖靈機的例子中看到,比起簡單地“將數字排列然后計算其總和”,編寫一個程序要復雜得多。它看起來更像是這樣:

取第一個數字的最后一位

取第二個數字的最后一位

計算總和

記錄“總和”單元格里的最后一位數字

記錄“進位”單元格里前面的數字

重新開始計算前一數列

機器需要執行的操作必須按照一個步驟接一個步驟的過程,非常精確地被描述出來,而且只能使用這些小型電子計算器可以執行的操作來描述。因此,通過這種方式編寫的算法是非常有局限性的……

計算機科學家們因此發明了一些語言和用來翻譯這些語言的程序。例如,我們要求機器將“+”這個符號轉換成上面描述的一系列操作。

這樣就可以讓編寫程序變得更加簡單,可以重復使用已經編寫好的程序去編寫更為復雜的程序。就好像原始人使用史前工具制造工具那樣!一旦有了輪子,您就可以制造獨輪車,然后如果有時間和精力的話,您甚至還能制造一個可以生產輪子的機器。

那這里面的人工智能是什么呢?

人工智能就是編寫特定的程序。

根據20世紀50年代人工智能創始人之一馬文·明斯基的觀點,人工智能是“專注于構建計算機程序的計算機科學,主要致力于編寫可以完成目前人類更加勝任的工作的計算機程序,因為這些工作需要一些高級的思維過程,比如:知覺學習、組織記憶和批判性推理”。

它通過編寫程序來執行之前人類最為擅長的信息處理任務,因此,我們應該稱之為“一個人工智能程序”,而不是“一個人工智能”。

現在有很多通過人工智能程序解決此類信息處理任務的例子:比如精通國際象棋、預測明天的天氣、為“美國第五任總統是誰”的問題搜尋答案,等等。所有這些可以通過機器完成的事情都依賴于人工智能衍生的方法和算法。因此,關于人工智能的所作所為,無關神奇也無關智能:僅僅是機器應用由人類編寫的算法而已。如果說有智能,也只是程序員的智能為機器提供了正確的指令。

機器會學習嗎?

顯然,編寫一個人工智能程序并不是件簡單的事情:需要編寫一些指令,保證在無論提供什么數據的情況下都能獲得一個看起來很“智能”的回答。因此,計算機科學家通常會使用一些復雜的程序,這些程序可以自動從數據中計算出“正確”的答案,而不是手工編寫指令的詳細信息。就像做飯一樣,我們嘗試著使用機器來簡化編寫程序。這個原理是人工智能技術的核心,被稱為“機器學習”。

這個名稱曾經在計算機科學家和人工智能用戶之間引起了一個巨大的誤解。顯然,這并不是指把程序拋棄在大自然中要求它們自己想辦法解決!我們只是簡單運用計算機的一個屬性:這些數據的處理方式(例如如何進行加法運算)是通過一個程序來定義的,而這個程序本身就是提供給機器的一種數據。因此,這個數據自身是可以通過另外一個程序進行修改或重新創建的。

因此您可以編寫程序,這些程序可以根據數據生成新的人工智能程序。

服從命令吧,我真心希望!

一切就是這么發生的,就好像在以您為主角的那本書中,作者要求您用其他單詞替換某些單詞來重寫頁面內容,或者在書末尾的空白頁面上寫新的語句。計算機可以操縱這些信息,無論是數據還是程序本身,都可以由程序進行修改。

但這些改變都是通過遵循算法的指令來完成的。一個程序不可能生成任何程序。它只能生成它被編寫用來生成的程序。如果啟動程序沒有給出正確的指令,“結果程序”就很可能包含著錯誤,這樣的話也就無法執行任何哪怕最簡單的“智能”處理。讓我們再次以您為主角的書為例:如果作者的指令是將所有的“e”替換為“w”,那么在頁面應用該指令之后,您就幾乎沒有可以繼續冒險的機會了!

同樣也需要記住,您的學習程序是否能夠執行操作生成處理程序,始終取決于其接收到的數據。在這本以您為主角的書里,有一個這種類型的指令:“尋找您拿起的第一個東西的第一個字母”。所做的修改都取決于接收到的數據(在這里,數據就是您選擇第一個拿起的東西)。顯然,如果數據選擇不當,那么生成的程序也不會很有效。

因此,只有當提供了正確的數據和指令之后,使用機器學習的人工智能程序才可能生成一個“正確”的程序。所有這些都不是單獨工作的!

注意:一個程序可以隱藏另外一個程序!

我們還沒有準備好看到計算機自己編寫程序來解決超出其功能范圍之外的問題。這實在太難了:一個程序的正常運行需要太多不同的數據,需要設定太多的規則。可以解決所有問題然后沖一杯咖啡作為自我獎勵的人工智能程序并不存在,因為,確切來說,每個問題都需要一個特定的程序和與之相應的數據。

為了編寫AlphaGo這個冠軍程序,Google的工程師們需要編寫第一個程序來觀察無數局的圍棋游戲,然后根據這些數據生成第二個程序,使其能夠在每種情況下提供最佳的落子位置。這需要長達數年的工作!而且需要向這個程序提供正確的信息,使其可以在這些數據的基礎上進行學習。

而獲取的結果是特別適用于圍棋游戲的:您不能直接重復使用它來玩另外一個游戲。當然您可以調整分析程序,使其可以構建另一個程序,然后可以根據其他數據為國際象棋或西洋棋提供最佳的落子位置。但這需要計算機科學家們研究編寫程序并對其進行修改、定義國際象棋游戲的規則并解釋如何分析與圍棋棋盤完全不同的國際象棋棋盤。您的程序不能獨立地改變自己從而產生某些智能化的東西。

難道我們期望一輛賽車能夠打雞蛋和洗衣服嗎?

那么,究竟什么是人工智能呢?

為了理解什么是人工智能,讓我們一起來看一下編寫人工智能程序所使用的不同方法。

所有的這些方法都是基于算法的,有時候很容易理解,但通常都是很難實現的。我們將看到,針對需要人類推理能力的不同任務,如何發明出使其有機會變得自動化的方法。我們同樣可以看到這些方法有時候和一個相對理性的人在相同情景下做出的反應截然不同。因此,正如馬文·明斯基所說,這只是編寫一些“可以完成目前人類更加勝任的工作的計算機程序”。而不是“像人類一樣”去完成工作。

馬文·明斯基對人工智能的定義也挺令人掃興的。它從一開始就設定了人工智能的界限。如果機器可以和人類一樣完成一項任務,那它就不再是人工智能了。這也是事實:全球定位系統導航出拜訪住在康塔爾的奶奶的最佳路線,精確得就像它在那里度過了童年時代一樣,不會有人覺得這有多了不起。但是,這就是人工智能。

當然也有其他一些針對人工智能的定義。1979年1月出版的《研究》雜志第96期提出的觀點就很有意思:它斷言,“人工智能旨在研究一些可能的方法,這些方法可以賦予計算機系統與人類智力相提并論的功能”。于是,我們再次陷入幻想:究竟是不是能賦予機器與人類相近的智力呢……

這是一個非常宏偉的目標,會令人產生很多聯想,這也是它令人興奮的原因。

而真正的問題是我們可以朝這個方向走多遠……

主站蜘蛛池模板: 建阳市| 阜康市| 大埔县| 汨罗市| 花莲县| 芮城县| 义乌市| 修文县| 鄂温| 象州县| 鹿邑县| 商水县| 永和县| 磴口县| 紫阳县| 黄陵县| 浦县| 建宁县| 阿拉善左旗| 通榆县| 游戏| 同心县| 米易县| 太仆寺旗| 青浦区| 河北区| 平凉市| 山东省| 靖远县| 清水河县| 什邡市| 喀喇沁旗| 仙桃市| 漠河县| 惠东县| 盐池县| 天镇县| 龙海市| 临海市| 樟树市| 焦作市|