【operations】Non-local Neural Network&Densely Connected CNN

用博客记录一下提升神经网络整体性能的一些通用操作~

Non-local Neural Networks


论文链接
github链接
不论是作用在空间还是时间,CNN和RNN操作都总是在建立一次只处理一个局部邻近区域的块,此时若想捕捉长距离依赖,只能通过不断重复这些操作,在数据中逐步传递信号。但这种方式计算复杂,优化困难,特别是对于多跳依赖模型(multi-hop,如信息在远距离的位置之间来回传递)。

论文提出了能捕捉长距离依赖的非局部操作在某个位置的响应计算为所有位置的特征的加权和。该操作的优点在于:

  • 能抛开相隔距离,计算任意两个位置之间的联系
  • 即使只有少数层,效果也很好
  • 维持输入尺寸;且“位置”可以指时间或者空间,也就是说该操作对图像,序列,视频问题都适用
    在这里插入图片描述
    如上图所示,左一图中的球与之后几帧图像中的人和球的位置都产生了联系。较远处的像素也对该位置的响应有贡献,有助于网络捕捉到更丰富全面的信息。

非局部操作-公式
在这里插入图片描述
x,y分别对应输入信号和相同尺寸的输出信号;i,j分别是需要计算响应的位置和将要遍历的所有位置;f函数计算 x i x_{i} xi x j x_{j} xj的关系,g函数计算输入信号在位置j上的表征, C ( x ) C(x) C(x)是一个正则化因子。该公式计算所有位置的信号对当前计算位置的信号的影响。

非局部操作-变体
在上述公式下,如何选择f函数,g函数和正则化项呢?论文中,g函数被简单地定义为线性embedding: g ( x i ) = W g x j g(x_{i})=W_{g}x_{j} g(xi)=Wgxj,可用1x1的卷积进行操作;对于f和正则化的选择,作者提出了四种变体:

variantfunc fNormalization
Gaussian在这里插入图片描述在这里插入图片描述
Embedded Gaussian在这里插入图片描述在这里插入图片描述最终可看做是softmax
Dot product在这里插入图片描述在这里插入图片描述
Concatenation在这里插入图片描述在这里插入图片描述

Non-local block
使用残差连接,将公式包装成可以插入到任何架构中的块:在这里插入图片描述
x和y分别对应输入以及非局部操作公式的输出。实现过程如图所示:
在这里插入图片描述
为了减轻计算负担,可以采取以下两种方式:

  • 将权重矩阵的通道数量控制为输入的一半,在上面的残差连接步骤时再增加为输入的通道数量
  • 对输入进行下采样后再做非局部操作。如在g和 ϕ \phi ϕ函数后加一个最大池化层

Densely Connected CNN


论文链接
github链接
近期的一些工作证明如果网络在靠近input的入口处和接近输出的出口处这二者之间有更短的连接,CNN可以更深,更准确,更好训练。因为input经过多层网络的传递之后被“冲淡”。

作者认为在深层的网络中存在许多冗余,为了改善这个结构,不注重网络的深度,而是考虑特征重用,提出了DenseNet:每一层都接受之前所有层的输出的拼接作为输入,同时每一层产生的输出也将成为之后所有层的输入的一部分
在这里插入图片描述
DenseNet有以下优点:

  • 减轻了梯度消失的问题
    这种结构改善了信息流(information flow),每一层与损失函数的梯度以及原始输入都有直接的联系。
  • 减少参数
    传统的前向传播结构可被视为维护一个状态,将这个状态在层与层之间传播,每层改变状态,并传递原状态中希望保留的部分。实际上很多层是冗余的,无法带来多少效果的提升,但每层又都有自己的权重参数。
    而在DenseNet中,网络无需在冗余的特征映射上进行学习,相当于减少了参数。
  • 加强了特征的传播,鼓励特征重用
    DenseNet明确区分了要保留的信息和新加入的信息。拼接不同层的特征映射,增强了之后每层的输入的可变性(variation),提升学习效率。

Dense Connectivity
在DenseNet中,第 l l l层的输出 x l x_{l} xl是在之前所有层的输出拼接的结果之上进行一系列操作 H l H_{l} Hl。作者采用的操作为BN-ReLU-3x3Conv
在这里插入图片描述
Growth rate
输入层的通道数量为 k 0 k_{0} k0,操作 H l H_{l} Hl产生 k k k个特征映射, k k k称为growth rate
l l l层有 k 0 + k ∗ ( l − 1 ) k_{0}+k*(l-1) k0+k(l1)个特征映射。实验证明,一个相对较小的growth rate即可得到state-of-the-art的结果。

Transition Layers
当特征映射的尺寸发生变化时,无法对特征映射进行拼接。为了在进行下采样之后仍然可以进行拼接,作者将网络划分为多个dense layer组成的dense block,并在block之间构建包含池化操作和卷积操作的transition layer以灵活改变尺寸,如1x1Conv-2x2pooling
在这里插入图片描述

一些变体
DenseNet-B:在3x3Conv前加入1x1Conv构成Bottleneck layer,减少输入的特征映射数量。即BN-ReLU-1x1Conv(产生4k个特征映射)-BN-ReLU-3x3Conv

DenseNet-BC:在trainsition layer进一步压缩模型,引入一个参数:压缩因子 θ \theta θ 0 ≤ θ ≤ 1 0\le\theta\le1 0θ1,包含m个特征映射的dense block在trainsition layer产生 θ m \theta m θm个特征映射。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值