JP7468650B2 - 情報処理装置、情報処理方法、及び、プログラム - Google Patents

情報処理装置、情報処理方法、及び、プログラム Download PDF

Info

Publication number
JP7468650B2
JP7468650B2 JP2022532182A JP2022532182A JP7468650B2 JP 7468650 B2 JP7468650 B2 JP 7468650B2 JP 2022532182 A JP2022532182 A JP 2022532182A JP 2022532182 A JP2022532182 A JP 2022532182A JP 7468650 B2 JP7468650 B2 JP 7468650B2
Authority
JP
Japan
Prior art keywords
instruction
value
threshold
equal
condition
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.)
Active
Application number
JP2022532182A
Other languages
English (en)
Other versions
JPWO2021260888A5 (ja
JPWO2021260888A1 (ja
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.)
NEC Corp
Original Assignee
NEC Corp
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 NEC Corp filed Critical NEC Corp
Publication of JPWO2021260888A1 publication Critical patent/JPWO2021260888A1/ja
Publication of JPWO2021260888A5 publication Critical patent/JPWO2021260888A5/ja
Application granted granted Critical
Publication of JP7468650B2 publication Critical patent/JP7468650B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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]

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)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Devices For Executing Special Programs (AREA)

Description

本発明は、決定木を用いた推論処理に関する。
近年、大量のデータを高速に処理することが求められている。データ処理を高速化する手法の一つに、処理の並列化がある。例えば、複数のデータを独立して操作できる繰り返し処理は、展開して並列処理することが可能である。並列処理の方式として、SIMD(Single Intruction Multiple Data)方式が知られている。SIMDは、一つの命令を複数のデータに対して一斉に実行することで処理を高速化する並列処理の方式である。SIMD方式のプロセッサとしては、ベクトルプロセッサ、GPU(Graphics Processing Unit)などが挙げられる。
特許文献1は、決定木を用いた推論に並列処理を適用した手法を記載している。特許文献1では、決定木の各ノードの識別情報や条件判定結果を2進数で表現し、各階層の条件判定をまとめて処理できるようにしている。
特開2013-117862号公報
しかし、特許文献1の手法では、全データを用いて全ての条件判定ノードの処理を実行してしまうため、処理の効率が良くない。
本発明の1つの目的は、決定木を用いた推論処理を並列処理により高速化することにある。
本発明の一つの観点は、情報処理装置であって、
決定木に含まれる全ての条件判定ノードが実行する命令を統一命令に変換する命令統一手段と、
複数の入力データを取得する取得手段と、
各条件判定ノードについて、前記統一命令を用いて前記複数の入力データに対する条件判定を並列処理で行い、条件判定結果を出力する条件判定手段と、
を備え
前記命令統一手段は、前記全ての条件判定ノードが実行する命令の各々を、各条件判定ノードにおける判定対象値が、第1の閾値以上であり、かつ、第2の閾値以下であるかを判定する比較命令に変換し、前記第1の閾値及び前記第2の閾値を決定することで、前記統一命令に変換する
本発明の他の観点は、コンピュータにより実行される情報処理方法であって、
決定木に含まれる全ての条件判定ノードが実行する命令を統一命令に変換する変換処理を行い
複数の入力データを取得し、
各条件判定ノードについて、前記統一命令を用いて前記複数の入力データに対する条件判定を並列処理で行い、条件判定結果を出力し、
前記変換処理は、前記全ての条件判定ノードが実行する命令の各々を、各条件判定ノードにおける判定対象値が、第1の閾値以上であり、かつ、第2の閾値以下であるかを判定する比較命令に変換し、前記第1の閾値及び前記第2の閾値を決定することで、前記統一命令に変換する
本発明のさらに他の観点は、プログラムであって、
決定木に含まれる全ての条件判定ノードが実行する命令を統一命令に変換する変換処理を行い、
複数の入力データを取得し、
各条件判定ノードについて、前記統一命令を用いて前記複数の入力データに対する条件判定を並列処理で行い、条件判定結果を出力する処理をコンピュータに実行させ
前記変換処理は、前記全ての条件判定ノードが実行する命令の各々を、各条件判定ノードにおける判定対象値が、第1の閾値以上であり、かつ、第2の閾値以下であるかを判定する比較命令に変換し、前記第1の閾値及び前記第2の閾値を決定することで、前記統一命令に変換する
本発明によれば、決定木を用いた推論処理を並列処理により高速化することができる。
第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 (9)

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

