2016-12-06 60 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.