天天看點

theano卷積神經網絡實作 Convolutional Neural Networks (LeNet)

參考文獻

Convolutional Neural Networks (LeNet)

卷積是什麼     定義:在泛函分析中,卷積、旋積或摺積(英語:Convolution)是通過兩個函數f 和g 生成第三個函數的一種數學算子,表征函數f 與g經過翻轉和平      移的重疊部分的面積。     公式:

theano卷積神經網絡實作 Convolutional Neural Networks (LeNet)

(簡單了解,g對f在時間域上的連續影響之和)

    theano實作:theano.tensor.signal.conv2d     (局部感覺+權值共享-->減少參數-->計算機實作)

矩陣的卷積運算: 

theano卷積神經網絡實作 Convolutional Neural Networks (LeNet)

.

規則:1.圖像卷積運算通常使用3*3矩陣          2.卷積核旋轉180度,将卷積核中心對應輸入矩陣的[0,0]元素,對重疊部分求和          3.移動卷積核,分别對應輸入矩陣的每個元素,進行求和,得到輸出矩陣。 from theano.tensor.nnet import conv2d 卷積計算 conv2d(input,W) 卷積輸出值 

theano卷積神經網絡實作 Convolutional Neural Networks (LeNet)

池化     池化層往往在卷積層後面,通過池化來降低卷積層輸出的特征向量,同時改善結果(不易出現過拟合)。        因為圖像具有一種“靜态性”的屬性,這也就意味着在一個圖像區域有用的特征極有可能在另一個區域同樣适用。是以,為了描述大的圖像,一個很自        然的想法就是對不同位置的特征進行聚合統計,例如,人們可以計算圖像一個區域上的某個特定特征的平均值 (或最大值)來代表這個區域的特征。     通過池化達到降維德目的     theano實作: from theano.tensor.signal import pool         池化操作 pool_out=pool.pool_2d(input,maxpool_shape,ignore_border=True) f=theano.function([input],pool_out)

theano卷積神經網絡實作 Convolutional Neural Networks (LeNet)