Skip to main content
QUICK REVIEW

[논문 리뷰] SmartChoices: Hybridizing Programming and Machine Learning

Victor Cărbune, Thierry Coppey|arXiv (Cornell University)|2018. 10. 01.
Reinforcement Learning in Robotics참고 문헌 26인용 수 7
한 줄 요약

SmartChoices는 프로그래밍과 머신러닝의 하이브리드 패러다임을 도입하여, 3개의 API 호출을 통해 코드 내부에 머신러닝을 직접 통합함으로써 기존 히ュ리스틱을 학습 가능한 모델로 교체할 수 있도록 한다. 이는 고전적 알고리즘에서의 히ュ리스틱을 최소한의 코드 변경으로 대체할 수 있게 해주며, 강화학습을 사용하여 초기 히ュ리스틱을 기반으로 한 모델을 학습함으로써 이진 탐색, 퀵소트, 캐싱 성능을 향상시킨다. 이는 순수한 히ュ리스틱보다 더 나은 성능을 달성하면서도 개발자가 완전히 제어할 수 있고 안전성을 확보한다.

ABSTRACT

We present SmartChoices, an approach to making machine learning (ML) a first class citizen in programming languages which we see as one way to lower the entrance cost to applying ML to problems in new domains. 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 providing a 3-call API which we expose through an object called SmartChoice. 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 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 in real life.

연구 동기 및 목표

  • 프로그래밍 언어에서 머신러닝을 일등 시민으로 삼아 전통적인 소프트웨어 개발과 머신러닝 간 격차를 메우는 것.
  • 기존 시스템이나 워크플로우를 대체하지 않아도 되도록 개발자가 새로운 도메인에 머신러닝을 적용하는 데 있어 장벽을 낮추는 것.
  • 히ュ리스틱 초기화를 통해 강화학습을 알고리즘 문제에 안전하고 제어 가능하며 효율적으로 적용할 수 있는 방법을 제공하는 것.
  • 최소한의 코드 변경과 측정 가능한 성능 향상을 통해 머신러닝이 고전적 알고리즘(예: 이진 탐색, 퀵소트, 캐시)을 향상시킬 수 있음을 입증하는 것.

제안 방법

  • 프로그래밍 언어 내에서 컨텍스트를 관찰하고 값 예측을 수행하며 피드백을 수신하는 첫 번째 객체인 SmartChoice를 도입한다. 이는 기존의 히ュ리스틱을 대체한다.
  • 3개의 API 호출을 노출한다: 컨텍스트 수집을 위한 observe(), 모델 출력을 얻기 위한 predict(), 성능 신호를 제공하기 위한 feedback().
  • 표준 딥 강화학습을 사용하여 모델을 학습하며, 학습을 가속화하고 안정화하기 위해 대체된 히ュ리스틱 함수를 초기 정책으로 사용한다.
  • 학습 중 성능 저하를 방지하기 위해 히ュ리스틱을 안전망으로 활용함으로써 생산 환경에서의 강건성을 확보한다.
  • 객체 지향, 함수형, 명령형 프로그래밍 언어에 모두 통합 가능하도록 SmartChoice를 객체, 함수, 또는 변수로 모델링한다.
  • 점진적 도입을 가능하게 하여 기존 코드 구조와 도메인 전용 논리가 그대로 유지되며, 오직 히ュ리스틱 논리만 학습 가능한 모델로 교체된다.

실험 결과

연구 질문

  • RQ1최소한의 코드 변경으로 개발자가 완전히 제어할 수 있는 환경에서 고전적 알고리즘에 머신러닝을 통합할 수 있는가?
  • RQ2완전한 머신러닝 파이프라인을 개발하지 않아도 알고리즘 문제에 강화학습을 적용할 수 있는가?
  • RQ3히ュ리스틱 함수가 실세계 시스템에서 RL 기반 모델 학습의 효과적인 초기화 및 안전망으로 기능할 수 있는가?
  • RQ4머신러닝이 이진 탐색, 퀵소트, 캐싱과 같은 고전적 알고리즘 문제에서 얼마나 높은 성능 향상을 이룰 수 있는가?
  • RQ5일관되고 재사용 가능한 API를 통해 시스템 최적화 및 사용자 모델링과 같은 다양한 도메인 간 머신러닝 통합을 추상화할 수 있는가?

주요 결과

  • SmartChoices는 이진 탐색, 퀵소트, 캐싱과 같은 세 가지 알고리즘 문제에서 순수한 히ュ리스틱보다 성능 향상을 성공적으로 달성하였으며, 최소한의 코드 변경으로 측정 가능한 성능 향상을 입증하였다.
  • 원래의 히ュ리스틱을 초기 함수로 사용함으로써 강화학습 학습 과정에서 학습 속도가 크게 향상되고 안정성이 확보되었다.
  • 히ュ리스틱 함수는 성능 저하를 방지하는 안전망으로 기능하여 핵심 응용 프로그램에 안전하게 배포할 수 있도록 했다.
  • 이 방법은 데이터, 피드백, 추론에 대한 개발자 완전 제어를 가능하게 하여 기존의 모델 중심 머신러닝 패러다임을 뒤집었다.
  • 이 프레임워크는 일반화 가능하다: 동일한 SmartChoice API는 객체 지향, 함수형, 명령형 프로그래밍 패러다임 전반에 걸쳐 적용 가능하다.
  • 이 방법은 복잡성과 인프라 부족으로 인해 이전에는 머신러닝에 저항하던 도메인에도 머신러닝 도입을 가능하게 하였으며, 완전한 머신러닝 파이프라인 개발 없이도 가능하게 하였다.

더 나은 연구,지금 바로 시작하세요

논문 읽기부터 검토까지, 연구 시간을 획기적으로 줄여보세요.

카드 등록 없음 · 무료 플랜 제공

이 리뷰는 AI가 만들고, 인간 에디터가 검토했습니다.