Data encoding device and data encoding program
The data encoding device compresses axis-dependent data by approximating it as a linear combination of each axis data, addressing the challenge of uniform frequency in industrial machine data, enhancing error correction accuracy.
Patent Information
- Application Number
- JP2024528258
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Filing Date
- 2022-06-24
- Publication Date
- 2026-01-27
- Estimated Expiration
- 2042-06-24
AI Technical Summary
Existing data encoding techniques struggle to compress axis-dependent data for industrial machines due to its white noise-like characteristic with uniform occurrence frequency, making it difficult to utilize conventional entropy encoding methods effectively.
A data encoding device that encodes axis-dependent data using a model approximation encoding unit, approximating the data as a linear combination of each axis data, allowing for effective compression.
Enables efficient compression of axis-dependent data, increasing the amount of data that can be input to industrial machine control devices without increasing storage capacity, thereby improving error correction accuracy.
Smart Images

Figure 0007807543000012 
Figure 0007807543000013 
Figure 0007807543000014
Abstract
Description
[Technical Field]
[0001] The present disclosure relates to a data encoding device and a data encoding program. [Background technology]
[0002] Conventionally, industrial machines such as machine tools and robots move a predetermined control point to a predetermined position according to a command value. However, because industrial machines have errors, the position of the control point usually does not match the command value. To solve this deterioration in positioning accuracy and, ultimately, in machining accuracy, a technique has been proposed that corrects the error so that the position of the control point matches the command value (see, for example, Patent Document 1). In this technique, a pre-measured error amount is input to a control device, and the error is corrected based on a correction amount corresponding to the error amount. [Prior art documents] [Patent documents]
[0003] [Patent Document 1] Japanese Patent Application Laid-Open No. 2011-209897 Summary of the Invention [Problem to be solved by the invention]
[0004] However, since there is an upper limit to the data size that can be input, there is a problem that the accuracy of error correction cannot be improved by exceeding the upper limit of the data size that can be input.
[0005] Therefore, it is conceivable to compress the error data before inputting it to the control device. Data compression techniques include data encoding techniques, such as entropy encoding techniques typified by Huffman coding. Entropy encoding techniques compress data by utilizing the bias in the frequency of occurrence of values in the data, i.e., the smallness of information entropy.
[0006] However, axis-dependent data, such as the error amounts described above, that depend on the coordinate values of each axis of an industrial machine may have a white noise-like characteristic with a uniform occurrence frequency. In such cases, the small information entropy described above cannot be utilized, making it difficult to compress the data using entropy coding.
[0007] The present disclosure has been made in view of the above, and aims to provide a data encoding technique that can encode and compress axis-dependent data that depends on the coordinate values of each axis of an industrial machine. [Means for solving the problem]
[0008] One aspect of the present disclosure is a data encoding device that encodes data, the data encoding device including a model approximation encoding unit that encodes the axis-dependent data based on a portion of axis-dependent data that depends on the coordinate values of each axis of an industrial machine and a linear combination model that approximates the axis-dependent data as a linear combination of each axis data of the industrial machine, and generates axis-dependent data after encoding.
[0009] Another aspect of the present disclosure is a data encoding program for encoding data, the data encoding program causing a computer to execute a step of encoding axis-dependent data based on a portion of axis-dependent data that depends on the coordinate values of each axis of an industrial machine and a linear combination model that approximates the axis-dependent data as a linear combination of each axis data of the industrial machine, thereby generating post-encoding axis-dependent data. [Effects of the Invention]
[0010] According to the present disclosure, it is possible to provide a data encoding technique that can encode and compress axis-dependent data that depends on the coordinate values of each axis of an industrial machine. [Brief explanation of the drawings]
[0011] [Figure 1] 1 is a diagram showing the configuration of a data encoding device according to a first embodiment. [Figure 2] FIG. 10 is a diagram showing an example of a text file containing only specific characters. [Figure 3] FIG. 10 is a diagram illustrating an example of data in which the frequency of occurrence of each value is expressed in a distribution. [Figure 4] FIG. 10 is a diagram showing data in which the frequency of occurrence of each value is uniform. [Figure 5] FIG. 10 is a diagram showing each axis error of the X axis. [Figure 6] FIG. 10 is a diagram showing each axis error of the Y axis. [Figure 7] FIG. 10 is a diagram showing the amount of error in coordinate values (X2, Y1). [Figure 8] FIG. 10 is a diagram showing the amount of error when it cannot be expressed by a linear combination of the axis errors. [Figure 9] FIG. 9 is a partially enlarged view of FIG. 8. [Figure 10] FIG. 10 is a diagram showing a bitmap image that visualizes an error map. [Figure 11] FIG. 10 is a diagram illustrating an example of axis-dependent data. [Figure 12] 12 is a diagram showing a linear combination model that approximates the axis-dependent data of FIG. 11 as a linear combination of each axis error of the industrial machine. FIG. [Figure 13] FIG. 10 is a diagram showing the configuration of a data encoding device according to a second embodiment. [Figure 14] FIG. 10 is a diagram showing axis-dependent data partitioned into a plurality of grid-like regions. [Figure 15] FIG. 10 is a diagram showing an example of post-division axis-dependent data. [Figure 16] FIG. 10 is a diagram showing the configuration of a data encoding device according to a third embodiment. [Figure 17]10 is a flowchart showing a procedure for dividing axis-dependent data by a dynamic programming processing unit. [Figure 18] FIG. 10 is a diagram showing divided sections before each axis data (each axis error) is expanded by one column in the positive X direction. [Figure 19] FIG. 10 is a diagram showing divided sections after each axis data (each axis error) is expanded by one column in the positive X direction. [Figure 20] FIG. 10 is a diagram showing the configuration of a data encoding device according to a fourth embodiment. [Figure 21] FIG. 10 is a diagram illustrating an approximation error (vector γ[X][Y]). [Figure 22] FIG. 10 is a diagram showing the configuration of a data encoding device according to a fifth embodiment. [Figure 23] FIG. 10 is a diagram showing the approximation error (vector γ[X][Y]) including exceptional points larger than a predetermined tolerance. [Figure 24] FIG. 10 is a diagram showing exceptional points that have been excluded and retained because the approximation error (vector γ[X][Y]) is greater than a predetermined tolerance. [Figure 25] FIG. 13 is a diagram showing the configuration of a data encoding device according to a sixth embodiment. [Figure 26] FIG. 13 is a diagram showing the configuration of a data encoding device according to a seventh embodiment. [Figure 27] 10 is a flowchart showing the procedure of a learning process performed by the machine learning device 9. DETAILED DESCRIPTION OF THE INVENTION
[0012] Hereinafter, embodiments of the present disclosure will be described in detail with reference to the drawings. In the description of the second and subsequent embodiments, the description of the configurations common to the first embodiment will be omitted as appropriate.
[0013] [First embodiment] The data encoding device 1 according to the first embodiment is a data encoding device capable of encoding and compressing axis-dependent data that depends on the coordinate values of each axis of an industrial machine, such as the amount of error used for error correction of each axis of the industrial machine. As described above, axis-dependent data that depends on the coordinate values of each axis of the industrial machine may have white noise-like properties with a uniform overall occurrence frequency. This makes it difficult to compress the data using conventional entropy encoding techniques that utilize the bias in the occurrence frequency of values in the data, i.e., the small information entropy. In contrast, the data encoding device 1 according to this embodiment is capable of encoding and compressing axis-dependent data that depends on the coordinate values of each axis of the industrial machine.
[0014] FIG. 1 is a diagram showing the configuration of a data encoding device 1 according to the first embodiment. As shown in FIG. 1, the data encoding device 1 includes a model approximation encoding unit 11. The model approximation encoding unit 11 encodes axis-dependent data based on the axis-dependent data and a linear combination model to generate post-encoding axis-dependent data. Before explaining the configuration of the data encoding device 1, conventional data encoding techniques will first be explained.
[0015] Entropy coding, typified by Huffman coding, is a well-known data coding technique. Entropy coding compresses data by utilizing the bias in the frequency of occurrence of values in the data, i.e., the smallness of information entropy.
[0016] FIG. 2 shows an example of a text file containing only specific characters. FIG. 3 shows an example of data in which the frequency of occurrence of each value is expressed by a distribution. In FIGS. 2 and 3, the horizontal axis indicates bit values, and the vertical axis indicates the frequency of occurrence of each value. For example, a text file containing only 16 characters, 0 to 9 and A to F, as specific characters, as shown in FIG. 2 normally requires 8 bits to represent one character, but entropy coding allows it to be represented with at most 4 bits per character, making it possible to compress the data by about half. Furthermore, data with non-uniform frequency of occurrence, as shown in FIG. 3, can be compressed by entropy coding, assigning short bit values to high-frequency values and long bit values to low-frequency values.
[0017] In contrast, Fig. 4 shows data in which the frequency of occurrence of each value is uniform. As with Fig. 2 and Fig. 3, in Fig. 4, the horizontal axis represents the bit value, and the vertical axis represents the frequency of occurrence of each value. White noise-like data with a uniform frequency of occurrence such as that shown in Fig. 4 cannot utilize the small information entropy mentioned above, making it difficult to compress the data using entropy coding.
[0018] Incidentally, static error compensation for each axis of industrial machinery includes pitch error compensation, straightness error compensation, and three-dimensional error compensation. Pitch error compensation is compensation for errors in the axial direction. Straightness error compensation is compensation for errors in the direction perpendicular to the axial direction. Three-dimensional error compensation is compensation for three-dimensional spatial errors. These error compensations are performed by inputting the amount of error measured for each coordinate value of each axis (hereinafter referred to as "axis error") into the control device for the number of axes. The greater the number of input points, the higher the accuracy of error compensation, but there is an upper limit to the data size that can be input.
[0019] Figure 5 shows the axis errors of the X axis. Each axis error of the X axis is the amount of error of each coordinate value measured when only the X axis is moved while the Y axis and Z axis are fixed. As shown in Figure 5, the amount of error of each coordinate value X0, X1, X2, and X3 is displayed as a vector with a different magnitude and direction.
[0020] FIG. 6 shows the axis errors of the Y axis. Each axis error of the Y axis is the amount of error of each coordinate value measured when only the Y axis is moved while the X and Z axes are fixed. As shown in FIG. 6, the amount of error of each coordinate value Y0, Y1, and Y2 is displayed as a vector with a different magnitude and direction.
[0021] Here, the error correction for each axis is assumed to be linearly independent. That is, the coordinate values X1,...X L The error amount (vector E[X 1 ]···[X L ]) is assumed to be a linear combination of each axis error, and is expressed as the following equation (1).
[0022]
number
[0023] In the above formula (1), L represents the number of axes to be subjected to error correction. l represents the l-th axis to be corrected.
[0024] There are many situations where the above formula (1) based on the above assumption holds true, and currently, error correction for each axis has been widely used. For example, FIG. 7 is a diagram showing the amount of error in the coordinate value (X2, Y1). As shown in FIG. 7, the amount of error in the coordinate value (X2, Y1) (vector E[X2][Y1]) is calculated by multiplying the amount of error in the coordinate value X2 (vector E X [X2]) and the error amount of coordinate value Y1 (vector E Y [Y1]) and is expressed as the following formula (2).
[0025]
number
[0026] However, when viewed as a whole, each axis error (vector E X [X], vector E YThe frequency of occurrence of values in the vector E[X][Y] or the error vector E[X][Y] may be uniform and resemble white noise. In this case, it is difficult to compress such data using conventional entropy coding techniques that exploit the bias in the frequency of occurrence of values in the data, i.e., the small information entropy.
[0027] In addition, the error of each axis is not linearly independent, but the error amount (vector E[X 1 ]···[X L ]) may be determined by the correlation of multiple axes. In other words, the error amount (vector E[X 1 ]···[X L ]) is the correlation term (vector δ[X 1 ]···[X L ]) and may not be expressed as a linear combination of each axis error.
[0028]
number
[0029] FIG. 8 is a diagram showing the amount of error when it cannot be expressed as a linear combination of each axis error. As shown in FIG. 8, when each axis error is not linearly independent, the amount of error (vector E[X 1 ]···[X L ]) is used as the correlation term (vector δ[X 1 ]···[X L In this case, the error amount for each space correlated with the error amount (hereinafter referred to as spatial error) is input to the control device for correction, so this is called error correction for each space.
[0030] Here, the inventors have found that even though the spatial error cannot be expressed as a linear combination of the axis errors as a whole, it can be regarded as a linear combination of the axis errors locally, just like the axis errors. For example, FIG. 9 is a partially enlarged view of FIG. 8, and in the local region enclosed by the dashed line in FIG. 9, the above-mentioned correlation term (vector δ[X1 ]···[X L ]) can be considered to be 0, and the spatial error can be expressed as a linear combination of each axis error. That is, the spatial error (vector E[X][Y]) can be expressed as a linear combination of each axis error (vector E X [X]) and each axis error (vector E Y This means that the spatial error (vector E[X][Y]) is the sum of the error amount (vector E[X][Y]) of one row in the X-axis direction among the axis data (axis error) on multiple coordinate points in a grid. X [X]) and the error amount in one row along the Y axis (vector E Y [Y]) and approximate them as a linear combination. An example of a local region is the central region of the movable range of an industrial machine.
[0031]
number
[0032] However, when viewed as a whole, the frequency of occurrence of values in the spatial error (vector E[X][Y]) may be uniform and white noise-like, making it difficult to compress using conventional entropy coding techniques that utilize the small information entropy. For example, Figure 10 shows a bitmap image that visualizes an error map when the target axes for error correction are the X and Y axes, and the RGB values of each pixel correspond to the error amount vector E. Furthermore, the error amount (vector E[X][Y]) of each pixel is calculated according to the above formula (4), as follows: X [X] and vector E Y [Y]. For example, if the number of pixels in the bitmap image shown in Figure 10 is 10 x 10, which is 374 bytes, when this is encoded using ZIP compression, a typical entropy encoding technique, it will become 393 bytes. As can be seen, conventionally known entropy encoding has no compression effect and in some cases increases the data size, which is counterproductive.
[0033] In light of the above, this embodiment utilizes the property that even axis-dependent data that depends on the coordinate values of each axis of an industrial machine, such as the amount of error used to correct errors of each axis of an industrial machine, can be locally regarded as a linear combination of the axis errors as expressed in the above-mentioned formula (1). As a result, the data encoding device 1 according to this embodiment makes it possible to encode and compress axis-dependent data, which was previously difficult.
[0034] 1, the data encoding device 1 according to this embodiment is configured using a computer including memories such as ROM (read only memory) and RAM (random access memory), a CPU (control processing unit), operation means such as a keyboard, a display, and a communication control unit, all connected to one another via a bus. The functions and operations of the functional units described below are achieved by the cooperation of the CPU and memory installed in the computer, and the control program stored in the memory.
[0035] The data encoding device 1 may be provided in, for example, a computerized numerical control (CNC) device corresponding to a control device for industrial machinery such as a machine tool or a robot, a robot control device, etc. Alternatively, the data encoding device 1 may be provided in an external computer or the like capable of communicating with these control devices.
[0036] The model approximation encoding unit 11 included in the data encoding device 1 of this embodiment generates encoded axis-dependent data by encoding axis-dependent data based on a portion of the axis-dependent data that depends on the coordinate values of each axis of the industrial machine and a linear combination model that approximates the axis-dependent data as a linear combination of each axis data (each axis error) of the industrial machine. The axis-dependent data is input, for example, from the above-mentioned control device. The linear combination model is stored, for example, in a storage unit of the data encoding device 1.
[0037] Here, the axes of an industrial machine refer to, for example, the axes of a machine tool, i.e., the X-axis, Y-axis, and Z-axis. Examples of axis-dependent data include error amounts used to correct errors in the axes of industrial machines, as well as the installation error amount of a relatively large workpiece whose displacement varies for each coordinate value due to the influence of deflection caused by its own weight. These error amounts and the installation error amount of a workpiece are all data that depend on the coordinate values of the axes of the industrial machine.
[0038] Hereinafter, the model approximation coding using a linear combination model by the model approximation coding unit 11 of this embodiment will be described in detail with reference to FIGS.
[0039] FIG. 11 is a diagram showing an example of axis-dependent data. The example shown in FIG. 11 shows axis-dependent data in the case where two axes, the X-axis and the Y-axis, are the target axes for error correction, etc. The axis-dependent data shown in FIG. 11 is, for example, the amount of each axis error of an industrial machine, and is axis-dependent data of a certain local region in axis-dependent data in which the occurrence frequency of values in the data is not biased overall, and is axis-dependent data that can be approximated by a linear combination model, which will be described later. The example of axis-dependent data shown in FIG. 11 has a total of N×M points of axis data (each axis error).
[0040] FIG. 12 is a diagram showing a linear combination model that approximates the axis-dependent data of FIG. 11 as a linear combination of each axis error of the industrial machine. As described above, the error amount (vector E[X 1 ]···[X L ]) follows the model expressed by the above formula (3), and as a whole, the correlation term (vector δ[X 1 ]···[X L ]) is considered to have a strong influence, it is believed that there exists a region that can be locally approximated by the linear combination model expressed by the above formula (1). For such an approximable region, as shown in FIG. 12, an approximation model (vector Ea[X 1 ]···[X L ]) in the X-axis direction. X[X]) and the error amount in one row along the Y axis (vector Ea Y [Y]) and approximate them as a linear combination. In the example shown in Figure 12, the total number of axis data (axis errors) after approximation is N+M points, which shows that axis-dependent data can be compressed.
[0041]
number
[0042] In the above formula (5), X 1 , X L is expressed as the following equation (6), and the vector c is defined as the average value as expressed in the following equation (7). X l [X l ] is expressed as the following formula (8). Furthermore, L represents the number of axes to be subjected to error correction, and X l represents the l-th axis to be corrected, and Nl represents the number of error amounts for the l-th axis to be corrected.
[0043]
number
[0044]
number
[0045]
number
[0046] In the formula (8), X represents a one-dimensional axis space, while x represents an element belonging to the space. p is a value between 1 and L. For example, x 3 If so, axis X 3 means a possible value of .
[0047] If the vector c is defined as in the above formula (7), the approximation model (vector Ea[X1] [X L ]) is a maximum likelihood estimation model that minimizes the evaluation function J expressed by the following formula (9). That is, the evaluation function J is, as expressed by the following formula (9), the original error amount before approximation (vector E[X 1 ]···[X L ]) and the error amount after approximation (vector Ea[X 1 ]···[X L ]), and the approximation model (vector Ea[X1] [X L The approximation model determined in this manner as a linear combination model is stored in, for example, a storage unit of the data encoding device 1 and is used for model approximation encoding by the model approximation encoding unit 11.
[0048]
number
[0049] According to this embodiment, the following effects are achieved.
[0050] The data encoding device 1 according to this embodiment includes a model approximation encoding unit 11 that generates encoded axis-dependent data by encoding axis-dependent data based on a portion of the axis-dependent data that depends on the coordinate values of each axis of the industrial machine and a linear combination model that approximates the axis-dependent data as a linear combination of each axis data (each axis error) of the industrial machine. Conventionally, axis-dependent data, such as the amount of axis error of an industrial machine, which has a uniform overall occurrence frequency and is often white noise-like, has been difficult to compress using conventional entropy encoding techniques that utilize the bias in the occurrence frequency of values in the data, i.e., the small information entropy. In contrast, this embodiment approximates a portion of the axis-dependent data as a linear combination of each axis data (each axis error), making it possible to encode and compress axis-dependent data that was previously difficult to compress. Furthermore, by using the encoded axis-dependent data encoded and compressed according to this embodiment, it is possible to increase the amount of data, such as error amounts, that can be input to industrial machine control devices, without increasing storage capacity, thereby enabling more accurate correction of industrial machine errors.
[0051] [Second embodiment] Fig. 13 is a diagram showing the configuration of a data encoding device 2 according to the second embodiment. As shown in Fig. 13, the data encoding device 2 according to the second embodiment differs from the data encoding device 1 according to the first embodiment in that it includes an axis-dependent data division unit 22. Also, it differs from the model approximation encoding unit 11 according to the first embodiment in that the model approximation encoding unit 21 according to the second embodiment performs model approximation encoding based on post-division axis-dependent data generated by dividing axis-dependent data into a plurality of pieces and the linear combination model described above. Other than these differences, the configuration is the same as that according to the first embodiment.
[0052] The data encoding device 1 according to the first embodiment described above performs model approximation encoding of a linear combination model for a portion of axis-dependent data that may have a uniform appearance frequency overall and resemble white noise, by treating the portion as a linear combination of each axis data (each axis error). In contrast, the data encoding device 2 according to the present embodiment actively divides the axis-dependent data into a plurality of regions, thereby generating a plurality of regions that can be regarded as a linear combination of each axis data (each axis error), thereby more reliably enabling the execution of model approximation encoding of a linear combination model.
[0053] The axis-dependent data dividing unit 22 divides the axis-dependent data to generate a plurality of divided axis-dependent data. Here, FIG. 14 is a diagram showing axis-dependent data partitioned into a plurality of lattice-like regions. As shown in FIG. 14, the axis-dependent data input to the data encoding device 2 is partitioned into a plurality of lattice-like regions, for example, according to each axis data (each axis error) on each coordinate value. In the example shown in FIG. 14, the axis-dependent data is partitioned into a lattice of 15×15=225 points. The axis-dependent data dividing unit 22 divides the axis-dependent data into a plurality of pieces, for example, along these partitions.
[0054] Although there are no particular limitations on the method for dividing the axis-dependent data by the axis-dependent data dividing unit 22, it is preferable to divide the axis-dependent data so as to generate a plurality of regions that can be regarded as linear combinations of each axis data (each axis error). In particular, it is preferable for the axis-dependent data dividing unit 22 to divide the axis-dependent data into a plurality of regions that can be best approximated (compressed).
[0055] Fig. 15 is a diagram showing an example of post-division axis-dependent data. In the example shown in Fig. 15, the axis-dependent data input to the data encoding device 2 is divided into five division sections 1 to 5 by the axis-dependent data dividing unit 22. That is, each piece of data in each of these five division sections 1 to 5 corresponds to post-division axis-dependent data, and this post-division axis-dependent data can be regarded as a linear combination of each piece of axis data (each axis error), and model approximation encoding of a linear combination model by the model approximation encoding unit 21, which will be described later, is possible. On the other hand, outside these five division sections 1 to 5, the axis-dependent data cannot be regarded as a linear combination of each piece of axis data (each axis error), and model approximation encoding of a linear combination model is not possible.
[0056] The model approximation coding unit 21 generates coded axis-dependent data based on the plurality of divided axis-dependent data and the linear combination model. As described above, in each of the plurality of divided sections 1 to 5, the axis-dependent data can be regarded as a linear combination of each axis data (each axis error). Therefore, the model approximation coding unit 21 performs model approximation coding of the linear combination model on each divided axis-dependent data, thereby generating coded axis-dependent data that has been model-approximated and compressed.
[0057] According to this embodiment, the following effects are achieved.
[0058] The data encoding device 2 according to this embodiment is provided with an axis-dependent data division unit 22 that divides axis-dependent data to generate multiple pieces of divided axis-dependent data. The model approximation encoding unit 21 is also configured to generate encoded axis-dependent data based on the multiple pieces of divided axis-dependent data and a linear combination model. Thus, according to this embodiment, by actively dividing the axis-dependent data into multiple regions, it is possible to generate multiple regions that can be regarded as linear combinations of the axis data (axis errors), and by performing model approximation encoding of the linear combination model for each region, it is possible to more reliably compress axis-dependent data that was previously difficult to compress.
[0059] [Third embodiment] Fig. 16 is a diagram showing the configuration of a data encoding device 3 according to the third embodiment. As shown in Fig. 16, the data encoding device 3 according to the third embodiment differs from the second embodiment in that the configuration of the axis-dependent data division unit 32 differs from that of the axis-dependent data division unit 22 of the second embodiment. Other than this difference, the configuration is the same as that of the second embodiment.
[0060] In the data encoding device 2 according to the second embodiment, the method for dividing the axis-dependent data is not particularly limited, but in the data encoding device 3 according to the third embodiment, the axis-dependent data is divided using dynamic programming. That is, by using dynamic programming, the axis-dependent data can be divided optimally, and the axis-dependent data can be best approximated and compressed.
[0061] 16, the axis-dependent data division unit 32 of this embodiment includes a dynamic programming processing unit 33. The dynamic programming processing unit 33 generates optimal post-division axis-dependent data by executing dynamic programming. Specifically, the dynamic programming processing unit 33 includes, as functional units for executing dynamic programming, a post-model approximation encoding optimality evaluation unit 34, an axis-dependent data partial division unit 35, and a partial axis-dependent data optimization result combination unit 36.
[0062] Here, the dynamic programming executed by the dynamic programming processing unit 33 will be described in detail.
[0063] Dynamic programming is a general-purpose algorithm for solving optimization problems. Dynamic programming is an algorithm with the following two characteristics. The first characteristic is that it solves recursively. That is, it divides a problem into small-scale subproblems, recursively optimizes the subproblems, and combines the optimization results of the subproblems to solve the original problem on a larger scale. The second characteristic is that it can reduce processing load by recording the optimization results. That is, in the process of recursively solving a problem, the same problem may appear multiple times. In order to omit calculations for problems that have already been solved, the optimization results of problems that have already been solved can be recorded and reused.
[0064] Therefore, the dynamic programming processing unit 33 of this embodiment includes a post-model approximation coding optimality evaluation unit 34 as a means for evaluating the optimality of the result. That is, the post-model approximation coding optimality evaluation unit 34 evaluates the optimality of the axis-dependent data after encoding. The optimality of the axis-dependent data after encoding can be evaluated, for example, based on whether the approximation error amount after model approximation coding is within a predetermined constraint tolerance. Note that, as will be described in detail in a fourth embodiment below, the approximation error amount after model approximation coding is the difference between the original error amount before the model approximation coding described in the first embodiment above and the error amount after model approximation coding. The constraint tolerance may be, for example, an approximation error tolerance or an allowable number of data points that exceed the approximation error tolerance.
[0065] The dynamic programming processing unit 33 of this embodiment also includes an axis-dependent data partial dividing unit 35 as means for dividing a problem into subproblems. The axis-dependent data partial dividing unit 35 divides the axis-dependent data into a plurality of portions to generate partial axis-dependent data. The axis-dependent data partial dividing unit 35 divides the axis-dependent data into predetermined specified intervals according to a predetermined division criterion stored in advance, and then divides the axis-dependent data into a plurality of portions by shrinking and optimizing the axis-dependent data by one point in each of the positive and negative directions of each axis, such as the X-axis and Y-axis. The division of the axis-dependent data by the axis-dependent data partial dividing unit 35 will be described in detail later.
[0066] Furthermore, the dynamic programming processing unit 33 of this embodiment includes a partial axis-dependent data optimization result combining unit 36 as a means for combining (combining) the optimization results of the subproblems. The partial axis-dependent data optimization result combining unit 36 generates optimal post-division axis-dependent data by expanding and combining the partial axis-dependent data. For example, the partial axis-dependent data optimization result combining unit 36 optimizes the partial axis-dependent data generated by dividing the axis-dependent data by the axis-dependent data partial dividing unit 35 described above by expanding it by one point in each of the positive and negative directions of each axis, such as the X axis and the Y axis. The generation of optimal post-division axis-dependent data by the partial axis-dependent data optimization result combining unit 36 will be described in detail later.
[0067] The division of axis-dependent data by the dynamic programming processor 33 will be described in detail below with reference to the above-mentioned FIGS. 14, 15, 17 and 18. FIG.
[0068] As shown in FIG. 14 above, the axis-dependent data is partitioned into a grid of, for example, 15×15=225 points. When such axis-dependent data is partitioned into sections by the dynamic programming processor 33, the axis-dependent data after partitioning, for example, as shown in FIG. 15, is obtained. When the axis-dependent data is partitioned into sections by the dynamic programming processor 33, the approximation error of each error amount when each region of the partitioned section is approximated by the above-mentioned approximation model is kept within the constraint tolerance. Furthermore, points whose approximation error does not fall within the constraint tolerance are allowed up to the constraint tolerance number. Still, the number of points that cannot be approximated and do not satisfy the constraint is minimized. As a result, for example, 225 data points can be compressed to 92 points, thereby reducing the data size.
[0069] 17 is a flowchart showing the procedure for dividing axis-dependent data by the dynamic programming processing unit 33. The division of axis-dependent data by the dynamic programming processing unit 33 is executed by recursively searching for optimal division intervals for the axis-dependent data by dynamic programming.
[0070] In step S1, the axis-dependent data is divided into predetermined designated sections. However, if the section is an area where the axis-dependent data has already been divided by the dynamic programming processing unit 33, the stored processing results may be reflected in this step. Then, the process proceeds to step S2.
[0071] In step S2, an approximate model is generated for the area (designated area) within the designated section divided in step S1. Specifically, for each designated area, an approximate model (vector Ea[X1] [X L ]) is generated. Then, the process proceeds to step S3.
[0072] In step S3, it is determined whether the approximation model of the specified region generated in step S2 satisfies all-point constraints. Constraints include whether the approximation error of all points is within an allowable value, or whether the number of points whose approximation error is not within the allowable value is within an allowable value. If the determination is YES, optimal division of the axis-dependent data has been performed, and the optimal post-division axis-dependent data has been obtained, so this process ends. On the other hand, if the determination is NO, the process proceeds to step S4.
[0073] In step S4, n is set to an initial value of 1. Here, the value of n represents each axis, and for example, if the axis configuration is a total of two axes, the X axis and the Y axis, n represents the X axis when it is 1, and n represents the Y axis when it is 2. Then, proceed to step S5.
[0074] In step S5, it is determined whether n is greater than L, where L is the number of axes in the specified section of the axis-dependent data. For example, if there are two axes, the X axis and the Y axis, L is 2. If this determination is YES, the process proceeds to step S11. On the other hand, if this determination is NO, the process proceeds to step S6.
[0075] The processing of steps S6 to S10 is performed when n is equal to or less than L. When there are two axes, the X axis and the Y axis, if n is 1, it means processing for the X axis, and if n is 2, it means processing for the Y axis.
[0076] In step S6, the axis-dependent data is extracted from the specified section in step S1 to X n Divide each axis data (each axis error) into a specified section by narrowing it by one row in the positive direction. n Execute a new section division by shrinking each axis data (each axis error) by one column in the positive direction. X n The positive direction means the positive direction of the X axis when n is 1. The result is output as optimization result nP. When n is 1, optimization result 1P is output. Then, the process proceeds to step S7.
[0077] In step S7, the optimization result nP obtained in step S6 is converted into X nExpand each axis data (each axis error) by one column in the positive direction. The result is the optimization result nP + When n is 1, the optimization result is 1P. + Since n can range from 1 to L, this step outputs the optimization result 1P to LP. + After that, the process proceeds to step S8.
[0078] In step S8, the axis-dependent data is extracted from the specified section in step S1 to X n Divide each axis data (each axis error) into a specified section narrowed by one row in the negative direction. That is, X n Execute a new section division by shrinking each axis data (each axis error) by one column in the negative direction. X n The negative direction means the negative direction of the X axis when n is 1. The result is output as optimization result nM. When n is 1, optimization result 1M is output. Then, the process proceeds to step S9.
[0079] In step S9, the optimization result nM obtained in step S8 is converted into X n Expand each axis data (each axis error) by one column in the negative direction. The result is the optimization result nM + When n is 1, the optimization result is 1M + Since n can range from 1 to L, this step outputs the optimization result 1M to LM. + After that, the process proceeds to step S10.
[0080] In step S10, n is incremented by 1. Then, the process returns to step S5.
[0081] Step S11 is the process when n is greater than L, and when there are two axes, the X axis and the Y axis, after the processes for the X axis and the Y axis are completed in steps S6 to S10. In step S11, the optimization results 1P to LP obtained in steps S6 to S10 are + , 1M~LM + Among them, the one with the smallest number of unapproximable points is output. That is, the optimization result 1P~LP + , 1M~LM+ For each of the above, the number of unapproximable points where the approximation model generated in step S3 does not satisfy the above constraints is calculated, and the model with the smallest number of unapproximable points and the best approximation and most compressed data is output, and this process ends.
[0082] Here, the procedure for expanding one column of each axis data (each axis error) in the positive X direction in step S7 described above will be explained in more detail with reference to the specific example shown in Fig. 18 and Fig. 19. Fig. 18 is a diagram showing the divided sections before being expanded by one column of each axis data (each axis error) in the positive X direction. Fig. 19 is a diagram showing the divided sections after being expanded by one column of each axis data (each axis error) in the positive X direction. In Fig. 18 and Fig. 19, different numbers are assigned to each divided section.
[0083] As shown in FIG. 18, first, sections 1 to 5 are extracted as continuous sections that appear at the end in the X-positive direction of the section before expansion by one row of each axis data (each axis error).
[0084] Next, each of the extracted sections 1 to 5 is expanded by one row of axis data (each axis error) to generate expanded sections 1 to 5 as shown in FIG.
[0085] Next, for each of the expanded sections 1 to 5, it is confirmed whether the above-mentioned approximation model satisfies the above-mentioned constraints. If the constraints are satisfied, the expanded section is designated as a new section. In the example shown in Figure 19, expanded sections 1 and 4 satisfy the constraints, so they are designated as new sections.
[0086] If the constraints are not satisfied, the expanded section is set as an undetermined section. In the example shown in Figure 19, expanded section 2 does not satisfy the constraints, so it is set as an undetermined section.
[0087] Furthermore, when an undetermined section exceeds a certain area (e.g., 2×2), it is checked whether the above-mentioned approximation model satisfies the above-mentioned constraints. In the example shown in FIG. 19, since the expanded section 3 exceeds a certain area (e.g., 2×2), this determination is made. Until then, the expanded section is also considered an undetermined section.
[0088] In addition, if the section before expansion is an NG section, that is, a section that does not satisfy the constraints and cannot be approximated, the expanded section is treated as an undetermined section. In the example shown in Figure 19, expanded section 5 corresponds to this, so it is treated as an undetermined section.
[0089] As a result of the above, there may be intervals that remain undetermined until the end. Such intervals may ultimately be determined as NG intervals, i.e., intervals that do not satisfy the constraints and cannot be approximated.
[0090] According to this embodiment, the following effects are achieved.
[0091] The data encoding device 3 according to this embodiment is provided with a dynamic programming processing unit 33 that executes dynamic programming to generate optimal post-division axis-dependent data. This dynamic programming processing unit 33 is also comprised of an optimality evaluation unit 34 that evaluates the optimality of the encoded axis-dependent data, a partial division unit 35 that divides the axis-dependent data into multiple parts to generate partial axis-dependent data, and an optimization result combination unit 36 that combines the optimization results of the partial axis-dependent data to generate optimal post-division axis-dependent data. This makes it possible to divide the axis-dependent data into optimal post-division axis-dependent data that can be compressed with the smallest amount of data. Therefore, this embodiment can generate optimal regions that can be regarded as linear combinations of the axis data (axis errors). By performing model approximation encoding of a linear combination model for each region, it is possible to further compress axis-dependent data that was previously difficult to compress.
[0092] [Fourth embodiment] Fig. 20 is a diagram showing the configuration of a data encoding device 4 according to the fourth embodiment. As shown in Fig. 20, the data encoding device 4 according to the fourth embodiment differs from the model approximation encoding unit 11 of the first embodiment in that a model approximation encoding unit 41 includes an approximation error calculation unit 42. The data encoding device 4 according to the fourth embodiment also differs from the data encoding device 1 of the first embodiment in that it includes an approximation error encoding unit 43. Other than these differences, the configuration is the same as that of the first embodiment.
[0093] The approximation error calculation unit 42 calculates the amount of approximation error. The approximation error calculation unit 42 of this embodiment is provided in the model approximation encoding unit 41, and calculates the amount of approximation error when model approximation encoding the axis-dependent data. This approximation error amount will be described in detail later.
[0094] The approximation error coding unit 43 encodes the approximation error amount to generate an encoded approximation error amount. The approximation error amount calculated by the approximation error calculation unit 42 often has a bias in the frequency of occurrence of values in the data as described below, and the information entropy is small. Therefore, it is possible to compress the data by encoding using conventionally known entropy coding. Alternatively, the data may be compressed by encoding using model approximation coding of a linear combination model executed by the model approximation coding unit 41.
[0095] The approximate error amount and the encoding of the approximate error amount by the approximate error encoding unit 43 will be described in more detail below.
[0096] As described in the first embodiment, the approximation model (vector Ea[X 1 ]···[X L ]), the approximation error (vector γ[X 1 ]···[X L ]) is expressed by the following formula (10).
[0097]
number
[0098] In equation (10), the vector E[X 1 ]···[X L ] is the original error amount before model approximation, and the vector Ea[X 1 ]···[X L ] is the error amount after model approximation. From this formula (10), the difference between these is the approximation error (vector γ[X 1 ]···[X L ]).
[0099] Here, the approximate model (vector Ea[X 1 ]···[X L ]) is the maximum likelihood estimation model, so the approximation error (vector γ[X 1 ]···[X L ]) has been minimized and has become very small values. Here, FIG. 21 is a diagram showing the approximation error (vector γ[X][Y]). As shown in FIG. 21, the approximation error (vector γ[X][Y]) is biased towards small values, and the frequency distribution of these values is also biased. Therefore, the approximation error (vector γ[X 1 ]···[X L ]) can be encoded to compress the data.
[0100] Approximation error (vector γ[X 1 ]···[X L For example, the approximation error (vector γ[X 1 ]···[X L ]) may be coded, and the approximation error (vector γ[X 1 ]···[X L ]) may be encoded.
[0101] Approximation model (vector Ea[X 1 ]···[X L ]) alone, the original error quantity (vector E[X 1 ]···[X L ]), the approximation error (vector γ[X 1 ]···[X L ]), and the approximation error (vector γ[X 1 ]···[X L ]) exists for each axis data point, so if it is stored as it is, data compression will not be possible. However, the approximation error (vector γ[X 1 ]···[X L ]) and encode the approximate model (vector Ea[X 1 ]···[X L]) to obtain the original error vector E[X 1 ]···[X L ]) can be compressed and reproduced without any loss, and the total data size can also be reduced.
[0102] According to this embodiment, the following effects are achieved.
[0103] In the data encoding device 4 according to this embodiment, the model approximation encoding unit 41 is provided with an approximation error calculation unit 42 that calculates an approximation error amount. The data encoding device 4 is also configured to further include an approximation error encoding unit 43 that encodes the approximation error amount to generate an encoded approximation error amount. As a result, according to this embodiment, it is possible to encode and compress axis-dependent data that was previously difficult to compress, and by encoding the approximation error amount, it is possible to further reduce the total data size while reproducing the original axis-dependent data such as the error amount without any loss.
[0104] [Fifth embodiment] Fig. 22 is a diagram showing the configuration of a data encoding device 5 according to the fifth embodiment. As shown in Fig. 22, the data encoding device 5 according to the fifth embodiment differs from the data encoding device 4 according to the fourth embodiment in that it further includes an approximation error removal unit 53 having an error equal to or greater than a predetermined tolerance. It also differs from the approximation error encoding unit 43 according to the fourth embodiment in that an approximation error encoding unit 54 encodes an approximation error amount within a predetermined tolerance. Other than these differences, the configuration is the same as that of the fourth embodiment.
[0105] The approximation error removal unit 53 removes approximation error amounts exceeding a predetermined tolerance from the approximation error amount, thereby generating an approximation error amount within the predetermined tolerance. Here, FIG. 23 is a diagram showing the approximation error (vector γ[X][Y]) including exceptional points larger than the predetermined tolerance. As shown in FIG. 23, the approximation error (vector γ[X][Y]), which is the difference between the original error amount before model approximation coding and the error amount after model approximation coding, may include exceptional points larger than the predetermined tolerance. In this embodiment, the approximation error removal unit 53 removes these exceptional points.
[0106] 24 shows exceptional points that are excluded and retained because the approximation error (vector γ[X][Y]) is greater than the predetermined tolerance. In this way, the approximation error removal unit 53 may separately retain exceptional points whose approximation errors are greater than the predetermined tolerance, i.e., approximation error amounts that exceed the predetermined tolerance, that have been removed from the approximation error amount. This allows axis-dependent data such as the original error amount to be compressed and reproduced without any loss.
[0107] The predetermined tolerance may be, for example, an approximation error allowance or a predetermined number of data points (allowable points) that exceed the approximation error allowance. In this case, the approximation error elimination unit 53 excludes points that exceed a preset approximation error allowance or a predetermined number of points that exceed the approximation error allowance from the approximation error (vector γ[X][Y]). Note that the predetermined tolerance may include 0.
[0108] The approximation error encoding unit 54 encodes the approximation error amount within a predetermined tolerance to generate an encoded approximation error amount. That is, the approximation error encoding unit 54 of this embodiment encodes the approximation error (vector γ[X 1 ]···[X L ]) is encoded after excluding points whose approximation error is greater than a predetermined tolerance.
[0109] The approximation error remaining after excluding points larger than a predetermined tolerance from the approximation error amount, i.e., the approximation error amount within the predetermined tolerance, becomes more biased and the information entropy becomes smaller, thereby enhancing the data compression effect by encoding. Furthermore, for example, by retaining only points whose approximation error is larger than the predetermined tolerance and not retaining other approximation errors, the data size after encoding can be further reduced. Even in this case, it is possible to ensure that the entire approximation error falls within the tolerance.
[0110] According to this embodiment, the following effects are achieved.
[0111] The data encoding device 5 according to this embodiment further includes an approximation error removal unit 53 that removes approximation errors exceeding a predetermined tolerance from the approximation error to generate an approximation error within a predetermined tolerance. The approximation error encoding unit 54 encodes approximation errors within the predetermined tolerance to generate an encoded approximation error. This makes it possible to encode and compress axis-dependent data that was previously difficult to compress. Furthermore, by encoding the approximation error after removing approximation errors exceeding the predetermined tolerance, lossy compression within the allowable loss limit (predetermined tolerance, predetermined number of points) is also possible. In this case, data size can be reduced more than with lossless compression.
[0112] [Sixth embodiment] Fig. 25 is a diagram showing the configuration of a data encoding device 6 according to the sixth embodiment. As shown in Fig. 25, the data encoding device 6 according to this embodiment differs from the data encoding device 1 according to the first embodiment in that it further includes a model approximation encoding data encoding unit 62. Apart from this difference, the configuration is the same as that of the first embodiment.
[0113] The post-model approximation coding data coding unit 62 codes the axis-dependent data after the model approximation coding. That is, in this embodiment, the post-model approximation coding data coding unit 62 re-encodes the axis-dependent data after the model approximation coding.
[0114] As described in the first embodiment, the approximation model (vector Ea[X 1 ]···[X L ]) to express the amount of error, the vector Ea X l [X l ], we can further compress the data by performing encoding on each of the vectors Ea X l [X l ] represents the error of each axis, so the approximation model (vector Ea[X 1]···[X L ]), the model approximation coding post-data coding unit 62 performs coding by entropy coding, such as the well-known Huffman code.
[0115] According to this embodiment, the following effects are achieved.
[0116] The data encoding device 6 according to this embodiment is further provided with a model approximation encoding data encoding unit 62 that encodes the post-encoding axis-dependent data. As a result, according to this embodiment, the model approximation encoding data encoding unit 62 further encodes the post-encoding axis-dependent data, thereby making it possible to further reduce the data size.
[0117] [Seventh embodiment] Fig. 26 is a diagram showing the configuration of a data encoding device 7 according to the seventh embodiment. As shown in Fig. 26, the data encoding device 7 according to this embodiment differs from the data encoding device 3 according to the third embodiment in that it includes a learning result acquisition unit that acquires reinforcement learning results from a machine learning device 9 instead of dynamic programming, and divides axis-dependent data into sections using the learning results. Other than this difference, the configuration is the same as that of the third embodiment.
[0118] The machine learning device 9 performs reinforcement learning for optimal division processing of axis-dependent data. In reinforcement learning by the machine learning device 9 of this embodiment, the machine learning device 9 as an agent acquires axis-dependent data such as the amount of error of an industrial machine as the state of the environment, and selects certain post-division axis-dependent data as an action, and the environment changes based on the action. In response to this change in the environment, the number of unapproximable points and the post-approximation data amount obtained by model approximation encoding the post-division axis-dependent data are obtained as judgment data. Then, some kind of reward is given according to the obtained judgment data, and the machine learning device 9 as an agent learns the optimal post-division axis-dependent data for selecting a better action, i.e., for decision-making. The machine learning device 9 as an agent learns to select an action that maximizes the total reward over the future.
[0119] Any learning method can be used for reinforcement learning. For example, Q-learning, which is a method of learning the value Q(s, a) of selecting action a in a certain environmental state s, can be used. In Q-learning, when a certain state s is reached, the action a with the highest value Q(s, a) is selected as the optimal action from among the possible actions a. However, when Q-learning is first started, the correct value Q(s, a) for the combination of state s and action a is not known at all. Therefore, the machine learning device 9 as an agent selects various actions a in a certain state s and selects a better action based on the reward given for the action a at that time, thereby learning the correct value Q(s, a).
[0120] Furthermore, since the machine learning device 9 wants to maximize the total reward that can be obtained in the future, it ultimately calculates Q(s, a)=E[Σ(γ t )r t ] where E[] represents the expected value, t is the time, γ is a parameter called the discount rate, which will be described later, and r t is the reward at time t, and Σ is the sum at time t. The expected value in this equation is the expected value when the state changes according to the optimal action. However, since it is unknown what the optimal action is in the Q-learning process, reinforcement learning is performed by searching through various actions. The update equation for such value Q(s, a) can be expressed, for example, as in the following equation (11).
[0121]
number
[0122] In the above formula (11), s t represents the state of the environment at time t, and a t represents the action at time t. Action a t Therefore, the state is s t+1 It changes to r t+1 represents the reward obtained by the change of the state. Also, the term with max represents the reward obtained by the change of the state s t+1It is calculated by multiplying the Q value of the action a with the highest Q value known at that time by γ. Here, γ is a parameter that is 0<γ≦1 and is called the discount rate. Also, α is a learning coefficient that is in the range of 0<α≦1.
[0123] The above formula (11) is t As a result, the reward returned is r t+1 Based on the state s t Actions in a t The value of Q(s t ,a t ) is updated. This update formula is t Actions in a t The value of Q(s t ,a t ) rather than action a t Next state by s t+1 The value of the best action in max a Q(s t+1 , a) is larger, then Q(s t ,a t ) is large, and conversely, if it is small, Q(s t ,a t ) is reduced. In other words, the value of an action in a certain state is brought closer to the value of the best action in the next state. However, the difference is determined by the discount rate γ and the reward r t+1 This varies depending on the state of affairs, but basically, the value of the best action in a certain state is propagated to the value of the action in the state immediately before it.
[0124] One method of Q-learning is to create a table of Q(s,a) for all state-action pairs (s,a) and then perform learning. However, there are cases where the number of states is too large to calculate the Q(s,a) values for all state-action pairs, and it takes a long time for Q-learning to converge.
[0125] Therefore, a well-known technology called DQN (Deep Q-Network) may be used. Specifically, the value function Q may be constructed using an appropriate neural network, the parameters of the neural network may be adjusted, and the value function Q may be approximated by the appropriate neural network to calculate the value Q(s, a). By using DQN, it is possible to shorten the time required for Q-learning to converge. Note that DQN is described in detail, for example, in the non-patent document "Human-level control through deep reinforcement learning" by Volodymyr Mnih1 [online], [searched January 17, 2017], and on the Internet at URL: http: / / files.davidqiu.com / research / nature14236.pdf.
[0126] 26, the machine learning device 9 includes a state observing unit 91, a judgment data acquiring unit 92, a learning unit 93, and a decision making unit 94. The learning unit 93 also includes a reward calculating unit 95 and a value function updating unit 96.
[0127] The state observing unit 91 acquires axis-dependent data as state data from the data encoding device 7. The state observing unit 91 also outputs the acquired axis-dependent data to the learning unit 93.
[0128] The judgment data acquisition unit 92 acquires, as judgment data from the data encoding device 7, the number of unapproximable points and the approximated data amount obtained by model approximation encoding the divided axis-dependent data. The divided axis-dependent data is obtained by dividing the axis-dependent data into predetermined specified intervals according to a predetermined division criterion stored in advance. The judgment data acquisition unit 92 also outputs the acquired number of unapproximable points and the approximated data amount to the learning unit 93.
[0129] The reward calculation unit 95 of the learning unit 93 calculates a reward based on the acquired axis-dependent data, the number of unapproximable points, and the amount of post-approximation data. Specifically, the reward calculation unit 95 increases the reward when the number of unapproximable points decreases, and decreases the reward when the number of unapproximable points increases. Furthermore, the reward calculation unit 95 increases the reward when the amount of post-approximation data decreases, and decreases the reward when the amount of post-approximation data increases.
[0130] The value function update unit 96 of the learning unit 93 updates the stored value function by performing the above-mentioned Q-learning based on the axis-dependent data as state data, the number of unapproximable points and the approximated data amount obtained by model approximation encoding the divided axis-dependent data as judgment data, and the value of the reward. Note that the value function stored by the value function update unit 96 can be shared by, for example, multiple machine learning devices connected to each other so that they can communicate with each other.
[0131] Decision-making unit 94 acquires the updated value function from value function update unit 96. Furthermore, decision-making unit 94 outputs the optimal post-division axis-dependent data based on the acquired value function to data encoding device 7 as a behavior output.
[0132] FIG. 27 is a flowchart showing the procedure of the learning process performed by the machine learning device 9.
[0133] In step S21, first, the machine learning device 9 outputs the divided axis-dependent data as an action output to the data encoding device 7. The divided axis-dependent data output in this step is obtained by dividing the axis-dependent data into predetermined specified sections according to a predetermined division criterion stored in advance. The data encoding device 7 performs model approximation encoding on this divided axis-dependent data to generate the number of unapproximated points and the amount of approximated data. Then, the process proceeds to step S22.
[0134] In step S22, the machine learning device 9 acquires axis-dependent data as state data from the data encoding device 7. After that, the process proceeds to step S23.
[0135] In step S23, the machine learning device 9 acquires, as determination data from the data encoding device 7, the number of unapproximated points and the amount of approximated data after model approximation encoding of the divided axis-dependent data generated in step S21. Then, the process proceeds to step S24.
[0136] In step S24, as a judgment condition 1, it is determined whether or not the number of unapproximable points has decreased when the data encoding device 7 performs model approximation encoding on the divided axis-dependent data. If the judgment is YES, the process proceeds to step S25, where the reward is increased. On the other hand, if the judgment is NO, the process proceeds to step S26, where the reward is decreased. Thereafter, the process proceeds to step S27.
[0137] In step S27, as a second judgment condition, it is determined whether the amount of data after model approximation coding has been reduced when the data coding device 7 performs model approximation coding on the divided axis-dependent data. If the judgment is YES, the process proceeds to step S28, where the reward is increased. On the other hand, if the judgment is NO, the process proceeds to step S29, where the reward is decreased. Thereafter, the process proceeds to step S30.
[0138] In step S30, the value function stored in value function update unit 96 is updated. Specifically, value function update unit 96 updates the stored value function by performing the above-mentioned Q-learning based on the axis-dependent data as state data, the number of unapproximable points and the approximated data amount obtained by model approximation encoding the divided axis-dependent data as judgment data, and the reward value. Then, the process proceeds to step S31.
[0139] In step S31, it is determined whether or not to continue the learning process. If the determination is YES, the process returns to step S21. On the other hand, if the determination is NO, the process ends.
[0140] According to this embodiment, the following effects are achieved.
[0141] In the data encoding device 7 according to this embodiment, the axis-dependent data division unit is configured to generate optimal post-division axis-dependent data based on the reinforcement learning results of the machine learning device 9. As a result, according to this embodiment, reinforcement learning by the machine learning device 9 can divide the axis-dependent data into optimal post-division axis-dependent data that can be compressed with the smallest number of data, so that optimal multiple regions that can be regarded as linear combinations of each axis data (each axis error) can be generated, and model approximation encoding of a linear combination model is performed for each region, thereby making it possible to further compress axis-dependent data that was previously difficult to compress.
[0142] In each of the above-described embodiments, a data encoding program for causing each data encoding device to execute each process can also be provided. That is, as a first data encoding program, a data encoding program for causing a computer to execute a model approximation encoding step of encoding axis-dependent data based on a portion of axis-dependent data that depends on the coordinate values of each axis of the industrial machine and a linear combination model that approximates the axis-dependent data as a linear combination of each axis data of the industrial machine, to generate axis-dependent data after encoding can be provided.
[0143] Furthermore, the first data encoding program can further include an axis-dependent data division step for dividing the axis-dependent data to generate a plurality of divided axis-dependent data, and a second data encoding program can be provided in which a model approximation encoding step generates encoded axis-dependent data based on the plurality of divided axis-dependent data and a linear combination model.
[0144] Furthermore, a third data encoding program can be provided in which the second data encoding program includes a dynamic programming processing step for generating optimal post-division axis-dependent data by executing dynamic programming, and causes a computer to execute an optimality evaluation step for evaluating the optimality of the encoded axis-dependent data, a partial division step for dividing the axis-dependent data into multiple parts to generate partial axis-dependent data, and an optimization result combination step for generating optimal post-division axis-dependent data by expanding and combining the partial axis-dependent data.
[0145] In addition, a fourth data encoding program can be provided for causing a computer to execute a step of generating optimal post-division axle-dependent data based on the reinforcement learning results of the machine learning device in the second data encoding program.
[0146] In addition, a fifth data encoding program can be provided for causing a computer to execute the first to fourth data encoding programs, including an approximate error calculation step for calculating an approximate error amount and a step for encoding the approximate error amount to generate an approximate error amount after encoding.
[0147] Furthermore, a sixth data encoding program can be provided for causing a computer to execute the following steps in the fifth data encoding program: generating an approximate error amount within a predetermined tolerance by removing an approximate error amount that exceeds a predetermined tolerance from the approximate error amount; and encoding the approximate error amount within the predetermined tolerance to generate an approximate error amount after encoding.
[0148] Furthermore, in the first to sixth data encoding programs, a seventh data encoding program can be provided for causing a computer to execute a step of encoding the axis-dependent data after encoding.
[0149] The present disclosure is not limited to the above-described embodiments, and includes modifications and improvements within the scope of achieving the object of the present disclosure.
[0150] In the above-described fourth embodiment, the model approximation encoding unit 41 is configured to include the approximation error calculation unit 42. However, for example, the model approximation encoded axis-dependent data encoded by the data encoding device 4 may be decoded by a data decoding device, and the amount of approximation error may be calculated from the difference between the decoded axis-dependent data and the original axis-dependent data.
[0151] In the above-described fourth embodiment, a configuration including the approximation error calculation unit 42 is applied to the first embodiment, but the present invention is not limited to this and can also be applied to the second and third embodiments. Also, in the above-described sixth embodiment, a configuration including the model approximation encoded data encoding unit 62 is applied to the first embodiment, but the present invention is not limited to this and can also be applied to other embodiments. In this way, the above-described embodiments can be combined as appropriate as long as they do not interfere with each other's functions.
[0152] In the seventh embodiment, the machine learning device 9 is provided separately from the data encoding device 7. However, the present invention is not limited to this, and the machine learning device may be provided inside the data encoding device 7. [Explanation of symbols]
[0153] 1,2,3,4,5,6,7 Data Encoding Device 9 Machine Learning Devices 11,21,31,41,51,61 Model approximation coding section 22,32 Axis-dependent data division 33 Dynamic programming processing section 34 Optimality evaluation unit after model approximation coding (optimality evaluation unit) 35 Partial division of axis-dependent data (partial division) 36 Optimization result combination part for partial axis-dependent data (Optimization result combination part) 42 Approximation error calculation section 43 Approximate error encoder 52 Approximation error calculation section 53 Approximation error elimination unit exceeding a predetermined tolerance (approximation error elimination unit) 54 Approximate error encoder 62 Model approximation coding post-data coding unit (post-coding data coding unit)
Claims
1. A data encoding device that encodes data, comprising: A data encoding device comprising a model approximation encoding unit that generates post-encoding axis-dependent data by encoding axis-dependent data based on a portion of axis-dependent data that depends on the coordinate values of each axis of an industrial machine and a linear combination model that approximates the axis-dependent data as a linear combination of each axis data of the industrial machine.
2. an axis-dependent data division unit that divides the axis-dependent data to generate a plurality of divided axis-dependent data; 2. The data encoding device according to claim 1, wherein the model approximation encoding unit generates the encoded axis-dependent data based on the plurality of divided axis-dependent data and the linear combination model.
3. the axis-dependent data division unit includes a dynamic programming processing unit that generates optimal post-division axis-dependent data by executing dynamic programming, The dynamic programming processing unit an optimality evaluation unit that evaluates the optimality of the encoded axis-dependent data; a partial division unit that divides the axis-dependent data into a plurality of parts to generate partial axis-dependent data; 3. The data encoding device according to claim 2, further comprising: an optimization result combining unit that generates optimal post-division axis-dependent data by expanding and combining the partial axis-dependent data.
4. The data encoding device according to claim 2 , wherein the axis-dependent data dividing unit generates optimal post-division axis-dependent data based on a reinforcement learning result obtained by a machine learning device.
5. the model approximation coding unit includes an approximation error calculation unit that calculates an approximation error amount; 3. The data encoding device according to claim 1, further comprising an approximate error encoding unit that encodes the approximate error amount to generate an encoded approximate error amount.
6. the data encoding device further comprises an approximation error removal unit that removes an approximation error amount exceeding a predetermined tolerance from the approximation error amount to generate an approximation error amount within the predetermined tolerance; 6. The data encoding device according to claim 5, wherein the approximate error encoding unit encodes the approximate error amount within the predetermined tolerance to generate the encoded approximate error amount.
7. 3. The data encoding device according to claim 1, further comprising a post-encoding data encoding unit that encodes the post-encoding axis-dependent data.
8. A data encoding program for encoding data, A data encoding program for causing a computer to execute a step of generating post-encoding axis-dependent data by encoding the axis-dependent data based on a portion of axis-dependent data that depends on the coordinate values of each axis of an industrial machine and a linear combination model that approximates the axis-dependent data as a linear combination of each axis data of the industrial machine.
Citation Information
Patent Citations
Method for quickly optimizing geometric error compensation data of translational axis of five-axis numerical control machine tool
CN112558547A
Computer controlled numerical controller and parameter setting method for same
JP1996339216A
Industrial robot
JP2000099123A
Numerical control apparatus for controlling five-axis machining tool
JP2011209897A
Correction program and recording medium recording the same
JP2014113674A