一文讀懂深度學習與機器學習的差異

2021-02-25 物聯網智庫

來源:信息化顧問團

物聯網智庫 整理髮布

轉載請註明來源和出處

-   【導讀】   -

如果你想讓自己弄清楚機器學習和深度學習的區別,閱讀該文章,將用通俗易懂的語言為你介紹他們之間的差別。

機器學習和深度學習變得越來越火。突然之間,不管是了解的還是不了解的,所有人都在談論機器學習和深度學習。無論你是否主動關注過數據科學和人工智慧,你應該已經聽說過這兩個名詞了。

為了展示他們的火熱程度,我在 Google trend 和百度上搜索了這些關鍵字:

下文詳細解釋了機器學習和深度學習中的術語。並且,我比較了他們兩者的不同,別說明了他們各自的使用場景。

什麼是機器學習和深度學習?  


讓我們從基礎知識開始:什麼是機器學習?和什麼是深度學習?如果你對此已有所了解,隨時可以跳過本部分。

什麼是機器學習?

一言以蔽之,由 Tom Mitchell給出的被廣泛引用的機器學習的定義給出了最佳解釋。下面是其中的內容:

「電腦程式可以在給定某種類別的任務 T 和性能度量 P 下學習經驗 E ,如果其在任務 T 中的性能恰好可以用 P 度量,則隨著經驗 E 而提高。」

是不是讀起來很繞口呢?讓我們用簡單的例子來分解下這個描述。

示例 1:機器學習和根據人的身高估算體重

假設你想創建一個能夠根據人的身高估算體重的系統(也許你出自某些理由對這件事情感興趣)。那麼你可以使用機器學習去找出任何可能的錯誤和數據捕獲中的錯誤,首先你需要收集一些數據,讓我們來看看你的數據是什麼樣子的:

圖中的每一個點對應一個數據,我們可以畫出一條簡單的斜線來預測基於身高的體重

例如這條斜線:

Weight (in kg) = Height (in cm) – 100

…這些斜線能幫助我們作出預測,儘管這些斜線表現得很棒,但是我們需要理解它是怎麼表現的,我們希望去減少預測和實際之間的誤差,這也是衡量其性能的方法。

深遠一點地說,我們收集更多的數據 (experience),模型就會變得更好。我們也可以通過添加更多變量(例如性別)和添加不同的預測斜線來完善我們的模型。

示例2:颶風預測系統

我們找一個複雜一點的例子。假如你要構建一個颶風預測系統。假設你手裡有所有以前發生過的颶風的數據和這次颶風產生前三個月的天氣信息。

如果要手動構建一個颶風預測系統,我們應該怎麼做?

首先我們的任務是清洗所有的數據找到數據裡面的模式進而查找產生颶風的條件。

我們既可以將模型條件數據(例如氣溫高於40度,溼度在80-100等)輸入到我們的系統裡面生成輸出;也可以讓我們的系統自己通過這些條件數據產生合適的輸出。

我們可以把所有以前的數據輸入到系統裡面來預測未來是否會有颶風。基於我們系統條件的取值,評估系統的性能(系統正確預測颶風的次數)。我們可以將系統預測結果作為反饋繼續多次迭代以上步驟。

讓我們根據前邊的解釋來定義我們的預測系統:我們的任務是確定可能產生颶風的氣象條件。性能P是在系統所有給定的條件下有多少次正確預測颶風。經驗E是我們的系統的迭代次數。

什麼是深度學習?

深度學習的概念並不新穎。它已經存在好幾年了。但伴隨著現有的所有的炒作,深度的學習越來越受到重視。正如我們在機器學習中所做的那樣,先來看看深度學習的官方定義,然後用一個例子來解釋。

「深度學習是一種特殊的機器學習,通過學習將世界使用嵌套的概念層次來表示並實現巨大的功能和靈活性,其中每個概念都定義為與簡單概念相關聯,而更為抽象的表示則以較不抽象的方式來計算。」

這也有點讓人混亂。下面使用一個簡單示例來分解下此概念。

示例1: 形狀檢測

先從一個簡單的例子開始,從概念層面上解釋究竟發生了什麼的事情。我們來試試看如何從其他形狀中識別的正方形。

我們眼中的第一件事是檢查圖中是否有四條的線(簡單的概念)。如果我們找到這樣的四條線,我們進一步檢查它們是相連的、閉合的和相互垂直的,並且它們是否是相等的(嵌套的概念層次結構)。

所以,我們完成了一個複雜的任務(識別一個正方形),並以簡單、不太抽象的任務來完成它。深度學習本質上在大規模執行類似邏輯。

