深度學(xué)習(xí)只是一種計算機(jī)視覺工具,而不是包治百病的良藥,不要因為流行就一味地使用它。傳統(tǒng)的計算機(jī)視覺技術(shù)仍然可以大顯身手,了解它們可以為你省去很多的時間和煩惱;并且掌握傳統(tǒng)計算機(jī)視覺確實可以讓你在深度學(xué)習(xí)方面做得更好。這是因為你可以更好地理解深度學(xué)習(xí)的內(nèi)部狀況,并可執(zhí)行預(yù)處理步驟改善深度學(xué)習(xí)結(jié)果。
本文的靈感同樣來自論壇中的一個常見問題:
深度學(xué)習(xí)已經(jīng)取代了傳統(tǒng)的計算機(jī)視覺嗎?
或是換種說法:
既然深度學(xué)習(xí)看起來如此有效,是否還有必要學(xué)習(xí)傳統(tǒng)的計算機(jī)視覺技術(shù)?
這個問題很好。深度學(xué)習(xí)確實給計算機(jī)視覺和人工智能領(lǐng)域帶來了革命性的突破。許多曾經(jīng)看似困難的問題,現(xiàn)在機(jī)器可以比解決的比人類還好。圖像分類就是最好的印證。確實,如從前所述,深度學(xué)習(xí)有責(zé)任將計算機(jī)視覺納入行業(yè)版圖。
但深度學(xué)習(xí)仍然只是計算機(jī)視覺的一個工具,且顯然不是解決所有問題的靈丹妙藥。因此,本文會對此進(jìn)行詳細(xì)闡述。也就是說,我將說明傳統(tǒng)的計算機(jī)視覺技術(shù)為何仍十分有用,值得我們繼續(xù)學(xué)習(xí)并傳授下去。
本文分為以下幾個部分/論點(diǎn):
深度學(xué)習(xí)需要大數(shù)據(jù)
深度學(xué)習(xí)有時會做過了頭
傳統(tǒng)計算機(jī)視覺將會提升你的深度學(xué)習(xí)水平
進(jìn)入正文之前,我認(rèn)為有必要詳細(xì)解釋一下什么是“傳統(tǒng)計算機(jī)視覺”,什么是深度學(xué)習(xí),及其革命性。
背景知識
在深度學(xué)習(xí)出現(xiàn)以前,如果你有一項諸如圖像分類的工作,你會進(jìn)行一步叫做“特征提取”的處理。所謂“特征”就是圖像中“有趣的”、描述性的、或是提供信息的小部分。你會應(yīng)用我在本文中稱之為的“傳統(tǒng)計算機(jī)視覺技術(shù)”的組合來尋找這些特征,包括邊緣檢測、角點(diǎn)檢測、對象檢測等等。
在使用這些與特征提取和圖像分類相關(guān)的技術(shù)時,會從一類對象(例如:椅子、馬等等)的圖像中提取出盡可能多的特征,并將其視為這類對象的“定義”(稱作“詞袋”)。接下來你要在其它圖像中搜索這些“定義”。如果在另一個圖像中存在著詞袋中相當(dāng)一部分的特征,那么這個圖像就被歸為包含那個特定對象(如椅子、馬等等)的分類。
這種圖像分類的特征提取方法的難點(diǎn)在于你必須在每張圖像中選擇尋找哪些特征。隨著你試圖區(qū)分的類別數(shù)目開始增長,比如說超過 10 或 20,這就會變得非常麻煩甚至難以實現(xiàn)。你要尋找角點(diǎn)?邊緣?還是紋理信息?不同類別的對象最好要用不同種類型的特征來描述。如果你選擇使用很多的特征,你就不得不處理海量的參數(shù),而且還需要自己來微調(diào)。
深度學(xué)習(xí)引入了“端到端學(xué)習(xí)”這一概念,(簡而言之)讓機(jī)器在每個特定類別的對象中學(xué)習(xí)尋找特征,即最具描述性、最突出的特征。換句話說,讓神經(jīng)網(wǎng)絡(luò)去發(fā)現(xiàn)各種類型圖像中的潛在模式。
因此,借助端到端學(xué)習(xí),你不再需要手動決定采用哪種傳統(tǒng)機(jī)器視覺技術(shù)來描述特征。機(jī)器為你做好了這一切?!哆B線》雜志如此寫道:
舉例來說,如果你想教會一個 [深度] 神經(jīng)網(wǎng)絡(luò)識別一只貓,你不必告訴它去尋找胡須、耳朵、毛或是眼睛。你只需展示給它成千上萬的貓的圖像,它自然會解決這一問題。如果它總是會將狐貍誤認(rèn)為是貓,你也不用重寫代碼。你只需對它繼續(xù)進(jìn)行訓(xùn)練。
下圖描述了特征提?。ㄊ褂脗鹘y(tǒng)計算機(jī)視覺)和端到端學(xué)習(xí)之間的這種區(qū)別:
以上就是背景介紹?,F(xiàn)在接著討論為什么傳統(tǒng)計算機(jī)視覺仍然必不可少,而且學(xué)習(xí)它仍大有裨益。
深度學(xué)習(xí)需要大量數(shù)據(jù)
首先,深度學(xué)習(xí)需要數(shù)據(jù),許許多多的數(shù)據(jù)。前文提到過的著名圖像分類模型的訓(xùn)練都基于龐大的數(shù)據(jù)集。排名前三的訓(xùn)練數(shù)據(jù)集分別是:
ImageNet——150 萬圖像,1000 個對象分類/類別;
COCO——250 萬圖像,91 個對象分類;
PASCAL VOC——50 萬圖像,20 個對象分類。
但是一個訓(xùn)練不良的模型在你的訓(xùn)練數(shù)據(jù)之外很可能表現(xiàn)糟糕,因為機(jī)器并沒有對于問題的洞察力,也就不能在沒看到數(shù)據(jù)的情況下進(jìn)行概括歸納。而且對你來說查看訓(xùn)練模型內(nèi)部并進(jìn)行手動調(diào)整又太過困難,因為一個深度學(xué)習(xí)模型內(nèi)部擁有數(shù)以百萬計的參數(shù)——每個參數(shù)在訓(xùn)練期間都會被調(diào)整。某種程度上說,一個深度學(xué)習(xí)模型就是一個黑箱。
傳統(tǒng)的計算機(jī)視覺完全透明,允許你更好地評估判斷你的解決方案是否在訓(xùn)練環(huán)境之外依然有效。你對問題的深入見解可以放進(jìn)你的算法之中。并且如果任何地方出現(xiàn)故障,你也可以更輕易地弄清楚什么需要調(diào)整,在哪里調(diào)整。
深度學(xué)習(xí)有時做過了頭
這大概是我最喜歡的支持研究傳統(tǒng)計算機(jī)視覺技術(shù)的理由。
訓(xùn)練一個深度神經(jīng)網(wǎng)絡(luò)需要很長的時間。你需要專門的硬件(例如高性能 GPU)訓(xùn)練最新、最先進(jìn)的圖像分類模型。你想在自己還不錯的筆記本上訓(xùn)練?去度個一周的假吧,等你回來的時候訓(xùn)練很可能仍未完成。
此外,如果你的訓(xùn)練模型表現(xiàn)不佳呢?你不得不返回原點(diǎn),用不同的訓(xùn)練參數(shù)重做全部工作。這一過程可能會重復(fù)數(shù)百次。
但有時候所有這些完全沒必要。因為傳統(tǒng)計算機(jī)視覺技術(shù)可以比深度學(xué)習(xí)更有效率地解決問題,而且使用的代碼更少。例如,我曾經(jīng)參與的一個項目是檢查每個通過傳送帶的罐子里是否有一個紅勺子?,F(xiàn)在你可以通過前文敘述的曠日持久的過程來訓(xùn)練一個深度神經(jīng)網(wǎng)絡(luò)去檢測勺子,或者你也可以寫一個簡單的以紅色為閾值的算法(將任何帶有一定范圍紅色的像素都標(biāo)記為白色,所有其它的像素標(biāo)記為黑色),然后計算有多少白色的像素。簡簡單單,一個小時就可以搞定!
掌握傳統(tǒng)的計算機(jī)視覺技術(shù)可能會為你節(jié)省大量的時間并減少不必要的煩惱。
傳統(tǒng)計算機(jī)視覺會提升你的深度學(xué)習(xí)技巧
理解傳統(tǒng)的計算機(jī)視覺實際上能幫你在深度學(xué)習(xí)上做得更好。
舉例來說,計算機(jī)視覺領(lǐng)域最為普遍使用的神經(jīng)網(wǎng)絡(luò)是卷積神經(jīng)網(wǎng)絡(luò)。但什么是卷積?卷積事實上是一種被廣泛使用的圖像處理技術(shù)(比如,索貝爾邊緣檢測)。了解這一點(diǎn)可以幫助你理解神經(jīng)網(wǎng)絡(luò)內(nèi)部究竟發(fā)生了什么,從而進(jìn)行設(shè)計和微調(diào)以更好地解決你的問題。
還有一件事叫做預(yù)處理。你輸入給模型的數(shù)據(jù)往往要經(jīng)過這種處理,以便為接下來的訓(xùn)練做準(zhǔn)備。這些預(yù)處理步驟主要是通過傳統(tǒng)的計算機(jī)視覺技術(shù)完成的。例如,如果你沒有足夠的訓(xùn)練數(shù)據(jù),你可以進(jìn)行一個叫做數(shù)據(jù)增強(qiáng)的處理。數(shù)據(jù)增強(qiáng)是指對你訓(xùn)練數(shù)據(jù)集中的圖像進(jìn)行隨機(jī)的旋轉(zhuǎn)、移動、裁剪等,從而創(chuàng)造出“新”圖像。通過執(zhí)行這些計算機(jī)視覺操作,可以極大地增加你的訓(xùn)練數(shù)據(jù)量。
結(jié)論
本文闡述了為什么深度學(xué)習(xí)還沒有取代傳統(tǒng)計算機(jī)視覺技術(shù),以及后者仍值得學(xué)習(xí)和傳授。首先,本文將目光放在了深度學(xué)習(xí)往往需要大量數(shù)據(jù)才能表現(xiàn)良好這一問題上。有時并不具備大量數(shù)據(jù),而傳統(tǒng)計算機(jī)視覺在這種情況下可作為一種替代方案。第二,深度學(xué)習(xí)針對特定的任務(wù)偶爾會做過頭。在這些任務(wù)中,標(biāo)準(zhǔn)的計算機(jī)視覺比起深度學(xué)習(xí)可以更為高效地解決問題,并且使用更少的代碼。第三,掌握傳統(tǒng)計算機(jī)視覺確實可以讓你在深度學(xué)習(xí)方面做得更好。這是因為你可以更好地理解深度學(xué)習(xí)的內(nèi)部狀況,并可執(zhí)行預(yù)處理步驟改善深度學(xué)習(xí)結(jié)果。
總而言之,深度學(xué)習(xí)只是一種計算機(jī)視覺的工具,而不是包治百病的良藥。不要因為流行就一味地使用它。傳統(tǒng)的計算機(jī)視覺技術(shù)仍然可以大顯身手,了解它們可以為你省去很多的時間和煩惱。
-
計算機(jī)視覺
+關(guān)注
關(guān)注
8文章
1698瀏覽量
45974 -
深度學(xué)習(xí)
+關(guān)注
關(guān)注
73文章
5500瀏覽量
121111
發(fā)布評論請先 登錄
相關(guān)推薦
評論