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 產生
對於第 c 個 feature map 上任一空間位置 (u,v) 的 activation,FiLM 做的是
也可以寫成
- 若 gamma 大於 1,對應 feature 會被放大;介於 0 和 1 之間代表抑制;小於 0 甚至可以反轉該 feature 的語意。
- beta 是條件式 bias,會整體平移 activation 分布;因此 FiLM 不只是 gating,也是在重設每個 channel 的工作區間。
模型結構
- 語言端:問題句子先經 200 維詞向量,再送入 4096 hidden units 的 GRU,最後 hidden state 作為 question embedding。
- FiLM generator:由 question embedding 經 affine projection,為每個 residual block 產生一組 gamma 與 beta。
- 視覺端:輸入影像 resize 到 224 x 224;特徵可來自從頭訓練的 CNN,或 ImageNet 預訓練 ResNet-101 的 conv4,再映成 128 個 14 x 14 feature maps。
- FiLM-ed residual blocks:論文主模型使用 4 個 128-channel 的 ResBlock;每個 block 內含 1 x 1 與 3 x 3 卷積,並串接座標特徵圖,讓模型更容易做空間推理。
- 答案頭:最後接一個 1 x 1 convolution 到 512 channels、global max pooling,以及兩層 MLP 輸出答案分布。