ART Models and Options

Choose a model using the model guide. Each model is followed by its options; all constructor docstrings are kept together.

Index

FuzzyART

FuzzyART

AdaptiveResonance.FuzzyART — Type
mutable struct FuzzyART <: AdaptiveResonance.AbstractFuzzyART

Summary

Gamma-Normalized Fuzzy ART learner struct

For module options, see AdaptiveResonance.opts_FuzzyART.

References

  1. G. Carpenter, S. Grossberg, and D. Rosen, 'Fuzzy ART: Fast stable learning and categorization of analog patterns by an adaptive resonance system,' Neural Networks, vol. 4, no. 6, pp. 759-771, 1991.

Fields

  • opts::opts_FuzzyART: FuzzyART options struct.
  • config::DataConfig: Data configuration struct.
  • threshold::Float64: Operating module threshold value, a function of the vigilance parameter.
  • labels::Vector{Int64}: Incremental list of labels corresponding to each F2 node, self-prescribed or supervised.
  • T::Vector{Float64}: Activation values for every weight for a given sample.
  • M::Vector{Float64}: Match values for every weight for a given sample.
  • W::ElasticArrays.ElasticMatrix{Float64, V} where V<:DenseVector{Float64}: Category weight matrix.
  • n_instance::Vector{Int64}: Number of weights associated with each category.
  • n_categories::Int64: Number of category weights (F2 nodes).
  • epoch::Int64: Current training epoch.
  • stats::Dict{String, Any}: Runtime statistics for the module, implemented as a dictionary containing entries at the end of each training iteration. These entries include the best-matching unit index and the activation and match values of the winning node.
source

opts_FuzzyART

AdaptiveResonance.opts_FuzzyART — Type
mutable struct opts_FuzzyART <: ARTOpts

Summary

Gamma-Normalized Fuzzy ART options struct.

These options are a Parameters.jl struct, taking custom options keyword arguments. Each field has a default value listed below.

Fields

  • match_tracking::Bool: Flag to enable match tracking. Default: false

  • epsilon::Float64: Positive match-tracking increment: episilon ∈ (0, 1) Default: 0.001

  • rho::Float64: Vigilance parameter: rho ∈ [0, 1]. Default: 0.6

  • alpha::Float64: Choice parameter: alpha > 0. Default: 0.001

  • beta::Float64: Learning parameter: beta ∈ (0, 1]. Default: 1.0

  • gamma::Float64: Pseudo kernel width: gamma >= 1. Default: 3.0

  • gamma_ref::Float64: Reference gamma for normalization: 0 <= gamma_ref < gamma. Default: 1.0

  • max_epoch::Int64: Maximum number of epochs during training: max_epochs ∈ (1, Inf). Default: 1

  • display::Bool: Display flag for progress bars. Default: false

  • gamma_normalization::Bool: Flag to normalize the threshold by the feature dimension.

    NOTE: this flag overwrites the activation and match settings here to their gamma-normalized equivalents along with adjusting the thresold. Default: false

  • uncommitted::Bool: Flag to use an uncommitted node when learning.

    If true, new weights are created with ones(dim) and learn on the complement-coded sample. If false, fast-committing is used where the new weight is simply the complement-coded sample. Default: false

  • activation::Symbol: Selected activation function. Default: :basic_activation

  • match::Symbol: Selected match function. Default: :basic_match

  • update::Symbol: Selected weight update function. Default: :basic_update

  • sort::Bool: Flag to sort the F2 nodes by activation before the match phase

    When true, the F2 nodes are sorted by activation before match. When false, an iterative argmax and inhibition procedure is used to find the best-matching unit. Default: false

source

HypersphereART

HypersphereART

AdaptiveResonance.HypersphereART — Type
mutable struct HypersphereART <: AdaptiveResonance.SingleART

Summary

HypersphereART(; kwargs...)
HypersphereART(opts::opts_HypersphereART)

Hypersphere ART learner supporting batch and incremental train! and classify, including optional supervisory labels. Options are described in opts_HypersphereART.

Each column of W stores a center followed by its radius. Inputs are normalized using DataConfig without complement coding. With preprocessed=true, inputs are already normalized feature vectors, with no appended complements. For incremental raw input, first call data_setup! or assign a DataConfig.

