Data processing sequence generation method, generation apparatus, and computer program

The method and device enhance the diversity and effectiveness of data processing sequences by probabilistically arranging genes and evaluating them against target criteria, thereby improving the efficiency of data processing.

JP2025135853APending Publication Date: 2025-09-19SEIKO EPSON CORP
View PDF 1 Cites 0 Cited by

Patent Information

Application Number
JP2024033865
Authority / Receiving Office
JP · JP
Patent Type
Applications
Current Assignee / Owner
Filing Date
2024-03-06
Publication Date
2025-09-19

AI Technical Summary

Technical Problem

Conventional genetic programming techniques for generating data processing sequences, such as image processing sequences, often result in fixed structures due to limited variation in linkage information, reducing the diversity of candidate sequences that can satisfy reference conditions.

Method used

A method and device that generate data processing sequences by arranging genes to represent layers and set connection weights probabilistically, allowing for the generation of diverse sequences, and evaluate them against target data to identify sequences that meet predetermined criteria.

Benefits of technology

This approach enhances the variation of data processing sequences, improving the likelihood of identifying sequences that satisfy the similarity criteria by generating effective solutions, thereby enhancing the efficiency and effectiveness of data processing.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 2025135853000001_ABST
    Figure 2025135853000001_ABST
Patent Text Reader

Abstract

To provide a technique which reduces the possibility of a data processing sequence structure to be generated becoming fixed to a certain range.SOLUTION: A data processing sequence generation method comprises the steps of: (a) generating a one-generation population; (b) generating data processing sequences, and including a step (b1) of setting a connection weight related to a probability of assigning a node element to at least one unconnected node, and a step (b2) of assigning a node element to any of the at least one unconnected node by using the connection weight and genes; (c) calculating an evaluation value per data processing sequence expressed by the population; and (d) specifying the data processing sequence satisfying predetermined standard conditions by using the plural evaluation values corresponding to each of the plural data processing sequences.SELECTED DRAWING: Figure 8
Need to check novelty before this filing date? Find Prior Art

Description

[Technical Field]

[0001] The present disclosure relates to techniques for generating data processing sequences. [Background technology]

[0002] Conventionally, a technique for structurally representing individuals like a tree structure by using genetic programming is known (Patent Document 1). [Prior art documents] [Patent documents]

[0003] [Patent Document 1] Japanese Patent Application Laid-Open No. 2007-87055 Summary of the Invention [Problem to be solved by the invention]

[0004] Conventional techniques use genetic programming to generate multiple image processing sequences and repeatedly evaluate the image processing sequences for each generation to identify an image processing sequence that satisfies a reference condition. Furthermore, conventional techniques generate image processing sequences using a gene table that associates genes with their linkages. The linkage indicates the amount of data to be input to a function, such as an image processing filter, specified by the gene. Because information related to the linkages generally has little variation, the structure of the generated image processing sequence may be fixed within a certain range. If the structure of the generated image processing sequence is fixed, the variation of candidate image processing sequences for identifying an image processing sequence that satisfies the reference condition may be reduced. This issue is not limited to techniques for generating image processing sequences, but is common to techniques for generating data processing sequences for processing data. [Means for solving the problem]

[0005] According to a first aspect of the present disclosure, there is provided a method for generating a data processing sequence. This generation method includes the steps of: (a) generating a population of one generation by generating a plurality of individuals in which a plurality of genes are arranged to represent data processing sequences each including, as node elements, an input layer assigned to an upstream node, at least one filter layer for processing data, and an output layer assigned to a downstream node; (b) generating the data processing sequences corresponding to each of the plurality of individuals, the steps including: (b1) setting a connection weight related to the probability that the node element will be assigned to at least one unconnected node connected to the input side of the output node to which the node element is assigned; and (b2) assigning the node element to one of the at least one unconnected node using the connection weight and the gene; (c) processing target data for each of the plurality of data processing sequences represented by the population, and comparing the output data output for each data processing sequence with target data associated with the target data to calculate an evaluation value indicating the similarity between the output data and the target data; and (d) using the evaluation values ​​corresponding to each of the plurality of data processing sequences to identify the data processing sequences that satisfy predetermined criteria.

[0006] According to a second aspect of the present disclosure, there is provided a data processing sequence generation device, comprising: an individual generation unit that generates a population of one generation by generating a plurality of individuals, each of which has a plurality of genes arranged to represent a data processing sequence, the data processing sequence including, as node elements, an input layer assigned to an upstream node, at least one filter layer for processing data, and an output layer assigned to a downstream node; a sequence generation unit that generates the data processing sequences corresponding to the plurality of individuals, the sequence generation unit setting a connection weight relating to a probability that the node element will be assigned to at least one unconnected node connected to the input side of the output node to which the node element is assigned, and assigning the node element to one of the at least one unconnected node using the connection weight and the genes; a calculation unit that processes target data for each of the plurality of data processing sequences represented by the population, comparing output data output for each of the data processing sequences with target data associated with the target data, and calculating an evaluation value indicating a similarity between the output data and the target data; and an identification unit that uses the evaluation values ​​corresponding to each of the plurality of data processing sequences to identify the data processing sequences that satisfy a predetermined reference condition.

[0007] According to a third aspect of the present disclosure, there is provided a computer program product for causing a computer to generate a data processing sequence. This computer program has the following functions: (a) generating a population of one generation by generating a plurality of individuals in which a plurality of genes are arranged to represent a data processing sequence including, as node elements, an input layer assigned to an upstream node, at least one filter layer for processing data, and an output layer assigned to a downstream node; (b) generating the data processing sequences corresponding to each of the plurality of individuals, the functions including: (b1) setting a connection weight related to the probability that the node element will be assigned to at least one unconnected node connected to the input side of the output node to which the node element is assigned; and (b2) assigning the node element to one of the at least one unconnected node using the connection weight and the genes; (c) processing target data for each of the plurality of data processing sequences represented by the population, comparing the output data output for each of the data processing sequences with target data associated with the target data, and calculating an evaluation value indicating the similarity between the output data and the target data; and (d) using the evaluation values ​​corresponding to each of the plurality of data processing sequences, identifying the data processing sequence that satisfies a predetermined standard condition. [Brief explanation of the drawings]

[0008] [Figure 1] FIG. 1 is a diagram for explaining a generation system according to an embodiment. [Figure 2] FIG. 1 is a diagram illustrating a storage device. [Figure 3] FIG. 10 is a diagram showing an example of a training data group. [Figure 4] FIG. 10 is a diagram for explaining a population generated in one routine. [Figure 5] FIG. 1 is a diagram for explaining a gene table. [Figure 6] FIG. 10 is a diagram showing a parameter table. [Figure 7] 10 is a flowchart showing a process executed by a generating device. [Figure 8] 10 is a detailed flowchart of the generation processing step of step S10. [Figure 9] 9 is a detailed flowchart of step S106 shown in FIG. 8. [Figure 10] FIG. 1 is a diagram illustrating step S106. [Figure 11] FIG. 2 is a diagram illustrating step S106. [Figure 12] FIG. 3 is a diagram illustrating step S106. [Figure 13] FIG. 10 is a diagram showing a connection destination table in a data processing sequence during translation. [Figure 14] 8 is a detailed flowchart of step S50 shown in FIG. 7. DETAILED DESCRIPTION OF THE INVENTION

[0009] A. Implementation: FIG. 1 is a diagram illustrating a generation system 10 according to an embodiment. The generation system 10 includes a generation device 20 and a sensor device 200. The generation device 20 and the sensor device 200 can transmit and receive data via wired or wireless communication. The sensor device 200 is a sensor that acquires the physical quantity of an object, and may be an imaging device that detects the intensity of light, which is a physical quantity, to generate an image, or a voltage sensor that acquires voltage, which is a physical quantity. In this embodiment, the sensor device 200 is an imaging device. The captured image, which is data acquired by the sensor device 200, is transmitted to the generation device 20.

