深度學習和普通的機器學習有什麼區別?


深度學習的概念

深度學習是神經網路的一個分支,深度學習的基本結構是深度神經網路。

深度神經網路是一種具備至少一個隱含層的神經網路。與淺層神經網路相比,深度神經網路也能為複雜非線性系統建模,但多出的層次為模型提供了更高的抽象層次,因而提高了模型的擬合能力。

  • 深度神經網路通常是前饋型神經網路。多層前饋型神經網路都是深度神經網路,但是深度神經網路不都是多層前饋型神經網路,因為深度神經網路還包含了遞歸神經網路和卷積神經網路等

  • 深度神經網路說的是一種結構,而不是一種演算法

淺層學習(Shallow Learning)和深度學習(Deep Learning)

前面講的神經網路是含有一個隱含層的多層感知機,這樣的模型是一種淺層模型。其他的常見淺層模型有:帶有一層隱含層的支持向量機、Boosting模型,沒有隱含層的邏輯回歸模型。相對於深度學習而言,淺層模型不需要太多的訓練技巧和方法,所以應用較快。

在深度學習中,有不止一層隱含層,所以在特徵抽取,隱含層的確定,多層訓練等方面都遇到了理論和應用的難題。

直到2006年,加拿大多倫多大學教授Hinton團隊在深度信念網路(Deep Belief Network,DBN),給出了以下結論:

  • 多隱層的人工神經網路具有優異的特徵學習能力,學習得到的特徵對數據有更本質的刻畫,從而有利於可視化或分類

  • 深度神經網路在訓練上的難度,可以通過「逐層初始化」(layer-wise pre-training)來有效克服,比如是通過無監督學習來實現逐層初始化

深度學習與神經網路

深度學習網路與神經網路的相同之處在於具有相似的分層結構,系統由包括輸入層、隱層(多層)、輸出層組成的多層網路,只有相鄰層節點之間有連接,同一層以及跨層節點之間相互無連接,這種分層結構比較接近人類大腦的結構。

神經網路和深度神經網路

傳統的的神經網路一般只有2-3層隱含層,參數和計算單元有限,對複雜函數的表示能力有限,學習能力也有限,而深度神經網路隱藏層層數可以達到5-10層,甚至更多,並且引入了更高效的演算法,深度神經網路的分層結構更接近於人類大腦的結構。

區別於傳統的淺層學習,深度學習的不同在於:

  • 強調了模型結構的深度,通常有5層、6層,甚至10多層的隱層節點

  • 明確突出了特徵學習的重要性,也就是說通過逐層特徵變換,將樣本在原空間的特徵表示變換到一個新特徵空間,從而使分類或預測更加容易

  • 與人工規則構造特徵的方法相比,利用大數據來學習特徵,更能夠刻畫數據的豐富內在信息


在了解機器學習與深度學習是什麼以及二者的區別之前,有必要對作為兩者背景的人工智慧做一個簡單介紹。人工智慧、機器學習與深度學習三者之間關係的最簡便方法就是將它們視覺化為一組同心圓——首先是最大的部分人工智慧——然後是後來興旺的機器學習——最後是促使當下人工智慧大爆發的深度學習——在最裡層。

人工智慧——機器詮釋的人類智能

自從 1956 年幾個計算機科學家在達特茅斯會議上聚集並開闢了人工智慧這一領域,人工智慧就進入了我們的想像,並在實驗研究中進行著醞釀。在過去的幾十年里,人工智慧以及輪番被譽為人類文明取得最美好未來的關鍵,或者是作為一個頭腦發燒的輕率概念被扔進了科技垃圾堆中。坦白說直到 2012 年,它就這樣在二者之間交雜。

回到 1956 年夏天的那場會議,人工智慧先驅們的夢想是藉由新興計算機構建具有人類智力特徵的複雜機器。這就是所謂的「通用人工智慧(General AI)」的概念——擁有人類的所有感覺(甚至可能更多)、所有理智,像人類一樣思考的神奇機器。你已經在電影中無休止地看到過這些被我們當做朋友的機器,比如《星球大戰》中的 C-3PO 以及成為人類敵人的機器——終結者。通用人工智慧機器向來有充足的理由出現在電影和科幻小說中;我們不能阻止,至少現在還不行。我們能做什麼?這就到了「狹義人工智慧(Narrow AI)」的概念。指的是能夠將特殊任務處理得同人類一樣好,或者更好的技術。狹義人工智慧的相關案例比如有 Pinterest 上的圖像分類、Facebook 中的人臉識別。

