[
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)