前言
在上篇文章末尾,我發起了一項投票,調查讀者對于人工智能的興趣程度,調查結果如圖所示:

60%的讀者表示對人工智能有極度興趣,40%的讀者對此略有興趣,
為了讓該系列的后續文章顯得通俗易懂,本篇文章將主要介紹人工智能的背景、發展,以及后面會出現到的一些術語,
人工智能是什么
進入正題,首先需要弄清人工智能是什么,
百科上對此的定義非常濃縮且枯燥,我們使用拆字法的方式可以更容易理解,人工智能可以拆解為“人工”+“智能”,即讓計算機完成原本只有人才能做的事情,
人工智能的涵蓋很廣,具體而言,主要可做下圖這樣的劃分,

- 最外層:人工智能與機器學習
從圖中可以看出,機器學習是人工智能的主要組成部分,其它部分包括一些計算智能的內容,本文我們主要討論的就是機器學習,在后面會做進一步理解,
- 第二層:機器學習與深度學習
機器學習有很多演算法,其中有一種演算法稱為神經網路,一個基礎的神經網路主要包含三部分內容,即輸入層,隱藏層,輸出層,而深度學習就是就是修改隱藏層的層數,讓其不斷加深,形成“更深”的神經網路,因此被稱為“深度學習”,(這里看不懂沒關系,后面會詳細討論神經網路)
- 第三層:深度學習與各領域
雖然圖上僅繪制了機器視覺和自然語言處理兩個普通領域,事實上還存在諸如推薦系統,語音識別等更多領域,這些領域既用到了深度學習的知識,也和其它科目有交叉,故人工智能是一門”交叉性“學科,
人工智能的起源與發展
大概有了人工智能的概念之后,再對人工智能的發展歷程做一個簡單的梳理,
人工智能的首次提出是在1956年的達特茅斯會議,之后,人工智能總共經歷了三起兩落,

大多數人(包括我)聽說人工智能這一概念都是來自于2017年AlphaGo與人類的圍棋對弈,而人工智能的發展卻已經經歷半個世紀,每次陷入低谷,基本上都是由于計算機硬體的不完善,人工智能要想比傳統模型有更好的效果,就必須依賴更多的資料,而更多的資料,則需要更好的計算機性能來做支撐,
計算機領域曾有一個著名的”摩爾定律“:當價格不變時,集成電路上可容納的元器件的數目,約每隔18-24個月便會增加一倍,性能也將提升一倍,換言之,每一美元所能買到的電腦性能,將每隔18-24個月翻一倍以上,當人工智能發展到2010年之后,以前提出的一些演算法終于能夠被更好的計算機來實作,人工智能從此進入一個新的增長期,
機器是如何進行學習的
下面開始進入機器學習的范圍,首先來理解”學習“的概念,
常言道,活到老,學到老,學習是伴隨人類一生的東西,或許你會認為學習耳熟能詳,上課,寫作業都是學習,但了解過機器學習后,或許你會對學習這個概念有個全新的認知,
前面說,人工智能是模擬人的學科,機器學習同樣也是如此,因此,想要理解機器是怎么學習的,可以先來考慮,人是怎么學習的,
現在,假如有一個嬰兒剛剛降臨到世上,你會如何教他認識東西?你可能會拿著一塊橡皮讓它看,然后告訴他,”這叫做橡皮“,然后過一段時間,再把其他不同的橡皮拿到他面前,他能夠說出”這是橡皮“,甚至它看到書上印著橡皮的形狀,也會辨識出這就是橡皮,再過一段時間,他學會了畫畫,讓他畫一個橡皮,他就能畫出類似橡皮的形狀,

也許你會覺得上面的例子非常幼稚,但每一句話都包括了機器學習的一個程序,
首先,當你拿起橡皮給他看,并告訴他,這是橡皮,這個程序在機器學習中,被稱為 有監督學習,即你不僅把資料(橡皮)輸入到了計算機內,并且告訴了它標簽(這是橡皮),就像老師監督著自己的學生學習一樣的模式,這個程序,稱為”模型訓練“,輸入的資料(橡皮),也被稱作訓練集,
之后,你把不同的橡皮拿給他看,卻不告訴他這是橡皮,而是考驗他是否知道這是橡皮,如果他說這是橡皮,那么測驗通過,如果他說這不是橡皮,那么測驗失敗,如果你給他很多個橡皮,他說部分是橡皮,部分不是橡皮,那么我們就可以用準確率來衡量這輪測驗的結果,即準確率=答對的個數/總個數,在機器學習中,這個程序被稱作“模型測驗”,這很多個橡皮被稱作測驗集,
現在,你已經形象地理解了什么是訓練集,什么是測驗集,有的時候,你還會在很多書里看到一個概念”驗證集“,驗證的作用主要是用來篩選/修改模型,還是拿上面這個例子來舉例,如果你在拿一堆橡皮(訓練集)訓練他時,不全部讓他過一遍,而是留出一部分來對他進行測驗,這部分就是驗證集,比如,你讓他看了五種牌子的橡皮,告訴他這些都是橡皮,這時候,你再給他看第六塊,然后讓他判斷是不是橡皮,如果他判斷錯誤,可能就是你的教學方式出現了問題,察覺到這一點,或許你就會更改你的教學方式,不僅是只簡單地告訴他這是橡皮,而是讓他反復端詳重復這個概念,從而讓他更好地學會辨識橡皮,