[0010] The generation device 20 has a sequence generation function that generates a specific data processing sequence DSq to obtain desired data after data processing, and a data processing function that uses the specific data processing sequence DSq, which is executed after executing the sequence generation function. The data processing function processes target data as input data using the data processing sequence Sq. For example, the generation device 20 may automatically generate the specific data processing sequence DSq based on a captured image to obtain desired data to achieve a desired purpose. For example, the generation device 20 processes an image of a circuit board, an industrial product, captured by the sensor device 200 using the specific data processing sequence DSq based on the captured image, thereby outputting a binary image in which defective areas are represented as black images and other areas as white images as the desired image. Based on this binary image, the presence and location of defects are identified by a user or a device, thereby inspecting the industrial product. For example, the generation device 20 may automatically generate the specific data processing sequence DSq that determines the type of target data based on the captured image, which is input data, and outputs one or more scalar quantities corresponding to the target data. The type of input data is the discrimination result according to the target data, such as the label discrimination result output from a machine learning model as a filter layer. The scalar quantity according to the target data is a temperature or voltage value, such as the output result of regression analysis by a machine learning model as a filter layer.

[0011] The sequence generation function generates a plurality of data processing sequences Sq using genetic programming, and identifies a specific data processing sequence DSq from the generated plurality of data processing sequences Sq to obtain desired data after data processing. In this embodiment, the sequence generation function and the data processing function are installed in a single generation device 20, but this is not limited to this. In other embodiments, the sequence generation function and the data processing function may be installed in separate devices or may exist on a cloud.

[0012] The generation device 20 is an electronic computer such as a personal computer. The generation device 20 includes a processor 25, a storage device 70, an input unit 150, and a display unit 160. The processor 25 controls the operation of the generation device 20 by executing various programs stored in the storage device 70. The detailed functions of the processor 25 will be described later. The storage device 70 is configured with memories such as RAM and ROM. The storage device 70 stores various programs for implementing the functions of the processor 25 and various data used to generate the data processing sequence Sq. The details of the storage device 70 will be described later. The input unit 150 is an interface that accepts information from an external device. For example, the input unit 150 accepts input of data from the sensor device 200 or data generated using another device. For example, the input unit 150 accepts input of node elements NE that are candidates for node elements NE that constitute the data processing sequence Sq. The display unit 160 displays various information. The display unit 160 is, for example, an LCD monitor.

[0013] The processor 25 executes various programs in the storage device 70 to function as a sequence generation unit 30, a data processing unit 40, an identification unit 50, and a display control unit 60. Note that some of the functions executed by the processor 25 may be realized by hardware circuits. Here, in this disclosure, the term "processor" encompasses a CPU and a GPU.

[0014] The sequence generation unit 30 generates a sequence set consisting of multiple data processing sequences Sq with different combinations of node elements NE by structurally representing the gene sequences indicated by the individuals IV, like a tree structure. The data processing sequence Sq is represented by a combination of multiple node elements NE. The node elements NE include: (i) an input layer (in) that is a node element NE that inputs data; (ii) at least one filter layer (Ft) that is an intermediate node element NE between the input layer (in) and the output layer (out) and processes the data; and (iii) an output layer (out) that is a node element NE that outputs output data PM, which is the final data after data processing. In other words, the data processing sequence Sq includes, as node elements NE, an input layer (in) assigned to the upstream node, at least one filter layer (Ft), and an output layer (out) assigned to the downstream node. The node elements NE may also include parameters P set in the filter layer (Ft). Among the node elements NE, the output layer (out), filter layer (Ft), and input layer (in) are also referred to as sequence elements NES, and the parameters P are also referred to as parameter elements NEP.

[0015] The sequence generation unit 30 includes an individual generation unit 32 and a gene translation unit 34. The individual generation unit 32 generates an individual IV composed of multiple genes arranged one-dimensionally or two-dimensionally based on a genetic algorithm. The multiple genes constituting the individual IV include first-type genes corresponding to the connection positions of node elements NE (described later) and second-type genes corresponding to the node elements NE. The connection positions are determined using the first-type genes and connection weights Cw (described later). The connection weights Cw are parameters related to the probability that a layer node element FNE of either the input layer in or the filter layer Ft will be assigned to an unconnected node ND during the process of generating the data processing sequence Sq. In other words, the first-type genes are genes that represent the connection positions, which are the positions to which the node elements NE are assigned. For each numerical range of the gene indicating the appearance range of the node element NE, the layer node element NE is assigned to the unconnected node ND, a parameter P is assigned to the node element NE, and the connection positions are determined.

[0016] The individual generation unit 32 generates a predetermined number of individuals IV for each generation G. In this embodiment, the individual generation unit 32 generates individuals IV of a predetermined gene length by arranging genes one-dimensionally. The combinations of node elements NE of the multiple data processing sequences Sq are different for each generation G. For the first generation, the individual generation unit 32 generates a population 84 consisting of multiple individuals IV by randomly allocating numbers from 0 to three decimal places as genes at each gene locus of the individuals IV. For the second generation and beyond, the individual generation unit 32 generates new individuals IV from individuals IV of the previous parent generation that have a high evaluation value, which will be described later, using at least one of crossover and mutation, thereby generating a population 84 that is a collection of the newly generated individuals IV and individuals IV maintained in the parent generation, i.e., individuals IV obtained by replicating the individual IV of the parent generation.

[0017] The gene translation unit 34 translates each gene of the individual IV by referring to a gene table 88, a weight function 86, and the like, which are stored in the storage device 70 and will be described later, to generate a data processing sequence Sq represented in a tree structure. The gene translation unit 34 first sets an unconnected node ND as an input destination of the output layer out. Details of the gene table 88 and the like, which the gene translation unit 34 refers to when generating the data processing sequence Sq, will be described later.

[0018] The data processing unit 40 processes the data input to the input layer in using the data processing sequence Sq generated by the gene translation unit 34 or the specific data processing sequence DSq stored in the memory device 70, and outputs the processed output data PM from the output layer out.

[0019] The identification unit 50 functions as a calculation unit that processes learning data LM as target data using a data processing sequence Sq indicated by an individual IV, compares output data PM, which is the data obtained after the data processing, with target data TM associated with the learning data LM, and calculates an evaluation value EV indicating the similarity between the output data PM and the target data TM. The identification unit 50 calculates an evaluation value EV for each of multiple data processing sequences Sq indicated by multiple individuals IV in one generation G. The calculated evaluation value EV is stored in the storage device 70 in association with the individual IV. The identification unit 50 also functions as an identification unit that identifies a data processing sequence Sq that satisfies predetermined reference conditions as a specific data processing sequence DSq. The reference conditions include conditions using the evaluation value EV. A specific method for identifying a specific data processing sequence DSq will be described later.

[0020] The evaluation value EV can be, for example, one of the mean squared error (MSE), peak signal-to-noise ratio (PSNR), and structural similarity (SSIM). When MSE is used as the evaluation value, the smaller the MSE value, the higher the similarity SD between the output data PM and the target data TM. In other words, the reciprocal of MSE indicates the similarity SD. When PSNR is used as the evaluation value, the larger the PSNR, the higher the similarity SD between the output data PM and the target data TM. In other words, PSNR indicates the similarity SD. When SSIM is used, for example, an image is divided into small regions, and MSSIM (Mean SSIM), which is the average value of SSIMs calculated for each small region, is used as the evaluation value EV. When MSSIM is used as the evaluation value EV, the larger the MSSIM, the higher the similarity SD. In other words, MSSIM indicates the similarity SD. When the input data ID indicates a determination result such as whether the product is good or bad, the similarity SD may be, for example, the matching rate between the output data PM and the target data TM corresponding to a plurality of input data IDs.

[0021] The display control unit 60 causes various types of information to be displayed on the display unit 160. The display control unit 60 causes the display unit 160 to display, for example, the specific data processing sequence DSq, the output data PM, the target data TM, and the evaluation value EV.

[0022] 2 is a diagram illustrating the storage device 70. The storage device 70 stores a training data group 74, a data processing program group 79, a node element group 80, a population 84, a weight function 86, a gene table 88, a parameter table 89, a specific data processing sequence DSq, and various programs 94.

[0023] The specific data processing sequence DSq is a data processing sequence Sq that satisfies a predetermined standard condition identified by the identification unit 50. The specific data processing sequence DSq is represented by information including, for example, an element identifier that identifies a node element NE and the placement position of the node element NE. The data processing program group 79 includes calculation formulas, programs, necessary parameters, etc. that are required to execute data processing using the data processing sequence Sq. The various programs 94 are programs different from the data processing program executed by the processor 25.

[0024] FIG. 3 is a diagram illustrating an example of a training data group 74. The training data group 74 includes multiple training sets SM, each of which is composed of (i) training data LM, which is the target of data processing by the data processing sequence Sq, and (ii) desired target data TM associated with the training data LM. The training data LM is, for example, an image of a circuit board, which is an industrial product. The target data TM is a binarized image in which defective portions DA are represented as black images and the rest of the image is represented as white images. The target data TM is generated, for example, by a user setting the defective portions DA as black images and the rest of the image as white images, based on training data LM in which the locations of the defective portions have been identified in advance. The multiple training sets SM include multiple training sets SM having training data LM with defective portions DA and multiple training sets SM having training data LM representing non-defective products, which are images that do not include defective portions DA. Each of the multiple training data LM is an image of the same type of circuit board but with different serial numbers, captured by the sensor device 200. Each training set SM is assigned an identification number TID. The learning set SM shown in FIG. 3 is assigned the identification number TID of "T01."

[0025] 2 is a collection of node elements NE that are candidates for the node elements NE that make up the data processing sequence Sq. Examples of node elements NE include filter layers Ft, such as average filters, maximum filters, minimum filters, binarization filters, moving average filters, Laplacian filters, Gaussian filters, Sobel filters, gamma correction filters, and filters that combine two data sets into one data set. Even if the filter layers Ft are the same type of filter layer, if the values ​​of parameters P, such as kernel size and coefficients, can be set, the parameters P may be set to a predetermined fixed value, or the parameters P may be set in the filter layers Ft on an ad hoc basis according to the gene values.

[0026] The population 84 is a set of individuals IV in one routine generated by the individual generation unit 32. FIG. 4 is a diagram illustrating the population 84 generated in one routine. In this embodiment, an example will be described in which five individuals IV are generated in one generation G. Each of the individuals IV1 to IV5 has a plurality of loci in which genes are arranged arranged linearly. The gene lengths of the individuals IV1 to IV5 are the same, and each of the individuals IV1 to IV5 is configured by arranging genes in order at loci No. 1 to No. 20. The individual generation unit 32 arranges genes expressed as numbers from 0 to 1 to three decimal places at each locus. In other words, in this embodiment, the value that a gene can take at each locus is a number between 0 and 1 to three decimal places. Note that the number of individuals IV generated in one generation G and the number of loci for the individuals IV are not limited to those described above.

[0027] 2 is a function that calculates a connection weight Cw related to the probability that a node element NE will be assigned to at least one unconnected node ND connected to the input side of an output side node in the process of generating a data processing sequence Sq. The connection weight Cw set to the unconnected node ND is also called the input side connection weight Cw. The weight function 86 is expressed, for example, by the following equations (1) and (2).

number

number

[0028] In the above formula (1), Cwi is the connection weight set for the output node to which a node element NE has already been assigned, and Cw1 is the connection weight of the first input-side unconnected node, which is one of two input-side unconnected nodes that can be connected to the output node. Also in the above formula (1), R1 is a coefficient indicating the degree of propagation of the output-side connection weight Cwi to the input side, and in this embodiment, R1 is "1.0." That is, the first input-side connection weight Cw1 propagates the connection weight Cwi set for the output node as is. Also in the above formula (2), Cw2 is the connection weight of the second input-side unconnected node, which is the other of the two input-side unconnected nodes that can be connected to the output node. "D" indicates the depth position, which is the position in the depth direction from the downstream end node in the tree structure of the data processing sequence Sq. A depth position where "D" is "0" corresponds to the output layer out, which is the downstream end node. For example, the position of the node element NE directly connected to the output layer out is D=1. In the above formula (2), "n" is a value that limits the number of input side node elements connected to an output side node element, i.e., the number of branches from the output side node element to the input side, and is an integer equal to or greater than 0. In this embodiment, the limit value n is set to "1." The coefficient R2 is a coefficient that indicates the degree of propagation of the output side connection weight Cwi to the input side, and in this embodiment, it is a value lower than R1, for example, "0.5."

[0029] As can be seen from the above formula (2), in the tree-structured data processing sequence Sq, when the depth position D is equal to or less than the limit value n, the second input side connection weight Cw2 is "0". When the connection weight Cw is "0", no node element NE is set to the second input side unconnected node. In other words, when the data processing sequence Sq is represented as a tree structure, when the depth position D from the downstream end node of at least one unconnected node connected to the input side of the output side node is within a predetermined range, the connection weight Cw is set so that the number of input side nodes to which the node element NE connected to the output side node is assigned is one.

[0030] As shown in the above formulas (1) and (2), the input connection weight Cw is set using a function including the output connection weight Cwi. The first input connection weight Cw1 and the second input connection weight Cw2 are set by multiplying the output connection weight Cwi, which is the connection weight of the output node, by coefficients R1 and R2. In other words, the input connection weight Cw is set using the output connection weight Cwi that has already been set for the output node to which the node element NE has been assigned. In detail, the input connection weight Cw is set by propagating the output connection weight Cwi that has been set for the output node in accordance with certain calculation rules.

[0031] The coefficients R1 and R2 multiplied by the output connection weight Cwi in the above formulas (1) and (2) may be different values ​​or may be the same value. In this embodiment, the coefficients R1 and R2 have different values ​​for each of two or more unconnected nodes ND connected to one output node. In other words, when there are two or more unconnected nodes ND connected to one output node, a weight function 86 is generated for each of the two or more unconnected nodes and stored in the storage device 70. Note that when the coefficients R1 and R2 have the same value, the function for setting the connection weight Cw is the same for two or more unconnected nodes ND connected to one output node. In other words, a common function can be used to set the connection weights Cw for two or more unconnected nodes ND connected to one output node. Note that in the above formula (2), the term for the limit value n may be omitted.

[0032] Furthermore, the weighting function 86 may be different or the same for each of the multiple output nodes located at different positions in the tree structure. In this embodiment, the weighting function 86 is the same for the multiple output nodes. For example, if the weighting function 86 is to be different for each of the multiple output nodes, the coefficients R1 and R2 in equations (1) and (2) may be changed depending on the position of the output node.

[0033] Furthermore, in this embodiment, equations (1) and (2) for calculating the connection weights Cw of multiple input-side unconnected nodes may be expressed as a single function and stored in the storage device 70. Even when the weighting function 86 is expressed as a single function, if the coefficients, etc. are different, it is treated as a different function. For example, the input-side connection weight Cwm may be defined as a single function using the following equation (3):

number

[0034] In the above formula (3), "m" is the identifier of the input-side unconnected node, and is an identifier corresponding to the position in the width direction of the input node connected to the same output-side node in the tree structure. For example, in a tree structure of a data processing sequence Sq in which output-side nodes are arranged at the top, on the input side of one output-side node, the rightmost input-side unconnected node is set to m=1, and the leftmost input-side unconnected node is set to m=M. M is set in advance, for example, according to the expected number of inputs to the output-side node. When corresponding to the weighting function 86 expressed by the above formulas (1) and (2), M is "2." "Rm" is a coefficient indicating the degree of propagation of the output-side connection weight Cwi to the input-side unconnected node of identifier m. The coefficient Rm may vary depending on the value of identifier m, or it may be the same. "Nm" indicates the upper limit value of the depth position D at which propagation of the output-side connection weight Cwi to the input-side unconnected node of identifier m is prohibited. For example, when N1=0 is set, the depth position D of the input-side unconnected node is 1 or more, so the upper term of equation (3) is applied, and the value obtained by multiplying the output-side connection weight Cwi by the coefficient Rm is calculated as the input-side connection weight Cwm.

[0035] In another embodiment, the connection weights Cw may be set without using the weighting function 86. For example, a table associating the positions in the tree structure of the data processing sequence Sq with the connection weights Cw may be stored in the storage device 70, and the connection weights Cw may be set using this table. Furthermore, the weighting function 86 may be a function whose output value does not change depending on the input value of the function, such as a constant function.

[0036] The gene table 88 shown in FIG. 2 is a table showing the correspondence between node elements NE that are candidates for the data processing sequence Sq and the types of filter layers Ft that are examples of node elements NE that correspond to the numerical values ​​indicated by the genes.

