天天看點

一文讀懂卷積神經網絡CNN(學習筆記)

首先文章的提綱為:

CNN栗子鎮樓

What is CNN

什麼是卷積

什麼是池化

Why CNN

對CNN的其他一些了解

CNN實作(接口)

1、CNN栗子(A Beginning Glimpse of CNN)

Modern CNN since Yann LeCun

<b></b>

一文讀懂卷積神經網絡CNN(學習筆記)

2.

一文讀懂卷積神經網絡CNN(學習筆記)

上面是最經典和開始的兩篇CNN的結構圖

2、What is CNN?

神經網絡?卷積?

2.1 什麼是卷積?

卷積的定義

其連續的定義為:

一文讀懂卷積神經網絡CNN(學習筆記)

特點:

一文讀懂卷積神經網絡CNN(學習筆記)

2.2 離散卷積的栗子:

丢骰子時加起來要等于4的機率是多少?

一文讀懂卷積神經網絡CNN(學習筆記)

二維離散的卷積

一文讀懂卷積神經網絡CNN(學習筆記)

計算的動圖如下

一文讀懂卷積神經網絡CNN(學習筆記)

2.3 用到二維圖像上:

關于卷積中常用到的一些概念:神經網絡的卷積是對應位相乘,現在是信号相乘。

一文讀懂卷積神經網絡CNN(學習筆記)
一文讀懂卷積神經網絡CNN(學習筆記)

上面移動的小矩陣有兩種叫法,一種叫做濾波器filter,一種加法叫做卷積核Kernel,是相同的東西隻是不同的叫法。

一文讀懂卷積神經網絡CNN(學習筆記)

2.4、用到神經網絡中

一文讀懂卷積神經網絡CNN(學習筆記)

我們其實需要學習的就是裡面的線上面對應的權值,比如上面綠色的代表3*1的卷積核大小,隻是這裡用神經網絡的結構表示出來了。

2.5、卷積的細節

filter/Kernel size,number

假設神經網絡的輸入是6*6的image,

一文讀懂卷積神經網絡CNN(學習筆記)

其中每一個卷積核代表提取不同的特征,多個卷積核提取的特征然後進行組合(這樣更強大),一同送入到後續的結構。

下面來一個更通俗的解釋:

一文讀懂卷積神經網絡CNN(學習筆記)

每個人代表一個卷積核來進行提取不同的特征,一個人是弱小的,但是一組人就強大了,他們有着不同的知識(權重),這樣類比來了解,就會好了解很多。

Stride

The step size you take the filter to sweep the image
一文讀懂卷積神經網絡CNN(學習筆記)

Zero-padding

A way not to ignore pattern on border

New image is smaller than the original image

一文讀懂卷積神經網絡CNN(學習筆記)

Channel

一文讀懂卷積神經網絡CNN(學習筆記)

2.6 池化(pooling)

一文讀懂卷積神經網絡CNN(學習筆記)

Max pooling 例子:

一文讀懂卷積神經網絡CNN(學習筆記)

Pooling is unsensitive to local translation.(局部不變性)

"If we translation the input by a small amount ,the values of mosts of the pooled outputs do not change."

圖像往左或者往右移動,pooling 的結果是不變的

一文讀懂卷積神經網絡CNN(學習筆記)

2.7 flatten

一文讀懂卷積神經網絡CNN(學習筆記)

2. 8 Convolution v.s. Fuly Connected

一文讀懂卷積神經網絡CNN(學習筆記)
一文讀懂卷積神經網絡CNN(學習筆記)
一文讀懂卷積神經網絡CNN(學習筆記)

2.9 The whole CNN

一文讀懂卷積神經網絡CNN(學習筆記)

So as the whole,CNN is conposed of

Convolution

Nonlinearity:e.g.ReLU

Pooling

FC Layers

一文讀懂卷積神經網絡CNN(學習筆記)

3. Why CNN

Some patterns are much smaller whole image.

一文讀懂卷積神經網絡CNN(學習筆記)

The same patterns appear in different regions

一文讀懂卷積神經網絡CNN(學習筆記)

Subsampling the pixels will not change the object

一文讀懂卷積神經網絡CNN(學習筆記)

4. 對CNN的其他一些了解

4.1 關于接受域(receptive field)

稱在底層中影響上層輸出單元s的單元合集為s的接受域(receptive field)。

一文讀懂卷積神經網絡CNN(學習筆記)

處于卷積網絡更深的層中的單元,它們的接受域要比處在淺層的單元的接受的域更大。如果網絡還包含類似步幅卷積或者池化之類的結構特征,這種效應會加強。這意味着在卷積網絡中盡管直接連接配接都是很稀疏的,但處在更深的層中的單元可以間接地連結到全部或者大部分輸入圖像。(表現性能)

一文讀懂卷積神經網絡CNN(學習筆記)

4.2 卷積與池化作為一種無限強的先驗

首先,弱先驗具有較高的熵值,是以自由性較強,強先驗具有較低的熵值,這樣的先驗在決定參數最終取值時可以起着非常積極的作用。

把卷積網絡類比成全連接配接網絡,但對于網絡的權重具有無限強的先驗。

所有隐藏單元的權重是共享的。

除了一些連續的小單元的權重外,其他的權重都是0.

池化也是一個無限強的先驗:每個單元都具有對少量平移的不變性。

卷積和池化可能導緻欠拟合!任何其他先驗類似,卷積和池化隻有當先驗的夾着合理且正确時才有用。如果一項任務依賴于儲存精确的空間資訊,那麼在所有的特征上使用池化将會增大訓練誤差。

根據實際需求選取先驗

5. CNN in Pytorch

pytorch的相關接口

一文讀懂卷積神經網絡CNN(學習筆記)

LeNet in PyTorch

一文讀懂卷積神經網絡CNN(學習筆記)

繼續閱讀