卷积神经网络扩展 - Resnet网络简介

一.简介

1.残差神经网络是2015年由微软研究院四位华人提出的,在Imgnet上夺冠的神经网络,它是有152层深的神经网络,在2015年的ILSVRC比赛中取到了3.5%错误率。

Resnet能够达到152层的原因是引入了残差模块的概念,使用如下图的残差模块控制跳转来克服深层网络梯度消失的问题。

2.创建残差模块的思路是:对于一个神经网络,随着我们增加网络深度时,会导致梯度消散问题,梯度消散时训练集和测试集上误差都会增大,而此时我们增加几个y=x的全等映射层,更深的网络并不会引起误差的上升,而这种全等映射层就是设计残差模块的思路源泉。

二.主思想介绍

1.创建ResNet模块的理论来源是瑞典科学家提出的Highway Network,Highway Network设计的目标是解决较深网络难以训练的问题,设计方案是把原本的网络输出激活函数   改成下式,其中x是输入,C为保留系数,T为转化系数,在论文中C+T=1,通过这样的方式来调节新学习的信息比例。

                            

              [1]当T=0时,说明就是直接的令y=x,                

             [2]当C=0时,就是不保留原始信息,只使用激活函数新求出的信息。       通过让网络进行学习,尽最大可能当还不饱和时就继续学习,当饱和时就令后面网络的C=1,这样这个Highway Network模块就相当于全等映射层,就算深度再深也不会对误差产生影响。

       通过让网络进行学习,尽最大可能当还不饱和时就继续学习,当饱和时就令后面网络的C=1,这样这个Highway Network模块就相当于全等映射层,就算深度再深也不会对误差产生影响。

2.对应在ResNet中,每个残差模块中原始信息是x,我们要学到的期望输出是H(x)(会由给定喂养数据得出每部分应输出), 我们不像上面使用保留系数,而是把原始信息直接传到输出,所以此时进行学习的目标是F(x)=H(x)-x,也就是通过学习让网络输出合适的F(x),              

             [1]当F(x)=0时,我们会保留所有的原始信息,相当于全等映射层。                

             [2]当F(x) 0时,会使用原始信息和新输出信息的结合。       这里F(x)使我们学习的目标,我们称之为残差,残差并不是越小越好,要合适。

这里F(x)使我们学习的目标,我们称之为残差,残差并不是越小越好,要合适。

3.如下图,通过对比传统的卷积神经网络发现,34层的Resnet与普通网络的最大区别在于Resnet有很多旁路的支线将输入直接连到输出,从而能使后面的层能直接学习到残差,通过学习残差来控制支线是否直接通过。

4.使用Resnet模块这种方式因为可以令输入信息直接绕道到输出,所以能保护信息的完整性,一定程度上能防止信息丢失和损耗问题,而且现在整个网络只需要学习输入和输出差别那部分残差,所以可以简化学习目标和难度。

5.残差模块除了有两层结构外,还有三层结构,如下图,三层结构中3*3卷积核前后是两个1*1的卷积核,这两个1*1的卷积核相当于先升维后降维的效果

                      

ResNet最高能达到152层,不同层数对应的ResNet结构、参数量如下图。

猜你喜欢

转载自blog.csdn.net/maqunfi/article/details/82252649