特征融合的常见方法

深度学习中,假设有两个层次的特征 x ∈ R n , x ∈ R m . x \in \mathbb{R}^n, x \in \mathbb{R}^m. xRn,xRm. 如何得到融合这两者的新特征 z ∈ R k . z \in \mathbb{R}^k. zRk.

常见的方法如下:

  • concat : z = [ x , y ] ∈ R m + 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 ∈ R k z=x+y \in \mathbb{R}^{k} z=x+yRk,需要把两个特征映射到同一维度 k . k. k.
  • biLinear:
    z = x T W y , W ∈ R k × m × n . z i = x T W i y , W i ∈ R m × 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,WRk×m×n.zi=xTWiy,WiRm×n,i=1:k.
  • sum-pooling:
    设未池化的特征图为 X ∈ R n × h × w , y ∈ R m X \in \mathbb{R}^{n\times h \times w}, y \in \mathbb{R}^m XRn×h×w,yRm,
    z = ∑ i , j w i j ⊙ X i j ∈ R n z = \sum_{i,j} w_{ij} \odot X_{ij} \in \mathbb{R}^n z=i,jwijXijRn
    i , j i,j i,j表示特征的每一个位置。其中 w i j w_{ij} wij计算如下
    w i j = σ ( F C ( [ X i j , y ] ) ) ∈ R n . w_{ij}=\sigma \big(FC([X_{ij}, y])\big) \in \mathbb{R}^n. wij=σ(FC([Xij,y]))Rn.
    σ \sigma σ表示sigmoid函数,FC的作用是维度调整。

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