[DeeplearningAI笔记]卷积神经网络2.3-2.4深度残差网络
4.2深度卷积网络
觉得有用的话,欢迎一起讨论相互学习~Follow Me
参考文献
[残差网络]--He K, Zhang X, Ren S, et al. Deep Residual Learning for Image Recognition[J]. 2015:770-778.
2.3残差网络Residual Networks(ResNets)
- 非常非常深的网络是很难训练的,因为存在梯度消失和梯度爆炸的问题。使用跳远连接(skip connections)
它可以从某一网络层获取激活,然后迅速反馈给另外一层,甚至是神经网络的更深层,可以利用跳远连接构建能够训练深度网络的ResNets
Residual block
- Residual Networks残差网络由残差块构成,对于一个“普通的神经网络层的结构”而言,神经层\(a^{[l]}\)到\(a^{[l+1]}\)再到\(a^{[l+2]}\)
网络的主路径"Main Path"可表示为:

- 但是对于残差网络,\(a^{[l]}\)可以拷贝到网络的深层,可以直接在ReLU非线性激活函数前加上\(a^{[l]}\)。这被称为是"Short cut",不再沿着主路径传递。即原始公式中的\(a^{[l+2]}=g(z^{[l+2]})\)被替代为\(a^{[l+2]}=g(z^{[l+2]}+a^{[l]})\),也就是说加上的这个\(a^{[l]}\)产生了一个残差块。
- "跳远连接(skip connection)"就是指\(a^{[l]}\)跳过一层或者好几层,从而将信息传递给神经网络的更深层。
- ResNet的发明者认为使用残差块能够训练更深的神经网络,所以构建一个ResNet网络就是通过将很多这样的残差块堆积在一起,形成一个深度神经网络。

Residual Networks(ResNets)残差网络构造方法与优势
对于一个"Plain Network普通网络",把它变为ResNet的方法是加上所有的跳远连接(skip connections).每两层增加一个跳远连接构成一个残差块。如图所示,五个残差块连接在一起构成一个残差网络。

- 理论上说越深的神经网络应该会取得更好的结果,但是实际上对于普通网络随着神经网络网络层数的增加,训练的误差会先下降再上升。因为随着网络层数的增加,优化算法会更加难以训练网络。
- 但是ResNets不一样,即使网络再深,训练的表现却不错,错误会更少。就算网络的深度达到了1000层也会取得不错的结果。这证明ResNet在训练深度网络方面非常有效。

2.4残差网络Residual Networks(ResNets)为什么有用
残差网络在训练集上的效果
- 通常情况下,一个网络深度越深,它在训练集上训练集上训练网络的效率有所减弱。
- 假设网络结构如下图所示,其中BigNN表示一个很大很深的神经网络模型,并且使用ReLU函数作为激活函数,且所有ReLU函数的输入值都是非负值。

有如下计算式:
\[a^{[l+2]}=g(z^{[l+2]}+a^{[l]})\\
=g(w^{[l+2]}*a^{[l+1]}+b^{[l+2]}+a^{[l]})\] - 注意,如果我们使用了L2正则化,则会使公式中的w权值相应的减少。
- 这里设w和b均为零值,因为使用ReLU函数作为激活函数,并且激活函数的输入值是非负值则\(a^{[l+2]}=g(a^{[l]})=a^{[l]}\)。
NG认为残差网络起作用的主要原因是:这些残差块学习恒等函数非常容易,你能确定网络性能不会受到影响,很多时候甚至可以提高效率,至少效率不会降低。
残差块维度
- 对于残差块的跳跃连接的维度大小,因为残差块的设计中使用了相当多的“SAME”模式的卷积方式所以可以实现\[z^{[l+2]}+a^{[l]}的跳跃连接的操作\]即"SAME"卷积模式保持了维度。
但是如果\(a^{[l+2]}和a^{[l]}\)的维度不一样,例如\(a^{[l+2]}\)为256,\(a^{[l]}\)的维度为128,则在\(a^{[l]}\)前乘上一个可学习的变量\(W_{s}\),其中\(W_{s}\)维度为\(256*128\)以保持维度的一致。

Plain网络(普通网络)加上ResNet单元

