电话

020-955774

网络结构设计

标签: 网络设计 2023-11-30 

  本文主要关注能够提高模型容量(在ImageNet的准确率)的设计方法,并且提出对其共性进行分析与思考,同时也关注参数效率。任何网络结构,我们都从三个角度进行分析:优化,模型,特征。

  作者在第一个版本中通过巧妙思维从学习整体信息变成学习信息差,通过skip_connection的构建起了残差网络。这样的网络结构一定程度上解决了梯度传导的问题,同时使等同映射变得更加容易(显式的实现这一点)。其设计如下图左所示:

  作者在第二版本中从优化的角度对其进行了改进,如上图右所示。在论文中作者一直强调的一点就是信息可以直接从在任意两层中传递,梯度可以更容易实现跨层传递。

  从优化角度分析,无论一个网络拓扑连接多么完美或者合理,如果梯度信息无法到达,那么这样的结构就是失败的,

  。而这里的跨层十分有利于特征与梯度的传递(更强的鲁棒性,如果某层的Conv出现问题导致梯度不能有效传递,还可以通过跨层无损传递)。

  的模型的集成。分析如下:对于某个输入,这一层权重层是否能被激活有两种可能,因此信息的流动(有效模型的组成)就有两种可能,

  因此在N层网络中可以将其看成 是2^N 个模型的集成,量变到质变。同时这个集成模型是联动训练,最大化共享参数,提高网络模型的泛化性能

  。而对于某个特定的输入,网络可以根据具体的实例生成特定的模型(哪些层响应,哪些层不响应,特定的网络深度)。目前已经有paper说明了不同类别需要不同的网络深度。

  从特征的角度,当前特征可以看成是不同感受野,不同level的特征集成的结果(特征更加丰富),通过可以让特征具有更好的稀疏性(不一定要求每层都响应,特征更加鲁棒)。

  作者从研究文献中发现,将先前的特征输入到后面的层中会取得更好的效果。因此作者将其升华发明了DenseNet。其采用了一种与ResNet完全不同的跨层结构,直接将前层的特征连接到后层。其单元示意图如下:

  个模型的集成.分析如下,假设DenseNet中有n层,由DenseNet的连接特征可知,任意两层之间都相互连接,所以求模型集成个数的问题,可以转换成从n-2个层中抽取任意个层,其总的集成模型个数为

  .所以我们可以发现,DenseNet从全局看拥有与ResNet同样多子模型。

  从特征上来说,以前面所有层的特征作为输入,让信息的流通更加顺畅,让特征的表达更加丰富。实验更加直接说明了高层信息和合成需要底层很多层的帮助(虽然在resnet中这点有所体现,但是没有这里直接,将隐形转换成显性)。但是DenseNet中每一个层都是一个重新学习特征的过程,而resnet则是充分利用上一次学习的成果。

  作者在第四个版本中,在不同的阶段使用了不同的结构。这个思想是比较超前的:

  通览整个Inception家族,可以发现其跨层结构是通过在同一层中不同的操作来实现的(不同的操作与不同的权重层数)。

  从优化的角度,虽然信息不能在任意两层中直接传递,但是可以根据实际情况选择合适的长度进行优化。

  从模型集成的角度,每层也有多种不同的信息流动路径选择,因此也是指数级的模型集成结果。

  从特征的角度,可以看到同一层的特征汇集了不同感受野与深度或者不同操作所形成的特征,增强了特征的表达。

  为了更加深刻认识ResNet结构的特点与好处,推荐下面两篇论文,他们很好地分析了其特点。

  2. 实验结果表明不共享要比共享好,2 full rnn 比 1 full rnn好。但是共享并没有下降很多,在1--2点,说明ResNet的参数效率不是很高。

  3. 深度始适中就好,深度不是关键。跨层连接能够保证是由图像本身的特点决定多长 而非由网络层固定的长度。需要多大的抽象.分析如下:

  residual networks behave like ensembles of relatively shallow networks

  个模型的集成,所以最终的结果可以看成是这么多个model Ensemble的结果.所以我们看出每个参数影响的路径也变多,所以参数效率也上去了,这在传统结构中是不可能的。

  这样的结构可以满足不同深度模型的需求。 这篇论文中作者通过实验发现ResNet有以下特点:

  layers are not strongly depend on each others.(训练出完整的模型,然后去掉某层),去掉底层影响较大,但是也没有VGG大,说明了ResNet也有很好的冗余能够保证网络正常运转。但是去掉某层后是某一类的正确率下降较突出。(这也支持了ResNet是Emsemble模型的结论。对于不同的输入,不同层的响应是不一样的。这个在SENet中也可以看出),作者还做了移除多个modules的实验。

  the importance of shrot paths in residual network

  ,如果(有效路经)选择skip connected 和residual layer的概率都是50%,网络的长度大多数分布在名义上长度的一半附近,

  。为验证网络的有效深度,作者随机抽选k个module进行反向梯度传播 ,剩下的走skip的通道。从log空间上看,超过30层后,梯度的量级下降变快,大小也可以忽略不计了。梯度也主要来自于5~17层的长度。

  是否能够进行更新决定了结构是否有效性, 既然梯度只能传这么多层, 也就是最有效的网络深度也是这么大. 所以skip结构可以保证网络拥有更多的这样的子结构.

  作者从54个moudle中随机选取23个进行训练。获得5.96%的相对于full model的6.1% in cifar10.

  作者通过highway networks也发现网络偏向于运用skip conection。

  从上面的两篇文章中可以看出,有效的是短路径,尽可能多的短路径。深度可能不是必须的,但是residual才是必须的,因为他提供长度变化的可能,深度也是必须的,必要的深度才有可能组成足够的10---30层的网络。才有可能获得更好的性能。

  观察上面的结构,可以发现他们的结构都拥有跨层多通道的特点,这才是这些网络成功的原因。这样结构也成为了先进网络的标配。只不过实现的形式不同而已,这样的结构实际上会带来很多好处,我们可以从以下三个方面进行分析与总结:

  1. 从优化的角度,无论结构设计的多么完美,如果梯度信息不能有效传递,就代表特征没有得到优化,从而导致结构设计无效。因此梯度信息在网络结构中传递十分重要,这跨层多通道的拓扑结构,可以保证梯度能够有效传递(两个角度:跨层与多通道(一个出了问题还有另外的通道))。从而实现高效的学习。

  2. 从模型集成的角度,因为这样的结构一个网络可以看成是由指数级个子网络的集成的结果。这本身就是一个质的突破。模型的集成可以提高精度,何况指数级个模型集成。同时这样的动态模型集成的结果,可以最大化共享参数,提高参数效率。而且可以针对特定的输入,生成特定的网络结构。

  3. 从特征生成的角度,因为跨层结构的出现,因而每层的特征融合了不同等级的特征(可以理解成不同感受野,不同抽象,不同水平(低级与高级),同时允许特征具有很好稀疏的稀疏表达(不一定每一层都必须响应(跨层),不一定一层中的所有节点都得响应(Inception))),增强了特征的表达力。同时来增强了特征的稀疏性。

  训练与测试网络时,费时的主要因素是深度,而不是特征大小,WRN获得了更快的速度。Width vs depth. 同样的复杂度,浅网络比深网络需要更多的成分。(但是有效成分呢,越深越难训练)。深网络的问题,参数有效率低。所以像ResXNet这种减少的参数,反而可以获得更好的效果,加强了传播。SENet优化,加强了传播。dropout in residual block not in identify map对于WRN而言,B(3,3)的效果是最好的。无论是层数还是kernel大小。residual的结构是非常有必要的。作者也说明了深度是非常有必要的。WRN的参数是比相同性能的ResNet大的,但是照样活得很好。所以参数量并不是关键因素。我们也可以看出WRN也可以组成多种路径长度的通道.还有层内dropout也促进这个趋势.

  这个结构很简单,但是也十分具有美的结构.同样的组织形式,不同的含义.在一个block中,它拥有的路径长度有{1, 2, 4, 8, ..., 2^n}, 所以我们也可以组成不同路径长度. 同时相同路径长度也可以有多条.

推荐新闻