丁香五月天婷婷久久婷婷色综合91|国产传媒自偷自拍|久久影院亚洲精品|国产欧美VA天堂国产美女自慰视屏|免费黄色av网站|婷婷丁香五月激情四射|日韩AV一区二区中文字幕在线观看|亚洲欧美日本性爱|日日噜噜噜夜夜噜噜噜|中文Av日韩一区二区

您正在使用IE低版瀏覽器,為了您的雷峰網(wǎng)賬號安全和更好的產(chǎn)品體驗,強烈建議使用更快更安全的瀏覽器
此為臨時鏈接,僅用于文章預(yù)覽,將在時失效
人工智能 正文
發(fā)私信給楊曉凡
發(fā)送

0

CNN 是如何處理圖像中不同位置的對象的?

本文作者: 楊曉凡 2018-06-30 16:13
導(dǎo)語:CNN 能應(yīng)對位置的差異性是理所當(dāng)然的嗎?

雷鋒網(wǎng) AI 科技評論按:這篇博客來自 Jetpac(現(xiàn)被谷歌收購) CTO、蘋果畢業(yè)生、TensorFlow 團隊成員 Pete Warden。文中討論了當(dāng)要識別的對象出現(xiàn)在圖像中的不同位置時,CNN 是如何應(yīng)對、識別的。Pete Warden 給出的解釋也許算不上完善,而且也仍然無法保證能夠消除位置的影響,但這是一個不錯的開始。雷鋒網(wǎng) AI 科技評論全文編譯如下。

CNN 是如何處理圖像中不同位置的對象的?

一位正在學(xué)習(xí)用卷積神經(jīng)網(wǎng)絡(luò)做圖像分類的工程師最近問了我一個有趣的問題:模型是如何學(xué)會辨別位于圖片中不同位置的物體的呢?由于解釋這個問題需要大費些周章,我決定在這里把它們寫下來,以幫助其他有類似困惑的人理解這個問題。

上面這兩張示例圖就可以表示我的這位朋友的問題。

如果你想要識別出所有包含太陽形狀的圖像,你要怎么保證不管這個太陽形狀在哪里,模型都能把它識別出來呢?之所以這是一個有趣的問題,是因為在你完全理解這個問題之前,需要三個階段的啟蒙:

  • 階段一:如果你未曾嘗試過計算機編程,這個問題看上去很簡單,因為辨別位置的差異對我們的眼睛和大腦來說沒有任何難度。

  • 階段二:如果你嘗試過用傳統(tǒng)的編程方法解決過類似的問題,你可能會感到窒息,因為你不僅知道處理這種差異會有多難,也明白更艱難的是向你的客戶解釋它的技術(shù)含量。

  • 階段三:作為一個得到認(rèn)證的深度學(xué)習(xí)權(quán)威人士,你可能會摸摸胡子然后微笑,很欣慰這些瑣碎的問題是由你建立的網(wǎng)絡(luò)處理的而不是你本人。

我的朋友正處于啟蒙的第三階段,但也已經(jīng)粗淺的了解了一些原理可以解釋為什么 CNN 可以很好的處理這類問題。我并不會聲稱我對此有什么新見解,但經(jīng)過過去幾年在圖像模型領(lǐng)域的工作經(jīng)驗我也有了一些自己的想法,結(jié)合學(xué)術(shù)圈子里師生之間口口相傳的說法,我想將我所知道的分享給大家。歡迎大家補充與此相關(guān)的優(yōu)秀文章連接,由于我的解釋僅僅是基于我作為一名成熟的工程師的直覺和經(jīng)驗而來的,請大家?guī)椭腋玫某鋵嵑吞嵘@個解釋。

首先要知道的是,神經(jīng)網(wǎng)絡(luò)并不是天然地對位置識別的問題免疫的。我最開始遇到這個問題是我當(dāng)用 ImageNet 中的圖片訓(xùn)練神經(jīng)網(wǎng)絡(luò)時。ImageNet 歷史悠久,最初搜集者們利用谷歌圖片搜索通過搜索類名稱從公共網(wǎng)絡(luò)中采集示例圖片,之后再人工從中剔除不正確的圖像。我的好朋友 Tom White 就熱衷于在這項剔除異常的工作中挖掘奇聞異事,比如許多女模特的照片出現(xiàn)在了垃圾車類別里(參見改進(jìn)模型架構(gòu)遇到了瓶頸?你該考慮改善自己的數(shù)據(jù)了!)。Andrej Karpathy 通過完成手動標(biāo)記圖片的繁重工作,也對數(shù)據(jù)集的特點有了更深的理解。

