解決的問題
在CNN沒有出現(xiàn)前,圖像對人工智能來說非常難處理。
主要原因:
- 圖像要處理的數(shù)據(jù)量太大了。圖像由像素組成,每個像素又由不同顏色組成,一張1000×1000彩色RGB圖像需要的參數(shù)是1000×1000×3,需要三百萬參數(shù)左右,普通神經(jīng)網(wǎng)絡(luò)會全用全連接方法來學(xué)習(xí)整幅圖像上的特征,處理起來無論是計算還是存儲都需要很大的資源。
- 很難保留圖像特征。一張圖像做了一些翻轉(zhuǎn)、旋轉(zhuǎn)、縮放的那個操作的時候,線性向量表示會發(fā)生很大的變化,機器沒法認(rèn)為是同一張圖。而CNN能夠讓機器“以視覺的方式看待圖像數(shù)據(jù)”,能利用視覺原理捕獲到圖像數(shù)據(jù)中的特征。
人類的視覺原理
深度學(xué)習(xí)是基于神經(jīng)網(wǎng)絡(luò)的實現(xiàn)的,而神經(jīng)網(wǎng)絡(luò)是一種模仿生物神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)和功能的數(shù)學(xué)模型或計算模型。所以深度學(xué)習(xí)的許多研究成果,離不開對大腦認(rèn)知原理的研究。CNN就借鑒了人類視覺系統(tǒng)層次結(jié)構(gòu)。
人類的視覺原理:瞳孔攝入原始像素信號,然后大腦皮層某些細(xì)胞發(fā)現(xiàn)邊緣和方向,大腦進行抽象判斷特征例如物體形狀,最后再進一步做出判斷例如物體是個人。
下圖是一個大腦進行人臉識別的示例圖:
通過模仿人類的視覺原理的特點,來構(gòu)造神經(jīng)網(wǎng)絡(luò),低層的識別圖像初級特征,若干曾底層特征組成更上一層的特征,最終通過多個層級組合,在頂層做出分類判斷。
原理
CNN(Convolutional Neural Network,卷積神經(jīng)網(wǎng)絡(luò))結(jié)構(gòu)可以分為3層:卷積層、池化層和全連接層。
卷積層——提取特征
卷積層(Convolutional Layer) :主要作用是提取特征。
過程:一個過濾器(卷積核,F(xiàn)ilter)來過濾圖像各個小區(qū)域,從而得到各個小區(qū)域的特征。卷積層通過卷積核的過濾提取出圖片中局部的特征,與人類視覺的特征提取類似。
實際應(yīng)用的時候,往往會有很多種卷積核,不同卷積核識別不同的圖像模式,也就是不同的特征。
池化層——數(shù)據(jù)降維
池化層(Max Pooling Layer) :提取某個區(qū)域的總結(jié)特征,主要作用是下采樣(Downsampling),能夠數(shù)據(jù)降維,但是不會損壞識別結(jié)果。
原因:做完卷積后的圖像依然很大,1000*1000經(jīng)過10種卷積核后,得到1000×1000×10,維度非常大。通過池化層,能降低數(shù)據(jù)大小,同時不會對識別結(jié)果造成破壞。
池化層函數(shù):是一種統(tǒng)計函數(shù),通常由最大池化(提取區(qū)域內(nèi)的最大特征)、平均池化(提取區(qū)域內(nèi)的平均特征)、混合池化等。
過程:下圖采用最大池化策略,對4×4的矩陣按照2×2進行分開,每個2×2取最大值保留下來。
好處:除了降低參數(shù)量,還有個優(yōu)點就是能夠避免過擬合。池化是提取某個區(qū)域的總結(jié)特征,是對某個區(qū)域全局的考量,減少了對具體像素的依賴性,從而降低了過擬合風(fēng)險。例如某個點其實是噪聲,但是池化總結(jié)特征的時候被舍棄了,就沒有影響;如果不池化,后續(xù)調(diào)參的時候還會考慮到噪聲。
全連接層——輸出結(jié)果
全連接層(Fully Connected Layer):主要作用是分類。通過卷積層和池化層的出來的特征,需要讓全連接層對前面總結(jié)好的特征做分類判斷。
過程:“全連接”前層網(wǎng)絡(luò)中的所有神經(jīng)元都與下一層的所有神經(jīng)元連接。
應(yīng)用
圖像處理
- 圖像分類(Image Classification):判斷圖片中的物體屬于哪一個類別。
舉例:LeNet-5用來對手寫字體識別,被認(rèn)為是最早的CNN模型,作者LeCun Y也被譽為CNN之父。 - 圖像分割(Image Segmentation):為圖片每個對象創(chuàng)造一個像素級別的掩膜。
分類:語義分割和實例分割。
語義分割(Semantic Segmentation):為圖像中的每個像素分配一個類別,但是同一類別之間的對象不會區(qū)分。
實例分割(Instance Segmetation):實例分割還會對同一類別的對象進行區(qū)分。
下圖中左邊是語義分割,右邊是實例分割: - 目標(biāo)檢測(Object Detection):目標(biāo)定位并且能對目標(biāo)物體進行分類。
與目標(biāo)定位的區(qū)別:目標(biāo)定位通常是針對單個檢測對象,而目標(biāo)檢測能檢測多個對象。此外,圖像分類也是針對單個對象的。
與圖像分割的區(qū)別:目標(biāo)檢測和目標(biāo)定位都只是定位出目標(biāo)的位置,通常是用一個方框表示,而圖像分割則是每個像素屬于那個對象,對象的輪廓會更加清楚。 - 超分辨率(Super-Resolution):提高原有圖像的分辨率。
自然語言處理
除了在圖像處理領(lǐng)域,CNN 在自然語言處理(Natural Language Processing,NLP)也有應(yīng)用。
輸入:任何矩陣都可以作為CNN的輸入,所以輸入也可以是詞向量組成的矩陣,即矩陣每一行代表一個詞,也可以是一個字符。
卷積:過濾器“寬度”通常和輸入矩陣的寬度相同,也就是輸入的詞向量大??;高度可能會有所不同,也每次卷積多少個詞。文章來源:http://www.zghlxwxcb.cn/news/detail-666522.html
池化:進一步降低參數(shù)量,避免過擬合,例如最大池化、平均池化。文章來源地址http://www.zghlxwxcb.cn/news/detail-666522.html
到了這里,關(guān)于深度學(xué)習(xí)|CNN卷積神經(jīng)網(wǎng)絡(luò)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!