Home

Awesome

Concepts

A Concept-Centric Framework for Intelligent Agents.

[Website] [Tutorials] [API References]

This project investigates a framework for building intelligent agents by internalizing a vocabulary of "concepts," which are discrete symbols that are associated with structured representations.

At the high-level, such structured representations are composed of multiple components, for example:

The following figure illustrates the basic idea of different modules.

Overview

Such vocabulary would allow us to build agents that can reason about, and make plans in the world in terms of concepts. More concretely, here are some examples of how this framework could be used:

The second important component of this framework is that different components of the concepts can have programmatic, neuro-symbolic representations. For example, the semantic meaning of the word "red" can be represented a program lambda x: filter(x, color='red') that filters a set of objects by their color. The actual implementation of the program modules (e.g. the filter function) can be a neural network. Meanwhile, the representation for the color concept here red can be represented as a vector in a semantic space. Similarly, for example, for action concepts, their preconditions and postconditions can be represented as modular neural networks.

Some key papers underlying this framework are:

  1. PDSketch: Integrated Domain Programming, Learning, and Planning

    Jiayuan Mao, Tomás Lozano-Pérez, Joshua B. Tenenbaum, Leslie Pack Kaelbling. NeurIPS 2022.

  2. Grammar-Based Grounded Lexicon Learning

    Jiayuan Mao, Haoyue Shi, Jiajun Wu, Roger P. Levy, Joshua B. Tenenbaum. NeurIPS 2021.

  3. The Neuro-Symbolic Concept Learner: Interpreting Scenes, Words, and Sentences From Natural Supervision

    Jiayuan Mao, Chuang Gan, Pushmeet Kohli, Joshua B. Tenenbaum, Jiajun Wu. ICLR 2019.

  4. Neural Logic Machines

    Honghua Dong*, Jiayuan Mao*, Tian Lin, Chong Wang, Lihong Li, Dengyong Zhou. ICLR 2019.

Structures

The structure of this project is as follows:

For tutorials, see the tutorials section.