吴恩达深度学习笔记(八) —— ResNets残差网络
(很好的博客:残差网络ResNet笔记)
主要内容:
一.深层神经网络的优点和缺陷
二.残差网络的引入
三.残差网络的可行性
四.identity block 和 convolutional block
一.深层神经网络的优点和缺陷
1.深度神经网络很大的一个优点就是能够表示一个复杂的功能。网络的层数越多,意味着能够提取到不同level的特征越丰富。并且,越深的网络提取的特征越抽象,越具有语义信息。但其有一个巨大的缺陷,那就是:如果简单地增加深度,会导致梯度弥散或梯度爆炸。使得训练速度十分缓慢:

2.对于上述问题,解决方法是引入batch normalization,但这又会导致另一个问题,那就是“退化问题”。表现为网络层数增加,但是在训练集上的准确率却饱和甚至下降了。退化问题可能是因为深层的网络并不是那么好训练。
二.残差网络的引入
1.残差网络解决了增加深度带来的副作用(退化问题),这样就能够实现通过增加网络深度,来提高网络性能。
2.其基本思想是:在理想化的深层神经网络中,如果后面的网络层是恒等映射,那么深层神经网络就退化为浅层神经网络。所谓恒等映射就是输入等于输出(F(x) = x),放在神经网络当中,那就是把前面的值,直接穿过若干个网络层(而没有经过任何实际性的处理),最后到达输出层。但是,深层神经网络在实际中并不那么理想,因为深层的网络并不是那么好训练,特别是学习恒等映射(至于为什么这样,我也是人云亦云)。
3.但是,深层的网络学习F(x) = 0,则相对容易(此也人云亦云,可能在后面的网络层,权重衰减严重,因而引入了batch normalization)。让深层神经网络学习F(x) = 0的方法是构建:H(x) = F(x) + x,对应于神经网络的结构图如下:

对于第l+2层,其总输出就是g(H(x)),也就是a[l+2],而a[l+2] = g(a[l] + z[l+1]),又因为H(x) = F(x) + x,规定z[l+1]对应F(x),a[l]对应x。因此,就是要学习z = 0,这对于深层的网络来说是没那么难的。
三.残差网络的可行性
为何学习深层的网络学习 z = 0 会可行呢?还是看会l+2层的表达式:

在深层的网络层,权重衰减严重,原因是引入了batch normalization,导致了w[l+2]、b[l+2]都接近于0,因此z[l+2]就接近于0,证明了残差网络是可行的。
四.identity block 和 convolutional block
1.残差网络,从感性上去认识,就是将当前的输出输入到下一层的同时,还增加一条路径输入到更后面的某一层。这样构成的一个块,叫做残差块,残差块就是构成残差网络的基础。
2.一般地,是将a[l]输入到第l+k层的激活函数之前(发明者通过实验证明的高效做法),即将a[l]和z[l+k]相加,然后送到激活函数中去。a[l]能和z[l+k]相加的前提条件是:a[l]的shape等于z[l+k]的shape。当两者相等时,可以直接输入进去,此种块称为identity block;当两者不同时,则需要将a[l]通过一个卷积层以调整其shape与z[l+k]一致,此种块称为convolutional block。

