[ 
https://issues.apache.org/jira/browse/MATH-1267?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14736656#comment-14736656
 ] 

Gilles commented on MATH-1267:
------------------------------

Referring to the nested, nested, nested comment :)
I think that we don't exactly speak about the same "concepts".  "Visual" 
doesn't directly relate to any sort of GUI meant to interact with or display 
the Java data structure representing an ANN.  It just happen that a (Kohonen) 
2D map is an often used layout because it is straightforward to _see_ some of 
its properties.
I wanted to keep {{NeuronSquareMesh2D}} separate from the ANN-related classes 
because it is really not tied to the ANN concept; it is "only" a helper class 
to make it easy to implement the code that computes some of the properties of a 
network that would happen to be a 2D-map. 
The training, for example, is totally indepent of the network layout (it should 
only relate to the "links" between {{Neuron}} instances).

There is _nothing_ "visual" in a {{Neuron}} and that it may belong to 2D-map is 
irrelevant.

Also, as you pointed out, a 2D-map could have another layout (e.g. hexagonal), 
and the (row, column) would not provide a satisfactory "coordinate system"...  
And even more so with a non-uniform density of neurons.
So {{NeuronSquareMesh2D}} is limited to square-neighbourhood 2D maps of uniform 
density.  (Rather than build on it, it might be interesting to implement 
alternate layouts for 2D maps.  Or perhaps 3D-maps...  Or maybe that looking at 
how to implement an adaptive 2D-map.)

bq. Once the Network is ready, it could be dropped into a NeuronSquareMesh2D 
constructor. 

The neurons and links between them are managed in the {{Network}} class; hence 
it's possible to create any kind of network topologies (having nothing to do 
with a 2D-plane layout). "Dropping" such a network would be inconsistent with 
the assumptions of {{NeuronSquareMesh2D}}.
Currently, {{NeuronSquareMesh2D}} builds a {{Network}} that locally has a plane 
structure (by construction).


> Grid coordinate of "Neuron" that belongs to a "NeuronSquareMesh2D"
> ------------------------------------------------------------------
>
>                 Key: MATH-1267
>                 URL: https://issues.apache.org/jira/browse/MATH-1267
>             Project: Commons Math
>          Issue Type: Wish
>            Reporter: Gilles
>            Assignee: Gilles
>            Priority: Minor
>             Fix For: 4.0, 3.6
>
>         Attachments: LocationFinder.java
>
>
> When the network layout is a 2D grid, it useful to be able to retrieve the 
> grid coordinate (row, column) of a a neuron.
> I propose to define a new class "LocationFinder" (in package 
> "o.a.c.m.ml.neuralnet.twod.util") that will provide the functionality through 
> a "getLocation(Neuron n)" method.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to