[0037] FIG. 5 is a diagram illustrating the gene table 88. For ease of understanding, it is assumed below that five filter layers FtA to FtE are stored in the node element group 80 shown in FIG. 2. In reality, more than five filter layers Ft are stored in the node element group 80. As shown in FIG. 5, in the gene table 88, an appearance range is defined for each filter type indicating the type of filter layer Ft. A filter layer Ft or an input layer in in which the gene numerical value VG is located within the appearance range is set as a node element NE corresponding to the gene. The filter type is an identifier that identifies each filter layer Ft and input layer in stored in the node element group 80. In this embodiment, the number of outputs of the filter layer Ft and the input layer in is set to "1." In this embodiment, the number of inputs of the filter layer Ft and the output layer out is set to "1" or "2" depending on the connection weight Cw, which will be described later. The number of inputs indicates the number of node elements NE connected to the input side of the filter layer Ft or the input layer in. For example, if the number of inputs is "2," data output from two node elements NE is input to the output node. The number of outputs indicates the number of node elements NE connected to the output side of the filter layer Ft or the input layer in. Note that the number of inputs and outputs is not limited to the above.

[0038] The range of appearance of the gene table 88 is defined by the range of the gene's numerical value VG. In this embodiment, the numerical values ​​0 to 1 are divided into six equal parts so that each of the filter layers FtA to FtE appears randomly in the data processing sequence Sq with approximately equal probability. For example, if the gene's numerical value VG is equal to or greater than 0 and less than 0.167, the gene is assigned to the filter layer FtA. Note that the range of appearance of the gene table 88 is not limited to this and does not have to be uniform. Furthermore, multiple types of gene tables 88 may be prepared. For example, in addition to the gene table 88 shown in FIG. 5 in which the range of appearance is uniformly allocated, another gene table may be prepared for allocating only a specific filter layer Ft. For example, if a specific filter layer Ft is to be connected to the input side of the output layer out, the other gene table may be a table that defines the specific filter layer Ft and its range of appearance. Specifically, if you want to connect either filter layer FtA or filter layer FtB to the input side of the output layer out, the other gene table 88 specifies the two layers, filter layer FtA and filter layer FtB, and the appearance range.

[0039] FIG. 6 is a diagram illustrating a parameter table 89. The parameter table 89 defines a parameter P and the appearance range of the parameter P for each filter layer Ft. A parameter P located within the appearance range of the gene's numerical value VG is set as a node element NE corresponding to the gene. The parameter P is a value set in the filter layer Ft, and examples of such parameters include a kernel size and a coefficient such as a threshold value of a binarization filter. In this embodiment, the parameter table 89 indicates the correspondence between the parameter P, specifically the value of the parameter P, and the numerical value VG indicated by the gene when the parameter P is set in the filter layer Ft. A parameter table 89 is provided for each filter layer Ft in which the parameter P can be set. For example, a first parameter table 89a for the filter layer FtA defines the correspondence between the values ​​of the two parameters PA1 and PA2 and the genes, since two types of parameters PA1 and PA2 can be set. For example, a filter layer FtB can set four types of parameters PB1 to PB4. Therefore, the second parameter table 89b for the filter layer FtB indicates the correspondence between the parameters PB1 to PB4 and the genes.

[0040] 7 is a flowchart showing processing executed by the generating device 20. This processing includes a generating process step of a specific data processing sequence DSq in step S10, and a utilization process step of using the specific data processing sequence DSq in step S50, which is executed after step S10. The generating process step of the specific data processing sequence DSq is executed by a sequence generating process function possessed by the generating device 20. Furthermore, the utilization process step is executed by a data processing function possessed by the generating device 20.

[0041] 8 is a detailed flowchart of the generation processing step of step S10. In step S101, the storage device 70 stores the filter layer Ft, the input layer in, the output layer out, and the parameter P as a node element group 80. For example, the node element group 80 is stored in the storage device 70 when a user or the like inputs the components of the node element group 80 via the input unit 150 shown in FIG.

[0042] 8, the storage device 70 stores the training data group 74. For example, the training data group 74 is input by a user or the like via the input unit 150 shown in FIG.

[0043] 8, the storage device 70 stores a translation table. The translation table is a table used to translate the individual IV to generate the data processing sequence Sq, and includes the gene table 88 and the parameter table 89 shown in Fig. 2. For example, the gene table 88 and the parameter table 89 are input by a user or the like via the input unit 150 shown in Fig. 1, and are stored in the storage device 70.

[0044] 8, the storage device 70 stores the weighting function 86. For example, the weighting function 86 is input by a user or the like via the input unit 150 shown in FIG.

[0045] The order of steps S101 to S104 is not limited to the above, and may be any order.

[0046] After steps S101 to S104, in step S105, the individual generation unit 32 generates a population 84 consisting of a plurality of individuals IV for the current generation Gn. That is, in step S105, the individual generation unit 32 generates a population 84 of the first generation G in which a plurality of individuals IV are generated by arranging a plurality of genes. As described in FIG. 4, the population 84 is made up of five individuals IV1 to IV5. The generated population 84 is stored in the storage device 70.

[0047] Next, in step S106, the gene translation unit 34 translates each gene of each individual IV by referring to the multiple individuals IV, the weight function 86, the gene table 88, and the parameter table 89, to generate a data processing sequence Sq corresponding to each of the multiple individuals IV. In this embodiment, in step S106, the gene translation unit 34 selects multiple individuals IV one by one in one generation G, and executes step S106 and the subsequent steps S107 and S108 for the selected individual IV. Details of step S106 will be described later.

[0048] In step S107, the data processing unit 40 executes the data processing sequence Sq. That is, in step S107, the data processing unit 40 processes the learning data LM as target data using each of the multiple data processing sequences Sq generated in step S106, and generates output data PM, which is data after the data processing. The output data PM is stored in the storage device 70.

[0049] After step S107, in step S108, the identification unit 50 evaluates the processing result of the data processing sequence Sq by calculating an evaluation value indicating the similarity SD between the output data PM output in step S107 and the corresponding target data TM. In step S108, an evaluation value indicating the similarity SD is calculated for each of the multiple data processing sequences Sq in one generation G.

[0050] Next, in step S109, the identification unit 50 determines whether the evaluation in step S108 has been performed on all individuals IV in the population 84 of one generation G. If the determination in step S109 is "No," one of the remaining individuals IV for which evaluation has not been performed in step S108 is selected, and steps S106 to S108 are performed again. On the other hand, if the determination in step S109 is "Yes," the identification unit 50 determines in step S110 whether there is a data processing sequence Sq that satisfies a predetermined criterion condition using the multiple evaluation values ​​calculated in the current generation Gn. Specifically, if the highest similarity SDmax among the multiple evaluation values ​​calculated based on the multiple individuals IV in the current generation Gn is equal to or greater than a predetermined termination threshold, the identification unit 50 determines that there is a data processing sequence Sq that satisfies the criterion condition. In other words, the process of step S110 is a process of identifying a data processing sequence Sq that satisfies a predetermined criterion condition using the multiple evaluation values ​​corresponding to each of the multiple data processing sequences Sq.

[0051] As described above, the processes of steps S107 and S108, which are repeatedly executed until a "Yes" determination is made in step S109, are processes for calculating an evaluation value. In other words, the processes of steps S107 and S108, which are repeatedly executed, are processes for processing the training data LM for each of the multiple data processing sequences Sq represented by the population 84, and for comparing the output data PM output for each data processing sequence Sq with the target data TM associated with the training data LM to calculate an evaluation value indicating the similarity SD between the output data PM and the target data TM.

[0052] If there is a data processing sequence Sq that satisfies the criterion condition, the identifying unit 50 outputs the data processing sequence Sq that satisfies the criterion condition as a specific data processing sequence DSq in step S111. The output specific data processing sequence DSq is stored in the storage device 70.

[0053] On the other hand, if there is no data processing sequence Sq that satisfies the reference condition, the processing of steps S105 to S110 is executed as the next routine. That is, in step S105 of the next routine, the individual generation unit 32 generates a sequence set by replacing one or more target data processing sequences Sq, which are one or more data processing sequences Sq with low similarity SDs indicated by evaluation values ​​among the multiple data processing sequences Sq generated in the previous routine, with new data processing sequences Sq with different node elements NE. In this embodiment, the individual generation unit 32 generates new current-generation individuals IVs in the current routine by using at least one of crossover and mutation for the individuals IVs whose similarity SDs are not among the J lowest among the multiple parent-generation individuals IVs used in the previous routine. Note that the individual generation unit 32 duplicates the individuals IVs whose similarity SDs are not among the J lowest among the multiple parent-generation individuals IVs. A new sequence set is configured by the duplicated individuals IVs and the individuals IVs newly generated using crossover and mutation. Then, the processes of steps S106 to S110 are executed for the new sequence set.

[0054] Fig. 9 is a detailed flowchart of step S106 shown in Fig. 8. Fig. 10 is a first diagram for explaining step S106. Fig. 11 is a second diagram for explaining step S106. Fig. 12 is a third diagram for explaining step S106.

[0055] As shown in FIG. 9, in step S311, the gene translation unit 34 selects one individual IV from among the multiple individuals IV1 to IV5 of the current generation Gn.

[0056] Next, in step S313, the gene translation unit 34 selects genes to be translated from among the genes possessed by the selected individual IV. The gene translation unit 34 selects, for example, gene sets Se1 and Se2, each consisting of a plurality of genes necessary to determine the nodes of the data processing sequence Sq, as genes to be translated. The gene sets Se1 and Se2 each have an initial gene set Se1 and another gene set Se2. The initial gene set Se1 does not have first-type genes corresponding to the connection positions of the filter layer Ft or the input layer in, but is composed of second-type genes corresponding to the node elements NE. The other gene set Se2 is composed of first-type genes and second-type genes. The initial gene set Se1 is used to assign a node element NE to an initially unconnected node ND1 connected to the output layer out, which is the downstream end node. Therefore, the gene translation unit 34 selects the initial gene set Se1 during the first routine of the flowchart in step S106, and selects the other gene set Se2 during the second or subsequent routines.

[0057] As shown in Figure 4, the initial gene set Se1 is composed of the first and second genes in the gene sequence. In the initial gene set Se1, the first gene, which is locus No. 1, represents the sequence element NES of the filter layer Ft or the input layer in, and the second gene, which is locus No. 2, represents the parameter element NEP. Also as shown in Figure 4, the other gene set Se2 is composed of three consecutive genes. In the other gene set Se2, the first gene is a first-type gene that represents the connection position, which is the position to assign the node element NE, the second gene is a second-type gene that represents the sequence element NES of the filter layer Ft or the input layer in, and the third gene is a second-type gene that represents the parameter element NEP.

[0058] 9, in step S314 after step S313, the gene translation unit 34 determines whether the selected gene is in the initial gene set Se1. If the gene translation unit 34 determines that the selected gene is in the initial gene set Se1, it executes steps S319 and S321. On the other hand, if the gene translation unit 34 determines in step S313 that the selected gene is in the other gene set Se2, it executes steps S315 to S321.

[0059] Gene translation will be specifically described below using the case of individual IV1 shown in FIG. 4. First, the processing when initial gene set Se1 is selected will be described with reference to FIGS. 9 and 10. As shown in FIG. 10, in the first routine of step S106, when step S313 is executed, it has already been determined that the connection destination node of sequence element NES is unconnected node ND1 on the input side of the output layer out. Therefore, in step S319, the gene translation unit 34 refers to the genes, gene table 88, and parameter table 89, and assigns a node element NE to the unconnected node ND1. Specifically, the gene translation unit 34 refers to the gene numerical value VG of the gene locus No. 1, "0.111," and the gene table 88, and assigns the sequence element NES to the unconnected node ND1. The gene translation unit 34 determines that the gene numerical value 0.111 of the gene locus No. 1 is within the appearance range of the filter layer FtA shown in Figure 5. As a result, in step S319, the gene translation unit 34 assigns the filter layer FtA to the unconnected node ND1. The gene translation unit 34 also refers to the gene numerical value VG of the gene locus No. 2 shown in Figure 4, "0.292," and the parameter table 89, and determines the parameter P of the filter layer FtA assigned to the unconnected node ND1. Specifically, it determines that the numerical value 0.202 is within the appearance range of the parameter PA1 in the second parameter table 89b of the filter layer FtA in Figure 6. As a result, the gene translation unit 34 assigns the parameter PA1 to the filter layer FtA, as shown in step S319 of Figure 10. In addition, if the parameter P is not set in the filter layer Fty or the input layer in, that is, if there is no filter layer Ft or input layer in corresponding to the parameter table 89, the gene translation unit 34 may skip the corresponding gene without translating it.

[0060] Next, as shown in FIG. 9, the gene translation unit 34 sets a connection weight Cw in step S321. Step S321 is executed if the node element NE determined in step S319 is not the input layer in, which is a terminal element, i.e., if it is the filter layer Ft. The node on the input side of the filter layer FtA assigned to the unconnected node ND1 determined in step S319 has a depth position D of "2," which is greater than the limit value n=1 that prohibits branching set in this embodiment. Therefore, as shown in FIG. 10, two unconnected nodes ND2 and ND3 are generated on the input side of the filter layer FtA assigned to the unconnected node ND1. In step S321, the gene translation unit 34 sets a connection weight Cw using the weight function 86 for the two unconnected nodes ND2 and ND3 generated by assigning the filter layer FtA to the unconnected node ND1.

[0061] As shown in step S321 of FIG. 10, the connection weight Cw of the output layer out is set to an initial value of "1.0." Note that, in other embodiments, the connection weight Cw of the output layer out may be set to a value greater than 0. In this embodiment, since the coefficient R1 in the above-described formula (1) is "1," the connection weight Cw of the output node is propagated to the node element NE connected in series without branching from the output layer out. Therefore, "1.0" is also set as the connection weight Cw of the filter layer FtA, whose depth position D is "1." The genetic translation unit 34 sets the connection weight Cw of the unconnected node ND2, which is the first input-side unconnected node, using the connection weight Cw of the output node and the above-described formula (1). Specifically, the genetic translation unit 34 propagates the connection weight Cw of the output node, "1.0," as is, and therefore sets the connection weight Cw of the unconnected node ND2 to "1.0." Furthermore, the genetic translation unit 34 sets a connection weight Cw of the unconnected node ND3, which is the second input-side unconnected node, using the connection weight Cwi of the output node and the above-mentioned formula (2). In this embodiment, since the coefficient R2 of the above-mentioned formula (2) is "0.5", the genetic translation unit 34 sets the connection weight Cw of the unconnected node ND3 to "0.5". As described above, step S321 is a process of setting a connection weight Cw to at least one unconnected node ND connected to the input side of the output node to which the node element NE is assigned. The connection weight Cw is an index related to the probability that the node element NE is assigned.

[0062] Next, the processing when another gene set Se2 is selected in the second or subsequent routine of step S106 shown in Fig. 9 will be described with reference to Figs. 9 and 11. As shown in Fig. 9, if the gene translation unit 34 determines "No" in step S314, it creates a connection destination table TC in step S315. The connection destination table TC specifies unconnected nodes ND and the appearance range corresponding to the unconnected nodes ND. The connection destination table TC is used to determine an unconnected node ND among a plurality of unconnected nodes ND to which a node element NE is to be set.

[0063] As shown in step S315 of FIG. 11, the connection destination table TC is a table that defines at least identifiers for identifying unconnected nodes and appearance ranges. In step S315, the gene translation unit 34 calculates the connection probability Cp according to the connection weights Cw set for the unconnected nodes ND2 and ND3. The connection probability Cp is proportional to the connection weights Cw. The gene translation unit 34 calculates the connection probability Cp from the connection weights Cw so that the sum of the connection probabilities Cp for the unconnected nodes ND2 and ND3 is 1.0. In step S315, the gene translation unit 34 also determines the appearance range using the calculated connection probability Cp. In this embodiment, the gene translation unit 34 determines the appearance range so that the appearance range widens in proportion to the connection probability Cp. Specifically, in this embodiment, the gene translation unit 34 determines the appearance range in ascending order of the identifiers of the unconnected nodes ND so that the value indicated by the connection probability Cp becomes the width of the appearance range. The gene translation unit 34 stores the created connection destination table TC in the storage device 70. The connection destination table TC stored in the storage device 70 may be updated each time the routine shown in FIG. 9 is repeated and step S315 is executed, or may be newly stored in another area of ​​the storage device 70.

