WO2018135281A1 - データ圧縮装置、データ圧縮プログラム、データ圧縮方法及びプログラム - Google Patents

データ圧縮装置、データ圧縮プログラム、データ圧縮方法及びプログラム Download PDF

Info

Publication number
WO2018135281A1
WO2018135281A1 PCT/JP2017/047073 JP2017047073W WO2018135281A1 WO 2018135281 A1 WO2018135281 A1 WO 2018135281A1 JP 2017047073 W JP2017047073 W JP 2017047073W WO 2018135281 A1 WO2018135281 A1 WO 2018135281A1
Authority
WO
WIPO (PCT)
Prior art keywords
matrix data
data
compression
coefficient
value
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Ceased
Application number
PCT/JP2017/047073
Other languages
English (en)
French (fr)
Inventor
真喜子 此島
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Publication of WO2018135281A1 publication Critical patent/WO2018135281A1/ja
Priority to US16/287,540 priority Critical patent/US10482157B2/en
Anticipated expiration legal-status Critical
Ceased legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/3084Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction using adaptive string matching, e.g. the Lempel-Ziv method
    • H03M7/3088Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction using adaptive string matching, e.g. the Lempel-Ziv method employing the use of a dictionary, e.g. LZ78
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/16Matrix or vector computation, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning

Definitions

  • the present invention relates to a data compression apparatus, a data compression program, a data compression method, and a program.
  • Patent Document 1 An apparatus that performs class classification at high speed without reducing the calculation amount required for sparse expression class classification and reducing the classification accuracy
  • the conventional technology has a problem that a large amount of data cannot be efficiently compressed.
  • An object of the present invention is to provide a data compression device that can efficiently compress data.
  • the dictionary generation unit that generates dictionary matrix data used for compression, the input compression target matrix data and the generated dictionary matrix data, the compression In each row of the generated compressed matrix data, a compression unit that generates compressed matrix data that is a result of compressing target matrix data, and position information in which matrix elements are not zero among the matrix elements of the compressed matrix data
  • the index value calculated for the specific value data string that is a data string obtained by concatenating specific values specified from element values that are not zero values is compared with a threshold value, and if the index value is greater than the threshold value, A constant is specified as each coefficient, and when the index value is less than or equal to the threshold value, a coefficient calculation unit that calculates the reciprocal of each specific value as each coefficient, and the compression matrix
  • compress the matrix data after the operation which is the result of rounding the product of each element and the calculated coefficient based on the number of significant digits of the decimal part in each corresponding element
  • an element value operation unit that outputs as
  • data can be compressed efficiently.
  • FIG. 10 is a block diagram illustrating a hardware group of a computer according to a fourth embodiment.
  • FIG. 1 is an explanatory diagram showing an outline of processing.
  • the information processing apparatus 1 that executes various processes such as coefficient calculation is a server computer or a personal computer.
  • the information processing apparatus 1 will be described as being replaced with the computer 1.
  • Computer 1, on the basis of the learning matrix data Y A learns to produce a dictionary A for use in compression. Next, the computer 1 uses the matrix data Y to be compressed and the dictionary A to calculate the compressed matrix data X.
  • the computer 1 calculates a coefficient Z for correcting the compression matrix data X based on each element value of the compression matrix data X.
  • the computer 1 performs correction based on the compression matrix data X and the coefficient Z, and thereafter performs fraction processing to obtain final corrected compression matrix data X ′.
  • the computer 1 outputs the dictionary A, the coefficient Z, and the corrected compression matrix data X ′ as the final result. Details will be described below.
  • FIG. 2 is a block diagram showing a hardware group of the computer 1.
  • a computer 1 includes a CPU (Central Processing Unit) 11 as a control unit, and a RAM (Random Access Memory). ) 12, an input unit 13, a display unit 14, a storage unit 15, a clock unit 18, a communication unit 16, and the like.
  • the CPU 11 is connected to each part of the hardware via the bus 17.
  • the CPU 11 controls each part of the hardware according to the control program 15P stored in the storage unit 15.
  • the CPU 11 may be a multi-core processor equipped with a plurality of processor cores.
  • the RAM 12 is, for example, SRAM (Static RAM), DRAM (Dynamic RAM), flash memory, or the like.
  • the RAM 12 also functions as a storage unit, and temporarily stores various data generated when the CPU 11 executes various programs.
  • the input unit 13 is an input device such as a mouse, a keyboard, a touch panel, or a button, and outputs received operation information to the CPU 11.
  • the display unit 14 is a liquid crystal display, an organic EL (Electro Luminescence) display, or the like, and displays various information according to instructions from the CPU 11.
  • the communication unit 16 is a communication module, and transmits and receives information to and from another computer (not shown).
  • the clock unit 18 outputs date information to the CPU 11.
  • the storage unit 15 is a large-capacity memory or a hard disk, and stores a control program 15P and the like.
  • n is the data compression unit (number of elements)
  • N is the number of learning data (number of vectors in the compression unit)
  • learning matrix data Y A (hereinafter represented by Y in some cases).
  • n rows N It is a matrix of columns.
  • the output is dictionary matrix data A of n rows and m columns.
  • the m-by-N compression matrix data X, the residual rt (residual vector rt), the variable At, the loop variable i, and the like are variables.
  • the CPU 11 inputs 1 to the variable i (step S32).
  • CPU11 is sample y
  • the i-th column data of the learning matrix data Y is input to (step S33).
  • the CPU 11 inputs the sample y as the initial value of the residual rt and inputs NULL as the initial value of the variable At (step S34).
  • FIG. 5 is an explanatory diagram showing numerical examples of the residual rt and the variable At.
  • FIG. 6 is an explanatory diagram showing a numerical example of the dictionary matrix data A. As shown in FIG. 5, 2.6, 2.6, 2.6, 2.4... And the i-th column data of the learning matrix data Y are input to the residual rt. In the example of FIGS. 5 and 6, the length of the vector is 100, but for convenience of paper, FIGS. 5 and 6 show up to 20 elements.
  • the CPU 11 extracts a column ji (position information) in which the inner product of the residual rt and the transposed matrix rt T is the largest in one column of the transposed matrix A T of the dictionary matrix data A shown in FIG. (Step S 35). That is, the vector having the largest inner product is extracted as a vector that faces the most similar direction.
  • the CPU 11 connects the variable string Aj to the variable At in the horizontal direction (step S36). Since the initial value of At is NULL for the first time, the variable string Aj to be linked is input as it is. As shown in FIGS. 5 and 6, the first column of the variable At is similar in vector direction to the thirteenth column of the dictionary matrix data A, and the second column of the variable At is the second column of the dictionary matrix data A. The vector orientation is similar.
  • the third column of the variable At is similar in vector direction to the 169th column of the dictionary matrix data A.
  • CPU1 1 calculates the multiplication value yt by multiplying the variable At by the least squares solution Xti (step S38).
  • CPU 11 replaces the value obtained by subtracting the multiplication value yt from the residual rt with the residual rt (step S39). In FIG. 5, rt is replaced with 1.618316731, 3.323110212.
  • the CPU 11 reads the threshold value E1 and the threshold number (for example, 30 times) from the storage unit 15 (step S41). The CPU 11 determines whether or not the square error of the residual rt is equal to or less than the threshold E1, or whether the number of processes in steps S35 to S41 is equal to or greater than the threshold number (step S42). If the CPU 11 determines that the square error of the residual rt is not less than the threshold E1 or greater than the threshold number (NO in step S42), the process proceeds to step S35. When the process proceeds to step S35, the CPU 11 increments the number of times the processes in steps S35 to S41 have been executed and stores them in the RAM 12. In step S42, the CPU 11 compares the threshold number with the number stored in the RAM 12.
  • step S43 If the CPU 11 determines that the square error of the residual rt is equal to or less than the threshold value E1 or equal to or greater than the threshold number (YES in step S42), the process proceeds to step S43.
  • the CPU 11 adds 1 to the variable i (step S43).
  • the CPU 11 determines whether or not the variable i is greater than N (step S44). If the CPU 11 determines that the variable i is not greater than N (NO in step S44), the process returns to step S33. On the other hand, if the CPU 11 determines that the variable i is greater than N (YES in step S44), the process proceeds to step S45.
  • the CPU 11 reads the second threshold value E2 and the threshold number from the storage unit 15 (step S46).
  • CPU11 increments the frequency
  • step S47 If the CPU 11 determines that the value is equal to or less than the second threshold value or equal to or greater than the threshold number (YES in step S47), the process proceeds to step S48.
  • the CPU 11 stores the learned dictionary matrix data A in the storage unit 15 (step S48).
  • FIG. 7 is a flowchart showing the procedure of the compression process.
  • Data to be compressed as input y Is a column vector of n compression units (number of elements).
  • the non-zero number K of compressed matrix data X and dictionary matrix data A (matrix with n rows and m columns) are input.
  • the output is a compression result Xtk and a non-zero position jk (position information).
  • the residual rt and the variable At are internal variables.
  • the CPU 11 inputs data y as the initial value of the residual rt and inputs NULL as the initial value of the variable At (step S71).
  • the CPU 11 inputs 1 to the variable kk (step S72).
  • CPU11 is in a row of the transposed matrix A T dictionary matrix data A, inner product of the transposed matrix rt T residuals rt extracts the column jk (position information) of maximum, a variable column Ajk (step S73). Specifically, the CPU 11 extracts a column jk having the maximum inner product with rt T from A T columns, and sets it as Ajk. The CPU 11 connects the variable string Ajk to the variable At in the horizontal direction (step S74). C The PU 11 sets the least square solution between the variable At and the residual rt as Xtk (step S75).
  • FIG. 8 is a flowchart showing the procedure of coefficient calculation processing.
  • CPU11 acquires compression matrix data X (step S81).
  • FIG. 9 is an explanatory diagram showing a data example of the compressed matrix data X.
  • the compressed matrix data X is a matrix of m rows and N columns, where the row corresponds to the position of the element of the compression result, and the column corresponds to the sample sequence. Most of the row data is 0, and there are a plurality of non-zero elements.
  • the CPU 11 inputs an initial value 1 to the variable i (step S82).
  • the CPU 11 acquires the specific value of the non-zero element of i row of the compressed matrix data X.
  • the specific value is i A value specified based on a non-zero element of a row, such as an average value, a median value, a maximum value, a minimum value, or a mean square of a plurality of non-zero elements. In the embodiment, an example in which a specific value based on a non-zero element is used is shown, but a form including a zero element in part may be used. In the following embodiment, the specific value is described as an average value of absolute values of non-zero elements.
  • the CPU 11 calculates an average value Mi of absolute values of non-zero elements of i rows of the compressed matrix data X (step S83).
  • the CPU 11 determines whether or not the variable i is larger than m (number of rows m) (step S84). If the CPU 11 determines that the variable i is not greater than m (step S8) NO at 4), the process proceeds to
  • the CPU 11 adds 1 to i (step S85).
  • CPU11 returns a process to step S83 after that.
  • m a data string obtained by concatenating the average values
  • the process proceeds to step S86.
  • the CPU 11 calculates an index value indicating the degree of variation of the average value based on the calculated average values.
  • the index value is described as being a standard variance, but is not limited thereto. For example, unbiased dispersion may be used.
  • CPU 11 calculates the sample variance of the average value of each column (step S86).
  • CPU11 extracts the maximum value and minimum value of an average value (step S87).
  • the CPU 11 subtracts the minimum value from the maximum value to obtain a subtraction value, and calculates the threshold value (TX) by dividing the subtraction value by a predetermined value (for example, 6) (step S88).
  • the predetermined value may be set by the user from the input unit 13 as appropriate.
  • the CPU 11 determines whether or not the sample variance is larger than the threshold value (step S89). If the CPU 11 determines that the sample variance is greater than the threshold value (YES in step S89), the process proceeds to step S810.
  • the CPU 11 outputs the coefficient Zi as 1, since the variation is large. (Step S810).
  • CPU11 makes a process transfer to step S811, when sample dispersion
  • FIG. 10 is an explanatory diagram showing an example of coefficient data.
  • Y1 and Y2 indicate compression target matrix data before compression.
  • X1 and X2 are the compressed matrix data X after being compressed based on the dictionary matrix data A.
  • the coefficient Z is the reciprocal of the average value of the absolute values of X1 and X2 for easy explanation.
  • the sample variance of the coefficient Z is 4.1, which is not larger than the threshold value.
  • the CPU 11 performs correction processing and fraction processing (rounding processing) of the compressed matrix data X using the coefficient Z.
  • FIG. 11 is a flowchart showing the procedure of correction processing and fraction processing. 12 and 13 are explanatory diagrams showing numerical examples.
  • the CPU 11 reads the first coefficient and the second coefficient stored in the storage unit 15 (step S111).
  • the first coefficient indicates the capacity ratio between the compression target matrix data Y and the compression matrix data X.
  • the first coefficient may be a value obtained by dividing the number of significant digits (the number of significant digits) of the compression matrix X by the number of significant digits after the decimal point of the compression target matrix data Y. In the present embodiment, the number of significant digits in the decimal part is used, but the present invention is not limited to this.
  • the first coefficient may be the number of significant digits of the compression matrix X.
  • the first coefficient is the number of characters including the decimal point of the compressed matrix data X. It may be a value obtained by dividing the compression target matrix data Y by the number of characters including the decimal point. For example, 2.6 In this case, the number of characters including the decimal point is 3. In the embodiment, the first coefficient is assumed to be 2 as an example.
  • the second coefficient is the number of significant digits of the compression target matrix data Y.
  • the description will be made assuming that the coefficient is 2.
  • the CPU 11 calculates the number of digits by subtracting 1 from the multiplication value obtained by multiplying the first coefficient by the second coefficient (step S112).
  • the first coefficient 2 is multiplied by the second coefficient 2 to obtain a multiplication value 4 and 1 is subtracted, so that the number of digits becomes 3.
  • the CPU 11 calculates the corrected compressed matrix data Xtemp by multiplying the compressed matrix data X by the coefficient Z (step S113).
  • FIG. 12 shows the corrected compressed matrix data Xtemp after being multiplied by the coefficient Z.
  • the CPU 11 processes the corrected compressed matrix data Xtemp with the number of digits obtained in step S112 (step S114). As shown in FIG. 13, fraction processing is performed on the value of the third digit of the decimal point. The rounding process may be performed by rounding off based on the fourth numerical value after the third decimal place, rounding down the fourth numerical value, or rounding up the third decimal place. In this embodiment, an example of rounding off is shown.
  • the CPU 11 stores the compressed matrix data X ′ after the fraction processing in the storage unit 15 and outputs it to the display unit 14 or to the outside via the communication unit 16 (step S115). This makes it possible to efficiently compress data. Further, the accuracy can be improved by learning the dictionary. In addition, by calculating the number of digits, it is possible to accurately compress to a size according to the request. Further, by appropriately setting the coefficient depending on the degree of variation of the compressed matrix data X, it is possible to efficiently compress the data.
  • Embodiment 2 The second embodiment relates to a mode in which codes are considered.
  • FIG. 14 is a flowchart showing the procedure of correction processing and fraction processing.
  • FIG. 15 is an explanatory diagram showing a numerical example.
  • the CPU 11 reads the first coefficient and the second coefficient stored in the storage unit 15 (Step S141). Note that the first coefficient is 2 and the second coefficient is 2.
  • the CPU 11 uses the compression target matrix data Y 1 or 0 is added to the second coefficient in accordance with the presence or absence of the sign (step S142). As shown in FIG. 12, since the compression target matrix data Y has no minus sign, it is not added. The coefficient remains at 2.
  • the CPU 11 calculates the number of digits by subtracting 1 from the multiplication value obtained by multiplying the first coefficient by the second coefficient (step S143).
  • the first coefficient 2 is multiplied by the second coefficient 2 to obtain a multiplication value 4 and 1 is subtracted, so that the number of digits becomes 3.
  • the CPU 11 subtracts 1 or 0 from the number of digits according to the presence or absence of the sign of the compressed matrix data X (step S144). Since the compression matrix data X has a sign as shown in FIG. 12, the number of digits 2 is calculated by subtracting 1 from the number of digits 3.
  • the CPU 11 calculates the corrected compressed matrix data Xtemp by multiplying the compressed matrix data X by the coefficient Z (step S145).
  • the CPU 11 processes the corrected compressed matrix data Xtemp with the number of digits obtained through the process of step S144 (step S146). As shown in FIG. 15, the fraction processing is performed on the value of the second digit of the decimal point. In this embodiment, an example of rounding off is shown.
  • the CPU 11 stores the compressed matrix data X ′ (compression result) after the fraction processing in the storage unit 15 and outputs it to the display unit 14 or to the outside via the communication unit 16 (step S147). As a result, it is possible to perform highly accurate data compression in consideration of the presence or absence of the code of the compressed matrix data X.
  • the second embodiment is as described above, and the other parts are the same as those of the first embodiment. Therefore, the corresponding parts are denoted by the same reference numerals, and detailed description thereof is omitted.
  • Embodiment 3 relates to an embodiment that also considers the presence or absence of a decimal point.
  • FIG. 16 is a flowchart showing the procedure of correction processing and fraction processing.
  • FIG. 17 is an explanatory diagram showing numerical examples.
  • the CPU 11 reads out the first coefficient and the second coefficient stored in the storage unit 15 (step S161). Note that the first coefficient is 2 and the second coefficient is 2.
  • the CPU 11 adds 1 or 0 to the second coefficient according to the presence / absence of the sign of the compression target matrix data Y (step S162). As shown in FIG. 12, since the compression target matrix data Y does not have a minus sign, it is not added and the second coefficient remains at 2.
  • the CPU 11 adds 1 or 0 to the second coefficient according to the presence or absence of the decimal point of the compression target matrix data Y (step S163). As shown in FIG. 12, since the compression target matrix data Y has a decimal point, 1 is added and the second coefficient becomes 3.
  • the CPU 11 calculates the number of digits by subtracting 1 from the multiplication value obtained by multiplying the first coefficient by the second coefficient (step S164). In the present embodiment, the first coefficient 2 is multiplied by the second coefficient 3 to obtain a multiplication value 6 and 1 is subtracted, so that the number of digits becomes 5.
  • the CPU 11 subtracts 1 or 0 from the number of digits according to the presence or absence of the sign of the compressed matrix data X (step S165). ). Since the compressed matrix data X has a sign as shown in FIG. 12, the number of digits 4 is calculated by subtracting 1 from the number of digits 5.
  • the CPU 11 subtracts 1 or 0 from the number of digits according to the presence or absence of a decimal point in the compressed matrix data X (step S166). As shown in FIG. 12, since the compression matrix data X has a decimal point, the number of digits 3 is calculated by subtracting 1 from the number of digits 4.
  • the CPU 11 calculates the corrected compressed matrix data Xtemp by multiplying the compressed matrix data X by the coefficient Z (step S167).
  • the CPU 11 processes the corrected compressed matrix data Xtemp with the number of digits obtained through the process of step S166 (step S168). As shown in FIG. 17, rounding is performed on the value of the third digit of the decimal point. In this embodiment, an example of rounding off is shown.
  • the CPU 11 stores the compressed matrix data X ′ after the fraction processing in the storage unit 15 and outputs the compressed matrix data X ′ to the display unit 14 or to the outside via the communication unit 16 (step S169). As a result, it is possible to perform highly accurate data compression considering the presence or absence of a decimal point.
  • the horizontal axis in FIG. 18 is the file size (bytes) of the compressed matrix data X
  • the vertical axis is the maximum value of the compression error.
  • FIG. 19 shows the case where the non-zero number k of the compressed matrix data X is 2, and FIGS.
  • the series indicated by circles is a comparative example and does not perform fraction processing.
  • a series indicated by a square has a first coefficient of 2.0
  • a series indicated by a triangle has a first coefficient of 1.6.
  • the third embodiment is as described above, and the other parts are the same as those in the first or second embodiment. Therefore, the corresponding parts are denoted by the same reference numerals, and detailed description thereof is omitted.
  • FIG. 20 is a functional block diagram showing the operation of the computer 1 of the above-described form.
  • the dictionary generation unit 201 generates dictionary matrix data used for compression based on the input learning matrix data.
  • the compression unit 202 based on the input compression target matrix data and the generated dictionary matrix data, compressed matrix data that is a result of compressing the compression target matrix data, and among the matrix elements of the compression matrix data Position information whose matrix elements are not zero is generated.
  • the coefficient calculation unit 203 uses an index value and a threshold value calculated for a specific value data string that is a data string obtained by concatenating specific values specified from element values that are not zero values in each row of the generated compressed matrix data. In comparison, when the index value is larger than the threshold value, a predetermined constant is specified as each coefficient, and when the index value is equal to or less than the threshold value, the reciprocal number of each specific value is calculated as each coefficient.
  • the element value operation unit 204 rounds the product of each element and the calculated coefficient for each element of the compressed matrix data based on the number of significant digits of the decimal part in each corresponding element.
  • the post-operation matrix data is output as a compression result.
  • the extraction unit 205 extracts the column data and position information of the dictionary matrix data that maximizes the inner product with the column data.
  • the calculation unit 206 calculates a least square solution based on the extracted column data and column data of the learning matrix data.
  • the generation unit 207 generates the dictionary matrix data based on the calculated least squares solution, the position information, and the learning matrix data.
  • the second extraction unit 208 extracts the column data of the dictionary matrix data that maximizes the inner product with the column data based on the column data of the compression target matrix data.
  • the second calculation unit 209 calculates a least square solution based on the extracted column data and column data of the compression target matrix data.
  • the product calculation unit 2010 calculates the product of each element of the compression matrix data and each coefficient.
  • the number-of-digits calculation unit 2011 is calculated based on the first coefficient, the second coefficient obtained based on the number of effective digits of the compression target matrix data and the presence / absence of a code, and the presence / absence of the sign of each element of the compression matrix data. Calculate the number of digits.
  • the processing unit 2012 processes the fraction of the product calculated by the product calculation unit based on the number of digits calculated by the digit number calculation unit.
  • FIG. 21 is a block diagram showing a hardware group of the computer 1 according to the fourth embodiment.
  • a program for operating the computer 1 causes the storage unit 15 to read a portable recording medium 1A such as a CD-ROM, a DVD disk, a memory card, or a USB memory into a reading unit 10A such as a disk drive or a memory card slot. You may remember.
  • a semiconductor memory 1B such as a flash memory storing the program may be mounted in the computer 1.
  • the program can be downloaded from another server computer (not shown) connected via a communication network N such as the Internet. The contents will be described below.
  • the computer 1 shown in FIG. 21 reads a program for executing the above-described various software processes from the portable recording medium 1A or the semiconductor memory 1B or downloads it from another server computer (not shown) via the communication network N. To do.
  • the program is installed as the control program 15P, loaded into the RAM 12, and executed. Thereby, it functions as the computer 1 described above.
  • a hardware device having a memory storing a program for executing the above-described processing and a processor may be implemented as a data compression apparatus in a server computer, personal computer, smartphone, or the like (not shown).
  • the fourth embodiment is as described above, and the other parts are the same as those of the first to third embodiments. Therefore, the corresponding parts are denoted by the same reference numerals, and detailed description thereof is omitted.
  • the embodiments described above can be combined as appropriate.
  • a dictionary generation unit that generates dictionary matrix data used for compression based on the input learning matrix data; Based on the input compression target matrix data and the generated dictionary matrix data, the compression matrix data that is a result of compressing the compression target matrix data, and the matrix element is zero among the matrix elements of the compression matrix data A compression unit that generates no position information; In each row of the generated compressed matrix data, the index value calculated for a specific value data string that is a data string obtained by concatenating specific values specified from non-zero element values is compared with a threshold value, and the index value Is greater than the threshold value, a predetermined constant is specified as each coefficient, and when the index value is less than or equal to the threshold value, a coefficient calculation unit that calculates the reciprocal of each specific value as each coefficient; For each element of the compressed matrix data, the matrix data after operation that is the result of rounding the product of each element and the calculated coefficient based on the number of significant digits of the decimal part in each corresponding element An element value operation unit for outputting as a
  • the data compression device according to any one of appendices 1 to 6, wherein the threshold is determined based on a maximum value and a minimum value of the specific value.
  • the specific value is an average value, median value, maximum value, or mean square of non-zero element values of each row of the generated compression matrix data,
  • the data compression device according to any one of appendices 1 to 7, wherein the index value is a variance of a specific value data string that is a data string obtained by concatenating the specific values.
  • the matrix data after operation that is the result of rounding the product of each element and the calculated coefficient based on the number of significant digits of the decimal part in each corresponding element Is output as the compression result,
  • a data compression program that causes a computer to execute processing.
  • a data compression method that causes a computer to execute processing.
  • Appendix 11 Obtain compression matrix data obtained from the compression target matrix data and dictionary matrix data, A specific value is acquired based on each row data of the acquired compression matrix data, Calculate the index value based on the acquired specific values, A program for causing a computer to execute a process of specifying a coefficient for correcting the compression matrix data based on the calculated index value and threshold value.
  • (Appendix 12) Multiplying the compression matrix data by the coefficient to calculate a multiplication value, The program according to claim 11, wherein the multiplication value is rounded based on the number of significant digits of the compression target matrix data.
  • (Appendix 13) The program according to appendix 11 or 12, which calculates a variance based on a plurality of acquired specific values.
  • (Appendix 14) The program according to appendix 11 to appendix 13, wherein when the index value exceeds the threshold, the coefficient is specified as 1, and when the index value does not exceed the threshold, the coefficient is an inverse of the specified value.
  • a first acquisition unit that acquires compression matrix data obtained from compression target matrix data and dictionary matrix data;
  • a second acquisition unit that acquires a specific value based on each row data of the acquired compression matrix data;
  • a calculation unit that calculates an index value based on a plurality of acquired specific values;
  • An information processing apparatus comprising: a specifying unit that specifies a coefficient for correcting the compression matrix data based on the calculated index value and threshold value.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Computational Mathematics (AREA)
  • Software Systems (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Algebra (AREA)
  • Databases & Information Systems (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Complex Calculations (AREA)
  • Artificial Intelligence (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Evolutionary Computation (AREA)
  • Medical Informatics (AREA)

Abstract

【課題】データを効率よく圧縮することが可能なデータ圧縮装置等を提供する。 【解決手段】入力された学習用行列データに基づき、圧縮に用いる辞書行列データを生成する辞書生成部と、入力された圧縮対象行列データと生成された前記辞書行列データとに基づき、前記圧縮対象行列データを圧縮した結果である圧縮行列データと、前記圧縮行列データの各行列要素のうち行列要素がゼロではない位置情報とを生成する圧縮部と、生成された前記圧縮行列データの各行において、ゼロ値ではない要素値から特定される特定値を連結したデータ列である特定値データ列について算出された指標値と閾値とを比較し、前記指標値が前記閾値よりも大きい場合、所定の定数を各係数として特定するとともに、前記指標値が前記閾値以下である場合、各特定値の逆数を前記各係数として算出する係数算出部と、要素値操作部とを備える。

Description

データ圧縮装置、データ圧縮プログラム、データ圧縮方法及びプログラム
 本発明は、データ圧縮装置、データ圧縮プログラム、データ圧縮方法及びプログラムに関する。
 従来、スパース表現クラス分類に要する計算量を削減すると共に分類精度を低下させずに高速にクラス分類を行う装置が知られている(例えば特許文献1)。
特開2012-173795号公報
 しかしながら、従来の技術では数多くのデータを効率よく圧縮することができないという問題がある。
 一つの側面では、データを効率よく圧縮することが可能なデータ圧縮装置等を提供することを目的とする。
 一つの案では、入力された学習用行列データに基づき、圧縮に用いる辞書行列データを生成する辞書生成部と、入力された圧縮対象行列データと生成された前記辞書行列データとに基づき、前記圧縮対象行列データを圧縮した結果である圧縮行列データと、前記圧縮行列データの各行列要素のうち行列要素がゼロではない位置情報とを生成する圧縮部と、生成された前記圧縮行列データの各行において、ゼロ値ではない要素値から特定される特定値を連結したデータ列である特定値データ列について算出された指標値と閾値とを比較し、前記指標値が前記閾値よりも大きい場合、所定の定数を各係数として特定するとともに、前記指標値が前記閾値以下である場合、各特定値の逆数を前記各係数として算出する係数算出部と、前記圧縮行列データの各要素について、前記各要素と算出された前記各係数との積について、対応する各要素における小数部の有効数字の桁数に基づいて丸めた結果である操作後の行列データを圧縮結果として出力する要素値操作部と、を備える。
 一つの側面では、データを効率よく圧縮することが可能となる。
処理概要を示す説明図である。 コンピュータのハードウェア群を示すブロック図である。 辞書学習処理の手順を示すフローチャートである。 辞書学習処理の手順を示すフローチャートである。 残差rt及び変数Atの数値例を示す説明図である。 辞書行列データの数値例を示す説明図である。 圧縮処理の手順を示すフローチャートである。 係数算出処理の手順を示すフローチャートである。 圧縮行列データのデータ例を示す説明図である。 係数のデータ例を示す説明図である。 補正処理及び端数処理の手順を示すフローチャートである。 数値例を示す説明図である。 数値例を示す説明図である。 補正処理及び端数処理の手順を示すフローチャートである。 数値例を示す説明図である。 補正処理及び端数処理の手順を示すフローチャートである。 数値例を示す説明図である。 k=2の場合の誤差とファイルサイズとの関係を示すグラフである。 k=5の場合の誤差とファイルサイズとの関係を示すグラフである。 上述した形態のコンピュータの動作を示す機能ブロック図である。 実施の形態4に係るコンピュータのハードウェア群を示すブロック図である。
 実施の形態1
 以下実施の形態を、図面を参照して説明する。図1は処理概要を示す説明図である。係数の算出等の各種処理を実行する情報処理装置1は、サーバコンピュータまたはパーソナルコンピュータ等である。以下では情報処理装置1をコンピュータ1と読み替えて説明する。コンピュータ1は、学習用行列データYAに基づき学習を行い、圧縮に用いる辞書Aを
生成する。次いでコンピュータ1は圧縮対象の行列データYと辞書Aとを用いて、圧縮行列データXを算出する。
 コンピュータ1は圧縮行列データXの各要素値に基づき、圧縮行列データXを補正するための係数Zを算出する。コンピュータ1は圧縮行列データX及び係数Zに基づき補正を行い
、その後端数処理を行った上で最終的な補正圧縮行列データX’を求める。コンピュータ
1は辞書A、係数Z及び補正圧縮行列データX’を最終結果として出力する。以下詳細を説
明する。
 図2はコンピュータ1のハードウェア群を示すブロック図である。コンピュータ1は制御部としてのCPU(Central Processing Unit)11、RAM(Random Access Memory
)12、入力部13、表示部14、記憶部15、時計部18、及び、通信部16等を含む。CPU11は、バス17を介してハードウェア各部と接続されている。CPU11は記憶部15に記憶された制御プログラム15Pに従いハードウェア各部を制御する。なお、CPU11は複数のプロセッサコアを搭載したマルチコアプロセッサであっても良い。RAM12は例えばSRAM(Static RAM)、DRAM(Dynamic RAM)、フラッシュメモリ
等である。RAM12は、記憶部としても機能し、CPU11による各種プログラムの実行時に発生する種々のデータを一時的に記憶する。
 入力部13はマウス、キーボード、タッチパネル、ボタン等の入力デバイスであり、受け付けた操作情報をCPU11へ出力する。表示部14は液晶ディスプレイまたは有機EL(Electro Luminescence)ディスプレイ等であり、CPU11の指示に従い各種情報を表示する。通信部16は通信モジュールであり、他のコンピュータ(図示せず)等と間で情報の送受信を行う。時計部18は日時情報をCPU11へ出力する。記憶部15は大容量メモリまたはハードディスクであり、制御プログラム15P等を記憶している。
 図3及び図4は辞書学習処理の手順を示すフローチャートである。コンピュータ1のCPU11は、辞書行列データAの初期値に標準正規乱数を設定する(ステップS31)。
なお、入力として、データの圧縮単位(要素数)をn、学習用のデータの個数(圧縮単位のベクトルの個数)をN、学習用行列データYA(以下、場合によりYで代表する)をn行N
列の行列とする。また出力をn行m列の辞書行列データAとする。m行N列の圧縮行列デー
タX、残差rt(残差ベクトルrt)、変数At、ループ変数i等は変数とする。
 CPU11は、変数iに1を入力する(ステップS32)。CPU11は、サンプルy
に学習用行列データYのi列目のデータを入力する(ステップS33)。CPU11は、残差rtの初期値としてサンプルyを入力し、変数Atの初期値としてNULLを入力する(ステップS34)。
 図5は、残差rt及び変数Atの数値例を示す説明図である。図6は、辞書行列データAの
数値例を示す説明図である。図5に示すように残差rtには2.6、2.6、2.6、2.4・・・と学習用行列データYのi列目のデータが入力されている。なお、図5及び図6の例では、ベクトルの長さを100としているが、紙面の都合上図5及び図6では20要素分までを記載して
いる。
 CPU11は、図6に示す辞書行列データAの転置行列ATの一列の中で、残差rtの転置
行列rtTとの内積が最大となる列ji(位置情報)を抽出し、変数列Ajとする(ステップS
35)。すなわち、内積が最大となるものが最も似た方向を向いているベクトルであるとして抽出する。CPU11は、変数Atに変数列Ajを水平方向に連結する(ステップS36)。なお、初回はAtの初期値がNULLであるため、連結対象の変数列Ajがそのまま入力される。図5及び図6に示すとおり、変数Atの1列目は、辞書行列データAの13列目とベク
トルの向きが類似し、変数Atの2列目は、辞書行列データAの292列目とベクトルの向
きが類似している。また変数Atの3列目は、辞書行列データAの169列目とベクトルの
向きが類似している。
 CPU11は、変数Atと残差rtとの最小二乗解Xtiを算出する(ステップS37)。具
体的には、rt=At*XtiとなるXtiのうち、rt-At*Xtiの二乗誤差を最小にするXtiを算出する。図5に示すようにXtiは7.509095、6.965821、5.834313・・・と算出される。CPU1
1は、変数Atに最小二乗解Xtiを乗じて乗算値ytを算出する(ステップS38)。CPU
11は、残差rtから乗算値ytを減算した値を残差rtに置き換える(ステップS39)。図5には、rtが1.618316731、3.323110212・・・と置き換えられている。
 CPU11は、記憶部15から閾値E1及び閾回数(例えば30回)を読み出す(ステ
ップS41)。CPU11は、残差rtの二乗誤差が閾値E1以下、または、ステップS35~S41の処理回数が閾回数以上か否かを判断する(ステップS42)。CPU11は、残差rtの二乗誤差が閾値E1以下、または、閾回数以上のいずれでもないと判断した場合(ステップS42でNO)、処理をステップS35へ移行させる。CPU11は、ステップS35への移行の際、ステップS35~S41の処理を実行した回数をインクリメントとし、RAM12に記憶する。CPU11は、ステップS42において、閾回数とRAM12に記憶した回数とを比較する。
 CPU11は、残差rtの二乗誤差が閾値E1以下、または、閾回数以上であると判断した場合(ステップS42でYES)、処理をステップS43へ移行させる。CPU11は、変数iに1を加える(ステップS43)。CPU11は、変数iがNより大きいか否かを判
断する(ステップS44)。CPU11は、変数iがNより大きくないと判断した場合(ステップS44でNO)、処理をステップS33に戻す。一方、CPU11は、変数iがNより大きいと判断した場合(ステップS44でYES)、処理をステップS45へ移行させる。
 CPU11は、最小二乗解Xti及び列jiから圧縮行列データXを構成し、学習用行列データY-辞書行列データA*圧縮行列データXの最小二乗解Aを算出する(ステップS45)。具体的には、Xtiは非0の成分からのみ構成されるため、CPU11は、ステップS35で求
めた列番号ji(図5の例では、13、292、169・・・)を使用し、非0の位置(1
3、292、169・・・)以外の要素値を0とし、圧縮行列データXを構成する。次いで、CPU11は、Y=A*Xの最小二乗解を求めて新しいAとする。
 CPU11は、記憶部15から第2閾値E2及び閾回数を読み出す(ステップS46)。CPU11は、学習用行列データY-辞書行列データA*圧縮行列データXの二乗誤差が第2
閾値以下、または、閾回数以上か否かを判断する(ステップS47)。具体的には、CPU11は、Y=AXの二乗誤差が第2閾値E2以下か否かを判断する。またCPU11は、ステップS47の処理を行った回数が閾回数以上か否かを判断する。CPU11は、第2閾値E2以下、または、閾回数以上でないと判断した場合(ステップS47でNO)、処理をステップS33に戻す。CPU11は、ステップS47の処理後、ステップS47を処理した回数をインクリメントし、RAM12に記憶する。CPU11は、ステップS47の処理において、閾回数と、RAM12に記憶した回数とを比較する。
 CPU11は、第2閾値以下、または、閾回数以上と判断した場合(ステップS47でYES)、処理をステップS48へ移行させる。CPU11は、学習済みの辞書行列データAを記憶部15に記憶する(ステップS48)。
 図7は圧縮処理の手順を示すフローチャートである。入力としての圧縮対象のデータy
は圧縮単位(要素数)n個の列ベクトルである。その他、圧縮行列データXの非ゼロの個
数K、辞書行列データA(n行m列の行列)を入力とする。また出力は圧縮結果Xtk及び非ゼ
ロの位置jk(位置情報)とする。なお、残差rt及び変数At(辞書)は内部変数とする。CPU11は、残差rtの初期値としてデータyを入力し、変数Atの初期値としてNULLを入力する(ステップS71)。CPU11は、変数kkに1を入力する(ステップS72)。
 CPU11は、辞書行列データAの転置行列ATの一列の中で、残差rtの転置行列rtTとの内積が最大となる列jk(位置情報)を抽出し、変数列Ajkとする(ステップS73)。具
体的には、CPU11は、ATの列の中で、rtTとの内積が最大となる列jkを抽出し、Ajkとする。CPU11は、変数Atに変数列Ajkを水平方向に連結する(ステップS74)。C
PU11は、変数Atと残差rtとの最小二乗解をXtkとする(ステップS75)。
 CPU11は、変数Atに最小二乗解Xtkを乗じて乗算値ytを算出する(ステップS76
)。CPU11は、残差rtから乗算値ytを減算した値を残差rtに置き換える(ステップS77)。CPU11は、変数kkが非ゼロの個数Kより大きいか否かを判断する(ステップ
S78)。CPU11は、大きくないと判断した場合(ステップS78でNO)、処理をステップS79へ移行させる。CPU11は、変数kkの値をインクリメントする(ステップS79)。CPU11は、その後処理をステップS73へ移行させる。CPU11は、変数kkが個数Kより大きいと判断した場合(ステップS78でYES)、処理を終了する
。CPU11は、ステップS76で求めたXtk及びステップS73で求めた非ゼロの位置jk(K=1~K)(位置情報)を出力する。
 図8は係数算出処理の手順を示すフローチャートである。CPU11は、圧縮行列データXを取得する(ステップS81)。図9は圧縮行列データXのデータ例を示す説明図である。圧縮行列データXはm行N列の行列であり、行が圧縮結果の要素の位置、列がサンプルの並びに対応する。行データの多くが0であり、非ゼロの要素が複数存在している。CPU11は、変数iに初期値1を入力する(ステップS82)。
 CPU11は、圧縮行列データXのi行の非ゼロの要素の特定値を取得する。特定値はi
行の非ゼロの要素に基づき特定される値であり、例えば複数の非ゼロの要素の、平均値、中央値、最大値、最小値、または、二乗平均等である。なお、実施形態では非ゼロの要素
に基づく特定値を利用する例を示すが、ゼロの要素を一部に含む形態であっても良い。以下の実施形態では特定値を非ゼロの要素の絶対値の平均値であるものとして説明する。CPU11は、圧縮行列データXのi行の非ゼロの要素の絶対値の平均値Miを算出する(ステップS83)。CPU11は、変数iがm(行数m)より大きいか否かを判断する(ステ
ップS84)。CPU11は、変数iがmより大きくないと判断した場合(ステップS8
4でNO)、処理をステップS85へ移行させる。
 CPU11は、iに1を加算する(ステップS85)。CPU11は、その後処理をス
テップS83へ戻す。これにより平均値を連結したデータ列である特定値データ列(Mi(i = 1~m))が算出される。CPU11は、iがmより大きいと判断した場合(ステップS84でYES)、処理をステップS86へ移行させる。CPU11は、算出した複数の平均値に基づき、平均値のばらつきの度合いを示す指標値を算出する。実施形態では指標値を標準分散であるものとして説明するが、これに限るものではない。例えば不偏分散を用いても良い。
 CPU11は、各列の平均値の標本分散を算出する(ステップS86)。CPU11は、平均値の最大値及び最小値を抽出する(ステップS87)。CPU11は、最大値から最小値を減算して減算値を求め、減算値を所定値(例えば6)で除して閾値(TX)を算出する(ステップS88)。なお所定値は、ユーザが適宜入力部13から値を設定すれば良い。CPU11は、標本分散が閾値より大きいか否かを判断する(ステップS89)。CPU11は、標本分散が閾値より大きいと判断した場合(ステップS89でYES)、処理をステップS810へ移行させる。CPU11は、ばらつきが大きいため、係数Ziを1として出力する。(ステップS810)。
 CPU11は、標本分散が閾値より大きくない場合(ステップS89でNO)、処理をステップS811へ移行させる。CPU11は、係数Ziを平均値Miの逆数として出力する(Zi=1/Mi(i=1~m))(ステップS811)。
 図10は係数のデータ例を示す説明図である。Y1及びY2は、圧縮前の圧縮対象行列データを示す。X1及びX2は、辞書行列データAに基づき圧縮処理された後の圧縮行列データXである。ここで圧縮行列データXの非ゼロの個数k=8である。係数Zは、説明を容易にするた
めにX1及びX2の絶対値の平均値の逆数としている。また係数Zの標本分散は4.1であり、閾値より大きくないものとしている。続いてCPU11は、係数Zを用いた圧縮行列データXの補正処理及び端数処理(丸め処理)を行う。
 図11は補正処理及び端数処理の手順を示すフローチャートである。図12及び図13は数値例を示す説明図である。CPU11は、記憶部15に記憶した第1係数及び第2係数を読み出す(ステップS111)。第1係数は、圧縮対象行列データYと圧縮行列デー
タXの容量比率を示す。第1係数は例えば、圧縮行列Xの小数部の有効桁数(有効数字の桁数)を圧縮対象行列データYの小数点以下の有効桁数で除した値とすれば良い。本実施形
態では小数部の有効桁数としたがこれに限るものではない。第1係数を圧縮行列Xの有効
桁数としてもよい。さらに、第1係数を、圧縮行列データXの小数点を含んだ文字数を、
圧縮対象行列データYの小数点を含んだ文字数で除した値としても良い。例えば、2.6
の場合、小数点を含んで文字数は3となる。なお、実施形態では一例として第1係数を2であるものとして説明する。
 第2係数は、本実施形態では圧縮対象行列データYの有効桁数であり、一例として第2
係数は2であるものとして説明する。CPU11は、第1係数に第2係数を乗じた乗算値から1を減じて桁数を算出する(ステップS112)。本実施形態では第1係数2に第2係数2を乗じて乗算値4を求め1を減じて、桁数は3となる。CPU11は、圧縮行列デ
ータXに係数Zを乗じて補正後の圧縮行列データXtempを算出する(ステップS113)。
図12には係数Zを乗じた後の補正後の圧縮行列データXtempが示されている。
 CPU11は、補正後の圧縮行列データXtempを、ステップS112で求めた桁数で端
数処理する(ステップS114)。図13に示すように小数点第3位の桁の値について端数処理されている。端数処理は小数点第3位以下の第4位の数値に基づく四捨五入、第4位の数値の切り捨て、または第3位の切り上げを行えば良い。本実施形態では四捨五入する例を示す。CPU11は、端数処理後の圧縮行列データX’を記憶部15に記憶し、表
示部14に出力または通信部16を介して外部に出力する(ステップS115)。これにより効率よくデータを圧縮することが可能となる。また辞書の学習により精度を向上させることが可能となる。また桁数の算出により、要求に応じたサイズに精度よく圧縮することが可能となる。さらに圧縮行列データXのばらつきの度合いにより係数を適宜設定する
ことで、効率よく圧縮することが可能となる。
 実施の形態2
 実施の形態2は、符号を考慮する形態に関する。図14は補正処理及び端数処理の手順を示すフローチャートである。図15は数値例を示す説明図である。CPU11は、記憶部15に記憶した第1係数及び第2係数を読み出す(ステップS141)。なお、第1係数は2、第2係数は2であるものとして説明する。CPU11は、圧縮対象行列データY
の符号の有無に応じて1または0を第2係数に加算する(ステップS142)。図12に示したように圧縮対象行列データYはマイナスの符号が存在しないため、加算されず第2
係数は2のままである。
 CPU11は、第1係数に第2係数を乗じた乗算値から1を減じて桁数を算出する(ステップS143)。本実施形態では第1係数2に第2係数2を乗じて乗算値4を求め1を減じて、桁数は3となる。CPU11は、圧縮行列データXの符号の有無に応じて桁数に
1または0を減算する(ステップS144)。圧縮行列データXは図12に示すように符
号を有するため、桁数3から1を減じて桁数2を算出する。CPU11は、圧縮行列データXに係数Zを乗じて補正後の圧縮行列データXtempを算出する(ステップS145)。
 CPU11は、補正後の圧縮行列データXtempを、ステップS144の処理を経て得た
桁数で端数処理する(ステップS146)。図15に示すように小数点第2位の桁の値について端数処理されている。本実施形態では四捨五入する例を示している。CPU11は、端数処理後の圧縮行列データX’(圧縮結果)を記憶部15に記憶し、表示部14に出
力または通信部16を介して外部に出力する(ステップS147)。これにより圧縮行列データXの符号の有無をも考慮した精度の良いデータ圧縮が可能となる。
 本実施の形態2は以上の如きであり、その他は実施の形態1と同様であるので、対応する部分には同一の参照番号を付してその詳細な説明を省略する。
 実施の形態3
 実施の形態3は小数点の有無をも考慮する形態に関する。図16は補正処理及び端数処理の手順を示すフローチャートである。図17は数値例を示す説明図である。CPU11は、記憶部15に記憶した第1係数及び第2係数を読み出す(ステップS161)。なお、第1係数は2、第2係数は2であるものとして説明する。CPU11は、圧縮対象行列データYの符号の有無に応じて1または0を第2係数に加算する(ステップS162)。
図12に示したように圧縮対象行列データYはマイナスの符号が存在しないため、加算さ
れず第2係数は2のままである。
 CPU11は、圧縮対象行列データYの小数点の有無に応じて1または0を第2係数に
加算する(ステップS163)。図12に示したように、圧縮対象行列データYは小数点
が存在するため1加算され第2係数は3となる。CPU11は、第1係数に第2係数を乗じた乗算値から1を減じて桁数を算出する(ステップS164)。本実施形態では第1係数2に第2係数3を乗じて乗算値6を求め1を減じて、桁数は5となる。CPU11は、圧縮行列データXの符号の有無に応じて桁数に1または0を減算する(ステップS165
)。圧縮行列データXは図12に示すように符号を有するため、桁数5から1を減じて桁
数4を算出する。
 CPU11は、圧縮行列データXの小数点の有無に応じて桁数に1または0を減算する
(ステップS166)。図12に示すように圧縮行列データXは小数点を有するため、桁
数4から1を減じて桁数3を算出する。CPU11は、圧縮行列データXに係数Zを乗じて補正後の圧縮行列データXtempを算出する(ステップS167)。CPU11は、補正後
の圧縮行列データXtempを、ステップS166の処理を経て得た桁数で端数処理する(ス
テップS168)。図17に示すように小数点第3位の桁の値について端数処理されている。本実施形態では四捨五入する例を示している。CPU11は、端数処理後の圧縮行列データX’を記憶部15に記憶し、表示部14に出力または通信部16を介して外部に出
力する(ステップS169)。これにより小数点の有無をも考慮した精度の良いデータ圧縮が可能となる。
 図18はk=2の場合の誤差とファイルサイズとの関係を示すグラフであり、図19はk=5の場合の誤差とファイルサイズとの関係を示すグラフである。図18における横軸は圧縮行列データXのファイルサイズ(バイト)であり、縦軸は圧縮誤差の最大値である
。圧縮対象行列データYのファイルサイズは963,000バイト、小数点あり、符号なし、有効桁数を2桁、圧縮対象行列データYの圧縮単位n=223である。圧縮行列データXの非ゼロの
個数kが2の場合が図18、5の場合が図19である。丸印で示す系列は比較例であり端
数処理を行わないものである。四角で示す系列は第1係数を2.0としたものであり、三角
で示す系列は第1係数を1.6としたものである。
 圧縮後のファイルサイズは概ね、圧縮前ファイルサイズ*第1係数*k/nとなっている。
また端数処理を行うことで、テキストファイルを保管する際に誤差を拡大させることもなくデータの更なる圧縮が可能であることが理解できる。k=2、k=5いずれの場合にも
、同程度の圧縮誤差であり、第1係数2.0の場合で比較例に対し約1/2、第1係数1.6の場
合で比較例に対し約1/3程度の圧縮を行うことが可能となる。
 本実施の形態3は以上の如きであり、その他は実施の形態1または2と同様であるので、対応する部分には同一の参照番号を付してその詳細な説明を省略する。
 実施の形態4
 図20は上述した形態のコンピュータ1の動作を示す機能ブロック図である。CPU11が制御プログラム15Pを実行することにより、コンピュータ1は以下のように動作する。辞書生成部201は、入力された学習用行列データに基づき、圧縮に用いる辞書行列データを生成する。圧縮部202は、入力された圧縮対象行列データと生成された前記辞書行列データとに基づき、前記圧縮対象行列データを圧縮した結果である圧縮行列データと、前記圧縮行列データの各行列要素のうち行列要素がゼロではない位置情報とを生成する。係数算出部203は、生成された前記圧縮行列データの各行において、ゼロ値ではない要素値から特定される特定値を連結したデータ列である特定値データ列について算出された指標値と閾値とを比較し、前記指標値が前記閾値よりも大きい場合、所定の定数を各係数として特定するとともに、前記指標値が前記閾値以下である場合、各特定値の逆数を前記各係数として算出する。
 要素値操作部204は、前記圧縮行列データの各要素について、前記各要素と算出された前記各係数との積について、対応する各要素における小数部の有効数字の桁数に基づいて丸めた結果である操作後の行列データを圧縮結果として出力する。抽出部205は、前記学習用行列データの列データに基づき、該列データとの内積が最大となる前記辞書行列データの列データ及び位置情報を抽出する。算出部206は、抽出した前記列データ及び前記学習用行列データの列データに基づき最小二乗解を算出する。生成部207は、算出した最小二乗解、前記位置情報及び前記学習用行列データに基づき、前記辞書行列データを生成する。
 第2抽出部208は、圧縮対象行列データの列データに基づき、該列データとの内積が最大となる前記辞書行列データの列データを抽出する。第2算出部209は、抽出した前記列データ及び前記圧縮対象行列データの列データに基づき最小二乗解を算出する。積算出部2010は、前記圧縮行列データの各要素と前記各係数との積を算出する。桁数算出部2011は、第1係数と、前記圧縮対象行列データの有効桁数及び符号の有無に基づき求まる第2係数と、前記圧縮行列データの各要素の符号の有無とに基づき算出される桁数を算出する。処理部2012は、該桁数算出部で算出した桁数に基づき、前記積算出部で算出した積の端数を処理する。
 図21は実施の形態4に係るコンピュータ1のハードウェア群を示すブロック図である。コンピュータ1を動作させるためのプログラムは、ディスクドライブ、メモリーカードスロット等の読み取り部10AにCD-ROM、DVDディスク、メモリーカード、またはUSBメモリ等の可搬型記録媒体1Aを読み取らせて記憶部15に記憶しても良い。また当該プログラムを記憶したフラッシュメモリ等の半導体メモリ1Bをコンピュータ1内に実装しても良い。さらに、当該プログラムは、インターネット等の通信網Nを介して接続される他のサーバコンピュータ(図示せず)からダウンロードすることも可能である。以下に、その内容を説明する。
 図21に示すコンピュータ1は、上述した各種ソフトウェア処理を実行するプログラムを、可搬型記録媒体1Aまたは半導体メモリ1Bから読み取り、或いは、通信網Nを介して他のサーバコンピュータ(図示せず)からダウンロードする。当該プログラムは、制御プログラム15Pとしてインストールされ、RAM12にロードして実行される。これにより、上述したコンピュータ1として機能する。その他、上述した処理を実行するプログラムを記憶したメモリとプロセッサとを有するハードウェアデバイスをデータ圧縮装置として、図示しないサーバコンピュータ、パーソナルコンピュータ、または、スマートフォン等に実装するようにしても良い。
 本実施の形態4は以上の如きであり、その他は実施の形態1から3と同様であるので、対応する部分には同一の参照番号を付してその詳細な説明を省略する。なお、以上述べた各実施形態は適宜組み合わせることが可能である。
 以上の実施の形態1から4を含む実施形態に関し、さらに以下の付記を開示する。
 (付記1)
 入力された学習用行列データに基づき、圧縮に用いる辞書行列データを生成する辞書生成部と、
 入力された圧縮対象行列データと生成された前記辞書行列データとに基づき、前記圧縮対象行列データを圧縮した結果である圧縮行列データと、前記圧縮行列データの各行列要素のうち行列要素がゼロではない位置情報とを生成する圧縮部と、
 生成された前記圧縮行列データの各行において、ゼロ値ではない要素値から特定される特定値を連結したデータ列である特定値データ列について算出された指標値と閾値とを比
較し、前記指標値が前記閾値よりも大きい場合、所定の定数を各係数として特定するとともに、前記指標値が前記閾値以下である場合、各特定値の逆数を前記各係数として算出する係数算出部と、
 前記圧縮行列データの各要素について、前記各要素と算出された前記各係数との積について、対応する各要素における小数部の有効数字の桁数に基づいて丸めた結果である操作後の行列データを圧縮結果として出力する要素値操作部と、
 を備えるデータ圧縮装置。
 (付記2)
 前記辞書生成部は、
 前記学習用行列データの列データに基づき、該列データとの内積が最大となる前記辞書行列データの列データ及び位置情報を抽出する抽出部と、
 抽出した前記列データ及び前記学習用行列データの列データに基づき最小二乗解を算出する算出部と、
 算出した最小二乗解、前記位置情報及び前記学習用行列データに基づき、前記辞書行列データを生成する生成部と、
 を含む付記1に記載のデータ圧縮装置。
 (付記3)
 前記圧縮部は、
 圧縮対象行列データの列データに基づき、該列データとの内積が最大となる前記辞書行列データの列データ及び位置情報を抽出する第2抽出部と、
 抽出した前記列データ及び前記圧縮対象行列データの列データに基づき最小二乗解を算出する第2算出部と、
 を含む付記1または2に記載のデータ圧縮装置。
 (付記4)
 前記要素値操作部は、
 前記圧縮行列データの各要素と前記各係数との積を算出する積算出部と、
 第1係数と、前記圧縮対象行列データの有効桁数及び符号の有無に基づき求まる第2係数と、前記圧縮行列データの各要素の符号の有無とに基づき算出される桁数を算出する桁数算出部と、
 該桁数算出部で算出した桁数に基づき、前記積算出部で算出した積の端数を処理する処理部と、
 を備える付記1から3のいずれか一つに記載のデータ圧縮装置。
 (付記5)
 桁数算出部は、
 第1係数と、前記圧縮対象行列データの有効桁数、符号の有無及び小数点の有無に基づき求まる第2係数と、前記圧縮行列データの各要素の符号の有無及び小数点の有無とに基づき桁数を算出する
 付記4に記載のデータ圧縮装置。
 (付記6)
 前記処理部は、
 前記積算出部で算出した積に対し、前記桁数算出部で算出した桁数以降の端数を処理する
 付記4または5に記載のデータ圧縮装置。
 (付記7)
 前記閾値は前記特定値の最大値及び最小値に基づき決定される
 付記1から6のいずれか一つに記載のデータ圧縮装置。
 (付記8)
 前記特定値は、生成された前記圧縮行列データの各行のゼロ値ではない要素値の平均値、中央値、最大値または二乗平均であり、
 前記指標値は、前記特定値を連結したデータ列である特定値データ列の分散である
 付記1から7のいずれか一つに記載のデータ圧縮装置。
 (付記9)
 入力された学習用行列データに基づき、圧縮に用いる辞書行列データを生成し、
 入力された圧縮対象行列データと生成された前記辞書行列データとに基づき、前記圧縮対象行列データを圧縮した結果である圧縮行列データと、前記圧縮行列データの各行列要素のうち行列要素がゼロではない位置情報とを生成し、
 生成された前記圧縮行列データの各行において、ゼロ値ではない要素値から特定される特定値を連結したデータ列である特定値データ列について算出された指標値と閾値とを比較し、前記指標値が前記閾値よりも大きい場合、所定の定数を各係数として特定するとともに、前記指標値が前記閾値以下である場合、各特定値の逆数を前記各係数として算出し、
 前記圧縮行列データの各要素について、前記各要素と算出された前記各係数との積について、対応する各要素における小数部の有効数字の桁数に基づいて丸めた結果である操作後の行列データを圧縮結果として出力する、
 処理をコンピュータに実行させるデータ圧縮プログラム。
 (付記10)
 入力された学習用行列データに基づき、圧縮に用いる辞書行列データを生成し、
 入力された圧縮対象行列データと生成された前記辞書行列データとに基づき、前記圧縮対象行列データを圧縮した結果である圧縮行列データと、前記圧縮行列データの各行列要素のうち行列要素がゼロではない位置情報とを生成し、
 生成された前記圧縮行列データの各行において、ゼロ値ではない要素値から特定される特定値を連結したデータ列である特定値データ列について算出された指標値と閾値とを比較し、前記指標値が前記閾値よりも大きい場合、所定の定数を各係数として特定するとともに、前記指標値が前記閾値以下である場合、各特定値の逆数を前記各係数として算出し、
 前記圧縮行列データの各要素について、前記各要素と算出された前記各係数との積について、対応する各要素における小数部の有効数字の桁数に基づいて丸めた結果である操作後の行列データを圧縮結果として出力する、
 処理をコンピュータに実行させるデータ圧縮方法。
 (付記11)
 圧縮対象行列データ及び辞書行列データにより得られた圧縮行列データを取得し、
 取得した前記圧縮行列データの各行データに基づき特定値を取得し、
 取得した複数の特定値に基づき指標値を算出し、
 算出した前記指標値及び閾値に基づき、前記圧縮行列データを補正する係数を特定する
 処理をコンピュータに実行させるプログラム。
 (付記12)
 前記圧縮行列データに前記係数を乗じて乗算値を算出し、
 前記乗算値を前記圧縮対象行列データの有効桁数に基づき端数処理する
 付記11に記載のプログラム。
 (付記13)
 取得した複数の特定値に基づき、分散を算出する
 付記11または12に記載のプログラム。
 (付記14)
 前記指標値が、前記閾値を超える場合、前記係数を1に特定し、前記閾値を超えない場合、前記係数を前記特定値の逆数とする
 付記11から付記13に記載のプログラム。
 (付記15)
 第1係数と、圧縮対象行列データの有効桁数に基づき決定される第2係数とに基づき桁数を算出し、
 前記乗算値を、算出した前記桁数に基づき端数処理する
 付記12から14のいずれか一つに記載のプログラム。
 (付記16)
 第1係数と、圧縮対象行列データの有効桁数及び符号の有無に基づき決定される第2係数と、前記圧縮行列データの符号の有無とに基づき桁数を算出し、
 前記乗算値を、算出した前記桁数に基づき端数処理する
 付記12から14のいずれか一つに記載のプログラム。
 (付記17)
 第1係数と、圧縮対象行列データの有効桁数、符号の有無及び小数点の有無に基づき決定される第2係数と、前記圧縮行列データの符号の有無及び小数点の有無とに基づき桁数を算出し、
 前記乗算値を、算出した前記桁数に基づき端数処理する
 付記12から14のいずれか一つに記載のプログラム。
 (付記18)
 圧縮対象行列データ及び辞書行列データにより得られた圧縮行列データを取得し、
 取得した前記圧縮行列データの各行データに基づき特定値を取得し、
 取得した複数の特定値に基づき指標値を算出し、
 算出した前記指標値及び閾値に基づき、前記圧縮行列データを補正する係数を特定する
 処理をコンピュータに実行させる情報処理方法。
 (付記19)
 圧縮対象行列データ及び辞書行列データにより得られた圧縮行列データを取得する第1取得部と、
 取得した前記圧縮行列データの各行データに基づき特定値を取得する第2取得部と、
 取得した複数の特定値に基づき指標値を算出する算出部と、
 算出した前記指標値及び閾値に基づき、前記圧縮行列データを補正する係数を特定する特定部と
 を備える情報処理装置。
 1   コンピュータ(情報処理装置、データ圧縮装置)
 1A  可搬型記録媒体
 1B  半導体メモリ
 10A 読み取り部
 11  CPU
 12  RAM
 13  入力部
 14  表示部
 15  記憶部
 15P 制御プログラム
 16  通信部
 18  時計部
 201  辞書生成部
 202  圧縮部
 203  係数算出部
 204  要素値操作部
 205  抽出部
 206  算出部
 207  生成部
 208  第2抽出部
 209  第2算出部
 2010 積算出部
 2011 桁数算出部
 2012 処理部
 N   通信網

Claims (19)

  1.  入力された学習用行列データに基づき、圧縮に用いる辞書行列データを生成する辞書生成部と、
     入力された圧縮対象行列データと生成された前記辞書行列データとに基づき、前記圧縮対象行列データを圧縮した結果である圧縮行列データと、前記圧縮行列データの各行列要素のうち行列要素がゼロではない位置情報とを生成する圧縮部と、
     生成された前記圧縮行列データの各行において、ゼロ値ではない要素値から特定される特定値を連結したデータ列である特定値データ列について算出された指標値と閾値とを比
    較し、前記指標値が前記閾値よりも大きい場合、所定の定数を各係数として特定するとともに、前記指標値が前記閾値以下である場合、各特定値の逆数を前記各係数として算出する係数算出部と、
     前記圧縮行列データの各要素について、前記各要素と算出された前記各係数との積について、対応する各要素における小数部の有効数字の桁数に基づいて丸めた結果である操作後の行列データを圧縮結果として出力する要素値操作部と、
     を備えるデータ圧縮装置。
  2.  前記辞書生成部は、
     前記学習用行列データの列データに基づき、該列データとの内積が最大となる前記辞書行列データの列データ及び位置情報を抽出する抽出部と、
     抽出した前記列データ及び前記学習用行列データの列データに基づき最小二乗解を算出する算出部と、
     算出した最小二乗解、前記位置情報及び前記学習用行列データに基づき、前記辞書行列データを生成する生成部と、
     を含む請求項1に記載のデータ圧縮装置。
  3.  前記圧縮部は、
     圧縮対象行列データの列データに基づき、該列データとの内積が最大となる前記辞書行列データの列データ及び位置情報を抽出する第2抽出部と、
     抽出した前記列データ及び前記圧縮対象行列データの列データに基づき最小二乗解を算出する第2算出部と、
     を含む請求項1または2に記載のデータ圧縮装置。
  4.  前記要素値操作部は、
     前記圧縮行列データの各要素と前記各係数との積を算出する積算出部と、
     第1係数と、前記圧縮対象行列データの有効桁数及び符号の有無に基づき求まる第2係数と、前記圧縮行列データの各要素の符号の有無とに基づき算出される桁数を算出する桁数算出部と、
     該桁数算出部で算出した桁数に基づき、前記積算出部で算出した積の端数を処理する処理部と、
     を備える請求項1から3のいずれか一つに記載のデータ圧縮装置。
  5.  桁数算出部は、
     第1係数と、前記圧縮対象行列データの有効桁数、符号の有無及び小数点の有無に基づき求まる第2係数と、前記圧縮行列データの各要素の符号の有無及び小数点の有無とに基づき桁数を算出する
     請求項4に記載のデータ圧縮装置。
  6.  前記処理部は、
     前記積算出部で算出した積に対し、前記桁数算出部で算出した桁数以降の端数を処理する
     請求項4または5に記載のデータ圧縮装置。
  7.  前記閾値は前記特定値の最大値及び最小値に基づき決定される
     請求項1から6のいずれか一つに記載のデータ圧縮装置。
  8.  前記特定値は、生成された前記圧縮行列データの各行のゼロ値ではない要素値の平均値、中央値、最大値または二乗平均であり、
     前記指標値は、前記特定値を連結したデータ列である特定値データ列の分散である
     請求項1から7のいずれか一つに記載のデータ圧縮装置。
  9.  入力された学習用行列データに基づき、圧縮に用いる辞書行列データを生成し、
     入力された圧縮対象行列データと生成された前記辞書行列データとに基づき、前記圧縮対象行列データを圧縮した結果である圧縮行列データと、前記圧縮行列データの各行列要素のうち行列要素がゼロではない位置情報とを生成し、
     生成された前記圧縮行列データの各行において、ゼロ値ではない要素値から特定される特定値を連結したデータ列である特定値データ列について算出された指標値と閾値とを比較し、前記指標値が前記閾値よりも大きい場合、所定の定数を各係数として特定するとともに、前記指標値が前記閾値以下である場合、各特定値の逆数を前記各係数として算出し、
     前記圧縮行列データの各要素について、前記各要素と算出された前記各係数との積について、対応する各要素における小数部の有効数字の桁数に基づいて丸めた結果である操作後の行列データを圧縮結果として出力する、
     処理をコンピュータに実行させるデータ圧縮プログラム。
  10.  入力された学習用行列データに基づき、圧縮に用いる辞書行列データを生成し、
     入力された圧縮対象行列データと生成された前記辞書行列データとに基づき、前記圧縮対象行列データを圧縮した結果である圧縮行列データと、前記圧縮行列データの各行列要素のうち行列要素がゼロではない位置情報とを生成し、
     生成された前記圧縮行列データの各行において、ゼロ値ではない要素値から特定される特定値を連結したデータ列である特定値データ列について算出された指標値と閾値とを比較し、前記指標値が前記閾値よりも大きい場合、所定の定数を各係数として特定するとともに、前記指標値が前記閾値以下である場合、各特定値の逆数を前記各係数として算出し、
     前記圧縮行列データの各要素について、前記各要素と算出された前記各係数との積について、対応する各要素における小数部の有効数字の桁数に基づいて丸めた結果である操作後の行列データを圧縮結果として出力する、
     処理をコンピュータに実行させるデータ圧縮方法。
  11.  圧縮対象行列データ及び辞書行列データにより得られた圧縮行列データを取得し、
     取得した前記圧縮行列データの各行データに基づき特定値を取得し、
     取得した複数の特定値に基づき指標値を算出し、
     算出した前記指標値及び閾値に基づき、前記圧縮行列データを補正する係数を特定する
     処理をコンピュータに実行させるプログラム。
  12.  前記圧縮行列データに前記係数を乗じて乗算値を算出し、
     前記乗算値を前記圧縮対象行列データの有効桁数に基づき端数処理する
     請求項11に記載のプログラム。
  13.  取得した複数の特定値に基づき、分散を算出する
     請求項11または12に記載のプログラム。
  14.  前記指標値が、前記閾値を超える場合、前記係数を1に特定し、前記閾値を超えない場合、前記係数を前記特定値の逆数とする
     請求項11から請求項13に記載のプログラム。
  15.  第1係数と、圧縮対象行列データの有効桁数に基づき決定される第2係数とに基づき桁数を算出し、
     前記乗算値を、算出した前記桁数に基づき端数処理する
     請求項12から14のいずれか一つに記載のプログラム。
  16.  第1係数と、圧縮対象行列データの有効桁数及び符号の有無に基づき決定される第2係数と、前記圧縮行列データの符号の有無とに基づき桁数を算出し、
     前記乗算値を、算出した前記桁数に基づき端数処理する
     請求項12から14のいずれか一つに記載のプログラム。
  17.  第1係数と、圧縮対象行列データの有効桁数、符号の有無及び小数点の有無に基づき決定される第2係数と、前記圧縮行列データの符号の有無及び小数点の有無とに基づき桁数を算出し、
     前記乗算値を、算出した前記桁数に基づき端数処理する
     請求項12から14のいずれか一つに記載のプログラム。
  18.  圧縮対象行列データ及び辞書行列データにより得られた圧縮行列データを取得し、
     取得した前記圧縮行列データの各行データに基づき特定値を取得し、
     取得した複数の特定値に基づき指標値を算出し、
     算出した前記指標値及び閾値に基づき、前記圧縮行列データを補正する係数を特定する
     処理をコンピュータに実行させる情報処理方法。
  19.  圧縮対象行列データ及び辞書行列データにより得られた圧縮行列データを取得する第1取得部と、
     取得した前記圧縮行列データの各行データに基づき特定値を取得する第2取得部と、
     取得した複数の特定値に基づき指標値を算出する算出部と、
     算出した前記指標値及び閾値に基づき、前記圧縮行列データを補正する係数を特定する特定部と
     を備える情報処理装置。
PCT/JP2017/047073 2017-01-17 2017-12-27 データ圧縮装置、データ圧縮プログラム、データ圧縮方法及びプログラム Ceased WO2018135281A1 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US16/287,540 US10482157B2 (en) 2017-01-17 2019-02-27 Data compression apparatus and data compression method and storage medium

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2017-005754 2017-01-17
JP2017005754A JP6740912B2 (ja) 2017-01-17 2017-01-17 データ圧縮装置、データ圧縮プログラム、データ圧縮方法及びプログラム

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US16/287,540 Continuation US10482157B2 (en) 2017-01-17 2019-02-27 Data compression apparatus and data compression method and storage medium

Publications (1)

Publication Number Publication Date
WO2018135281A1 true WO2018135281A1 (ja) 2018-07-26

Family

ID=62908758

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2017/047073 Ceased WO2018135281A1 (ja) 2017-01-17 2017-12-27 データ圧縮装置、データ圧縮プログラム、データ圧縮方法及びプログラム

Country Status (3)

Country Link
US (1) US10482157B2 (ja)
JP (1) JP6740912B2 (ja)
WO (1) WO2018135281A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114187944A (zh) * 2020-09-14 2022-03-15 华为技术有限公司 一种基于ReRAM的权值矩阵处理方法及装置

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114070901B (zh) * 2021-09-30 2024-01-02 深圳智慧林网络科技有限公司 基于多数据对齐的数据发送和接收方法、装置和设备
US12373698B2 (en) 2021-12-06 2025-07-29 Samsung Electronics Co., Ltd. Small and fast transformer model for multi-modal or other tasks
CN114972555B (zh) * 2022-05-25 2025-02-07 中国科学院空天信息创新研究院 星上轻量级底图压缩和校正方法、装置、设备及存储介质
WO2024148566A1 (zh) * 2023-01-12 2024-07-18 华为技术有限公司 数据压缩传输方法、装置、设备以及存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130318020A1 (en) * 2011-11-03 2013-11-28 Georgia Tech Research Corporation Analog programmable sparse approximation system
JP2016515732A (ja) * 2013-03-27 2016-05-30 株式会社東芝 信号処理方法および装置

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5491430B2 (ja) 2011-02-17 2014-05-14 日本電信電話株式会社 クラス分類装置、クラス分類方法、及びクラス分類プログラム
US20130300912A1 (en) 2012-05-14 2013-11-14 Ricoh Innovations, Inc. Dictionary Learning for Incoherent Sampling
JP2015220687A (ja) 2014-05-20 2015-12-07 日本電気株式会社 信号処理システム、復元装置、圧縮装置、信号処理方法、復元方法、および、コンピュータ・プログラム
JP2016062249A (ja) 2014-09-17 2016-04-25 日本電気株式会社 識別辞書学習システム、認識辞書学習方法および認識辞書学習プログラム

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130318020A1 (en) * 2011-11-03 2013-11-28 Georgia Tech Research Corporation Analog programmable sparse approximation system
JP2016515732A (ja) * 2013-03-27 2016-05-30 株式会社東芝 信号処理方法および装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
SAKATA, AYAKA ET AL.: "Typical case analysis of sample complexity in Dictionary Learning, IEICE Technical Report", DICTIONARY LEARNING, vol. 112, no. 279, 31 October 2012 (2012-10-31), pages 113 - 120 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114187944A (zh) * 2020-09-14 2022-03-15 华为技术有限公司 一种基于ReRAM的权值矩阵处理方法及装置

Also Published As

Publication number Publication date
JP2018117208A (ja) 2018-07-26
JP6740912B2 (ja) 2020-08-19
US10482157B2 (en) 2019-11-19
US20190197084A1 (en) 2019-06-27

Similar Documents

Publication Publication Date Title
US12020134B2 (en) Debugging correctness issues in training machine learning models
WO2018135281A1 (ja) データ圧縮装置、データ圧縮プログラム、データ圧縮方法及びプログラム
TWI823571B (zh) 用於在定點算術運算系統中實施神經網路之方法、系統及電腦儲存媒體
EP3035250B1 (en) Large-scale classification in neural networks using hashing
CN111814466A (zh) 基于机器阅读理解的信息抽取方法、及其相关设备
CN114490969A (zh) 基于表格的问答方法、装置以及电子设备
CN117349424A (zh) 应用于语言模型的提示模板的处理方法、装置及电子设备
CN112364053B (zh) 一种搜索优化方法、装置、电子设备及存储介质
CN113505595A (zh) 文本短语抽取方法、装置、计算机设备及存储介质
WO2023165506A1 (en) Structure-based deep generative model for binding site descriptors extraction and de novo molecular generation
KR20210143460A (ko) 특징 추천 장치 및 그것의 특징 추천 방법
US20260004129A1 (en) Structure-based deep generative model for binding site descriptors extraction and de novo molecular generation
CN116432014A (zh) 对抗样本的生成方法及装置
CN119830158A (zh) 一种输变电装备的仿真分析方法、装置、设备及介质
CN116524516B (zh) 文本结构化信息确定方法、装置、设备及存储介质
CN118365987A (zh) 用于图像生成的方法、装置、设备、介质和产品
CN115738279A (zh) 游戏开发的资源管理方法及其系统
US20210390378A1 (en) Arithmetic processing device, information processing apparatus, and arithmetic processing method
JP6740877B2 (ja) 類似度算出プログラム、類似度算出方法、および類似度算出装置
JP2021102732A (ja) コンピュータの動作方法、プログラム、情報処理装置、及びデータ構造
US20260064372A1 (en) Interactive data processing apparatus, interactive data processing method, and storage medium storing interactive data processing program
HK40062834B (en) Method, system and storage medium for generating an output for a neural network output layer
CN121838903A (zh) 基于迭代优化与可解释预测的环氧树脂配方逆向设计系统
CN120031172A (zh) 基于原始对偶混合梯度算法展开的信号处理方法、装置、设备与介质
CN119670551A (zh) 用于机器学习力场模型的选择及优化方法和装置

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 17892549

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 17892549

Country of ref document: EP

Kind code of ref document: A1