[论文解读] Learning Differentiable Programs with Admissible Neural Heuristics
本文提出 Near 方法,通过使用部分程序的可微神经松弛作为近似可接纳启发式函数,加速程序架构的组合搜索。通过训练神经网络以预测缺失的程序组件,并将损失函数用作 A* 算法与迭代加深分支定界法(Ids-bb)中的启发式函数,该方法能高效学习到可解释且准确的程序化分类器,其在序列分类任务中的表现优于当前最先进的程序学习方法。
We study the problem of learning differentiable functions expressed as programs in a domain-specific language. Such programmatic models can offer benefits such as composability and interpretability; however, learning them requires optimizing over a combinatorial space of program "architectures". We frame this optimization problem as a search in a weighted graph whose paths encode top-down derivations of program syntax. Our key innovation is to view various classes of neural networks as continuous relaxations over the space of programs, which can then be used to complete any partial program. This relaxed program is differentiable and can be trained end-to-end, and the resulting training loss is an approximately admissible heuristic that can guide the combinatorial search. We instantiate our approach on top of the A-star algorithm and an iteratively deepened branch-and-bound search, and use these algorithms to learn programmatic classifiers in three sequence classification tasks. Our experiments show that the algorithms outperform state-of-the-art methods for program learning, and that they discover programmatic classifiers that yield natural interpretations and achieve competitive accuracy.
研究动机与目标
- 为解决在可微程序学习中高效搜索程序架构组合空间的挑战。
- 开发一种利用程序可微性创建连续松弛的方法,以指导组合搜索。
- 设计一种搜索框架,利用训练好的神经网络作为近似可接纳启发式函数,以加速收敛至高质量的程序架构。
- 在序列分类任务上评估该方法,并证明其在性能与可解释性方面优于现有程序学习技术。
提出的方法
- 该方法将程序搜索建模为加权图遍历,其中节点表示包含缺失表达式的部分程序架构,路径表示自顶向下的推导过程。
- 针对每个部分架构,使用神经网络作为连续松弛,以预测缺失的子表达式,从而实现端到端的可微训练。
- 神经松弛的训练损失被用作 A* 和迭代加深分支定界(Ids-bb)等有信息量的搜索算法的近似可接纳启发式函数。
- 该方法使用上下文无关语法定义领域特定语言(DSL),并为语法规则分配结构成本,以偏好更简单、更具可解释性的程序。
- 搜索算法利用该启发式函数对图中的路径进行优先排序,从而实现对组合程序空间的高效探索。
- 该方法在两种搜索策略上实现:A* 和 Ids-bb,两者均通过引入神经启发式函数,提升了搜索效率与解的质量。
实验结果
研究问题
- RQ1可微神经网络能否用作连续松弛,以近似部分程序的最优补全?
- RQ2此类神经松弛的训练损失能否作为指导程序架构组合搜索的近似可接纳启发式函数?
- RQ3在 A* 和 Ids-bb 搜索中使用这些神经启发式函数,是否能显著提升程序学习的效率与准确率,相较基线方法?
- RQ4所学习的程序能否在保持竞争力准确率的同时,仍具备可解释性与语义意义?
主要发现
- 所提出的 Near 方法在三个序列分类任务中优于当前最先进的程序学习方法,展现出更优的搜索效率与解质量。
- 所学习的程序化分类器达到与端到端神经模型相当的准确率,同时保持可解释性与模块化特性。
- 基于神经松弛的启发式函数显著加速了搜索过程,实现了对高性能程序架构的快速收敛。
- 该方法发现了能产生自然解释的程序化模型,例如用于行为分类的结构化、人类可读逻辑。
- 将可微神经松弛作为启发式函数,实现了梯度学习与组合搜索的有效结合,是程序综合领域的一项新方法。
更好的研究,从现在开始
从阅读论文到最终审阅,大幅缩短您的研究时间。
无需绑定信用卡
本解读由 AI 生成,并经人工编辑审核。