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

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

為了展示他們的火熱程度,我在 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狗

我們舉一個動物辨識的例子,其中我們的系統必須識別給定的圖像中的動物是貓還是狗。閱讀下此文,以瞭解深度學習在解決此類問題上如何比機器學習領先一步。

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

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

數據依賴性

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

硬體依賴

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

特徵處理

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

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

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

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

問題解決方式

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

舉例說明:

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

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

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

執行時間

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

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

可解釋性

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

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

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

機器學習和深度學慣用於哪些領域?

維基百科上關於機器學習的文章概述了所有使用機器學習的領域。這些包括:

  • 計算機視覺 用於車牌識別和麪部識別等的應用。
  • 信息檢索 用於諸如搜索引擎的應用 - 包括文本搜索和圖像搜索。
  • 市場營銷 針對自動電子郵件營銷和目標羣體識別等的應用。
  • 醫療診斷 諸如癌症識別和異常檢測等的應用。
  • 自然語言處理,如情緒分析和照片標記等的應用。

上圖恰當地總結了機器學習的應用領域,涵蓋了整個機器智能的更廣泛的話題。

使用機器學習/深度學習的公司的一個主要例子是Google。

在上圖中,你可以看到 Google 正在將機器學習應用於其各種產品。機器學習/深度學習的應用是無盡的 - 你僅需尋找正確的時機!

突擊測試

為了評估你是否真的瞭解這個區別,我們將進行一次測驗。 你可以在這個帖子中發布你的答案。

請務必涉及以下步驟,以保證是完整的對各個場景進行回答。

  • 你將如何使用機器學習解決以下問題?
  • 你如何使用深度學習解決以下問題?
  • 結論:哪種方法是更好的?

場景1

你必須建立一個用於自動駕駛車輛的軟體組件。你構建的系統應該從相機中獲取原始像素數據,並預測你應該引導車輪的角度是多少。

場景2

給定一個人的信用和背景信息,你的系統應該評估出此人是否應該有資格獲得貸款。

場景3

你必須創建一個可以將俄語消息翻譯成印地語消息的系統,以便俄語代表能夠與當地的羣眾通信。

在此找到針對上述問題的各種數據科學家的討論記錄和觀點。

未來發展趨勢

本文概述了機器學習和深度學習及其差異。在本節中,我將分享我對機器學習和深度學習未來發展的觀點。

  • 首先,隨著業內對數據科學和機器學習使用的日益增長的趨勢,對於每個想要生存下來的公司來說,重視機器學習將變得非常重要。蘋果正在 iPhone X 中使用機器學習,這標誌著這項技術的發展方向。
  • 深入學習讓我們每天都感到驚訝,並將在不久的將來繼續如此。這是因為深度學習是被證明為最先進的性能最好的技術之一。
  • 針對機器學習和深度學習的研究將是持續的。但與前幾年的研究僅限於學術界不同的是,機器學習和深度學習方面的研究將在業界和學術界都有爆髮式的發展。而且擁有比以往更多的資助,更有可能成為人類整體發展的主旋律。

:本文轉載自開源中國,譯文出處一文讀懂深度學習與機器學習的差異,英文原文Deep Learning vs. Machine Learning,Tocy、 rever4433、soaring、mskf等人參與翻譯。做一隻勤勞的IT乾貨搬運工,只為成就更好的你!


摘要:來看看我們分析的和您想的是否一致。

本文在透徹剖析深度學習及機器學習的同時,就多方面對兩者進行比較,進而探究其未來的發展趨勢。

深度學習及機器學習

A. 機器學習

機器學習是人工智慧技術的補充,有如下幾種常用演算法:

  1. Find-S
  2. 決策樹
  3. 隨機森林演算法
  4. 神經網路

