人類的智慧寬廣而復(fù)雜。有些人類成就遠(yuǎn)遠(yuǎn)超出現(xiàn)今機(jī)器可達(dá)的領(lǐng)域,要想讓機(jī)器觸及這些領(lǐng)域,還需要一段漫長的時(shí)間。對于解決抽象問題、概念生成、情緒知識、創(chuàng)造力甚至是自我認(rèn)知,即便是最強(qiáng)有力的深度學(xué)習(xí)算法,也無法在這些領(lǐng)域與人類智慧相提并論。
把所有這些認(rèn)知能力融合到一臺機(jī)器中,從而能夠應(yīng)對所有通用場景的人工智能稱為通用人工智能。目前,通用人工智能還停留在理論階段。
不過,當(dāng)前的技術(shù)在執(zhí)行特定類型任務(wù)方面取得了較大成功,這些任務(wù)過去都依賴于人類智力。我們稱這類人工智能為狹義人工智能或弱人工智能。弱人工智能主要指三種能力:學(xué)習(xí)、感知和認(rèn)知。
AI能力備忘單
上圖概述了本文介紹的AI的核心能力。
談到AI的時(shí)候,客戶們不停地在問:“這事兒成了嗎?”在一個(gè)AI被過度炒作的世界,確實(shí)很難分清AI是幻想還是現(xiàn)實(shí),是實(shí)際能力還是營銷表演。
所有這些能力在今天都是真實(shí)存在的。今天的AI是真實(shí)的,成千上萬的公司正在使用AI進(jìn)行業(yè)務(wù)轉(zhuǎn)型。關(guān)注AI未來的可能性固然重要,但是你更需要了解現(xiàn)在的AI能做些什么。
學(xué)習(xí)
學(xué)習(xí)——無顯式編程的學(xué)習(xí)
機(jī)器學(xué)習(xí)的首要特征就是隨時(shí)間學(xué)習(xí)的能力,并且不需要明確編程。和人類一樣,機(jī)器學(xué)習(xí)算法通過探索與實(shí)踐學(xué)習(xí),而不是遵循一步步的指令(當(dāng)然我知道有些讀者是小孩子的父母,有時(shí)候你們可不希望孩子們這樣)。
機(jī)器學(xué)習(xí)算法是按照學(xué)習(xí)方式分類的。當(dāng)下最流行的、你的企業(yè)90%的時(shí)間可能都會采用的技術(shù)就是有監(jiān)督學(xué)習(xí)。
有監(jiān)督學(xué)習(xí)使用包含輸入和期望輸出的數(shù)據(jù)集。通過迭代優(yōu)化,學(xué)習(xí)算法可以找到一個(gè)函數(shù),對輸入如何轉(zhuǎn)化為輸出進(jìn)行建模。這個(gè)模型會被應(yīng)用于訓(xùn)練集外的新的輸入,并預(yù)測對應(yīng)的輸出。
找到正確的算法和參數(shù),部分靠科學(xué),部分靠創(chuàng)造力和直覺。如何將機(jī)器學(xué)習(xí)應(yīng)用于這一過程本身就是個(gè)研究課題——這種技術(shù)稱為自動(dòng)化機(jī)器學(xué)習(xí)(AutoML)。
有監(jiān)督學(xué)習(xí)算法都有相同的缺陷:它們需要大量數(shù)據(jù)。而且不是任何數(shù)據(jù)都行,它們需要同時(shí)包含輸入和對應(yīng)輸出的訓(xùn)練數(shù)據(jù),也稱之為標(biāo)記數(shù)據(jù)。
有時(shí)我們會有在記錄系統(tǒng)或交互系統(tǒng)中存儲的已經(jīng)標(biāo)記過的歷史數(shù)據(jù)。例如,對于客戶流失模型——我們可以查看流失客戶的歷史數(shù)據(jù),加上客戶的歷史交互一起作為訓(xùn)練數(shù)據(jù)的輸出部分。通過使用正確的算法,我們僅僅通過查看一系列的交互,就能夠預(yù)測未來的客戶流失情況。
然而有時(shí)我們不會如此幸運(yùn),數(shù)據(jù)并不會被標(biāo)記。無監(jiān)督學(xué)習(xí)算法會處理一組沒有標(biāo)記的數(shù)據(jù)并找出其中的結(jié)構(gòu)。聚類算法是無監(jiān)督學(xué)習(xí)算法中最流行的一種,它通過不同的技術(shù),在數(shù)據(jù)中找到共性并對其分組。你可能使用這種算法對你的客戶群或網(wǎng)頁訪問者進(jìn)行客戶細(xì)分。
其他常用的無監(jiān)督學(xué)習(xí)算法有關(guān)聯(lián)規(guī)則(定義數(shù)據(jù)間的關(guān)聯(lián),如購買某種特定產(chǎn)品的用戶會對其他特定產(chǎn)品感興趣)和異常檢測(找出與主體數(shù)據(jù)不同的罕見或可疑部分?jǐn)?shù)據(jù))。
在其他情況下,我們完全不使用訓(xùn)練數(shù)據(jù)。想想人們?nèi)绾螌W(xué)會玩一款視頻游戲。解決這個(gè)問題的有監(jiān)督方法就是觀看成千上萬的游戲視頻并從中學(xué)習(xí)。這是許多Youtube播主的商業(yè)模式,我的孩子們就看這種視頻,但我發(fā)現(xiàn)這種方式極度枯燥。
一個(gè)更有趣的學(xué)習(xí)方法是實(shí)際上手玩這個(gè)游戲。在玩的過程中,如果我們做對了(比如得分)就會得到正向強(qiáng)化,如果我們做錯(cuò)了(比如被殺死)就會得到負(fù)向強(qiáng)化。強(qiáng)化學(xué)習(xí)算法就是這么做的:它們通過探索環(huán)境并強(qiáng)化正確的行為來學(xué)習(xí)機(jī)器學(xué)習(xí)的功能。
強(qiáng)化學(xué)習(xí)由于其不需要數(shù)據(jù)的特性,成為商業(yè)上一種極其有前途的機(jī)器學(xué)習(xí)方式。它特別適合自動(dòng)化系統(tǒng)——無論是移動(dòng)的(如車輛、遙控飛機(jī))還是靜止的(如空調(diào)系統(tǒng)、電力系統(tǒng))——同時(shí)也可以應(yīng)用于復(fù)雜的業(yè)務(wù)流程。強(qiáng)化學(xué)習(xí)通常被認(rèn)為是AI中最困難的學(xué)科。
感知
感知——解釋周邊世界
如果說有某個(gè)領(lǐng)域?yàn)槿祟愃?dú)有,那就是感知了。數(shù)十年來,我們嘗試模仿人類的能力去感知周圍的世界,卻鮮有成功。理解一幅圖畫或?qū)⒄Z音轉(zhuǎn)文字的復(fù)雜度使其幾乎無法用編程的方式實(shí)現(xiàn)——想象一下如何用一步步的指令來定義圖片里的一匹馬。
機(jī)器學(xué)習(xí)算法更適合解決這類問題。然而,傳統(tǒng)機(jī)器學(xué)習(xí)算法在處理感知任務(wù)時(shí)的準(zhǔn)確性與人類能做到的程度相去甚遠(yuǎn)(我仍然記得在Windows Vista上給開發(fā)們演示語音識別功能的情景……這件事教我學(xué)會要做個(gè)更堅(jiān)強(qiáng)的人?。?/p>
以圖像分類為例。ImageNet是圖像分類中最著名的挑戰(zhàn)。自2010年起,全球的參與者提交他們的算法來創(chuàng)建最精準(zhǔn)的模型。在競賽初期(即2010年),能達(dá)到的較好的誤差率約在25%左右。作為比較,同一數(shù)據(jù)集下人類對應(yīng)的誤差率約為5.1%。
到了2012年,Alex Krizhevsky(一位來自多倫多大學(xué)的學(xué)生)提交了他的方案:一個(gè)包含8層名為AlexNet的神經(jīng)網(wǎng)絡(luò)。AlexNet擊敗了其他競爭對手,達(dá)到了15.3%的誤差率—比僅次于他的競爭者低了10個(gè)點(diǎn)。
在接下來的數(shù)年內(nèi),他引入的技術(shù)被持續(xù)改進(jìn)并增加了更多層數(shù),直到2014年,一個(gè)名為GoogLeNet的22層神經(jīng)網(wǎng)絡(luò)達(dá)到了6.7%的誤差率。
次年,一個(gè)來自微軟研究院的團(tuán)隊(duì)提交了使用全新神經(jīng)網(wǎng)絡(luò)技術(shù)的作品,其神經(jīng)網(wǎng)絡(luò)的深度達(dá)到了超大的152層,誤差率僅為3.57%,首次超過了人類的表現(xiàn)。
深度學(xué)習(xí)永遠(yuǎn)地改變了計(jì)算機(jī)視覺。如今,這項(xiàng)技術(shù)實(shí)際上已經(jīng)被用于計(jì)算機(jī)視覺的所有高精度場景,這使其成為企業(yè)中最常見的用例。以下是一些計(jì)算機(jī)視覺在當(dāng)今的應(yīng)用:
為圖像的內(nèi)容分類(影像分類)
識別一幅圖像中的多個(gè)物體,并識別每個(gè)物體的邊界(物體檢測)
識別圖像中的場景或行為(如:工作場所的不安全情形,或零售商店的補(bǔ)貨)
檢測人臉,識別身份,甚至辨識每張臉的情緒
識別書寫文本,包含手寫體文本(光學(xué)字符識別)
鑒別圖像或視頻里的攻擊性行為
研究員Harold Stolovitch和Erica Keeps在他們的書Telling Ain’t Training(ASTD出版社)中斷言,我們獲取的信息中,有83%來自視覺,次之是聽覺,提供了11%的感覺輸入。兩者合起來占據(jù)了我們從外界獲取信息的94%。毫無疑問,音頻處理是人工智能關(guān)注的另一個(gè)較大領(lǐng)域,僅次于計(jì)算機(jī)視覺。
相似的深度學(xué)習(xí)技術(shù)可以應(yīng)用到音頻信號上,幫助計(jì)算機(jī)識別聲音。你可以利用這項(xiàng)能力區(qū)分鳥兒們的歌聲,或通過風(fēng)力渦輪機(jī)發(fā)出的聲音來預(yù)測故障。
不過人工智能在音頻處理方面最激動(dòng)人心的還是語音識別。用于語音識別的參照數(shù)據(jù)集被稱為總機(jī),它包含了約260小時(shí)的電話交談錄音。測量后人類的轉(zhuǎn)錄誤差率為5.9%。該誤差率在2016年被微軟研究院設(shè)計(jì)的神經(jīng)網(wǎng)絡(luò)追平,并于1年后被其以5.1%的誤差率擊敗。有史以來第一次,一臺機(jī)器可以比人類自身更好地理解人類。
這些突破不但讓機(jī)器更懂我們,而且使得機(jī)器可以用自然的方式與我們溝通。2018年,Azure上線了基于深度學(xué)習(xí)開發(fā)的文字轉(zhuǎn)語音服務(wù),該服務(wù)能夠合成出與真人無異的人聲。
這些能力的結(jié)合將實(shí)現(xiàn)計(jì)算機(jī)科學(xué)的法寶:全自然用戶接口(NUI)。機(jī)器既可以看見和理解人類,又可以用自然語言與人類交流,這看起來就像是我們已經(jīng)實(shí)現(xiàn)了科幻電影的幻想一樣。不過,我們真的做到了嗎?要與計(jì)算機(jī)進(jìn)行真正有意義的交流,計(jì)算機(jī)不但要能轉(zhuǎn)錄我們說的話,還要能理解話里的意思。
自然語言處理(NLP)是人工智能中從人類語言中分析、理解并提取含義的領(lǐng)域。NLP最常見的場景之一就是語言理解,語言理解是現(xiàn)代會話型人工智能體驗(yàn)(比如數(shù)字助理)的基礎(chǔ)。
當(dāng)你向Siri、Alexa或Cortana詢問天氣時(shí),系統(tǒng)首先將你的會話音頻轉(zhuǎn)換成文字,然后通過自然語言理解模型抽取出你的意圖,然后將意圖(如“獲取天氣”)映射到對應(yīng)輸出(在這個(gè)例子中,就是提供當(dāng)?shù)氐奶鞖庑畔ⅲ?/p>
NLP技術(shù)在過去幾年中飛速發(fā)展。有些只能處理簡單任務(wù),比如情緒分析、關(guān)鍵字抽取或個(gè)體識別,有些則可以處理更復(fù)雜的任務(wù),如文本歸納或翻譯。2018年,微軟的機(jī)器翻譯團(tuán)隊(duì)首次在自動(dòng)翻譯方面達(dá)到人類水平——這是個(gè)極度復(fù)雜的任務(wù),曾一度被認(rèn)為是不可能實(shí)現(xiàn)的。
自然語言理解最激動(dòng)人心的應(yīng)用之一便是機(jī)器閱讀理解。2018年1月,來自微軟亞洲研究院的團(tuán)隊(duì)使用斯坦福問答數(shù)據(jù)集(SQuAD)達(dá)到了人類的水平,該數(shù)據(jù)集由針對一組維基百科文章的問題所組成。實(shí)際上,有關(guān)這些文章的開放性問題,系統(tǒng)能夠給出比人類更好的答案。許多公司為之做出了貢獻(xiàn),幫助它走得更遠(yuǎn)。
盡管如此,這些系統(tǒng)仍然無法達(dá)到人類的抽象層次。在其核心,問答算法會搜索文本來尋找可以指向正確答案的線索。對于每個(gè)問題,系統(tǒng)都要搜索整個(gè)文本來匹配。人類也這么做(特別是當(dāng)我們很匆忙時(shí)),但是當(dāng)我們真正想理解一段文字時(shí),我們會從中抽取知識,進(jìn)行概括,并使其更易于理解。
想象一段描述加利福尼亞的文字。人類會從這段文字中歸納出“加利福尼亞”這個(gè)實(shí)體并給它賦予屬性(如人口、面積),甚至與其他實(shí)體的關(guān)系(如鄰州、地方長官)。歸納后,我們不再需要那段文字來回答關(guān)于加利福尼亞的問題。我們已經(jīng)概括了有關(guān)的知識。
人工智能中與此過程對應(yīng)的是知識抽取,其對企業(yè)有著深遠(yuǎn)的意義。通過使用這些技術(shù),我們可以從混沌、無序,甚至令人困惑的信息中抽取高階概念。結(jié)果知識圖不但能用于回答關(guān)于整個(gè)數(shù)據(jù)產(chǎn)業(yè)的寬泛問題,還能瀏覽和理解這些信息。
這種水平的抽象遠(yuǎn)遠(yuǎn)超出了傳統(tǒng)NLP的能力范圍,使其更接近我們所說的認(rèn)知。
認(rèn)知
認(rèn)知——基于數(shù)據(jù)進(jìn)行推理
嚴(yán)格來說,認(rèn)知是獲取和處理知識的能力。它包含人腦用于推理、理解、解決問題、計(jì)劃和決策的高層次概念。
我們目前探索的技術(shù)包含了一定程度的認(rèn)知,雖然有時(shí)不那么明顯。以圖像分類為例,如果我們仔細(xì)審視用于圖像分類的深度神經(jīng)網(wǎng)絡(luò),實(shí)際上就可以看出神經(jīng)網(wǎng)絡(luò)是如何在每一層將問題分解成更小的步驟的。
沒有人工干預(yù),神經(jīng)網(wǎng)絡(luò)自動(dòng)展示了某種程度的概括:第一層檢測簡單的特性,如邊緣或紋理。往更深層走,每一層都能夠抽取更復(fù)雜的屬性,如圖案或元素。某種意義上,神經(jīng)網(wǎng)絡(luò)已經(jīng)可以獲取一些知識并使用這些知識做一些基礎(chǔ)推理。
自然語言處理展示了類似的內(nèi)在抽象。在其核心,大部分現(xiàn)代的NLP技術(shù)都使用了被稱為詞嵌入的技術(shù)。通過詞嵌入技術(shù),文本中的每個(gè)詞都轉(zhuǎn)換為一個(gè)代表單詞含義的向量。在這個(gè)新的空間,語義相似的詞(如“天氣”和“預(yù)報(bào)”)彼此接近。
通過這種方式,系統(tǒng)會將“今天天氣如何?”和“獲取未來24小時(shí)的預(yù)報(bào)”匹配為相同的意圖。即使詞不同,它們的含義卻是相似的,因?yàn)樗鼈兊恼Z義相近。翻譯也是相同的工作原理:翻譯技術(shù)使用詞嵌入來抽象輸入的文本,將其轉(zhuǎn)換為與語言無關(guān)的“想法”,再用反向流程將其翻譯為任意一種語言。
在這些例子中,認(rèn)知是感知的內(nèi)在。然而,許多人工智能場景是單純的認(rèn)知。它們不專注于感知周圍的世界,而是專注于抽象這個(gè)世界并基于抽象進(jìn)行推理。一些最基礎(chǔ)的有監(jiān)督學(xué)習(xí)方法便是如此?;貧w分析是根據(jù)現(xiàn)有信息預(yù)測數(shù)值的能力,例如基于房屋的特征和位置評估其價(jià)值,或根據(jù)歷史數(shù)據(jù)預(yù)估其銷售額。
分類是根據(jù)物品自身特征對其分級或分類的能力,例如,判斷一棟房屋是不是會被出售給某個(gè)特定的買家。優(yōu)化算法則是基于流程進(jìn)行推論,從而最大化某個(gè)特定的結(jié)果,比如在醫(yī)院里分配資源。
推薦系統(tǒng)僅通過評分或購買習(xí)慣就能夠找出電影、書籍或歌曲等物品間不為人知的共性。其他技術(shù),如前所述,如聚類分析能找出數(shù)據(jù)中的模式,并以無監(jiān)督方式對物品歸類。
我們在強(qiáng)化學(xué)習(xí)技術(shù)中也能看到認(rèn)知能力。2017年,蒙特利爾微軟研究院(前馬魯巴島)跨越了100萬分大關(guān),創(chuàng)造了吃豆人游戲的新紀(jì)錄。該系統(tǒng)通過玩成千上萬把游戲來實(shí)現(xiàn)自我訓(xùn)練。
同樣地,在2018年,OpenAI Five(一個(gè)由五個(gè)神經(jīng)網(wǎng)絡(luò)組成的團(tuán)隊(duì))在Dota2游戲中打敗了人類隊(duì)伍。OpenAI Five通過自我對戰(zhàn)進(jìn)行訓(xùn)練,每天的訓(xùn)練量相當(dāng)于180年游戲時(shí)長。
最著名的例子應(yīng)該是由Google DeepMind取得的成就:其系統(tǒng)AlphaGo第一次擊敗了一位9段圍棋專業(yè)選手。相對于其他游戲(如象棋),圍棋被認(rèn)為是對電腦來說更為困難的游戲。
深入觀察所有AI系統(tǒng)參與的游戲,你會覺得它們展現(xiàn)出了認(rèn)知的另外一種特征——計(jì)劃。系統(tǒng)能夠提前“思考”最佳的方式來獲得長期看來最大化的分?jǐn)?shù)。