Apparatus and method for processing information, recording medium and computer program

An information processing apparatus includes a target problem acquisition unit for acquiring a target problem, a generation unit for generating a plurality of solution candidates to the target problem to solve the target problem, and a contribution ratio calculating unit for calculating a contribution ratio of each solution candidate to the target problem if the target problem is solved using all the plurality of solution candidates to the target problem acquired by the target problem acquisition unit. The generation unit generates a solution candidate to the target problem in a next generation in accordance with a genetic algorithm that uses an evaluation value that is calculated using at least the contribution ratio of each solution candidate to the target problem determined by the contribution ratio calculating unit.

CROSS REFERENCES TO RELATED APPLICATIONS

The present invention contains subject matter related to Japanese Patent Application JP 2007-211477 filed in the Japanese Patent Office on Aug. 14, 2007, the entire contents of which are incorporated herein by reference.

BACKGROUND OF THE INVENTION

1. Field of the Invention

The present invention relates to an information processing apparatus, an information processing method, a recording medium and a computer program and, in particular, to an information processing apparatus, an information processing method, a recording medium and a computer program, for use in determining as a solution a set of genes appropriate for solving a target problem.

2. Description of the Related Art

Genetic search algorithm is used as one of algorithms for determining an approximate solution to a given problem.

In accordance with the genetic search algorithm in the related art, data (solution candidate) is represented as a gene, a plurality of genes are prepared, and an evaluation value of each gene is then calculated. A gene having a higher evaluation value is selected in a next generation with a higher priority, and used as a seed for crossover or mutation operations. With generations in progress, a solution is searched.

The genetic search method in the related art is described below with reference toFIG. 1.

Two sets, each containing genes, namely, solution candidates of a predetermined number m, are prepared. The two sets are referred to as a “current generation” and a “next generation.” In a first generation as the current generation, m genes are randomly generated. Through an evaluation function, the evaluation value of each gene in the current generation is calculated.

After the m genes in the current generation are given respectively evaluation values, crossover, mutation and copy operations are performed based on the evaluation values. New genes are also generated randomly. The results are then stored as m genes in the next generation. The crossover, mutation, and copy operations and the random generation of a new gene are performed at predetermined rate.

The crossover operation is modeled from living creatures that produce offspring by mating. In the crossover operation, two genes in the current generation are selected, and a gene in a next generation is generated with part of the gene in the current generation exchanged. A plurality of methods are available in the crossover operation by selecting crossover points, namely, one crossover point, two crossover points, or multiple crossover points. The mutation operation is modeled from mutation of genes observed in living creatures. One gene is selected from the current generation and part of the selected gene is changed. In the copy operation, one gene is selected from the current generation, and the selected gene is directly stored as a gene for the next generation.

When any of the crossover, mutation and copy operations is performed, a gene selection process of the current generation is performed. The gene selection is performed using an algorithm that allows a gene having a higher evaluation value to be selected with a higher priority, based on the evaluation values of the genes of the current generation. A plurality of algorithms for the gene selection have been proposed, including ranking selection, tournament selection, elite selection, etc.

An example ofFIG. 1is described. A gene number2having an evaluation value 0.8 and a gene number5having an evaluation value 0.6 are selected and copied to a next generation as having a higher evaluation value with higher priority. The gene number2having an evaluation value 0.8 is selected and mutated as having a high evaluation value with higher priority, and a gene generated through mutation is stored for the next generation. From among the genes in the current generation, the gene number2having an evaluation value 0.8 and the gene number5having an evaluation value 0.6 are selected and crossed over, and a gene generated through the crossover operation is stored for the next generation. Genes are randomly generated at a predetermined rate, and stored for the next generation.

With the genes for the next generation prepared, the gene group of those genes is treated as genes in the current generation and the evaluation values of the genes in the current generation are calculated. The crossover, the mutation and the copy operations are performed based on the evaluation values, and new genes are then generated randomly. Results are then stored as m genes for a next generation. If a gene reaches the highest evaluation value that can be exceeded no longer, or if a predetermined number of generations has passed, a gene having the highest evaluation value in the current generation is output as a “solution.”

For example, the generation search method is applied to generate an algorithm that allows a feature quantity to be selected at a high accuracy level at a high speed from content data such as music data as disclosed in International Publication No. WO2007/049641.

The genetic search method used in International Publication No. WO2007/049641 is described with reference toFIGS. 2A. and2B.

The genetic search method of the related art described with reference toFIG. 1outputs one gene as a solution appropriate for solving a target problem. In contrast, the genetic search method disclosed in International Publication No. WO2007/049641 outputs a set of genes appropriate for solving a target problem.

The genetic search method disclosed in International Publication No. WO2007/049641 is intended to determine “a gene group composed a plurality of genes” that allow an approximate solution to the target problem to be accurately determined instead of a “single gene” that allows an approximate solution to the target problem to be accurately determined. In order to generate the gene group solving the target problem, a plurality of gene lists, each listing a plurality of genes, are used. Let m represent the number of gene lists and n represent the number of genes listed in a single gene list.

The evaluation values are calculated on a per gene list basis instead of on a per gene basis. A gene list is selected from the gene lists of the current generation based on the evaluation values provided on a per gene list basis. The copy, crossover and mutation operations and the random generation of the new gene list are performed to generate m gene lists of a new generation.

SUMMARY OF THE INVENTION

The genetic search method in the related art, intended to search for one excellent gene, is not applicable if the target problem is solved with a plurality of genes working in cooperation with each other.

In the technique disclosed in International Publication No. WO2007/049641, a target problem is solved using a plurality of genes rather than using a single gene. In such a case, a plurality of gene lists is stored, a gene list is selected-based on the evaluation values provided to each gene list, and next generation genes are generated. A set of genes for solving the target problem, namely, a gene list is output as a solution. In this way, an algorithm thus generated extracts a feature quantity at high accuracy level at a high speed based on a large number of factors.

In accordance with the technique disclosed in International Publication No. WO2007/049641, the number of genes is n×m and an amount of calculation is increased by n times the case in which the number of genes is m. Optimizing the disclosed algorithm requires an extremely high throughput and a long process time.

It is thus desirable to determine the set of genes appropriate for solving the target problem with a small amount of calculation.

In accordance with one embodiment of the present invention, an information processing apparatus includes target problem acquisition means for acquiring a target problem, generation means for generating a plurality of solution candidates to the target problem to solve the target problem, and contribution ratio calculating means for calculating a contribution ratio of each solution candidate to the target problem if the target problem is solved using all the plurality of solution candidates to the target problem acquired by the target problem acquisition means. The generation means generates the solution candidate to the target problem in a next generation in accordance with a genetic algorithm that uses an evaluation value that is calculated using at least the contribution ratio of each solution candidate to the target problem calculated by the contribution ratio calculating means.

The target problem acquisition means may include first acquisition means for acquiring learning data, and second acquisition means for acquiring as supervisor data a solution to the target problem corresponding to the learning data, wherein the target problem acquisition means sets the target problem as the finding of means for determining from the learning data the solution corresponding to the learning data.

The generation means may include list generation means for generating a list containing a plurality of data calculation equations. The contribution ratio calculating means may include calculation means for performing a calculation operation on the learning data, acquired by the first acquisition means, using the plurality of data calculation equations contained in the list generated by the list generation means, and contribution ratio acquisition means for learning a feature quantity calculation equation using the calculation results of the calculation means, and for determining a contribution ratio of each data calculation equation in the feature quantity calculation equation obtained as a result of learning, the feature quantity calculation equation being used to estimate the supervisor data acquired by the second acquisition means and being a linear combination of output values of the plurality of data calculation equations contained in the list generated by the list generation means. The list generation means generates randomly the data calculation equations contained in the list of a first generation, and generates the list of next generations including a second generation in accordance with a genetic algorithm, the genetic algorithm using an evaluation value calculated from the contribution ratio of each data calculation equation determined by the contribution ratio acquisition means with each data calculation equation contained in the list of a current generation serving as a gene.

The information processing apparatus may further include output means for outputting the feature quantity calculation equation learned by the contribution ratio acquisition means and the list of the final generation generated by the list generation means.

The output means may output the feature quantity calculation equation learned by the contribution ratio acquisition means and the list of the final generation generated by the list generation means if the calculation results of the feature quantity calculation equation learned by the contribution acquisition means reach a predetermined accuracy with respect to the supervisor data acquired by the second acquisition means.

The contribution ratio acquisition means may estimate the supervisor data using the feature quantity calculation equation based on a linear combination coefficient with a gene indicating in the feature quantity calculation equation whether the linear combination coefficient of the data calculation equation is zero or not, and learn the feature quantity calculation equation in accordance with the genetic algorithm using the evaluation value that evaluates the estimation results with an evaluation function.

The information processing apparatus may further include third acquisition means for acquiring detection data, and feature quantity arithmetic means for calculating a feature quantity of the detection data by processing the detection data, acquired by the third acquisition means, using the feature quantity calculation equation learned by the contribution ratio acquisition means, and the list of the final generation generated by the list generation means.

In accordance with one embodiment of the present invention, an information processing method of an information processing apparatus for determining a solution to a target problem, includes steps of acquiring the target problem, generating a plurality of solution candidates to the target problem to solve the target problem, and calculating a contribution ratio of each solution candidate to the target problem if the target problem is solved using all the plurality of solution candidates to the target problem. The generating includes generating the solution candidate to the target problem in a next generation in accordance with a genetic algorithm that uses an evaluation value that is calculated using at least the calculated contribution ratio of each solution candidate to the target problem.

In accordance with one embodiment of the present invention, a program for causing a computer to determine a solution to a target problem, includes steps of acquiring the target problem, generating a plurality of solution candidates to the target problem to solve the target problem, and calculating a contribution ratio of each solution candidate to the target problem if the target problem is solved using all the plurality of solution candidates to the target problem. The generating may include generating the solution candidate to the target problem in a next generation in accordance with a genetic algorithm that uses an evaluation value that is calculated using at least the calculated contribution ratio of each solution candidate to the target problem.

In accordance with embodiments of the present invention, the target problem is acquired. The plurality of solution candidates to the target problem are generated to solve the target problem. The contribution ratio of the solution candidate to the target problem is determined if the target problem is solved using all the plurality of solution candidates to the target problem. A solution candidate to the target problem in the next generation is generated in accordance with the genetic algorithm using the evaluation value that is calculated using at least the contribution ratio of each solution candidate to the target problem.

In accordance with one embodiment of the present invention, an information processing apparatus includes first acquisition means for acquiring detection data, second acquisition means for acquiring a feature quantity extraction algorithm, and feature quantity calculating means for calculating a feature quantity of the detection data by processing the detection data, acquired by the first acquisition means, in accordance with the feature quantity extraction algorithm acquired by the second acquisition means. The feature quantity extraction algorithm acquired by the second acquisition means includes a feature quantity calculation equation and a list of the final generation. The feature quantity calculation equation and the list of the final generation result from generating a list of a first generation containing a plurality data calculation equations by generating randomly the data calculation equations contained in the list, processing predetermined learning data using the plurality of data calculation equations forming the generated list, learning the feature quantity calculation equation that is a linear combination of the plurality of data calculation equations forming the list, using the process results of the predetermined learning data, the feature quantity calculation equation being used to estimate predetermined supervisor data, determining a contribution ratio of each data calculation equation in the feature quantity calculation equation resulting from the learning, and generating the list of a second generation or a later generation in accordance with a genetic algorithm, the genetic algorithm using an evaluation value calculated from at least the contribution ratio of each data calculation equation with each data calculation equation contained in the list of the current generation serving as a gene.

In accordance with one embodiment of the present invention, an information processing method of an information processing apparatus for calculating a feature quantity of detection data based on an algorithm for determining a solution to a target problem, includes steps of acquiring the detection data, acquiring a feature quantity extraction algorithm, and calculating a feature quantity of the detection data by processing the detection data in accordance with the feature quantity extraction algorithm. The feature quantity extraction algorithm includes a feature quantity calculation equation and a list of the final generation. The feature quantity calculation equation and the list of the final generation result from generating a list of a first generation containing a plurality data calculation equations by generating randomly the data calculation equations contained in the list, processing predetermined learning data using the plurality of data calculation equations forming the generated list, learning the feature quantity calculation equation that is a linear combination of the plurality of data calculation equations forming the list, using the process results of the predetermined learning data, the feature quantity calculation equation being used to estimate predetermined supervisor data, determining a contribution ratio of each data calculation equation in the feature quantity calculation equation resulting from the learning, and generating the list of a second generation or a later generation in accordance with a genetic algorithm, the genetic algorithm using an evaluation value calculated from at least the contribution ratio of each data calculation equation with each data calculation equation contained in the list of the current generation serving as a gene.

In accordance with one embodiment of the present invention, a computer program for causing a computer to calculate a feature quantity of detection data based on an algorithm for determining a solution to a target problem, includes steps of acquiring the detection data, acquiring a feature quantity extraction algorithm, and calculating a feature quantity of the detection data by processing the detection data in accordance with the feature quantity extraction algorithm. The feature quantity extraction algorithm includes a feature quantity calculation equation and a list of the final generation. The feature quantity calculation equation and the list of the final generation result from generating a list of a first generation containing a plurality data calculation equations by generating randomly the data calculation equations contained in the list, processing predetermined learning data using the plurality of data calculation equations forming the generated list, learning the feature quantity calculation equation that is a linear combination of the plurality of data calculation equations forming the list, using the process results of the predetermined learning data, the feature quantity calculation equation being used to estimate predetermined supervisor data, determining a contribution ratio of each data calculation equation in the feature quantity calculation equation resulting from the learning, and generating the list of a second generation or a later generation in accordance with a genetic algorithm, the genetic algorithm using an evaluation value calculated from at least the contribution ratio of each data calculation equation with each data calculation equation contained in the list of the current generation serving as a gene.

In accordance with embodiments of the present invention, the detection data is acquired, the feature quantity extraction algorithm is acquired, and the feature quantity of the detection data is calculated by processing the detection data in accordance with the feature quantity extraction algorithm. The feature quantity extraction algorithm includes the feature quantity calculation equation and the list of the final generation. The feature quantity calculation equation and the list of the final generation result from generating the list of the first generation containing the plurality data calculation equations by generating randomly the data calculation equations contained in the list, processing the predetermined learning data using the plurality of data calculation equations forming the generated list, learning the feature quantity calculation equation that is the linear combination of the plurality of data calculation equations forming the list, using the process results of the predetermined learning data, the feature quantity calculation equation being used to estimate predetermined supervisor data, determining the contribution ratio of each data calculation equation in the feature quantity calculation equation resulting from the learning, and generating the list of the second generation or the later generation in accordance with the genetic algorithm, the genetic algorithm using an evaluation value calculated from at least the contribution ratio of each data calculation equation with each data calculation equation contained in the list of the current generation serving as a gene.

The term “network” in the context of this specification refers to a mechanism in which at least two apparatuses are linked so that information is exchanged between one apparatus and the other apparatus. The apparatuses that communicate with each other via the network may be independent of each other or may be internal blocks contained in one apparatus.

The term “communication” in the context of this specification refers to wireless communication, wired communication, or a combination of both where wireless communication performed in one communication coverage area is combined with wired communication performed in the other communication coverage area. Furthermore, wired communication is performed from a first apparatus to a second apparatus, and wireless communication is performed from the second apparatus to a third apparatus.

The information processing apparatus may be a standalone apparatus and may be part of another apparatus having another function.

In accordance with embodiments of the present invention, an algorithm for determining a solution to a target problem is determined without increasing the number of process steps.

In accordance with embodiments of the present invention, the feature quantity is determined by a plurality of calculation equations instead of by a single excellent calculation equation.

DESCRIPTION OF THE PREFERRED EMBODIMENTS

Before describing an embodiment of the present invention, the correspondence between the features of the present invention and an embodiment disclosed in the specification or the drawings of the invention is discussed below. This statement is intended to assure that embodiments supporting the claimed invention are described in this specification or the drawings. Thus, even if an embodiment is described in the specification or the drawings, but not described as relating to a feature of the invention herein, that does not necessarily mean that the embodiment does not relate to that feature of the invention. Conversely, even if an embodiment is described herein as relating to a certain feature of the invention, that does not necessarily mean that the embodiment does not relate to other features of the invention.

In accordance with one embodiment of the present invention, an information processing apparatus includes target problem acquisition means (for example, learning quantity data acquisition unit31and supervisor data acquisition unit33ofFIG. 7) for acquiring a target problem, generation means (for example, feature extraction equation list generator35ofFIG. 7) for generating a plurality of solution candidates to the target problem to solve the target problem, and contribution ratio calculating means (for example, machine learning unit34ofFIG. 7) for calculating a contribution ratio of each solution candidate to the target problem if the target problem is solved using all the plurality of solution candidates to the target problem acquired by the target problem acquisition means. The generation means generates the solution candidate to the target problem in a next generation in accordance with a genetic algorithm that uses an evaluation value that is calculated using at least the contribution ratio of each solution candidate to the target problem calculated by the contribution ratio calculating meahs.

The target problem acquisition means may include first acquisition means (for example, learning quantity data acquisition unit31ofFIG. 7) for acquiring learning data (for example, data resulting from analyzing audio data in terms of pitch and time or data represented in matrix), and second acquisition means (for example, supervisor data acquisition unit33ofFIG. 7) for acquiring as supervisor data a solution to the target problem corresponding to the learning data, wherein the target problem acquisition means sets the target problem as the finding of means for determining from the learning data the solution corresponding to the learning data.

The generation means may include list generation means (for example, feature extraction equation list generator35ofFIG. 7) for generating a list containing a plurality of data calculation equations. The contribution ratio calculating means may include calculation means (for example, feature quantity calculator32ofFIG. 7) for performing a calculation operation on the learning data, acquired by the first acquisition means, using the plurality of data calculation equations contained in the list generated by the list generation means, and contribution ratio acquisition means for learning a feature quantity calculation equation using the calculation results of the calculation means, and for determining a contribution ratio of each data calculation equation in the feature quantity calculation equation obtained as a result of learning, the feature quantity calculation equation being used to estimate the supervisor data acquired by the second acquisition means and being a linear combination of output values of the plurality of data calculation equations contained in the list generated by the list generation means. The list generation means generates randomly the data calculation equations contained in the list of a first generation, and generates the list of a second generation or a later generation in accordance with a genetic algorithm, the genetic algorithm using an evaluation value calculated from the contribution ratio of each data calculation equation determined by the contribution ratio acquisition means with each data calculation equation contained in the list of a current generation serving as a gene.