說了剛才這么多,我的意思是,訓(xùn)練數(shù)據(jù)集中的所有圖片都是由人拍攝出來,然后發(fā)布在知名網(wǎng)站上的。這意味著訓(xùn)練集中的圖像會比隨機截屏得來的要更專業(yè),都有一個布局良好的實物主體,通常在靠近中間位置,平視視角拍攝,并占據(jù)了畫面的大部分。相比之下,如果有人用手機攝像頭對準(zhǔn)一個物體拍照想讓模型給它分類,這樣的照片就很有可能有著奇怪的角度。它可能是俯視拍攝的,也可能只拍到物體的一部分,這就意味著,如果讓模型識別手機拍攝的照片,它的表現(xiàn)就會比發(fā)表的論文里的準(zhǔn)確率差的多,因為訓(xùn)練模型用的數(shù)據(jù)和用戶想要識別的圖片差別太大。如果你的安卓設(shè)備上安裝了 TensorFlow 分類應(yīng)用,你現(xiàn)在還能看到類似的問題。分類模型在手機上變得不好使還不是最糟糕的,因為至少手機用戶們拍照的時候還是有一定的取景的。機器人以及類似設(shè)備上的圖像識別就是一個嚴(yán)重得多的問題。由于這些設(shè)備的攝像頭的指向是完全隨機的,在 ImageNet 上訓(xùn)練的模型表現(xiàn)可謂是非常糟糕。我經(jīng)常建議開發(fā)這些 app 的開發(fā)者用和目標(biāo)設(shè)備類似的設(shè)備拍的照片作為訓(xùn)練數(shù)據(jù)集,畢竟除了取景之外,鏡頭等其他因素也有一些區(qū)別。

即便照片是人工選出的,ImageNet 中的圖像在物體位置上還是有很多差異,所以神經(jīng)網(wǎng)絡(luò)是如何處理它們的呢? 其中的一個秘訣是,訓(xùn)練過程中通常會專門在輸入中加入人工的偏移,神經(jīng)網(wǎng)絡(luò)就需要學(xué)會處理這類差異。

CNN 是如何處理圖像中不同位置的對象的?

在這圖片被輸入到模型之前,它們有可能會被隨機的裁剪。所有的輸入都會被縮小到一個標(biāo)準(zhǔn)尺寸(一般是 200×200 或 300×300),這就將每張圖片里物體出現(xiàn)的位置和大小隨機化了,還有可能會剪切掉物體的一部分。模型始終都會依據(jù)預(yù)測的準(zhǔn)確性得到懲罰或是獎賞,所以為了獲得好的評分它必須在帶有這些不同的狀況下還能猜出圖片里的物體。這解釋了為什么神經(jīng)網(wǎng)絡(luò)會學(xué)習(xí)如何處理位置差異。

但這還沒有結(jié)束。

為了繼續(xù)深入,我必須得插入一些公認(rèn)說法和類比。我沒有可以支撐接下來的解釋的研究,但在我的實驗和與其他實踐者的討論中,這一理論是被廣泛接受的。

自從開創(chuàng)性的神經(jīng)網(wǎng)絡(luò) AlexNet 開始,CNN 的工作方式就是基于一系列連續(xù)的層,依次接收輸入數(shù)據(jù)后最終形成分類操作。我們將初始層看作邊緣探測器,尋找最基礎(chǔ)的像素規(guī)律,之后的圖層將初始圖層得出的規(guī)律作為輸入,進(jìn)行更高級別概念的預(yù)測,如此循序漸進(jìn)。看看一個典型的神經(jīng)網(wǎng)絡(luò)第一層過濾器是如何工作的會幫助你更好的理解這個過程:

CNN 是如何處理圖像中不同位置的對象的?

圖片來自 Evan Shelhamer 對 Caffenet 的可視化工作

這張圖展示的是每個過濾器所要查找的內(nèi)容,有些是不同走向的邊,其他的是色彩或角。遺憾的是這里無法用簡明的圖像將之后幾層的情況表達(dá)出來,如果你想更深入的了解這方面的內(nèi)容,Jason Yosinki 還有他的研究伙伴提供了一些不錯的參考文獻(xiàn)。

下面的概念圖可以幫助理解剛才說的內(nèi)容。

CNN 是如何處理圖像中不同位置的對象的?

第一層要尋找的是一些很簡單的特征,比如水平邊、角、以及純色塊。這與之前 CaffeNet 可視化的那張圖要表達(dá)的類似。這些過濾器對輸入圖像進(jìn)行地毯式的瀏覽,當(dāng)找到所須內(nèi)容時,就輸出一張突出了其所在位置的熱力圖。

理解第二層發(fā)生了什么就有點難了。第一層過濾器輸出的熱力圖被逐個分配到激活層的通道中,因此第二層的輸入會有上百個通道,而不是像典型圖像那樣只有三到四個。第二層的任務(wù)是要在從這些熱力圖中找出更復(fù)雜的特征。如果要在圖中識別出太陽的一瓣,這一瓣一端有一個角,另一端是一條垂直線,中間填上黃色。每個特征由輸入激活層的通道表示,第二層中,「朝左的一瓣」過濾器就負(fù)責(zé)尋找同時符合這三個條件的通道組合。在僅有一個或兩個條件滿足的通道組合所在的位置,不會有輸出,只有當(dāng)滿足所有條件的通道組合(只有在那些滿足全部三個條件的位置),輸出會呈現(xiàn)激活狀態(tài)。

