Eblearn is an object-oriented C++ library that implements various machine learning models, including energy-based learning, gradient-based learning for machine composed of multiple heterogeneous modules. In particular, the library provides a complete set of tools for building, training, and running convolutional networks.
In Eblearn, a learning machine is constructed by assembling modules. Each module can be a functional module of a factor. Each module has at least two methods: fprop, which computes the output(s) from the input(s), and bprop, which computes the gradient of a loss function with respect to the input(s) and internal parameters given the gradient of the loss function with respect to the output(s). Functional modules implement simple deterministic dependencies between inputs and outputs. Factor modules implement non-deterministic dependencies between inputs: the takes one or several input objects and output a scalar energy, which can be interpreted as a negative log-likelihood. Factor modules also have an infer method that produces the combination of unknown inputs with the lowest energy. This design allows semi-automatic differentiation of complex architectures for gradient-based learning, as well as efficient MAP inference algorithms for factor graphs. Eblearn uses a similar model and API as the machine learning library distributed with the Lush language. All the trainable parameters are collected in a single vector, which facilitates the implementation of fancy optimization algorithms independently of the structure of the learning machine.
Eblearn implements convolutional networks for invariant recognition of images and temporal sequences. It implements all the known tricks to make gradient-based learning fast, including the stochastic diagonal Levenberg-Marquardt method.
Eblearn also provides utility functions to preprocess images and access and manipulate datasets. It comes with a portable GUI toolkit built on top of Qt, which enables the graphic visualization of internal variables and other data. The library has been used successfully to train face detectors, and object recognizers.
- Changes to previous version:
Initial Announcement on mloss.org.
No one has posted any comments yet. Perhaps you'd like to be the first?
Leave a comment
You must be logged in to post comments.