The information processing apparatus may further include output means (for example, feature quantity extraction algorithm output unit36ofFIG. 7) for outputting the feature quantity calculation equation learned by the contribution ratio acquisition means and the list of the final generation generated by the list generation means.

The information processing apparatus may further include third acquisition means (for example, detection content data acquisition unit32ofFIG. 12) for acquiring detection data, and feature quantity arithmetic means (for example, feature quantity arithmetic unit53ofFIG. 12) for calculating a feature quantity of the detection data by processing the detection data, acquired by the third acquisition means, using the feature quantity calculation equation learned by the contribution ratio acquisition means, and the list of the final generation generated by the list generation means.

In accordance with one embodiment of the present invention, each of an information processing method and program of an information processing apparatus for determining a solution to a target problem, includes steps of acquiring the target problem (for example, in step S1ofFIG. 16), generating a plurality of solution candidates to the target problem to solve the target problem (for example, in a process to be discussed with reference toFIG. 18), and calculating a contribution ratio of each solution candidate to the target problem if the target problem is solved using all the plurality of solution candidates to the target problem (for example, in a process to be discussed with reference toFIG. 27). The generating includes generating the solution candidate to the target problem in a next generation in accordance with a genetic algorithm that uses an evaluation value that is calculated using at least the calculated contribution ratio of each solution candidate to the target problem.

In accordance with one embodiment of the present invention, an information processing apparatus includes first acquisition means (for example, detection content data acquisition unit52ofFIG. 12) for acquiring detection data, second acquisition means (for example, feature quantity extraction algorithm acquisition unit51ofFIG. 12) for acquiring a feature quantity extraction algorithm, and feature quantity calculating means (for example, feature quantity arithmetic unit53ofFIG. 12) for calculating a feature quantity of the detection data by processing the detection data, acquired by the first acquisition means, in accordance with the feature quantity extraction algorithm acquired by the second acquisition means, wherein the feature quantity extraction algorithm acquired by the second acquisition means includes a feature quantity calculation equation and a list of the final generation. The feature quantity calculation equation and the list of the final generation result from generating a list of a first generation (for example, a feature extraction equation list) containing a plurality data calculation equations (for example, feature extraction equation) by generating randomly the data calculation equations contained in the list, processing predetermined learning data using the plurality of data calculation equations forming the generated list, learning the feature quantity calculation equation that is a linear combination of the plurality of data calculation equations forming the list, using the process results of the predetermined learning data, the feature quantity calculation equation being used to estimate predetermined supervisor data, determining a contribution ratio of each data calculation equation in the feature quantity calculation equation resulting from the learning, and generating the list of a second generation or a later generation in accordance with a genetic algorithm, the genetic algorithm using an evaluation value calculated from at least the contribution ratio of each data calculation equation with each data calculation equation contained in the list of the current generation serving as a gene.

In accordance with one embodiment of the present invention, each of an information processing method and program of an information processing apparatus for calculating a feature quantity of detection data based on an algorithm for determining a solution to a target problem, includes steps of acquiring the detection data (for example, in step S333ofFIG. 28), acquiring a feature quantity extraction algorithm (for example, in step S332ofFIG. 28), and calculating a feature quantity of the detection data by processing the detection data in accordance with the feature quantity extraction algorithm (for example, in step S334ofFIG. 28), wherein the feature quantity extraction algorithm includes a feature quantity calculation equation and a list of the final generation. The feature quantity calculation equation and the list of the final generation result from generating a list of a first generation (for example, a feature extraction equation list) containing a plurality data calculation equations (for example, feature extraction equation) by generating randomly the data calculation equations contained in the list, processing predetermined learning data using the plurality of data calculation equations forming the generated list, learning the feature quantity calculation equation that is a linear combination of the plurality of data calculation equations forming the list, using the process results of the predetermined learning data, the feature quantity calculation equation being used to estimate predetermined supervisor data, determining a contribution ratio of each data calculation equation in the feature quantity calculation equation resulting from the learning, and generating the list of a second generation or a later generation in accordance with a genetic algorithm, the genetic algorithm using an evaluation value calculated from at least the contribution ratio of each data calculation equation with each data calculation equation contained in the list of the current generation serving as a gene.

FIG. 3is a block diagram illustrating a structure of an information processing apparatus1in accordance with one embodiment of the present invention.

The information processing apparatus1includes a feature quantity calculator12and an algorithm generator11. Upon receiving detection data, the feature quantity calculator12calculates a feature quantity of the detection data. The algorithm generator11generates a feature quantity extraction algorithm to be used by the feature quantity calculator12.

The algorithm generator11acquires a plurality of pieces of content data to be learned, and, as supervisor data, information relating to a feature quantity as a solution to a target problem with respect to the content data. Based on these pieces of information, the algorithm generator11generates a feature quantity extraction algorithm to be used by the feature quantity calculator12, using a genetic search method (genetic algorithm).

For example, the feature quantity extraction algorithm for determining the tempo and merriness of a song is desired. As shown inFIG. 4, song1through song4are provided as learning content data while tempo and merriness as a target problem are supplied to each of the songs as supervisor data. A plurality of feature extraction equations as a signal processing equation for signal processing the songs1-4are genes of the current generation.

The algorithm generator11performs an arithmetic operation on the learning content data using all the feature extraction equations. The arithmetic operation is a process based on the feature extraction equation. The feature extraction equation is a calculation equation for obtaining a feature quantity relating to the content data. The feature quantity then obtained may be different from a feature quantity as a solution to the target problem. In other words, the feature extraction equation cannot estimate a solution to the target problem of the content data.

Using the arithmetic operation results, a machine learning operation is performed. The machine learning operation can calculate a contribution ratio for each given type of supervisor (such as merriness and tempo here). The machine learning operation determines the feature quantity calculation equation for each type of supervisor (such as merriness and tempo here). The feature quantity calculation equation can estimate a solution to the target problem of the content data. The feature quantity calculation equation determines a contribution ratio of each feature extraction equation to solve the target problem.

As shown inFIG. 5, the target problem is solved using all the genes of the current generation. The contribution ratio of each gene is determined with the target problem solved. The contribution ratio serves as an evaluation value of each gene. The gene search is performed based on the evaluation value.

More specifically as shown inFIG. 6, the algorithm generator11performs the arithmetic operation on the input learning content data in accordance with the plurality of feature extraction equations, thereby calculating the feature quantity on a per feature extraction equation basis. The feature quantity calculation equation for solving the target problem through the machine learning operation is determined using the feature quantity of each feature extraction equation. The contribution ratio of each feature extraction equation in the feature quantity calculation equation is then calculated. The contribution ratio of each feature extraction equation serves as the evaluation value of the corresponding feature extraction equation. In the same manner as discussed with reference to the genetic search process of the related art ofFIG. 1, the copy, crossover and mutation operations are performed and the random generation of the new feature extraction equation is performed. A plurality of feature extraction equations of a next generation are thus generated. The machine learning operation is then repeated with the plurality of feature extraction equations of the next generation served as those of the current generation.

More specifically, the algorithm generator11performs the machine learning operation on the feature quantity calculation equation to solve the target problem, based on the calculation results of all the m feature extraction equations and the supervisor data, and determines the contribution ratio to solve the target problem of the m feature extraction equations. Based on the contribution ratio of the feature extraction equation, the algorithm generator11generates a feature extraction equation list listing m feature extraction equations of the next generation. In other words, the algorithm generator11solves the target problem using all the m genes with the m feature extraction equations serving as the genes, calculates the contribution ratio at which each gene contributes to solving the target problem, and uses the contribution ratio as the evaluation value of the genetic algorithm.

The algorithm generator11supplies to the feature quantity calculator12the generated feature quantity extraction algorithm, namely, the feature quantity calculation equation of each supervisor and the plurality of feature extraction equations finally remaining subsequent to the genetic search process.

The feature quantity calculator12receives the input detection content data, and performs the feature quantity calculation process using the feature quantity extraction algorithm generated by the algorithm generator11, thereby outputting detection results.

The feature quantity calculator12has the feature quantity extraction algorithm that determines the tempo and merriness of music data as the feature quantities. In response to unknown music data, the feature quantity calculator12determines the tempo and merriness of the unknown input music data using the feature quantity calculation equation of each supervisor, namely, the feature quantity calculation equation for determining the tempo of the music data, and the feature quantity calculation equation for determining the merriness of the music data.

The learning data and the detection data can be any type of data as long as the data has a plurality of axes, in other words, i.e., the data is expressed in a matrix of a plurality of dimensions.

The feature quantity calculator12thus receives the input detection data having the same axis as the learning data that has been used by the algorithm generator11in the generation of the feature quantity extraction algorithm, and solves the target problem using the feature quantity extraction algorithm.

FIG. 7is a functional block diagram illustrating in detail the algorithm generator11ofFIG. 3.

The algorithm generator11includes a learning content data acquisition unit31, a feature quantity calculator32, a supervisor data acquisition unit33, a machine learning unit34, a feature extraction equation list generator35, and a feature quantity extraction algorithm output unit36.

The learning content data acquisition unit31acquires learning content data to generate the feature quantity extraction algorithm and supplies the learning content data to the feature quantity calculator32.

The feature quantity calculator32acquires from the feature extraction equation list generator35the feature extraction equation list listing m feature extraction equations as the genes, and calculates the feature quantity of the content data supplied from the learning content data acquisition unit31, based on the m feature extraction equations.

The feature extraction equation can modify the input data represented in a plurality of dimensions into a single value, namely, a scalar value.

FIG. 8illustrates a waveform of WAV data analyzed in time-pitch (frequency) with time and pitch of one octave of 12 tones.

As shown inFIG. 8, the ordinate as a pitch axis is graduated with one octave, and the abscissa represents time. Dark portions indicates a low energy area (at a low volume level). The lighter portions indicate a higher energy area (at a higher volume level).

The feature extraction equation ofFIG. 9is applied to the analysis results shown inFIG. 8.

As shown inFIG. 9, the feature extraction equation contains information indicating the type of input data, and an operator as information indicating signal processing performed on the input data. The operator contains a target axis, a content of process, and a parameter to be processed as necessary. As shown inFIG. 9, 12 TonesM indicate the information of the type of input data, followed by four operators, namely, F#Differential, F#MaxIndex, T#LPF—1; 0.861, and T#UVariance in the order of processing. Placed at the head of each operator is the target axis. The target axes include T representing time direction and F representing the frequency and pitch direction.

The processes contained in the feature extraction equation ofFIG. 9include a differentiation operation represented by Differential, an acquisition operation of acquiring a maximum index, represented by MaxIndex, a low-pass filtering operation represented by LPF, and an unbiased variance operation represented by UVariance. Parameters are imparted to these operators as necessary. For example, 1; 0.861 is a parameter for a low-pass filter.

In response to the input of the analysis results of the waveform WAV data in time-pitch, the feature extraction equation represents calculation results obtained from differentiating the waveform in the pitch direction, calculating Index indicating a maximum value in the pitch direction (to obtain a pitch number showing the strongest sound), low-pass filtering the waveform in the time axis direction, and finally calculating the unbiased variance of the waveform. The feature extraction equation thus outputs the calculation results.

The supervisor data acquisition unit33acquires a solution to the target problem of the learning input data as supervisor data. For example, if the target problem is the tempo and merriness of the music data, the supervisor data acquisition unit33acquires information relating to the tempo and merriness of a plurality of pieces of learning input data acquired by the learning content data acquisition unit31. The supervisor data may be the one determined from answers to questionnaire from a plurality of users.

The machine learning unit34performs a machine learning operation to calculate the contribution ratio, using the calculation results of each feature extraction equation calculated by the feature quantity calculator32, namely, the feature quantity determined from each feature extraction equation by the feature quantity calculator32. The machine learning unit34thus determines the feature quantity calculation equation for estimating the feature quantity as a solution to the target problem for each type of the given supervisor data (for example, tempo and merriness), and determines the contribution ratio of each feature extraction equation in the obtained feature quantity calculation equation.

The feature quantity calculation equation is determined for each type of the given supervisor data (such as tempo and merriness). The feature quantity calculation equation is to estimate the value of the target feature quantity by multiplying the results of feature extraction equations by predetermined coefficients and linear combining the multiplication results as shown in the following equation (1):
Tempo=output value of feature extraction equation 1×0.5+output value of feature extraction equation 2×0.7+ . . . +output value of feature extraction equation 5×0.1+output value of feature extraction equation 15×−0.4  (1)

The machine learning operation calculating the contribution ratio may be linear regression/discriminant analysis that uses, as an evaluation function, information criterion such as Akaike Information Criterion (AIC) or Bayesian Information Criterion (BIC), for example.

With selection/unselection of each feature extraction equation in the feature quantity extraction algorithm serving as a gene (i.e., whether to use the feature extraction equation), the machine learning unit34estimates target metadata (for example, the supervisor data as a value indicating tempo and merriness) using the selected feature extraction equation and learns the feature quantity extraction algorithm using a genetic algorithm. The genetic algorithm is based on the setting that the smaller the AIC or BIC of the selected feature extraction equation, the better.

More specifically, the machine learning unit34randomly generates several genes that determine whether to use the output value of the each feature extraction equation. The machine learning unit34performs linear regression/discriminant analysis on all genes, thereby evaluating the results in accordance with the evaluation function (such as AIC or BIC). By selecting the feature quantity to be used, the number of free parameters is reduced. A point providing a minimum AIC or BIC can be searched. Based on the evaluation value, the machine learning unit34performs the selection, crossover, and mutation operations on each gene, thereby varying the feature quantity in use. The machine learning unit34proceeds from one generation to a next generation until a better evaluation value is obtained no longer.

In accordance with the feature quantity calculation equation obtained through learning, the machine learning unit34determines the contribution ratio of each feature extraction equation by dividing each linear combination coefficient by a standard deviation of the output value of the feature extraction equation, by multiplying the resulting quotient by standard data of the supervisor data, and then by multiplying the resulting product by a correlation between the output value of the feature extraction equation and the supervisor data.

More specifically, let Y represent the target metadata (values indicating tempo and merriness), XMrepresent m feature quantities as the calculation results of the m feature extraction equations (M being an integer falling within a range of 1≦M≦total number m of the feature extraction equations), BMrepresent the linear combination coefficient, and B0represent an intercept of the feature quantity calculation equation, and the feature quantity calculation equation obtained through learning is represented by the following equation (2):
Y=B1X1+B2X2+B3X3+ . . . +BmXm+B0(2)

The value of the linear combination coefficient of the feature extraction equation unselected as a result of learning becomes zero.

The contribution ratio (XM) of the feature extraction equation with Y of equation (2) estimated is calculated using the following equation (3):
XM=BM/StDev(XM)×StDev(TM)×Correl(XM, TM)  (3)
where StDev(XM) represents the standard deviation of XMwith respect to all the learning input data provided for learning, StDev(TM) represents the standard deviation of the values of the supervisor data TMwith respect to all the learning input data provided for learning, and Correl(TM) represents the Pearson's correlation coefficient of the values of XMand the supervisor data TMwith respect to all the learning input data provided for learning.

The machine learning unit34supplies to the feature extraction equation list generator35the sum of the contribution ratios of all types of supervisors (for example, the sum of the contribution ratios of tempo and merriness) as the evaluation value of the genetic algorithm.

The machine learning unit34may determine the feature extraction equation (2) in a method different from the method of using the genetic algorithm with the determination of used/unused status of the output value of each feature extraction equation serving as a gene. For example, the machine learning unit34determines the used/unused status of the output value of each feature extraction equation using neighbor search method.

Using the neighbor search method, the machine learning unit34starts learning with all feature extraction equations in an unused status. The machine learning unit34then evaluates the AIC (or BIC) in a combination of M feature extraction equations with one use/unused status inverted. The machine learning unit34selects a combination having the highest evaluation value, namely, a combination having a low AIC value. Based on the selected combination, the machine learning unit34repeats the evaluation process on the AIC value with one used/unused status of the feature extraction equations inverted until the resulting evaluation value becomes better no longer. In accordance with the combination of the finally obtained used/unused combination of the feature extraction equations, the machine learning unit34generates the linear combination equation of equation (2). The process subsequent to the linear combination equation generation remains unchanged from the above discussion.

In accordance with the contribution ratio of the feature extraction equations obtained by the machine learning unit34, the feature extraction equation list generator35performs the selection, crossover, and mutation operations to the feature extraction equations of the current generation according to the evaluation value as the contribution ratio. By performing a random generation of new feature extraction equations, the feature extraction equation list generator35generates a feature extraction equation list composed of m feature extraction equations of a next generation. The feature extraction equation list generator35randomly generates the feature extraction equation list composed of the m feature extraction equations of the next generation. Also, the feature extraction equation list generator35randomly generates the m feature extraction equations contained in the feature extraction equation list of a first generation in order to generate the feature extraction equation list of the first generation composed of the m feature extraction equations, and then supplies the feature extraction equation list of the first generation to the machine learning unit34.

As shown inFIG. 10, the feature extraction equation list generator35weights the feature extraction equations, in the order from the feature extraction equation having a high contribution ratio to the feature extraction equation having a low contribution ratio in accordance with the contribution ratios of the feature extraction equation obtained by the machine learning unit34or in the order that the feature extraction equation having a higher contribution ratio to be selected with a better chance. The feature extraction equation list generator35selects and copies the feature extraction equation (gene) to a next generation in accordance with the contribution ratios of the feature extraction equations.

The feature extraction equation list generator35weights the feature extraction equations so that a feature extraction equation having a high contribution ratio is selected with a better chance while selecting two feature extraction equations. The feature extraction equation list generator35combines (cross over) the two feature extraction equations, thereby generating feature extraction equations of a next generation at a predetermined ratio (by a predetermined number).

For example, a first selected feature extraction equation is “12 TonesM, F#aaaa, F#bbbb, T#cccc, T#dddd” and a second selected feature extraction equation is “12 TonesM, Sqrt, F#gggg, F#hhhh, F#iiii, T#jjjj, T#kkkk” (here, aaaa, bbbb, . . . respectively represent operators). The feature extraction equation list generator35combines parts of the two equations in a combination that a scalar quantity is determined from input data (here 12 TonesM) by calculating the feature extraction equation subsequent to the combination, i.e., in a combination that causes no inconsistency in the target axes if the calculation process is performed on the feature extraction equations starting with the leading feature extraction equation. More specifically, the feature extraction equation list generator35combines “F#aaaa, F#bbbb, T#cccc” of the first selected feature extraction equation “12 TonesM, F#aaaa, F#bbbb, T#cccc, T#dddd” and, “T#jjjj, T#kkkk” of the second selected feature extraction equation “12 TonesM, Sqrt, F#gggg, F#hhhh, F#iiii, T#jjjj, T#kkkk”, thereby generating a feature extraction equation of “12 TonesM, F#aaaa, F#bbbb, T#cccc, “T#jjjj, T#kkkk”, and handling the generated feature extraction equation as a feature extraction equation of the next generation.

The feature extraction equation list generator35selects a single feature extraction equation while weighting the feature extraction equations so that a feature extraction equation having a high contribution ratio is selected with a better chance. The feature extraction equation list generator35thus modifies parts of the selected feature extraction equations, thereby generating a feature extraction equation of the next generation at a predetermined ratio (at a predetermined number).

For example, if a selected feature extraction equation is “12 TonesM, F#mmmm, F#nnnn, T#oooo, T#pppp, T#qqqq,” the feature extraction equation list generator35modifies part of the feature extraction equation in a manner such that a scalar quantity is determined from input data (here 12 TonesM) by calculating the feature extraction equation subsequent to the modification of part of the feature extraction equation, i.e., in a manner such that no inconsistency is caused in the target axes if the calculation process is performed on the feature extraction equations starting with the leading feature extraction equation. More specifically, the feature extraction equation list generator35replaces at least one operator in the selected feature extraction equation with different operators to modify the feature extraction equation to “12 TonesM, F#xxxx, F#yyyy, T#oooo, T#pppp, T#qqqq,” thereby generating a feature extraction equation of the next generation. Furthermore, the feature extraction equation list generator35deletes at least one operator from the selected feature extraction equation to modify the selected feature extraction equation to “12 TonesM, F#mmmm, F#nnnn, T#oooo, T#qqqq,” thereby generating a feature extraction equation of the next generation. The feature extraction equation list generator35also modifies at least part of a parameter contained in an operator of the selected feature extraction equation, thereby generating a feature extraction equation of the next generation. As previously discussed, the feature extraction equation list generator35combines the modification and deletion operations of the operation and the modification of the parameter, thereby generating a feature extraction equation of the next generation.

The feature extraction equation list generator35randomly generates the feature extraction equation at a predetermined ratio (at a predetermined number), thereby adding the generated feature extraction equation as a feature extraction equation of the next generation. It is noted that the feature extraction equation list generator35generates all feature extraction equations in the first generation.

More specifically, when the feature extraction equation list of the second and next generations is generated as shown inFIG. 11, the feature extraction equation list generator35selects the feature extraction equations at a predetermined ratio or of a predetermined number (three in this case) having high contribution ratios, and copies the selected feature extraction equations to the next generation. The feature extraction equation list generator35selects the feature extraction equations at a predetermined ratio or of a predetermined number (eight in this case) having high contribution ratios, and generates a feature extraction equation of the next generation using the crossover operation. The feature extraction equation list generator35selects the feature extraction equations at a predetermined ratio or of a predetermined number (six in this case) having high contribution ratios, and generates a feature extraction equation of the next generation using the mutation operation. The feature extraction equation list generator35generates the remaining feature extraction equations so that a total of m feature extraction equations are generated. The feature extraction equation list generator35then supplies the generated feature extraction equations to the machine learning unit34.

The processes of the feature quantity calculator32, the machine learning unit34and the feature extraction equation list generator35are repeated until a predetermined number of generations has advanced, until the calculation results of the feature quantity calculation equation obtained by the machine learning unit34reach a predetermined accuracy level, or until a learning end operation is input by the user. The feature quantity calculation equation and the m feature extraction equations at the generation thereof finally obtained by the machine learning unit34are supplied to the feature quantity extraction algorithm output unit36as the feature quantity extraction algorithm.

The feature quantity extraction algorithm output unit36supplies to the feature quantity calculator12the feature quantity calculation equation and the m feature extraction equations in the generation thereof finally obtained by the machine learning unit34.

FIG. 12is a functional block diagram illustrating in detail the feature quantity calculator12ofFIG. 3.

The feature quantity calculator12includes a feature quantity extraction algorithm acquisition unit51, a detection content data acquisition unit52, a feature quantity arithmetic unit53, and a result output unit54.

The feature quantity extraction algorithm acquisition unit51receives from the feature quantity extraction algorithm output unit36the feature quantity extraction algorithm, i.e., the feature quantity calculation equation and the m feature extraction equations, processed as described above to estimate a solution to the target problem, and then supplies the feature quantity extraction algorithm to the feature quantity arithmetic unit53.

The detection content data acquisition unit52acquires the detection content data (such as data resulting from analyzing audio waveform of WAV in time axis and pitch axis) to detect the feature quantity in accordance with the feature quantity extraction algorithm, and then supplies the detection content data to the feature quantity arithmetic unit53.

The feature quantity arithmetic unit53calculates the detection content data based on the feature quantity extraction algorithm and the m feature extraction equations, acquired by the feature quantity extraction algorithm acquisition unit51, and calculates the solution to the target problem (for example, the tempo and the merriness of the music data).

The result output unit54notifies the user of the solution to the target problem (for example, the tempo and the merriness of the music data), for example, by outputting the solution to an external device, displaying the solution in text data, or outputting an audio as audio data responsive to the solution.

The evaluation value imparted to each gene in the genetic search method of the related art described with reference toFIG. 1is a value indicating the closeness to the target problem (or is an evaluation value such as AIC). A combination of the best feature quantities is determined to solve the target problem using a plurality of feature quantities in the method of the related art previously discussed with reference toFIG. 2. In this method, a value indicating the closeness to the target problem (or an evaluation value such as AIC) is imparted to each gene list if the target problem is solved using the plurality of feature extraction equations forming each gene list. The contribution ratio is imparted to each feature quantity (equation) in the gene list, and is not used at all in the selection process of the gene list from the gene lists of the current generation. An evaluation value imparted to each gene list is used in the selection process of the gene list from the gene lists of the current generation.

In contrast, the algorithm generator11ofFIG. 3causes the target problem to be solved with all the genes, calculates the contribution ratio of each gene indicating how much the gene contributes to the solution to the target problem, and performs the gene search with the contribution ratio serving as the evaluation value.

An unselected gene does not affect the next generation at all in the gene search method in the related art. Also in the technique disclosed in International Publication No. WO2007/049641, an evaluation value is determined on a per gene list basis and a gene list of a next generation is generated based on the evaluation value. An unselected gene listed in a gene list does not affect a next generation at all as in the same manner as in the technique in the related art. In contrast, the algorithm generator11ofFIG. 3uses the contribution ratio of each gene that is applied if the target problem is solved using all the current genes, and even an unselected gene affects the next generations.

The type of information from which the feature quantity extraction algorithm can be determined through the above-described process may be any information that can be represented in a matrix. More specifically, the type of input learning data to be supplied to the algorithm generator11, i.e., the type of detection data to be input to the feature quantity calculator12to determine the feature quantity may be any type of information that can be represented in a matrix, such as music, images, or other binary data.

For example, an audio waveform may be analyzed as a matrix of amplitude, time, and channel as shown inFIG. 13.

Also, for example, the image may be analyzed as a matrix of X axis and Y axis of a frame and RGB (red, green and blue) as shown inFIG. 14.

Further, a moving image may be analyzed as a matrix of X axis and Y axis of a frame, RGB, and time as shown in FIG.15.

As previously discussed, the algorithm generator11thus generates the feature quantity extraction algorithm that allows the target problem to be solved with all the genes used instead of with a single excellent gene used.

For example, the target problem may be to determine the estimated number of sales of copies of a new song that one artist is going to release. The music factors of that song including, not only a waveform of the sound of the song, but also the lyrics of the song, and the discography of that artist, affect the sales volume of the song as a feature quantity of the song, namely, the solution to the target problem. The algorithm generator11generates the feature quantity extraction algorithm using a variety of factors affecting the extraction of the feature quantity.

For example, the algorithm generator11is supplied with the sales volume of a plurality of songs as the supervisor data. The algorithm generator11is also supplied with the waveforms of the songs, jacket photographs, lyrics, and related information, as the learning content data. Using these pieces of information, the algorithm generator11performs a learning process with the sales volume of the songs being the target problem, thereby generating and supplying the feature quantity extraction algorithm to the feature quantity calculator12. If information, such as the waveform of the song that the artist is going to release, the jacket photograph of the song, the lyrics of the song, and the relating information of the song, is input to the feature quantity calculator12, the feature quantity calculator12provides the solution to the estimated sales volume of the song (for example, a prediction of the sales volume by several tens of thousands, or a rank indicating a large sales volume, a medium sales volume, or a small sales volume may also be acceptable instead of actual sales volume). In response to the feature quantity extraction algorithm from the algorithm generator11, the quantity calculator12extracts an accurate feature quantity taking into every data in a comprehensive manner.

In the above discussion, the information processing apparatus1includes the algorithm generator11and the feature quantity calculator12. Alternatively, the algorithm generator11and the feature quantity calculator12may be arranged as separate apparatuses. The algorithm generator11and the feature quantity calculator12may be remotely arranged from each other as long as the feature quantity extraction algorithm generated by the algorithm generator11can be supplied to the feature quantity calculator12.

The algorithm generation process of the algorithm generator11is described below with reference to a flowchart ofFIG. 16.

In step S1, the learning content data acquisition unit31in the algorithm generator11receives the learning data and then supplies the received learning data to the feature quantity calculator32. The supervisor data acquisition unit33receives the supervisor data and then supplies the received supervisor data to the machine learning unit34.

In step S2, a feature extraction equation list generation process to be discussed with reference toFIG. 17is performed.

In step S3, a feature quantity calculation process to be discussed with reference toFIG. 24is performed.

In step S4, a machine learning process to be discussed with reference toFIG. 25is performed.

In step S5, the machine learning unit34determines whether the feature quantity calculated in accordance with the obtained feature quantity calculation equation has reached a predetermined accuracy level with respect to the supervisor data or determines whether the user has performed an ending operation.

If it is determined in step S5that the predetermined accuracy level has not been reached and that the user has not performed the ending operation, processing returns to step S2to repeat step S2and subsequent steps.

If it is determined in step S5that the predetermined accuracy level has been reached or that the user has performed the ending operation, the machine learning unit34supplies in step S6the obtained feature quantity calculation equation and the feature extraction equations in that generation to the feature quantity extraction algorithm output unit36. The feature quantity extraction algorithm output unit36outputs the feature quantity calculation equation and the feature extraction equations in that generation to the feature quantity calculator12or to one of a transmission medium and a removable recording medium that supplies these pieces of data to the feature quantity calculator12. The algorithm generation process is thus completed.

The algorithm generation process generates the feature quantity extraction algorithm that causes the algorithm generator11to obtain a solution to the target problem with a plurality of feature extraction equations.

The feature extraction equation list generation process preformed in step S2ofFIG. 16is described below with reference to a flowchart ofFIG. 17.

In step S21, the feature extraction equation list generator35determines whether the feature extraction equation list to be generated is a second or later generation.

If it is determined in step S21that the feature extraction equation list is neither a second generation nor a later generation, i.e., the feature extraction equation list is a first generation, the feature extraction equation list generator35performs a random generation process of a list in step S22to be discussed with reference toFIG. 18.

If it is determined in step S21that the feature extraction equation list is a second generation or a later generation, the feature extraction equation list generator35performs in step S23a next generation list generation process to be discussed with reference toFIG. 19.

Subsequent to step S22or step S23, the feature extraction equation list generator35outputs in step S24the feature extraction equation list generated in one of the steps S22and S23to the feature quantity calculator32. Processing returns to step S2ofFIG. 16to proceed to step S3.

All the feature extraction equations in the list are generated randomly in the first generation, and the next generation list is generated in the second generation and later generations using the genetic search method.

The random list generation process to be performed in step S22ofFIG. 17is described below with reference to a flowchart ofFIG. 18.

In step S41, the feature extraction equation list generator35defaults an equation loop parameter M to one, thereby starting an equation loop. The equation loop is iterated by m times, where m is the number of feature extraction equations forming the feature extraction equation list.

In step S42, the feature extraction equation list generator35randomly determines the input data of an M-th feature extraction equation (hereinafter referred to as feature extraction equation [M]).

In step S43, the feature extraction equation list generator35randomly determines a target axis of the feature extraction equation [M] to be generated and one operator.

For example, the types of operators include a mean value, fast Fourier transform (FFT), a standard deviation (StDev), a ratio of occurrence, a low-pass filter (LPF), a high-pass filter (HPF), an absolute value (ABS), an integration operation, a maximum value (MaxIndex), and an unbiased variance (UVariance). Depending on the determined operator, the target axis is fixed. In such a case, the target axis fixed to the operator is used. If an operator requiring a parameter is determined, the parameter is set to be a random value or a predetermined value.

In step S44, the feature extraction equation list generator35determines whether the calculation results of the feature extraction equation [M] generated heretofore are a one-dimensional scalar value. If it is determined in step S44that the calculation results of the feature extraction equation [M] generated heretofore are not a one-dimensional scalar value, processing returns to step S43to repeat step S43and subsequent step to add one operator.

If it is determined in step S44that the calculation results of the feature extraction equation [M] generated heretofore are a one-dimensional scalar value, the feature extraction equation list generator35determines in step S45whether an equation loop parameter M is smaller than a maximum value m. If it is determined in step S45that the equation loop parameter M is smaller than the maximum value m, the equation loop parameter M is incremented by one. Processing returns to step S42to repeat step S42and subsequent steps. If it is determined in step S45that the equation loop parameter M is not smaller than the maximum value m (i.e., the equation loop parameter M equals the maximum value m), the feature extraction equation list generator35terminates the equation loop. Processing returns to step S22ofFIG. 17to proceed to step S24.

The feature extraction equation list of the first generation is thus generated.

The next generation list generation process performed in step S23ofFIG. 17is described below with reference to a flowchart ofFIG. 19.

In step S61, the feature extraction equation list generator35determines values of ms, mx, mm, and mr to satisfy an equation of m=ms+mx+mm+mr (m collectively refers to the feature extraction equation) where ms represents the number of feature extraction equations for performing the selection operation (copy operation) (selection count), mx represents the number of feature extraction equations for performing the crossover operation (crossover count), mm represents the number of feature extraction equation for performing the mutation operation (mutation count), and mr represents the number of feature extraction equations for performing the random generation operation (random generation count).

The values ms, mx, mm and mr may be predetermined ratios or may be randomly determined to satisfy the equation of m=ms+mx+mm+mr.

In step S62, the selection process to be discussed later with reference toFIG. 20is performed.

In step S63, the crossover process to be discussed with reference toFIG. 21is performed.

In step S64, the mutation process to be discussed with reference toFIG. 22is performed.

In step S65, the random generation process to be discussed with reference toFIG. 23is performed.

Processing returns to step S23ofFIG. 17to proceed to step S24.

Through these processes, the feature extraction equation list of the second generation is generated based on the gene search.

The selection operation performed in step S62ofFIG. 19is described below with reference to a flowchart ofFIG. 20.

In step S91, the feature extraction equation list generator35sorts the feature extraction equations of the current generation (prior to the generation for which the feature extraction equation list is currently being generated) in accordance with the order of contribution ratios.

In step S92, the feature extraction equation list generator35adopts the ms feature extraction equations for the next generation. Processing returns to step S62ofFIG. 19to proceed to step S63.

Through these steps, the feature extraction equation having a high contribution ratio is selected and copied to the feature extraction equation list of the next generation.

The crossover process performed in step S63ofFIG. 19is described below with reference to a flowchart ofFIG. 21.

In step S121, the feature extraction equation list generator35defaults a crossover loop parameter MX to one and then starts a crossover loop. The crossover loop is iterated by mx times with mx being equal to the crossover count mx.

In step S122, the feature extraction equation list generator35weights all the feature extraction equations contained in the current generation list so that a feature extraction equation having a higher contribution ratio is selected with a better chance, then randomly selects a feature extraction equation and handles the selected feature extraction equation as an equation A.

In step S123, the feature extraction equation list generator35weights all the feature extraction equations contained in the current generation list so that a feature extraction equation having a higher contribution ratio is selected with a better chance, then randomly selects a feature extraction equation and handles the selected feature extraction equation as an equation B.

In step S124, the feature extraction equation list generator35determines whether the equation A is different from the equation B. If it is determined in step S124that the equation A is not different from the equation B, processing returns to step S123to repeat steps S123and S124to select a new equation B until it is determined that the equation A is different from the equation B.

If it is determined in step S124that the equation A is different from the equation B, the feature extraction equation list generator35generates in step S125a new feature extraction equation by genetically combining part of each of the equation A and the equation B.

The feature extraction equation list generator35combines parts of the two equations in a combination so that a scalar quantity is determined from input data by calculating the feature extraction equation subsequent to the combination, i.e., in a combination so that no inconsistency is caused in the target axes if the calculation process is performed on the feature extraction equations starting with the leading feature extraction equation.

In step S126, the feature extraction equation list generator35adds the new feature extraction equation generated in step S125to the equations of the next generation.

In step S127, the feature extraction equation list generator35determines whether a crossover loop parameter MX is smaller than a crossover count mx that is a maximum value. If it is determined in step S127that the crossover loop parameter MX is smaller than the crossover count mx, the crossover loop parameter MX is incremented by one. Processing returns to step S122to repeat step S122and subsequent steps. If it is determined in step S127that the crossover loop parameter MX is not smaller than the crossover count mx, i.e., the crossover loop parameter MX equals the crossover count mx, the feature extraction equation list generator35terminates the crossover loop. Processing returns to step S63ofFIG. 19to proceed to step S64.

Each time the crossover loop from step S122through step S126is performed, one of the feature extraction equations (genes) contained in the feature extraction equation list of the next generation is generated. When the crossover loop is completed, mx of the feature extraction equations (genes) contained in the feature extraction equation list have been generated.

The feature extraction equations are thus weighted in this way so that a feature extraction equation having a higher contribution, ratio is selected with a better chance, and then one feature extraction equation is selected. Using the selected feature extraction equation, the feature extraction equation list generator35performs the crossover operation, thereby generating the feature extraction equation contained in the feature extraction equation list of the next generation.

