← Back to Patent Explorer
US5214746A Expired / Lapsed US ⏱️ 0.0 years remaining

Method and apparatus for training a neural network using evolutionary programming

Assignee: Lockheed Martin Corp
•
Filing: 1991-06-17
•
Granted: 1993-05-25
•
Expires: 2011-06-17
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract A method and apparatus for training neural networks using evolutionary programming. A network is adjusted to operate in a weighted configuration defined by a set of weight values and a plurality of training patterns are input to the network to generate evaluations of the training patterns as network outputs. Each evaluation is compared to a desired output to obtain a corresponding error. From all of the errors, an overall error value corresponding to the set of weight values is determined. The above steps are repeated with different weighted configurations to obtain a plurality of overall error values. Then, for each set of weight values, a score is determined by selecting error comparison values from a predetermined variable probability distribution and comparing them to the corresponding overall error value. A predetermined number of the sets of weight values determined to have the best scores are selected and copies are made. The copies are mutated by adding random numbers to their weights and the above steps are repeated with the best sets and the mutated copies defining the weighted configurations. This procedure is repeated until the overall error values diminish to below an acceptable threshold. The random numbers added to the weight values of copies are obtained from a continuous random distribution of numbers having zero mean and variance determined such that it would be expected to converge to zero as the different sets of weight values in successive iterations converge toward sets of weight values yielding the desired neural network performance.

Inventors

  • 👤 David B. Fogel
  • 👤 Lawrence J. Fogel

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-11-09 14:16
CPC Classifications
G; G06; G06N; G06N3/00; G06N3/02; G06N3/08; G06N3/086

Claims Analysis

