Method of autonomous machine learning
First Claim
1. A method of generating a classifier for signal classification based on a plurality of classification programs, comprising the steps of:
- (a) operating on a plurality of C types of input signals, each having a known label, with a plurality of classification programs from a population of classification programs to produce a plurality of output values classifying said C types of input signals;
(b) measuring errors in said plurality of output values relative to said known labels;
(c) distributing said plurality of classification programs among C groups where each of said C groups is the best able to classify one of the C types of input signals from other of the C types of input signals;
(d) placing said distributed classification programs into a new population of classification programs in accordance with a first predetermined function;
(e) modifying certain of said plurality of classification programs in said new population;
(f) repeating steps (a) through (e) for a predetermined number of iterations based on predetermined criteria;
(g) selecting those programs from each group that are the best able to classify said input signals associated with said group from all other input signals for inclusion in a hierarchy of C systems, default weights being assigned to each of said selected programs and each of the C systems;
(h) operating on an input signal having a known label with said selected programs to produce a plurality of output values;
(i) determining an output value for each of said C systems by combining the output values from said selected programs within each of said C systems according to a second predetermined function of said output values and the weights of said selected programs;
(j) determining a signal classification output value by combining each of said output values from each of said C systems according to a third predetermined function of said output values and the weights of said C systems;
(k) measuring errors in the output values of said selected programs and said output values of said C systems relative to said known label;
(l) adjusting the weights assigned to each of said selected programs and each of said systems in accordance with the errors relative to said known labels; and
(m) repeating steps (h) through (l) for a number of iterations based on predetermined criteria to generate a classifier.
1 Assignment
0 Petitions
Accused Products
Abstract
A classifier for signal classification based on a plurality of classification signals can be generated in three phases: a training phase, an orchestration phase, and a final classifier phase. In the training phase, genetic programming techniques are used to evolve a population of classification programs to produce a series of groups within the population, each of which is the best able to classify one type of input signal from all other signals. In the orchestration phase, the best programs from each group are selected and placed in a hierarchy of systems, wherein each system contains the best programs that are able to classify one type of input signal from all other signals. Default weights are assigned to each system and each program within a system. Training signals are input into the selected programs, output values for each program and system are generated, and the weights associated with the programs and systems are adjusted. The final classifier is the final hierarchy of systems of selected programs used for the classification of signals with unknown labels. The genetic programming techniques used in the training phase can also be applied to populations of computer programs other than signal classification programs such as operator programs.
-
Citations
28 Claims
-
1. A method of generating a classifier for signal classification based on a plurality of classification programs, comprising the steps of:
-
(a) operating on a plurality of C types of input signals, each having a known label, with a plurality of classification programs from a population of classification programs to produce a plurality of output values classifying said C types of input signals; (b) measuring errors in said plurality of output values relative to said known labels; (c) distributing said plurality of classification programs among C groups where each of said C groups is the best able to classify one of the C types of input signals from other of the C types of input signals; (d) placing said distributed classification programs into a new population of classification programs in accordance with a first predetermined function; (e) modifying certain of said plurality of classification programs in said new population; (f) repeating steps (a) through (e) for a predetermined number of iterations based on predetermined criteria; (g) selecting those programs from each group that are the best able to classify said input signals associated with said group from all other input signals for inclusion in a hierarchy of C systems, default weights being assigned to each of said selected programs and each of the C systems; (h) operating on an input signal having a known label with said selected programs to produce a plurality of output values; (i) determining an output value for each of said C systems by combining the output values from said selected programs within each of said C systems according to a second predetermined function of said output values and the weights of said selected programs; (j) determining a signal classification output value by combining each of said output values from each of said C systems according to a third predetermined function of said output values and the weights of said C systems; (k) measuring errors in the output values of said selected programs and said output values of said C systems relative to said known label; (l) adjusting the weights assigned to each of said selected programs and each of said systems in accordance with the errors relative to said known labels; and (m) repeating steps (h) through (l) for a number of iterations based on predetermined criteria to generate a classifier. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15)
-
-
16. A method of generating a population of operator programs to optimize the functioning of computer programs on which said operator programs operate, comprising the steps of:
-
(a) operating on a plurality of input computer programs, said input computer programs being from a population of computer programs, with a plurality of operator programs, said operator programs being from a population of operator programs, to produce a plurality of output computer programs; (b) measuring fitness values of said input and output computer programs as a function of the errors in output values of said input and output computer programs relative to known reference values; (c) measuring fitness values for each of said operator programs, said fitness values being a function of said fitness values of said input and output computer programs; (d) placing said operator programs in a new population of operator programs in accordance with a predetermined function, wherein the number of each operator program in the new population is related to its fitness value; (e) modifying certain of said operator programs; and (f) repeating steps (a) through (e) for a number of iterations based on predetermined criteria. - View Dependent Claims (17, 18, 19, 20, 21, 22, 23, 24, 25, 26)
-
-
27. An apparatus for generating a classifier for signal classification based on a plurality of classification programs, comprising:
-
(a) means for operating on a plurality of C types of input signals, each having a known label, with a plurality of classification programs from a population of classification programs to produce a plurality of output values classifying said C types of input signals; (b) means for measuring errors in said plurality of output values relative to said known labels; (c) means for distributing said plurality of classification programs among C groups where each of said C groups is the best able to classify one of the C types of input signals from other of the C types of input signals; (d) means for placing said distributed classification programs into a new population of classification programs in accordance with a first predetermined function; (e) means for modifying certain of said plurality of classification programs in said new population; (f) means for selecting those programs from each group that are the best able to classify said input signals associated with said group from all other input signals for inclusion in a hierarchy of C systems, default weights being assigned to each of said selected programs and each of the C systems; (g) means for operating on an input signal having a known label with said selected programs to produce a plurality of output values; (h) means for determining an output value for each of said C systems by combining the output values from said selected programs within each of said C systems according to a second predetermined function of said output values and the weights of said selected programs; (i) means for determining a signal classification output value by combining each of said output values from each of said C systems according to a third predetermined function of said output values and the weights of said C systems; (j) means for measuring errors in the output values of said selected programs and said output values of said C systems relative to said known label; and (k) means for adjusting the weights assigned to each of said selected programs and each of said systems in accordance with the errors relative to said known labels.
-
-
28. An apparatus for generating a population of operator programs to optimize the functioning of computer programs on which said operator programs operate, comprising:
-
(a) means for operating on a plurality of input computer programs within a population of computer programs with a plurality of operator programs from a population of operator programs to produce a plurality of output computer programs; (b) means for measuring fitness values of said input and output computer programs as a function of the errors in output values of said input and output computer programs relative to known reference values; (c) means for measuring fitness values for each of said operator programs, said fitness values being a function of said fitness values of said input and output computer programs; (d) means for placing said operator programs in a new population of operator programs in accordance with a predetermined function, wherein the number of each operator program in the new population is related to its fitness value; and (e) means for modifying certain of said operator programs.
-
Specification