卷積神經網路基礎

2021-08-28 09:53:04 字數 1775 閱讀 3309

卷積神經網路出現的意義

計算機視覺問題中,輸入的往往畫素都很高。例如,一張普通的畫素為1000 * 1000,那麼輸入x的維數就是1000 * 1000 * 3,w[1]就是乙個3,000,000列的矩陣。

在神經網路中引數如此多的情況下,找到足夠多的資料來保證不發生overfitting是很難的。

卷積神經網路就是為了處理大影象輸入問題而誕生的。

卷積運算

e.g.在一張圖中找出垂直的邊緣線

關於怎麼找,先上圖:

上面的3個方格從左到右為:

中間:用於卷積計算的矩陣,稱為過濾器(filter)。

過濾器的「過濾方法」:

可見:1、直觀地,輸出畫素=輸入中某個區域左邊緣畫素之和-右邊緣畫素之和。

2、輸出的邊長=輸出的邊長 - filter的邊長(預設為3)+1

因此,當輸入畫素》3,可以認為輸入和輸出一樣大。

可以認為邊界的寬度就是filter的大小,即3個畫素。一般而言,不論輸入/出多大,filter長寬都是3個畫素。換言之,當輸入/出遠遠大於3個畫素的寬度,那麼輸出中通過filter得到的一些顏色相近的點的集合確實近似於一條細線

輸出不僅能反映邊緣,還能反映是從亮的一側進入暗的一側還是相反。

如圖,因為0>-30,所以是從亮入暗;反之同理。

卷積運算也有缺陷:

1、每卷積一次,輸出的尺寸會縮小2.

2、邊緣上的畫素點被用到的次數遠小於中間畫素點。

e.g.4個角上的畫素點只會被用到1次,但中間的畫素點會被用到9次。

解決方法:padding(填充)

上圖:

操作:將輸入四周圍上一圈寬度為p,值為0的畫素點。

作用:1、擴大了輸入,輸出的大小和原始輸入相同。

顯然,p=(f-1)/2,f為過濾器的邊長。(這就是大部分過濾器都是奇數邊長的原因)

2、原始左上角的畫素點被使用了4次,而非原本的1次。

其他:步幅卷積(strided convolution):過濾器每次移動的步長》1

上圖:

上圖輸出中的100,是輸入中

7 46

9878

38\begin 7&4&6 \\9&8&7\\8&3&8 \end

798​48

3​67

8​和過濾器的卷積。

至於這樣做有什麼用……可以簡化輸出?

卷積神經網路

卷積神經網路的作用:通過神經網路訓練filter中9個引數。

注:filter不一定是像上面看到的這樣中間全0,因為還要檢測斜的邊界。

卷積神經網路 基礎

啟用函式 常用的啟用函式有sigmoid tanh relu等等,前兩者sigmoid tanh比較常見於全連線層,後者relu常見於卷積層。在卷積神經網路中,啟用函式一般用relu the rectified linear unit,修正線性單元 收斂快,求梯度簡單。計max 0,t 就是如果這個...

卷積神經網路基礎

資料輸入層 input layer 卷積計算層 conv layer relu激勵層 relu layer 池化層 pooling layer 全連線層 fc layer 該層要做的處理主要是對原始影象資料進行預處理,其中包括 去均值 把輸入資料各個維度都中心化為0,如下圖所示,其目的就是把樣本的中...

神經網路 卷積神經網路

這篇卷積神經網路是前面介紹的多層神經網路的進一步深入,它將深度學習的思想引入到了神經網路當中,通過卷積運算來由淺入深的提取影象的不同層次的特徵,而利用神經網路的訓練過程讓整個網路自動調節卷積核的引數,從而無監督的產生了最適合的分類特徵。這個概括可能有點抽象,我盡量在下面描述細緻一些,但如果要更深入了...