2016-12-06 65 views
0

如果我理解正確的話,我可以通過添加RelUthe hidden layer,然後重複hidden layer + RelU從3層NN要深入學習與RELU

我變換3-Layered NNDL NN難以想象維度將如何運作。我現在已經從small library我放在一起,所以我可以在概念

M = 784 # 28 x 28 pixels 
N = 512 # hidden neurons 
P = 10 # number of possible classes 

w1 = np.random.normal(0.0, pow(10, -0.5), (M, N)) 
w2 = np.random.normal(0.0, pow(10, -0.5), (N, P)) 

b1 = np.random.normal(0.0, pow(10, -0.5), (N)) 
b2 = np.random.normal(0.0, pow(10, -0.5), (P)) 

x = Input(w1, b1) 
h = Hidden(x, w2, b2) 
g = Softmax(h) 
cost = CrossEntropy(g) # numpy.mean(CrossEntropy) over BATCH SIZE 

train_data() 

下沉以下但我想去

x = Input(w1, b1) 
h = Hidden(x, w2, b2) 
r = ReLU(h) 
h2 = Hidden(r, ??, ??) # 1 
r2 = ReLU(h2)   # 2 
.. <repeat 1 and 2> 
g = Softmax(h) 
cost = CrossEntropy(g) # numpy.mean(CrossEntropy) over BATCH SIZE 

train_data() 

Related article I a writing about this

回答

0

如果我正確理解,我可以通過在隱藏層之後添加RelU將3層NN轉換爲DL NN,然後重複隱藏層+ RelU

深度學習幾乎是一個熱門詞彙。它可以是任何網絡,從3個學習層至少16個。取決於作者/當你想知道「深」的含義。例如,deep residual learning paper已將欄設置得高出幾層圖層。

重要的是,您至少有一個非線性隱藏層。具有輸入層,隱藏層和輸出層(因此是兩個學習層)的網絡。非線性(邏輯函數,tanh,ReLU,...)使神經網絡如此強大。

對於尺寸:這些是矩陣乘法/矢量添加。你的輸入是維數(1,M),並與維數(M,N)的矩陣相乘。結果是維(1,N)。下一個要相乘的矩陣必須是維(N,無論)。所以你必須確保相鄰的矩陣具有合適的尺寸。只需微積分101.