Skip to main content
QUICK REVIEW

[논문 리뷰] DreamCoder: Growing generalizable, interpretable knowledge with wake-sleep Bayesian program learning

Kevin Ellis, Catherine Wong|arXiv (Cornell University)|2020. 06. 15.
Explainable Artificial Intelligence (XAI)인용 수 33
한 줄 요약

DreamCoder는 해석 가능하고 재사용 가능한 지식으로 다양한 작업을 해결하기 위해 도메인 특화 프로그래밍 추상화 라이브러리와 신경망 검색 가이드를 공동으로 확장하고, wake-sleep Bayesian program induction을 사용하여 문제를 해결합니다.

ABSTRACT

Expert problem-solving is driven by powerful languages for thinking about problems and their solutions. Acquiring expertise means learning these languages -- systems of concepts, alongside the skills to use them. We present DreamCoder, a system that learns to solve problems by writing programs. It builds expertise by creating programming languages for expressing domain concepts, together with neural networks to guide the search for programs within these languages. A ``wake-sleep'' learning algorithm alternately extends the language with new symbolic abstractions and trains the neural network on imagined and replayed problems. DreamCoder solves both classic inductive programming tasks and creative tasks such as drawing pictures and building scenes. It rediscovers the basics of modern functional programming, vector algebra and classical physics, including Newton's and Coulomb's laws. Concepts are built compositionally from those learned earlier, yielding multi-layered symbolic representations that are interpretable and transferrable to new tasks, while still growing scalably and flexibly with experience.

연구 동기 및 목표

  • 베이지안 학습에 기반한 프로그래머블 추상화로 전문가 수준의 일반화 가능한 지식을 구축하려는 목표를 동기 부여하고 다룬다.
  • 도메인 특화 라이브러리와 신경망 검색 가이드를 함께 학습하는 wake-sleep Bayesian 프레임워크를 도입한다.
  • 전통적 프로그램 합성, 그래픽, 타워 구성, 텍스트 편집, 확률적 개념 등 다양한 도메인에 걸쳐 이 접근법을 시연한다.
  • 학습된 추상화가 효율적이고 해석 가능하며 확장 가능한 문제 해결을 가능하게 함을 보인다.

제안 방법

  • 학습을 가변 가능한 계층적 원시 라이브러리 내의 프로그램에 대한 귀납으로 표현한다.
  • wake-sleep 사이클을 사용하여 번갈아 가며 (i) 신경 인식 모델과 라이브러리 기반 사전에 의해 안내되는 문제를 해결하고, (ii) 추상화하고 dream으로 라이브러리를 확장하고 인식 모델을 정교화한다.
  • 추상화 단계는 재사용 가능한 코드를 새로운 원시 요소로 재구성하고 압축하여 라이브러리를 확장하고 설명 길이를 줄인다.
  • Dream phase는 작업 데이터를 주면 프로그램을 예측하도록 신경망을 학습하고, 해결된 문제의 재생과 라이브러리에서 샘플링된 환상을 사용한다.
  • 이 과정을 라이브러리와 프로그램에 대한 근사 베이지안 추론으로 공식화하고, 세 가지 단계(Wake, Abstraction, Dreaming)로 사후 분포의 하한을 최대화하는 라이브러리와 프로그램에 대한 근사 베이지안 추론으로 공식화한다.
  • 프로그램을 다형적으로 타이핑된 람다-계산 표현식으로 표현하여 구성적이고 해석 가능한 해법을 지원한다.

실험 결과

연구 질문

  • RQ1시스템이 작업 전반에 걸쳐 재사용 가능한 추상화를 포착하는 도메인 특화 프로그래밍 언어(라이브러리)를 학습할 수 있는가?
  • RQ2라이브러리 학습을 신경망 검색 가이드와 결합하는 것이 프로그램 유도(induction)의 확장성 및 해결 품질을 향상시키는가?
  • RQ3wake-sleep 사이클(추상화와 dreaming)이 작업 및 도메인 전반에 걸친 일반화, 해석 가능성, 데이터 효율성에 어떤 영향을 미치는가?
  • RQ4이 접근법이 핵심 프로그래밍 개념을 재발견하고 그래픽, 타워, 정규식/경로 문제와 같은 창의적 과제를 해결할 수 있는가?
  • RQ5학습된 추상화가 탐색 깊이, 폭 및 전반적 성능에 미치는 영향은 무엇인가?

주요 결과

  • DreamCoder는 학습된 라이브러리 루틴을 신경 가이드 모델과 결합하여 다수의 도메인에 걸친 광범위한 문제를 해결한다.
  • 학습 기반 추상화와 압축은 더 깊고 재사용 가능한 라이브러리를 낳으며, 이는 더 많은 작업 해결과 상관관계가 있다 (r = 0.79).
  • Dreaming(신경 인식 모델 학습)은 도메인 전반의 성능을 향상시키고 더 효율적인 문제 해결을 가능하게 한다.
  • DreamCoder는 텍스트 편집 작업 벤치마크에서 상당한 이득을 얻어 학습 후 약 79.6%, 이전의 3.7%에 비해 해결율이 증가했으며 평균 해결 시간도 더 빨라졌다(40s 대 235s).
  • 창의적 도메인(그래픽, 타워 구성)에서 DreamCoder는 학습 시 거의 100%에 가까운 작업 커버리지를 달성하는 반면, 기준선은 60% 미만으로 제자리걸음한다.
  • 시스템은 인간이 해석 가능한 고수준 빌딩 블록(예: map, parametric options)을 발견하여 작업과 도메인 간에 전이된다.

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

연구 설계부터 논문 작성까지, 연구 시간을 획기적으로 줄여보세요.

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

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