機器學習演算法通常分為以下三大類:

  1. 有監督學習:需要從有標籤的數據中學到或者建立一個模式。
  2. 無監督學習:數據是無標籤的,機器學習演算法需要先將數據分類,然後對數據結構進行描述,使複雜的數據看起來簡單,以便進行後續分析工作。
  3. 強化學習:與監督學習相似,通過不斷地探索學習,從而獲得一個好的策略。

B. 深度學習

機器學習更多關註解決現實世界的問題,與人工智慧技術有異曲同工之妙。機器學習則是通過模擬人類決策能力的神經網路找出問題解決方法。深度學習可看作是特殊的機器學習,我們可以利用深度學習來解決任何需要思考的問題。

深度神經網路由三種類型的層組成:

  1. 輸入層
  2. 隱藏層
  3. 輸出層

C.深度學習VS機器學習

我們使用機器學習演算法解析數據,並根據從數據中學習到的知識做出決策。深度學習利用各個層組合創建人工「神經網路」,它能夠智能地學習和做出決策。深度學習可以說是機器學習的子領域。

D. 深度學習和機器學習區別

1. 數據依賴

深度學習與機器學習的主要區別是在於性能。當數據量很少的時候,深度學習的性能並不好,因為深度學習演算法需要大量數據才能很好理解其中蘊含的模式。

2. 硬體支持

深度學習演算法嚴重依賴高端機,而傳統的機器學習演算法在低端機上就能運行。深度學習需要GPUs進行大量的矩陣乘法運算。

3. 特徵工程

特徵工程就是將領域知識輸入特徵提取器,降低數據複雜度。從時間和專業性來講,這個過程開銷很高。

4. 解決方案

通常,我們使用傳統的演算法解決問題。這需要將問題化整為零,分別解決,得到結果後再將其進行組合。

示例:

假設我們需要對多個目標進行探測,識別這些目標都是什麼,確定它們在圖片中的位置。利用機器學習演算法,我們可將該問題分為兩個部分:

  1. 目標檢測
  2. 目標識別

首先,我們使用grabcut演算法掃描全圖,以期找到可能的目標。接著,對所有疑似目標使用目標識別演算法(如SVM/HOG)進行識別。

5. 執行時間

由於深度學習中含有非常多的參數,較機器學習而言會耗費更多的時間。機器學習在訓練數據的時候費時較少,同時只需幾秒到幾小時。

6. 可解釋性

應用場景

計算機視覺:車牌識別,人臉識別

信息檢索:搜索引擎,文本檢索,圖像檢索

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

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

自然語言處理:語義分析,照片標記,在線廣告投放

展 望

1.機器學習和數據科學發展勢頭強勁,對想要生存下來的企業來說,在業務中使用機器學習變得越發重要。

2.深度學習已被證明是現有技術中最先進的技術之一,它給人們帶來了無限多的驚喜,未來仍將如此。

3.研究學者們仍在不斷探索機器學習和深度學習。過去,對於二者的研究僅侷限於學術範圍,現在工業界也加大了對其的研究力度。

以上為譯文,由阿里云云棲社區組織翻譯。

譯文鏈接

文章原標題《Machne Learning vs. Deep Learning》

作者:Shailna Patidar,譯者:Elaine,審校:袁虎。

文章為簡譯,更為詳細的內容,請查看原文 。

更多技術乾貨敬請關注云棲社區知乎機構號:阿里云云棲社區 - 知乎

本文為雲棲社區原創內容,未經允許不得轉載。


機器學習要解決的,是這種問題:

深度學習要解決的,是這種問題:


謝邀~

機器學習(Machine Learning)是一門專門研究計算機怎樣模擬或實現人類的學習行為,以獲取新的知識或技能,重新組織已有的知識結構使之不斷改善自身的性能的學科。而深度學習是機器學習的一個子領域,受大腦神經網路的結構和功能啟發而創造的演算法。其主要就是一個多層的神經網路,從統計學上來說,深度學習就是在預測數據的分佈,從數據中學到一個模型後,再通過這個模型去預測新的數據,其中要求訓練數據與預測數據必須是同分布的。

