[erlang-questions] Question about some Erlang code in Handbook of Neuroevolution Through Erlang.

Ivan Uemlianin ivan@REDACTED
Thu Jul 4 11:55:26 CEST 2013

Dear Yves

Sorry if this doesn't answer your question.

The module constructor.erl creates a neural network Genotype which is a 
specification for a Phenotype (using the terminology of the book).  The 
Phenotype is the actual neural network.  Evolution is simulated by 
mutating Genotypes and so generating slightly different populations of 

The output of constructor:construct_Genotype/4 is a list of records 
representing a kind of directed graph.  The next section (6.6 Developing 
the Genotype to Phenotype Mapping Module) introduces an exoself.erl 
module which uses the Genotype specification to generate Phenotypes (and 
which will also generate a Genotype from a given Phenotype).

The create_Neuro* functions (starting with create_NeuroLayers/4) use the 
given HiddenLayerDensities list to create a list of neuron records. 
Each neuron lists the ids of its input and output neurons (including 
sensors and actuators where appropriate).

Does that help?


On 03/07/2013 19:53, Yves S. Garret wrote:
> Hello all,
> I recently got this book, listed here:
> http://www.amazon.com/Handbook-Neuroevolution-Through-Erlang-Gene/dp/1461444624
> The topic intrigues me, because it makes so much sense to try to design
> artificial
> neural networks with Erlang (a point that the author makes very well in
> the book).
> I got to chapter 6 and this is the code that I have for
> constructor.erl.  Now, I'm going
> through the create_NeuroLayers/4 and... I don't see the connection
> between what's
> written and artificial neural networks...
> The code:
> http://bin.cakephp.org/view/1946842426
> I don't want to bash the author, but I'm really not "getting" what he's
> describing.  For example, this description:
> The function create_NeuroLayers/3 prepares the initial step before
> starting the recursive cre-
> ate_NeuroLayers/7 function which will create all the Neuron records. We
> first generate the
> place holder Input Ids “Plus”(Input_IdPs), which are tuples composed of
> Ids and the vector
> lengths of the incoming signals associated with them. The proper
> input_idps will have a weight [me: but we haven't assigned the weight,
> have we?]
> list in the tuple instead of the vector length. Because we are only
> building NNs each with only a
> single Sensor and Actuator, the IdP to the first layer is composed of
> the single Sensor Id with
> the vector length of its sensory signal, likewise in the case of the
> Actuator. We then generate
> unique ids for the neurons in the first layer, and drop into the
> recursive create_NeuroLayers/7
> function.
> Thanks in advance.
> _______________________________________________
> erlang-questions mailing list
> erlang-questions@REDACTED
> http://erlang.org/mailman/listinfo/erlang-questions

Ivan A. Uemlianin PhD
Speech Technology Research and Development


                         festina lente

More information about the erlang-questions mailing list