測驗的手段不僅只是一種,正如上面的例子,你不僅能通過把橡皮(當然這些橡皮是他之前沒見過的)拿到它前面進行測驗,也可以指著書本上橡皮的圖案對他進行測驗,如果他的辨認的準確度高,在機器學習上也可稱作該模型的泛化能力好,
在上面的程序中,我一直沒有強調模型的概念,通過整個訓練,驗證,測驗程序,你或許會認識到,所謂模型就像例子中的那個嬰兒,嬰兒學習到了如何辨識橡皮,就等同于模型學習了某個知識,該知識就是通過輸入的訓練資料探索出的某種規律,應用該規律,能夠對未知的類似事物進行識別,
過擬合&欠擬合
如果你沒被上面的例子繞暈的話,那么你對機器如何實作學習的程序有了充分的了解,現在我們來更進一步,評估一下學習的效果,上文提到,所謂學習,就是掌握知識,從輸入的訓練集中探索出某種規律,這個學習的程序也可稱作擬合,
我們拿一個簡單的曲線擬合的例子來舉例,假設輸入x代表的樣本點,一個好的擬合如圖所示,

藍色是擬合線,即學習探索出的規律,該規律能夠正確反映樣本點的分布,
這是最為理想的情況,更多的時候,由于我們把問題想的過于簡單,認為這些樣本點可以用一條直線來度量,即下圖的這種情況,

我們發現,雖然曲線擬合了樣本點的大致范圍,但是卻有很多樣本點發生偏離,這種情況也被稱為**“欠擬合”**,發生這種情況,說明我們學習的不夠,還有更多資訊沒有獲取到,
當然,如果達到了最佳擬合的狀況時,我們不及時停止,仍然繼續學習,這樣很可能導致過擬合,

如圖所示的這種情況,我們探索出的曲線不僅把每個樣本點都精準的探索了出來,然而也把樣本自帶的噪聲學習了進去,所謂噪聲,是指樣本點自帶的誤差,比如正確的規律是第一幅圖的曲線,樣本點由于自身誤差,在曲線周邊上下波動,這種波動本身是應該忽略的,是干擾資料,而過擬合卻把這干擾資料理解為有用的資料,這會導致再新來一個樣本點,這個樣本點會偏離這條曲線,在模型評估中,往往表現為訓練集準確率高,但測驗集準確率低,
我們該如何學習
如果上面的例子你沒看懂,下面將以更形象的方式來理解什么是過擬合和欠擬合,

現在從機器回到我們人自身,我們在學校上課就是一個學習的程序,我們學習知識,就是在大腦中找到一個規律,這個規律能夠正確地擬合課本/上課內容,如果上完課,對課堂講過的例題大致能理解,但面對課后習題,大腦空空無從下筆,這就是欠擬合,因此,我們需要重新回歸課本內容,再次進行學習,如果上完課,對課堂講過的例題學習得過于透徹了,以至于開始鉆牛角尖,面對課后習題,一樣的題目只是資料不一樣,又不會做,這就是發生了過擬合,這時候就要反思自己是不是沒掌握好學習方式,
某種程度上來說,人和機器一樣,在沒有生理缺陷/機器故障的情況下,任何人只要通過合適的方式都能掌握想學的知識,問題在于,不同人的學習速度不一樣,有的人看看課本就能搞懂,有的人聽了課還懵懵懂懂,這就可以通過機器學習中的學習率來進行解釋,由于該概念和機器學習中的梯度下降法有關,再次不做更深入的展開,后續文章會再會提及,
人工智能的瓶頸
雖然目前是人工智能的繁榮發展期,但人工智能仍然面臨著巨大的瓶頸,細心的讀者可能會發現,上面我舉的橡皮例子中,還有最后一個環節,嬰兒學會辨識橡皮之后,不僅僅能夠辨識橡皮,而且他能通過別人的語言描述來繪制橡皮,甚至發揮自己的想象力來對橡皮做一個全新的塑造,而這項“簡單”的能力對于計算機來說太難了,
前文說過,人工智能的本質就是“模仿”,然而計算機和人類大腦的底層邏輯是完全不一樣的,比如,我們思考問題從來不會意識到大腦此刻正在以某種特別的方式處理資訊,而計算機做計算時,卻仍在內部用二進制傳輸著資料,
目前的計算機仍堅持馮·諾伊曼結構,

該結構主要存在兩點缺陷:
1、將高維資訊的處理程序轉換成純時間維度的一維處理程序,其效率低、能耗高;
2、程式或資料往復傳輸的速率與中央處理器處理資訊的速率不匹配導致嚴重的存盤墻效應,
這就導致了計算機的效率遠遠低于人類,對人類來說,很簡單很容易學會的事情,對計算機來說可能需要頂尖硬體支持的計算訓練數十個小時,
學習人工智能,你會感受造物主的偉大,雖然AI在某一方面能夠擊敗人類,但它目前始終無法具備人類這樣的多重性和創造力,當你閱讀這段文字時,數以千計的神經元在你的大腦中進行興奮傳遞,而這種資訊傳遞的方式始終未能被成功破解,
或許有一天,類腦計算機出現重大突破,那么人工智能的瓶頸將被突破,繁榮與危機將同時降臨,
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/413645.html
標籤:其他