這些是狹義人工智慧在實踐中的例子。這些技術展示了人類智能的一些方面。但是如何做到的呢?那個智能來自哪裡?所以接下來看第二個同心圓,機器學習。

機器學習——實現人工智慧的一種方式

機器學習最基礎的是運用演算法來分析數據、從中學習、測定或預測現實世界某些事。所以不是手動編碼帶有特定指令設定的軟體程序來完成某個特殊任務,而是使用大量的數據和演算法來「訓練」機器,賦予它學習如何執行任務的能力。機器學習直接源自早期那幫人工智慧群體,演化多年的演算法包括了決策樹學習(decision tree learning)、歸納邏輯編程(inductive logic programming)。其他的也有聚類(clustering)、強化學習(reinforcement learning)和貝葉斯網路(Bayesian networks)等。我們知道,這些早期機器學習方法都沒有實現通用人工智慧的最終目標,甚至沒有實現狹義人工智慧的一小部分目標。事實證明,多年來機器學習的最佳應用領域之一是計算機視覺,儘管它仍然需要大量的手工編碼來完成工作。人們會去寫一些手寫分類器,像是邊緣檢測過濾器(edge detection filters)使得程序可以識別對象的啟止位置;形狀檢測(shape detection)以確定它是否有八條邊;一個用來識別單詞「S-T-O-P」的分類器。從這些手寫分類器中他們開發出能夠理解圖像的演算法,「學習」判定它是否是一個停止標誌。

這很好,但還不夠好。特別是有霧天氣標誌不完全可見的情況下,或者被樹遮住了一部分。計算機視覺和圖像檢測直到目前都不能與人類相媲美,是因為它太過脆弱,太容易出錯了。是時間和正確的學習演算法改變了這一切。

深度學習——一種實現機器學習的技術

源自最早進行機器學習那群人的另一種演算法是人工神經網路(Artificial Neural Networks),它已有幾十年的歷史。神經網路的靈感來自於我們對大腦生物學的理解——所有神經元之間的相互連接。但是不像生物大腦中的任何神經元,可以在一定的物理距離內連接到任何其他神經元,這些人工神經網路的層、連接和數據傳播方向是離散的。比如你可以把一個圖像切成一堆碎片並輸入到神經網路的第一層中。然後第一層的單個神經元們將數據傳遞給第二層。第二層神經元將數據傳給第三層,如此一直傳到最後一層並輸出最終結果。每個神經元分配一個權重到它的輸入——評估所執行的任務的準確或不準確。然後最終的輸出由所有這些權重來確定。所以想想那個停止標誌的例子。一個停止標誌圖像的特徵被切碎並由神經元來「檢查」——它的形狀、它的消防紅色彩、它的獨特字母、它的交通標誌尺寸以及和它的運動或由此帶來的缺失。神經網路的任務是判定它是否為一個停止標誌。這提出了一個「概率向量」,它真是一個基於權重的高度受訓的猜測。在我們的例子中,系統可能有 86% 的把握認為圖像是一個停止標誌,7% 的把握認為這是一個限速標誌,5% 的把握認為這是一隻被卡在樹上的風箏,等等——然後網路架構告訴神經網路結果的正確與否。甚至這個例子都有些超前了,因為直到現在,神經網路都被人工智慧研究社區避開了。自從最早的人工智慧起,他們一直在做這方面研究,而「智能」成果收效甚微。問題很簡單,即最基本的神經網路屬於計算密集型,這並不是一個實用的方法。不過,由多倫多大學的 Geoffrey Hinton 帶領的異端研究小組一直在繼續相關研究工作,最終在超級計算機上運行並行演算法證明了這個概念,但這是直到 GPU 被部署之後才兌現的諾言。如果我們再回到停止標誌的例子,當網路正在進行調整或者「訓練」時,出現大量的錯誤答案,這個機會是非常好的。它需要的就是訓練。它需要看到成千上萬,甚至數以百萬計的圖像,直到神經元的輸入權重被精確調整,從而幾乎每一次都能得到正確答案——無論有霧沒霧,晴天還是雨天。在這一點上,神經網路已經教會了自己停止標誌看起來會是什麼樣的;或者在 Facebook 例子中就是識別媽媽的臉;或者吳恩達 2012 年在谷歌所做的貓的圖片。吳恩達的突破在於從根本上使用這些神經網路 並將它們變得龐大,增加了層數和神經元的數量,然後通過系統運行大量的數據來訓練它。吳恩達使用了 1000 萬個 YouTube 視頻的圖像。他將「深度」運用在深度學習中,這就描述了這些神經網路的所有層。如今,在一些場景中通過深度學習訓練機器識別圖像,做得比人類好,從識別貓咪到確定血液中的癌症指標和磁共振成像掃描中的腫瘤指標。谷歌的 AlphaGo 學會了遊戲,並被訓練用於 Go 比賽。通過反覆與自己對抗來調整自己的神經網路。感謝深度學習,讓人工智慧有一個光明的未來。


