Skip to content

Commit

Permalink
updated README.md
Browse files Browse the repository at this point in the history
  • Loading branch information
piantado committed Aug 1, 2015
1 parent 06ab09d commit 0e53aee
Showing 1 changed file with 5 additions and 16 deletions.
21 changes: 5 additions & 16 deletions README.md
@@ -1,14 +1,12 @@
LOTlib
------

LOTlib is a Python 2.x library for programming "language of thought" models. Using LOTlib, you specify a set of primitives and then model learners who search over compositions of the primitives to express complex concepts. The examples provided all describe a grammar and a probablistic Bayesian model over the expressions generated by that grammar. LOTlib permits lambda expressions, meaning that learners can come up with abstractions over compositions and define new primitives. Frequently, models use sampling in order to determine likely compositional hypotheses given some observed data.
LOTlib is a Python 2 library for implementing "language of thought" models. A LOTlib model specifies a set of primitives and captures learning as inference over compositions of those primitives in order to express complex concepts. LOTlib permits lambda expressions, meaning that learners can come up with abstractions over compositions and define new primitives. Frequently, models use sampling in order to determine likely compositional hypotheses given some observed data.

There are several sampling methods provided, including tree-regeneration metropolis-hastings (from the Rational Rules model of Goodman et al. 2010), and variants that include tempering, annealing, tempered transitions, and other search algorithms.
There are several sampling methods provided, including tree-regeneration Metropolis-Hastings (from the "rational rules" model of Goodman et al. 2008), and variants that include tempering, annealing, tempered transitions, and other search algorithms.

The best way to use this library is to read and modify the examples.

BEWARE: Development may occasionally break backward compatibility. Due to the rapid pace of changes, no guarantees are made about correctness. If you have a question about what is likely to work well, please email Steve. On-going development is focused on providing testing, documentation, and evaluation suites.

LOTlib also provides support for MPI through a wrapper for mpi4py (LOTlib.MPI), allowing sampling algorithms to run in parallel on a simple computer or cluster.

REQUIREMENTS
Expand All @@ -17,11 +15,10 @@ REQUIREMENTS
- numpy
- scipy

The following are frequently used, but not required for most functions:
The following are infrequently used (i.e., not required for most functionality):

- matplotlib (plotting)
- mpi4py (if using MPI; I recommend running with mpich3)
- pyparsing (for parsing)
- mpi4py (if using MPI)
- cachetools (for memoization)
- graphviz (for DOT images of trees)

Expand Down Expand Up @@ -49,15 +46,7 @@ A good starting place is the FOL folder, which contains a simple example to gene

The best reference for learning how to create/modify grammars is Tutorial/FunctionNodeDemo. It contains all of the syntax for various parts of grammars, including how to use primitives and lambdas.

More examples are provided in the "Examples" folder. These include: simple symbolic regression, the recursive number learning model, a quantifier learning model. The "tests" folder may also be useful, as this runs some simple models to check for, e.g., correct sampling and inference. The Number demo has syntax for a number of different sampling and inference schemes included in LOTlib.




Contributors
------------

Major contributors to this project include Eric Bigelow, Hassler Thurston, Samay Kapadia, and Matt Overlan.
More examples are provided in the "Examples" folder. These include: simple symbolic regression, the recursive number learning model, a quantifier learning model. The "tests" folder may also be useful, as this runs some simple models to check for, e.g., correct sampling and inference.

Citation:
---------
Expand Down

0 comments on commit 0e53aee

Please sign in to comment.