This workbench holds a collection of machine learning methods in Ruby. Rather than specializing on a single task or method, this gem aims at providing an encompassing framework for any machine learning application.
Installation
Add this line to your application's Gemfile:
gem 'machine_learning_workbench'
And then execute:
$ bundle
Or install it yourself as:
$ gem install machine_learning_workbench
Usage
TLDR: Check out the examples
directory, e.g. this script.
This library is thought as a practical workbench: there is plenty of tools hanging, each has multiple uses and applications, and as such it is built as atomic and flexible as possible. Folders in the lib structure categorize them them.
The systems directory holds few examples of how to bring them together in higher abstractions, i.e. as compound tools. For example, a neuroevolution setup brings together evolutionary computation and neural networks.
For an example of how to build it from scratch, check this neuroevolution script. To run it, use bundle exec ruby examples/neuroevolution.rb
Development
After cloning the repo, run bin/setup
to install dependencies. Then, run rake spec
to run the tests. You can also run bin/console
for an interactive prompt that will allow you to experiment.
To install this gem onto your local machine, run bundle exec rake install
. To release a new version, update the version number in version.rb
, and then run bundle exec rake release
, which will create a git tag for the version, push git commits and tags, and push the .gem
file to rubygems.org.
Contributing
Bug reports and pull requests are welcome on GitHub at https://github.com/giuse/machine_learning_workbench.
License
The gem is available as open source under the terms of the MIT License.
References
Please feel free to contribute to this list (see Contributing
above).
- NES stands for Natural Evolution Strategies. Check its Wikipedia page for more info.
- CMA-ES stands for Covariance Matrix Adaptation Evolution Strategy. Check its Wikipedia page for more info.
- UL-ELR stands for Unsupervised Learning plus Evolutionary Reinforcement Learning, from the paper "Intrinsically Motivated Neuroevolution for Vision-Based Reinforcement Learning" (ICDL2011). Check here for citation reference and pdf.
- BD-NES stands for Block Diagonal Natural Evolution Strategy, from the homonymous paper "Block Diagonal Natural Evolution Strategies" (PPSN2012). Check here for citation reference and pdf.
- RNES stands for Radial Natural Evolution Strategy, from the paper "Novelty-Based Restarts for Evolution Strategies" (CEC2011). Check here for citation reference and pdf.
- DLR-VQ stands for Decaying Learning Rate Vector Quantization, from the algorithm originally named Online VQ in the paper "Intrinsically Motivated Neuroevolution for Vision-Based Reinforcement Learning" (ICDL2011). Check here for citation reference and pdf.