Class Network
java.lang.Object
org.apache.commons.math3.ml.neuralnet.Network
- All Implemented Interfaces:
Serializable
,Iterable<Neuron>
Neural network, composed of
Neuron
instances and the links
between them.
Although updating a neuron's state is thread-safe, modifying the
network's topology (adding or removing links) is not.- Since:
- 3.3
- See Also:
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic class
Comparator that prescribes an order of the neurons according to the increasing order of their identifier. -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoid
Adds a link from neurona
to neuronb
.copy()
Performs a deep copy of this instance.long
createNeuron
(double[] features) Creates a neuron and assigns it a unique identifier.void
deleteLink
(Neuron a, Neuron b) Deletes the link between neuronsa
andb
.void
deleteNeuron
(Neuron neuron) Deletes a neuron.int
Gets the size of the neurons' features set.getNeighbours
(Iterable<Neuron> neurons) Retrieves the neurons in the neighbourhood of any neuron in theneurons
list.getNeighbours
(Iterable<Neuron> neurons, Iterable<Neuron> exclude) Retrieves the neurons in the neighbourhood of any neuron in theneurons
list.getNeighbours
(Neuron neuron) Retrieves the neighbours of the given neuron.getNeighbours
(Neuron neuron, Iterable<Neuron> exclude) Retrieves the neighbours of the given neuron.getNeuron
(long id) Retrieves the neuron with the given (unique)id
.getNeurons
(Comparator<Neuron> comparator) Creates a list of the neurons, sorted in a custom order.iterator()
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface java.lang.Iterable
forEach, spliterator
-
Constructor Details
-
Network
public Network(long initialIdentifier, int featureSize) - Parameters:
initialIdentifier
- Identifier for the first neuron that will be added to this network.featureSize
- Size of the neuron's features.
-
-
Method Details
-
copy
Performs a deep copy of this instance. Upon return, the copied and original instances will be independent: Updating one will not affect the other.- Returns:
- a new instance with the same state as this instance.
- Since:
- 3.6
-
iterator
-
getNeurons
Creates a list of the neurons, sorted in a custom order.- Parameters:
comparator
-Comparator
used for sorting the neurons.- Returns:
- a list of neurons, sorted in the order prescribed by the
given
comparator
. - See Also:
-
createNeuron
public long createNeuron(double[] features) Creates a neuron and assigns it a unique identifier.- Parameters:
features
- Initial values for the neuron's features.- Returns:
- the neuron's identifier.
- Throws:
DimensionMismatchException
- if the length offeatures
is different from the expected size (as set by theconstructor
).
-
deleteNeuron
Deletes a neuron. Links from all neighbours to the removed neuron will also bedeleted
.- Parameters:
neuron
- Neuron to be removed from this network.- Throws:
NoSuchElementException
- ifn
does not belong to this network.
-
getFeaturesSize
public int getFeaturesSize()Gets the size of the neurons' features set.- Returns:
- the size of the features set.
-
addLink
Adds a link from neurona
to neuronb
. Note: the link is not bi-directional; if a bi-directional link is required, an additional call must be made witha
andb
exchanged in the argument list.- Parameters:
a
- Neuron.b
- Neuron.- Throws:
NoSuchElementException
- if the neurons do not exist in the network.
-
deleteLink
Deletes the link between neuronsa
andb
.- Parameters:
a
- Neuron.b
- Neuron.- Throws:
NoSuchElementException
- if the neurons do not exist in the network.
-
getNeuron
Retrieves the neuron with the given (unique)id
.- Parameters:
id
- Identifier.- Returns:
- the neuron associated with the given
id
. - Throws:
NoSuchElementException
- if the neuron does not exist in the network.
-
getNeighbours
Retrieves the neurons in the neighbourhood of any neuron in theneurons
list.- Parameters:
neurons
- Neurons for which to retrieve the neighbours.- Returns:
- the list of neighbours.
- See Also:
-
getNeighbours
Retrieves the neurons in the neighbourhood of any neuron in theneurons
list. Theexclude
list allows to retrieve the "concentric" neighbourhoods by removing the neurons that belong to the inner "circles".- Parameters:
neurons
- Neurons for which to retrieve the neighbours.exclude
- Neurons to exclude from the returned list. Can benull
.- Returns:
- the list of neighbours.
-
getNeighbours
Retrieves the neighbours of the given neuron.- Parameters:
neuron
- Neuron for which to retrieve the neighbours.- Returns:
- the list of neighbours.
- See Also:
-
getNeighbours
Retrieves the neighbours of the given neuron.- Parameters:
neuron
- Neuron for which to retrieve the neighbours.exclude
- Neurons to exclude from the returned list. Can benull
.- Returns:
- the list of neighbours.
-