References

G. C. Anagnostopoulos and M. Georgiopoulos (2000), "Hypersphere ART and ARTMAP for unsupervised and supervised, incremental learning," IJCNN, vol. 6, pp. 59–64. https://www.eecs.ucf.edu/georgiopoulos/sites/default/files/235.pdf

Fields

  • opts::opts_HypersphereART: Learner options.

  • config::DataConfig: Feature normalization configuration.

  • threshold::Float64: Operating vigilance threshold.

  • r_bar::Float64: Effective radial extent, resolved when training starts.

  • labels::Vector{Int64}: Category labels.

  • T::Vector{Float64}: Category activation values.

  • M::Vector{Float64}: Category match values.

  • W::ElasticArrays.ElasticMatrix{Float64, V} where V<:DenseVector{Float64}: Category centers and radii, stored as columns [center; radius].

  • n_instance::Vector{Int64}: Number of samples assigned to each category.

  • n_categories::Int64: Number of committed categories.

  • epoch::Int64: Current training epoch.

  • stats::Dict{String, Any}: Statistics of the latest category search.

source

opts_HypersphereART

AdaptiveResonance.opts_HypersphereART — Type
mutable struct opts_HypersphereART <: ARTOpts

Summary

Hypersphere ART options.

rho controls vigilance, alpha category choice, and beta learning speed. r_bar is the radial extent in normalized feature units; nothing selects sqrt(dim) / 2, the radius of the normalized unit cube, when training starts. For custom feature scales, choose an extent at least half the largest pairwise sample distance.

These options are a Parameters.jl struct, taking custom options keyword arguments. Each field has a default value listed below.

Fields

  • match_tracking::Bool: Flag to enable match tracking. Default: false

  • epsilon::Float64: Positive match-tracking increment: episilon ∈ (0, 1) Default: 0.001

  • rho::Float64: Vigilance parameter in [0, 1]. Default: 0.6

  • alpha::Float64: Finite, positive choice parameter. Default: 0.001

  • beta::Float64: Learning rate in (0, 1]; 1 selects fast learning. Default: 1.0

  • r_bar::Union{Nothing, Float64}: Radial extent, or nothing for an automatic dimension-based value. Default: nothing

  • max_epoch::Int64: Maximum number of training epochs. Default: 1

  • display::Bool: Display progress bars. Default: false

  • sort::Bool: Sort categories by activation before the vigilance search. Default: false

  • activation::Symbol: Activation function for center-radius weights. Default: :hypersphere_activation

  • match::Symbol: Match function for center-radius weights. Default: :hypersphere_match

  • update::Symbol: Update function for center-radius weights. Default: :hypersphere_update

source

DVFA

DVFA

AdaptiveResonance.DVFA — Type
mutable struct DVFA <: AdaptiveResonance.AbstractFuzzyART

Summary

Dual Vigilance Fuzzy ARTMAP module struct.

For module options, see AdaptiveResonance.opts_DVFA.

References:

  1. L. E. Brito da Silva, I. Elnabarawy and D. C. Wunsch II, 'Dual Vigilance Fuzzy ART,' Neural Networks Letters. To appear.
  2. G. Carpenter, S. Grossberg, and D. Rosen, 'Fuzzy ART: Fast stable learning and categorization of analog patterns by an adaptive resonance system,' Neural Networks, vol. 4, no. 6, pp. 759-771, 1991.

Fields

  • opts::opts_DVFA: DVFA options struct.
  • config::DataConfig: Data configuration struct.
  • threshold_ub::Float64: Operating upper bound module threshold value, a function of the upper bound vigilance parameter.
  • threshold_lb::Float64: Operating lower bound module threshold value, a function of the lower bound vigilance parameter.
  • labels::Vector{Int64}: Incremental list of labels corresponding to each F2 node, self-prescribed or supervised.
  • W::ElasticArrays.ElasticMatrix{Float64, V} where V<:DenseVector{Float64}: Category weight matrix.
  • T::Vector{Float64}: Activation values for every weight for a given sample.
  • M::Vector{Float64}: Match values for every weight for a given sample.
  • n_categories::Int64: Number of category weights (F2 nodes).
  • n_clusters::Int64: Number of labeled clusters, may be lower than n_categories
  • epoch::Int64: Current training epoch.
  • stats::Dict{String, Any}: Runtime statistics for the module, implemented as a dictionary containing entries at the end of each training iteration. These entries include the best-matching unit index and the activation and match values of the winning node.