The mutation operation performed in step S64ofFIG. 19is described below with reference to a flowchart ofFIG. 22.

In step S151, the feature extraction equation list generator35defaults a mutation loop parameter MM to one, and then starts a mutation loop. The mutation loop is iterated by mm times with mm being equal to the mutation count mm.

In step S152, the feature extraction equation list generator35weights all the feature extraction equations contained in the current generation list so that a feature extraction equation having a higher contribution ratio is selected with a better chance and then randomly selects one feature extraction equation as equation A.

In step S153, the feature extraction equation list generator35generates a new feature extraction equation by performing the mutation operation. More specifically, through the mutation operation, the feature extraction equation list generator35modifies or deletes part of the selected equation A, or modifies an internal parameter of the equation A.

The feature extraction equation list generator35modifies part of the feature extraction equation in a manner such that a scalar quantity is determined from input data by calculating the feature extraction equation subsequent to the modification of the part of the feature extraction equation, i.e., in a manner such that no inconsistency is caused in the processing axes if the calculation process is performed on the feature extraction equations starting with the leading feature extraction equation.

In step S154, the feature extraction equation list generator35adds the new feature extraction equation generated in step S153to the feature extraction equation of the next generation.

In step S155, the feature extraction equation list generator35determines whether the mutation loop parameter MM is smaller than the mutation count mm. If it is determined in step S155that the mutation loop parameter MM is smaller than the mutation count mm, the feature extraction equation list generator35increments the mutation loop parameter MM by one. Processing returns to step S152to repeat step S152and subsequent steps. If it is determined in step S155that the mutation loop parameter MM is not smaller than the mutation count mm, i.e., the mutation loop parameter MM equals the mutation count mm, the feature extraction equation list generator35terminates the mutation loop. Processing returns to step S64ofFIG. 19to proceed to step S65.

Each time the mutation loop of step S152through step S154is performed, one of the feature extraction equations (genes) to be contained in the feature extraction equation list of the next generation is generated. When the mutation loop is completed, mm of the feature extraction equations (genes) contained the feature extraction equation list have been generated.

The feature extraction equations are thus weighted in this way so that a feature extraction equation having a higher contribution ratio is selected with a better chance, and then one feature extraction equation is selected. Using the selected feature extraction equation, the feature extraction equation list generator35performs the mutation operation, thereby generating the feature extraction equation contained in the feature extraction equation list of the next generation.

The random generation process performed in step S65ofFIG. 19is described below with reference to a flowchart ofFIG. 23.

In step S181, the feature extraction equation list generator35defaults a random generation loop parameter MR to one and then starts a random generation loop. The random generation loop is iterated by mr times with mr being equal to the number of feature extraction equations in the feature extraction equation list.

In step S182, the feature extraction equation list generator35randomly selects input data corresponding to a MR-th feature extraction equation (hereinafter also referred to as a feature extraction equation MR) from among a plurality of pieces of learning input data.

In step S183, the feature extraction equation list generator35randomly determines the target axis of the feature extraction equation MR to be generated and one operation.

For example, the types of operators include a mean value, fast Fourier transform (FFT), a standard deviation (StDev), a ratio of occurrence, a low-pass filter (LPF), a high-pass filter (HPF), an absolute value (ABS), an integration operation, a maximum value (MaxIndex), and an unbiased variance (UVariance). Depending on the determined operator, the processing target axis is fixed. In such a case, the processing target axis fixed to the operator is used. If an operator requiring a parameter is determined, the parameter is set to be a random value or a predetermined value.

In step S184, the feature extraction equation list generator35determines whether the calculation results of the feature extraction equation MR generated heretofore are a one-dimensional scalar value. If it is determined in step S184that the calculation results of the feature extraction equation MR generated heretofore are not a one-dimensional scalar value, processing returns to step S183to repeat step S183and subsequent step to add one operator.

If it is determined in step S184that the calculation results of the feature extraction equation MR generated heretofore are a one-dimensional scalar value, the feature extraction equation list generator35determines in step S185whether a random generation loop parameter MR is smaller than a maximum value mr. If it is determined in step S185that the random generation loop parameter is smaller than the maximum value mr, the random generation loop parameter is incremented by one. Processing returns to step S182to repeat step S182and subsequent steps. If it is determined in step S185that the random generation loop parameter is not smaller than the maximum value mr (i.e., the random generation loop parameter equals the maximum value mr), the feature extraction equation list generator35terminates the random generation loop. Processing returns to step S65ofFIG. 19and then returns to step S23ofFIG. 17to proceed to step S24.

Each time the random generation loop from step S182through step S185is performed, one of the feature extraction equations (genes) contained in the feature extraction equation list of the next generation is generated. When the random generation loop is completed, mr of the feature extraction equations (genes) contained in the feature extraction equation list have been generated.

The random generation process generates parts of the feature extraction equations contained of the feature extraction equation list of the next generation.

The feature quantity calculation process performed in step S3ofFIG. 16is described below with reference to a flowchart ofFIG. 24.

In step S211, the feature quantity calculator32acquires from the feature extraction equation list generator35the feature extraction equation list, defaults an equation loop parameter M to one, and starts an equation loop. The equation loop is iterated by m times with m being the number of feature extraction equations forming the feature extraction equation list.

In step S213, the feature quantity calculator32calculates a feature quantity of the learning data corresponding to a content loop parameter Q using the feature extraction equation of the equation loop parameter M.

In step S214, the feature quantity calculator32determines whether the content loop parameter Q is smaller than a maximum value q. If it is determined in step S214that the content loop parameter Q is smaller than the maximum value q, the content loop parameter Q is incremented by one. Processing returns to step S213to repeat step S213and subsequent steps.

If it is determined in step S214that the content loop parameter Q is not smaller than a maximum value q (i.e., the content loop parameter Q equals the maximum value q), the feature quantity calculator32terminates the content loop. Processing proceeds to step S215.

In step S215, the feature quantity calculator32determines whether an equation loop parameter M is smaller than the maximum value m. If it is determined in step S215that the equation loop parameter M is smaller than the maximum value m, the equation loop parameter M is incremented by one. Processing returns to step S212to repeat step S212and subsequent steps. If it is determined in step S215that the equation loop parameter M is not smaller the maximum value m (i.e., the equation loop parameter M equals the maximum value m), the feature quantity calculator32terminates the equation loop. Processing returns to step S3ofFIG. 16to proceed to step S4.

The feature quantity used in each of the feature extraction equations is thus calculated. The feature quantities calculated here are not used as the evaluation values to advance the feature extraction equation in generation. The evaluation value to advance the feature extraction equation in generation is not the feature quantity calculated here but the contribution ratio of the corresponding feature extraction equation determined using the feature quantity.

The machine learning process performed in step S4ofFIG. 16is described below with reference to a flowchart ofFIG. 25.

In step S241, the machine learning unit34defaults a supervisor loop parameter K to one and then starts a supervisor loop. The supervisor loop is iterated by k times with k being the number of pieces of supervisor data acquired by the supervisor data acquisition unit33.

In step S242, a learning process to be discussed with reference toFIG. 26is performed.

In step S243, the machine learning unit34determines whether a supervisor loop parameter K is smaller than a maximum value k. If it is determined in step S243that the supervisor loop parameter K is smaller than the maximum value k, the supervisor loop parameter K is incremented by one. Processing returns to step S242to repeat step S242and subsequent steps. If it is determined in step S243that the supervisor loop parameter K is not smaller than the maximum value k (i.e., the supervisor loop parameter K equals the maximum value k), the machine learning unit34terminates the supervisor loop. Processing proceeds to step S244.

A contribution ratio calculation process to be discussed with reference toFIG. 27later is performed in step S244. Processing returns to step S4ofFIG. 16to proceed to step S5.

The learning process performed in step S242ofFIG. 25is described below with reference to a flowchart ofFIG. 26.

In step S271, the machine learning unit34randomly generates an initial set of feature extraction equations to be used to generate the feature quantity calculation equation. More specifically, the machine learning unit34randomly generates the initial set of a plurality of genes. The gene here determines whether to use each feature extraction equation (i.e., whether a combination coefficient in the feature quantity calculation equation has a predetermined value or not, in other words, whether the combination coefficient in the feature quantity calculation equation is zero or not).

In step S273, the machine learning unit34learns the feature quantity calculation equation [k] (every k feature extraction equations of k target problems) through linear regression/discriminant analysis. In the learning process, the machine learning unit34uses calculation results of a feature extraction equation selected as a feature extraction equation to be used, from among the calculation results of the feature quantity supplied from the feature quantity calculator12. In other words, the machine learning unit34uses the feature quantity resulting from the selected feature extraction equation.

In step S274, the machine learning unit34evaluates the learning results in step S273using AIC.

In step S275, the machine learning unit34determines whether a population loop parameter P is smaller than a maximum value p. If it is determined in step S275that the population loop parameter P is smaller than the maximum value p, the population loop parameter P is incremented by one. Processing returns to step S273to repeat step S273and subsequent steps. If it is determined in step S275that the population loop parameter P is not smaller than the maximum value p (i.e., the population loop parameter P equals the maximum value p), the machine learning unit34terminates the population loop.

