总结与归纳:深度神经网络中的数据融合方法

数据融合是一个重要的方法,有时候我们想结合多个东西在一起的时候就需要用到融合方法。深度学习中也不例外,我们经常会将两个或多个数据融合在一起。数学上,我们可以定义成:
y=f(x1,x2,...,xn)y=f(x_1, x_2, ..., x_n)
于是,我们说:
1.这个公式里面ff应该是怎样的一个函数或者变换呢?
2.变换之后x,yx,y之间又会是怎样的关系?
3。这样的变换有什么好处,有什么条件,又有什么缺陷或者限制呢?

以下本文将讨论这些问题,并且为了简化,我们假设只有两个输入x1,x2x_1,x_2和一个输出yy

相加 add

最简单的一类应该就属于直接相加了,直接将按照元素输入相加即可。用数学表示就是:
y=f(x1,x2)=x1+x2y=f(x_1,x_2)=x_1+x_2
要求:相加数据的维度要相等。这个条件是显然可见的,而且相加后数据维度不变。
好处:相加不改变梯度的变化。操作也比较简单快速。
参考【6】就是利用这个方法的典型。
限制: 我们可以想象使用这个方法的限制,这些限制不如数据维度要相等这么直接。首先,两个输入x1,x2x_1,x_2应该是有相同含义或者相似含义的,或者说输入和输出之间是对应的。在ResNet中,就假设其中一个输入可能为0,而输入可能就是其中一个输出。含义相似这里可以先不讨论,看到后面可能就明白了。因为我也难以定义出来。

此外,我们还要知道直接相加也意味着两个输入需要有同样的范围,而且重要性是相等的。
ResNet中元素相加用来维持梯度

非线性相加(结合注意力机制)

我们说有时我们想两者具有不相等的重要性,这时候加权就来了。用数学表示就是
y=f(x1,x2)=αx1+βx2y=f(x_1,x_2)=\alpha*x_1+\beta*x_2
要求,这里和上面直接相加相同。
好处:输入之间可以具有不同的重要性,甚至可以使用自学习机制来确定其重要程度。
例子:可以查看参考【1】,其框架如下图,图中U^,U~\hat U, \tilde U分别表示具有不同感受野的特征图(不同filter可能会有不同感受野),然后通过一个注意力机制分配不同的权重,这篇论文旨在自动选择不同感受野的特征。最后相加起来。
限制:我们看这里的相加对象就是一个相同含义的,都是特征图,但是感受野不同。
在这里插入图片描述

相乘 multiply

有待更新。

相连 concatenate

除了相加之外,还有一个就是堆叠了。用数学表示是这样的:
y=f(x1,x2)=x1x2y=f(x_1,x_2)=x_1 \oplus x_2,假设x1,x2x_1,x_2的维度分别是(B,C1,H,W)和(B,C2,H,W),并且我们按照第二个维度进行堆叠,yy就变成了(B,C1+C2,H,W)这样的维度。
要求:我们可以看到,输入之间除了堆叠的那个维度不同,其他维度需要相同,否则无法进行堆叠。对比上两个方法来说,这个方法放松了一个要求,就是可以有一个维度不一样。这样就更加灵活了。
好处:一般来说,加法是concatenate方法的特殊形式。因为我们融合特征图之后都会做新的卷积,堆叠方法是wX=w(x1x2)=w1x1w2x2wX=w(x_1\oplus x_2)=w_1x_1\oplus w_2x_2 其中(w=w1w2)(w=w_1\oplus w_2). 假如堆叠方法中w1,w2w_1,w_2相等,它就退化成了相加。
限制:显然的,这个方法要求有更多的内存。但是我们可以结合不同维度的东西。比如参考【3】中,随机噪声这个输入的维度比图像的维度可以低很多。实际上在实际过程中,降低了对内存的需求。

我们看到这里,依然是要求输入之间是有相同含义的,下面开始介绍一些不同含义的。
在这里插入图片描述
在这里插入图片描述
上图可以参考【5】,这里的作用是将不同位置的特征结合起来生成新的特征,主要是想保存好前面的低维特征,不至于损失太多。

统计数据融合(normalization)

假如结合的数据是不同类型的应该怎么办呢?比如下面这个例子,一个输入是特征图,另一个输入是我们想要归一化这个特征图的统计数据。(想到batch normalization 中我们需要计算均值和方差来加快训练)。下面这个例子是instance normalization(不知道什么是instance normalization没有关系,只需要知道一个输入是特征图,一个输入是可以均值和方差)。可以参考论文【4】.μ,σ\mu, \sigma分别是均值和方差。
在这里插入图片描述
要求:某一个维度可以不相等,其他维度必须相等。
好处:可以实现不同含义的数据进行融合。这里均值和方差表示图像的风格,输入特征图表示图像的内容。下面这张图(参考论文【4】)就表示什么是内容,什么是风格。
限制:这种方法利用统计指标进行了融合,可以改变一个输入的统计指标,通常我们用统计指标来表示一些条件来作用在特征图上。下面第二张图(参考论文【2】)更是融合了三个条件,特征图,随机变量和标签。还有另一篇文章也同样采用了这个方法,见下面第三张图,可参考论文【9】。这里我们还可以看到一个输入完全改变了另一个输入的统计指标,假如我们想只改变部分内容的风格呢?
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

具有空间位置的统计数据融合(normalization)

上面最后一个方法中,原始统计值是一维的,我们将他们编码后变成三维,但是这样无法表示空间信息。所以,假如我们直接将统计值变成三维的是否可以表示空间位置呢?
论文【7】给出了答案。
在这里插入图片描述
如上图,统计值γ,β\gamma, \beta分别表示方差和均值,但是他们都是三维的,直接乘以或加到特征图上,可以表示空间信息了。

写道这里我们可以发现,使用统计值的方法可以进一步放宽对输入的要求,并且可以通过这个方法来控制特征图。

参考文献
1: Selective Kernel Networks
2: Large Scale GAN Training for High Fidelity Natural Image Synthesis
3: Toward Multimodal Image-to-Image Translation
4: Arbitrary Style Transfer in Real-time with Adaptive Instance Normalization
5: Image-to-Image Translation with Conditional Adversarial Networks
6: Deep Residual Learning for Image Recognition
7: Semantic Image Synthesis with Spatially-Adaptive Normalization
8: EXEMPLAR GUIDED UNSUPERVISED IMAGE-TOIMAGE TRANSLATION WITH SEMANTIC CONSISTENCY
9: A Style-Based Generator Architecture for Generative Adversarial Networks

为何要点赞?

如果本文解决了你的困惑,不妨点个赞鼓励一下。
整理不易,且看且珍惜。
不管你信不信,也不管你同不同意,实际上,你的每一次点赞都标志着你自身的进步。而打赏乃是点赞的高级形式
曾经有无数个点赞的机会,但是我都没有好好珍惜,假如时光可以倒流,我一定为他们也为自己点赞。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章