zoukankan      html  css  js  c++  java
  • bilinear pooling

    一、双线性汇合的计算过程:

    第一步,计算Gram 矩阵:

    对于一组H×W×D的feature maps,$oldsymbol{x}_{i} in mathbb{R}^{D}$是图像的深度描述,其中$1 leq i leq H W$。双线性汇合双线性汇合是计算深度描述向量的格拉姆矩阵(Gram matrix),其中$oldsymbol{G} in mathbb{R}^{D imes D}$。

    egin{equation}
    oldsymbol{G} :=frac{1}{H W} sum_{i=1}^{H W} oldsymbol{x}_{i} oldsymbol{x}_{i}^{ op}
    end{equation}

    如果 不在整张图里面求取一个均值,思考一个像素点更容易理解双线性汇合。

    把$x_{1}$作为列向量,$x_{1}^{T}$就是行向量,这样相乘就是一个D×D的矩阵。

    从数学运算上思考上面的格拉姆矩阵,相当于是这么算的,将每个feature map展开为一维向量的形式,格拉姆矩阵中的一个值就是两个feature map向量【1,HW】与【HW,1】的乘积再除上HW。而综合来看就是【D,HW】与【HW,D】的矩阵乘积除以HW。

    第二步,将格拉姆矩阵展成向量:

    egin{equation}
    oldsymbol{s} :=operatorname{vec} oldsymbol{G} in mathbb{R}^{D^{2}}
    end{equation}

    第三步,进行规范化:

    egin{equation}
    s_{k} leftarrow operatorname{sign} s_{k} sqrt{left|s_{k} ight|}, s leftarrow frac{s}{|s|}
    end{equation}

    (这个地方没有明白是如何计算的?)

    二、延申与扩展

     协方差矩阵的定义:

    egin{equation}
    mathbf{Sigma} :=frac{1}{H W} sum_{i=1}^{H W}left(oldsymbol{x}_{i}-oldsymbol{mu} ight)left(oldsymbol{x}_{i}-oldsymbol{mu} ight)^{ op}=frac{1}{H W} oldsymbol{X} ilde{oldsymbol{I}} oldsymbol{X}^{ op}
    end{equation}

    其中:

    egin{equation}
    oldsymbol{mu} :=frac{1}{H W} sum_{i=1}^{H W} oldsymbol{x}_{i}
    end{equation}

    egin{equation}
    ilde{oldsymbol{I}} :=oldsymbol{I}-frac{1}{H W} mathbf{1} mathbf{1}^{ op} in mathbb{R}^{H W imes H W}
    end{equation}

    (这个地方没有明白是如何计算的?)

  • 相关阅读:
    VTK 9.0.1 vtkContextDevice2D 问题
    VTK 中文
    VTK 剪切
    VTK Color Map
    VTK Camera
    VTK Light
    VTK Read Source Object
    VTK Procedural Source Object
    Qt 布局开发问题记录
    Grafana 系列 (7):圖表是否可以数据追踪 (drill down)?(转)
  • 原文地址:https://www.cnblogs.com/yanxingang/p/10771624.html
Copyright © 2011-2022 走看看