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

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
你好!改善深层神经网络的方法有很多,以下是一些常见的方法: 1. 使用更好的激活函数:传统的激活函数如Sigmoid、tanh等可能存在梯度消失或爆炸的问题。可以尝试使用ReLU、Leaky ReLU、ELU等激活函数,以减轻这些问题。 2. 使用批标准化(Batch Normalization):批标准化对网络的输入进行标准化,有助于加快网络的训练速度,并且可以缓解梯度问题,使得更深层的网络也能够训练得更好。 3. 使用残差连接(Residual Connections):残差连接可以帮助信息在网络中更好地流动,从而减轻梯度消失的问题。通过将某些的输出与输入相加,可以使得网络更易于训练。 4. 使用更好的优化算法:传统的梯度下降算法如随机梯度下降(SGD)可能存在训练速度慢、易陷入局部最优等问题。可以尝试使用更高级的优化算法如Adam、RMSprop等,以加快模型的收敛速度。 5. 添加正则化:过拟合是深层神经网络常见的问题之一。可以通过添加正则化项如L1正则化、L2正则化等来限制模型的复杂度,防止过拟合的发生。 6. 数据增强:通过对训练数据进行一些随机的变换,如平移、旋转、缩放等,可以增加模型的泛化能力,防止过拟合。 这些方法只是改善深层神经网络的一部分,具体的选择和调整需要根据具体问题和数据集来进行。希望对你有所帮助!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值