论文笔记:Non-Local Neural Network
Abstract
卷积和循环操作都一次只在一个局部neighborhood上操作。
受到传统计算机视觉中非局部中值计算的启发,作者决定使用此方法在深度学习上。
公式
通用公式:
y i = 1 C ( x ) ∑ ∀ j f ( x i , x j ) g ( x j ) \mathbf{y}_{i}=\frac{1}{\mathcal{C}(\mathbf{x})} \sum_{\forall j} f\left(\mathbf{x}_{i}, \mathbf{x}_{j}\right) g\left(\mathbf{x}_{j}\right) yi=C(x)1∀j∑f(xi,xj)g(xj)
y \mathbf{y} y is output. x x x 是输入信号。 i i i是输出的值第i位置的值,j代表所有可能位置。
y \mathbf{y} y 与 x \mathbf{x} x 具有相同大小的维度。
C ( x ) C(x) C(x)是正则化常量
f f f代表两处变量的关系
非局部模块十分的灵活,可以放在网络的前面,可以很容易与循环层,卷积层放到一起。
实例
为了简便考虑,g就作为一个简单的线性变换 g ( x j ) = W g x j g\left(\mathbf{x}_{j}\right)=W_{g} \mathbf{x}_{j} g(xj)=Wgxj, 其中 W g W_g Wg是作为需要学习的参数。
接下来我们考虑函数 f f f:
Gaussian
f ( x i , x j ) = e x i T x j f\left(\mathbf{x}_{i}, \mathbf{x}_{j}\right)=e^{\mathbf{x}_{i}^{T} \mathbf{x}_{j}} f(xi