《Dynamic Filter Networks》动态过滤网络

Dynamic Filter Networks

《Dynamic Filter Networks》NIPS 2016
论文链接:https://arxiv.org/abs/1605.09673

一、目的

卷积核参数训练完就是固定的,不够灵活,作者希望得到一个根据输入动态生成的过滤器。
提出dynamic filter module(filter-generating network 、dynamic filtering layer).
根据一个视角图预测其他视角(旋转人脸)、预测视频下一帧、2D变3D等等常用到类似方法。

二、Dynamic Filter Networks

《Dynamic Filter Networks》动态过滤网络_第1张图片

动态过滤模块包括:过滤器生成网络、动态过滤层

2.1 Filter-Generating Network

2.1.1 过滤器生成网络输入和输出?

输入: I A ∈ R h ∗ w ∗ c A I_A \in R^{h * w * c_A} IARhwcA, h , w , c A h,w,c_A h,w,cA分别是高、宽、输入通道数;
输出: θ ∈ R s ∗ s ∗ c B ∗ n ∗ d \theta \in R^{s * s * c_B * n *d} θRsscBnd, s s s 是过滤器大小, c B c_B cB是输入特征B的通道数目, n n n 是过滤器数目,对于动态卷积 d = 1 d=1 d=1,对于动态局部过滤 d = h ∗ w d=h * w d=hw s s s 是过滤器的感受野

s s s可以自由设置取得更感受野,也可以堆叠多个提升感受野(可以用于包含大的局部位移的情况)。

2.1.2 怎么使用过滤器?

G = F ( I B ) G=F(I_B) G=F(IB)
其中:
I B ∈ R h ∗ w ∗ c B I_B \in R^{h * w * c_B} IBRhwcB是过滤器输入;
G ∈ R h ∗ w ∗ n G \in R^{h * w * n} GRhwn是经过过滤器后的输出。

2.1.3 怎么实现过滤器生成网络?

多层感知机、卷积神经网络(适合图像任务)

2.2 Dynamic Filtering Layer

《Dynamic Filter Networks》动态过滤网络_第2张图片

动态过滤层有两种形式:动态卷积、动态局部过滤
图1和图2都是过滤器数目为1的情况:
图1是 5 ∗ 5 5 * 5 55的卷积核作为过滤器,在B上以次过滤器作为卷积核滑动,是不同位置共享的;
图2虽然是个立方体,但也是一个过滤器,只不过每个位置一个核,保存的时候拉成一列(也为 5 ∗ 5 5 * 5 55),用的时候每个位置一个卷积核恢复成原来形状使用即可。

2.2.1 动态卷积层

图2的a,和普通卷积一样计算,唯一不同就是卷积核参数是根据输入生成的(样本变卷积核变)

G ( i , j ) = F θ ( I B ( i , j ) ) G(i,j)=F_{\theta}(I_B(i,j)) G(i,j)=Fθ(IB(i,j))

2.2.2 动态局部过滤层

属于动态卷积层的一个扩展,不再是平移不变的卷积核,每个位置都有单独的一个过滤器。

G ( i , j ) = F θ ( i , j ) ( I B ( i , j ) ) G(i,j)=F_{\theta}^{(i,j)}(I_B(i,j)) G(i,j)=Fθ(i,j)(IB(i,j))

从公式中 F F F 的上标 ( i , j ) (i,j) (i,j) 也可以看出每个位置都有一个单独的局部卷积核,整个过滤器有 h ∗ w h * w hw卷积核;

如果每个滤波器都用softmax约束,则每个位置只包含一个非0元素,局部过滤层就可以把每个位置元素替换为它邻域元素,可以用输入 I A I_A IA 来作为条件建模 I B I_B IB的局部空间变形。

三、用处

可以用在光流估计、视频预测、深度估计、2D转3D、图像旋转扭曲;
共性就是用一张图或者多张图 预测另一张或多张图。

你可能感兴趣的:(深度学习)