Monte Carlo Machine Learning Library (MCMLL)
Encyclopedia
The Monte Carlo Machine Learning Library (MCMLL) is an open source
C++
template library which already relies on some C++0x
specs. MCMLL is licensed under the GNU GPL. It is developed under the 64 bit Linux
OS. MCMLL should be usable on other platforms as well, since it is based on ISO C++.
The philosophy behind MCMLL is to have a broad range support for Monte Carlo method
s to implement machine learning
applications. Since Monte Carlo methods are inherently parallelizable
, the goal is to provide multi-threaded implementations of the most important methods.
Example applications include:
(SIR) method is supported. To create an SMC application based on MCMLL, one has to define an observation distribution, a transition distribution and optionally an importance distribution to be used in the SIR operator.
Open source
The term open source describes practices in production and development that promote access to the end product's source materials. Some consider open source a philosophy, others consider it a pragmatic methodology...
C++
C++
C++ is a statically typed, free-form, multi-paradigm, compiled, general-purpose programming language. It is regarded as an intermediate-level language, as it comprises a combination of both high-level and low-level language features. It was developed by Bjarne Stroustrup starting in 1979 at Bell...
template library which already relies on some C++0x
C++0x
C++11, also formerly known as C++0x, is the name of the most recent iteration of the C++ programming language, replacing C++03, approved by the ISO as of 12 August 2011...
specs. MCMLL is licensed under the GNU GPL. It is developed under the 64 bit Linux
Linux
Linux is a Unix-like computer operating system assembled under the model of free and open source software development and distribution. The defining component of any Linux system is the Linux kernel, an operating system kernel first released October 5, 1991 by Linus Torvalds...
OS. MCMLL should be usable on other platforms as well, since it is based on ISO C++.
The philosophy behind MCMLL is to have a broad range support for Monte Carlo method
Monte Carlo method
Monte Carlo methods are a class of computational algorithms that rely on repeated random sampling to compute their results. Monte Carlo methods are often used in computer simulations of physical and mathematical systems...
s to implement machine learning
Machine learning
Machine learning, a branch of artificial intelligence, is a scientific discipline concerned with the design and development of algorithms that allow computers to evolve behaviors based on empirical data, such as from sensor data or databases...
applications. Since Monte Carlo methods are inherently parallelizable
Parallel algorithm
In computer science, a parallel algorithm or concurrent algorithm, as opposed to a traditional sequential algorithm, is an algorithm which can be executed a piece at a time on many different processing devices, and then put back together again at the end to get the correct result.Some algorithms...
, the goal is to provide multi-threaded implementations of the most important methods.
Overview
MCMLL has an emphasis on Monte Carlo methods. Some main components of MCMLL are:- complete framework for vector and matrix computations
- multi-threaded support for generic Evolutionary algorithms (EA)
- support for generic Sequential Monte Carlo methods ('Particle Filtering').
Example applications include:
- support for learning Artificial Neural NetworkArtificial neural networkAn artificial neural network , usually called neural network , is a mathematical model or computational model that is inspired by the structure and/or functional aspects of biological neural networks. A neural network consists of an interconnected group of artificial neurons, and it processes...
s (ANN) using EA's - example programs for Sequential Monte Carlo methods ('Particle Filtering')
- a benchmark suite for testing and implementing Evolutionary AlgorithmEvolutionary algorithmIn artificial intelligence, an evolutionary algorithm is a subset of evolutionary computation, a generic population-based metaheuristic optimization algorithm. An EA uses some mechanisms inspired by biological evolution: reproduction, mutation, recombination, and selection...
s.
Supported Evolutionary Algorithms
The supported EA's are:- Genetic AlgorithmGenetic algorithmA genetic algorithm is a search heuristic that mimics the process of natural evolution. This heuristic is routinely used to generate useful solutions to optimization and search problems...
(GA) - Particle Swarm OptimizationParticle swarm optimizationIn computer science, particle swarm optimization is a computational method that optimizes a problem by iteratively trying to improve a candidate solution with regard to a given measure of quality...
(PSO) - Differential evolutionDifferential evolutionIn computer science, differential evolution is a method that optimizes a problem by iteratively trying to improve a candidate solution with regard to a given measure of quality. Such methods are commonly known as metaheuristics as they make few or no assumptions about the problem being optimized...
family: (DE, jDE, JADE without history, R2DE, SAR2DE, ...) - Covariance Matrix Adaptation Evolution Strategies (CMA-ESCMA-ESCMA-ES stands for Covariance Matrix Adaptation Evolution Strategy. Evolution strategies are stochastic, derivative-free methods for numerical optimization of non-linear or non-convex continuous optimization problems. They belong to the class of evolutionary algorithms and evolutionary computation...
) - Artificial Bee Colony AlgorithmArtificial Bee Colony AlgorithmIn computer science and operations research, Artificial Bee Colony Algorithm is an optimization algorithm based on the intelligent foraging behaviour of honey bee swarm, proposed by Karaboga in 2005 .-Algorithm:...
(ABC) - many more...
Supported Sequential Monte Carlo Methods
For particle filtering, the Sequential Importance ResamplingParticle filter
In statistics, particle filters, also known as Sequential Monte Carlo methods , are sophisticated model estimation techniques based on simulation...
(SIR) method is supported. To create an SMC application based on MCMLL, one has to define an observation distribution, a transition distribution and optionally an importance distribution to be used in the SIR operator.