Hello
I’m a computer scientist that has a passion for the machine learning world so in the spare time I find myself looking for materials and the new algorithms, this make me very good in understanding systems but I don’t practice programming all days.
I’ve found and approached HTM less than a week ago and got fascinated by it.
Read the paper, watched all the videos I’ve found, understood 90% of all but 100% of what I think I need.
I’ve a pet project, a game, not useful for the rest of the world but me and I would like to make an agent of the game smart with the HTM.
The project is in Java.
I’ve cloned the git repository locally and run some of the tests included with it, so far so good, the tests runs smoothly to the end with no particular blocking errors.
So I tell myself “Time to implement it in my project”
I go to the documentation for HTM.java and I’m finding myself an hard time to build the simplest system…I get lost in how I can select an algorithms, setting parameters, encode my input in an online manner, get a prediction, how is shaped…this is not a complete list, just examples.
I can quite see that everything is there, but the documentation is poor, sometimes doesn’t reflect the code, sometimes the documentation links directly to the code but the code is not commented enough to make the life easier.
The website, the videos are all well made, it’s a bit of shame that after all the sparkling things I find very struggling with the implementing the basics only because I’m not able to glue the theory with the library implementation.
I hope that all this is only a problem for me, not for someone else, probably I’m not good enough and I’ve missed something important.
My question is: is there someone that is willing to help me to understand how to code the system I have in mind?
*I have as input a continuous stream of a certain number of double data (the number of features are still to be decided, but every one has min and max known)
*as output I would like to have the future guess of one of the features I put in input, but I would like to have the guess at +t chosen every guess
From theory this all should be fine to do.
Thanks for any help I will receive and sorry for the complain above, is mostly coming from my frustration in not succeeding in using this appealing algorithm.
…also I forgot to mention, but the tests (in the “Network” package) detail many different data ingestion scenarios… I would look at those to see how the API is used under different circumstances…
Sorry again if I looked a bit brutal on the approach. It’s really out of my frustration.
Of course I’ve looked at the Wiki, and I’m looking at the code of the tests right now, I’m not giving up easily.
Maybe, if I can make a suggestion; if the right way to learn the implementation is to look at the test code because you put a lot of effort in it (that’s good) and is much more complete than the documentation that is falling behind, a shortcut could be that the wiki lists down an index of the tests with a brief description of what the test does so the user can quickly understand what are the tests useful for him. This should be faster than writing the documentation for all the quirks implemented in the code.
Looks like missing classes from the Gradle library. This could be caused by a gradle version issue. Try looking on the site wiki for “gradle issue” - I think there may have been a solution for this… Just thought I’d try to help real quick.
Sorry, I’ve turned my attention away for the time being since there is no more new development going on in NuPIC proper. I was waiting for community code to be “cut-over” to the official repo if it was “approved”… Otherwise, I have nothing “official” to implement. So I wouldn’t classify the documentation as “falling behind” - because there is no new dev.
HTM.Java is an “open” project which depends on volunteers for its development, so please feel free to contribute what you can… I and/or others in the forum will continue to answer whatever questions we can, and have time for as you begin to familiarize yourself with the code. I would suggest first implementing your own tests to duplicate some of the functionality, and then try assembling an implementation of your own project.
Write us back here with specific questions when you’re able…