转自:https://blog.csdn.net/shuzfan/article/details/78274489
一篇讲如何设计网络结构的文章,大体上整合了ResNet和 DenseNet的优点:
- ResNet: 侧重于特征的再利用(因为整合特征采用的是加和操作)
- DenseNet: 侧重于新特征的发掘(因为整合特征采用的是拼接操作)
我认为文章最大的贡献是为ResNet和DenseNet找到了一个形式统一的数学表达。
Github项目主页: https://github.com/cypw/DPNs
1. ResNet, DenseNet and Higher Order RNN
本文试图为ResNet 和 DenseNet找到一个形式统一的数学表达。
如式(1),ht” role=”presentation” style=”position: relative;”>htht 表示对提取特征做输出前的变换。
当假设 ∀t,k,ftk(⋅)=ft(⋅)” role=”presentation” style=”position: relative;”>∀t,k,fkt(⋅)=ft(⋅)∀t,k,ftk(⋅)=ft(⋅)
其中, ϕk(⋅)=fk(gk(⋅)” role=”presentation” style=”position: relative;”>ϕk(⋅)=fk(gk(⋅)ϕk(⋅)=fk(gk(⋅)。
(1)Higher Order RNN
对于HORNN,所有时刻的权重都是共享的,即 ϕk(⋅)” role=”presentation” style=”position: relative;”>ϕk(⋅)ϕk(⋅)保持不变,于是有:
∀t,k,fk−tk(⋅)=ft(⋅)” role=”presentation” style=”position: relative;”>∀t,k,fkk−t(⋅)=ft(⋅)∀t,k,fk−tk(⋅)=ft(⋅)
∀k,gk(⋅)=g(⋅)” role=”presentation” style=”position: relative;”>∀k,gk(⋅)=g(⋅)∀k,gk(⋅)=g(⋅)
(2)ResNet
对于ResNet,显然 ϕk(⋅)” role=”presentation” style=”position: relative;”>ϕk(⋅)ϕk(⋅),于是总结有:
∀t,k,fk−tk(⋅)=ft(⋅)” role=”presentation” style=”position: relative;”>∀t,k,fkk−t(⋅)=ft(⋅)∀t,k,fk−tk(⋅)=ft(⋅)不共享。
(3)DenseNet
对于DenseNet, 每一时刻(即每一个mini-block)都有其独有的参数,即不要求任意时刻ftk(⋅)” role=”presentation” style=”position: relative;”>fkt(⋅)ftk(⋅)保持不变。 于是,我们可以认为ResNet是DenseNet的特殊情形。
结合上面的分析,下图中的(a)和(b)说明了ResNet与RNN的关系;下图中的(a)和(c)说明了ResNet与DenseNet的关系。
2. Dual Path Networks
通过上面的分析,我们可以认识到 :
- ResNet: 侧重于特征的再利用,但不善于发掘新的特征;
- DenseNet: 侧重于新特征的发掘,但又会产生很多冗余;
为了综合二者的优点,作者设计了DPN网络,其数学形式如下:
显然,式(5)表示DenseNet的形式,侧重于发掘新特征;式(5)表示ResNet的形式,侧重于特征的再利用;式(6)表示二者结合。
下图给出DPN的设计结构:
如上图所示,图(a)是残差网络示意图;图(b)是 DenseNet的示意图,其中加下划线的1x1卷积是临时增加的,只为了和(a)在形式上对齐; 图(c)表示当将所有第一个1x1卷积共享后,DenseNet可以退化为残差形式; 图(d)为DPN; 图(e)为DPN的实现形式,其中 ≀” role=”presentation” style=”position: relative;”>≀≀ 表示拆分;
由于DenseNet的Concat操作会加宽feature map,为了减慢增宽速度同时减轻GPU的使用,因此如上图(e)所示:网络结构以ResNet的加和为主体,以DenseNet的拼接为辅助。 同时,为了进一步提高网络表达能力,每个Block的第2个卷积层,采用了group操作。
具体的网络结构如下表所示:(注意下参数量param以及计算量FLOPS的对比:)
<link rel="stylesheet" href="https://csdnimg.cn/release/phoenix/template/css/markdown_views-ea0013b516.css">
</div>