DDRprog: A CLEVR Differentiable Dynamic Reasoning Programmer
Joseph Suarez, Justin Johnson, Fei-Fei Li
TL;DR
The paper tackles the nondifferentiability of learning with branching, discrete logic in dynamic architectures by introducing the DDR framework, which interleaves program prediction and execution and adds a differentiable forking mechanism for branching. It applies DDRprog to CLEVR VQA and DDRstack to Reverse Polish Notation expression evaluation, demonstrating that structural supervision and stack-aware branching yield improved subtask consistency and generalization in compact models. The results show competitive CLEVR performance with strong gains on counting and comparison tasks and robust generalization for long RPN expressions, where standard LSTMs fail. Overall, the work provides a practical approach to integrating discrete logical structure into differentiable neural reasoning, enabling more reliable handling of complex data structures and tasks.
Abstract
We present a novel Dynamic Differentiable Reasoning (DDR) framework for jointly learning branching programs and the functions composing them; this resolves a significant nondifferentiability inhibiting recent dynamic architectures. We apply our framework to two settings in two highly compact and data efficient architectures: DDRprog for CLEVR Visual Question Answering and DDRstack for reverse Polish notation expression evaluation. DDRprog uses a recurrent controller to jointly predict and execute modular neural programs that directly correspond to the underlying question logic; it explicitly forks subprocesses to handle logical branching. By effectively leveraging additional structural supervision, we achieve a large improvement over previous approaches in subtask consistency and a small improvement in overall accuracy. We further demonstrate the benefits of structural supervision in the RPN setting: the inclusion of a stack assumption in DDRstack allows our approach to generalize to long expressions where an LSTM fails the task.
