/cascade-correlation-neural-networks

A general framework for cascade correlation architectures in Python with wrappers to keras, tensorflow and sklearn

Primary LanguagePythonMIT LicenseMIT

cascade-correlation-neural-networks

A general framework for building and training constructive feed-forward neural networks. Provides an implementation of sibling-descendant CCNN (Cascade-Correlation) [1,2] with extendable wrappers to tensorflow, keras, scipy, and scikit-learn. Also supports custom topologies, training algorithms, and loss functions [3, 4].

Installation

The simplest way to install this package currently is to clone the repository and use pip. First, clone the repository:

git clone https://github.com/mike-gimelfarb/cascade-correlation-neural-networks.git

Next, navigate to the folder and use pip

cd cascade-correlation-neural-networks
pip install .

We are currently in the process of hosting this project from PyPI, please stay tuned.

Requirements

The package has been tested using:

  • Python 3.7
  • Tensorflow 2.3.1
  • scikit-learn 0.23.2
  • pandas 1.1.3
  • scipy 1.5.2

Features

Regression

Classification

Unsupervised Learning

References

  1. Fahlman, Scott E., and Christian Lebiere. "The Cascade-Correlation Learning Architecture." NIPS. 1989.
  2. Baluja, Shumeet, and Scott E. Fahlman. Reducing network depth in the cascade-correlation learning architecture. CARNEGIE-MELLON UNIV PITTSBURGH PA SCHOOL OF COMPUTER SCIENCE, 1994.
  3. Kwok, Tin-Yau, and Dit-Yan Yeung. "Bayesian regularization in constructive neural networks." International Conference on Artificial Neural Networks. Springer, Berlin, Heidelberg, 1996.
  4. Kwok, Tin-Yau, and Dit-Yan Yeung. "Objective functions for training new hidden units in constructive neural networks." IEEE Transactions on neural networks 8.5 (1997): 1131-1148.

See Also

  1. https://www.psych.mcgill.ca/perpg/fac/shultz/personal/Recent_Publications_files/cc_tutorial_files/v3_document.htm