卷積過濾器的寬度 卷積神經網路簡析

2021-10-16 10:45:32 字數 2601 閱讀 2368

卷積是一種數**算,它採用某種方式將乙個函式「應用」到另乙個函式。結果可以理解為兩個函式的「混合體」。卷積由乙個星號 (*) 表示,這可能與許多程式語言中通常用於乘法的 * 運算子混淆。

不過,這對檢測影象中的目標有何幫助?事實證明,卷積非常擅長檢測影象中的簡單結構,然後結合這些簡單特徵來構造更複雜的特徵。在卷積網路中,會在一系列的層上發生此過程,每層對前一層的輸出執行一次卷積。

那麼,您會在計算機視覺中使用哪種卷積呢?要理解這一點,首先必須了解影象到底是什麼。影象是一種二階或三階位元組陣列,二階陣列包含寬度和高度兩個維度,三階陣列有 3 個維度,包括寬度、高度和多個通道。所以灰階圖是二階的,而 rgb 圖是三階的(包含 3 個通道)。位元組的值被簡單解釋為整數值,描述了必須在相應畫素上使用的特定通道數量。所以基本上講,在處理計算機視覺時,可以將乙個影象想象為乙個 2d 數字陣列(對於 rgb 或 rgba 影象,可以將它們想象為 3 個或 4 個 2d 數字陣列的相互重疊)。

因此,我的卷積獲取此陣列(我暫時假設該圖是灰階的),並將它與第二個陣列(乙個過濾器)進行卷積運算。卷積過程如下。首先,將過濾器疊加在影象陣列的左上部。接下來,對過濾器及其目前所在的影象子部分執行對應元素乘積。也就是說,將過濾器的左上部元素與影象的左上部元素相乘,依此類推。然後,將這些結果相加來生成乙個值。接著,將過濾器在影象上移動一段距離(稱為步幅),並重複該過程。此過程的輸出是乙個具有與影象陣列不同維數的新陣列(結果通常具有更小的寬度和高度,但包含更多的通道)。為了演示卷積運算的工作原理,讓我們來看乙個示例。這是乙個 3 x 3 過濾器:

我將把這個過濾器應用到下圖。

向此圖應用了一輪過濾器後,我獲得了以下結果。

希望您可以看到,過濾器似乎將各個值垂直排列。這意味著它辨別出了影象中的垂直特徵,這一點可以在結果中看到。這是乙個在執行 cnn 時學到的過濾器值。

應該注意的是,步幅和過濾器大小是超引數,這意味著模型不會學習它們。所以您必須應用科學思維來確定這些數量中的哪些值最適合您的應用程式。

對於卷積,您需要理解的最後乙個概念是填充。如果您的影象無法在整數次內與過濾器擬合(將步幅考慮在內),那麼您必須填充影象。可通過兩種方式實現此操作:valid 填充和 same 填充。基本上講,valid 填充丟棄了影象邊緣的所有剩餘值。也就是說,如果過濾器為 2 x 2,步幅為 2,影象的寬度為 3,那麼 valid 填充會忽略來自影象的第三列值。same 填充向影象邊緣新增值(通常為 0)來增加它的維數,直到過濾器能夠擬合整數次。這種填充通常以對稱方式進行的(也就是說,會嘗試在影象的每一邊新增相同數量的列/行)。

同樣值得注意的是,影象卷積的用途並不僅限於計算機視覺。許多影象過濾技術都可以使用卷積來實現,比如模糊化和銳化。

下面的基本 python **展示了卷積運算的工作原理(您可以讓此**變得更簡潔,比如通過使用 numpy):

def basic_conv(image, out, in_width, in_height, out_width, out_height, filter,

filter_dim, stride):

result_element = 0

for res_y in range(out_height):

for res_x in range(out_width):

for filter_y in range(filter_dim):

for filter_x in range(filter_dim):

image_y = res_y + filter_y

image_x = res_x + filter_x

result_element += (filter[filter_y][filter_x] *

image[image_y][image_x])

out[res_y][res_x] = result_element

result_element = 0

res_x += (stride - 1)

res_y += (stride - 1)

return out

請注意,如果希望將結果寫到影象檔案中(像我上面那樣對它進行視覺化),則必須限制輸出值,使它們不超過 255。

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

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

卷積神經網路 卷積層

1 2 該部落格主要是對網上知識點的學習和整理,方便日後複習。侵刪。卷積神經網路 cnn 一般由輸入層 卷積層 啟用函式 池化層 全連線層組成,即input 輸入層 conv 卷積層 relu 啟用函式 pool 池化層 fc 全連線層 當我們給定乙個 x 的圖案,計算機怎麼識別這個圖案就是 x 呢...

卷積神經網路膨脹卷積

卷積核就是影象處理時,給定輸入影象,輸入影象中乙個小區域中畫素加權平均後成為輸出影象中的每個對應畫素,其中權值由乙個函式定義,這個函式稱為卷積核 又稱濾波器。卷積核的大小一般有1x1,3x3和5x5的尺寸 一般是奇數x奇數 同樣提取某個特徵,經過不同卷積核卷積後效果也不一樣 可以發現同樣是銳化,5x...