[0064] 9, in step S317 following step S315, the gene translation unit 34 determines a destination node to which a node element NE is to be assigned from among the plurality of unconnected nodes ND. In detail, the gene translation unit 34 refers to the numerical value VG of the first-type gene arranged first in the other gene set Se2 selected in step S313 and the appearance range in the destination table TC, and determines an unconnected node ND whose numerical value VG is within the appearance range as the destination node. For example, step S317 will be described assuming that the genes at loci No. 2 to No. 4 of the individual IV1 shown in FIG. 4 are selected as the other gene set Se2 in step S313.

[0065] In the other gene set of loci No. 2 to No. 4 shown in individual IV1 in Fig. 4, the numerical value VG of the first-type gene arranged first is "0.462." In the connection destination table TC shown in Fig. 11, "0.462" is located within the appearance range of unconnected node ND2. Therefore, in step S317, the gene translation unit 34 determines the unconnected node ND2 as the connection destination node.

[0066] 9, the gene translation unit 34 assigns a node element NE to the unconnected node ND2, which is the destination node determined in step S319. The gene translation unit 34 references "0.233," which is the numerical value VG of the second gene in the other gene set Se2 composed of gene loci No. 2 to No. 4 of the individual IV1 shown in FIG. 4, and the gene table 88 shown in FIG. 5. Then, as shown in step S319 of FIGS. 5 and 11, the gene translation unit 34 assigns the filter layer FtB, in which "0.233" is within the appearance range, to the unconnected node ND2. Next, the gene translation unit 34 references "0.138," which is the numerical value VG of the third gene in the other gene set Se2 composed of gene loci No. 2 to No. 4 of the individual IV1 shown in FIG. 4, and the second parameter table 89b shown in FIG. 6. Then, as shown in step S321 in FIGS. 6 and 11, the parameter PB1, within which "0.138" appears, is assigned as the parameter P of the filter layer FtB assigned to the unconnected node ND2.

[0067] As described above, the step of allocating a node element NE to at least one unconnected node ND includes a step of determining a destination node to which the node element NE is to be allocated from among the at least one unconnected node ND using a first-type gene and a connection weight Cw. Also, the step of allocating a node element NE to at least one unconnected node ND is a step of allocating a node element NE to a destination node using a second-type gene and a gene table 88 and a parameter table 89 that associate genes with types of node elements.

[0068] As shown in Figures 9 and 11, in step S321 following step S319, the gene translation unit 34 sets connection weights Cw using weight function 86 for two new unconnected nodes ND4 and ND5 that have appeared on the input side of the filter layer FtB that were assigned to the unconnected node ND2 in step S319.

[0069] Steps S315 and S317 shown in Fig. 9 will be further described with reference to Fig. 12 and Fig. 13. Fig. 12 is a diagram showing the tree structure of a data processing sequence Sqa during translation of a gene in step S106. Fig. 13 is a diagram showing a connection destination table TCa in the data processing sequence Sqa during translation. In Fig. 12, a filter layer Ft and a parameter P have already been assigned to a node ND indicated by single hatching.

[0070] As shown in FIG. 12, it is assumed that there are four unconnected nodes ND in the data processing sequence Sqa during translation. To distinguish the four unconnected nodes ND, the symbols ND4, ND6, ND7, and ND9 are written together. In step S321 shown in FIG. 9, the genetic translation unit 34 sets connection weights Cw for the four unconnected nodes ND4, ND6, ND7, and ND9. As described above, the coefficient R1 in equation (1) is "1.0," and the coefficient R2 in equation (2) is "0.5." Therefore, when the output layer out is placed at the top of the tree structure, the output connection weight Cwi is propagated as is and set to the first input unconnected node branching off to the right from the output node. On the other hand, when the output layer out is placed at the top of the tree structure, the output connection weight Cwi multiplied by "0.5" is propagated and set to the second input unconnected node branching off to the left from the output node.

[0071] As shown in Fig. 13, in step S315, the gene translation unit 34 calculates the connection probability Cp according to the connection weight Cw set for the unconnected nodes ND4, ND6, ND7, and ND9. Then, the gene translation unit 34 determines the appearance range of each of the unconnected nodes ND4, ND6, ND7, and ND9 so as to be proportional to the calculated connection probability Cp. Then, as shown in step S317 of Fig. 9, the gene translation unit 34 determines the unconnected nodes ND4, ND6, ND7, and ND9 corresponding to the appearance range that includes the numerical value VG of the first-type gene included in the selected other gene set Se2 as the destination node to which the node element NE is to be assigned. Then, as described above, the gene translation unit 34 assigns the node element NE to the destination node in step S319 shown in Fig. 9.

[0072] As described above, steps S317 and S319 are processes for assigning a node element NE to at least one unconnected node ND using the connection destination table TC created using the connection weight Cw and the first-type gene, which is a gene.

[0073] As shown in FIG. 9 , in step S324 after step S321, the gene translation unit 34 determines whether to terminate the gene selection in step S313. Specifically, the gene translation unit 34 determines whether the number of genes not selected in step S313 for the individual IV selected in step S311 satisfies a first termination criterion, which is that the number of genes not selected in step S313 is less than the number required to assign a node element NE to one unconnected node ND. In this embodiment, the gene translation unit 34 determines whether three genes constituting the other gene set Se2, i.e., a first-type gene for determining the connection position and two second-type genes for determining the node element NE, are selected. If three or more genes are not selected in step S324, it is determined that the first termination criterion is not satisfied, and the processing from step S313 onward is executed again. On the other hand, if the first termination criterion is satisfied in step S324, a "Yes" determination is made, and the gene translation unit 34 executes termination processing in step S326.

[0074] In the terminal processing, the gene translation unit 34 assigns the input layer in to all unconnected nodes ND. Note that in another embodiment, in the terminal processing, the gene translation unit 34 may assign the input layer in to some of the multiple unconnected nodes ND.

[0075] In the above-described step S324, a second termination criterion that the connection weights Cw of all unconnected nodes ND are "0" may be used as the termination criterion for determining whether to terminate the processing from step S313 onward. In this case, the second termination criterion may be used as the termination criterion in step S324 instead of the first termination criterion. In addition, in step S324, the gene translation unit 34 may determine that the termination criterion is satisfied when either the first or second termination criterion is satisfied.

[0076] Fig. 14 is a detailed flowchart of step S50 shown in Fig. 7. The utilization process of step S50 is executed after the specific data processing sequence DSq is identified by the generation process shown in Fig. 7. First, in step S501, the storage device 70 stores the specific data processing sequence DSq. Note that if the utilization process and the generation process of step S10 in Fig. 7 are executed by the same generation device 20, step S501 may be omitted.

[0077] Next, in step S503, the data processing unit 40 acquires data stored in the storage device 70 via the input unit 150 by reading out the data that is to be subjected to data processing in the specific data processing sequence DSq. The data to be processed acquired in step S503 is, for example, data obtained by capturing an image of an object of the same type as the learning data LM. Note that when there is a plurality of pieces of data to be processed, the data processing unit 40 may acquire the data by reading out one of the pieces of data pre-stored in the storage device 70, or may acquire the target data from the sensor device 200 each time data processing described below is performed.

[0078] Next, in step S504, the data processing unit 40 executes data processing using the specific data processing sequence DSq on the data acquired in step S503. That is, data processing is executed on the data to be processed by applying the data processing elements stored in the node element group 80 of the storage device 70 in accordance with the order indicated by the specific data processing sequence DSq.

[0079] Next, in step S505, output data PM, which is data after data processing using the specific data processing sequence DSq, is output. Step S505 is executed, for example, by storing the output data PM in the storage device 70 or by displaying it on the display unit 160.

[0080] Next, in step S506, the data processing unit 40 determines whether to continue data processing using the specific data processing sequence DSq. For example, the data processing unit 40 determines to continue data processing when the user inputs information indicating continuation of data processing or when unprocessed data to be processed still remains in the storage device 70. If data processing is to be continued, the processing from step S503 onwards is executed again. On the other hand, the data processing unit 40 ends the usage processing when the user inputs information indicating termination of data processing or when unprocessed data to be processed no longer remains in the storage device 70.

