The paper
is available locally.
This is largely a machine learning paper; my contributions were rather limited and largely confined to section 3, which discusses solver strategies for Dyna.
Abstract:
Declarative programming is a paradigm that allows programmers to specify what they want to compute, leaving how to compute it to a solver. Our declarative programming language, Dyna, is designed to compactly specify computations like those that are frequently encountered in machine learning. As a declarative language, Dyna’s solver has a large space of (correct) strategies available to it. We describe a reinforcement learning framework for adaptively choosing among these strategies to maximize efficiency for a given workload. Adaptivity in execution is especially important for software that will run under a variety of workloads, where no fixed policy works well. We hope that reinforcement learning will identify good policies reasonably quickly—offloading the burden of writing efficient code from human programmers.
BibTeX:
@InProceedings{vieira-et-al-2017,
author = {Tim Vieira and Matthew Francis-Landau and Nathaniel Wesley
Filardo and Farzad Khorasani and Jason Eisner},
title = {Dyna: Toward a Self-Optimizing Declarative Language for Machine
Learning Applications},
booktitle={Proceedings of the First ACM SIGPLAN Workshop on Machine
Learning and Programming Languages (MAPL)},
year = {2017},
month = {6},
address = {Barcelona}
}