圖像識(shí)別:卷積神經(jīng)網(wǎng)絡(luò)
? 本文轉(zhuǎn)載自微信公眾號(hào)「活在信息時(shí)代」,作者活在信息時(shí)代。轉(zhuǎn)載本文請(qǐng)聯(lián)系活在信息時(shí)代公眾號(hào)。
卷積神經(jīng)網(wǎng)絡(luò)層(Convolutional Neural Network,CNN)是一種特殊的深層前饋網(wǎng)絡(luò),一般包括數(shù)據(jù)輸入層、卷積層、激活層、下采樣層和全連接層。
卷積層是卷積神經(jīng)網(wǎng)絡(luò)中重要的單元,它的構(gòu)成是一系列對(duì)數(shù)據(jù)進(jìn)行濾波的卷積核,其本質(zhì)就是圖像的局部區(qū)域與卷積核的權(quán)值加權(quán)求和的線性疊加過(guò)程。圖像I作為輸入,使用二維的卷積核K進(jìn)行卷積,則卷積過(guò)程可表示為:
其中,I(i,j)為圖像在(i,j)位置的值,S(i,j)為卷積運(yùn)算后得到的特征圖。
激活卷積操作是線性的,只能進(jìn)行線性的映射,表達(dá)能力有限。因此針對(duì)非線性映射問(wèn)題的處理是,需要引入非線性激活函數(shù)。對(duì)于處理不同的非線性問(wèn)題,引入的激活函數(shù)也不同,常用的主要有sigmoid、tanh、relu等。
Sigmoid函數(shù)表達(dá)式為:
Tanh函數(shù)表達(dá)式為:
Relu函數(shù)的表達(dá)式為:
下采樣層又叫池化層,一般會(huì)放在幾個(gè)卷積層之后,來(lái)減小特征圖像的大小。池化函數(shù)使用某一位置的相鄰輸出的總體統(tǒng)計(jì)特征來(lái)代替網(wǎng)絡(luò)在該位置的輸出。一般池化層有三個(gè)功能:一是降低特征維度,池化操作相當(dāng)于又進(jìn)行了一次特征提取過(guò)程,可以去除冗余信息,減小下一層的數(shù)據(jù)處理量。二是為了防止過(guò)擬合,池化操作獲得更為抽象的信息,提高泛化性。三是保持特征不變性,池化操作保留最重要的特征。
全連接層通常放在卷積神經(jīng)網(wǎng)絡(luò)的尾部,層與層之間所有的神經(jīng)元都有權(quán)值連接。目的是將網(wǎng)絡(luò)中學(xué)習(xí)到的特征全部映射到樣本的標(biāo)記空間,從而進(jìn)行類別判斷。Softmax函數(shù)通常用在神經(jīng)網(wǎng)絡(luò)的最后一層,作為分類器的輸出,softmax函數(shù)輸出的每個(gè)值的范圍都在(0,1)之間。
有一些經(jīng)典高效的CNN模型,例如:VGGNet、ResNet、AlexNet等,都已廣泛應(yīng)用于圖像識(shí)別領(lǐng)域。