吴恩达深度学习笔记(八) —— ResNets残差网络的更多相关文章
- 【Deeplearning.ai 】吴恩达深度学习笔记及课后作业目录
吴恩达深度学习课程的课堂笔记以及课后作业 代码下载:https://github.com/douzujun/Deep-Learning-Coursera 吴恩达推荐笔记:https://mp.weix ...
- 吴恩达深度学习笔记(deeplearning.ai)之卷积神经网络(二)
经典网络 LeNet-5 AlexNet VGG Ng介绍了上述三个在计算机视觉中的经典网络.网络深度逐渐增加,训练的参数数量也骤增.AlexNet大约6000万参数,VGG大约上亿参数. 从中我们可 ...
- 吴恩达深度学习笔记(deeplearning.ai)之卷积神经网络(CNN)(上)
作者:szx_spark 1. Padding 在卷积操作中,过滤器(又称核)的大小通常为奇数,如3x3,5x5.这样的好处有两点: 在特征图(二维卷积)中就会存在一个中心像素点.有一个中心像素点会十 ...
- 吴恩达深度学习笔记(deeplearning.ai)之循环神经网络(RNN)(三)
1. 导读 本节内容介绍普通RNN的弊端,从而引入各种变体RNN,主要讲述GRU与LSTM的工作原理. 事先声明,本人采用ng在课堂上所使用的符号系统,与某些学术文献上的命名有所不同,不过核心思想都是 ...
- 吴恩达深度学习笔记(deeplearning.ai)之卷积神经网络(一)
Padding 在卷积操作中,过滤器(又称核)的大小通常为奇数,如3x3,5x5.这样的好处有两点: 在特征图(二维卷积)中就会存在一个中心像素点.有一个中心像素点会十分方便,便于指出过滤器的位置. ...
- 吴恩达深度学习笔记(十二)—— Batch Normalization
主要内容: 一.Normalizing activations in a network 二.Fitting Batch Norm in a neural network 三.Why does ...
- 吴恩达深度学习笔记(七) —— Batch Normalization
主要内容: 一.Batch Norm简介 二.归一化网络的激活函数 三.Batch Norm拟合进神经网络 四.测试时的Batch Norm 一.Batch Norm简介 1.在机器学习中,我们一般会 ...
- 吴恩达深度学习笔记1-神经网络的编程基础(Basics of Neural Network programming)
一:二分类(Binary Classification) 逻辑回归是一个用于二分类(binary classification)的算法.在二分类问题中,我们的目标就是习得一个分类器,它以对象的特征向量 ...
- 吴恩达深度学习笔记(十一)—— dropout正则化
主要内容: 一.dropout正则化的思想 二.dropout算法流程 三.dropout的优缺点 一.dropout正则化的思想 在神经网络中,dropout是一种“玄学”的正则化方法,以减少过拟合 ...
随机推荐
- h5做移动应用开发部分技巧
1.使用多种分别率设备:利用viewport标签<meta name="viewport" content="width=device-width, initial ...
- Android无线测试之—UiAutomator UiSelector API介绍之七
对象搜索—索引与实例 一.索引与实例说明: 1)index:在同一级中的编号,在兄弟类中组件的编号,index从0开始 2)instance:同一个布局中同一类组件的编号,instance从0开始 二 ...
- Assertion (software development) -- 断言
Wiki: In computer programming, an assertion is a predicate (a true–false statement) placed in a prog ...
- Linux常用命令及Vim使用
1.ls 命令 --------------------------------------------------------------------- ls以默认方式显示当前目录文件列表 ls - ...
- codevs1058 合唱队形==洛谷P1091 合唱队形
P1091 合唱队形 题目描述 N位同学站成一排,音乐老师要请其中的(N-K)位同学出列,使得剩下的K位同学排成合唱队形. 合唱队形是指这样的一种队形:设K位同学从左到右依次编号为1,2…,K,他们的 ...
- 【BZOJ4898】[Apio2017]商旅 分数规划+SPFA
[BZOJ4898][Apio2017]商旅 Description 在广阔的澳大利亚内陆地区长途跋涉后,你孤身一人带着一个背包来到了科巴.你被这个城市发达而美丽的市场所深深吸引,决定定居于此,做一个 ...
- 1119 机器人走方格 V2(组合)
1119 机器人走方格 V2 基准时间限制:1 秒 空间限制:131072 KB 分值: 10 难度:2级算法题 M * N的方格,一个机器人从左上走到右下,只能向右或向下走.有多少种不同的走法?由于 ...
- UVA Dividing coins
题目链接: https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_proble ...
- wamp设置mysql默认编码
来自:http://www.cnsecer.com/5984.html wamp下MySQL的默认编码是Latin1,不支持中文,要支持中文的话需要把数据库的默认编码修改为gbk或者utf8. 这里推 ...
- 如何将大数据保存到 MySql 数据库
1. 什么是大数据 1. 所谓大数据, 就是大的字节数据,或大的字符数据. 2. 标准 SQL 中提供了如下类型来保存大数据类型: 字节数据类型: tinyblob(256B), blob(64K), ...