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.
翻译:我们为联合学习分支方案及其构成功能提出了一个新的动态可区别理由框架;这解决了限制最近动态结构的重大非差别性;我们在两个高度紧凑和数据效率高的结构中将我们的框架应用于两个环境:CLEVR视觉问题回答和DDR标记表达评价的DRPROg方案;DRPROG利用一个经常性控制器联合预测和执行直接与基本问题逻辑相对应的模块神经程序;它明确地将子程序用于处理逻辑分支。通过有效利用额外的结构监督,我们大大改进了以前在子任务一致性方面采用的方法,并小幅改进了总体准确性。我们进一步展示了RPN设置结构监督的好处:在DDRstack中加入一个堆式假设,使我们能够在LSTM无法完成任务时将长期表达法化。