New version

Thomas Bereknyei tomberek at gmail.com
Fri Jan 29 15:09:14 EST 2010


To all:

I'm still working on that code, but I am new to Haskell so I'm sure
there is a better way.  My thinking was along these lines:

Set up an interface to directed graph structure were we can specify:
Nodes: via their activation function and how they combine incoming
edges. Ex (sigmoid, sum $ zipWith (*))

Nets: via a way to evaluate them.  Eg, update all nodes, or keep track
of the wave of propagation of a changed input.

And also allow different types to be used. (I want to allow anything
from Bool, to Double, to even a function)

We'll then provide standard implementations.  If anyone knows of a
better way to code this idea, or have a better idea to begin with..
please let me know.

Alp: Remember our idea to use graph structure and then an IntMap of
the nodes to store the values? That's EXACTLY the implementation in
Data.Graph.Inductive.PatriciaTree
Performance of Data.Graph.Inductive.Tree is 10,000 full evaluations of
a 23 node tree takes around 4 seconds on my 2ghz dual core on ghci
(only one core is used during it).

-Thomas



More information about the Hnn mailing list