Jeff, I followed an hybrid way: I wrote my own implementation from scratch but in tricky parts I took a look in third implementations to get better understanding of them but even so implementating in my fashion..
On 16 April 2015 at 14:58, Chandan Maruthi <[email protected]> wrote: > Btw, I thought the whitepaper was being updated, Does anyone have a idea > about an updated whitepaper? > > On Thu, Apr 16, 2015 at 10:54 AM, Alexander Kettinen < > [email protected]> wrote: > >> My process was as follows: >> >> 1. read WP/Pseudocode >> 2. read/hack/break actual code >> 3. Create a Software Design Document that implements your understanding >> of the solution >> 4. Implement your SDD >> 5. Compare the two >> 6. Refactor >> 7. Refactor >> 8. Experiment with new insights and ideas >> 9. Refactor >> ... >> loop 6,7,8,9 Ad Nauseam >> >> >> 2015-04-16 19:49 GMT+02:00 Dillon Bender <[email protected]>: >> >>> This was the route I took. >>> >>> >>> >>> I’m still in the process of creating my own application of the >>> algorithms (not going into detail of that). I wrote my implementation of >>> the algorithms from scratch in C++ in a Linux VM and compiled them into one >>> shared library object that I am designing as a sort of “libhtm” interface >>> for the application. I definitely did more than reimplement the underlying >>> learning algorithms of NuPIC; probably more along the lines of >>> reimplementing NuPIC itself. But I figured this was the easiest and most >>> beneficial way for me to integrate an HTM library into my own application >>> and truly learn the algorithms themselves. >>> >>> >>> >>> There have been two main problems for me. The first is actually testing >>> my implementation along different points of development and determining how >>> well it works. I had to develop a UI and all for visualizing the algorithms >>> and tests. The second is trying to figure out exactly the right way to go >>> about the implementation for optimization and simplicity. I ended up >>> refactoring the entire project once or two. But that is bound to happen >>> with a development team of one. NuPIC has many, many hacks within it and >>> for good reason. I had to rediscover the hacks myself, and probably my own >>> unique ones. >>> >>> >>> >>> I don’t regret recreating it all from scratch one bit. I feel like I >>> would get the sense that there was something I am missing if I just tried >>> to improve or enhance someone else’s work. If you would rather not spend a >>> considerable amount of time building your own foundation, then maybe >>> reconsider doing what I did. >>> >>> >>> >>> Suid >>> >>> >>> >>> >>> >>> *From:* nupic [mailto:[email protected]] *On Behalf Of *Jeff >>> Fohl >>> *Sent:* Thursday, April 16, 2015 12:27 PM >>> *To:* Dillon Bender >>> *Subject:* How best to learn HTM algorithms by implementing them? >>> >>> >>> >>> I am interested in learning the HTM algorithms at a deeper level by >>> writing my own implementation. The language I am currently work with most >>> frequently is Javascript, so I was planning on doing my implementation in >>> that language. >>> >>> >>> >>> My question for those who have gone this route already is: if the >>> primary goal of the exercise is a deeper understanding of the algorithms, >>> is it best to start from scratch, implementing the pseudocode as described >>> in the white paper, or is porting an existing implementation - such as >>> htm.java more fruitful? >>> >>> >>> >>> - Jeff >>> >> >> > > > -- > Regards > Chandan Maruthi > > -- David Ragazzi MSc in Sofware Engineer (University of Liverpool) OS Community Commiter at Numenta.org -- "I think James Connolly, the Irish revolutionary, is right when he says that the only prophets are those who make their future. So we're not anticipating , we're working for it."
