SmartChoices: Hybridizing Programming and Machine Learning

10/01/2018
by   Victor Carbune, et al.
0

We present SmartChoices, an approach to making machine learning (ML) a first class citizen in programming languages. There is a growing divide in approaches to building systems: on the one hand, programming leverages human experts to define a system while on the other hand behavior is learned from data in machine learning. We propose to hybridize these two by leveraging the existing concept of a variable and creating a new type called SmartChoice. SmartChoices are akin to native variables with one important distinction: they determine their value using ML when evaluated. We describe the SmartChoices-interface, how it can be used in programming with minimal code changes, and demonstrate that it is an easy to use but still powerful tool by demonstrating improvements over not using ML at all on three algorithmic problems: binary search, QuickSort, and caches. In these three examples, we replace the commonly used heuristics with an ML model entirely encapsulated within a SmartChoice and thus requiring minimal code changes. As opposed to previous work applying ML to algorithmic problems, our proposed approach does not require to drop existing implementations but seamlessly integrates into the standard software development workflow and gives full control to the software developer over how ML methods are applied. Our implementation currently relies on standard Reinforcement Learning (RL) methods. To learn faster, we use the heuristic function, which they are replacing, as an initial function. We show how this initial function can be used to speed up and stabilize learning while providing a safety net that prevents performance to become substantially worse -- allowing for a safe deployment in critical applications.

READ FULL TEXT
research
10/01/2018

Predicted Variables in Programming

We present Predicted Variables (PVars), an approach to making machine le...
research
04/06/2023

SoK: Machine Learning for Continuous Integration

Continuous Integration (CI) has become a well-established software devel...
research
08/09/2021

Exploring the potential of flow-based programming for machine learning deployment in comparison with service-oriented architectures

Despite huge successes reported by the field of machine learning, such a...
research
08/27/2019

A Framework for Model Search Across Multiple Machine Learning Implementations

Several recently devised machine learning (ML) algorithms have shown imp...
research
09/17/2017

AI Programmer: Autonomously Creating Software Programs Using Genetic Algorithms

In this paper, we present the first-of-its-kind machine learning (ML) sy...
research
06/28/2017

autoBagging: Learning to Rank Bagging Workflows with Metalearning

Machine Learning (ML) has been successfully applied to a wide range of d...
research
04/28/2020

Learned Garbage Collection

Several programming languages use garbage collectors (GCs) to automatica...

Please sign up or login with your details

Forgot password? Click here to reset