卷積神經網路是深度學習中最經典的模型之一。當今大多數的深度學習經典模型中都能找到卷積神經網路的影子。卷積和池化可以追溯到lenet-5網路,這是由 lecun等人於2023年所提出的,其中的卷積與池化操作這一概念,對後來的卷積神經網路的發展影響巨大。
它的網路結構主要包括卷積層、池化層和全連線層。
卷積分為窄卷積、全卷積和同卷積。但是在介紹卷積類別前,我們先了解關於卷積操作的基本概念。
以tensorflow中的卷積函式為例
tf.nn.conv2d(input, filter, strides, padding, use_cudnn_on_gpu=none, name=none
其中卷積核就是乙個nxm的矩陣,n和m是自己設定的,一般情況下為是相等的。類似於sobel運算元:
但是這裡的卷積核裡的數值是隨機的,然後通過反向傳播來改變卷積核的數值,不過這是後面的事了。卷積過程如下
其中綠色部分為卷積核,卷積操作是將卷積核對應的中的矩陣資料意義相乘,再相加。右邊紅色為特徵影象(feature map),其中第一行第乙個元素就是塊中前3行與3列中的數值與卷積核相乘再相加得到的結果。這裡展示的只有乙個矩陣影象,彩色影象rgb是三通道,所以這裡需要乙個三維的卷積核進行卷積操作,然後三個維度相加,也就是說你通道數為多少,卷積核的通道數就為多少,乙個卷積核能獲取到乙個feature map。
步長是卷積操作的核心。通過步長的變換,可以得到想要的不同型別的卷積操作。如上圖卷積卷積操作圖,卷積核在移動時,每一次只移動了乙個畫素格,且在列方向上移動時,同樣只移動了一格,這裡的步長就為1。
i為原圖維數
m為卷積核維數(mxm矩陣)
f為步長
p為原圖邊框外圈補0的層數
卷 積後
影象大小
=(i−
m)/f
+1卷積後影象大小 = (i-m)/f+1
卷積後影象大
小=(i
−m)/
f+1(這裡的影象的長寬相等)向上取整
池化層主要目的是降維,即在儲存**特徵的基礎上最大限度地將陣列的維數變小。池化的操作外表跟卷積很像,只是演算法不同。
這個很好理解,就以3*3的大小為例,濾波器所對應的影象中的9個格仔所有不為0的畫素點去均值。這個得到特徵資料會對背景資訊更加敏感。
注:一定是不為0的畫素點,否則把0畫素點帶上會增加分母,使得整體數值變低。
這個就是選取對應區域中畫素點最大的值。這個得到的特徵資料會對紋理特徵資訊更加敏感。
上圖就是採用最大池化,且核為2*2,步長為2。
第一次寫部落格,打算記錄學習路徑與回顧曾經學的東西,其中肯定會有許多不足的地方,希望自己能堅持下去,同時如果有錯誤或者不足的地方希望大家理解、提出!
卷積神經網路 池化層
池化層的作用 增加平移不變性 降取樣,即降維 增大感受野 平移的不變性是指當我們對輸入進行少量平移時,經過池化函式後的大多數輸出並不會發生改變。區域性平移不變性是乙個有用的性質,尤其是當我們關心某個特徵是否出現,而不關心它出現的具體位置時。保留主要特徵的同時減少引數和計算量,防止過擬合,提高模型泛化...
卷積與卷積神經網路
神經網路中的卷積是指用乙個卷積核 也叫濾波器 實質上是乙個矩陣,在影象上掃瞄一遍,得到乙個新的影象。掃瞄的實質,就是矩陣大小的影象畫素值,和卷積核做運算,然後得到新的畫素值,放到新的影象中 運算不是一行乘一列的乘法,而是哈達馬積,即對應位置的元素一一相乘。最後,把哈達馬積得到的矩陣上的每乙個元素求和...
迴圈神經網路 卷積 池化 GRU
卷積 池化 卷積 gru from keras.models import sequential from keras import layers from keras.optimizers import rmsprop model sequential model.add layers.conv1...