没有合适的资源?快使用搜索试试~ 我知道了~
资源详情
资源评论
资源推荐
机器学习系列(6)
计算机视觉--ResNets、Inception原理及ResNets的Python实现
计算机视觉中的网络及方法:
经典网络
残差网络
ResNets有效原因
1×1卷积
谷歌Inception网络
迁移学习
数据扩充
Python实现:
见文章内容
申明
本文原理解释及公式推导部分均由LSayhi完成,供学习参考,可传播;代码实现部分的框架由Coursera提供,由LSayhi完成,详细数据及代码可在
github查阅。 https://github.com/LSayhi/Neural-network-and-Deep-learning (https://github.com/LSayhi/Neural-network-and-Deep-learning)
一、计算机视觉中的网络及方法
1.经典网络:
在深度学习的发展中,诞生了许多经典网络模型,这些网络给后来的网络结构提供了重大的参考,有的现在已经不怎么使用了,但是不管怎么样,
这些网络的提出,不论在当时还是现在都有一定的意义,比如LeNet5、AlexNet、VGGNet等。这些网络一般是由卷积层和池化层以及输入输出层复
合而成,通常,在一个或若干个卷积层之后,会连接一个池化层,在网络的最后几层,一般是将卷积结构转成全连接结构,然后再输出层使用
softmax进行分类,随着网络的发展,网络的深度也越来越深,参数也越来越多。
2.残差网络:
残差网络( ,简称 )是由残差块等复合而成的网络结构,利用残差网络可以将网络层数做到很深,以取得更好的表现。我
们知道,在网路的训练中,可能会遇到梯度消失或梯度爆炸的现象,导致无法成功训练,在现代网络中,通常网络的层数很大,因此发生梯度消失
和梯度爆炸的可能性大大增加。残差网络可以有效防止这些现象的发生。
Figure 1 : plain network
Figure 2 : skip connection
残差块与跳跃连接。残差块是组成残差网络的重要子系统。如图 示例,这是一个一般的网络结构,每一层都依次和下一层连接,第 层的输
出取决于第 的的输出和两层之间的连接方式。残差网络在这个基础上,加入了跳跃连接( ),如图 所示,在
,在普通的网络中,是没有 这一项的,这个加入的项是从第 层直接连接过来的,中间隔着其它层,因此我们把这个连接称
作跳跃连接。如图 所示,这是一个残差网络的结构示意图,随着层数的增加,普通的深度网络和残差网络的 的比较。
ResidualNetworks ResNets
Figure
1
L
L
−
1
skipconnection Figure
2
=
g
( + )
a
[
l
+2]
z
[
l
+2]
a
[
l
]
a
[
l
]
l
Figure
3
loss
Figure 3 : residual network 示例
3.残差网络有效原因:
一个网络的深度越深,它在训练集上的表现就有所减弱,这让我们不能把网络做得太深,然而,构造更深的网络可以得到更高级的特征,为了解决
这一矛盾,残差网络就发挥了作用。通常,我们希望能做到在加深网络的深度同时不减弱网络的性能。因为一个在训练集上表现良好的网络是其在
开发集和测试集取得优异表现的基础。残差网络能够很容易学习到恒等式并且不影响网络性能,至少不降低性能,有些时候反而能学习到前馈网络
很难学习到的映射关系,能提升网络性能。这一点可以通过一下例子直观理解,见 ,当W和b为0时,残差网络模块就学习到了恒等式。
Figure 4 : 学习恒等式
4.1×1卷积:
卷积,即是卷积核的大小是 大小的的卷积操作,也称network in network。当Nc=1时,如 所示,相当于把每一个像素点乘
以卷积核中的值,当Nc>1时(即图像的通道数大于1时),其相当于对Nc个通道进行加权求和,如图 ,当卷积核的数量为filters时,输出最
后一个维度则等于filters。 卷积可以改变图像的通道数,通常是减小或保持不变,当然也可以增加,这取决于卷积核的个数,举个例子说明
卷积的作用,如图 ,卷积核数量为192时,输出通道数保持不变,通道数为32时,输出通道数减小为32。
Figure 5 : Nc=1与Nc>1
Figure
4
1
∗
1 1
∗
1
∗
Nc
Figure
5
Figure
6
1
∗
1
1
∗
1
Figure
7
Figure 6 : 多个卷积核
Figure 7 : 改变卷积核数量以改变通道大小
谷歌Inception网络:
谷歌Inception网络基本思想是让网络自己决定需要什么样卷积核以及是否需要池化操作。我们知道。卷积核的大小需要我们去确定,比如
等,但是我们不好判断哪种最合适,以及池化层是否需要在某个位置添加,Inception网络就是让网络学习参数,从而决定采用什
么样的过滤器的组合。 给出了一个Inception网络的例子,通过使用same卷积,这些输出保持相同维度,只有通道数的不同。
Figure 8 : Inception网络
Figure 9 : 使用1*1卷积减小计算成本
不难发现,Inception网络有一个缺点就是需要更多的参数,因此会增加计算成本。那么,此时如果在输入输出之间先经过一个 卷积,就可以先
降低通道数,从而使得计算量下降,这就是 卷积在Inception网络中的应用, 是一个示例。其可以用在单个Inception模块中,如图
所示是一个完整的单个Inception模块(类似resnet的单模块),然后其可以组成 所示的完整Inception网络,网络由多个
Inception模块组成,当然还可以加上一些分支用来对提取到的特征进行预测分类等。
Figure 10 : Inception模块
1
∗
1, 3
∗
3, 5
∗
5
Figure
8
1
∗
1
1
∗
1
Figure
9
Figure
10
Figure
11
剩余13页未读,继续阅读
鸣泣的海猫
- 粉丝: 21
- 资源: 293
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0