對人類來說,描述我們眼睛所看到的事物,即“視覺世界”,看起來太微不足道了,以至于我們根本沒有意識到那正是我們時時刻刻在做的事情。在看到某件事物時,不管是汽車、大樹,還是一個人,我們通常都不需要過多的思考就能立刻叫出名字。然而對于一臺計算機(jī)來說,區(qū)分識別“人類對象”(比如:在小狗、椅子或是鬧鐘這些“非人類對象”中識別出奶奶這一“人類對象”)卻是相當(dāng)困難的。
能解決這一問題可以帶來非常高的收益?!皥D像識別”技術(shù),更寬泛地說是“計算機(jī)視覺”技術(shù),是許多新興技術(shù)的基礎(chǔ)。從無人駕駛汽車和面部識別軟件到那些看似簡單但十分重要的發(fā)展成果——能夠監(jiān)測流水線缺陷和違規(guī)的“智能工廠”,以及保險公司用來處理和分類索賠照片的自動化軟件。這些新興科技是離不開“圖像識別”的。
在接下來的內(nèi)容里,我們將要探究“圖像識別”所面臨的問題和挑戰(zhàn),并分析科學(xué)家是如何用一種特殊的神經(jīng)網(wǎng)絡(luò)來解決這一挑戰(zhàn)的。
學(xué)會“看”是一項高難度、高成本的任務(wù)
著手解決這個難題,我們可以首先將元數(shù)據(jù)應(yīng)用于非結(jié)構(gòu)化數(shù)據(jù)。在之前的文章里,我們曾描述過在元數(shù)據(jù)稀缺或元數(shù)據(jù)不存在的情況下,進(jìn)行文本內(nèi)容分類和搜索遇到的一些問題和挑戰(zhàn)。讓專人來對電影和音樂進(jìn)行人工分類和標(biāo)記,確實是一項艱巨的任務(wù)。但有些任務(wù)不僅艱巨,甚至是幾乎不可能完成的。比如訓(xùn)練無人駕駛汽車?yán)锏膶?dǎo)航系統(tǒng),讓其能夠?qū)⑵渌囕v與正在過馬路的行人區(qū)分開來;或者是每天對社交網(wǎng)站上用戶上傳的千千萬萬張的照片和視頻進(jìn)行標(biāo)記、分類和篩查。
唯一能夠解決這一難題的方法就是神經(jīng)網(wǎng)絡(luò)。理論上我們可以用常規(guī)的神經(jīng)網(wǎng)絡(luò)來進(jìn)行圖像分析,但在實際操作中,從計算角度看,使用這種方法的成本非常高。舉例來說,一個常規(guī)的神經(jīng)網(wǎng)絡(luò),就算是處理一個非常小的圖像,假設(shè)是30*30像素圖像,仍需要900個數(shù)據(jù)輸入和五十多萬個參數(shù)。這樣的處理加工對一個相對強(qiáng)大的機(jī)器來說還是可行的;但是,如果需要處理更大的圖像,假設(shè)是500*500像素的圖像,那么機(jī)器所需的數(shù)據(jù)輸入和參數(shù)數(shù)量就會大大增加,增加到難以想象的地步。
除此之外,將神經(jīng)網(wǎng)絡(luò)用于“圖像識別”還可能會導(dǎo)致另一個問題——過度擬合。簡單來說,過度擬合指的是系統(tǒng)訓(xùn)練的數(shù)據(jù)過于接近定制的數(shù)據(jù)模型的現(xiàn)象。這不僅會在大體上導(dǎo)致參數(shù)數(shù)量的增加(也就是進(jìn)一步計算支出的增加),還將削弱“圖像識別”在面臨新數(shù)據(jù)時其他常規(guī)功能的正常發(fā)揮。
真正的解決方案——卷積
幸運的是,我們發(fā)現(xiàn),只要在神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu)方式上做一個小小的改變,就能使大圖像的處理更具可操作性。改造后的神經(jīng)網(wǎng)絡(luò)被稱作“卷積神經(jīng)網(wǎng)絡(luò)”,也叫CNNs或ConvNets。
神經(jīng)網(wǎng)絡(luò)的優(yōu)勢之一在于它的普遍適應(yīng)性。但是,就像我們剛剛看到的,神經(jīng)網(wǎng)絡(luò)的這一優(yōu)勢在圖像處理上實際上是一種不利因素。而“卷積神經(jīng)網(wǎng)絡(luò)”能夠?qū)Υ俗鞒鲆环N有意識的權(quán)衡——為了得到一個更可行的解決方案,我們犧牲了神經(jīng)網(wǎng)絡(luò)的其他普遍性功能,設(shè)計出了一個專門用于圖像處理的網(wǎng)絡(luò)。
在任何一張圖像中,接近度與相似度的關(guān)聯(lián)性都是非常強(qiáng)的。準(zhǔn)確地說,“卷積神經(jīng)網(wǎng)絡(luò)”就是利用了這一原理。具體而言就是,在一張圖像中的兩個相鄰像素,比圖像中兩個分開的像素更具有關(guān)聯(lián)性。但是,在一個常規(guī)的神經(jīng)網(wǎng)絡(luò)中,每個像素都被連接到了單獨的神經(jīng)元。這樣一來,計算負(fù)擔(dān)自然加重了,而加重的計算負(fù)擔(dān)實際上是在削弱網(wǎng)絡(luò)的準(zhǔn)確程度。
卷積網(wǎng)絡(luò)通過削減許多不必要的連接來解決這一問題。運用科技術(shù)語來說就是,“卷積網(wǎng)絡(luò)”按照關(guān)聯(lián)程度篩選不必要的連接,進(jìn)而使圖像處理過程在計算上更具有可操作性?!熬矸e網(wǎng)絡(luò)”有意地限制了連接,讓一個神經(jīng)元只接受來自之前圖層的小分段的輸入(假設(shè)是3×3或5×5像素),避免了過重的計算負(fù)擔(dān)。因此,每一個神經(jīng)元只需要負(fù)責(zé)處理圖像的一小部分(這與我們?nèi)祟惔竽X皮質(zhì)層的工作原理十分相似——大腦中的每一個神經(jīng)元只需要回應(yīng)整體視覺領(lǐng)域中的一小部分)。
“卷積神經(jīng)網(wǎng)絡(luò)”的內(nèi)在秘密
“卷積神經(jīng)網(wǎng)絡(luò)”究竟是如何篩選出不必要的連接的呢?秘密就在于兩個新添的新型圖層——卷積層和匯聚層。我們接下來將會通過一個實操案例:讓網(wǎng)絡(luò)判斷照片中是否有“奶奶”這一對象,把“卷積神經(jīng)網(wǎng)絡(luò)”的操作進(jìn)行分解,逐一描述。
第一步,“卷積層”。“卷積層”本身實際上也包含了幾個步驟:
1.首先,我們會將奶奶的照片分解成一些3×3像素的、重疊著的拼接圖塊。
2.然后,我們把每一個圖塊運行于一個簡單的、單層的神經(jīng)網(wǎng)絡(luò),保持權(quán)衡不變。這一操作會使我們的拼接圖塊變成一個圖組。由于我們一開始就將原始圖像分解成了小的圖像(在這個案例中,我們是將其分解成了3×3像素的圖像),所以,用于圖像處理的神經(jīng)網(wǎng)絡(luò)也是比較好操作的。
3.接下來,我們將會把這些輸出值排列在圖組中,用數(shù)字表示照片中各個區(qū)域的內(nèi)容,數(shù)軸分別代表高度、寬度和顏色。那么,我們就得到了每一個圖塊的三維數(shù)值表達(dá)。(如果我們討論的不是奶奶的照片,而是視頻,那么我們就會得到一個四維的數(shù)值表達(dá)了。)
說完“卷積層”,下一步是“匯聚層”。
“匯聚層”是將這個三維(或是四維)圖組的空間維度與采樣函數(shù)結(jié)合起來,輸出一個僅包含了圖像中相對重要的部分的聯(lián)合數(shù)組。這一聯(lián)合數(shù)組不僅能使計算負(fù)擔(dān)最小化,還能有效避免過度擬合的問題。
最后,我們會把從“匯聚層”中得出的采樣數(shù)組作為常規(guī)的、全方位連接的神經(jīng)網(wǎng)絡(luò)來使用。通過卷積和匯聚,我們大幅度地縮減了輸入的數(shù)量,因此,我們這時候得到的數(shù)組大小是一個正常普通網(wǎng)絡(luò)完全能夠處理的,不僅如此,這一數(shù)組還能保留原始數(shù)據(jù)中最重要的部分。這最后一步的輸出結(jié)果將最終顯示出系統(tǒng)有多少把握作出“照片中有奶奶”的判斷。
以上只是對“卷積神經(jīng)網(wǎng)絡(luò)”工作過程的簡單描述,現(xiàn)實中,其工作過程是更加復(fù)雜的。另外,跟我們這里的案例不同,現(xiàn)實中的“卷積神經(jīng)網(wǎng)絡(luò)”處理的內(nèi)容一般包含了上百個,甚至上千個標(biāo)簽。
“卷積神經(jīng)網(wǎng)絡(luò)”的實施
重新開始建立一個“卷積神經(jīng)網(wǎng)絡(luò)”是一項非常耗時且昂貴的工作。不過,許多API最近已經(jīng)實現(xiàn)了——讓組織在沒有內(nèi)部計算機(jī)視覺或機(jī)器學(xué)習(xí)專家的幫助下,完成圖像分析的收集工作。
“谷歌云視覺”是谷歌的視覺識別API,它是以開源式TensorFlow框架為基礎(chǔ)的,采用了一個REST API?!肮雀柙埔曈X”包含了一組相當(dāng)全面的標(biāo)簽,能夠檢測單個的對象和人臉。除此之外,它還具備一些附加功能,包括OCR和“谷歌圖像搜索”。
“IBM沃森視覺識別”技術(shù)是“沃森云開發(fā)者”的重要組成部分。它雖然涵蓋了大量的內(nèi)置類集,但實際上,它是根據(jù)你所提供的圖像來進(jìn)行定制類集的訓(xùn)練的。與“谷歌云視覺”一樣,“IBM沃森視覺識別”也具備許多極好的功能,比如OCR和NSFW檢測功能。
Clarif.ai是圖像識別服務(wù)的“后起之秀”,它采用了一個REST API。值得一提的是,Clarif.ai包含了大量的單元,能夠根據(jù)特定的情境定制不同的算法。像婚禮、旅游甚至食物。
上面的這些API更適用于一些普通的程序,但對于一些特殊的任務(wù),可能還是需要“對癥下藥”,制定專門的解決方案。不過值得慶幸的是,許多數(shù)據(jù)庫可以處理計算和優(yōu)化方面的工作,這或多或少地減輕了數(shù)據(jù)科學(xué)家和開發(fā)人員的壓力,讓他們有更多精力關(guān)注于模型訓(xùn)練。其中,大部分的數(shù)據(jù)庫,包括TensorFlow,深度學(xué)習(xí)4J和Theano,都已經(jīng)得到了廣泛、成功的應(yīng)用。
-
圖像識別
+關(guān)注
關(guān)注
9文章
527瀏覽量
39098
發(fā)布評論請先 登錄
基于DSP的快速紙幣圖像識別技術(shù)研究
如何構(gòu)建基于圖像識別的印制線路板精密測試系統(tǒng)?
對于圖像識別的引入、原理、過程、應(yīng)用前景的深度剖析
簡單介紹圖像識別技術(shù)在各類行業(yè)的應(yīng)用
圖像識別技術(shù) 推動智能科技時代發(fā)展
使用FPGA平臺實現(xiàn)遺傳算法的圖像識別的研究設(shè)計說明

卷積神經(jīng)網(wǎng)絡(luò)用于圖像識別的原理

評論