[0081] According to the above embodiment, since node elements NE are assigned to unconnected nodes ND using connection weights Cw and genes, the structure of the generated data processing sequence Sq can be adjusted by changing the value of the connection weight Cw. The value of the connection weight Cw can be easily changed, for example, by changing the coefficient of the weight function 86 or the function itself. For example, the coefficients R1 and R2 of the weight function 86 may be changed for each depth position D of the unconnected node ND in the tree structure, for each routine of steps S313 to S321 shown in FIG. 9, for each individual IV, or for each generation G. For example, by making the coefficient R2 in the above equation (2) much smaller than the coefficient R1 in the above equation (1), or by making the coefficients R2 and R1 much larger than each other, a data processing sequence Sq with a long, linear structure with few branches can be generated. Furthermore, for example, by setting the coefficients R2 and R1 to the same value or nearly the same value, a data processing sequence Sq with a structure with many branches can be generated. This reduces the possibility that the structures of multiple data processing sequences Sq that are candidates for the data processing sequence Sq that satisfies the reference conditions will be fixed within a certain range.

[0082] Furthermore, according to the above embodiment, by setting the value of the limit value n that limits branching in the above equation (2), it is possible to generate a data processing sequence Sq in which branching is prohibited continuously from the output layer out to the input side, that is, a data processing sequence Sq in which filter layers Ft are connected in series without branching within a certain range from the output layer out. In other words, when the depth position D in the tree structure is within a predetermined range according to the limit value n, the input side node does not branch into two or more, so the structure of the sequence within the predetermined range of the depth position D can be made into a serial structure.

[0083] According to the above embodiment, the input connection weights Cw can be easily set using the output connection weights Cwi, as in the functions shown in the above equations (1) to (3). Also, by changing the values ​​of the coefficients R1, R2, and Rm of the weighting function 86, different functions can be easily generated.

[0084] Furthermore, according to the above embodiment, the individual IV has a set of other genes Se2 containing first-type genes corresponding to the connection position of the node element NE. This allows for mutation of the first-type genes or crossover of the other gene set Se2 when generating the next-generation individual IV from the parent-generation individual IV using at least one of crossover and mutation. Therefore, in the tree-structured data processing sequence Sq, the connection position can be changed for each data processing function. For example, the connection position can be changed by mutation or the like for a subsequence consisting of at least one filter layer Ft having the function of performing data processing to reduce noise in the input data ID as a single entity.

[0085] B. Other Embodiments: B-1. Alternative embodiment 1: In the above embodiment, the parameter table 89 may be omitted. Also, in the above embodiment, the second-type genes include genes representing the sequence elements NES, which are the filter layer Ft and the input layer in, and genes representing the parameter elements NEP, but the genes representing the parameter elements NEP may be omitted. In this case, the parameters P set in the filter layer Ft and the input layer in may be fixed values.

[0086] B-2. Alternative embodiment 2: In the above embodiment, the number of inputs to the output node is set to one or two. However, it may be a fixed value other than this, or the number of inputs may be changed depending on the output node. When the number of inputs changes depending on the output node, for example, the coefficient Rm in the function of the above formula (3) is set depending on the number of inputs, thereby setting the connection weight Cwm of the unconnected input node depending on the number of inputs. Furthermore, in the above embodiment, if the number of input nodes set using the weighting function 86 is greater than the predetermined number of inputs to the filter layer Ft, a first adaptation process may be executed to adapt the data output from the input nodes to the predetermined number of inputs to the filter layer Ft. The first adaptation process is, for example, a process of averaging or reducing multiple pieces of data output from the input nodes to correspond to the predetermined number of inputs to the output filter layer Ft. Furthermore, for example, if the number of input nodes set using the weighting function 86 is less than the predetermined number of inputs to the filter layer Ft, a second adaptation process may be executed to adapt the data output from the input nodes to the predetermined number of inputs to the filter layer Ft. The second adaptation process is a process in which, for example, data output from the input node is duplicated, dummy data is generated, or an input layer in is arranged to correspond to the predetermined number of inputs of the output filter layer Ft.

[0087] B-3. ​​Alternative embodiment 3: In the above embodiment, the weighting coefficients R1, R2, and Rm are 1.0 or less, but they may be greater than 1.0. For example, by making the coefficient R1 greater than 1.0 and the coefficient R2 smaller than 1.0, it becomes easier to generate a data processing sequence Sq with a long linear structure and fewer branches.

[0088] C. Other forms: The present disclosure is not limited to the above-described embodiments and can be realized in various forms without departing from the spirit thereof. For example, the present disclosure can also be realized in the following aspects. The technical features in the above embodiments corresponding to the technical features in each aspect described below can be appropriately replaced or combined to solve some or all of the problems of the present disclosure or to achieve some or all of the effects of the present disclosure. Furthermore, if a technical feature is not described as essential in this specification, it can be appropriately deleted.

[0089] (1) According to a first aspect of the present disclosure, there is provided a method for generating a data processing sequence. This generation method includes the steps of: (a) generating a population of one generation by generating a plurality of individuals in which a plurality of genes are arranged to represent data processing sequences each including, as node elements, an input layer assigned to an upstream node, at least one filter layer for processing data, and an output layer assigned to a downstream node; (b) generating the data processing sequences corresponding to each of the plurality of individuals, the steps including: (b1) setting a connection weight related to the probability that the node element will be assigned to at least one unconnected node connected to the input side of the output node to which the node element is assigned; and (b2) assigning the node element to one of the at least one unconnected node using the connection weight and the gene; (c) processing target data for each of the plurality of data processing sequences represented by the population, and comparing the output data output for each data processing sequence with target data associated with the target data to calculate an evaluation value indicating the similarity between the output data and the target data; and (d) using the evaluation values ​​corresponding to each of the plurality of data processing sequences to identify the data processing sequences that satisfy predetermined criteria. According to this aspect, since node elements are assigned to unconnected nodes using connection weights and genes, the structure of the generated data processing sequence can be adjusted by changing the connection weight values, thereby reducing the possibility that the structures of multiple data processing sequences that are candidates for a data processing sequence that satisfies the reference conditions will be fixed within a certain range.

[0090] (2) In the above embodiment, in the step (b1), the input connection weight, which is the connection weight of the unconnected node, may be set using the output connection weight, which is the connection weight that has already been set for the output node to which the node element has been assigned. According to this embodiment, the connection weight of the unconnected node can be easily set using the output connection weight.

[0091] (3) In the above embodiment, in the step (b1), the input connection weights may be set using a function including the output connection weights. According to this embodiment, the connection weights can be easily set using a function.

[0092] (4) In the above embodiment, in the step (b1), if there are two or more unconnected nodes connected to one of the output nodes, the function may be generated for each of the two or more unconnected nodes. According to this embodiment, a different function can be used to set the connection weight for each of the two or more unconnected nodes.

[0093] (5) In the above-described embodiment, in the step (b1), the function may include a coefficient by which the output connection weight is multiplied, and the coefficient may be different for each of the two or more unconnected nodes. According to this embodiment, different functions can be generated by changing the coefficient.

[0094] (6) In the above embodiment, in the step (b1), if there are two or more unconnected nodes connected to one of the output nodes, the function may be the same for the two or more unconnected nodes. According to this embodiment, a common function can be used to set connection weights for the two or more unconnected nodes.

[0095] (7) In the above aspect, the function may include a coefficient by which the output connection weight is multiplied, and the coefficient may be the same for each of the two or more unconnected nodes. According to this aspect, by making the coefficient the same, connection weights can be set for the unconnected nodes using a common function.

[0096] (8) In the above embodiment, in step (b1), when the data processing sequence is represented as a tree structure, the connection weight may be set so that when a depth position, which is a position in the depth direction from the downstream end node, of the at least one unconnected node connected to the input side of the output node is within a predetermined range, the number of input nodes to which the node element connected to the output node is assigned is 1. According to this embodiment, when the depth position is within the predetermined range, the input node does not branch into two or more, so that the structure of the sequence within the predetermined depth position range can be a serial structure.

[0097] (9) In the above aspect, in the step (a), the plurality of genes possessed by the individual may include at least a first-type gene corresponding to the connection weight and a second-type gene corresponding to the node element, and the step (b2) may include: determining a destination node to which the node element is to be assigned from among the at least one unconnected node, using the first-type gene and the connection weight; and assigning the node element to the destination node, using the second-type gene and a table associating the gene with the type of the node element. According to this aspect, it is possible to determine a destination node using the first-type gene and easily assign a node element to the destination node using the second-type gene.