其中卷积层使用“SAME”卷积模式,保持特征图的维度信息即特征图的长和宽,但是对于残差块中有池化层的情况,则需要使用\(W_s\)调整维度,使跳跃连接的前后层可以保持一致的维度使其可以相加。
[DeeplearningAI笔记]卷积神经网络2.3-2.4深度残差网络的更多相关文章
- [DeeplearningAI笔记]卷积神经网络4.6-4.10神经网络风格迁移
4.4特殊应用:人脸识别和神经网络风格转换 觉得有用的话,欢迎一起讨论相互学习~Follow Me 4.6什么是神经网络风格转换neural style transfer 将原图片作为内容图片Cont ...
- [DeeplearningAI笔记]卷积神经网络4.1-4.5 人脸识别/one-shot learning/Siamase网络/Triplet损失/将面部识别转化为二分类问题
4.4特殊应用:人脸识别和神经网络风格转换 觉得有用的话,欢迎一起讨论相互学习~Follow Me 4.1什么是人脸识别 Face verification人脸验证 VS face recogniti ...
- [DeeplearningAI笔记]卷积神经网络3.10候选区域region proposals与R-CNN
4.3目标检测 觉得有用的话,欢迎一起讨论相互学习~Follow Me 3.10 region proposals候选区域与R-CNN 基于滑动窗口的目标检测算法将原始图片分割成小的样本图片,并传入分 ...
- [DeeplearningAI笔记]卷积神经网络3.1-3.5目标定位/特征点检测/目标检测/滑动窗口的卷积神经网络实现/YOLO算法
4.3目标检测 觉得有用的话,欢迎一起讨论相互学习~Follow Me 3.1目标定位 对象定位localization和目标检测detection 判断图像中的对象是不是汽车--Image clas ...
- [DeeplearningAI笔记]卷积神经网络1.9-1.11池化层/卷积神经网络示例/优点
4.1卷积神经网络 觉得有用的话,欢迎一起讨论相互学习~Follow Me 1.9池化层 优点 池化层可以缩减模型的大小,提高计算速度,同时提高所提取特征的鲁棒性. 池化层操作 池化操作与卷积操作类似 ...
- [DeeplearningAI笔记]卷积神经网络1.6-1.7构造多通道卷积神经网络
4.1卷积神经网络 觉得有用的话,欢迎一起讨论相互学习~Follow Me 1.6多通道卷积 原理 对于一个多通道的卷积操作,可以将卷积核设置为一个立方体,则其从左上角开始向右移动然后向下移动,这里设 ...
- [DeeplearningAI笔记]卷积神经网络1.4-1.5Padding与卷积步长
4.1卷积神经网络 觉得有用的话,欢迎一起讨论相互学习~Follow Me 1.4Padding 一张\(6*6\)大小的图片,使用\(3*3\)的卷积核设定步长为1,经过卷积操作后得到一个\(4*4 ...
- [DeeplearningAI笔记]卷积神经网络1.2-1.3边缘检测
4.1卷积神经网络 觉得有用的话,欢迎一起讨论相互学习~Follow Me 1.2边缘检测示例 边缘检测可以视为横向边缘检测和纵向边缘检测如下图所示: 边缘检测的原理是通过一个特定构造的卷积核对原始图 ...
- [DeeplearningAI笔记]卷积神经网络4.11一维和三维卷积
4.4特殊应用:人脸识别和神经网络风格转换 觉得有用的话,欢迎一起讨论相互学习~Follow Me 4.11一维和三维卷积 二维和一维卷积 对于2D卷积来说,假设原始图像为\(14*14*3\)的三通 ...
随机推荐
- Web站点性能-微观手段
文章:网站性能优化 百度百科:高性能Web站点 文章:构建高性能WEB站点之 吞吐率.吞吐量.TPS.性能测试
- lintcode-394-硬币排成线
394-硬币排成线 有 n 个硬币排成一条线.两个参赛者轮流从右边依次拿走 1 或 2 个硬币,直到没有硬币为止.拿到最后一枚硬币的人获胜. 请判定 第一个玩家 是输还是赢? 样例 n = 1, 返回 ...
- Sql server 中关闭ID自增字段(SQL取消ID自动增长)
sql server在导入数据的时候,有时候要考虑id不变,就要先取消自动增长再导入数据,导完后恢复自增. 比如网站改版从旧数据库导入新数据库,数据库结构不相同,可能会使用insert into xx ...
- Windows下IntelliJ IDEA中调试Spark Standalone
参考:http://dataknocker.github.io/2014/11/12/idea%E4%B8%8Adebug-spark-standalone/ 转载请注明来自:http://www.c ...
- Docker 技术 介绍
https://github.com/docker/docker 实现用户空间隔离的技术:名称空间(NameSpace),CGroup(控制组) 什么是NameSpace::简单的理解就是,每一个虚拟 ...
- Struts2(七)
以下内容是基于导入struts2-2.3.32.jar包来讲的 1.xml验证 Struts2提供了验证器,实现了通用的验证逻辑.例如: 非空验证器.长度验证器.日期验证器.email验证器等.具体定 ...
- ThinkPHP的调用css,js和图片的路径
按网上的说法,在根目录下建了一个Public目录,把css,js和图片放到Public目录下,然后用__PUBLIC__/...或__ROOT__/Public/...调用.但是发现无论如何改路径都无 ...
- SQL的拼接语句在DELPHI中怎么写
SQL 语句的拼接,关键点在于对引号的处理上. 在 delphi 的语法中,使用单引号做字符串的标志符.因此,当遇到 SQL 语句中字符串标识量编写的时候,需要用两个单引号来代替实际的引号. 举例: ...
- HDU4647_Another Graph Game
有趣的博弈题. 关键在于把比边权的平分到两边的点权上面,然后点权排序,每次从大的开始拿就可以了. #include <iostream> #include <cstdio> # ...
- 公告:请访问我的个人博客新站点——www.huangshujia.me
我的个人博客现在在(http://www.huangshujia.me/)cnblog这里不会做任何更新了.或者关注我的个人公众号:碱基矿工