示例2: 貓 vs. 狗

這個案例是構建一個能夠識別圖片中動物是貓或者狗的系統。

如果使用機器學習解決這個問題,首先要定義一些特徵,比如該動物是否有鬍鬚、耳朵;如果有耳朵,那麼耳朵是否是尖的。簡單地說,我們要定義面部特徵,然後讓系統識別出在動物分類中哪些是重要特徵。而深度學習會一次性完成這些任務,深度學習會自動找到對分類任務重要的特徵,而機器學習不得不人工指定。

深度學習工作流程如下:

1. 首先在圖片中找到和貓或者狗最相關的邊界;

2. 然後找到形狀和邊界的組合,如是否能找到鬍鬚和耳朵;

3. 在複雜概念的連續分層識別後,就能夠確定哪些特徵對識別貓狗起重要作用。

機器學習和深度學習的對比  

現在的你應該已經對機器學習和深度學習有所了解,接下來我們將會學習其中一些重點,並比較兩種技術。

數據依賴性

深度學習與傳統的機器學習最主要的區別在於隨著數據規模的增加其性能也不斷增長。當數據很少時,深度學習算法的性能並不好。這是因為深度學習算法需要大量的數據來完美地理解它。另一方面,在這種情況下,傳統的機器學習算法使用制定的規則,性能會比較好。下圖總結了這一事實。

硬體依賴

深度學習算法需要進行大量的矩陣運算,GPU 主要用來高效優化矩陣運算,所以 GPU 是深度學習正常工作的必須硬體。與傳統機器學習算法相比,深度學習更依賴安裝 GPU 的高端機器。

特徵處理

特徵處理是將領域知識放入特徵提取器裡面來減少數據的複雜度並生成使學習算法工作的更好的模式的過程。特徵處理過程很耗時而且需要專業知識。

在機器學習中,大多數應用的特徵都需要專家確定然後編碼為一種數據類型。

特徵可以使像素值、形狀、紋理、位置和方向。大多數機器學習算法的性能依賴於所提取的特徵的準確度。

深度學習嘗試從數據中直接獲取高等級的特徵,這是深度學習與傳統機器學習算法的主要的不同。基於此,深度學習削減了對每一個問題設計特徵提取器的工作。例如,卷積神經網絡嘗試在前邊的層學習低等級的特徵(邊界,線條),然後學習部分人臉,然後是高級的人臉的描述。更多信息可以閱讀神經網絡機器在深度學習裡面的有趣應用。

問題解決方式

當應用傳統機器學習算法解決問題的時候,傳統機器學習通常會將問題分解為多個子問題並逐個子問題解決最後結合所有子問題的結果獲得最終結果。相反,深度學習提倡直接的端到端的解決問題。

舉例說明:

假設有一個多物體檢測的任務需要圖像中的物體的類型和各物體在圖像中的位置。

傳統機器學會將問題分解為兩步:物體檢測和物體識別。首先,使用一個邊界框檢測算法掃描整張圖片找到可能的是物體的區域;然後使用物體識別算法(例如 SVM 結合 HOG )對上一步檢測出來的物體進行識別。

相反,深度學習會直接將輸入數據進行運算得到輸出結果。例如可以直接將圖片傳給 YOLO 網絡(一種深度學習算法),YOLO 網絡會給出圖片中的物體和名稱。

執行時間

通常情況下,訓練一個深度學習算法需要很長的時間。這是因為深度學習算法中參數很多,因此訓練算法需要消耗更長的時間。最先進的深度學習算法 ResNet完整地訓練一次需要消耗兩周的時間,而機器學習的訓練會消耗的時間相對較少,只需要幾秒鐘到幾小時的時間。

但兩者測試的時間上是完全相反。深度學習算法在測試時只需要很少的時間去運行。如果跟 k-nearest neighbors(一種機器學習算法)相比較,測試時間會隨著數據量的提升而增加。不過這不適用於所有的機器學習算法,因為有些機器學習算法的測試時間也很短。

可解釋性

至關重要的一點,我們把可解釋性作為比較機器學習和深度學習的一個因素。

我們看個例子。假設我們適用深度學習去自動為文章評分。深度學習可以達到接近人的標準,這是相當驚人的性能表現。但是這仍然有個問題。深度學習算法不會告訴你為什麼它會給出這個分數。當然,在數學的角度上,你可以找出來哪一個深度神經網絡節點被激活了。但是我們不知道神經元應該是什麼模型,我們也不知道這些神經單元層要共同做什麼。所以無法解釋結果是如何產生的。

另一方面,為了解釋為什麼算法這樣選擇,像決策樹(decision trees)這樣機器學習算法給出了明確的規則,所以解釋決策背後的推理是很容易的。因此,決策樹和線性/邏輯回歸這樣的算法主要用於工業上的可解釋性。

機器學習和深度學習應用場景  

目前機器學習的應用場景較多,而深度學習相對要少一些,Wiki上面介紹了一些機器學習的應用領域:

1.計算機視覺:如車牌號識別,人臉識別;

2.信息檢索:如搜尋引擎,文本檢索,圖像檢索;

3.營銷:自動郵件營銷,目標識別;

4.醫療診斷:癌症診斷,異常檢測;

5.自然語言處理:語義分析,照片標記;

6.在線廣告,等等。

往期熱文(點擊文章標題即可直接閱讀):

相關焦點

  • 人工智慧,機器學習和深度學習之間的差異是什麼?
    人工智慧,機器學習和深度學習都是屬於一個領域的一個子集。但是人工智慧是機器學習的首要範疇。機器學習是深度學習的首要範疇。深度學習是機器學習的一個子集,機器學習是人工智慧的一個子集這個領域的興起應該歸功於深度學習。人工智慧和機器學習這個領域近年來一直在解決一系列有趣的問題,比如從自動化的雜貨店購買到自動駕駛汽車。
  • 深度學習與機器學習:了解差異
    -------機器學習和深度學習都可以發現數據模式,但是它們涉及截然不同的技術機器學習和深度學習都是人工智慧的形式。準確地說,深度學習是機器學習的一種特定形式。機器學習和深度學習都從訓練和測試模型開始,並經過優化找到一個權重使模型效果更好。
  • 一文讀懂機器學習!
    01 機器學習分類傳統機器學習機器學習可以理解成是生產算法的算法。需要人來先做特徵提取,然後在把特徵向量化後交給機器去訓練。傳統機器學習分為 監督學習 和 無監督學習。深度學習深度學習是基於深度神經網絡的學習(DNN)。深度學習可以自動提取特徵。
  • 一文讀懂機器學習中的正則化
    一提到正則化,很多同學可能馬上會想到常用的L1範數和L2範數,在匯總之前,我們先看下LP範數是什麼鬼。範數簡單可以理解為用來表徵向量空間中的距離,而距離的定義很抽象,只要滿足非負、自反、三角不等式就可以稱之為距離。LP範數不是一個範數,而是一組範數,其定義如下:pp的範圍是[1,∞)[1,∞)。
  • 獨家 | 一文讀懂Adaboost
    想要了解更多集成學習的框架和模型,請關注我們後續系列文章。【集成學習】系列往期回顧:獨家 | 一文讀懂集成學習(附學習資源) 參考資料:1. 李航.《統計學習方法》2. 周志華.《機器學習》3.編輯:黃繼彥軒轅(筆名),數據派研究部志願者,清華大學研究生,喜歡機器學習、大數據相關話題。
  • 一文講清人工智慧、機器學習和深度學習的區別
    相信大家對人工智慧、機器學習和深度學習三個詞語並不陌生,最近研習社的資產配置系列也曾提及,那你認為,它們是一回事嗎?文章轉自丨PINTEC品鈦原文來自丨blogs.nvidia作者丨Micheal Copeland翻譯丨小羊還記得年初的那場人機大戰嗎?
  • 一篇文章讀懂:人工智慧、機器學習和深度學習的區別
    機器學習直接來源於早期的人工智慧領域,傳統的算法包括決策樹、聚類、貝葉斯分類、支持向量機、EM、Adaboost等等。從學習方法上來分,機器學習算法可以分為監督學習(如分類問題)、無監督學習(如聚類問題)、半監督學習、集成學習、深度學習和強化學習。
  • 科普|一文看懂人工智慧、機器學習和深度學習的區別
    編者按:我們在進行深度學習課程推廣時,經常有同學會問到這麼一個問題:人工智慧、機器學習和深度學習之間的關係是什麼?
  • 教程 | 一文讀懂自學機器學習的誤區和陷阱(附學習資料)
    建議在機器學習的過程中哪裡不會補哪裡,這樣更有目的性且耗時更低。1.2. 不要把深度學習作為入門第一課雖然很多人都是衝著深度學習來的,但把深度學習作為機器學習第一課不是個好主意。原因如下:更多討論可以看我的回答:深度學習的教學和課程,與傳統 CS 的教學和課程有什麼區別?
  • 一文讀懂機器學習
    本文轉載自公眾號 sigua心底的小聲音 ,數學系的一線小研發,更新數據結構和算法 | 深度學習
  • 【E課堂】一文讀懂深度學習
    Andrew Beam指出,即使數據集很小,一個適當訓練的深度網絡也能擊敗簡單的線性模型。如今,越來越多的生物信息學研究人員正在使用深度學習來解決各種各樣的問題,這樣的爭論愈演愈烈。這種炒作是真的嗎?還是說線性模型就足夠滿足我們的所有需求呢?結論一如既往——要視情況而定。在這篇文章中,作者探索了一些機器學習的使用實例,在這些實例中使用深度學習並不明智。
  • 機器學習和深度學習有什麼區別?
    在本文中,我們將研究深度學習和機器學習之間的差異。我們將逐一了解它們,然後討論他們在各個方面的不同之處。
  • AI | 怎樣快速入門機器學習和深度學習?
    編者按:入門機器學習和深度學習並不是一件容易的事情。需要學習大量的知識,初學者常常會迷茫不知所措。現在我們給你帶來一篇純乾貨,幫助你入門機器學習和深度學習。《PRML》:機器學習經典,貝葉斯經典。《神經網絡與深度學習》:邱老師的開源書(https://nndl.github.io/)3.
  • GitHub | 機器學習&深度學習&nlp&cv從入門到深入全套資源分享
    深度學習之目標檢測的前世今生(Mask R-CNN)深度學習目標檢測模型全面綜述:Faster R-CNN、R-FCN和SSD從RCNN到SSD,這應該是最全的一份目標檢測算法盤點目標檢測算法綜述三部曲基於深度學習的目標檢測算法綜述(一)基於深度學習的目標檢測算法綜述(二)基於深度學習的目標檢測算法綜述
  • 人工智慧、機器學習和深度學習的區別是什麼?
    「人工智慧」一詞最早由認知科學家約翰·麥卡錫在研究中提出,他寫到,「這項研究基於一種推測,即任何學習行為或其它智力特徵,在原則上都可以被精確地描述,從而可以製造出一臺機器來模擬它。」這種描述在今天仍然適用,只是複雜性增加了一些。
  • 一文讀懂深度學習中的各種卷積
    在這篇文章中,我會歸納總結深度學習中常用的幾種卷積,並會試圖用一種每個人都能理解的方式解釋它們。除了本文之外,還有一些關於這一主題的好文章,請參看原文。希望本文能幫助你構建起對卷積的直觀認知,並成為你研究或學習的有用參考。在信號處理、圖像處理和其它工程/科學領域,卷積都是一種使用廣泛的技術。在深度學習領域,卷積神經網絡(CNN)這種模型架構就得名於這種技術。
  • 一篇文章分辨人工智慧、機器學習與深度學習
    機器學習?深度學習?安全界用辭令人困惑,了解主要用語真正的意義,方可在信息安全的世界中遊走自如。在熱情的市場營銷人員口中,「人工智慧」、「機器學習」 和 「深度學習」 的定義變得模糊,明確性讓位於增加銷量的需要。客戶完全有可能遇到貼著多個此類標籤,卻幾乎不具備這些特性的產品或服務。
  • 乾貨分享 | 機器學習、深度學習、nlp、cv從入門到深入全套資源分享
    深度學習之目標檢測的前世今生(Mask R-CNN)深度學習目標檢測模型全面綜述:Faster R-CNN、R-FCN和SSD從RCNN到SSD,這應該是最全的一份目標檢測算法盤點目標檢測算法綜述三部曲基於深度學習的目標檢測算法綜述(一)基於深度學習的目標檢測算法綜述(二)基於深度學習的目標檢測算法綜述
  • 【深度學習】一文讀懂機器學習常用損失函數(Loss Function)
    理解:損失函數旨在表示出logit和label的差異程度,不同的損失函數有不同的表示意義,也就是在最小化損失函數過程中,logit逼近label的方式不同,得到的結果可能也不同。一、LogLoss對數損失函數(邏輯回歸,交叉熵損失)有些同學可能覺得邏輯回歸的損失函數就是平方損失,其實並不是。平方損失函數可以通過線性回歸在假設樣本是高斯分布的條件下推導得到,而邏輯回歸得到的並不是平方損失。
  • 機器學習和深度學習的 5 個關鍵區別
    儘管它們可能被稱為「智能,「有些人工智慧計算機系統不能自己學習;這就是機器學習和深度學習的用武之地。讓我們深入討論機器學習和深度學習到底是什麼,以及機器學習和深度學習的區別。什麼是機器學習?通過機器學習,計算機系統通過編程來學習輸入的數據,而不需要重複編程。