[0098] (10) According to a second aspect of the present disclosure, there is provided a data processing sequence generation device, comprising: an individual generation unit that generates a population of one generation by generating a plurality of individuals in which a plurality of genes are arranged to represent data processing sequences including, as node elements, an input layer assigned to an upstream node, at least one filter layer for processing data, and an output layer assigned to a downstream node; a sequence generation unit that generates the data processing sequences corresponding to the plurality of individuals, the sequence generation unit setting a connection weight relating to a probability that the node element will be assigned to at least one unconnected node connected to the input side of the output node to which the node element is assigned, and assigning the node element to one of the at least one unconnected node using the connection weight and the gene; a calculation unit that processes target data for each of the plurality of data processing sequences represented by the population, comparing output data output for each of the data processing sequences with target data associated with the target data, and calculating an evaluation value indicating a similarity between the output data and the target data; and an identification unit that uses the evaluation values ​​corresponding to each of the plurality of data processing sequences to identify the data processing sequences that satisfy a predetermined reference condition. According to this aspect, since node elements are assigned to unconnected nodes using connection weights and genes, the structure of the generated data processing sequence can be adjusted by changing the connection weight values, thereby reducing the possibility that the structures of multiple data processing sequences that are candidates for a data processing sequence that satisfies the reference conditions will be fixed within a certain range.

[0099] (11) According to a third aspect of the present disclosure, there is provided a computer program for causing a computer to generate a data processing sequence. This computer program has the following functions: (a) generating a population of one generation by generating a plurality of individuals in which a plurality of genes are arranged to represent a data processing sequence including, as node elements, an input layer assigned to an upstream node, at least one filter layer for processing data, and an output layer assigned to a downstream node; (b) generating the data processing sequences corresponding to each of the plurality of individuals, the functions including: (b1) setting a connection weight related to the probability that the node element will be assigned to at least one unconnected node connected to the input side of the output node to which the node element is assigned; and (b2) assigning the node element to one of the at least one unconnected node using the connection weight and the genes; (c) processing target data for each of the plurality of data processing sequences represented by the population, comparing the output data output for each of the data processing sequences with target data associated with the target data, and calculating an evaluation value indicating the similarity between the output data and the target data; and (d) using the evaluation values ​​corresponding to each of the plurality of data processing sequences, identifying the data processing sequence that satisfies a predetermined standard condition. According to this aspect, since node elements are assigned to unconnected nodes using connection weights and genes, the structure of the generated data processing sequence can be adjusted by changing the connection weight values, thereby reducing the possibility that the structures of multiple data processing sequences that are candidates for a data processing sequence that satisfies the reference conditions will be fixed within a certain range.

[0100] The present disclosure may be realized in various forms other than those described above, such as a generation system including a generation device and a sensor device, or a non-transitory storage medium having a computer program stored thereon. [Explanation of symbols]

[0101] 10...generation system, 20...generation device, 25...processor, 30...sequence generation unit, 32...individual generation unit, 34...gene translation unit, 40...data processing unit, 50...identification unit, 60...display control unit, 70...storage device, 74...learning data group, 79...data processing program group, 80...node element group, 84...population, 86...weight function, 88...gene table, 89...parameter table, 89a...first parameter table, 89b...second parameter table, 94...various programs, 150...input unit, 160...display unit, 200...sensor device, DA...defective part, DSq...specific data processing sequence, LM...learning data, ND...unconnected node, SM...learning set, Se1...initial gene set, Se2...other gene set, TC...connection table, TCa...connection table

Claims

1. 1. A method for generating a data processing sequence, comprising: (a) generating a population of one generation by generating a plurality of individuals in which a plurality of genes are arranged to represent a data processing sequence including, as node elements, an input layer assigned to an upstream end node, at least one filter layer for processing data, and an output layer assigned to a downstream end node; (b) generating the data processing sequence corresponding to each of the plurality of individuals, (b1) setting a connection weight related to the probability that the node element is assigned to at least one unconnected node connected to the input side of the output side node to which the node element is assigned; (b2) assigning the node element to any one of the at least one unconnected node using the connection weight and the gene; (c) processing target data for each of the plurality of data processing sequences represented by the population, and comparing output data output for each of the data processing sequences with target data associated with the target data to calculate an evaluation value indicating the degree of similarity between the output data and the target data; (d) using the evaluation values ​​corresponding to the plurality of data processing sequences, respectively, to identify the data processing sequences that satisfy a predetermined reference condition.

2. 2. The method of claim 1, A generation method in which, in step (b1), the input connection weight, which is the connection weight of the unconnected node, is set using the output connection weight, which is the connection weight that was already set for the output node to which the node element has already been assigned.

3. 3. The method of claim 2, further comprising: A generation method, wherein in the step (b1), the input connection weights are set using a function including the output connection weights.

4. 4. The method of claim 3, In the step (b1), when there are two or more unconnected nodes connected to one of the output nodes, the function is generated for each of the two or more unconnected nodes.

5. 5. The method of claim 4, further comprising: In the step (b1), The function includes a coefficient by which the output connection weight is multiplied, A generation method, wherein the coefficient is different for each of the two or more unconnected nodes.

6. 4. The method of claim 3, A generation method, wherein in the step (b1), when there are two or more unconnected nodes connected to one of the output side nodes, the function is the same for the two or more unconnected nodes.

7. 7. The method of claim 6, further comprising: The function includes a coefficient by which the output connection weight is multiplied, The coefficient is the same for each of the two or more unconnected nodes.

8. 2. The method of claim 1, In the step (b1), when the data processing sequence is represented as a tree structure, the connection weight is set so that the number of input nodes to which the node element connected to the output node is assigned is one when the depth position, which is the position in the depth direction from the downstream end node, of the at least one unconnected node connected to the input side of the output node is within a predetermined range.

9. 2. The method of claim 1, In the step (a), the plurality of genes possessed by the individual include at least a first type gene corresponding to the connection weight and a second type gene corresponding to the node element; The step (b2) determining a destination node to which the node element is to be assigned from among the at least one unconnected node, using the first type gene and the connection weight; and assigning the node element to the destination node using the second type gene and a table that associates the gene with the type of the node element.

10. 1. A data processing sequence generation device, comprising: an individual generation unit that generates a population of one generation by generating a plurality of individuals in which a plurality of genes are arranged to represent a data processing sequence including, as node elements, an input layer assigned to an upstream end node, at least one filter layer for processing data, and an output layer assigned to a downstream end node; a sequence generation unit that generates the data processing sequence corresponding to each of the plurality of individuals, a connection weight related to the probability that the node element will be assigned to at least one unconnected node connected to the input side of the output side node to which the node element is assigned; a sequence generation unit that assigns the node element to any one of the at least one unconnected node using the connection weight and the gene; a calculation unit that processes target data for each of the plurality of data processing sequences represented by the population, compares output data output for each of the data processing sequences with target data associated with the target data, and calculates an evaluation value indicating the degree of similarity between the output data and the target data; a specification unit that specifies the data processing sequence that satisfies a predetermined reference condition using a plurality of the evaluation values ​​corresponding to each of the plurality of data processing sequences.

11. A computer program for causing a computer to generate a data processing sequence, comprising: (a) a function of generating a population of one generation by generating a plurality of individuals in which a plurality of genes are arranged to represent a data processing sequence including, as node elements, an input layer assigned to an upstream end node, at least one filter layer for processing data, and an output layer assigned to a downstream end node; (b) a function of generating the data processing sequence corresponding to each of the plurality of individuals, (b1) a function of setting a connection weight related to the probability that the node element is assigned to at least one unconnected node connected to the input side of the output side node to which the node element is assigned; (b2) a function of assigning the node element to any one of the at least one unconnected node using the connection weight and the gene; (c) a function of processing target data for each of the plurality of data processing sequences represented by the population, and comparing the output data output for each of the data processing sequences with target data associated with the target data to calculate an evaluation value indicating the similarity between the output data and the target data; (d) a function for identifying the data processing sequence that satisfies a predetermined reference condition using a plurality of the evaluation values ​​corresponding to each of the plurality of data processing sequences.

Citation Information

Patent Citations

  • Evolution calculation system and evolution calculation method

    JP2007087055A