卷積神經網路你需要知道的幾個基本概念

2021-08-25 14:20:52 字數 1423 閱讀 1002

1.1 為什麼有了全連線網路模型還要cnn?

全連線網路模型是指在神經網路中每兩層之間的所有結點都是相連線的,但在處理影象資料時,全連線網路所需要的引數個數太多,比如處理一張單通道,大小為2828,設隱藏層的節點數為500個,則由其組成的全連線網路模型的引數有`2828*500+500=392500`,「+500」是因為考慮了偏置項b的情況,而當更大時,引數會急劇增多,引數過多不僅會導致網路模型計算速度變慢,同時也容易導致過擬合問題,cnn的出現就是為了在一定程度上改善這種情況。

1.2 卷積層和池化層

圖1展示了乙個典型的cnn模型結構圖。

從上圖中可以看出,cnn的卷積層(convolution)和池化層(polling)中每個節點只與上一層的部分節點相連,卷積層的每個節點的輸入只是上一層中的一小塊,這個小塊的大小由卷積核的視窗大小決定,通常來說,經過卷積層處理的節點矩陣會變得更深,具體的深度由卷積層中卷積核的多少來決定。卷積核的引數是共享可以使得影象上的內容不受位置的影響,即中的貓不管是在的左上角或者右下角都應該被分類為貓,同時共享卷積核的引數可以大幅減少網路模型中的引數,降低運算的複雜度。

池化層的每個節點的輸入也是上一層(通常是卷積層)的一小塊,這個小塊的大小由池化核的視窗大小決定,池化層不會改變節點矩陣的深度,但它可以改變矩陣的大小,通俗來說,對於影象處理,池化層中池化操作可以理解為是將一張解析度高的轉化為解析度低的。常用的池化操作有最大池化、平均池化等,通過卷積層和池化層後,可以進一步縮小網路模型中的引數個數,下面我們來分析下cnn如何減少網路模型中的引數。

1.2.1 維度變化過程

卷積層是cnn中重要的概念之一,通過卷積核對上一層進行卷積操作,完成特徵抽取。本節主要分析卷積層和池化層的維度變化過程,在使用全0填充(如果步長為1則可避免節點矩陣通過卷積層後尺寸發生變化)時,卷積層\池化層的輸出維度計算公式為:

out(longth)表示卷積層輸出矩陣的長度,它等於輸入層矩陣長度除以在長度方向上的步長的向上取整值,out(width)表示卷積層輸出矩陣的寬度,它等於輸入層矩陣寬度除以在寬度方向上的步長的向上取整值。

如果不使用全0填充,則卷積層\池化層的輸出維度計算公式為:

filter(length)表示卷積核\池化核在在長度方向上的大小,filter(width)表示卷積核\池化核在在寬度方向上的大小。

假如輸入層矩陣的維度為32*32*1,1代表灰度影象,第一層卷積核尺寸為5*5,深度為6(即有6個卷積核),不使用全0填充,步長為1。則卷積層的輸出維度為(32-5+1=28),卷積層的引數共有5*5*1*6+6=156個,這裡可以發現,卷積層的引數個數與大小無關,它只與卷積核尺寸、深度以及當前層節點矩陣的深度有關,這使得cnn可以擴充套件到任意大小的影象資料上,卷積層的輸出維度即下一層(通常是池化層)的輸入維度有28*28*6=4704個節點;池化層的池化核大小為2*2,步長為2,池化層的輸出維度為(28-2+1)/2=13.5,向上取整的結果為14,池化層不影響節點矩陣的深度,則池化層的輸出維度為14*14*6。

卷積神經網路 有趣的卷積神經網路

一 前言 最近一直在研究深度學習,聯想起之前所學,感嘆數學是一門樸素而神奇的科學。f g m1 m2 r 萬有引力描述了宇宙星河運轉的規律,e mc 描述了恆星發光的奧秘,v h d哈勃定律描述了宇宙膨脹的奧秘,自然界的大部分現象和規律都可以用數學函式來描述,也就是可以求得乙個函式。神經網路 簡單又...

OpenCV4深度神經網路 卷積神經網路基礎

前面關於神經網路的介紹,我們想想為什麼 dnn 在訓練後能夠正確地分類?那肯定是它學到了東西,學到什麼東西呢?它學到了中的某些空間結構,不同數字它們的空間結構肯定是不一樣的,而這樣的空間結構就是由畫素點與畫素點之間的關係形成。我們再仔細看 dnn輸入層和第乙個隱藏層,發現它對我們輸入的784個畫素點...

卷積神經網路的卷積操作

卷積的運算可以分為反轉 平移,相乘,求和。在影象處理中,影象是乙個大矩陣,卷積模板是乙個小矩陣。按照上述過程,就是先把小矩陣反轉,然後平移到某一位置,小矩陣的每乙個小格對應大矩陣裡面的乙個小格,然後把對應小格裡面的數相乘,把所有對應小格相乘的結果相加求和,得出的最後結果賦值給小矩陣 小格對應的影象中...