paper-with-me

홈 › Papers

ShapeCoder: Discovering Abstractions for Visual Programs from Unstructured Primitives

2023-05-09 · R. Kenny Jones, Paul Guerrero, Niloy J. Mitra, Daniel Ritchie

Programs are an increasingly popular representation for visual data, exposing compact, interpretable structure that supports manipulation. Visual programs are usually written in domain-specific languages (DSLs). Finding "good" programs, that only expose meaningful degrees of freedom, requires access to a DSL with a "good" library of functions, both of which are typically authored by domain experts. We present ShapeCoder, the first system capable of taking a dataset of shapes, represented with unstructured primitives, and jointly discovering (i) useful abstraction functions and (ii) programs that use these abstractions to explain the input shapes. The discovered abstractions capture common patterns (both structural and parametric) across the dataset, so that programs rewritten with these abstractions are more compact, and expose fewer degrees of freedom. ShapeCoder improves upon previous abstraction discovery methods, finding better abstractions, for more complex inputs, under less stringent input assumptions. This is principally made possible by two methodological advancements: (a) a shape to program recognition network that learns to solve sub-problems and (b) the use of e-graphs, augmented with a conditional rewrite scheme, to determine when abstractions with complex parametric expressions can be applied, in a tractable manner. We evaluate ShapeCoder on multiple datasets of 3D shapes, where primitive decompositions are either parsed from manual annotations or produced by an unsupervised cuboid abstraction method. In all domains, ShapeCoder discovers a library of abstractions that capture high-level relationships, remove extraneous degrees of freedom, and achieve better dataset compression compared with alternative approaches. Finally, we investigate how programs rewritten to use discovered abstractions prove useful for downstream tasks.

📄 PDF Abstract BibTeX arXiv:2305.05661

Code (1)

rkjones4/shapecoder 공식 구현 pytorch

Methods 이 논문이 사용한 방법론

Library 설명 없음

Similar Papers 제목 키워드 기반

Learning logic programs by discovering higher-order abstractions

2023-08-16 · Céline Hocquette, Sebastijan Dumančić, Andrew Cropper

We introduce the higher-order refactoring problem, where the goal is to compress a logic program by discovering higher-order abstractions, such as map, filter, and fold. We implement our approach in Stevie, which formula…

Inductive logic programmingProgram SynthesisVisual Reasoning

ArcPro: Architectural Programs for Structured 3D Abstraction of Sparse Points

2025-03-04 · CVPR 2025 1 · Qirui Huang, Runze Zhang, KangJun Liu, Minglun Gong 외

We introduce ArcPro, a novel learning framework built on architectural programs to recover structured 3D abstractions from highly sparse and low-quality point clouds. Specifically, we design a domain-specific language (D…

Decoder

Probabilistic Program Abstractions

2017-05-28 · Steven Holtzen, Todd Millstein, Guy Van Den Broeck

Abstraction is a fundamental tool for reasoning about complex systems. Program abstraction has been utilized to great effect for analyzing deterministic programs. At the heart of program abstraction is the relationship b…

Sound Abstraction and Decomposition of Probabilistic Programs

2018-07-01 · ICML 2018 7 · Steven Holtzen, Guy Broeck, Todd Millstein

Probabilistic programming languages are a flexible tool for specifying statistical models, but this flexibility comes at the cost of efficient analysis. It is currently difficult to compactly represent the subtle in…

Probabilistic Programming

ReGAL: Refactoring Programs to Discover Generalizable Abstractions

2024-01-29 · Elias Stengel-Eskin, Archiki Prasad, Mohit Bansal

While large language models (LLMs) are increasingly being used for program synthesis, they lack the global view needed to develop useful abstractions; they generally predict programs one at a time, often repeating the sa…

Date UnderstandingMathMinecraftProgram Synthesis