機器學習是實現人工智慧的一種方式。在人工智慧的概念出現不久,Arthur Samuel在1959年創造了機器學習這個短語,將其定義為「沒有被明確編碼就具有的學習能力」。

所以,你可以在不使用機器學習的情況下獲得人工智慧,但這需要編寫數百萬行代碼,使用複雜的規則和決策樹。

深度學習是機器學習的許多方法之一。其他方法包括決策樹學習、歸納邏輯編程、聚類、強化學習和貝葉斯網路等。深度學習的靈感來自大腦的結構和功能,即許多神經元的互連。人工神經網路(ANN)就是模擬大腦生物結構的演算法。


假定大家都明白機器學習是什麼。你可能認為深度學習是機器學習的一個子集,想知道深度學習有哪些新穎之處。

答案是深度學習既是機器學習的子集又不是機器學習的子集。

簡要概括一下機器學習:

機器學習屬於計算機科學,是使用統計學或數學技術從利用觀察到的數據構建模型或系統,而不是用戶輸入定義該數據模型的特定指令集。

這個名字看起來比較高大上,但有時候基本的機器學習跟線性回歸一樣簡單。複雜一點的例子是用戶郵箱中的垃圾郵件檢測器,雖然用戶從來不對每種類型的電子郵件發出指示,但垃圾郵件檢測器會「學習」哪些電子郵件是垃圾郵件。

籠統地說,這些演算法最常用於從原始數據中提取精確特徵集。特徵可以非常簡單,例如圖像的像素值、信號的時間值,也可以複雜,例如文本的詞袋特徵表示。大多數已知的機器學習演算法跟表示數據的特徵一樣好用。正確的特徵識別是準確代表所有數據的狀態的關鍵一步。

特徵提取器的偉大之處在哪裡?

正確的特徵提取器本身就有很高的科技含量。大多數數據特徵提取器在功能和實用性上都非常特殊。例如:進行面部檢測所需的特徵提取器要具備能夠正確地表示面部組成、抵抗空間像差等功能包括。每種類型的數據和任務都有其的特徵提取類別,例如語音識別和圖像識別。

然後可以使用這些特徵提取器來提取給定樣本的正確數據特徵,並將該信息傳遞給分類器或預測器。

深度學習跟機器學習有哪些不同?

深度學習是廣義的機器學習的一部分,它試圖學習給定數據的高級特徵。因此,深度學習所解決的問題是減少為每種類型的數據(語音、圖像等)製作新的特徵提取器的個數。

再舉個例子,給深度學習分配識別圖像的任務,深度學習演算法會試著學習諸如雙眼之間的距離、鼻子的長度等特徵,然後用這些信息進行分類、預測等任務。這也是深度學習演算法比之前的「淺度學習演算法」更為先進之處。

如吳恩達教授所說,深度學習關注的是學習的原始目標,是人工智慧的理想演算法。

簡而言之:

