第四门课-卷积神经网络 第二周(重点总结)


注:图片来自网络

2.1 为什么要进行实例探究?(Why look at case studies?)

非常有效的神经网络范例
LeNet-5 网络
AlexNet
VGG 网络
ResNet 又称残差网络
Inception 神经网络

2.2 经典网络(Classic networks)

经典的神经网络结构:LeNet-5、AlexNetVGGNet
1.LeNet-5
在这里插入图片描述
①针对灰度图片训练的
②左往右看,随着网络越来越深,图像的高度和宽度在缩小,通道数量一直在增加
③一个或多个卷积层后面跟着一个池化层,然后又是若干个卷积层再接一个池化层,然后是全连接层,最后是输出,这种排列方式很常用。
④大约有6万个参数
⑤使用sigmod函数和tanh函数

2.AlexNet
在这里插入图片描述
①大约6000万个参数
②能够处理非常相似的基本构造模块,这些模块往往包含着大量的隐藏单元或数据
③AlexNet比LeNet表现更为出色的另一个原因是它使用了ReLu激活函数

3.VGG-16网络
在这里插入图片描述
在这里插入图片描述
①一种只需要专注于构建卷积层的简单网络
②数字16就是指在这个网络中包含16个卷积层和全连接层。
③这是个很大的网络,总共包含约1.38亿个参数,但结构不复杂
④网络结构很规整,随着网络的加深,图像的高度和宽度都在以一定的规律不断缩小,每次池化后刚好缩小一半,而通道数量在不断增加,而且刚好也是在每组卷积操作后增加一倍。也就是说,图像缩小的比例和通道数增加的比例是有规律的。
⑤主要缺点是需要训练的特征数量非常巨大。

建议:
从介绍AlexNet 的论文开始,然后就是VGG 的论文,最后是LeNet 的论文

2.3 残差网络(Residual Networks (ResNets))

非常非常深的神经网络是很难训练的,因为存在梯度消失和梯度爆炸问题
跳跃连接(Skip connection): 它可以从某一层网络层获取激活,然后迅速反馈给另外一层,甚至是神经网络的更深层。
我们可以利用跳跃连接构建能够训练深度网络的残差网络(ResNets
ResNets是由残差块(Residual block)构建的
在这里插入图片描述
在这里插入图片描述
构建一个ResNet网络就是通过将很多这样的残差块堆积在一起,形成一个很深神经网络
普通网络(Plain network):
在这里插入图片描述
5个残差块连接在一起构成一个残差网络
在这里插入图片描述
训练一个普通网络时,随着网络深度的加深,训练错误会先减少,然后增多。随着网络深度的加深,训练错误会越来越多。
残差网络有助于解决梯度消失和梯度爆炸问题,让我们在训练更深网络的同时,又能保证良好的性能。也许从另外一个角度来看,随着网络越来深,网络连接会变得臃肿,但是ResNet确实在训练深度网络方面非常有效。

2.4 残差网络为什么有用?(Why ResNets work?)

在这里插入图片描述
在这里插入图片描述
即使给神经网络增加了这两层,它的效率也并不逊色于更简单的神经网络,因为学习恒等函数对它来说很简单。不论是把残差块添加到神经网络的中间还是末端位置,都不会影响网络的表现。残差网络至少可以保持网络的效率,很多时候甚至可以提高效率。
如果输入和输出有不同维度,再增加一个矩阵,这里标记为Ws,如图红色部分R
在这里插入图片描述

2.5 网络中的网络以及 1×1 卷积(Network in Network and 1×1 convolutions)

在这里插入图片描述
压缩通道数(nc)的方法:1×1卷积
压缩高度和宽度:池化

2.6 谷歌 Inception 网络简介(Inception network motivation)

Inception网络不需要人为决定使用哪个过滤器或者是否需要池化,而是由网络自行确定这些参数,你可以给网络添加这些参数的所有可能值,然后把这些输出连接起来,让网络自己学习它需要什么样的参数,采用哪些过滤器组合。
在这里插入图片描述
Inception缺点:计算成本大
其中,紫色层的计算量1.2亿(如上/下图)
在这里插入图片描述
紫色层计算量1204万
在这里插入图片描述
瓶颈层: 网络中最小的部分
在这里插入图片描述
我们先缩小网络表示,然后再扩大它
合理构建瓶颈层,既可以显著缩小表示层规模,又不会降低网络性能,从而节省了计算

2.7 Inception 网络(Inception network)

一个Inception 模块:
在这里插入图片描述
通道连接:把所有方块连接在一起
Inception网络
在这里插入图片描述
分支:Inception 网络的一个细节,确保了即便是隐藏单元和中间层也参与了特征计算,它们也能预测图片的分类。它在Inception网络中,起到一种调整的效果,并且能防止网络发生过拟合

2.8 使用开源的实现方案(Using open-source implementations)

有很多深度学习的研究者都习惯把自己的成果作为开发资源,放在像GitHub 之类的网站上。
https://github.com/KaimingHe/deep-residual-networks

2.9 迁移学习(Transfer Learning)

下载别人已经训练好网络结构的权重,你通常能够进展的相当快,用这个作为预训练,然后转换到你感兴趣的任务上。
比如ImageNet ,或者MS COCO ,或者Pascal 类型的数据集

2.10 数据扩充(Data augmentation)

垂直镜像对称,随机裁剪,旋转,翻转,扭曲,彩色转换

2.11 计算机视觉现状(The state of computer vision)

Benchmark 基准测试,Benchmark 是一个评价方式,在整个计算机领域有着长期的应用。维基百科上解释:“As computer architecture advanced, it became more difficult to compare the performance of various computer systems simply by looking at their specifications.Therefore, tests were developed that allowed comparison of different architectures.”
Benchmark在计算机领域应用最成功的就是性能测试,主要测试负载的执行时间、传输速度、吞吐量、资源占用率等。
基准测试中表现出色的小技巧:
在这里插入图片描述
集成: 这就意味着在你想好了你想要的神经网络之后,可以独立训练几个神经网络,并平均它们的输出。比如说随机初始化三个、五个或者七个神经网络,然后训练所有这些网络,然后平均它们的输出。
Multi-crop: 是一种将数据扩充应用到你的测试图像中的一种形式
参考文献:

  • Kaiming He, Xiangyu Zhang, Shaoqing Ren, Jian Sun - Deep Residual Learning for Image Recognition (2015)
  • Francois Chollet’s github repository: https://github.com/fchollet/deep-learning-models/blob/master/resnet50.py
发布了1 篇原创文章 · 获赞 0 · 访问量 285

猜你喜欢

转载自blog.csdn.net/qq_35024702/article/details/104898345