Slide 1 - University of Virginia, Department of Computer Science
Download
Report
Transcript Slide 1 - University of Virginia, Department of Computer Science
2007 Science of Design (SoD) PI Meeting – Project Nuggets
NSF SoD Award No:
Project Title:
NSF SoD-HCER-0613885
Learning Based Programming
Investigator Name:
Dan Roth
Institution Name: University of Illinois at Urbana-
Champaign
Website URL:
LBP provides clean modularization and a rapid development cycle for applications involving
functions whose definitions are data-driven and difficult to write explicitly.
http://l2r.cs.uiuc.edu/~cogcomp/fund.php?f_key=LBP
Project Description and Outcomes:
Conventional programming languages rely on a programmer to explicitly define all the concepts and relations involved. On the other hand, programming with
naturally-occurring data, that is highly variable and ambiguous at the measurement level, necessitates a programming model in which some of the variables,
concepts and relations may not be known at programming time, may be defined only in a data driven way, or may not be unambiguously defined without relying on
other concepts acquired this way.
Learning Based Programming (LBP) is a programming paradigm for seamless incorporation of trainable variables into the program and, consequently, the ability to
reason using high level concepts without the need to explicitly define them in terms of all the variables they might depend on, or the functional dependencies among
them. These may be determined in a data-driven way, via learning operators the operation of which is abstracted away from the programmer.
Learning Based Programming (LBP) is intended to support designing and combining multiple discriminative functions into a coherent, global inference solution. LBP
functions may be defined deterministically or in a stochastic, data driven manner with the aid of learning algorithms. Therefore, an LBP program represents a set of
possible programs. The element of that set which will actually execute is not known until data is acquired. Furthermore, LBP provides a principled framework for
combining the functions’ outputs into an optimized inference solution by enforcing global constraints on their values .
This Work is notable because (potential contributions to the Science of Design): This project will lead to cross-fertilization and mutual
reinvigoration of the software engineering and machine learning fields. Enabling the development of computer systems that interact and cope with the variability of
naturally occurring (sensor) data will require fundamental advances in compilation and software engineering issues. Conversely, availability of the LBP vehicle will
motivate researchers in machine learning to explore the process of making inferences that rely on a large number of mutually dependent learners as a means to
providing programmers with better abstractions so that they can more effectively tackle a broad range of increasingly complex applications involving such data.
Progress so far: Learning Based Java (LBJ) is our implementation of LBP. We have developed beta versions of the LBJ compiler and run-time library. The LBJ
compiler takes as input a source file containing a list of function and constraint declarations. The compiler then produces Java code that works in concert with the
run-time library to perform inference: the outputs of the functions are combined, optimizing their values while respecting the constraints.