轻量级非局部网络的神经结构搜索.

Non-Local模块引入自注意力机制提取全局特征,但是计算量巨大,引入大量的矩阵乘法,因此Non-Local的位置相对固定,一般只放置在网络高层用于高维特征编码。

本文作者通过神经结构搜索技术来设计包含Non-Local模块的卷积神经网络,为了实现搜索,首先设计了一种轻量级的Non-Local模块:LightNL

LightNL相比于原始的Non-Local模块,主要有三点差异:

对于第三点,作者简单的使用采样的方法,对于输入的特征$(H, W, C)$,在spatial维度和channel维度上进行降采样,具体实现的方法是:

于是这里引入了两个可搜索参数nl_stridenl_ratio(小于$1$);另外还有一个隐式的搜索参数:插入LightNL的位置Location

在实现时,对$Q$仅进行通道下采样$x_c$,对$K$同时进行通道和空间下采样$x_{sc}$,对$V$仅进行空间下采样$x_s$。$x_c,x_{sc},x_s$这三者之间的矩阵相乘是可以通过结合律等价实现的,但是两种计算方法的总计算量是不同的:

作者设置IBN(Inverted bottleneck network)作为主要搜索的模块,在每一个IBN的第二个pw-conv之后加入待搜索的LightNL模块,而是否使用该模块则通过一个隐变量$t$决定,当满足dw-conv权重的二范数大于阈值$t$时,LightNL才会被使用。否则LightNL输出端的dw-conv的权重会被置为全$0$。

于是,整个搜索空间的可搜索参数为:

搜索得到的网络结构如下: