深度学习中,假设有两个层次的特征x∈Rn,x∈Rm.x \in \mathbb{R}^n, x \in \mathbb{R}^m.x∈Rn,x∈Rm. 如何得到融合这两者的新特征z∈Rk.z \in \mathbb{R}^k.z∈Rk.
常见的方法如下:
concat: z=[x,y]∈Rm+n,k=m+n.z=[x,y] \in \mathbb{R}^{m+n}, k=m+n.z=[x,y]∈Rm+n,k=m+n.addition: z=x+y∈Rkz=x+y \in \mathbb{R}^{k}z=x+y∈Rk,需要把两个特征映射到同一维度k.k.k.biLinear:
z=xTWy,W∈Rk×m×n.zi=xTWiy,Wi∈Rm×n,i=1:k.z=x^TWy, \quad W \in \mathbb{R}^{k \times m \times n}. \\ z_i = x^TW_iy, \quad W_i \in \mathbb{R}^{m \times n},i=1:k.z=xTWy,W∈Rk×m×n.zi=xTWiy,Wi∈Rm×n,i=1:k.sum-pooling:
设未池化的特征图为X∈Rn×h×w,y∈RmX \in \mathbb{R}^{n\times h \times w}, y \in \mathbb{R}^mX∈Rn×h×w,y∈Rm,
z=∑i,jwij⊙Xij∈Rnz = \sum_{i,j} w_{ij} \odot X_{ij} \in \mathbb{R}^nz=i,j∑wij⊙Xij∈Rn
i,ji,ji,j表示特征的每一个位置。其中wijw_{ij}wij计算如下
wij=σ(FC([Xij,y]))∈Rn.w_{ij}=\sigma \big(FC([X_{ij}, y])\big) \in \mathbb{R}^n.wij=σ(FC([Xij,y]))∈Rn.
σ\sigmaσ表示sigmoid函数,FC的作用是维度调整。
本文探讨了深度学习中如何通过concat、addition、biLinear和sum-pooling方法融合不同维度特征x和y,形成新特征z。讲解了每种融合方式的原理和适用场景,重点介绍了sigmoid和FC在sum-pooling中的作用。
5754

被折叠的 条评论
为什么被折叠?



