神经符号推理的近似该放在哪一步:APRICOT用张量列重压缩,把权重模型计数误差压低几个数量级
核心概要
概率神经符号推理要把神经预测与符号约束结合,核心是计算权重模型计数,而精确计算是#P难问题,现有方法各自在不同环节引入近似。APRICOT把自底向上的编译统一成三步流水线,用张量列分解实例化因子编译与乘积重压缩,在数独、算术推理和场景理解共六项任务上给出比先前方法精确几个数量级的权重模型计数估计,并在符号因子紧密耦合的任务上带来更好的下游学习。
深度剖析
神经符号推理中的权重模型计数不再只有精确编译和独立近似两种选择,近似可以放在编译因子、相乘因子、合并剩余因子三个不同环节。 此前的做法要么依赖精确电路编译,要么默认各因子独立并把联合计数拆成各因子计数之积,近似位置没有被系统比较过。 在4×4、6×6、9×9数独上,精确SDD编译在6×6已不可行、9×9没有现成编译器可解,而张量列流水线在相同编译时间下把对数计数误差压到更低。
把每个约束因子表示成张量列,先精确相乘再对乘积做重压缩,可以在控制规模的同时保留因子之间的依赖。 张量列此前只用于压缩孤立的单个因子,没有进入完整的编译流水线,相乘后的秩增长也没有被处理。 在更难的CLEVR-Diff、MNISTMul和CLEVR-CountDiff上,完整张量列归约的APRICOT C能扩展到所评估的SDD编译器之外,其权重模型计数估计比独立归约精确得多;MNISTAdd上SDD与APRICOT都能利用进位链结构随位数扩展。
保留因子依赖是否值得,取决于程序是否引入需要在多个因子间保持一致的辅助符号变量。 独立近似在视觉数独和CLEVR-Diff上已接近99%概念准确率,看不出差距。 在带进位的算术任务和CLEVR-CountDiff上,精确编译与APRICOT C明显优于独立近似,而同样属于场景理解的CLEVR-Diff没有这一差距。
启示与展望
评估覆盖4×4、6×6、9×9数独的编译消融,视觉数独分类与补全,以及MNISTAdd、MNISTMul、CLEVR-Diff、CLEVR-CountDiff四项任务的加权推断与学习;编译在单块NVIDIA A10G GPU上运行,SDD编译在CPU上限时两小时、内存64 GiB,训练限时六小时,结果取十次运行平均。
独立近似的误差无界且依赖约束的书写方式,同一4×4数独在类别编码与布尔编码下的估计相差约24个数量级;在9×9数独上,过度重压缩的点虽然总体误差小,却会漏掉真正的模型;部分运行未收敛,例如CLEVR-CountDiff在m=8和m=16时十次APRICOT运行中分别有一次和三次失败;多数张量列分解与重压缩并非针对稀疏布尔张量设计。