如果你寫下如下的公式: F(1,2,3.......,100) = 5050 如果把這個公式輸入到機器學習演算法,那麼機器學習演算法就會像個孩子一樣立即把它理解為等號右邊是等號左邊所有數字的和。再給機器學習一串新的數字F(1,2,3 .......,500),機器學習就會把括弧裡面的所有500個數字累加起來求和。

但深度學習演算法會像卡爾·弗雷德里希·高斯一樣,把這串數字倒過來,就會發現兩列數字的第i個數字之和始終是相同的,最後再進行總體求和。


深度學習不同一般的關鍵在於更深的理解數據的含義。能夠將數據中直接可得的顯著的含義轉換到比較難得的高級的含義,甚至深層的含義。舉個例子,用機器學習的方法去理解一幅畫,初級的方法只能看到每個像素(最簡單最直接的含義或特徵),中級的方法可以看出裡邊有山有水(比較抽象的複雜的含義或特徵),高級的方法可以理解這幅畫的意境(非常隱晦的深層的含義或特徵)。


如果只能用一句話回答的話,區別在於深度學習實現了自動特徵提取。

數據和特徵決定了機器學習的上限,而模型和演算法只是去逼近該上限而已。

普通的機器學習也叫淺層學習,而深度學習是神經網路的一個分支,雖然理論還有待完善,但在圖像和語音等有大數據的領域,展現了非常強大的應用前景,可以說是項顛覆性的技術。


人工智慧(AI)是一個大概念,從有效的老式人工智慧(GOFAI)到聯結主義結構,無所不包。而機器學習(ML)則是人工智慧領域的一個小分支,如果說AI是一個合集,那麼ML就是AI的子集。任何通過數據訓練的學習演算法的相關研究都屬於機器學習,包括很多已經發展多年的技術,比如線性回歸(Linear Regression)、K均值(K-means,基於原型的目標函數聚類方法)、決策樹(Decision Trees,運用概率分析的一種圖解法)、隨機森林(Random Forest,運用概率分析的一種圖解法)、PCA(Principal Component Analysis,主成分分析)、SVM(Support Vector Machine,支持向量機)以及ANN(Artificial Neural Networks,人工神經網路)。而人工神經網路則是深度學習的起源。

目前深度學習的熱點主要是:我們已經擁有了可以商用的機器,只要給它們足夠多的數據和足夠長的時間,它們就能夠自己學習。這要麼是誇大了深度學習的現有技術水平,要麼就是將深度學習的實踐過於簡化了。在過去的幾年裡,深度學習產生了大量的想法和技術,這些在以前要麼是未知的,要麼是站不住腳的。起初,這些概念是碎片化而且毫無關聯的,但是隨著時間的推移,大量的模式和方法開始湧現,深度學習設計模式這一領域也變得熱鬧起來。

今天的深度學習不僅僅是具備多層架構的感知器,而是一系列能夠用來構建可組合可微分的體系結構的技術和方法。這些具有超強能力的機器學習系統只不過是我們目前所能看到的冰山一角。關鍵在於,雖然深度學習目前看起來像點金術,但是總有一天我們會學會如何像操控化學一樣操控它。有了這個基礎,我們將能夠更好的預測機器學習未來所能具備的能力。