Total Claims: 41
Claim 1
Independent Claim 476 words
A method of training a neural network to evaluate data, comprising the steps of: (a) configuring a neural network having a plurality of interconnected nodes including an input layer and an output layer, said neutral network being capable of receiving training patterns at said input layer and operative in a plurality of different weighted configurations, each defined by a different set of weight values; (b) selecting a set of weight values and adjusting the network to operate in a weighted configuration defined by said set of weight values, and inputting each of a plurality of training patterns to said input layer to generate respective evaluations of the training patterns as outputs of the network at said output layer; (c) comparing each evaluation of a respective training pattern to a desired output of the network to obtain a corresponding error; (d) determining from all of the errors obtained in said step (c) an overall error value corresponding to the set of weight values; (e) repeating said steps (b), (c) and (d) a plurality of times, each time with a different weighted configuration defined by a respective different set of weight values, to obtain a plurality of overall error values; (f) for each of said sets of weight values, determining a score by selecting respective error comparison values from a predetermined variable probability distribution and comparing thereto the corresponding overall error value; (g) selecting a predetermined number of the sets of weight values determined to have the best scores; (h) generating copies of the sets of weight values selected in said step (g); (i) for each of the copies, perturbing the weight values thereof generated in said step (h) by adding random numbers to the weight values to create a new set of weight values, the random numbers being obtained randomly from a continuous random distribution of number having a mean of zero and a variance which is a function of the overall error value determined for the set of weight values from which the copy was generated; (j) incrementing a counter each time said steps (b) through (i) are performed, wherein said steps (b) through (e) are performed with at least the weighted configurations defined by the new sets of weight values created in the immediately preceding said step (i), and said steps (f) through (i) are performed with the sets of eight values selected in the immediately preceding said step (g) and with the new sets of weight values created in the immediately preceding said step (i) until the counter reaches a maximum count value; (k) selecting, once the counter reaches the maximum count value, the set of weight values having a final best score as determined in step (g); and (l) configuring the neural network to have the plurality of nodes interconnected in accordance with the set of weight values having the final best score.
Claim 2
Independent Claim 476 words
A method of training a neural network to evaluate data, comprising the steps of: (a) configuring a neural network having a plurality of interconnected nodes including an input layer and an output layer, said neutral network being capable of receiving training patterns at said input layer and operative in a plurality of different weighted configurations, each defined by a different set of weight values; (b) selecting a set of weight values and adjusting the network to operate in a weighted configuration defined by said set of weight values, and inputting each of a plurality of training patterns to said input layer to generate respective evaluations of the training patterns as outputs of the network at said output layer; (c) comparing each evaluation of a respective training pattern to a desired output of the network to obtain a corresponding error; (d) determining from all of the errors obtained in said step (c) an overall error value corresponding to the set of weight values; (e) repeating said steps (b), (c) and (d) a plurality of times, each time with a different weighted configuration defined by a respective different set of weight values, to obtain a plurality of overall error values; (f) for each of said sets of weight values, determining a score by selecting respective error comparison values from a predetermined variable probability distribution and comparing thereto the corresponding overall error value; (g) selecting a predetermined number of the sets of weight values determined to have the best scores; (h) generating copies of the sets of weight values selected in said step (g); (i) for each of the copies, perturbing the weight values thereof generated in said step (h) by adding random numbers to the weight values to create a new set of weight values, the random numbers being obtained randomly from a continuous random distribution of number having a mean of zero and a variance which is a function of the overall error value determined for the set of weight values from which the copy was generated; (j) incrementing a counter each time said steps (b) through (i) are performed, wherein said steps (b) through (e) are performed with at least the weighted configurations defined by the new sets of weight values created in the immediately preceding said step (i), and said steps (f) through (i) are performed with the sets of eight values selected in the immediately preceding said step (g) and with the new sets of weight values created in the immediately preceding said step (i) until the counter reaches a maximum count value; (k) selecting, once the counter reaches the maximum count value, the set of weight values having a final best score as determined in step (g); and (l) configuring the neural network to have the plurality of nodes interconnected in accordance with the set of weight values having the final best score.
Claim 3
Dependent Claim 83 words
A method of training a neural network according to claim 1, wherein said step (f) includes the steps of randomly selecting a subquantity of the plurality of overall error values determined in said steps (b), (c), (d), and (e), comparing each of the plurality of overall error values to each overall error value of the randomly selected subquantity, and scoring each set of weight values according to the comparisons of the corresponding overall error values with the overall error values of the subquantity.
Claim 4
Dependent Claim 41 words
A method of training a neural network according to claim 2, wherein all of the comparisons performed in said step of comparing are performed in parallel and all of the scoring performed in said step of scoring are performed in parallel.
Claim 5
Dependent Claim 34 words
A method of training a neural network according to claim 1, wherein said step (d) comprises determining a mean square error value corresponding to the set of weight values as the overall error value.
Claim 6
Dependent Claim 40 words
A method of training a neural network according to claim 4, wherein said step (i) includes perturbing the weight values by adding random numbers thereto obtained from a Gaussian distribution whose variance is proportional to the mean square error value.
Claim 7
Dependent Claim 79 words
A method for training a neural network according to claim 1, wherein said step (i) includes, for each copy generated in said step (h), the step of generating a random distribution of numbers having a mean of zero and a variance which is proportional to the overall error value corresponding to said each copy, and adding to each weight value of said copy a number randomly selected from said random distribution to create said new sets of weight values.
Claim 8
Dependent Claim 37 words
A method of training a neural network according to claim 6, wherein said step of generating a random distribution of numbers comprises generating a Gaussian distribution of numbers whose variance is proportional to the overall error value.
Claim 9
Dependent Claim 47 words
A method of training a neural network according to claim 1, wherein said step (g) includes selecting a number of sets of weight values equal to one plus one half of the number of times that steps (b), (c) and (d) are repeated according to step (e).
Claim 10
Dependent Claim 104 words
A method of training a neural network according to claim 1, wherein said neural network comprises a plurality of neural networks equal in number to the number of training patterns, each neural network being capable of receiving training patterns and operative in a plurality of different weighted configurations, and wherein in said step (b), the training patterns are input to respective ones of said neural networks in parallel and evaluated in parallel to generate the evaluations of the respective training patterns in parallel, and in said step (c), the evaluations are compared to respective desired outputs in parallel to obtain corresponding errors in parallel.
Claim 11
Dependent Claim 34 words
A method of training a neural network according to claim 9, wherein in said step (b), for each network, the weighted configuration is adjusted by adjusting all of the weight values thereof in parallel.
Claim 12
Dependent Claim 40 words
A method of training a neural network according to claim 9, wherein the repetitions of said steps (b), (c) and (d) a plurality of times, each time with a different weighted configuration, in said step (e) are performed in parallel.
Claim 13
Dependent Claim 25 words
A method of training a neural network according to claim 11, wherein the scoring of said sets in said step (f) are performed in parallel
Claim 14
Dependent Claim 22 words
A method of training a neural network according to claim 12, wherein the sets are copied in parallel in said step (h).
Claim 15
Dependent Claim 22 words
A method of training a neural network according to claim 13, wherein the copies are mutated in parallel in said step (i).
Claim 16
Dependent Claim 26 words
A method of training a neural network according to claim 14, wherein the weight values of each set are copied in parallel in said step (h).
Claim 17
Dependent Claim 26 words
A method of training a neural network according to claim 15, wherein the weight values of each copy are mutated in parallel in said step (i).
Claim 18
Dependent Claim 39 words
A method of training a neural network according to claim 1, wherein the repetitions of said steps (b), (c) and (d) a plurality of times, each time with a different weighted configuration, in step (e) are performed in parallel.
Claim 19
Dependent Claim 25 words
A method of training a neural network according to claim 1, wherein the scoring of said sets in said step (f) is performed in parallel.
Claim 20
Independent Claim 501 words
A method of training a neural network, comprising the steps of: (a) configuring a neural network having a plurality of interconnected nodes including an input layer and an output layer, said neural network being capable of receiving data and operative in a plurality of different weighted configurations, each defined by a different set of weight values; (b) adjusting the network to operate in a weighted configuration defined by a set of weight values, and inputting each of a plurality of training patterns to the network to generate evaluations of the respective training patterns; (c) comparing each evaluation to a respective training pattern to a desired output to obtain a corresponding error; (d) determining from all of the errors obtained in said step (c) an overall error value corresponding to the set of weight values; (e) repeating said steps (b), (c) and (d) a plurality of times, each time with a different weighted configuration defined by a respective different set of weight values, to obtain a plurality of overall error values; (f) for each of said sets of weight values, determining a score by selecting respective error comparison values from a predetermined variable probability distribution and comparing thereto the corresponding overall error value; (g) selecting a predetermined number of the sets of weight values determined to have the best scores; (h) generating copies of the sets of weight values selected in said step (g); (i) for each of the copies, (1) generating random numbers from respective continuous random number distributions having a means of zero and having finite variances and (2) mutating the weight values of the copies by adding the random numbers to the weight values, thereby creating new sets of weight values forming progeny of the sets of weight values selected in said step (g); (j) incrementing a counter each time said steps (b) through (i) are performed until the counter reaches a maximum count value, wherein said steps (b) through (e) are performed with at least the weighted configurations defined by the new sets of weight values created in the immediately preceding said step (i), and said steps (f) through (i) are performed with the sets of weight values selected in the immediately preceding said step (g) and with the new sets of weight values created in the immediately preceding said step (i), each said repetition of said step (i1) including the step of selecting by a stochastic process which is independent of the weight values obtained in any preceding performance of said step (i), the variances of the continuous random number distributions from which the random numbers added to weight values of the sets of weight values to create said progeny in said step (i2) are selected; (k) selecting, once the counter reaches the maximum count value, the set of weight values having a final best score as determined in step (g); and (l) configuring the neural network to have the plurality of nodes interconnected in accordance with the set of weight values having the final best score.
Claim 21
Independent Claim 501 words
A method of training a neural network, comprising the steps of: (a) configuring a neural network having a plurality of interconnected nodes including an input layer and an output layer, said neural network being capable of receiving data and operative in a plurality of different weighted configurations, each defined by a different set of weight values; (b) adjusting the network to operate in a weighted configuration defined by a set of weight values, and inputting each of a plurality of training patterns to the network to generate evaluations of the respective training patterns; (c) comparing each evaluation to a respective training pattern to a desired output to obtain a corresponding error; (d) determining from all of the errors obtained in said step (c) an overall error value corresponding to the set of weight values; (e) repeating said steps (b), (c) and (d) a plurality of times, each time with a different weighted configuration defined by a respective different set of weight values, to obtain a plurality of overall error values; (f) for each of said sets of weight values, determining a score by selecting respective error comparison values from a predetermined variable probability distribution and comparing thereto the corresponding overall error value; (g) selecting a predetermined number of the sets of weight values determined to have the best scores; (h) generating copies of the sets of weight values selected in said step (g); (i) for each of the copies, (1) generating random numbers from respective continuous random number distributions having a means of zero and having finite variances and (2) mutating the weight values of the copies by adding the random numbers to the weight values, thereby creating new sets of weight values forming progeny of the sets of weight values selected in said step (g); (j) incrementing a counter each time said steps (b) through (i) are performed until the counter reaches a maximum count value, wherein said steps (b) through (e) are performed with at least the weighted configurations defined by the new sets of weight values created in the immediately preceding said step (i), and said steps (f) through (i) are performed with the sets of weight values selected in the immediately preceding said step (g) and with the new sets of weight values created in the immediately preceding said step (i), each said repetition of said step (i1) including the step of selecting by a stochastic process which is independent of the weight values obtained in any preceding performance of said step (i), the variances of the continuous random number distributions from which the random numbers added to weight values of the sets of weight values to create said progeny in said step (i2) are selected; (k) selecting, once the counter reaches the maximum count value, the set of weight values having a final best score as determined in step (g); and (l) configuring the neural network to have the plurality of nodes interconnected in accordance with the set of weight values having the final best score.
Claim 22
Dependent Claim 93 words
A method of training a neural network according to claim 19, wherein said step (f) includes the steps of randomly selecting a subquantity of the plurality of overall error values determined in said steps (b), (c), (d), and (e), comparing each of the plurality of overall error values to each of the overall error values in said subquantity, scoring each set of weight values according to the comparisons of the corresponding overall error values with the overall error values of the subquantity, and selecting the sets of weight values having the best scores.
Claim 23
Dependent Claim 34 words
A method of training a neural network according to claim 19, wherein said step (d) comprises determining a mean square error value corresponding to the set of weight values as the overall error value.
Claim 24
Dependent Claim 175 words
A method of training a neural network according to claim 19, wherein for any new set of weight values created in said immediately preceding said step (i), which is a progeny of a set of weight values created in a still earlier repetition of said step (i), the step of selecting the variance in said step (i1) includes the steps of: (i1a) selecting a number from a random distribution of zero mean and a variance which is a function of the variance of the continuous random number distribution from which the random numbers added to weight values of a set of weight values to create said progeny in said still earlier repetition of said step (i) were selected; and (i1b) adding together (A) said variance of the continuous random number distribution from which the random numbers added to weight values of a set of weight values to create said progeny in said still earlier repetition of said step (i) were selected and (B) the number selected in said step (i1a) to obtain the selected variance.
Claim 25
Dependent Claim 75 words
A method of training a neural network according to claim 22, wherein said step (i1a) includes the step of selecting the number from a Gaussian distribution of zero mean and a variance which is a proportional to the variance of the continuous random number distribution from which the random numbers added to weight values of a set of weight values to create said progeny in said still earlier repetition of said step (i) were selected.
Claim 26
Dependent Claim 46 words
A method of training a neural network according to claim 19, wherein the predetermined number of the sets of weight values selected in said step (g) is equal to one plus half of the number of times that steps (b)-(d) are repeated according to step (e).
Claim 27
Dependent Claim 104 words
A method of training a neural network according to claim 19, wherein said neural network comprises a plurality of neural networks equal in number to the number of training patterns, each neural network being capable of receiving training patterns and operative in a plurality of different weighted configurations, and wherein in said step (b), the training patterns are input to respective ones of said neural networks in parallel and evaluated in parallel to generate the evaluations of the respective training patterns in parallel, and in said step (c), the evaluations are compared to respective desired outputs in parallel to obtain corresponding errors in parallel.
Claim 28
Dependent Claim 39 words
A method of training a neural network according to claim 25, wherein the repetitions of said steps (b), (c) and (d) a plurality of times, each time with a different weighted configuration, in step (e) are performed in parallel.
Claim 29
Dependent Claim 25 words
A method of training a neural network according to claim 26, wherein the scoring of said sets in said step (f) are performed in parallel.
Claim 30
Dependent Claim 22 words
A method of training a neural network according to claim 27, wherein the sets are copied in parallel in said step (h).
Claim 31
Dependent Claim 22 words
A method of training a neural network according to claim 28, wherein the copies are mutated in parallel in said step (i).
Claim 32
Dependent Claim 26 words
A method of training a neural network according to claim 28, wherein the weight values of each set are copied in parallel in said step (h).
Claim 33
Dependent Claim 26 words
A method of training a neural network according to claim 30, wherein the weight values of each copy are mutated in parallel in said step (i).
Claim 34
Dependent Claim 34 words
A method of training a neural network according to claim 25, wherein in said step (b), for each network, the weighted configuration is adjusted by adjusting all of the weight values thereof in parallel.
Claim 35
Dependent Claim 39 words
A method of training a neural network according to claim 19, wherein the repetitions of said steps (b), (c) and (d) a plurality of times, each time with a different weighted configuration, in step (e) are performed in parallel.
Claim 36
Dependent Claim 25 words
A method of training a neural network according to claim 19, wherein the scoring of said sets in said step (f) are performed in parallel.
Claim 37
Dependent Claim 41 words
A method of training a neural network according to claim 19, wherein all of the comparisons performed in said step of comparing are performed in parallel and all of the scoring performed in said step of scoring is performed in parallel.
Claim 38
Dependent Claim 330 words
A neural network training apparatus, comprising: (a) a plurality of neural networks each capable of receiving data and operative in a plurality of different weighted configurations, each configuration defined by a different set of weight values; (b) means for adjusting each network to operate in different weighted configurations defined by a corresponding different set of weight values; (c) means, responsive to an application of a plurality of training patterns to each of the networks, for generating respective evaluations of the training patterns from each of the networks as outputs of the networks; (d) means for comparing the evaluations of the training patterns to corresponding desired outputs of the networks to obtain corresponding errors; (e) means for determining from all of the errors obtained from said comparing means overall error values corresponding to the sets of weight values; (f) for each of said sets of weight values, means for determining a score by selecting respective error comparison values from a predetermined variable probability distribution and comparing thereto the corresponding overall error value; (g) means for selecting a predetermined number of the sets of weight values determined to have the best scores; (h) means for generating copies of the sets of weight values selected by said selecting means; (i) means for generating, for each weight value of the copies generated by said means for generating copies, a corresponding random number from a continuous random distribution of numbers having a mean of zero and a variance which is a function of the overall error value determined by said overall error generating means for the set of weight values from which the copy which includes said each weight value was generated; and (j) means for mutating the weight values of the copies by adding the corresponding random numbers thereto to create new sets of weight values, said means for adjusting including means for replacing some of the weighted configurations of said network with new weighted configurations based on said new sets of weight values.
Claim 39
Dependent Claim 330 words
A neural network training apparatus, comprising: (a) a plurality of neural networks each capable of receiving data and operative in a plurality of different weighted configurations, each configuration defined by a different set of weight values; (b) means for adjusting each network to operate in different weighted configurations defined by a corresponding different set of weight values; (c) means, responsive to an application of a plurality of training patterns to each of the networks, for generating respective evaluations of the training patterns from each of the networks as outputs of the networks; (d) means for comparing the evaluations of the training patterns to corresponding desired outputs of the networks to obtain corresponding errors; (e) means for determining from all of the errors obtained from said comparing means overall error values corresponding to the sets of weight values; (f) for each of said sets of weight values, means for determining a score by selecting respective error comparison values from a predetermined variable probability distribution and comparing thereto the corresponding overall error value; (g) means for selecting a predetermined number of the sets of weight values determined to have the best scores; (h) means for generating copies of the sets of weight values selected by said selecting means; (i) means for generating, for each weight value of the copies generated by said means for generating copies, a corresponding random number from a continuous random distribution of numbers having a mean of zero and a variance which is a function of the overall error value determined by said overall error generating means for the set of weight values from which the copy which includes said each weight value was generated; and (j) means for mutating the weight values of the copies by adding the corresponding random numbers thereto to create new sets of weight values, said means for adjusting including means for replacing some of the weighted configurations of said network with new weighted configurations based on said new sets of weight values.
Claim 40
Independent Claim 360 words
An apparatus for training a neural network by adjusting weight values repetitive application of training patterns, comprising: (a) a plurality of neural networks each capable of receiving data and operative in a plurality of different weighted configurations, each configuration defined by a different set of weight values; (b) means for adjusting each network to operate in different weighted configurations defined by a corresponding different set of weight values; (c) first generating means, responsive to an application of a plurality of training patterns to each of the networks, for generating respective evaluations of the training patterns from each of the networks as outputs of the networks; (d) means for comparing the evaluations of the training patterns to corresponding desired outputs of the networks to obtain corresponding errors; (e) means for determining from all of the errors obtained from said comparing means overall error values corresponding to the sets of weight values; (f) for each of said sets of weight values, means for determining a score by selecting respective error comparison values from a predetermined variable probability distribution and comparing thereto the corresponding overall error value; (g) means for selecting a predetermined number of the sets of weight values determined to have the best scores; (h) second generating means for generating copies of the sets of weight values selected by said selecting means; (i) third generating means for generating, by a stochastic process which is independent of weight values defining weighted configurations of the neural network, a corresponding variance value for each weight value of each copy generated by said means for generating copies; (j) fourth generating means for generating, for each weight value of each copy generated by said means for generating copies, a corresponding random number from a continuous random distribution of numbers having a mean of zero and a variance generated by said third generating means; and (k) means for mutating the weight values of the copies by adding the corresponding random numbers thereto to create new sets of weight values, said means for adjusting including means for replacing the weighted configurations of some of said networks with new weighted configurations based on said new sets of weight values.
Claim 41
Independent Claim 360 words
An apparatus for training a neural network by adjusting weight values repetitive application of training patterns, comprising: (a) a plurality of neural networks each capable of receiving data and operative in a plurality of different weighted configurations, each configuration defined by a different set of weight values; (b) means for adjusting each network to operate in different weighted configurations defined by a corresponding different set of weight values; (c) first generating means, responsive to an application of a plurality of training patterns to each of the networks, for generating respective evaluations of the training patterns from each of the networks as outputs of the networks; (d) means for comparing the evaluations of the training patterns to corresponding desired outputs of the networks to obtain corresponding errors; (e) means for determining from all of the errors obtained from said comparing means overall error values corresponding to the sets of weight values; (f) for each of said sets of weight values, means for determining a score by selecting respective error comparison values from a predetermined variable probability distribution and comparing thereto the corresponding overall error value; (g) means for selecting a predetermined number of the sets of weight values determined to have the best scores; (h) second generating means for generating copies of the sets of weight values selected by said selecting means; (i) third generating means for generating, by a stochastic process which is independent of weight values defining weighted configurations of the neural network, a corresponding variance value for each weight value of each copy generated by said means for generating copies; (j) fourth generating means for generating, for each weight value of each copy generated by said means for generating copies, a corresponding random number from a continuous random distribution of numbers having a mean of zero and a variance generated by said third generating means; and (k) means for mutating the weight values of the copies by adding the corresponding random numbers thereto to create new sets of weight values, said means for adjusting including means for replacing the weighted configurations of some of said networks with new weighted configurations based on said new sets of weight values.

References Cited (Backward Citations)

US4918618A Cited
US4912652A Cited
US4912649A Cited
US4912655A Cited
US4912651A Cited
US4912654A Cited
US4933871A Cited
US5140530A Cited
US5150450A Cited

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 1996-05-24 1996-11-23 1997-05-25 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2000-05-24 2000-11-23 2001-05-25 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2004-05-24 2004-11-23 2005-05-25 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag