HWC
← Note

No date

FiLM | Feature-wise Linear Modulation

Paper

快速解釋

FiLM 的本質是用條件訊息直接調制中間特徵,而不是只在輸入端或輸出端做一次融合。對視覺推理來說,這代表問題句子會一路改寫 CNN 內部每一層哪些 feature 應被放大、抑制、反相或重新設門檻,因此同一個視覺 backbone 可以隨問題切換推理方式。

問題設定

  • CLEVR 這類視覺推理任務不只是辨識物體,而是要做計數、比較、關係判斷與屬性組合。
  • 傳統 VQA 常把影像與文字壓成一個 joint embedding,再讓分類器直接猜答案。這種做法對多步推理不夠有力,因為語言條件沒有真的介入中間計算。
  • 另一條路是手工設計 neural modules 或 program execution,但這需要較強的結構先驗。FiLM 想證明:即使只用一般 CNN + RNN,只要條件化方式做對,也能學出強推理能力。

核心想法

  • 用語言編碼器把問題轉成向量,再由 FiLM generator 針對每個視覺 residual block 輸出一組逐 channel 的縮放係數與偏移量。
  • 這些參數不是改卷積核,而是直接作用在 feature map 上,因此計算成本只和 channel 數有關,不隨影像解析度增加。
  • 每個 channel 都可被獨立調制,所以模型能把和問題相關的 detector 放大,把不相關的 detector 壓低;若後面接 ReLU,beta 也等於在改變 activation threshold。
  • 因為 FiLM 會在多個深度重複出現,條件訊息不是只在最後分類前融合,而是整條視覺計算路徑都被語言持續控制。

關鍵公式

給定條件輸入,FiLM generator 為第 c 個 feature 產生

γi,c=fc(xi),βi,c=hc(xi).\gamma_{i,c}=f_c(x_i), \qquad \beta_{i,c}=h_c(x_i).

對於第 c 個 feature map 上任一空間位置 (u,v) 的 activation,FiLM 做的是

Fi,c,u,v=γi,cFi,c,u,v+βi,c.F'_{i,c,u,v}=\gamma_{i,c}F_{i,c,u,v}+\beta_{i,c}.

也可以寫成

FiLM(Fi,cγi,c,βi,c)=γi,cFi,c+βi,c.\mathrm{FiLM}(F_{i,c}\mid \gamma_{i,c},\beta_{i,c})=\gamma_{i,c}F_{i,c}+\beta_{i,c}.
  • 若 gamma 大於 1,對應 feature 會被放大;介於 0 和 1 之間代表抑制;小於 0 甚至可以反轉該 feature 的語意。
  • beta 是條件式 bias,會整體平移 activation 分布;因此 FiLM 不只是 gating,也是在重設每個 channel 的工作區間。

模型結構

  1. 語言端:問題句子先經 200 維詞向量,再送入 4096 hidden units 的 GRU,最後 hidden state 作為 question embedding。
  2. FiLM generator:由 question embedding 經 affine projection,為每個 residual block 產生一組 gamma 與 beta。
  3. 視覺端:輸入影像 resize 到 224 x 224;特徵可來自從頭訓練的 CNN,或 ImageNet 預訓練 ResNet-101 的 conv4,再映成 128 個 14 x 14 feature maps。
  4. FiLM-ed residual blocks:論文主模型使用 4 個 128-channel 的 ResBlock;每個 block 內含 1 x 1 與 3 x 3 卷積,並串接座標特徵圖,讓模型更容易做空間推理。
  5. 答案頭:最後接一個 1 x 1 convolution 到 512 channels、global max pooling,以及兩層 MLP 輸出答案分布。