source

opts_DVFA

AdaptiveResonance.opts_DVFA — Type
mutable struct opts_DVFA <: ARTOpts

Summary

Dual Vigilance Fuzzy ART options struct.

These options are a Parameters.jl struct, taking custom options keyword arguments. Each field has a default value listed below.

Fields

  • match_tracking::Bool: Flag to enable match tracking. Default: false

  • epsilon::Float64: Positive match-tracking increment: episilon ∈ (0, 1) Default: 0.001

  • rho_lb::Float64: Lower-bound vigilance parameter: rho_lb ∈ [0, 1]. Default: 0.55

  • rho_ub::Float64: Upper bound vigilance parameter: rho_ub ∈ [0, 1]. Default: 0.75

  • alpha::Float64: Choice parameter: alpha > 0. Default: 0.001

  • beta::Float64: Learning parameter: beta ∈ (0, 1]. Default: 1.0

  • max_epoch::Int64: Maximum number of epochs during training. Default: 1

  • display::Bool: Display flag for progress bars. Default: false

  • uncommitted::Bool: Flag to use an uncommitted node when learning.

    If true, new weights are created with ones(dim) and learn on the complement-coded sample. If false, fast-committing is used where the new weight is simply the complement-coded sample. Default: false

  • activation::Symbol: Selected activation function. Default: :basic_activation

  • match::Symbol: Selected match function. Default: :unnormalized_match

  • update::Symbol: Selected weight update function. Default: :basic_update

  • sort::Bool: Flag to sort the F2 nodes by activation before the match phase

    When true, the F2 nodes are sorted by activation before match. When false, an iterative argmax and inhibition procedure is used to find the best-matching unit. Default: false

source

DDVFA

DDVFA

AdaptiveResonance.DDVFA — Type
mutable struct DDVFA <: ART

Summary

Distributed Dual Vigilance Fuzzy ARTMAP module struct.

For module options, see AdaptiveResonance.opts_DDVFA.

References

  1. L. E. Brito da Silva, I. Elnabarawy, and D. C. Wunsch, 'Distributed dual vigilance fuzzy adaptive resonance theory learns online, retrieves arbitrarily-shaped clusters, and mitigates order dependence,' Neural Networks, vol. 121, pp. 208-228, 2020, doi: 10.1016/j.neunet.2019.08.033.
  2. G. Carpenter, S. Grossberg, and D. Rosen, 'Fuzzy ART: Fast stable learning and categorization of analog patterns by an adaptive resonance system,' Neural Networks, vol. 4, no. 6, pp. 759-771, 1991.

Fields

  • opts::opts_DDVFA: DDVFA options struct.
  • subopts::opts_FuzzyART: FuzzyART options struct used for all F2 nodes.
  • config::DataConfig: Data configuration struct.
  • threshold::Float64: Operating module threshold value, a function of the vigilance parameter.
  • F2::Vector{FuzzyART}: List of F2 nodes (themselves FuzzyART modules).
  • labels::Vector{Int64}: Incremental list of labels corresponding to each F2 node, self-prescribed or supervised.
  • n_categories::Int64: Number of total categories.
  • epoch::Int64: Current training epoch.
  • T::Vector{Float64}: DDVFA activation values.
  • M::Vector{Float64}: DDVFA match values.
  • stats::Dict{String, Any}: Runtime statistics for the module, implemented as a dictionary containing entries at the end of each training iteration. These entries include the best-matching unit index and the activation and match values of the winning node.
source

opts_DDVFA

AdaptiveResonance.opts_DDVFA — Type
mutable struct opts_DDVFA <: ARTOpts

Summary

Distributed Dual Vigilance Fuzzy ART options struct.

These options are a Parameters.jl struct, taking custom options keyword arguments. Each field has a default value listed below.

