CNN 解決了什么問(wèn)題?在 CNN 出現(xiàn)之前,圖像對(duì)于人工智能來(lái)說(shuō)是一個(gè)難題,有2個(gè)原因: 圖像需要處理的數(shù)據(jù)量太大,導(dǎo)致成本很高,效率很低 圖像在數(shù)字化的過(guò)程中很難保留原有的特征,導(dǎo)致圖像處理的準(zhǔn)確率不高 下面就詳細(xì)說(shuō)明一下這2個(gè)問(wèn)題: 需要處理的數(shù)據(jù)量太大 圖像是由像素構(gòu)成的,每個(gè)像素又是由顏色構(gòu)成的。 現(xiàn)在隨隨便便一張圖片都是 1000×1000 像素以上的, 每個(gè)像素都有RGB 3個(gè)參數(shù)來(lái)表示顏色信息。 假如我們處理一張 1000×1000 像素的圖片,我們就需要處理3百萬(wàn)個(gè)參數(shù)! 1000×1000×3=3,000,000 這么大量的數(shù)據(jù)處理起來(lái)是非常消耗資源的,而且這只是一張不算太大的圖片! 卷積神經(jīng)網(wǎng)絡(luò) – CNN 解決的第一個(gè)問(wèn)題就是「將復(fù)雜問(wèn)題簡(jiǎn)化」,把大量參數(shù)降維成少量參數(shù),再做處理。 更重要的是:我們?cè)诖蟛糠謭?chǎng)景下,降維并不會(huì)影響結(jié)果。比如1000像素的圖片縮小成200像素,并不影響肉眼認(rèn)出來(lái)圖片中是一只貓還是一只狗,機(jī)器也是如此。 保留圖像特征 圖片數(shù)字化的傳統(tǒng)方式我們簡(jiǎn)化一下,就類似下圖的過(guò)程: 圖像簡(jiǎn)單數(shù)字化無(wú)法保留圖像特征 假如有圓形是1,沒(méi)有圓形是0,那么圓形的位置不同就會(huì)產(chǎn)生完全不同的數(shù)據(jù)表達(dá)。但是從視覺(jué)的角度來(lái)看,圖像的內(nèi)容(本質(zhì))并沒(méi)有發(fā)生變化,只是位置發(fā)生了變化。 所以當(dāng)我們移動(dòng)圖像中的物體,用傳統(tǒng)的方式的得出來(lái)的參數(shù)會(huì)差異很大!這是不符合圖像處理的要求的。 而 CNN 解決了這個(gè)問(wèn)題,他用類似視覺(jué)的方式保留了圖像的特征,當(dāng)圖像做翻轉(zhuǎn),旋轉(zhuǎn)或者變換位置時(shí),它也能有效的識(shí)別出來(lái)是類似的圖像。 那么卷積神經(jīng)網(wǎng)絡(luò)是如何實(shí)現(xiàn)的呢?在我們了解 CNN 原理之前,先來(lái)看看人類的視覺(jué)原理是什么? 人類的視覺(jué)原理深度學(xué)習(xí)的許多研究成果,離不開對(duì)大腦認(rèn)知原理的研究,尤其是視覺(jué)原理的研究。 1981 年的諾貝爾醫(yī)學(xué)獎(jiǎng),頒發(fā)給了 David Hubel(出生于加拿大的美國(guó)神經(jīng)生物學(xué)家) 和TorstenWiesel,以及 Roger Sperry。前兩位的主要貢獻(xiàn),是“發(fā)現(xiàn)了視覺(jué)系統(tǒng)的信息處理”,可視皮層是分級(jí)的。 人類的視覺(jué)原理如下:從原始信號(hào)攝入開始(瞳孔攝入像素 Pixels),接著做初步處理(大腦皮層某些細(xì)胞發(fā)現(xiàn)邊緣和方向),然后抽象(大腦判定,眼前的物體的形狀,是圓形的),然后進(jìn)一步抽象(大腦進(jìn)一步判定該物體是只氣球)。下面是人腦進(jìn)行人臉識(shí)別的一個(gè)示例: 人類視覺(jué)原理1 對(duì)于不同的物體,人類視覺(jué)也是通過(guò)這樣逐層分級(jí),來(lái)進(jìn)行認(rèn)知的: 人類視覺(jué)原理2 我們可以看到,在最底層特征基本上是類似的,就是各種邊緣,越往上,越能提取出此類物體的一些特征(輪子、眼睛、軀干等),到最上層,不同的高級(jí)特征最終組合成相應(yīng)的圖像,從而能夠讓人類準(zhǔn)確的區(qū)分不同的物體。 那么我們可以很自然的想到:可以不可以模仿人類大腦的這個(gè)特點(diǎn),構(gòu)造多層的神經(jīng)網(wǎng)絡(luò),較低層的識(shí)別初級(jí)的圖像特征,若干底層特征組成更上一層特征,最終通過(guò)多個(gè)層級(jí)的組合,最終在頂層做出分類呢? 答案是肯定的,這也是許多深度學(xué)習(xí)算法(包括CNN)的靈感來(lái)源。 卷積神經(jīng)網(wǎng)絡(luò)-CNN 的基本原理典型的 CNN 由3個(gè)部分構(gòu)成: 卷積層 池化層 全連接層 如果簡(jiǎn)單來(lái)描述的話: 卷積層負(fù)責(zé)提取圖像中的局部特征;池化層用來(lái)大幅降低參數(shù)量級(jí)(降維);全連接層類似傳統(tǒng)神經(jīng)網(wǎng)絡(luò)的部分,用來(lái)輸出想要的結(jié)果。 典型的 CNN 由3個(gè)部分構(gòu)成 下面的原理解釋為了通俗易懂,忽略了很多技術(shù)細(xì)節(jié),如果大家對(duì)詳細(xì)的原理感興趣,可以看這個(gè)視頻《卷積神經(jīng)網(wǎng)絡(luò)基礎(chǔ)》。 卷積——提取特征 卷積層的運(yùn)算過(guò)程如下圖,用一個(gè)卷積核掃完整張圖片: 卷積層運(yùn)算過(guò)程 這個(gè)過(guò)程我們可以理解為我們使用一個(gè)過(guò)濾器(卷積核)來(lái)過(guò)濾圖像的各個(gè)小區(qū)域,從而得到這些小區(qū)域的特征值。 在具體應(yīng)用中,往往有多個(gè)卷積核,可以認(rèn)為,每個(gè)卷積核代表了一種圖像模式,如果某個(gè)圖像塊與此卷積核卷積出的值大,則認(rèn)為此圖像塊十分接近于此卷積核。如果我們?cè)O(shè)計(jì)了6個(gè)卷積核,可以理解:我們認(rèn)為這個(gè)圖像上有6種底層紋理模式,也就是我們用6中基礎(chǔ)模式就能描繪出一副圖像。以下就是25種不同的卷積核的示例: 25種不同的卷積核 總結(jié):卷積層的通過(guò)卷積核的過(guò)濾提取出圖片中局部的特征,跟上面提到的人類視覺(jué)的特征提取類似。 池化層(下采樣)——數(shù)據(jù)降維,避免過(guò)擬合 池化層簡(jiǎn)單說(shuō)就是下采樣,他可以大大降低數(shù)據(jù)的維度。其過(guò)程如下: 池化層過(guò)程 上圖中,我們可以看到,原始圖片是20×20的,我們對(duì)其進(jìn)行下采樣,采樣窗口為10×10,最終將其下采樣成為一個(gè)2×2大小的特征圖。 之所以這么做的原因,是因?yàn)榧词棺鐾炅司矸e,圖像仍然很大(因?yàn)榫矸e核比較小),所以為了降低數(shù)據(jù)維度,就進(jìn)行下采樣。 總結(jié):池化層相比卷積層可以更有效的降低數(shù)據(jù)維度,這么做不但可以大大減少運(yùn)算量,還可以有效的避免過(guò)擬合。 全連接層——輸出結(jié)果 這個(gè)部分就是最后一步了,經(jīng)過(guò)卷積層和池化層處理過(guò)的數(shù)據(jù)輸入到全連接層,得到最終想要的結(jié)果。 經(jīng)過(guò)卷積層和池化層降維過(guò)的數(shù)據(jù),全連接層才能”跑得動(dòng)”,不然數(shù)據(jù)量太大,計(jì)算成本高,效率低下。 全連接層 典型的 CNN 并非只是上面提到的3層結(jié)構(gòu),而是多層結(jié)構(gòu),例如 LeNet-5 的結(jié)構(gòu)就如下圖所示: 卷積層 – 池化層- 卷積層 – 池化層 – 卷積層 – 全連接層 在了解了 CNN 的基本原理后,我們重點(diǎn)說(shuō)一下 CNN 的實(shí)際應(yīng)用有哪些。 CNN 有哪些實(shí)際應(yīng)用?卷積神經(jīng)網(wǎng)絡(luò) – CNN 很擅長(zhǎng)處理圖像。而視頻是圖像的疊加,所以同樣擅長(zhǎng)處理視頻內(nèi)容。下面給大家列一些比較成熟的應(yīng)用: 圖像分類、檢索 圖像分類是比較基礎(chǔ)的應(yīng)用,他可以節(jié)省大量的人工成本,將圖像進(jìn)行有效的分類。對(duì)于一些特定領(lǐng)域的圖片,分類的準(zhǔn)確率可以達(dá)到 95%+,已經(jīng)算是一個(gè)可用性很高的應(yīng)用了。 典型場(chǎng)景:圖像搜索…
CNN應(yīng)用-圖像分類、檢索 目標(biāo)定位檢測(cè) 可以在圖像中定位目標(biāo),并確定目標(biāo)的位置及大小。 典型場(chǎng)景:自動(dòng)駕駛、安防、醫(yī)療…
CNN應(yīng)用-目標(biāo)定位檢測(cè) 目標(biāo)分割 簡(jiǎn)單理解就是一個(gè)像素級(jí)的分類。 他可以對(duì)前景和背景進(jìn)行像素級(jí)的區(qū)分、再高級(jí)一點(diǎn)還可以識(shí)別出目標(biāo)并且對(duì)目標(biāo)進(jìn)行分類。 典型場(chǎng)景:美圖秀秀、視頻后期加工、圖像生成…
CNN應(yīng)用-目標(biāo)分割 人臉識(shí)別 人臉識(shí)別已經(jīng)是一個(gè)非常普及的應(yīng)用了,在很多領(lǐng)域都有廣泛的應(yīng)用。 典型場(chǎng)景:安防、金融、生活…
CNN應(yīng)用-人臉識(shí)別 骨骼識(shí)別 骨骼識(shí)別是可以識(shí)別身體的關(guān)鍵骨骼,以及追蹤骨骼的動(dòng)作。 典型場(chǎng)景:安防、電影、圖像視頻生成、游戲…
CNN應(yīng)用-骨骼識(shí)別 總結(jié)今天我們介紹了 CNN 的價(jià)值、基本原理和應(yīng)用場(chǎng)景,簡(jiǎn)單總結(jié)如下: CNN 的價(jià)值: 能夠?qū)⒋髷?shù)據(jù)量的圖片有效的降維成小數(shù)據(jù)量(并不影響結(jié)果) 能夠保留圖片的特征,類似人類的視覺(jué)原理 CNN 的基本原理: 卷積層 – 主要作用是保留圖片的特征 池化層 – 主要作用是把數(shù)據(jù)降維,可以有效的避免過(guò)擬合 全連接層 – 根據(jù)不同任務(wù)輸出我們想要的結(jié)果 CNN 的實(shí)際應(yīng)用: 圖片分類、檢索 目標(biāo)定位檢測(cè) 目標(biāo)分割 人臉識(shí)別 骨骼識(shí)別 本文首發(fā)在 easyAI - 人工智能知識(shí)庫(kù) 《一文看懂卷積神經(jīng)網(wǎng)絡(luò)-CNN(基本原理+獨(dú)特價(jià)值+實(shí)際應(yīng)用)》 |
|
|
來(lái)自: taotao_2016 > 《AI》