深度学习(深层神经网络)

目录

深层网络中的符号

深层网络中的前向传播

使用向量化的方法训练整个训练集

核对矩阵的维数

向量化后的维度变化

为什么深度网络好用

搭建深层学习网络块

正向传播

向量法

反向传播

向量法

总结

​编辑流程图


深层网络中的符号

以上是几种神经网络模型,logistic模型,单隐层,双隐层,五隐藏模型

技术层面上来讲,logistic神经网络是浅层神经网络,单层网络

有些函数,只有深层模型可以学习,浅层模型通常无法学习。

所以处理一些问题时需要提前准确地判断需要多深的神经网络 。

这时先试试logistic 回归是非常合理的做法,然后逐层增加

关于神经网络中的符号

层数可以用“l”来表示,即“layer”

其中,输入层不计入,或着记作第零层

第几层的参数可以用n来表示,即第“l”层为“n^{[l]}

下图拿上述五层神经网络举例说明

a^{[l]}来表示l层 中的激活函数,a^{[l]}=g^{[l]}(z^{[l]})

 约定使用X来表示特征输入,其中a^{[0]}=x

最后一层的激活函数可以表示为y帽=a[l],a[l]可以用来表示预测输出

深层网络中的前向传播

  拿上述深层网络举例

首先,在第一层中,需要先计算

其中x作为一个训练样本,w和b就是会影响激活单元的参数

然后再计算这一 层的激活函数

第二层也同样

以此类推

得到最后的a[4],结果就是 想要估算的y帽 的值

据此可得知以下公式

z^{[l]}=w^{[l]}a^{[l-1]}+b^{[l]}

a^{[l]}=g^{[l]}(z^{[l]})

使用向量化的方法训练整个训练集

以上表示为向量化表示方法,至此都与普通方法一样

我们关键 要做的是把所有的z或者a向量叠加起来

例如Z,从1到样本m进行叠加,形成 列向量,形成矩阵Z,如下图 

同理,矩阵A做法也一样

向量化 之后 可以得到y帽

代码实现 可以利用for循环进行l从1到m的循环遍历 

核对矩阵的维数

上图为一个五层神经网络模型

  要想实现正向传播,首先得到下列式子

经过分析可得,我们可以得到以下参数的维度,拿上述公式举例

归纳可得参数维度

w^{[l]}:(n^{[l]},n^{[l-1]})

输入x或a[l-1]

a^{[l]}=(n^{[l-1]},1)

b^{[l]}:(n^{[l]},1)

如果在实现反向传播时

则参数dw应该和w有相同的维度

db和b有相同的维度

此外,对于z,x和a的维度

由于

a^{[l]}=g^{[l]}(z^{[l]})

所以a和z的维度相同

向量化后的维度变化

w,b和dw,db的维度始终都是一样的

但是Z,X和A的维度会发生变化

向量化前

向量化后

其中Z是由多个z从1到m叠加而来,X同理

b的维度仍旧不变,但在写代码时python广播机制会改变b

在做反向传播时,dZ和dA的维度和Z和A的一样

在进行计算时要确认矩阵维度前后一致

为什么深度网络好用

假设在建立一个人脸识别时

神经网络所做的事就是,第一层可以当成一个特征探测器

 

在该例子当中可以设立20个隐藏单元的神经网络,隐藏单元就可以是上图中的一个个小方块

可以将边缘探测到的一个个部分组合起来,组合为一个面部的不同部分

可能某个神经元去找眼睛的部分,另一个在找鼻子的部分,然后把许多的边缘结合在一起,就可以开始检测人脸的不同部分,最后再把这些部分放在一起,比如鼻子嘴巴眼睛,就可以识别不同人脸

类似地,我们就可以得出,神经网络的许多隐层中,较早的前几层学习一些低层次的简单特征,等到后几层,就能把简单的特征结合起来,去探测更加复杂的东西

搭建深层学习网络块

拿上图神经网络模型举例,有参数w,b

正向传播

正向传播里有输入的激活函数a[l-1],输出是a[l]

然后可以将z[l]的值存起来

向量法

x用来初始化,即第一层的输入值,对于一个样本的输入特征

反向传播

在反向步骤中

实现一个函数,输入为da[l](以及缓存的z[l]),输出为da[l-1]的函数

其中输出还有梯度,为了实现梯度下降

以上代入可得到

向量法

除以m是整体成本函数,不除是一个损失函数

总结

流程图

其中w也需要不断更新

每一层都进行

以上就是神经网络的一个梯度下降循环

在实现上对z,w,b的值进行缓存,在实现反向传播时很方便

如有错误还请各位大佬留言指正 

  • 33
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值