機器學習和深度學習的目的都是對已有樣本進行分析,然後建立模型並對未來數據進行預測。兩者的區別在於:機器學習只能對分類較為常規的數據進行學習並建立一定的回歸模型,但是現實世界中很多數據樣本以及場景並非如此簡單,而是充滿了太多未知的噪音,所以深度學習就是通過更多層、更深的深度來精細化對噪音的處理,從而抽絲剝繭的對數據樣本細節進行處理,從而得到一個非直觀意義上的數據模型,最終對數據進行分類預測。可以說機器學習能做到的,深度學習也能做,而反過來不成立。深度學習所耗費的資源比機器學習太多,所以什麼時候採用機器學習,什麼時候採用深度學習,取決於場景和複雜度。既不要殺雞用牛刀,也不要子彈打飛機,多參考實際案例,自己也人工分類一把,看哪些機器學習就夠了,哪些需用深度學習。


  隨著人工智慧的興起,人工智慧(AI)正成為競爭遊戲規則的改變者,企業必須開始認真應對。

  現在不少人對人工智慧(Artificial Intelligence,簡稱 AI),機器學習(Machine Learning,簡稱 ML)和深度學習(Deep Learning,簡稱 DL)概念不清,有很多困惑。作為智能領域的從業者,必須非常清楚AI,ML和DL之間的區別。

  人工智慧(AI)是一個總括合集概念,涵蓋從最早的邏輯結構的有效老式人工智慧 (Good Old-Fashioned Artificial Intelligence,簡稱GOFAI),到最新的聯結結構的深度學習(DL)。

  機器學習(ML)是 人工智慧(AI)的子集,涵蓋一切有關數據訓練的學習演算法研究,包括多年來發展的一整套成熟技術,比如:

  線性回歸(Linear Regression,數理統計中回歸分析方法);

  K均值(K-means,基於原型的目標函數聚類方法);

  決策樹(Decision Trees,直觀運用概率分析的一種圖解法);

  隨機森林(Random Forest,包含多個決策樹的分類器);

  PCA(Principal Component Analysis,主成分分析,一種多變數分析方法);

  SVM(Support Vector Machine,支持向量機,一種監督式學習的方法);

  ANN(Artificial Neural Networks,人工神經網路,一種運算模型)。

  深度學習(DL)則起源於人工神經網路(ANN)。

  人工神經網路(ANN)是60年代早期發明的技術,一些機器學習(ML)從業者曾接觸過,他們對深度學習(DL)的第一印象可能是:這不過是多層結構的人工神經網路(ANN)而已。此外,深度學習(DL)的成功主要是基於大量可用的數據以及更強大的計算引擎比如 GPU(Graphic Processing Units)的出現。這當然是真的,深度學習(DL)的出現基本上是受益於大數據及計算能力的發展,然而,由此得出深度學習(DL)只是一個比支持向量機(SVM)或決策樹更好的演算法的結論,類似於只見樹木,不見森林。

  套用 Andreesen 的話「軟體正在接管世界」,那麼「深度學習(DL)正在接管機器學習(ML)」。兩篇來自不同機器學習領域從業者的文章很好的解釋了為什麼深度學習正在接管世界。

  人工智慧的自然語言處理(NLP)專家 Chris Manning 這樣形容「深度學習海嘯」:

  「 深度學習的浪潮幾年前就在計算語言學領域興起,2015年則是這場海嘯全面衝擊各大自然語言處理(NLP)會議的一年,一些權威專家預測,最終的衝擊將會更大。」

  Nicholas Paragios 則寫了一篇名為「深度失落——計算機視覺研究」的文章:

  「 如此失落是因為,深度學習具有高度複雜性和廣泛的自由度特性,一旦被賦予大量被標記的數據以及不可想像(直到最近出現)的計算能力,就能解決所有的計算機視覺問題。如果是這樣的話,那麼深度學習接管業界(似乎既成事實),計算機視覺研究成為邊緣學科並走上計算機圖形的老路(學術研究的活躍度和數量)將只是時間問題。」

  這兩篇文章都強調了深度學習(DL)如何自根本上對傳統機器學習(ML)的顛覆。當然,深度學習(DL)在商用領域也帶來同樣的顛覆。但是讓人震驚和困惑的是,即使 Gartner 也沒能分清機器學習(ML)和深度學習(DL)之間的差別。這是 Gartner 於 2016 年 8 月份發布的行業發展周期圖(Hyper Cycle),深度學習甚至沒有被提及:

  這很糟糕,會造成一些客戶對機器學習(ML)的短視,並對深度學習(DL)視而不見。

  儘管被 Gartner 忽視了,深度學習(DL)依然持續受追捧。當前對深度學習的追捧主要是:我們已經擁有了可以商業化的機器,只要給予足夠多的數據和足夠長的訓練時間,機器就能夠自主學習。這要麼是對深度學習(DL)現有技術能力的誇大,要麼就是對深度學習(DL)的實踐過度簡化。


推薦閱讀:

機器學習(5)主成分分析法PCA
COLING 2018-最新論文最全分類-整理分享
NLP系列學習:命名實體識別(一)
【第5集更新】給妹子講python第三季-python講線代
一位藝術家眼中的GAN:它給予我更多靈感

TAG:深度學習 | 機器學習 | 演算法 | 科技 |