與第一層一樣,第二層也有很多過濾器,它們表示的是更高一級的概念,像「朝上的一瓣」、「朝右的一瓣」等等。這很難用圖來表示,籠統(tǒng)來講就是會輸出一個有很多通道的層,每個通道都表征著這一級別的概念。

隨著學(xué)習(xí)深度加深,層要表達(dá)的概念就越來越高級。例如,第三或第四層通過將輸入通道表征的概念進(jìn)行組合,如果有黃色的、被花瓣圍繞著的圓,就會顯示出激活。寫一個分類器把圖像中的太陽找到就這樣簡單地做到了?,F(xiàn)實中分類器不會像我之前例子中那樣把概念切割的如此清楚,因為分類器會自己學(xué)習(xí)如何拆解問題,而不是以人類所能理解的分類方式來運行,但基本原理就是如此。

文章到現(xiàn)在還沒能解釋神經(jīng)網(wǎng)絡(luò)如何識別位置之間的差異。因此最后,你還需要了解另一種設(shè)計圖像分類 CNN 網(wǎng)絡(luò)時候的常見做法。隨著網(wǎng)絡(luò)的層次越來越深,通道的數(shù)量會顯著增加,圖像的尺寸則會縮小??s小的過程由池化層完成,過去是利用平均池化但最近流行用最大池化來做。兩者的效果相近。

CNN 是如何處理圖像中不同位置的對象的?

比如現(xiàn)在要將這張圖被縮小為原來的一半,對每一個輸出像素,我們以 2×2 的輸入塊為單位從中選出值最大的,因此這一過程被稱為最大池化。而在平均池化中,是將這四個值的平均值傳遞到下一層。

這一池化過程會不斷重復(fù),把值在網(wǎng)絡(luò)中傳遞下去。也就是說,最終,圖像尺寸可能會從 300×300 縮小到 13×13。這樣大的收縮量意味著位置變量的數(shù)量會大大縮減。就拿上面的例子來說,太陽只能在余下的 13 行、13 列像素中出現(xiàn)。如此一來任何小的位置差異都被隱藏起來,因為彼此具有微小差異的輸出在最大池化過程都被融合在一起了。這使得最終分類器在位置差異問題的處理上會進(jìn)行得更加有序順利,因為它處理的是將原圖信息精簡許多以后的圖像。

這就是我對分類器在處理位置變化問題上的解釋,但對類似的問題,比如不同時間位置上的音頻信號又是如何呢?最近我對一種可以替代池化,被稱為「擴張」或者又叫「空洞」卷積的方法很感興趣。與最大池化一樣,它產(chǎn)出的是一個更小的圖像,但工作原理是基于卷積方法本身的。不同于池化是采集相鄰的輸入像素,它對樣本的選取是跨越式的,因此采集范圍可以非常大。這使得擴張卷積可以很快的將非局部的信息整合到一起,成為一個更簡潔有序的形式,這是 DeepMind 的 WaveNet 論文中的神奇的方法的一部分,能夠用卷積而不是循環(huán)神經(jīng)網(wǎng)絡(luò)來解決基于時間的問題。

我對此感到很興奮,因為循環(huán)神經(jīng)網(wǎng)絡(luò)的速度是個痛點。如果你要處理批量大小為 1 的數(shù)據(jù),這在即時應(yīng)用中是個很典型的問題,大部分計算都是矩陣和向量之間的乘法,計算強度相當(dāng)于全連接層。由于每個權(quán)重只會用到一次,這類計算受限于計算機的存儲能力而不是運算能力,而卷積卻恰恰相反。因此我非常希望這種方法可以廣泛應(yīng)用于其他領(lǐng)域。

謝謝大家能看到這里。我希望這能幫到大家,歡迎大家在評論區(qū)或 Twitter 上對此提出改善的建議。

via petewarden.com,雷鋒網(wǎng) AI 科技評論編譯

雷峰網(wǎng)版權(quán)文章,未經(jīng)授權(quán)禁止轉(zhuǎn)載。詳情見轉(zhuǎn)載須知

CNN 是如何處理圖像中不同位置的對象的?

分享:
相關(guān)文章

讀論文為生

日常笑點滴,學(xué)術(shù)死腦筋
當(dāng)月熱門文章
最新文章
請?zhí)顚懮暾埲速Y料
姓名
電話
郵箱
微信號
作品鏈接
個人簡介
為了您的賬戶安全,請驗證郵箱
您的郵箱還未驗證,完成可獲20積分喲!
請驗證您的郵箱
立即驗證
完善賬號信息
您的賬號已經(jīng)綁定,現(xiàn)在您可以設(shè)置密碼以方便用郵箱登錄
立即設(shè)置 以后再說