Applications Claiming Priority (1)

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

Publications (3)

Publication Number Publication Date
JPWO2021260888A1 JPWO2021260888A1 (ja) 2021-12-30
JPWO2021260888A5 JPWO2021260888A5 (ja) 2023-02-16
JP7468650B2 true JP7468650B2 (ja) 2024-04-16

Family

ID=79282092

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2022532182A Active JP7468650B2 (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 (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130185239A1 (en) 2012-01-16 2013-07-18 Texas Instruments Incorporated Accelerated Decision Tree Execution
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 (3)

* 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
CN113407154A (zh) * 2020-03-16 2021-09-17 华为技术有限公司 一种向量计算装置及方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130185239A1 (en) 2012-01-16 2013-07-18 Texas Instruments Incorporated Accelerated Decision Tree Execution
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
WO2021260888A1 (ja) 2021-12-30
JPWO2021260888A1 (ja) 2021-12-30
US20230237097A1 (en) 2023-07-27

Similar Documents

Publication Publication Date Title
US11915104B2 (en) Normalizing text attributes for machine learning models
JP6965690B2 (ja) ニューラルネットワークの処理速度を向上させるための装置及び方法、並びにその応用
EP3846034B1 (en) Systems and methods for automated testing using artificial intelligence techniques
JP7172612B2 (ja) データ拡張プログラム、データ拡張方法およびデータ拡張装置
EP3614312B1 (en) System, method and processing program for determining a calculation technique
US10990073B2 (en) Program editing device, program editing method, and computer readable medium
WO2020039790A1 (ja) 情報処理装置、情報処理方法及びプログラム
JP4528839B2 (ja) 音素モデルクラスタリング装置、方法及びプログラム
WO2020218246A1 (ja) 最適化装置、最適化方法、及びプログラム
JP7468650B2 (ja) 情報処理装置、情報処理方法、及び、プログラム
JP4854032B2 (ja) 音声認識における音響尤度並列計算装置及びそのプログラム
WO2021090484A1 (ja) 学習装置、情報統合システム、学習方法、及び、記録媒体
US20230065428A1 (en) Programming support program storage medium, programming support device, and programming support method
CN112149826B (zh) 深度神经网络推理计算中一种基于Profile图的优化方法
JP4230890B2 (ja) モデル同定装置,モデル同定プログラム及びモデル同定装置の動作方法
JP2018109862A (ja) 句構造解析装置およびプログラム
JP2022151502A (ja) プログラム、情報処理装置、及び方法
WO2021149202A1 (ja) 情報処理装置、情報処理方法、及び、記録媒体
CN114428720A (zh) 基于p-k的软件缺陷预测方法、装置、电子设备及介质
JP7154468B2 (ja) 情報処理装置、情報処理方法及び情報処理プログラム
KR102699114B1 (ko) 기계학습 모델을 이용하여, esg 데이터 기반 예측 모델의 기계학습에 사용할 기업의 합성 esg 데이터를 생성하는 장치 및 방법
EP4300361A1 (en) Methods and systems for optimizing a peak memory usage of an artificial neural network graph
CN118672594B (zh) 一种软件缺陷预测方法及系统
WO2024060066A1 (zh) 一种文本识别方法、模型及电子设备
JPWO2009075128A1 (ja) 統合異常検知システム、統合異常検知装置、統合異常検知方法およびプログラム

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20221130

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20221130

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20231226

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20240214

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20240305

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20240318

R150 Certificate of patent or registration of utility model

Ref document number: 7468650

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150