AdaptiveResonance.jl
AdaptiveResonance.jl copied to clipboard
Matching function
In the matching function Fuzzy ART has the norm-1 of the feature vector as a denominator but the DVFA matching function is not doing this https://github.com/markNZed/AdaptiveResonance.jl/blob/c5963b6fdf78f52af5b310a3222cd0c8e735050d/src/ART/DVFA.jl#L389
Is this intentional? In the paper on DVFA I did not see a mention of a change in how matching is performed.
@markNZed Sorry to reply slowly to this, but after some digging, I think that I found an answer!
Some of the implementations from my colleagues that I based this work on utilized a match normalization by referring to the static feature dimensionality in the threshold parameters (i.e., using thresholds as a function of the vigilance parameters). The following is currently in the develop:
"""
set_threshold!(art::DVFA)
Configure the threshold values of the DVFA module.
"""
function set_threshold!(art::DVFA)
# DVFA thresholds
art.threshold_ub = art.opts.rho_ub * art.config.dim
art.threshold_lb = art.opts.rho_lb * art.config.dim
end # set_threshold!(art::DVFA)
Because of complement coding, the 1-norm of x becomes constant and equal to the original feature dimension d. However, I agree that the way that it is coded currently does not reflect that very well to the reader even if it is functionally equivalent, so I will implement a way to clarify it.
Thanks for the explanation Sasha!