When learning an input-output mapping from very few examples, is it better to first infer a latent function that explains the examples, or is it better to directly predict new test outputs, e.g. using a neural network? We study this question on ARC by training neural models for induction (inferring latent functions) and transduction (directly predicting the test output for a given test input). We train on synthetically generated variations of Python programs that solve ARC training tasks. We find inductive and transductive models solve different kinds of test problems, despite having the same training problems and sharing the same neural architecture: Inductive program synthesis excels at precise computations, and at composing multiple concepts, while transduction succeeds on fuzzier perceptual concepts. Ensembling them approaches human-level performance on ARC.
翻译:当从极少数示例中学习输入-输出映射时,是应该先推断出解释这些示例的潜在函数,还是直接预测新的测试输出(例如使用神经网络)更为有效?我们在ARC数据集上通过训练归纳模型(推断潜在函数)和转导模型(直接针对给定测试输入预测测试输出)来研究这一问题。我们使用解决ARC训练任务的Python程序生成的合成变体进行训练。研究发现,尽管归纳模型与转导模型采用相同的训练问题和神经网络架构,它们能解决不同类型的测试问题:归纳式程序合成擅长精确计算和多概念组合,而转导方法在模糊的感知概念上表现更优。将两者集成后,在ARC任务上的性能接近人类水平。