Priming Neural Networks

CVPRW 2018, Oral @ MBCC Workshop

最後一個作者 John K. Tsotsos 的個人主頁值得探索一下。

PrimingNN

本文叫作 Priming Neural Networks,意圖提出 a mechanism to mimic the process of priming,實質上由於作者認為 Visual priming 就是 an effect of top-down signaling in the visual system triggered by the said cue,所以本文其實本質上也是一個試圖模擬 Top-Down 的 Attention 方法,就像 DES。模型方法如下所示:

與 DES 不同的是:

  1. 這裡的 top-down feedback 是影響每一個 layer 的
  2. DES 裡面的 cue 是通過 Weakly Supervised Semantic Segmentation 完成的,而本文好像是給定的 cue 表達(比如含有的類別?cue 是在 label 之外額外的信息)
  3. DES 是生成一個 Pixel-wise weight map,而 PrimingNN 是 Channel-wise 的 weight vector

Top-down Attention 是什麼?

本文這裡刻畫的是 an effect of top-down signaling in the visual system triggered by the said cue

另一種表述是,Priming / Top-down Attention 是 a modulatory, cue dependent effect on layers of features within a network

Top-down Attention 有什麼作用?

本文這裡強調的作用是:對於人眼,在知道了 cue 之後可以發現之前 near unnoticeable 的目標;對於計算模型,可以幫助發現純粹 Bottom-Up 會忽略的小目標,(關鍵在於給定 cue)

從下圖中可以看出,Priming 的一大好處是可以發現許多 small Object,如果不做 priming,這些 small Object 是會被 baseline 給忽略掉的;從左到右分別是input image, ground-truth, baseline segmentation(DeepLab), primed network

怎麼建模 Top-down Attention?

本文給出的 Priming 框架是這樣的,感覺這裡的 Priming 基本就等於 Top-Down Attention 了。是的,按照文章的說法, 也就是說,Visual Priming 就是一個在給定 cue 之後的 Top-down signaling。

  1. A cue about some target in the image is given by and external source or some form of feedback.
  2. The process of priming involves affecting each layer of computation of the network by modulating representations along the path.

cue 的來源

cue 是 top-down signaling 的來源,首先第一步是怎麼刻畫 cue?在這裡,cue 是給定的,比如 a binary encoding of them presence of some tar- get(s) (e.g, objects),注意的是,cue 是在 label 之外的信息。這裡作者似乎是直接給的,而 DES 里那樣是從弱監督語義分割來的。弱監督還是利用的 label 的信息,並沒有信息的增益,頂多是相對於 Object Detection 分支,語義分割也許會彌補上一些 Object Detection 分支疏漏的信息。

不過直接給 label 之外的 cue,對於很多場景還是比較難實現的。

cue 的表徵

需要有一個 mechanism 來 transforms an external cue about the presence of a certain class in an image (e.g., 「person」) to a modulatory signal that affects all layers of the network.

具體這個 mechanism 的實現方式,本文是在原先網路的基礎上,增加了一個 add a parallel branch N_p 。The role of N_p is to transform an external cue h in R^n to modulatory signals which affect all or some of the layers of N .

cue 的調製

Top-down feedback 在本文中的表現就是對 neural network layers 的調製,特別是對低層的 layers 的。

作者認為之前 Priming 的工作沒有研究 the explicit role of category cues to prime the visual hierarchy for object detection and segmentation,也就是沒有給出具體的調製方式?但 Shrivastava2016ContextualPA 這篇文章是 16 年的,在本文之前啊,作者說 Shrivastava2016ContextualPA 是 append directly the semantic segmentation predictions to the visual hierarchy,回去看了下論文,的確是 append 的方式,而本文是 Residual Multiplication。

L_i 是網路的某一層, x_i in R^{c_i 	imes h_i 	imes w_i} ,所以 x_{ij} 就是 x_{i} 的第 j 個特徵平面,有 x_{ij} in R^{times h_i 	imes w_i}

hat{x}_{i j}=alpha_{i j} cdot x_{i j}+x_{i j}

上面這個 Attention 方式跟 BAM: Bottleneck Attention Module 這篇論文里的方式是一樣的,看來用 Residual Formulation + an additive model 這種是共識了,論文里也說了試過很多方式,還是這種效果最好。

本文中的 alpha_i 就是 Attention 模塊的參數啦,論文這裡用的是一個線性變換,而在一般的 Attention 模塊中,都是一個 Squeeze-and-Excitation 結構。

 alpha_{i}=W_{i} * h

Overview 和 Related Works

作者說有 3 種 detection strategies:

  1. free viewing:沒有 cue 的情況下
  2. priming:a modification to the computation performed when viewing the scene with the cue in mind(注意,這是在計算階段)priming often highly increases the chance of detecting the cued object.
  3. pruning:a modification to the decision process after all the computation is finished(注意,這是在決策階段)When the task is to detect objects, this can mean retaining all detections match the cue, even very low confidence ones and discarding all others.

我感覺現在主流的方法就是走得這個路線:Viewing the image for an unlimited amount of time and pruning the results is less effective,這裡的 pruning 可以是 NMS 這種操作

priming 和 pruning 的差別在於,pruning 只是對於 forward 的 decision 做刪減,而 priming 則是 allows the cue to affect the visual process from early layers,就是因為調製了 early layers,所以 priming 才可以 allowing detection where it was previously unlikely to occur in free-viewing conditions。

關於 free viewing,priming,pruning,下圖表述的很形象:


推薦閱讀:
相关文章