1. 程式人生 > >什麽是AI、機器學習與深度學習?

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

編碼 com 說過 詳細 發的 apach 智能 ext 思路

什麽是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,一般人我不告訴他喔!

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