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 classComparator that prescribes an order of the neurons according to the increasing order of their identifier. -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidAdds a link from neuronato neuronb.copy()Performs a deep copy of this instance.longcreateNeuron(double[] features) Creates a neuron and assigns it a unique identifier.voiddeleteLink(Neuron a, Neuron b) Deletes the link between neuronsaandb.voiddeleteNeuron(Neuron neuron) Deletes a neuron.intGets the size of the neurons' features set.getNeighbours(Iterable<Neuron> neurons) Retrieves the neurons in the neighbourhood of any neuron in theneuronslist.getNeighbours(Iterable<Neuron> neurons, Iterable<Neuron> exclude) Retrieves the neurons in the neighbourhood of any neuron in theneuronslist.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, waitMethods 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-Comparatorused 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 offeaturesis 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- ifndoes 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 neuronato neuronb. Note: the link is not bi-directional; if a bi-directional link is required, an additional call must be made withaandbexchanged 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 neuronsaandb.- 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 theneuronslist.- 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 theneuronslist. Theexcludelist 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.
-