Fields

  • match_tracking::Bool: Flag to enable match tracking. Default: false

  • epsilon::Float64: Positive match-tracking increment: episilon ∈ (0, 1) Default: 0.001

  • rho_lb::Float64: Lower-bound vigilance parameter: rho_lb ∈ [0, 1]. Default: 0.7

  • rho_ub::Float64: Upper bound vigilance parameter: rho_ub ∈ [0, 1]. Default: 0.85

  • alpha::Float64: Choice parameter: alpha > 0. Default: 0.001

  • beta::Float64: Learning parameter: beta ∈ (0, 1]. Default: 1.0

  • gamma::Float64: Pseudo kernel width: gamma >= 1. Default: 3.0

  • gamma_ref::Float64: Reference gamma for normalization: 0 <= gamma_ref < gamma. Default: 1.0

  • similarity::Symbol: Similarity method (activation and match): similarity ∈ [:single, :average, :complete, :median, :weighted, :centroid]. Default: :single

  • max_epoch::Int64: Maximum number of epochs during training: max_epochs ∈ (1, Inf). Default: 1

  • display::Bool: Display flag for progress bars. Default: false

  • gamma_normalization::Bool: Flag to normalize the threshold by the feature dimension. Default: true

  • uncommitted::Bool: Flag to use an uncommitted node when learning.

    If true, new weights are created with ones(dim) and learn on the complement-coded sample. If false, fast-committing is used where the new weight is simply the complement-coded sample. Default: false

  • activation::Symbol: Selected activation function. Default: :gamma_activation

  • match::Symbol: Selected match function. Default: :gamma_match

  • update::Symbol: Selected weight update function. Default: :basic_update

  • sort::Bool: Flag to sort the F2 nodes by activation before the match phase

    When true, the F2 nodes are sorted by activation before match. When false, an iterative argmax and inhibition procedure is used to find the best-matching unit. Default: false

source

GammaNormalizedFuzzyART

GammaNormalizedFuzzyART

AdaptiveResonance.GammaNormalizedFuzzyART — Function
GammaNormalizedFuzzyART(; kwargs...) -> FuzzyART

Summary

Constructs a Gamma-Normalized FuzzyART module as a variant of FuzzyART by using the gamma_normalization option.

GammaNormalizedFuzzyART is a variant of FuzzyART, using the AdaptiveResonance.opts_FuzzyART options. This constructor passes gamma_normalization=true, which internally uses match=:gamma_match and activation=:gamma_activation in addition to the keyword argument options you provide.

Arguments

Method List / Definition Locations

GammaNormalizedFuzzyART(; kwargs...)

defined at /home/runner/work/AdaptiveResonance.jl/AdaptiveResonance.jl/src/ART/variants.jl:26.

source
GammaNormalizedFuzzyART(opts::opts_FuzzyART)

Summary

Implements a Gamma-Normalized FuzzyART module with specified options.

GammaNormalizedFuzzyART is a variant of FuzzyART, using the AdaptiveResonance.opts_FuzzyART options. This constructor passes gamma_normalization=true, which internally uses match=:gamma_match and activation=:gamma_activation in addition to the keyword argument options you provide.

Arguments

Method List / Definition Locations

GammaNormalizedFuzzyART(opts)

defined at /home/runner/work/AdaptiveResonance.jl/AdaptiveResonance.jl/src/ART/variants.jl:39.

source

opts_GammaNormalizedFuzzyART

AdaptiveResonance.opts_GammaNormalizedFuzzyART — Function
opts_GammaNormalizedFuzzyART(; kwargs...)

Summary

Implements a Gamma-Normalized FuzzyART module's options.

GammaNormalizedFuzzyART is a variant of FuzzyART, using the AdaptiveResonance.opts_FuzzyART options. This constructor passes gamma_normalization=true, which internally uses match=:gamma_match and activation=:gamma_activation in addition to the keyword argument options you provide.

These options are a Parameters.jl struct, taking custom options keyword arguments. Each field has a default value listed below.

Method List / Definition Locations

opts_GammaNormalizedFuzzyART(; kwargs...)

defined at /home/runner/work/AdaptiveResonance.jl/AdaptiveResonance.jl/src/ART/variants.jl:50.

source