Skip to content

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

Notifications You must be signed in to change notification settings

mwielondek/BCPNN

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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)

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages