WO2021260888A1 - 情報処理装置、情報処理方法、及び、記録媒体 - Google Patents

情報処理装置、情報処理方法、及び、記録媒体 Download PDF

Info

Publication number
WO2021260888A1
WO2021260888A1 PCT/JP2020/025048 JP2020025048W WO2021260888A1 WO 2021260888 A1 WO2021260888 A1 WO 2021260888A1 JP 2020025048 W JP2020025048 W JP 2020025048W WO 2021260888 A1 WO2021260888 A1 WO 2021260888A1
Authority
WO
WIPO (PCT)
Prior art keywords
instruction
condition determination
information processing
value
node
Prior art date
Application number
PCT/JP2020/025048
Other languages
English (en)
French (fr)
Inventor
修 大道
Original Assignee
日本電気株式会社
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 日本電気株式会社 filed Critical 日本電気株式会社
Priority to PCT/JP2020/025048 priority Critical patent/WO2021260888A1/ja
Priority to US18/010,948 priority patent/US20230237097A1/en
Priority to JP2022532182A priority patent/JP7468650B2/ja
Publication of WO2021260888A1 publication Critical patent/WO2021260888A1/ja

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/3017Runtime instruction translation, e.g. macros
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/30021Compare instructions, e.g. Greater-Than, Equal-To, MINMAX
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30181Instruction operation extension or modification
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3885Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
    • G06F9/3887Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units controlled by a single instruction for multiple data lanes [SIMD]

Definitions

  • the present invention relates to inference processing using a decision tree.
  • SIMD Single Operation Multiple Data
  • SIMD is a parallel processing method that speeds up processing by executing one instruction for a plurality of data at the same time.
  • Examples of the SIMD type processor include a vector processor and a GPU (Graphics Processing Unit).
  • Patent Document 1 describes a method in which parallel processing is applied to inference using a decision tree.
  • the identification information of each node of the decision tree and the condition determination result are expressed in binary numbers so that the condition determination of each layer can be processed collectively.
  • One object of the present invention is to speed up inference processing using a decision tree by parallel processing.
  • One aspect of the present invention is an information processing apparatus.
  • Instruction unification means to generate unified instructions by unifying the instructions executed by the condition judgment node included in the decision tree so that they are suitable for parallel processing.
  • An acquisition method for acquiring multiple input data Each condition determination node is provided with a condition determination means that performs condition determination on the plurality of input data by parallel processing using the unified instruction and outputs a condition determination result.
  • Another aspect of the present invention is an information processing method.
  • the instructions executed by the condition judgment node included in the decision tree are unified so that they are suitable for parallel processing, and a unified instruction is generated. Get multiple input data, For each condition determination node, the condition determination for the plurality of input data is performed in parallel using the unified instruction, and the condition determination result is output.
  • Another aspect of the present invention is a recording medium, which is a recording medium.
  • the instructions executed by the condition judgment node included in the decision tree are unified so that they are suitable for parallel processing, and a unified instruction is generated.
  • Get multiple input data For each condition determination node, record a program that causes a computer to execute a process of performing condition determination on the plurality of input data in parallel using the unified instruction and outputting the condition determination result.
  • inference processing using a decision tree can be speeded up by parallel processing.
  • An example of decision tree inference is shown.
  • the method of unifying the comparison instruction of the condition judgment node is shown.
  • An example of a decision tree model is shown.
  • the parallel processing performed in the first layer of the decision tree model is shown.
  • the parallel processing performed in the second layer of the decision tree model is shown.
  • the parallel processing performed in the third layer of the decision tree model is shown.
  • the state of the fourth layer of the decision tree model is shown.
  • It is a flowchart of the condition determination processing executed by the parallel processing part It is a block diagram which shows the functional structure of the information processing apparatus which concerns on 2nd Embodiment.
  • FIG. 1 shows the configuration of the information processing apparatus according to the first embodiment of the present invention.
  • the information processing apparatus 100 performs inference using a decision tree model (hereinafter, referred to as "decision tree inference"). Specifically, the information processing apparatus 100 performs decision tree inference using the input data, and outputs a predicted value for the input data as the inference result.
  • the information processing apparatus 100 executes a part of the decision tree inference processing by parallel processing to speed up the processing. In addition, parallel processing is also called “vectorization”.
  • FIG. 2 shows an example of decision tree inference.
  • This example is a debt collection prediction problem, in which the attribute information of a large number of creditors is used as input data, and the possibility of debt collection is inferred using a decision tree model.
  • the input data includes "annual income (feature amount 1)", “age (feature amount 2)", and “regular employment (feature amount 3)" as the feature amount of each creditor.
  • the decision tree model uses these input data to predict whether or not each creditor will be able to collect debt.
  • the decision tree model in FIG. 2 is composed of nodes N1 to N7.
  • Node N1 is a root node and nodes N2, N4, N6, N7 are leaf nodes. Further, the nodes N1, N3, and N5 are condition determination nodes.
  • the processing proceeds to leaf node N2 and debt collection is predicted to be negative (NO).
  • the processing proceeds to the condition determination node N3, and it is determined whether or not the creditor's annual income is 4.8 million yen or more. If the creditor's annual income is 4.8 million yen or more, the processing proceeds to the leaf node N4, and it is predicted that the debt collection is possible (YES).
  • the process proceeds to the condition determination node N5, and it is determined whether or not the creditor's age is 51 years or older. If the creditor's age is 51 years or older, the process proceeds to leaf node N6 and it is predicted that debt collection is possible (YES). On the other hand, if the creditor's age is less than 51, the process proceeds to leaf node N7 and the debt collection is predicted to be negative (NO). In this way, whether or not each creditor can collect the debt is output as a predicted value.
  • the problem is which part should be processed in parallel.
  • a method of processing the data rows of the input data in parallel can be considered, but since each data row may go down to a different child node, the comparison instructions in the condition judgment node are not aligned, and parallel processing cannot be performed as it is. Therefore, in the present embodiment, the comparison instructions executed by each condition determination node are forcibly unified. Specifically, a comparison instruction different for each condition determination node is converted into one comparison instruction. At this time, the threshold value specified by the comparison instruction is changed along with the conversion of the comparison instruction. As a result, the comparison instructions of all the condition determination nodes included in the decision tree can be unified into the same instruction, and parallel processing becomes possible.
  • FIG. 3 shows a method of unifying the comparison instructions of the condition determination nodes.
  • the comparison instructions performed by the condition determination node of the decision tree basically include a match determination and a magnitude determination, and are classified into five comparison instructions as shown in FIG. (1)
  • judgment target value Judgment of whether the value to be judged
  • "value” matches the category value "category”
  • Large / small judgment (value ⁇ threshold) Judgment whether the judgment target value "value” is smaller than the threshold "threshold”
  • Large / small judgment (value ⁇ threshold) Judgment whether the judgment target value "value” is equal to or less than the threshold “threshold”
  • Judgment whether the judgment target value "value” is larger than the threshold "threshold”
  • Large / small judgment (threshold ⁇ value) Judgment whether the judgment target value "value” is equal to or higher
  • the information processing apparatus 100 converts the above five comparison instructions into one comparison instruction in the following format (hereinafter, also referred to as “unified instruction”).
  • X ⁇ value ⁇ Y (X and Y are threshold values)
  • the above “X” corresponds to the first threshold value
  • "Y” corresponds to the second threshold value.
  • the five comparison instructions can be converted as follows.
  • category category
  • Large / small judgment value ⁇ threshold
  • threshold value minus infinity (- ⁇ )
  • threshold value threshold value
  • threshold value ⁇ prev threshold
  • value ⁇ threshold It can be converted to "- ⁇ ⁇ value ⁇ threshold” by using the threshold "minus infinity (- ⁇ )” and the threshold "threshold”.
  • the threshold value used in the comparison instruction is a real number type, but as long as it is expressed with finite precision, there is a value b such that "there is no expressible value between a and b" for a certain value a.
  • the value of prev (threshold) is smaller than the threshold and there is no value that can be expressed between the prev (threshold) and the threshold.
  • next (threshold) is a value that is larger than the threshold and has no value that can be expressed between the threshold and the threshold.
  • the value of prev (threshold) is a discrete value with a predetermined resolution (for example, 32 bits, 64 bits, etc.) that is smaller than the threshold and is adjacent to the threshold (hereinafter, also referred to as "adjacent value”). .).
  • the value of next (threshold) is a value that is larger than the threshold and is adjacent to the threshold among the discrete values having a predetermined resolution.
  • the values of prev (threshold) and next (threshold) can be obtained by using, for example, a function called "nextafter ()" in the C language standard library.
  • FIG. 4 shows an example of a decision tree model.
  • the decision tree model has nodes 1-11, 14-15, nodes 1-5, 7 are condition determination nodes, and nodes 6, 8-11, 14-15 are leaf nodes. Either the above-mentioned match determination or the four magnitude determinations is set in each condition determination node.
  • each condition judgment node if the judgment result is "true”, the process proceeds to the child node on the left side in the figure, and if the judgment result is "false", the process proceeds to the child node on the right side in the figure.
  • eight data data numbers 1 to 8
  • each of which has the feature quantities A to C are prepared.
  • FIG. 5 shows parallel processing performed in the first layer of the decision tree model.
  • the comparison instruction of [A] ⁇ 5 is executed using the feature amount A at the current location (current location node) 1.
  • the notations [A], [B], and [C] in FIGS. 4 to 8 indicate the feature amount A, the feature amount B, and the feature amount C, respectively.
  • the information processing apparatus 100 converts the comparison instruction [A] ⁇ 5 of the node 1 into the format of the unified instruction “X ⁇ value ⁇ Y” described with reference to FIG. Specifically, the information processing apparatus 100 converts the comparison instruction [A] ⁇ 5 in the node 1 into the unified instruction “ ⁇ ⁇ [A] ⁇ 4.999 ...”.
  • the information processing apparatus 100 calculates the unified instruction "- ⁇ ⁇ [A] ⁇ 4.999 " for each of the data 1 to 8, and outputs the determination result "true” or "false". In this way, the inference processing of the first layer of the decision tree model is completed, and the processing shifts to the second layer.
  • FIG. 6 shows parallel processing performed in the second layer of the decision tree model.
  • the information processing apparatus 100 calculates the unified instruction “1 ⁇ [B] ⁇ 1” for the data 1, 2, 4, and 6, and the unified command “ ⁇ ⁇ [C” for the data 3, 5, 7, and 8. ] ⁇ 0.499 ... "is calculated and the determination result is output. In this way, the inference processing of the second layer of the decision tree model is completed, and the processing shifts to the third layer.
  • FIG. 7 shows parallel processing performed in the third layer of the decision tree model.
  • the comparison instruction of [A] ⁇ 1 is executed using the feature amount A for the data advanced to the node 4.
  • the comparison instruction of [C] ⁇ 0.5 is executed using the feature amount C. Since the node 6 is a leaf node, no processing is performed on the node 6.
  • the information processing apparatus 100 converts the comparison instruction [A] ⁇ 1 of the node 4 into the unified instruction "- ⁇ ⁇ [A] ⁇ 0.999 ", and the comparison instruction [C] ⁇ 0 of the node 5.
  • the information processing apparatus 100 calculates the unified instruction "- ⁇ ⁇ [A] ⁇ 0.999 " for the data 1 and 4, and the unified instruction "- ⁇ ⁇ [C] ⁇ 0.
  • the unified instruction“ 1 ⁇ [B] ⁇ 1 ” is calculated for the data 7 and 8, and the determination result is output. In this way, the inference processing of the third layer of the decision tree model is completed, and the processing shifts to the fourth layer.
  • FIG. 8 shows the state of the fourth layer of the decision tree model.
  • all of the nodes 8 to 11 and 14 to 15 are leaf nodes, so that all the data 1 to 8 have reached the leaf nodes. Therefore, the inference process ends.
  • the "current state” it is shown that all the data 1 to 8 have reached the leaf node.
  • FIG. 9 is a block diagram showing a hardware configuration of the information processing apparatus 100.
  • the information processing apparatus 100 includes an input IF (Interface) 11, a processor 12, a memory 13, a recording medium 14, and a database (DB) 15.
  • IF Interface
  • DB database
  • Input IF11 inputs and outputs data. Specifically, the input IF 11 acquires input data from the outside and outputs an inference result generated by the information processing apparatus 100 based on the input data.
  • the processor 12 is a computer such as a CPU (Central Processing Unit) and a GPU (Graphics Processing Unit), and controls the entire information processing apparatus 100 by executing a program prepared in advance. In particular, the processor 12 performs parallel processing of data. As a method of realizing parallel processing, there is a method of using a SIMD processor such as a GPU.
  • the processor 12 may be a SIMD processor, or a SIMD processor may be provided as a processor separate from the processor 12. Further, in the latter case, the information processing apparatus 100 causes the SIMD processor to execute an operation capable of parallel processing, and causes the processor 12 to execute other operations.
  • the memory 13 is composed of a ROM (Read Only Memory), a RAM (Random Access Memory), and the like.
  • the memory 13 stores various programs executed by the processor 12.
  • the memory 13 is also used as a working memory during execution of various processes by the processor 12.
  • the recording medium 14 is a non-volatile, non-temporary recording medium such as a disk-shaped recording medium or a semiconductor memory, and is configured to be removable from the information processing device 100.
  • the recording medium 14 records various programs executed by the processor 12.
  • DB15 stores the data input from the input IF11. Specifically, the input data acquired by the input IF 11 is stored in the DB 15. Further, the DB 15 stores information on the decision tree model used for inference. Specifically, information indicating the tree structure of the learned decision tree model and node settings (condition determination node settings and leaf node settings) for each node are stored.
  • FIG. 10 is a block diagram showing a functional configuration of the information processing apparatus 100.
  • the information processing apparatus 100 includes an instruction unification unit 21, an input data reading unit 22, a parallel processing unit 23, and a result output unit 24. Further, the instruction unification unit 21 includes a threshold value reading unit 21a, a comparison instruction reading unit 21b, and an instruction conversion unit 21c.
  • the instruction unification unit 21 acquires a comparison instruction for each condition determination node included in the decision tree and performs a process of converting it into the unification instruction as described above. Specifically, the threshold value reading unit 21a reads the threshold value (threshold) or category value (category) for each condition determination node and outputs the threshold value (category) to the instruction conversion unit 21c.
  • the instruction conversion unit 21c converts the comparison instruction into a unified instruction in the form of "X ⁇ value ⁇ Y" based on the input threshold value or category value and the comparison instruction.
  • the instruction conversion unit 21c uses the input category value as it is as the threshold values X and Y.
  • the instruction conversion unit 21c changes the threshold value according to the unified instruction. That is, the instruction conversion unit 21c creates the threshold values X and Y in the unified instruction from the input threshold values so that the input comparison instruction is in the form of “X ⁇ value ⁇ Y”. For example, in the case of the condition determination node 1 shown in FIG.
  • the instruction conversion unit 21c converts the comparison instruction [A] ⁇ 5 of the node 1 into the format of the unified instruction “X ⁇ [A] ⁇ Y”, and the threshold value X, Y is determined to be "- ⁇ " and "4.999 ", respectively.
  • the instruction conversion unit 21c converts the comparison instruction [A] ⁇ 5 in the node 1 into the unified instruction “ ⁇ ⁇ [A] ⁇ 4.999 ...”.
  • the instruction unification unit 21 converts the comparison instructions of all the condition determination nodes included in the decision tree model into unified instructions and outputs them to the parallel processing unit 23.
  • the input data reading unit 22 reads the input data to be inferred by the decision tree model and outputs it to the parallel processing unit 23.
  • the input data reading unit 22 reads the data 1 to 8.
  • the parallel processing unit 23 processes all the input data in parallel using the input unified instruction, and generates a condition determination result. Specifically, as shown in the column of "current state" in FIGS. 5 to 7, the parallel processing unit 23 performs condition determination for each input data 1 to 8 by parallel processing using a unified instruction. Then, the parallel processing unit 23 outputs the obtained condition determination result to the result output unit 24.
  • the result output unit 24 outputs the input condition determination result to an external device or the like.
  • the instruction unification unit 21 is an example of the instruction unification means
  • the input data reading unit 22 is an example of the acquisition means
  • the parallel processing unit 23 is an example of the condition determination means.
  • FIG. 11 is a flowchart of the condition determination process executed by the parallel processing unit 23. This process is realized by the processor 12 shown in FIG. 9 executing a program prepared in advance. Prior to this processing, the instruction unification unit 21 shown in FIG. 10 performs preprocessing for converting the comparison instruction into a unified instruction for all the condition determination nodes included in the decision tree model used for inference. It is assumed that you are doing.
  • the parallel processing unit 23 sets the root node at the current location (current location node) of all data (step S1).
  • the parallel processing unit 23 repeats the parallel processing of steps S4 to S7 while there is data that has not reached the leaf node (step S3).
  • the parallel processing unit 23 sets the current node number of the data [i], which is the i-th data, to "m" (step S4). As a result, the current location node is set for each data.
  • the parallel processing unit 23 sets the left threshold value of the unified instruction of the current location node [m] to X [i], sets the right threshold value to Y [i], and the unified instruction of the current location node [m] is referred to.
  • the feature quantity number to be used is set to "j" (step S5). This gives a unified instruction to be executed for each data.
  • the parallel processing unit 23 executes a unified instruction for each data. Specifically, the parallel processing unit 23 determines whether or not (X [i] ⁇ data [i] [j]) and (data [i] [j] ⁇ Y [i]) are satisfied. , "True” or "false” is set in the condition determination result of the data [i] (step S6). Next, the parallel processing unit 23 sets the child node of the current location node [m] corresponding to the condition determination result of the data [i] to the current location of the data [i] (step S7).
  • the parallel processing unit 23 executes the parallel processing of steps S4 to S7 for all the data. As long as there is data that has not reached the leaf node, the parallel processing unit 23 executes the parallel processing of steps S4 to S7 while moving the current location to the lower layer side in the decision tree model, and all the data reaches the leaf node. At that point, the process ends.
  • FIG. 12 is a block diagram showing a functional configuration of the information processing apparatus 70 according to the second embodiment.
  • the information processing apparatus 70 performs decision tree inference based on a decision tree having a condition determination node and a leaf node.
  • the information processing apparatus 70 includes an instruction unifying means 71, an acquisition means 72, and a condition determination means 73.
  • the instruction unifying means 71 unifies the instructions executed by the condition determination node included in the decision tree so as to be suitable for parallel processing, and generates a unified instruction.
  • the acquisition means 72 acquires a plurality of input data.
  • the condition determination means 73 performs condition determination on a plurality of input data in parallel processing for each condition determination node by using a unified instruction, and outputs a condition determination result.
  • Instruction unification means to generate unified instructions by unifying the instructions executed by the condition judgment node included in the decision tree so that they are suitable for parallel processing.
  • Appendix 2 The information processing apparatus according to Appendix 1, wherein the instruction unification means changes the threshold value of each condition determination node so that all the condition determination nodes included in the decision tree execute the unification instruction.
  • Appendix 3 The information processing apparatus according to Appendix 2, wherein the unified instruction is a comparison instruction for determining whether the determination target value in the condition determination node is equal to or greater than the first threshold value and equal to or less than the second threshold value.
  • the instruction unifying means determines whether the determination target value is equal to or more than minus infinity and is equal to or less than an adjacent value smaller than the predetermined value, in order to determine whether the determination target value is smaller than the predetermined value.
  • the information processing apparatus according to Appendix 3 which is converted into an instruction to be processed.
  • the instruction unifying means determines whether the instruction for determining whether the determination target value is larger than the predetermined value is equal to or more than an adjacent value larger than the predetermined value and is plus or less than infinity.
  • the information processing apparatus according to Appendix 4 which is converted into an instruction to be processed.
  • the instruction unifying means converts an instruction for determining whether the determination target value matches a predetermined value into an instruction for determining whether the determination target value is equal to or less than the predetermined value and equal to or more than the predetermined value.
  • the information processing apparatus according to any one of Supplementary note 3 to 5.
  • the instruction unifying means is an instruction for determining whether or not the determination target value is equal to or less than a predetermined value, and is used as an instruction for determining whether or not the determination target value is minus infinity or more and is equal to or less than the predetermined value.
  • the information processing apparatus according to any one of Supplementary note 3 to 6 to be converted.
  • the instruction unifying means is an instruction for determining whether or not the determination target value is a predetermined value or more, and a command for determining whether the determination target value is the predetermined value or more and plus infinity or less.
  • the information processing device according to Appendix 7 to be converted.
  • the instructions executed by the condition judgment node included in the decision tree are unified so that they are suitable for parallel processing, and a unified instruction is generated.
  • Get multiple input data An information processing method in which, for each condition determination node, condition determination for the plurality of input data is performed in parallel using the unified instruction, and the condition determination result is output.
  • the instructions executed by the condition judgment node included in the decision tree are unified so that they are suitable for parallel processing, and a unified instruction is generated.
  • Get multiple input data For each condition determination node, a recording medium recording a program that causes a computer to execute a process of performing condition determination on a plurality of input data in parallel using the unified instruction and outputting the condition determination result.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Data Mining & Analysis (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Computing Systems (AREA)
  • Algebra (AREA)
  • Machine Translation (AREA)
  • Devices For Executing Special Programs (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

情報処理装置は、条件判定ノードと葉ノードを有する決定木に基づいて決定木推論を行う。情報処理装置において、命令統一手段は、決定木に含まれる条件判定ノードが実行する命令を、並列処理に適するように統一して統一命令を生成する。取得手段は、複数の入力データを取得する。条件判定手段は、各条件判定ノードについて、統一命令を用いて複数の入力データに対する条件判定を並列処理で行い、条件判定結果を出力する。

Description

情報処理装置、情報処理方法、及び、記録媒体
 本発明は、決定木を用いた推論処理に関する。
 近年、大量のデータを高速に処理することが求められている。データ処理を高速化する手法の一つに、処理の並列化がある。例えば、複数のデータを独立して操作できる繰り返し処理は、展開して並列処理することが可能である。並列処理の方式として、SIMD(Single Intruction Multiple Data)方式が知られている。SIMDは、一つの命令を複数のデータに対して一斉に実行することで処理を高速化する並列処理の方式である。SIMD方式のプロセッサとしては、ベクトルプロセッサ、GPU(Graphics Processing Unit)などが挙げられる。
 特許文献1は、決定木を用いた推論に並列処理を適用した手法を記載している。特許文献1では、決定木の各ノードの識別情報や条件判定結果を2進数で表現し、各階層の条件判定をまとめて処理できるようにしている。
特開2013-117862号公報
 しかし、特許文献1の手法では、全データを用いて全ての条件判定ノードの処理を実行してしまうため、処理の効率が良くない。
 本発明の1つの目的は、決定木を用いた推論処理を並列処理により高速化することにある。
 本発明の一つの観点は、情報処理装置であって、
 決定木に含まれる条件判定ノードが実行する命令を、並列処理に適するように統一して統一命令を生成する命令統一手段と、
 複数の入力データを取得する取得手段と、
 各条件判定ノードについて、前記統一命令を用いて前記複数の入力データに対する条件判定を並列処理で行い、条件判定結果を出力する条件判定手段と、を備える。
 本発明の他の観点は、情報処理方法であって、
 決定木に含まれる条件判定ノードが実行する命令を、並列処理に適するように統一して統一命令を生成し、
 複数の入力データを取得し、
 各条件判定ノードについて、前記統一命令を用いて前記複数の入力データに対する条件判定を並列処理で行い、条件判定結果を出力する。
 本発明の他の観点は、記録媒体であって、
 決定木に含まれる条件判定ノードが実行する命令を、並列処理に適するように統一して統一命令を生成し、
 複数の入力データを取得し、
 各条件判定ノードについて、前記統一命令を用いて前記複数の入力データに対する条件判定を並列処理で行い、条件判定結果を出力する処理をコンピュータに実行させるプログラムを記録する。
 本発明によれば、決定木を用いた推論処理を並列処理により高速化することができる。
第1実施形態に係る情報処理装置の構成を示すブロック図である。 決定木推論の一例を示す。 条件判定ノードの比較命令を統一する方法を示す。 決定木モデルの一例を示す。 決定木モデルの第1層で行われる並列処理を示す。 決定木モデルの第2層で行われる並列処理を示す。 決定木モデルの第3層で行われる並列処理を示す。 決定木モデルの第4層の状態を示す。 情報処理装置のハードウェア構成を示すブロック図である。 情報処理装置の機能構成を示すブロック図である。 並列処理部により実行される条件判定処理のフローチャートである。 第2実施形態に係る情報処理装置の機能構成を示すブロック図である。
 以下、図面を参照して、本発明の好適な実施形態について説明する。
 [第1実施形態]
 (基本構成)
 図1は、本発明の第1実施形態に係る情報処理装置の構成を示す。情報処理装置100は、決定木モデルを用いた推論(以下、「決定木推論」と呼ぶ。)を行う。具体的に、情報処理装置100は、入力データを用いて決定木推論を行い、推論結果として入力データに対する予測値を出力する。ここで、情報処理装置100は、決定木推論の処理のうちの一部を並列処理により実行し、処理を高速化する。なお、並列処理することを「ベクトル化」とも呼ぶ。
 (原理説明)
 図2は、決定木推論の一例を示す。この例は、債権回収の予測問題であり、多数の債権者の属性情報を入力データとし、決定木モデルを用いて債権回収の可否を推論する。図示のように、入力データは、各債権者の特徴量として、「年収(特徴量1)」、「年齢(特徴量2)」、「定職(特徴量3)」を含む。決定木モデルは、これらの入力データを用いて、各債権者の債権回収の可否を予測する。
 図2の決定木モデルは、ノードN1~N7により構成される。ノードN1は根ノードであり、ノードN2、N4、N6、N7は葉ノードである。また、ノードN1、N3、N5は条件判定ノードである。
 まず、根ノードN1では、債権者が定職を有するか否かが判定される。債権者が定職を有しない場合、処理は葉ノードN2に進み、債権回収は否(NO)と予測される。一方、債権者が定職を有する場合、処理は条件判定ノードN3に進み、債権者の年収が480万円以上であるか否かが判定される。債権者の年収が480万円以上である場合、処理は葉ノードN4に進み、債権回収は可(YES)と予測される。債権者の年収が480万円未満である場合、処理は条件判定ノードN5へ進み、債権者の年齢が51歳以上であるか否かが判定される。債権者の年齢が51歳以上である場合、処理は葉ノードN6へ進み、債権回収は可(YES)と予測される。一方、債権者の年齢が51歳未満である場合、処理は葉ノードN7へ進み、債権回収は否(NO)と予測される。こうして、各債権者の債権回収の可否が予測値として出力される。
 さて、決定木推論に並列処理を適用する場合、どの部分を並列処理するかが問題となる。入力データのデータ行を並列に処理する方法が考えられるが、各データ行が異なる子ノードに下りていくことがあるため、条件判定ノードにおける比較命令が揃わず、そのままでは並列処理ができない。そこで、本実施形態では、各条件判定ノードで実行される比較命令を強制的に統一する。具体的には、各条件判定ノード毎に異なる比較命令を、1つの比較命令に変換する。この際、比較命令の変換に伴い、比較命令が規定する閾値を変更する。これにより、決定木に含まれる全ての条件判定ノードの比較命令を同一の命令に統一することができ、並列処理が可能となる。
 図3は、条件判定ノードの比較命令を統一する方法を示す。決定木の条件判定ノードで行われる比較命令としては、基本的に一致判定と大小判定があり、図3に示すように、5つの比較命令に分類される。
(1)一致判定(value==category)
 判定の対象となる値(以下、「判定対象値」と呼ぶ。)「value」がカテゴリ値「category」と一致するか否かの判定
(2)大小判定(value<threshold)
 判定対象値「value」が閾値「threshold」より小さいか否かの判定
(3)大小判定(value≦threshold)
 判定対象値「value」が閾値「threshold」以下かの判定
(4)大小判定(threshold<value)
 判定対象値「value」が閾値「threshold」より大きいかの判定
(5)大小判定(threshold≦value)
 判定対象値「value」が閾値「threshold」以上かの判定
 本実施形態では、情報処理装置100は、上記の5つの比較命令を、以下の形式の1つの比較命令(以下、「統一命令」とも呼ぶ。)に変換する。
  X≦value≦Y (X,Yは閾値)
なお、上記の「X」は第1の閾値に相当し、「Y」は第2の閾値に相当する。
 具体的に、図3に示すように、5つの比較命令は以下のように変換できる。
(1)一致判定(value==category)
 同一のカテゴリ値「category」を用いて、「category≦value≦category」に変換できる。
(2)大小判定(value<threshold)
 閾値「マイナス無限大(-∞)」と閾値「threshold」を用いて、「-∞≦value≦prev(threshold)」に変換できる。
(3)大小判定(value≦threshold)
 閾値「マイナス無限大(-∞)」と閾値「threshold」を用いて、「-∞≦value≦threshold」に変換できる。
(4)大小判定(threshold<value)
 閾値「next(threshold)」と閾値「無限大(∞)」を用いて、「next(threshold)≦value≦∞」に変換できる。
(5)大小判定(threshold≦value)
 閾値「threshold」と閾値「無限大(∞)」を用いて、「threshold≦value≦∞」に変換できる。
 なお、関数prev()、next()は、直感的には、εを適当な微小正数とした場合、それぞれprev()=x-ε、next()=x+εで表される。比較命令で用いる閾値は実数型であるが、有限精度の表現である以上、ある値aに対して「aとbの間には表現可能な値がない」ような値bが存在する。prev(threshold)の値は、thresholdより小さく、かつ、thresholdとの間に表現可能な値がない値である。また、next(threshold)の値は、thresholdより大きく、かつ、thresholdとの間に表現可能な値がない値である。言い換えると、prev(threshold)の値は、所定の分解能(例えば、32ビット、64ビットなど)の離散値のうち、thresholdより小さく、かつ、thresholdに隣接する値(以下、「隣接値」とも呼ぶ。)である。同様に、next(threshold)の値は、所定の分解能の離散値のうち、thresholdより大きく、かつ、thresholdに隣接する値である。なお、実際には、prev(threshold)やnext(threshold)の値は、例えばC言語の標準ライブラリにおける「nextafter()」という関数を用いて求めることができる。
 このように、決定木の条件判定ノードで用いられる各比較命令を同一の比較命令に統一することにより、決定木において各データ行が異なる子ノードに下りていく場合でも、全ての条件判定ノードの比較命令を並列処理することが可能となる。
 (具体例)
 次に、条件判定ノードが実行する比較命令を統一して並列処理する具体例を説明する。図4は、決定木モデルの一例を示す。この例では、決定木モデルはノード1~11、14~15を有し、ノード1~5、7は条件判定ノードであり、ノード6、8~11、14~15は葉ノードである。各条件判定ノードには、前述の一致判定又は4つの大小判定のいずれかが設定されている。各条件判定ノードにおいて、判定結果が「true」である場合、処理は図中左側の子ノードに進み、判定結果が「false」である場合、処理は図中右側の子ノードに進む。また、推論対象のデータとしては、それぞれが特徴量A~Cを有する8つのデータ(データ番号1~8)が用意されている。
 図5は、決定木モデルの第1層で行われる並列処理を示す。第1層では、現在地(現在地ノード)1において、特徴量Aを用いて[A]<5の比較命令が実行される。なお、図4~図8における[A]、[B]、[C]の表記は、それぞれ特徴量A、特徴量B、特徴量Cを示すものとする。この場合、情報処理装置100は、ノード1の比較命令[A]<5を、図3を参照して説明した統一命令「X≦value≦Y」の形式に変換する。具体的に、情報処理装置100は、ノード1における比較命令[A]<5を、統一命令「-∞≦[A]≦4.999・・」に変換する。図5における「現在の状態」の欄に、統一命令を用いて行われる比較演算を示す。そして、情報処理装置100は、各データ1~8について、統一命令「-∞≦[A]≦4.999・・」を演算し、判定結果「true」又は「false」を出力する。こうして決定木モデルの第1層の推論処理が終了し、処理は第2層に移行する。
 図6は、決定木モデルの第2層で行われる並列処理を示す。第2層では、ノード2に進んだデータについては、特徴量Bを用いて[B]==1の比較命令が実行される。また、ノード3に進んだデータについては、特徴量Cを用いて[C]<0.5の比較命令が実行される。この場合、情報処理装置100は、ノード2の比較命令[B]==1を、統一命令「1≦[B]≦1」に変換する。また、情報処理装置100は、ノード3の比較命令[C]<0.5を、統一命令「-∞≦[C]≦0.499・・」に変換する。そして、情報処理装置100は、データ1、2、4、6について統一命令「1≦[B]≦1」を演算し、データ3、5、7、8について、統一命令「-∞≦[C]≦0.499・・」を演算して判定結果を出力する。こうして決定木モデルの第2層の推論処理が終了し、処理は第3層に移行する。
 図7は、決定木モデルの第3層で行われる並列処理を示す。第3層では、ノード4に進んだデータについては、特徴量Aを用いて[A]<1の比較命令が実行される。ノード5に進んだデータについては、特徴量Cを用いて[C]<0.5の比較命令が実行される。ノード6は葉ノードであるので、ノード6について処理は行われない。ノード7に進んだデータについては、特徴量Bを用いて[B]==1の比較命令が実行される。この場合、情報処理装置100は、ノード4の比較命令[A]<1を統一命令「-∞≦[A]≦0.999・・」に変換し、ノード5の比較命令[C]<0.5を統一命令「-∞≦[C]≦0.499・・」に変換し、ノード7の比較命令[B]==1を統一命令「1≦[B]≦1」に変換する。そして、情報処理装置100は、データ1、4について統一命令「-∞≦[A]≦0.999・・」を演算し、データ2、6について統一命令「-∞≦[C]≦0.499・・」を演算し、データ7、8について統一命令「1≦[B]≦1」を演算して判定結果を出力する。こうして決定木モデルの第3層の推論処理が終了し、処理は第4層に移行する。
 図8は、決定木モデルの第4層の状態を示す。第4層では、ノード8~11、14~15の全てが葉ノードであるので、全データ1~8が葉ノードに到達したことになる。よって、推論処理は終了する。「現在の状態」では全データ1~8が葉ノードに到達したことが示されている。
 以上のように、本実施形態の情報処理装置100によれば、決定木の各条件判定ノードに設定された異なる比較命令を、閾値を調整することにより統一命令に変換するので、各データに対する条件判定ノードが異なっていても、全てのデータについて並列処理が可能となる。
 (ハードウェア構成)
 図9は、情報処理装置100のハードウェア構成を示すブロック図である。図示のように、情報処理装置100は、入力IF(InterFace)11と、プロセッサ12と、メモリ13と、記録媒体14と、データベース(DB)15と、を備える。
 入力IF11は、データの入出力を行う。具体的に、入力IF11は、外部から入力データを取得し、入力データに基づいて情報処理装置100が生成した推論結果を出力する。
 プロセッサ12は、CPU(Central Processing Unit)、GPU(Graphics Processing Unit)などのコンピュータであり、予め用意されたプログラムを実行することにより、情報処理装置100の全体を制御する。特に、プロセッサ12は、データの並列処理を行う。並列処理を実現する方法としては、GPUなどのSIMDプロセッサを利用する方法がある。情報処理装置100がSIMDプロセッサを利用して並列処理を行う場合、プロセッサ12をSIMDプロセッサとしてもよいし、プロセッサ12とは別のプロセッサとしてSIMDプロセッサを設けてもよい。また、後者の場合、情報処理装置100は、並列処理が可能な演算をSIMDプロセッサに実行させ、それ以外の演算をプロセッサ12に実行させる。
 メモリ13は、ROM(Read Only Memory)、RAM(Random Access Memory)などにより構成される。メモリ13は、プロセッサ12により実行される各種のプログラムを記憶する。また、メモリ13は、プロセッサ12による各種の処理の実行中に作業メモリとしても使用される。
 記録媒体14は、ディスク状記録媒体、半導体メモリなどの不揮発性で非一時的な記録媒体であり、情報処理装置100に対して着脱可能に構成される。記録媒体14は、プロセッサ12が実行する各種のプログラムを記録している。
 DB15は、入力IF11から入力されるデータを記憶する。具体的に、DB15には、入力IF11が取得した入力データが記憶される。また、DB15には、推論に用いる決定木モデルの情報が記憶される。具体的には、学習済みの決定木モデルの木構造を示す情報、及び、各ノードについてのノード設定(条件判定ノード設定、及び、葉ノード設定)が記憶される。
 (機能構成)
 図10は、情報処理装置100の機能構成を示すブロック図である。情報処理装置100は、命令統一部21と、入力データ読込部22と、並列処理部23と、結果出力部24とを備える。また、命令統一部21は、閾値読込部21aと、比較命令読込部21bと、命令変換部21cとを備える。
 命令統一部21は、決定木に含まれる各条件判定ノードについて比較命令を取得し、前述のような統一命令に変換する処理を行う。具体的に、閾値読込部21aは、各条件判定ノードについての閾値(threshold)又はカテゴリ値(category)を読み込み、命令変換部21cへ出力する。比較命令読込部21bは各条件判定ノードについての比較命令を読み込み、命令変換部21cへ出力する。例えば、図4に示す条件判定ノード1の場合、閾値読込部21aは閾値「5」を読み込み、比較命令読込部21bは比較命令[A]<thresholdを読み込む。また、図4に示す条件判定ノード2の場合、閾値読込部21aはカテゴリ値「1」を読み込み、比較命令読込部21bは比較命令[B]==categoryを読み込む。
 命令変換部21cは、入力された閾値又はカテゴリ値と、比較命令とに基づいて、その比較命令を「X≦value≦Y」の形式の統一命令に変換する。ここで、入力された比較命令が一致判定である場合、命令変換部21cは、入力されたカテゴリ値をそのまま閾値X、Yとして使用する。一方、入力された比較命令が大小判定である場合、命令変換部21cは統一命令に合わせて閾値を変更する。即ち、命令変換部21cは、入力された比較命令が「X≦value≦Y」の形式となるように、入力された閾値から、統一命令における閾値X、Yを作る。例えば、図4に示す条件判定ノード1の場合、命令変換部21cは、ノード1の比較命令[A]<5を統一命令「X≦[A]≦Y」の形式に変換し、閾値X、Yをそれぞれ「-∞」、「4.999・・」と決定する。その結果、命令変換部21cは、ノード1における比較命令[A]<5を、統一命令「-∞≦[A]≦4.999・・」に変換する。こうして、命令統一部21は、決定木モデルに含まれる全ての条件判定ノードの比較命令を統一命令に変換し、並列処理部23へ出力する。
 入力データ読込部22は、決定木モデルによる推論の対象となる入力データを読み込み、並列処理部23へ出力する。図4の例では、入力データ読込部22は、データ1~8を読み込む。並列処理部23は、入力された統一命令を用いて、全ての入力データを並列処理し、条件判定結果を生成する。具体的に、並列処理部23は、図5~7の「現在の状態」の欄に示すように、統一命令を用いて、各入力データ1~8について並列処理により条件判定を行う。そして、並列処理部23は、得られた条件判定結果を結果出力部24へ出力する。結果出力部24は、入力された条件判定結果を外部装置などへ出力する。
 なお、上記の構成において、命令統一部21は命令統一手段の一例であり、入力データ読込部22は取得手段の一例であり、並列処理部23は条件判定手段の一例である。
 (条件判定処理)
 図11は、並列処理部23により実行される条件判定処理のフローチャートである。この処理は、図9に示すプロセッサ12が予め用意されたプログラムを実行することにより実現される。なお、この処理に先立ち、図10に示す命令統一部21は、推論に使用する決定木モデルに含まれる全ての条件判定ノードについて、上記のように比較命令を統一命令に変換する前処理を実施しているものとする。
 まず、並列処理部23は、全データの現在地(現在地ノード)に根ノードをセットする(ステップS1)。次に、並列処理部23は、葉ノードに到達していないデータがある間、ステップS4~S7の並列処理を繰り返す(ステップS3)。ステップS4~S7の並列処理では、並列処理部23は、i番目のデータであるデータ[i]の現在地ノード番号を「m」にセットする(ステップS4)。これにより、各データについて現在地ノードが設定される。
 次に、並列処理部23は、現在地ノード[m]の統一命令の左閾値をX[i]にセットし、右閾値をY[i]にセットし、現在地ノード[m]の統一命令が参照する特徴量番号を「j」にセットする(ステップS5)。これにより、各データについて実行すべき統一命令が得られる。そして、並列処理部23は、各データについて統一命令を実行する。具体的に、並列処理部23は、(X[i]≦データ[i][j])、かつ、(データ[i][j]≦Y[i])が成立するか否かを判定し、データ[i]の条件判定結果に「true」又は「false」をセットする(ステップS6)。次に、並列処理部23は、データ[i]の条件判定結果に対応する現在地ノード[m]の子ノードを、データ[i]の現在地にセットする(ステップS7)。
 こうして、並列処理部23は、ステップS4~S7の並列処理を全データに対して実行する。並列処理部23は、葉ノードに到達していないデータがある限り、決定木モデルにおいて現在地を下層側へ移動しつつ、ステップS4~S7の並列処理を実行し、全てのデータが葉ノードに到達した時点で、処理を終了する。
 [第2実施形態]
 図12は、第2実施形態に係る情報処理装置70の機能構成を示すブロック図である。情報処理装置70は、条件判定ノードと葉ノードを有する決定木に基づいて決定木推論を行う。情報処理装置70は、命令統一手段71と、取得手段72と、条件判定手段73とを備える。命令統一手段71は、決定木に含まれる条件判定ノードが実行する命令を、並列処理に適するように統一して統一命令を生成する。取得手段72は、複数の入力データを取得する。条件判定手段73は、各条件判定ノードについて、統一命令を用いて複数の入力データに対する条件判定を並列処理で行い、条件判定結果を出力する。
 上記の実施形態の一部又は全部は、以下の付記のようにも記載されうるが、以下には限られない。
 (付記1)
 決定木に含まれる条件判定ノードが実行する命令を、並列処理に適するように統一して統一命令を生成する命令統一手段と、
 複数の入力データを取得する取得手段と、
 各条件判定ノードについて、前記統一命令を用いて前記複数の入力データに対する条件判定を並列処理で行い、条件判定結果を出力する条件判定手段と、
 を備える情報処理装置。
 (付記2)
 前記命令統一手段は、前記決定木に含まれる全ての条件判定ノードが前記統一命令を実行するように、各条件判定ノードの閾値を変更する付記1に記載の情報処理装置。
 (付記3)
 前記統一命令は、前記条件判定ノードにおける判定対象値が、第1の閾値以上であり、かつ、第2の閾値以下であるかを判定する比較命令である付記2に記載の情報処理装置。
 (付記4)
 前記命令統一手段は、前記判定対象値が所定値より小さいかを判定する命令を、前記判定対象値が、マイナス無限大以上であり、かつ、前記所定値より小さい隣接値以下であるかを判定する命令に変換する付記3に記載の情報処理装置。
 (付記5)
 前記命令統一手段は、前記判定対象値が所定値より大きいかを判定する命令を、前記判定対象値が、前記所定値より大きい隣接値以上であり、かつ、プラス無限大以下であるかを判定する命令に変換する付記4に記載の情報処理装置。
 (付記6)
 前記命令統一手段は、前記判定対象値が所定値と一致するかを判定する命令を、判定対象値が、前記所定値以下であり、かつ、前記所定値以上であるかを判定する命令に変換する付記3乃至5のいずれか一項に記載の情報処理装置。
 (付記7)
 前記命令統一手段は、前記判定対象値が所定値以下であるかを判定する命令を、前記判定対象値が、マイナス無限大以上であり、かつ、前記所定値以下であるかを判定する命令に変換する付記3乃至6のいずれか一項に記載の情報処理装置。
 (付記8)
 前記命令統一手段は、前記判定対象値が所定値以上であるかを判定する命令を、前記判定対象値が、前記所定値以上であり、かつ、プラス無限大以下であるかを判定する命令に変換する付記7に記載の情報処理装置。
 (付記9)
 前記条件判定手段は、SIMD方式の並列処理を行う付記1乃至8のいずれか一項に記載の情報処理装置。
 (付記10)
 決定木に含まれる条件判定ノードが実行する命令を、並列処理に適するように統一して統一命令を生成し、
 複数の入力データを取得し、
 各条件判定ノードについて、前記統一命令を用いて前記複数の入力データに対する条件判定を並列処理で行い、条件判定結果を出力する情報処理方法。
 (付記11)
 決定木に含まれる条件判定ノードが実行する命令を、並列処理に適するように統一して統一命令を生成し、
 複数の入力データを取得し、
 各条件判定ノードについて、前記統一命令を用いて前記複数の入力データに対する条件判定を並列処理で行い、条件判定結果を出力する処理をコンピュータに実行させるプログラムを記録した記録媒体。
 以上、実施形態及び実施例を参照して本発明を説明したが、本発明は上記実施形態及び実施例に限定されるものではない。本発明の構成や詳細には、本発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
 12 プロセッサ
 21 命令統一部
 21a 閾値読込部
 21b 比較命令読込部
 21c 命令変換部
 22 入力データ読込部
 23 並列処理部
 24 結果出力部
 100 情報処理装置

Claims (11)

  1.  決定木に含まれる条件判定ノードが実行する命令を、並列処理に適するように統一して統一命令を生成する命令統一手段と、
     複数の入力データを取得する取得手段と、
     各条件判定ノードについて、前記統一命令を用いて前記複数の入力データに対する条件判定を並列処理で行い、条件判定結果を出力する条件判定手段と、
     を備える情報処理装置。
  2.  前記命令統一手段は、前記決定木に含まれる全ての条件判定ノードが前記統一命令を実行するように、各条件判定ノードの閾値を変更する請求項1に記載の情報処理装置。
  3.  前記統一命令は、前記条件判定ノードにおける判定対象値が、第1の閾値以上であり、かつ、第2の閾値以下であるかを判定する比較命令である請求項2に記載の情報処理装置。
  4.  前記命令統一手段は、前記判定対象値が所定値より小さいかを判定する命令を、前記判定対象値が、マイナス無限大以上であり、かつ、前記所定値より小さい隣接値以下であるかを判定する命令に変換する請求項3に記載の情報処理装置。
  5.  前記命令統一手段は、前記判定対象値が所定値より大きいかを判定する命令を、前記判定対象値が、前記所定値より大きい隣接値以上であり、かつ、プラス無限大以下であるかを判定する命令に変換する請求項4に記載の情報処理装置。
  6.  前記命令統一手段は、前記判定対象値が所定値と一致するかを判定する命令を、判定対象値が、前記所定値以下であり、かつ、前記所定値以上であるかを判定する命令に変換する請求項3乃至5のいずれか一項に記載の情報処理装置。
  7.  前記命令統一手段は、前記判定対象値が所定値以下であるかを判定する命令を、前記判定対象値が、マイナス無限大以上であり、かつ、前記所定値以下であるかを判定する命令に変換する請求項3乃至6のいずれか一項に記載の情報処理装置。
  8.  前記命令統一手段は、前記判定対象値が所定値以上であるかを判定する命令を、前記判定対象値が、前記所定値以上であり、かつ、プラス無限大以下であるかを判定する命令に変換する請求項7に記載の情報処理装置。
  9.  前記条件判定手段は、SIMD方式の並列処理を行う請求項1乃至8のいずれか一項に記載の情報処理装置。
  10.  決定木に含まれる条件判定ノードが実行する命令を、並列処理に適するように統一して統一命令を生成し、
     複数の入力データを取得し、
     各条件判定ノードについて、前記統一命令を用いて前記複数の入力データに対する条件判定を並列処理で行い、条件判定結果を出力する情報処理方法。
  11.  決定木に含まれる条件判定ノードが実行する命令を、並列処理に適するように統一して統一命令を生成し、
     複数の入力データを取得し、
     各条件判定ノードについて、前記統一命令を用いて前記複数の入力データに対する条件判定を並列処理で行い、条件判定結果を出力する処理をコンピュータに実行させるプログラムを記録した記録媒体。
PCT/JP2020/025048 2020-06-25 2020-06-25 情報処理装置、情報処理方法、及び、記録媒体 WO2021260888A1 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
PCT/JP2020/025048 WO2021260888A1 (ja) 2020-06-25 2020-06-25 情報処理装置、情報処理方法、及び、記録媒体
US18/010,948 US20230237097A1 (en) 2020-06-25 2020-06-25 Information processing device, information processing method, and recording medium
JP2022532182A JP7468650B2 (ja) 2020-06-25 2020-06-25 情報処理装置、情報処理方法、及び、プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2020/025048 WO2021260888A1 (ja) 2020-06-25 2020-06-25 情報処理装置、情報処理方法、及び、記録媒体

Publications (1)

Publication Number Publication Date
WO2021260888A1 true WO2021260888A1 (ja) 2021-12-30

Family

ID=79282092

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2020/025048 WO2021260888A1 (ja) 2020-06-25 2020-06-25 情報処理装置、情報処理方法、及び、記録媒体

Country Status (3)

Country Link
US (1) US20230237097A1 (ja)
JP (1) JP7468650B2 (ja)
WO (1) WO2021260888A1 (ja)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015513749A (ja) * 2012-03-15 2015-05-14 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation Vectorstringrangecompare
JP2017224070A (ja) * 2016-06-14 2017-12-21 日本電気株式会社 プログラム生成装置およびプログラム生成方法
JP2018520443A (ja) * 2015-07-06 2018-07-26 日本テキサス・インスツルメンツ株式会社 適応ブースティング(afdaboost)分類器における効率的なディシジョンツリートラバース

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4542456A (en) * 1982-04-28 1985-09-17 At&T Bell Laboratories Method and apparatus for performing range checks
US7802076B2 (en) * 2004-06-24 2010-09-21 Intel Corporation Method and apparatus to vectorize multiple input instructions
US10152674B2 (en) 2012-01-16 2018-12-11 Texas Instruments Incorporated Accelerated decision tree execution
CN113407154A (zh) * 2020-03-16 2021-09-17 华为技术有限公司 一种向量计算装置及方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015513749A (ja) * 2012-03-15 2015-05-14 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation Vectorstringrangecompare
JP2018520443A (ja) * 2015-07-06 2018-07-26 日本テキサス・インスツルメンツ株式会社 適応ブースティング(afdaboost)分類器における効率的なディシジョンツリートラバース
JP2017224070A (ja) * 2016-06-14 2017-12-21 日本電気株式会社 プログラム生成装置およびプログラム生成方法

Also Published As

Publication number Publication date
JP7468650B2 (ja) 2024-04-16
US20230237097A1 (en) 2023-07-27
JPWO2021260888A1 (ja) 2021-12-30

Similar Documents

Publication Publication Date Title
JP6965690B2 (ja) ニューラルネットワークの処理速度を向上させるための装置及び方法、並びにその応用
US20080040699A1 (en) Same Subgraph Detector for Data Flow Graph, High-Order Combiner, Same Subgraph Detecting Method for Data Flow Graph, Same Subgraph Detection Control Program for Data Flow Graph, and Readable Recording Medium
EP3846034B1 (en) Systems and methods for automated testing using artificial intelligence techniques
CN114580263A (zh) 基于知识图谱的信息系统故障预测方法及相关设备
JP6574004B2 (ja) 計算手法決定システム、計算手法決定装置、処理装置、計算手法決定方法、処理方法、計算手法決定プログラム、及び、処理プログラム
US20200250529A1 (en) Arithmetic device
CN111652453A (zh) 用于零件设计、仿真和制造的智能工作流程顾问
JP2020113044A (ja) データ拡張プログラム、データ拡張方法およびデータ拡張装置
CN115344805A (zh) 素材审核方法、计算设备及存储介质
CN116663491B (zh) 基于bdd求解功能覆盖组条件约束语句的方法、设备和介质
WO2021260888A1 (ja) 情報処理装置、情報処理方法、及び、記録媒体
US20210279575A1 (en) Information processing apparatus, information processing method, and storage medium
JPS6126112A (ja) システムの異常診断方式
JP2018109862A (ja) 句構造解析装置およびプログラム
JP4230890B2 (ja) モデル同定装置,モデル同定プログラム及びモデル同定装置の動作方法
WO2021149202A1 (ja) 情報処理装置、情報処理方法、及び、記録媒体
JPS6219940A (ja) 高速推論処理方式
CN114138328A (zh) 基于代码异味的软件重构预测方法
CN112149826A (zh) 深度神经网络推理计算中一种基于Profile图的优化方法
JP7154468B2 (ja) 情報処理装置、情報処理方法及び情報処理プログラム
JP6854982B1 (ja) プログラミング支援プログラム、プログラミング支援装置およびプログラミング支援方法
JP2020181318A (ja) 最適化装置、最適化方法、及びプログラム
JP2005208709A (ja) データ分類処理装置、およびデータ分類処理方法、並びにコンピュータ・プログラム
CN114115804B (zh) 一种乘法器转换方法、系统、设备以及介质
JPWO2009075128A1 (ja) 統合異常検知システム、統合異常検知装置、統合異常検知方法およびプログラム

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: 20941602

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2022532182

Country of ref document: JP

Kind code of ref document: A

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 20941602

Country of ref document: EP

Kind code of ref document: A1