什麼是 AI、機器學習與深度學習?

華為雲學院發表於2019-01-24

什麼是 AI、機器學習與深度學習?

大家好,我是楊鋒,作為一個大資料從業人員,相信大家整天都在被 AI、機器學習、深度學習等一些概念轟炸。有時候甚至有點誠惶誠恐,一方面作為一個“業內人士”而自豪,二方面覺得新概念一個接一個,自己不甚瞭解,有點恐懼。我一直相信一句臺詞——“喝了敵人的血,下次見面就不會再怕了”。學習知識亦然,很多時候,你覺得很高深,實際上是缺乏清晰的概念。當你真的把這些概念理清楚後,往往會恍然大悟,萬變不離其宗,原來不過如此。上網查了很多資料,很遺憾的是,99%的從業者語文都不怎麼過關,連基本的定義都不會下。一個簡單的“限定詞+更大的集合”的定義模式都沒有掌握,深表遺憾。於是還是決定自己來梳理一下吧。有高人說過(花錢買的):你對一個領域的理解程度,完全取決於你的頭腦裡有多少清晰的概念,以及能否把這些概念關聯起來。廢話少說,開始嘮吧。

人工智慧( Artificial Intelligence)是研究、開發用於模擬、延伸和擴充套件人的智慧的理論、方法、技術及應用系統的一門技術科學。我們來分解一下這個概念。“人工智慧”是“一門技術科學”,它研究與開發的物件是“理論、技術及應用系統”,研究的目的是為了“模擬、延伸和擴充套件人的智慧”。既然如此,那麼買菜用的“計算器”算是人工智慧嗎?嚴格地說是算的,因為它至少做了“模擬”人在計算方面的智慧,並擴充套件了這個能力(比人算得更快)。我們每天編碼驅動計算機去幫我們幹活,這個算是人工智慧嗎?也算的。所以,首先不用妄自菲薄,其實大家早已是“人工智慧”的從業者了。我們現在看到的貌似很高階的技術,如影像識別、NLP,其實依然沒有脫離這個範圍,說白了,就是“模擬人在看圖方面的智慧”和“模擬人在聽話方面的智慧”,本質上和“模擬人在計算方面的智慧”沒啥兩樣,雖然難度有高低,但目的是一樣的——模擬、延伸和擴充套件人的智慧。另外,人工智慧也不是啥新概念,事實上這是50年代提出的東西了(比你們老多了),現在這麼火熱,頂多只能算是“詐屍”,談不上“新生”。

隨著人對電腦科學的期望越來越高,要求它解決的問題越來越複雜,摧枯拉朽地打個小怪已經遠遠不能滿足人們的訴求了。1+1好算,1+2也不難,這些已經能解決的問題暫且按下不表。要解決的問題域越來越複雜,即使是同一個問題,其面對的場景也越來越多。我們總不能每新出來一種場景,就讓碼農去查詢switch,然後在default前去再加一個case吧;世間的場景千千萬,那得多少個case啊,殺個碼農祭天也保不齊會出問題啊。那怎麼辦呢?於是有人提出了一個新的思路——能否不為難碼農,讓機器自己去學習呢(提出這個概念的人一定做過碼農)?好吧,現在機器學習的定義就出來了。機器學習即不需要碼農新增case語句而讓機器自己學會執行任務的人工智慧技術。好像不太正規啊,好吧,再定義一下。機器學習就是用演算法解析資料,不斷學習,對世界中發生的事做出判斷和預測的一項技術。研究人員不會親手編寫軟體、確定特殊指令集、然後讓程式完成特殊任務;相反,研究人員會用大量資料和演算法“訓練”機器,讓機器學會如何執行任務。這裡有三個重要的資訊:1、“機器學習”是“模擬、延伸和擴充套件人的智慧”的一條路徑,所以是人工智慧的一個子集;2、“機器學習”是要基於大量資料的,也就是說它的“智慧”是用大量資料喂出來的,如果缺少海量資料,它也就啥也不是了;3、正是因為要處理海量資料,所以大資料技術尤為重要;“機器學習”只是大資料技術上的一個應用。常用的10大機器學習演算法有:決策樹、隨機森林、邏輯迴歸、SVM、樸素貝葉斯、K最近鄰演算法、K均值演算法、Adaboost演算法、神經網路、馬爾科夫。Apache有個開源項叫mahout,提供了這些經典演算法的實現;但是後來spark出來了,由於在記憶體迭代計算方面的優勢,一下子搶過了這個風頭,目前spark自帶的MLlib被使用得更為廣泛。雖然mahout也在向spark轉,但是在技術的世界裡就是這樣的,只有新人笑,哪聞舊人哭。

相較而言,深度學習是一個比較新的概念,算是00後吧,嚴格地說是2006年提出來的。老套路,也給它下一個定義。深度學習是用於建立、模擬人腦進行分析學習的神經網路,並模仿人腦的機制來解釋資料的一種機器學習技術。它的基本特點,是試圖模仿大腦的神經元之間傳遞,處理資訊的模式。最顯著的應用是計算機視覺和自然語言處理(NLP)領域。顯然,“深度學習”是與機器學習中的“神經網路”是強相關,“神經網路”也是其主要的演算法和手段;或者我們可以將“深度學習”稱之為“改良版的神經網路”演算法。深度學習又分為卷積神經網路(Convolutional neural networks,簡稱CNN)和深度置信網(Deep Belief Nets,簡稱DBN)。其主要的思想就是模擬人的神經元,每個神經元接受到資訊,處理完後傳遞給與之相鄰的所有神經元即可。所以看起來的處理方式有點像下圖(想深入瞭解的同學可以自行google)。

神經網路的計算量非常大,事實上在很長時間裡由於基礎設施技術的限制進展並不大。而GPU的出現讓人看到了曙光,也造就了深度學習的蓬勃發展,“深度學習”才一下子火熱起來。擊敗李世石的Alpha go即是深度學習的一個很好的示例。Google的TensorFlow是開源深度學習系統一個比較好的實現,支援CNN、RNN和LSTM演算法,是目前在影像識別、自然語言處理方面最流行的深度神經網路模型。事實上,提出“深度學習”概念的Hinton教授加入了google,而Alpha go也是google家的。在一個新興的行業,領軍人才是多麼的重要啊!

總結:人工智慧是一個很老的概念,機器學習是人工智慧的一個子集,深度學習又是機器學習的一個子集。機器學習與深度學習都是需要大量資料來“喂”的,是大資料技術上的一個應用,同時深度學習還需要更高的運算能力支撐,如GPU。

想要更詳細的瞭解,請訪問華為雲學院( edu.huaweicloud.com/courses/ ),課程獲取密碼,搜尋:機器學習或者深度學習或者 AI ,一般人我不告訴他喔!

相關文章