Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

htm core detector with random seed? #35

Closed
Zbysekz opened this issue May 8, 2020 · 2 comments
Closed

htm core detector with random seed? #35

Zbysekz opened this issue May 8, 2020 · 2 comments

Comments

@Zbysekz
Copy link

Zbysekz commented May 8, 2020

I have noticed, that htmcore_detector.py use random seed (=0).
In fact, it is just about the RDSE encoder, there is the seed param not supplied. I can add this param with PR.

I am not sure how optimalization exactly works here in NAB (the one with docker?), but in my opinion for optimalization process, the detector should be deterministic. (i am imagining itself as optimizer and i am trying to find better params, but each call the result is different with no dependency of what params i have changed.) This potentially could help @steinroe.

For example, for art_daily_flatmiddle i get these scores each call: -0.787,-0.567,-0.677....

What you think about this @breznak ?

@breznak
Copy link
Member

breznak commented May 9, 2020

I have noticed, that htmcore_detector.py use random seed (=0).
In fact, it is just about the RDSE encoder, there is the seed param not supplied

I have noticed that in some past PR and started working on that:
htm-community/htm.core#799

What should be a simple PR, but I got down the rabbit hole... SP (or something) behaves strange with the default random(=0) seed.

optimalization process, the detector should be deterministic. (i am imagining itself as optimizer and i am trying to find better params, but each call the result is different with no dependency of what params i have changed.)

not exactly. The algorithm behaves correctly on "high level" (HTM), so say there's correct sparsity, boosting works, cells get predicted etc.
But when we say "choose randomly 5 out of these cells, and do something.." we want that random to be truly random.

Otherwise, you get overfitting and the param-optimizer could learn as a knowledge "that on 158000th step the cell 1345 is ON". Then you'd get falsely good results for one seed & data combination, but not for other.

@Zbysekz
Copy link
Author

Zbysekz commented May 11, 2020

Ok i get it, thanks for explaining 👍

@Zbysekz Zbysekz closed this as completed May 11, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants