吴恩达deeplearning.ai《神经网络和深度学习》-浅层神经网络(三)

多个例子中的向量化

其中a[2](i),表示2表示第2层神经网络。i表示第i个训练样本。
在这里插入图片描述

故我们可以将左边,使用循环对数值计算的神经网络,转化成右侧向量化计算。

在这里插入图片描述

可以看出输入特征为几维,则输出特征为几维。

在这里插入图片描述
在这里插入图片描述

激活函数

tanh激活函数性能,优于sigmod激活函数。但是,如果分类为一个二分类问题,建议使用sigmod函数。因为其输出的区间,在0,1区间中。
更建议使用ReLu激活函数,其在0到正无穷的区间中,梯度之间差距很大。不会形成sigmod和tanh无穷大或无穷小点收敛缓慢。
对于ReLu在负无穷到0区间中,其梯度为0的问题。我们采用新的Leaky ReLu激活函数。也就是在负无穷到0区间中,其函数图像缓慢下降。

问题:

ReLu激活函数在负无穷到0区间中,梯度很小,可能导致收敛变慢

解答:

对于我们的训练集中,一般正样本的个数要远远多于负样本的个数。故,在0到正无穷区间中的梯度,更能决定整个数据集上的训练速度。

在这里插入图片描述
在这里插入图片描述

为什么需要非线性激活函数

加入我们使用线性的激活函数,其推导如下:

我们可以看到,最后a[2]=W’ x + b ’ 的形式。也就是不管经过多少层采用线性激活函数的神经网络,其最后输出的结果也一定是线性的。故我们无需使用神经网络,使用一般编程即可达到线性的参数效果。即,神经网络中多少层的隐含层都是没有意义的。其多层神经网络和单层神经网络的效果相同。
只有在小众的,房价预测(回归问题)或压缩算法中,我们才使用线性激活函数。
在这里插入图片描述

激活函数的导数

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

神经网络的梯度下降法推导

在这里插入图片描述

注意:

对于反向传播dZ[1] = W[2]T dz[2] 乘号 g[1]’ … 此处乘号为element wise-product,按元素一个一个相乘
在这里插入图片描述

直观理解反向传播

在这里插入图片描述

da=dL(a,y)/da
dz=da · g’(z)
∂L/∂z = ∂L / ∂a ` da / dz (da / dz = d g(z) / dz = g‘(z))
在这里插入图片描述

反向传播计算:da[2] , dz[2] , dw[2] , db[2] , da[1]^ , dz[1]^ , dw[1]^ , db[1]
注意看如图左下角,各个矩阵的维度
在这里插入图片描述
dW[2] = dz[2] a[1]T
dW[1] = dz[1] xT (其中x等于a[0])

矩阵化梯度下降

在这里插入图片描述

随机初始化

假如我们初始化采用相同的参数W,b,就会产生神经网络的对称现象。
即,a1[1] = a2[1]
dz1[1] = dz2[1]
每一层每一个节点算出来的值,都与同层的节点的数值一样,故没有了意义
在这里插入图片描述

我们采用随机初始参数W,b来解决问题。

注意:

此时W[1] = np.random . randn (2,2) * 0.01 (此处乘0.01 是为了防止w很大,即导致z很大。从而使用sigmod激活函数时,其很难收敛)
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值