AdaptiveResonance
A Julia package for Adaptive Resonance Theory (ART) algorithms.
Documentation | Build Status | Coverage |
---|---|---|
Dependents | Date | Status |
---|---|---|
This package is developed and maintained by Sasha Petrenko with sponsorship by the Applied Computational Intelligence Laboratory (ACIL). This project is supported by grants from the Night Vision Electronic Sensors Directorate, the DARPA Lifelong Learning Machines (L2M) program, Teledyne Technologies, and the National Science Foundation. The material, findings, and conclusions here do not necessarily reflect the views of these entities.
Please read the documentation for detailed usage and tutorials.
Contents
Overview
Adaptive Resonance Theory (ART) is a neurocognitive theory of how recurrent cellular networks can learn distributed patterns without supervision. As a theory, it provides coherent and consistent explanations of how real neural networks learn patterns through competition, and it predicts the phenomena of attention and expectation as central to learning. In engineering, the theory has been applied to a myriad of algorithmic models for unsupervised machine learning, though it has been extended to supervised and reinforcement learning frameworks. This package provides implementations of many of these algorithms in Julia for both scientific research and engineering applications. A quickstart is provided in Installation, while detailed usage and examples are provided in the documentation.
Installation
This project is distributed as a Julia package, available on JuliaHub. Its usage follows the usual Julia package installation procedure, interactively:
] add AdaptiveResonance
or programmatically:
using Pkg
Pkg.add("AdaptiveResonance")
You may also add the package directly from GitHub to get the latest changes:
] add https://github.com/AP6YC/AdaptiveResonance.jl
Structure
The following file tree summarizes the project structure:
AdaptiveResonance
├── .github/workflows // GitHub: workflows for testing and documentation.
├── data // Data: CI data location.
├── docs // Docs: documentation for the module.
│ └───src // Documentation source files.
├── examples // Source: example usage scripts.
├── src // Source: majority of source code.
│ ├───ART // ART-based unsupervised modules.
│ ├───ARTMAP // ARTMAP-based supervised modules.
│ └───CVI // Cluster validity indices.
├── test // Test: Unit, integration, and environment tests.
├── .appveyor // Appveyor: Windows-specific coverage.
├── .gitignore // Git: .gitignore for the whole project.
├── LICENSE // Doc: the license to the project.
├── Project.toml // Julia: the Pkg.jl dependencies of the project.
└── README.md // Doc: this document.
Contributing
Please raise an issue.
History
- 7/10/2020 - Begin project.
- 11/3/2020 - Complete baseline modules and tests.
- 2/8/2021 - Formalize usage documentation.
Credits
Authors
- Sasha Petrenko sap625@mst.edu
Software
Adaptive Resonance Theory has been developed in theory and in application by many research groups since the theory's conception, and so this project was not developed in a vacuum. This project itself is built upon the wisdom and precedent of decades of previous work in ART in a variety of programming languages. The code in this repository is inspired the following repositories:
- ACIL Organization GitHub
- MATLAB
- DDVFA: Companion MATLAB implementation of distrubuted dual vigilance fuzzy ART.
- DVFA: Companion MATLAB code for Dual Vigilance Fuzzy ART
- iCVI-toolbox: A MATLAB toolbox for incremental/batch cluster validity indices
- CVIFA: Companion MATLAB implementation of validity index-based vigilance test fuzzy ART.
- VAT-FA: Companion MATLAB code for VAT + Fuzzy ART.
- BARTMAP-CF: Companion MATLAB code for BARTMAP-based collaborative filtering
- Python
- MATLAB
- Boston University's Cognitive and Neural Systems (CNS) Tech Lab
- Nanyang Technological University's Tan Ah Whee
- Bernabé Linares-Barranco
- Marko Tscherepanow's LibTopoART
- National University of Singapore's Lei Meng
Datasets
Boilerplate clustering datasets are periodically used to test, verify, and provide example of the functionality of the package.
UCI machine learning repository: http://archive.ics.uci.edu/ml
Fundamental Clustering Problems Suite (FCPS): https://www.uni-marburg.de/fb12/arbeitsgruppen/datenbionik/data?language_sync=1
Datasets package: https://www.researchgate.net/publication/239525861_Datasets_package
Clustering basic benchmark: http://cs.uef.fi/sipu/datasets
License
This software is openly maintained by the ACIL of the Missouri University of Science and Technology under the MIT License.