AdaptiveResonance.jl icon indicating copy to clipboard operation
AdaptiveResonance.jl copied to clipboard

Matching function

Open markNZed opened this issue 4 years ago • 2 comments

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 avatar Oct 10 '21 08:10 markNZed

@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.

AP6YC avatar Nov 02 '21 13:11 AP6YC

Thanks for the explanation Sasha!

markNZed avatar Nov 02 '21 22:11 markNZed