In step S276, the machine learning unit34selects a feature extraction equation to be used, with AIC being as a evaluation value, and performs the crossover and mutation operations. The generation thus advances and feature extraction equations are changed.

In step S277, the machine learning unit34determines whether the evaluation value of the best gene is updated for a predetermined number of generations. If it is determined in step S277that the evaluation value of the best gene is updated or that a predetermined number of generations has not advanced since the last updating of the evaluation value, processing returns to step S272to repeat step S272and subsequent steps.

If it is determined in step S277that the evaluation value of the best gene has not been updated for the predetermined generations, the machine learning unit34outputs the best gene as the learning results. Processing returns to step S242to proceed to step S243.

The genetic search method using as the gene the combination of feature extraction equations to be used/unused determines a combination of the feature extraction equations to be used in the feature quantity calculation equation.

In the above discussion, the genetic search method and AIC are used in the machine learning. The machine learning may be performed using a different method. The output value of each feature extraction equation to be used/unused may be determined using the neighbor search method instead of the genetic algorithm.

The contribution ratio calculation process performed in step S244ofFIG. 25is described below with reference to a flowchart ofFIG. 27.

In step S301, the machine learning unit34defaults an equation loop parameter M to one and starts an equation loop. The equation loop is iterated by m with m being the number of feature extraction equations forming the feature extraction equation list.

In step S302, the machine learning unit34calculates a standard deviation StDev[M] of all the learning input data provided for learning in accordance with the feature extraction equation [M].

In step S303, the machine learning unit34determines whether an equation loop parameter M is smaller than a maximum value m. If it is determined in step S303that the equation loop parameter M is smaller than the maximum value m, the equation loop parameter M is incremented by one. Processing returns to step S301to repeat step S301and subsequent steps. If it is determined in step S303that the equation loop parameter M is not smaller than the maximum value m (i.e., the equation loop parameter M equals the maximum value m), the machine learning unit34terminates the equation loop.

In step S304, the machine learning unit34defaults to zero an overall contribution ratio Cont[M] that is the sum of contribution ratios of the feature extraction equations corresponding to all the types of supervisors.

In step S305, the feature extraction equation list generator35defaults a supervisor loop parameter K to one and then starts a supervisor loop. The supervisor loop is iterated by k times with k being the number of pieces of supervisor data acquired by the supervisor data acquisition unit33.

In step S306, the machine learning unit34defaults an equation loop parameter M to one and then starts an equation loop. The equation loop is iterated by m times with m being the number of feature extraction equations forming the feature extraction equation list.

In step S307, the machine learning unit34calculates a contribution ratio (XM) of a feature extraction equation using the previously described equation (3). The feature extraction equation here is used to estimate target metadata Y (indicating tempo and merriness, for example) responsive to a supervisor loop parameter K.

In step S308, the machine learning unit34determines whether an equation loop parameter M is smaller than a maximum value m. If it is determined in step S308that the equation loop parameter M is smaller than the maximum value m, the equation loop parameter M is increment by one. Processing returns to step S307to repeat step S307and subsequent steps. If it is determined in step S308that the equation loop parameter M is not smaller than the maximum value m (i.e., the equation loop parameter M equals the maximum value m), the machine learning unit34terminates the equation loop.

In step S309, the machine learning unit34determines whether a supervisor loop parameter K is smaller than a maximum value k. If it is determined in step S309that the supervisor loop parameter K is smaller than the maximum value k, the supervisor loop parameter K is incremented by one. Processing returns to step S306to repeat step S306and subsequent steps. If it is determined in step S309that the supervisor loop parameter K is not smaller than the maximum value k (i.e., the supervisor loop parameter K equals the maximum value k), the machine learning unit34terminates the supervisor loop.

In step S310, the machine learning unit34outputs an overall contribution ratio Cont[M] that is the sum of contribution ratio (XM) of the feature extraction equation of all the supervisor data. Processing returns to step S244ofFIG. 25and then to step S4ofFIG. 16to proceed to step s5.

The contribution ratio of the feature extraction equation in the feature quantity calculation equation to solve the target problem is thus determined. The contribution ratio is used as an evaluation value to advance in generation in the genetic search method generating the feature quantity extraction algorithm.

Through the processes ofFIGS. 16 through 27, the algorithm generator11generates the feature quantity extraction algorithm, and then supplies the generated feature quantity extraction algorithm to the feature quantity calculator12arranged in the same apparatus (information processing apparatus1) or in a different apparatus. In accordance with the feature quantity extraction algorithm, the feature quantity calculator12analyzes the detection data supplied for the detection of the feature quantity and calculates and outputs the feature quantity.

The feature quantity calculation process performed by the feature quantity calculator12is described below with reference to a flowchart ofFIG. 28.

In step S331, the feature quantity arithmetic unit53in the feature quantity calculator12determines whether the feature quantity extraction algorithm for detecting the feature quantity of the detection data is stored therewithin.

If it is determined in step S331that the feature quantity extraction algorithm is not stored, the feature quantity extraction algorithm acquisition unit51acquires the feature quantity extraction algorithm for detecting the feature quantity of the detection data and then supplies the acquired feature quantity extraction algorithm to the feature quantity arithmetic unit53. The feature quantity extraction algorithm for detecting the feature quantity of the detection data is the one the algorithm generator11has generated using the learning data corresponding to the detection data, and the supervisor data.

Subsequent to the determination in step S331that the feature quantity extraction algorithm is stored internally, or subsequent to step S332, the detection content data acquisition unit52acquires, in step S333, the detection data as a feature quantity extraction target and supplies the detection data to the feature quantity arithmetic unit53.

In step S334, the feature quantity arithmetic unit53calculates the feature quantity as a solution to the target problem in the detection data as the feature quantity extraction target supplied from the detection content data acquisition unit52, using the corresponding feature quantity extraction algorithm. The feature quantity arithmetic unit53then supplies the resulting feature quantity to the result output unit54.

In step S335, the result output unit54outputs the feature quantity calculated in step S334by the feature quantity arithmetic unit53to notify the user of the feature quantity. For example, the result output unit54outputs the feature quantity to an external device, displays the feature quantity in the form of text data, or outputs audio data in the form of an audio responsive to the solution.

In this way, the target problem is solved using all the genes, the contribution ratio at which each gene has contributed to the solution to the target problem is calculated, and the gene search performed using the contribution ratio as the evaluation value results in the feature quantity extraction algorithm. A similar problem to desired input data is thus solved.

The feature quantity extraction algorithm for solving the target problem is generated by the information processing apparatus1ofFIG. 3or by an information processing system including the algorithm generator11and the feature quantity calculator12as separate apparatuses. To generate the feature quantity extraction algorithm, a predetermined number of feature extraction equations (genes) of the first generation is generated, and all the feature extraction equations are calculated using all the learning content data. Using the calculation results of all the feature extraction equations, the machine learning is performed to determine the feature quantity calculation equation for extracting the target feature quantity (the solution to the target problem). The contribution ratio of each feature extraction equation in the feature quantity calculation equation is also calculated. The genetic search method is performed using the contribution ratio of each feature extraction equation as the evaluation value and the plurality of feature extraction equations of the current generation as the genes of the current generation. The genes of the next generation, namely, the feature extraction equations of the next generation thus result. With the generations advancing, the feature quantity extraction algorithm determining the solution to the target problem at a predetermined accuracy level is thus provided.

Instead of finding a single excellent gene capable of solving the target problem, the algorithm generator11efficiently searches for a plurality of genes that solve the target problem in cooperation with each other. A feature quantity extractor for automatically extracting a plurality of feature quantities from the content data is thus automatically constructed.

When the target problem is solved using a set of a plurality of genes instead of a single gene, the use of a plurality of feature extraction equation lists as disclosed in International Publication No. WO2007/049641 is not necessary. In this way, the plurality of genes that solve the target problem in cooperation with each other are searched efficiently with a smaller number of arithmetic operations.

The method steps described above may be performed using hardware or software. If software is used, the above-described method steps are performed by a personal computer500ofFIG. 29.

As shown inFIG. 29, a central processing unit (CPU)501executes a program stored on a read-only memory (ROM)502or a program loaded from a storage unit508to a random-access memory (RAM)503. As necessary, the RAM503stores data that the CPU501needs to execute a variety of processes.

The CPU501, the ROM502, and the RAM503are interconnected to each other via an internal bus504. The internal bus504is also connected to an input-output interface505.

The input-output interface505connects to an input unit506including a keyboard and a mouse, an output unit507including a display such as a cathode-ray tube (CRT) or a liquid-crystal display (LCD), and a loudspeaker, the storage unit508including a hard disk, and a communication unit509including a modem and a terminal adaptor. The communication unit509performs a communication process via a variety of networks including a telephone line and a cable-television (CATV) network.

A drive510is also connected to the input-output interface505as necessary. The drive510is loaded with a removable medium521, such as a magnetic disk, an optical disk, a magneto-optical disk, or a semiconductor memory, as appropriate. A computer program read from a removable medium521is installed onto the storage unit508as necessary.

The method steps describing the program recorded on the recording medium are performed in the time-series order described above. Alternatively, the method steps may be performed in parallel or separately instead of being performed in the time-series order described above.

The term system in the context of the specification refers to an entire arrangement including a plurality of apparatuses.