rCHL is a C implementation of a Restricted Boltzmann Machine [1]. In addition, we have implemented a Non-negative Matrix Factorization algorithm based on the RBM implementation (see [2] for more details). The current implementation uses the PCG random number generator [3] (http://www.pcg-random.org/)
The repo is organized as follows:
├── bin
├── data
│ └── plot_rfs.py -- Plot the receptive fields
├── include
│ ├── pcg_basic.h -- Random Number Generator
│ └── rbm.h
├── LICENSE
├── Makefile
├── obj
├── README.md
├── run.sh
└── src
├── examples.c
├── functions.c
├── load_data.c
├── main.c
├── pcg_basic.c
└── rbm.c
Linux #1 SMP PREEMPT Wed Jul 5 18:23:08 CEST 2017 x86_64 GNU/Linux
model name : Intel(R) Core(TM) i7-6700 CPU @ 3.40GHz vendor_id : GenuineIntel
gcc (GCC) 7.1.1 20170630
-
Paul Smolensky, "Information processing in dynamical systems: Foundations of harmony theory", 1986.
-
Nguyen Tu Dinh, Tran Truyen, Phung Dinh and Venkatesh Svetha, "Learning parts-based representations with nonnegative restricted boltzmann machine", Asian Conference on Machine Learning, 133--148, 2013.
-
Melissa E. O'Neill, "PCG: A Family of Simple Fast Space-Efficient Statistically Good Algorithms for Random Number Generation", Harvey Mudd College, Claremont, CA, HMC-CS-2014-0905, 2014