【嵌牛導(dǎo)讀】:機器學(xué)習(xí)和深度學(xué)習(xí)變得越來越火粘捎。突然之間系奉,不管是了解的還是不了解的,所有人都在談?wù)摍C器學(xué)習(xí)和深度學(xué)習(xí)庐扫。無論你是否主動關(guān)注過數(shù)據(jù)科學(xué),你應(yīng)該已經(jīng)聽說過這兩個名詞了仗哨。那么形庭,我們應(yīng)該如何應(yīng)對 !
【嵌牛鼻子】:深度學(xué)習(xí)厌漂;機器學(xué)習(xí)萨醒。
【嵌牛提問】:什么是機器學(xué)習(xí)和深度學(xué)習(xí)?其應(yīng)用領(lǐng)域有哪些?未來發(fā)展趨勢如何苇倡?
【嵌牛正文】:
什么是機器學(xué)習(xí)富纸?
一言以蔽之囤踩,由 Tom Mitchell 給出的被廣泛引用的機器學(xué)習(xí)的定義給出了最佳解釋。下面是其中的內(nèi)容:
“計算機程序可以在給定某種類別的任務(wù) T 和性能度量 P 下學(xué)習(xí)經(jīng)驗 E 晓褪,如果其在任務(wù) T 中的性能恰好可以用 P 度量高职,則隨著經(jīng)驗 E 而提高〈侵荩”
是不是讀起來很繞口呢怔锌?讓我們用簡單的例子來分解下這個描述。
示例 1:機器學(xué)習(xí)和根據(jù)人的身高估算體重
假設(shè)你想創(chuàng)建一個能夠根據(jù)人的身高估算體重的系統(tǒng)(也許你出自某些理由對這件事情感興趣)变过。那么你可以使用機器學(xué)習(xí)去找出任何可能的錯誤和數(shù)據(jù)捕獲中的錯誤埃元,首先你需要收集一些數(shù)據(jù),讓我們來看看你的數(shù)據(jù)是什么樣子的:
圖中的每一個點對應(yīng)一個數(shù)據(jù)媚狰,我們可以畫出一條簡單的斜線來預(yù)測基于身高的體重岛杀。
例如這條斜線:
Weight (in kg) = Height (in cm) - 100
...這些斜線能幫助我們作出預(yù)測,盡管這些斜線表現(xiàn)得很棒崭孤,但是我們需要理解它是怎么表現(xiàn)的类嗤,我們希望去減少預(yù)測和實際之間的誤差,這也是衡量其性能的方法辨宠。
深遠(yuǎn)一點地說遗锣,我們收集更多的數(shù)據(jù) (experience),模型就會變得更好嗤形。我們也可以通過添加更多變量(例如性別)和添加不同的預(yù)測斜線來完善我們的模型精偿。
什么是深度學(xué)習(xí)?
深度學(xué)習(xí)的概念并不新穎。它已經(jīng)存在好幾年了赋兵。但伴隨著現(xiàn)有的所有的炒作笔咽,深度的學(xué)習(xí)越來越受到重視。正如我們在機器學(xué)習(xí)中所做的那樣霹期,先來看看深度學(xué)習(xí)的官方定義叶组,然后用一個例子來解釋。
“深度學(xué)習(xí)是一種特殊的機器學(xué)習(xí)历造,通過學(xué)習(xí)將世界使用嵌套的概念層次來表示并實現(xiàn)巨大的功能和靈活性甩十,其中每個概念都定義為與簡單概念相關(guān)聯(lián),而更為抽象的表示則以較不抽象的方式來計算帕膜≡嫜酰”
這也有點讓人混亂溢十。下面使用一個簡單示例來分解下此概念垮刹。
示例1: 形狀檢測
先從一個簡單的例子開始,從概念層面上解釋究竟發(fā)生了什么的事情张弛。我們來試試看如何從其他形狀中識別的正方形荒典。
我們眼中的第一件事是檢查圖中是否有四條的線(簡單的概念)酪劫。如果我們找到這樣的四條線,我們進(jìn)一步檢查它們是相連的寺董、閉合的和相互垂直的覆糟,并且它們是否是相等的(嵌套的概念層次結(jié)構(gòu))。
所以遮咖,我們完成了一個復(fù)雜的任務(wù)(識別一個正方形)滩字,并以簡單、不太抽象的任務(wù)來完成它御吞。深度學(xué)習(xí)本質(zhì)上在大規(guī)模執(zhí)行類似邏輯麦箍。
示例2: 貓 vs. 狗
我們舉一個動物辨識的例子,其中我們的系統(tǒng)必須識別給定的圖像中的動物是貓還是狗陶珠。閱讀下此文挟裂,以了解深度學(xué)習(xí)在解決此類問題上如何比機器學(xué)習(xí)領(lǐng)先一步。
機器學(xué)習(xí)和深度學(xué)習(xí)的對比
現(xiàn)在的你應(yīng)該已經(jīng)對機器學(xué)習(xí)和深度學(xué)習(xí)有所了解揍诽,接下來我們將會學(xué)習(xí)其中一些重點诀蓉,并比較兩種技術(shù)。
數(shù)據(jù)依賴性
深度學(xué)習(xí)與傳統(tǒng)的機器學(xué)習(xí)最主要的區(qū)別在于隨著數(shù)據(jù)規(guī)模的增加其性能也不斷增長暑脆。當(dāng)數(shù)據(jù)很少時渠啤,深度學(xué)習(xí)算法的性能并不好。這是因為深度學(xué)習(xí)算法需要大量的數(shù)據(jù)來完美地理解它添吗。另一方面埃篓,在這種情況下,傳統(tǒng)的機器學(xué)習(xí)算法使用制定的規(guī)則根资,性能會比較好架专。下圖總結(jié)了這一事實。
硬件依賴
深度學(xué)習(xí)算法需要進(jìn)行大量的矩陣運算玄帕,GPU 主要用來高效優(yōu)化矩陣運算部脚,所以 GPU 是深度學(xué)習(xí)正常工作的必須硬件。與傳統(tǒng)機器學(xué)習(xí)算法相比裤纹,深度學(xué)習(xí)更依賴安裝 GPU 的高端機器委刘。
特征處理
特征處理是將領(lǐng)域知識放入特征提取器里面來減少數(shù)據(jù)的復(fù)雜度并生成使學(xué)習(xí)算法工作的更好的模式的過程。特征處理過程很耗時而且需要專業(yè)知識鹰椒。
在機器學(xué)習(xí)中锡移,大多數(shù)應(yīng)用的特征都需要專家確定然后編碼為一種數(shù)據(jù)類型。
特征可以使像素值漆际、形狀淆珊、紋理、位置和方向奸汇。大多數(shù)機器學(xué)習(xí)算法的性能依賴于所提取的特征的準(zhǔn)確度施符。
深度學(xué)習(xí)嘗試從數(shù)據(jù)中直接獲取高等級的特征往声,這是深度學(xué)習(xí)與傳統(tǒng)機器學(xué)習(xí)算法的主要的不同〈亮撸基于此浩销,深度學(xué)習(xí)削減了對每一個問題設(shè)計特征提取器的工作。例如听哭,卷積神經(jīng)網(wǎng)絡(luò)嘗試在前邊的層學(xué)習(xí)低等級的特征(邊界慢洋,線條),然后學(xué)習(xí)部分人臉陆盘,然后是高級的人臉的描述且警。更多信息可以閱讀神經(jīng)網(wǎng)絡(luò)機器在深度學(xué)習(xí)里面的有趣應(yīng)用。
問題解決方式
當(dāng)應(yīng)用傳統(tǒng)機器學(xué)習(xí)算法解決問題的時候礁遣,傳統(tǒng)機器學(xué)習(xí)通常會將問題分解為多個子問題并逐個子問題解決最后結(jié)合所有子問題的結(jié)果獲得最終結(jié)果斑芜。相反,深度學(xué)習(xí)提倡直接的端到端的解決問題祟霍。
舉例說明:
假設(shè)有一個多物體檢測的任務(wù)需要圖像中的物體的類型和各物體在圖像中的位置杏头。
傳統(tǒng)機器學(xué)會將問題分解為兩步:物體檢測和物體識別燥爷。首先溶推,使用一個邊界框檢測算法掃描整張圖片找到可能的是物體的區(qū)域弓熏;然后使用物體識別算法(例如 SVM 結(jié)合 HOG )對上一步檢測出來的物體進(jìn)行識別押蚤。
相反,深度學(xué)習(xí)會直接將輸入數(shù)據(jù)進(jìn)行運算得到輸出結(jié)果伶氢。例如可以直接將圖片傳給 YOLO 網(wǎng)絡(luò)(一種深度學(xué)習(xí)算法)她渴,YOLO 網(wǎng)絡(luò)會給出圖片中的物體和名稱堕仔。
執(zhí)行時間
通常情況下呼渣,訓(xùn)練一個深度學(xué)習(xí)算法需要很長的時間棘伴。這是因為深度學(xué)習(xí)算法中參數(shù)很多,因此訓(xùn)練算法需要消耗更長的時間屁置。最先進(jìn)的深度學(xué)習(xí)算法 ResNet完整地訓(xùn)練一次需要消耗兩周的時間焊夸,而機器學(xué)習(xí)的訓(xùn)練會消耗的時間相對較少,只需要幾秒鐘到幾小時的時間蓝角。
但兩者測試的時間上是完全相反阱穗。深度學(xué)習(xí)算法在測試時只需要很少的時間去運行。如果跟 k-nearest neighbors(一種機器學(xué)習(xí)算法)相比較使鹅,測試時間會隨著數(shù)據(jù)量的提升而增加揪阶。不過這不適用于所有的機器學(xué)習(xí)算法,因為有些機器學(xué)習(xí)算法的測試時間也很短患朱。
可解釋性
至關(guān)重要的一點鲁僚,我們把可解釋性作為比較機器學(xué)習(xí)和深度學(xué)習(xí)的一個因素。
我們看個例子。假設(shè)我們適用深度學(xué)習(xí)去自動為文章評分蕴茴。深度學(xué)習(xí)可以達(dá)到接近人的標(biāo)準(zhǔn)劝评,這是相當(dāng)驚人的性能表現(xiàn)姐直。但是這仍然有個問題倦淀。深度學(xué)習(xí)算法不會告訴你為什么它會給出這個分?jǐn)?shù)。當(dāng)然声畏,在數(shù)學(xué)的角度上撞叽,你可以找出來哪一個深度神經(jīng)網(wǎng)絡(luò)節(jié)點被激活了。但是我們不知道神經(jīng)元應(yīng)該是什么模型插龄,我們也不知道這些神經(jīng)單元層要共同做什么愿棋。所以無法解釋結(jié)果是如何產(chǎn)生的。
另一方面均牢,為了解釋為什么算法這樣選擇糠雨,像決策樹(decision trees)這樣機器學(xué)習(xí)算法給出了明確的規(guī)則,所以解釋決策背后的推理是很容易的徘跪。因此甘邀,決策樹和線性/邏輯回歸這樣的算法主要用于工業(yè)上的可解釋性。
機器學(xué)習(xí)和深度學(xué)習(xí)用于哪些領(lǐng)域垮庐?
維基百科上關(guān)于機器學(xué)習(xí)的文章概述了所有使用機器學(xué)習(xí)的領(lǐng)域松邪。這些包括:
計算機視覺 用于車牌識別和面部識別等的應(yīng)用。
信息檢索 用于諸如搜索引擎的應(yīng)用 - 包括文本搜索和圖像搜索哨查。
市場營銷 針對自動電子郵件營銷和目標(biāo)群體識別等的應(yīng)用逗抑。
醫(yī)療診斷 諸如癌癥識別和異常檢測等的應(yīng)用。
自然語言處理寒亥,如情緒分析和照片標(biāo)記等的應(yīng)用邮府。
上圖恰當(dāng)?shù)乜偨Y(jié)了機器學(xué)習(xí)的應(yīng)用領(lǐng)域,涵蓋了整個機器智能的更廣泛的話題溉奕。
使用機器學(xué)習(xí)/深度學(xué)習(xí)的公司的一個主要例子是Google挟纱。
在上圖中,你可以看到 Google 正在將機器學(xué)習(xí)應(yīng)用于其各種產(chǎn)品腐宋。機器學(xué)習(xí)/深度學(xué)習(xí)的應(yīng)用是無盡的 - 你僅需尋找正確的時機紊服!
未來發(fā)展趨勢
首先,隨著業(yè)內(nèi)對數(shù)據(jù)科學(xué)和機器學(xué)習(xí)使用的日益增長的趨勢胸竞,對于每個想要生存下來的公司來說欺嗤,重視機器學(xué)習(xí)將變得非常重要。蘋果正在 iPhone X 中使用機器學(xué)習(xí)卫枝,這標(biāo)志著這項技術(shù)的發(fā)展方向煎饼。
深入學(xué)習(xí)讓我們每天都感到驚訝,并將在不久的將來繼續(xù)如此校赤。這是因為深度學(xué)習(xí)是被證明為最先進(jìn)的性能最好的技術(shù)之一吆玖。
針對機器學(xué)習(xí)和深度學(xué)習(xí)的研究將是持續(xù)的筒溃。但與前幾年的研究僅限于學(xué)術(shù)界不同的是,機器學(xué)習(xí)和深度學(xué)習(xí)方面的研究將在業(yè)界和學(xué)術(shù)界都有爆發(fā)式的發(fā)展沾乘。而且擁有比以往更多的資助怜奖,更有可能成為人類整體發(fā)展的主旋律。