現有機器學習演算法通常分為有監督學習演算法和無監督學習演算法。在有監督學習演算法中不僅把訓練的數據輸入給計算機,同時還把數據的標籤也一併作為輸入傳給計算機,計算機進行學習之後,再給它傳進新的未知的數據,它也能計算出該數據屬於某種結果的概率,最後給你一個最接近正確的結果。由於計算機在學習的過程中不僅有訓練數據,而且還有結果(標籤),因此訓練的效果往往都不錯。與有監督學習不同的是,無監督學習的輸入數據只有原始數據,沒有標籤,因此計算機無法準確地知道哪些數據屬於哪些類,只能憑藉強大的計算能力分析數據的特徵,從而得到一定的成果,通常得到的是一些集合,集合內的數據在某些特徵上相同,或相似。

而我們所說的深度學習大多數情況下指的就是神經網路,現代神經網路是一種非線性統計性數據建模工具。典型的神經網路具有以下三個部分:

結構(Architecture):結構指定了網路中的變數和它們的拓撲關係。例如,神經網路中的變數可以是神經元連接的權重(weights)和神經元的激勵值(activities of the neurons)。

激勵函數(Activity Rule):大部分神經網路模型具有一個短時間尺度的動力學規則,來定義神經元如何根據其他神經元的活動來改變自己的激勵值。一般激勵函數依賴於網路中的權重(即該網路的參數)。

學習規則(Learning Rule):學習規則指定了網路中的權重如何隨著時間推進而調整。這一般被看做是一種長時間尺度的動力學規則。一般情況下,學習規則依賴於神經元的激勵值。它也可能依賴於監督者提供的目標值和當前權重的值。

通常一個簡單的神經網路包含3部分:輸入層、隱含層和輸出層。一般輸入層和輸出層的節點是固定的,隱含層可以自由指定,圖1是一個簡單的神經網路結構示意圖,圖中的圓圈代表神經元,箭頭代表數據的流向,每根連線上面都對應一個不同的權重,權重是網路通過學習自己得到的。

圖1 簡單神經網路結構圖

每一個神經元都包含了輸入、輸出以及計算模型3個部分,可以把神經元看成一個計算與存儲單元,計算是神經元對其的輸入進行計算功能。存儲是神經元會暫存計算結果,並傳遞到下一層。如圖2所示是一個典型的神經元模型,包含3個輸入,1個輸出以及1個計算功能。

圖2 神經元結構圖

其中a表示輸入,w表示權值,一個表示連接的有向箭頭可以這樣理解:在初端,傳遞的信號大小仍然是a,端中間有加權參數w,經過這個加權後的信號會變成a*w,因此在連接的末端,信號的大小就變成了a*w。在神經元處加權信號求和通過函數f就得到了輸出Z,公式如下:

事實上,為了使神經元取得更好的效果,通常對每一個輸入進行加權之後都會加上一個偏置b,此時Z的計算公式如下:

其中函數f又稱為激活函數,常見的激活函數有sigmoid函數、tanh函數和ReLU函數等。

可能講的不是很明白,不過沒關係,我花時間整理一下李宏毅老師整套機器學習的視頻和課件,國內很多同學機器學習入門看的都是李宏毅老師的視頻,如果需要的話,可以微信關注公眾號:輪子工廠,後臺回復:機器學習,就可以領取視頻和課件了~


A Venn diagram showing how deep learning is a kind of representation learning, which is in turn a kind of machine learning, which is used for many but not all approaches to AI. Each section of the Venn diagram includes an example of an AI technology.

Flowcharts
showing how the different parts of an AI system relate to each
other within
different AI disciplines. Shaded boxes indicate components that are able to
learn from
data.

內容來源為Yoshua Bengio的Deep Learning一書.


推薦閱讀:
相關文章