Method for Training Neural Networks
First Claim
1. A method for training an artificial neural network, said method comprising:
- (i) initialising the neural network by selecting an output of the neural network to be trained and connecting an output neuron of the neural network to input neuron(s) in an input layer of the neural network for the selected output;
(ii) preparing a data set to be learnt by the neural network; and
(iii) applying the prepared data set to the neural network to be learnt by applying an input vector of the prepared data set to a first hidden layer of the neural network, or an output layer of the neural network if the neural network has no hidden layer(s), and determining whether at least one neuron for the selected output in each layer of the neural network can learn to produce the associated output for the input vector, wherein;
if at least one neuron for the selected output in each layer of the neural network can learn to produce the associated output for the input vector, and if there are more input vectors of the prepared data set to learn, repeat (iii) for the next input vector, else repeat (i) to (iii) for the next output of the neural network if there are more outputs to be trained;
if no neuron in a hidden layer for the selected output of the neural network can learn to produce the associated output for the input vector, a new neuron is added to that layer to learn the associated output which could not be learnt by any other neurons in that layer for the selected output, and if there are more input vectors of the data set to learn, repeat (iii) for the next input vector, else repeat (i) to (iii) for the next output of the neural network if there are more outputs to be trained;
if the output neuron for the selected output of the neural network cannot learn to produce the associated output for the input vector, that output neuron becomes a neuron of a hidden layer of the neural network, a new neuron is added to this hidden layer to learn the associated output which could not be learnt by the output neuron, and a new output neuron is added to the neural network for the selected output, and if there are more input vectors of the data set to learn, repeat (iii) for the next input vector, else repeat (i) to (iii) for the next output of the neural network if there are more outputs to be trained.
0 Assignments
0 Petitions
Accused Products
Abstract
The present invention provides a method (30) for training an artificial neural network (NN). The method (30) includes the steps of: initialising the NN by selecting an output of the NN to be trained and connecting an output neuron of the NN to input neuron(s) in an input layer of the NN for the selected output; preparing a data set to be learnt by the NN; and, applying the prepared data set to the NN to be learnt by applying an input vector of the prepared data set to the first hidden layer of the NN, or the output layer of the NN if the NN has no hidden layer(s), and determining whether at least one neuron for the selected output in each layer of the NN can learn to produce the associated output for the input vector. If none of the neurons in a layer of the NN can learn to produce the associated output for the input vector, then a new neuron is added to that layer to learn the associated output which could not be learnt by any other neuron in that layer. The new neuron has its output connected to all neurons in next layer that are relevant to the output being trained. If an output neuron cannot learn the input vector, then another neuron is added to the same layer as the current output neuron and all inputs are connected directly to it. This neuron learns the input the old output could not learn. An additional neuron is added to the next layer. The inputs to this neuron are the old output of the NN, and the newly added neuron to that layer.
-
Citations
23 Claims
-
1. A method for training an artificial neural network, said method comprising:
-
(i) initialising the neural network by selecting an output of the neural network to be trained and connecting an output neuron of the neural network to input neuron(s) in an input layer of the neural network for the selected output; (ii) preparing a data set to be learnt by the neural network; and (iii) applying the prepared data set to the neural network to be learnt by applying an input vector of the prepared data set to a first hidden layer of the neural network, or an output layer of the neural network if the neural network has no hidden layer(s), and determining whether at least one neuron for the selected output in each layer of the neural network can learn to produce the associated output for the input vector, wherein; if at least one neuron for the selected output in each layer of the neural network can learn to produce the associated output for the input vector, and if there are more input vectors of the prepared data set to learn, repeat (iii) for the next input vector, else repeat (i) to (iii) for the next output of the neural network if there are more outputs to be trained; if no neuron in a hidden layer for the selected output of the neural network can learn to produce the associated output for the input vector, a new neuron is added to that layer to learn the associated output which could not be learnt by any other neurons in that layer for the selected output, and if there are more input vectors of the data set to learn, repeat (iii) for the next input vector, else repeat (i) to (iii) for the next output of the neural network if there are more outputs to be trained; if the output neuron for the selected output of the neural network cannot learn to produce the associated output for the input vector, that output neuron becomes a neuron of a hidden layer of the neural network, a new neuron is added to this hidden layer to learn the associated output which could not be learnt by the output neuron, and a new output neuron is added to the neural network for the selected output, and if there are more input vectors of the data set to learn, repeat (iii) for the next input vector, else repeat (i) to (iii) for the next output of the neural network if there are more outputs to be trained. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18)
-
-
19. A method for adding a new neuron into a layer of a neural network during training, the new neuron being added to the neural network when no other neuron in that layer for the selected output can learn a relationship associated with an input vector of a data set being learnt, said method including:
-
updating the new neuron with a copy of all the modified data from a previous last neuron that contributes to the selected output of the neural network in that layer and the relationship which could not be learnt by any other neuron in that layer; and
,updating the output neuron(s) to accept input from the new neuron. - View Dependent Claims (20, 21, 22)
-
-
23-39. -39. (canceled)
Specification