[FiLM] conditioning 줄 때 일반적으로 사용되는 feature wise linear modulation 논문요약
FiLM은 conditioning을 하는 강력한 방법이다.
이 논문에서의 task는 이미지 및 이미지와 관련된 question을 input으로 주었을 때 이에 대한 answer을 수행해내는 것이다.
single FiLM layer을 먼저 보자.
input인 question \(x_i\)을 어찌저찌 분석해서(f와 h를 통과하여) \(\gamma_{i, c}, \beta_{i, c}\)를 만든다.
$$\gamma_{i, c}=f_c(x_i)\ \ \ \ \ \ \ \ \beta_{i, c}=h_c(x_i)$$
FiLM이 하는 일은 바로 위의 일을 하는 것인데, 곧 question을 분석하여 question에 따라서 \(\gamma_{i, c}, \beta_{i, c}\)를 추정하는 것이다.
추정한 \(\gamma_{i, c}, \beta_{i, c}\)는 feature map을 affine transform하는 파라미터로 사용된다. feature map은 CNN을 통과한 feature extractor의 결과이다.
$$\ \ \ \ FiLM\left(F_{i,c}|\gamma _{i,c},\ \beta _{i,c}\right)=\gamma _{i,c}F_{i,c}+\ \beta _{i,c}$$
\(\gamma_{i, c}, \beta_{i, c}\)를 ResBlock 별로 추정을 해서 넣어주게 된다. 아래는 N개가 ResBlock을 사용한 경우이다.
마지막 GRU를 통과한 hidden state를 question embedding으로 하고 이로부터 linear layer을 통과해서 N개의 \(\gamma_{i, c}, \beta_{i, c}\)가 나오게 된다. 이 부분에서 이해가 조금 아리까리했는데 아래를 보면 되겠다.
Question embedding이 3이고 output을 4개로 하여 즉 두 개의 ResBlock을 쓴 경우로 보면 되겠다.
이처럼 input question을 이용하여 파라미터를 추정하고 이를 다른 input인 image의 feature에 affine transform을 함으로써 모델이 answering 하는 데에 더 힘을 실어줄 수 있었다고 한다.
(실험 결과 중...)
보라색 thing과 똑같이 생긴 모형은 몇개 있는가? 이러한 질문이 있을 때
초반 ResBlock을 지날 때에는 Question 중에서 눈에 딱 보이는 color에 대해서 직관적이고도 local한 feature을 extract해간다면 점점 ResBlock을 많이 통과할수록 Equal에 대한 문제를 해결해나가는 gloabl한 extractor이 되도록 학습이 됨을 이 논문을 통해서 볼 수 있었다.