mwielondek / BCPNN

An implementation of the Bayesian Confidence Propagation Neural Network (BCPNN)

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Bayesian Confidence Propagation Neural Network (BCPNN)

"A Bayesian Confidence Propagation Neural Network (BCPNN) is an artificial neural network inspired by Bayes' theorem: node activations represent probability ("confidence") in the presence of input features or categories, synaptic weights are based on estimated correlations and the spread of activation corresponds to calculating posteriori probabilities. It was originally proposed by Anders Lansner and Örjan Ekeberg at KTH." - Wikipedia

Implemented roughly following the architecture devised in "The Use of a Bayesian Neural Network Model for Classification Tasks", Anders Holst, 1997 [1].

The single-layered feedforward version can be used for classification tasks, while the recurrent version works as a CAM.

Usage

Instantiate classifier, then fit, and predict or predict_proba for classification. The API closely follows the method naming convention of sklearn's classifiers, and so should be straightforward to use for familiar users.

Dependencies

Mainly numpy + sklearn for its OneHotEncoder, and pytest for running tests. Run $ pip install -r requirements(_dev).txt to install.

Denoising demo

About

An implementation of the Bayesian Confidence Propagation Neural Network (BCPNN)


Languages

Language:Python 100.0%