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

Reply via email to