JustGlowing/minisom

Decay function documentation

mariajmolina opened this issue · 5 comments

decay_function=asymptotic_decay,

Hello! The default appears to be asymptotic decay function on Line 94, but the docstring for the minisom class also lists the default as None on line 127. Can we address this inconsistency? It would be great to have the default actually be None, as we are currently working on an application where we would like sigma and the learning rate to remain constant.

Hello! I am also working on this application and it is highly important that this inconsistency can be addressed because as of now, we are not sure what is currently happening to sigma and the learning rate when we remove the decay_function completely. Thank you so much for your help!

hi there

@mariajmolina thanks for reporting the issue. I just fixed the documentation but I didn't set None as default. If you would like to have sigma and learning_rate constant, you have to pass your own decay function which should like the following:

def no_decay(learning_rate, t, max_iter):
    return learning_rate

then initialize minisom like this

MiniSom(x, y, z, decay_function=no_decay)

@taylordolan18 you can't remove the decay_function, the algorithm depends on it.

Thanks so much, @JustGlowing ! This is great feedback. We will use a custom decay function to set the sigma and learning rate as constant.

Thank you so much for the feedback @JustGlowing and for getting back with an answer so fast, really appreciate it! We will use the custom function to make sure everything is working smoothly.

You're welcome. Please beware that the convergence of the algorithm is not guaranteed when you use a constant learning rate.