隱藏層(hidden layer) 學習
爲何叫隱藏層?由於是黑盒角色;輸入層輸入到"黑盒",將會獲得進行運算,最後數據到輸出層。隱藏層是深度學習一個基本概念。 spa
輸入層是原始數據樣本,注意每一個原始樣本的滑窗範圍(也叫感覺視野,local receptive fields,也被稱之爲卷積核,還常被稱之爲filter,和"深度"意思一致)對應着隱藏層一個節點,這個映射過程是經過將輸入數據*權重weight得到的,因此在窗口滑動的過程,麼給窗口其實都是對應一個隱藏層節點,或者說每一個隱藏層節點對應要給原始數據的滑窗。 blog
隱藏層邊長公式:(W-K)/S + 1 圖片
有的時候,爲了控制隱藏層的分佈,在原始數據的四周填充0,假設填充P行,這個行爲叫padding,那麼邊長公式:(W - K + 2P)/S + 1,特別的S=1,P= (K-1)/2,能夠保證輸入輸出層的分佈(shape)是同樣的。可使用0填充的卷積稱之爲"泛卷積",不能使用0來填充的卷積稱之爲"嚴格卷積"。 深度學習
參數共享(shared weight) it
參數共享說的是卷積核是全部的隱藏層都是同樣的,就是共享權重,截距成爲共享偏移(shared bias),輸入層經過卷積核到隱藏層被稱之爲"特徵映射",在深度學習裏面,每一個輸入層的窗口以及隱藏層的元素都是一個"特徵"。 io
那麼多個特徵圖呢?例如圖片會有RGB三個通道,卷積核是三個仍是一個呢?須要三個,每一個通道(深度)應該有本身的卷積核。 numpy
池化層 im
池化層的目的就是減小特徵,對於池化層的節點能夠理解爲上一層(隱藏層)的特徵,或者說特徵的特徵; 數據
線性計算
y = W.T * x + b;注意W.T是在前面;由於輸入層轉到隱藏層,樣本的數量是要發生變化的;因此必定是X在後面,由於根據矩陣計算規則,取乘數的行數,被乘數的列數。
矩陣默認是列向量;好比numpy.zeros(5),返回的是列向量(5,);
反向傳播的節點
Affine,sofmaxWithLoss等等其實都是計算圖的一個節點,和前面介紹的加法,減法等同樣;可是加減乘除必需要兩個數據進行操做,對於其餘的一些操做好比轉換類,那麼只須要一個參數就能夠了,主要看業務的須要;
LSVRC
Large Scale Visual Recognition Challenge(LSVRC ,大規模視覺認知挑戰賽)