【神经网络基础】第三课--深层神经网络

1.深层神经网络

逻辑回归是一个very shallow network: 
image_1cdj4f55m1hogl0albthq222f9.png-18kB

只有一个隐藏层的网络是一个2 layer neural netowork,也称shallow neural network: 
image_1cdj4hp4j1v70o8td3m1qbb1omlm.png-10.8kB

隐藏层>=2的网络称为deep neural network: 
image_1cdj4jlfp1giu14en1aeq1hps9p13.png-70.2kB

关于深层神经网络的notation定义如下: 
n[l]:表示第l层的神经元数目 
a[l]:表示第l层的激活函数的值(也是该层的输出,下一层的输入) 
image_1cdj4odg21olg1v4f1neebjd1ver1g.png-6.5kB 
w[l]:表示l层计算z[l]时的权重

2.网络中的前向传播与反向传播

2.1 前向传播

对于第l层: 
input: a[l-1] 
output:a[l]

中间过程: 
z[l] = w[l] * a[l-1] + b[l] 
a[l] = g[l](z[l]) 
(g[l]是第l层的激活函数)

用向量化的形式表示出来: 
Z[l] = W[l] * A[l-1] + b[l] 
A[l] = g[l](Z[l])

当有n层神经网络的时候,可以使用for循环,目前没有更好的办法替代for循环。

2.2 反向传播

对于第l层: 
input: da[l] 
output: da[l-1],dw[l], db[l]

中间过程: 
dz[l] = da[l] * g[l]’(z[l]) 
dw[l] = dz[l] * a[l-1] 
db[l] = dz[l] 
da[l-1] = w[l]T * dz[l] 
可以进一步推导: 
dz[l] = w[l+1]T * dz[l+1] * g[l]’(z[l])

用向量化的形式表示出来: 
dZ[l] = dA[l] * g[l]’(Z[l]) 
dW[l] = 1/m * dZ[l] * A[l-1] 
db[l] = 1/m * np.sum(dz[l], axis=1, keepdims=True) 
dA[l-1] = W[l]T * dZ[l]

3.核对矩阵的维数

假设有一个5层的神经网络,每层的神经元分别为3,5,4,2,1

layer 1: 
z1 = w1 * x + b1 
z,w,x,b的维度分别为 
image_1cdj5lb1613pn74n1ei829rj4q1t.png-14.1kB

Layer 2: 
image_1cdj5nrie76gtlhrfq141ktg2a.png-16.3kB

以此类推,课总结出规律: 
image_1cdj5os7n1u08h7915iq140faee2n.png-21.8kB

向量化后的维度: 
非向量化是: 
image_1cdj5s7ot1b2o16tp1tal6eb1mlo34.png-15.1kB

向量化后是: 
image_1cdj5srnh1imso8a19gq1n2b17ip3h.png-23kB

4.为何使用深层表示

深层神经网络有很大的优势 
1.首先可以处理维度很高的特征,比如说图像,语音 
2.其次可以用无限个异或组合来你何处任何训练集

5.搭建深层神经网络块

针对第l层 
前向计算: 
input: a[l-1] 
output: a[l]

中间过程: 
z[l] = w[l] * a[l-1] + b[l] 
a[l] = g[l](z[l]) 
(g[l]是第l层的激活函数)

反向传播: 
input: da[l] 
output: da[l-1],dw[l], db[l]

两个过程如下: 
image_1cdj6e6nf16if9f01tp111o6cnv3u.png-43kB

6.参数与超参数

6.1 参数

神经网络中涉及的参数有两类:w, b 
image_1cdj72d4i1mll1itq1q45vpi14rj4b.png-9.4kB

6.2 超参数

涉及的超参数: 
(1)learning rate 学习率 
(2)iterations 迭代次数 
(3)hidden layers’ number 隐藏层的数目 
(4)hidden units 每个隐藏层的神经元数目 
(5)choice of activation function 激活函数的选择 
(6)momentum 
(7)mini batch size 
(8)various forms of regularization parameters

6.3 如何选择超参数

可以用以下图形来判断超参数在cost和iterations上的变化。 
image_1cdj7ckvh1qvgv0v41rfbvsbm4o.png-20.2kB

猜你喜欢

转载自blog.csdn.net/kwame211/article/details/80347436