IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 日本電気株式会社の特許一覧

特許7468650情報処理装置、情報処理方法、及び、プログラム
<>
  • 特許-情報処理装置、情報処理方法、及び、プログラム 図1
  • 特許-情報処理装置、情報処理方法、及び、プログラム 図2
  • 特許-情報処理装置、情報処理方法、及び、プログラム 図3
  • 特許-情報処理装置、情報処理方法、及び、プログラム 図4
  • 特許-情報処理装置、情報処理方法、及び、プログラム 図5
  • 特許-情報処理装置、情報処理方法、及び、プログラム 図6
  • 特許-情報処理装置、情報処理方法、及び、プログラム 図7
  • 特許-情報処理装置、情報処理方法、及び、プログラム 図8
  • 特許-情報処理装置、情報処理方法、及び、プログラム 図9
  • 特許-情報処理装置、情報処理方法、及び、プログラム 図10
  • 特許-情報処理装置、情報処理方法、及び、プログラム 図11
  • 特許-情報処理装置、情報処理方法、及び、プログラム 図12
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-04-08
(45)【発行日】2024-04-16
(54)【発明の名称】情報処理装置、情報処理方法、及び、プログラム
(51)【国際特許分類】
   G06F 16/90 20190101AFI20240409BHJP
   G06F 17/16 20060101ALI20240409BHJP
   G06N 20/00 20190101ALI20240409BHJP
【FI】
G06F16/90
G06F17/16 G
G06N20/00 130
【請求項の数】 9
(21)【出願番号】P 2022532182
(86)(22)【出願日】2020-06-25
(86)【国際出願番号】 JP2020025048
(87)【国際公開番号】W WO2021260888
(87)【国際公開日】2021-12-30
【審査請求日】2022-11-30
(73)【特許権者】
【識別番号】000004237
【氏名又は名称】日本電気株式会社
(74)【代理人】
【識別番号】100107331
【弁理士】
【氏名又は名称】中村 聡延
(74)【代理人】
【識別番号】100104765
【弁理士】
【氏名又は名称】江上 達夫
(74)【代理人】
【識別番号】100131015
【弁理士】
【氏名又は名称】三輪 浩誉
(72)【発明者】
【氏名】大道 修
【審査官】原 秀人
(56)【参考文献】
【文献】特開2017-224070(JP,A)
【文献】特表2015-513749(JP,A)
【文献】特表2018-520443(JP,A)
【文献】米国特許出願公開第2013/0185239(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 16/00-16/958
G06F 17/16
G06F 9/38
G06N 20/00
(57)【特許請求の範囲】
【請求項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の閾値を決定することで、前記統一命令に変換するプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、決定木を用いた推論処理に関する。
【背景技術】
【0002】
近年、大量のデータを高速に処理することが求められている。データ処理を高速化する手法の一つに、処理の並列化がある。例えば、複数のデータを独立して操作できる繰り返し処理は、展開して並列処理することが可能である。並列処理の方式として、SIMD(Single Intruction Multiple Data)方式が知られている。SIMDは、一つの命令を複数のデータに対して一斉に実行することで処理を高速化する並列処理の方式である。SIMD方式のプロセッサとしては、ベクトルプロセッサ、GPU(Graphics Processing Unit)などが挙げられる。
【0003】
特許文献1は、決定木を用いた推論に並列処理を適用した手法を記載している。特許文献1では、決定木の各ノードの識別情報や条件判定結果を2進数で表現し、各階層の条件判定をまとめて処理できるようにしている。
【先行技術文献】
【特許文献】
【0004】
【文献】特開2013-117862号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかし、特許文献1の手法では、全データを用いて全ての条件判定ノードの処理を実行してしまうため、処理の効率が良くない。
【0006】
本発明の1つの目的は、決定木を用いた推論処理を並列処理により高速化することにある。
【課題を解決するための手段】
【0007】
本発明の一つの観点は、情報処理装置であって、
決定木に含まれる全ての条件判定ノードが実行する命令を統一命令に変換する命令統一手段と、
複数の入力データを取得する取得手段と、
各条件判定ノードについて、前記統一命令を用いて前記複数の入力データに対する条件判定を並列処理で行い、条件判定結果を出力する条件判定手段と、
を備え
前記命令統一手段は、前記全ての条件判定ノードが実行する命令の各々を、各条件判定ノードにおける判定対象値が、第1の閾値以上であり、かつ、第2の閾値以下であるかを判定する比較命令に変換し、前記第1の閾値及び前記第2の閾値を決定することで、前記統一命令に変換する
【0008】
本発明の他の観点は、コンピュータにより実行される情報処理方法であって、
決定木に含まれる全ての条件判定ノードが実行する命令を統一命令に変換する変換処理を行い
複数の入力データを取得し、
各条件判定ノードについて、前記統一命令を用いて前記複数の入力データに対する条件判定を並列処理で行い、条件判定結果を出力し、
前記変換処理は、前記全ての条件判定ノードが実行する命令の各々を、各条件判定ノードにおける判定対象値が、第1の閾値以上であり、かつ、第2の閾値以下であるかを判定する比較命令に変換し、前記第1の閾値及び前記第2の閾値を決定することで、前記統一命令に変換する
【0009】
本発明のさらに他の観点は、プログラムであって、
決定木に含まれる全ての条件判定ノードが実行する命令を統一命令に変換する変換処理を行い、
複数の入力データを取得し、
各条件判定ノードについて、前記統一命令を用いて前記複数の入力データに対する条件判定を並列処理で行い、条件判定結果を出力する処理をコンピュータに実行させ
前記変換処理は、前記全ての条件判定ノードが実行する命令の各々を、各条件判定ノードにおける判定対象値が、第1の閾値以上であり、かつ、第2の閾値以下であるかを判定する比較命令に変換し、前記第1の閾値及び前記第2の閾値を決定することで、前記統一命令に変換する
【発明の効果】
【0010】
本発明によれば、決定木を用いた推論処理を並列処理により高速化することができる。
【図面の簡単な説明】
【0011】
図1】第1実施形態に係る情報処理装置の構成を示すブロック図である。
図2】決定木推論の一例を示す。
図3】条件判定ノードの比較命令を統一する方法を示す。
図4】決定木モデルの一例を示す。
図5】決定木モデルの第1層で行われる並列処理を示す。
図6】決定木モデルの第2層で行われる並列処理を示す。
図7】決定木モデルの第3層で行われる並列処理を示す。
図8】決定木モデルの第4層の状態を示す。
図9】情報処理装置のハードウェア構成を示すブロック図である。
図10】情報処理装置の機能構成を示すブロック図である。
図11】並列処理部により実行される条件判定処理のフローチャートである。
図12】第2実施形態に係る情報処理装置の機能構成を示すブロック図である。
【発明を実施するための形態】
【0012】
以下、図面を参照して、本発明の好適な実施形態について説明する。
[第1実施形態]
(基本構成)
図1は、本発明の第1実施形態に係る情報処理装置の構成を示す。情報処理装置100は、決定木モデルを用いた推論(以下、「決定木推論」と呼ぶ。)を行う。具体的に、情報処理装置100は、入力データを用いて決定木推論を行い、推論結果として入力データに対する予測値を出力する。ここで、情報処理装置100は、決定木推論の処理のうちの一部を並列処理により実行し、処理を高速化する。なお、並列処理することを「ベクトル化」とも呼ぶ。
【0013】
(原理説明)
図2は、決定木推論の一例を示す。この例は、債権回収の予測問題であり、多数の債権者の属性情報を入力データとし、決定木モデルを用いて債権回収の可否を推論する。図示のように、入力データは、各債権者の特徴量として、「年収(特徴量1)」、「年齢(特徴量2)」、「定職(特徴量3)」を含む。決定木モデルは、これらの入力データを用いて、各債権者の債権回収の可否を予測する。
【0014】
図2の決定木モデルは、ノードN1~N7により構成される。ノードN1は根ノードであり、ノードN2、N4、N6、N7は葉ノードである。また、ノードN1、N3、N5は条件判定ノードである。
【0015】
まず、根ノードN1では、債権者が定職を有するか否かが判定される。債権者が定職を有しない場合、処理は葉ノードN2に進み、債権回収は否(NO)と予測される。一方、債権者が定職を有する場合、処理は条件判定ノードN3に進み、債権者の年収が480万円以上であるか否かが判定される。債権者の年収が480万円以上である場合、処理は葉ノードN4に進み、債権回収は可(YES)と予測される。債権者の年収が480万円未満である場合、処理は条件判定ノードN5へ進み、債権者の年齢が51歳以上であるか否かが判定される。債権者の年齢が51歳以上である場合、処理は葉ノードN6へ進み、債権回収は可(YES)と予測される。一方、債権者の年齢が51歳未満である場合、処理は葉ノードN7へ進み、債権回収は否(NO)と予測される。こうして、各債権者の債権回収の可否が予測値として出力される。
【0016】
さて、決定木推論に並列処理を適用する場合、どの部分を並列処理するかが問題となる。入力データのデータ行を並列に処理する方法が考えられるが、各データ行が異なる子ノードに下りていくことがあるため、条件判定ノードにおける比較命令が揃わず、そのままでは並列処理ができない。そこで、本実施形態では、各条件判定ノードで実行される比較命令を強制的に統一する。具体的には、各条件判定ノード毎に異なる比較命令を、1つの比較命令に変換する。この際、比較命令の変換に伴い、比較命令が規定する閾値を変更する。これにより、決定木に含まれる全ての条件判定ノードの比較命令を同一の命令に統一することができ、並列処理が可能となる。
【0017】
図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」以上かの判定
【0018】
本実施形態では、情報処理装置100は、上記の5つの比較命令を、以下の形式の1つの比較命令(以下、「統一命令」とも呼ぶ。)に変換する。
X≦value≦Y (X,Yは閾値)
なお、上記の「X」は第1の閾値に相当し、「Y」は第2の閾値に相当する。
【0019】
具体的に、図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≦∞」に変換できる。
【0020】
なお、関数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()」という関数を用いて求めることができる。
【0021】
このように、決定木の条件判定ノードで用いられる各比較命令を同一の比較命令に統一することにより、決定木において各データ行が異なる子ノードに下りていく場合でも、全ての条件判定ノードの比較命令を並列処理することが可能となる。
【0022】
(具体例)
次に、条件判定ノードが実行する比較命令を統一して並列処理する具体例を説明する。図4は、決定木モデルの一例を示す。この例では、決定木モデルはノード1~11、14~15を有し、ノード1~5、7は条件判定ノードであり、ノード6、8~11、14~15は葉ノードである。各条件判定ノードには、前述の一致判定又は4つの大小判定のいずれかが設定されている。各条件判定ノードにおいて、判定結果が「true」である場合、処理は図中左側の子ノードに進み、判定結果が「false」である場合、処理は図中右側の子ノードに進む。また、推論対象のデータとしては、それぞれが特徴量A~Cを有する8つのデータ(データ番号1~8)が用意されている。
【0023】
図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層に移行する。
【0024】
図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層に移行する。
【0025】
図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層に移行する。
【0026】
図8は、決定木モデルの第4層の状態を示す。第4層では、ノード8~11、14~15の全てが葉ノードであるので、全データ1~8が葉ノードに到達したことになる。よって、推論処理は終了する。「現在の状態」では全データ1~8が葉ノードに到達したことが示されている。
【0027】
以上のように、本実施形態の情報処理装置100によれば、決定木の各条件判定ノードに設定された異なる比較命令を、閾値を調整することにより統一命令に変換するので、各データに対する条件判定ノードが異なっていても、全てのデータについて並列処理が可能となる。
【0028】
(ハードウェア構成)
図9は、情報処理装置100のハードウェア構成を示すブロック図である。図示のように、情報処理装置100は、入力IF(InterFace)11と、プロセッサ12と、メモリ13と、記録媒体14と、データベース(DB)15と、を備える。
【0029】
入力IF11は、データの入出力を行う。具体的に、入力IF11は、外部から入力データを取得し、入力データに基づいて情報処理装置100が生成した推論結果を出力する。
【0030】
プロセッサ12は、CPU(Central Processing Unit)、GPU(Graphics Processing Unit)などのコンピュータであり、予め用意されたプログラムを実行することにより、情報処理装置100の全体を制御する。特に、プロセッサ12は、データの並列処理を行う。並列処理を実現する方法としては、GPUなどのSIMDプロセッサを利用する方法がある。情報処理装置100がSIMDプロセッサを利用して並列処理を行う場合、プロセッサ12をSIMDプロセッサとしてもよいし、プロセッサ12とは別のプロセッサとしてSIMDプロセッサを設けてもよい。また、後者の場合、情報処理装置100は、並列処理が可能な演算をSIMDプロセッサに実行させ、それ以外の演算をプロセッサ12に実行させる。
【0031】
メモリ13は、ROM(Read Only Memory)、RAM(Random Access Memory)などにより構成される。メモリ13は、プロセッサ12により実行される各種のプログラムを記憶する。また、メモリ13は、プロセッサ12による各種の処理の実行中に作業メモリとしても使用される。
【0032】
記録媒体14は、ディスク状記録媒体、半導体メモリなどの不揮発性で非一時的な記録媒体であり、情報処理装置100に対して着脱可能に構成される。記録媒体14は、プロセッサ12が実行する各種のプログラムを記録している。
【0033】
DB15は、入力IF11から入力されるデータを記憶する。具体的に、DB15には、入力IF11が取得した入力データが記憶される。また、DB15には、推論に用いる決定木モデルの情報が記憶される。具体的には、学習済みの決定木モデルの木構造を示す情報、及び、各ノードについてのノード設定(条件判定ノード設定、及び、葉ノード設定)が記憶される。
【0034】
(機能構成)
図10は、情報処理装置100の機能構成を示すブロック図である。情報処理装置100は、命令統一部21と、入力データ読込部22と、並列処理部23と、結果出力部24とを備える。また、命令統一部21は、閾値読込部21aと、比較命令読込部21bと、命令変換部21cとを備える。
【0035】
命令統一部21は、決定木に含まれる各条件判定ノードについて比較命令を取得し、前述のような統一命令に変換する処理を行う。具体的に、閾値読込部21aは、各条件判定ノードについての閾値(threshold)又はカテゴリ値(category)を読み込み、命令変換部21cへ出力する。比較命令読込部21bは各条件判定ノードについての比較命令を読み込み、命令変換部21cへ出力する。例えば、図4に示す条件判定ノード1の場合、閾値読込部21aは閾値「5」を読み込み、比較命令読込部21bは比較命令[A]<thresholdを読み込む。また、図4に示す条件判定ノード2の場合、閾値読込部21aはカテゴリ値「1」を読み込み、比較命令読込部21bは比較命令[B]==categoryを読み込む。
【0036】
命令変換部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へ出力する。
【0037】
入力データ読込部22は、決定木モデルによる推論の対象となる入力データを読み込み、並列処理部23へ出力する。図4の例では、入力データ読込部22は、データ1~8を読み込む。並列処理部23は、入力された統一命令を用いて、全ての入力データを並列処理し、条件判定結果を生成する。具体的に、並列処理部23は、図5~7の「現在の状態」の欄に示すように、統一命令を用いて、各入力データ1~8について並列処理により条件判定を行う。そして、並列処理部23は、得られた条件判定結果を結果出力部24へ出力する。結果出力部24は、入力された条件判定結果を外部装置などへ出力する。
【0038】
なお、上記の構成において、命令統一部21は命令統一手段の一例であり、入力データ読込部22は取得手段の一例であり、並列処理部23は条件判定手段の一例である。
【0039】
(条件判定処理)
図11は、並列処理部23により実行される条件判定処理のフローチャートである。この処理は、図9に示すプロセッサ12が予め用意されたプログラムを実行することにより実現される。なお、この処理に先立ち、図10に示す命令統一部21は、推論に使用する決定木モデルに含まれる全ての条件判定ノードについて、上記のように比較命令を統一命令に変換する前処理を実施しているものとする。
【0040】
まず、並列処理部23は、全データの現在地(現在地ノード)に根ノードをセットする(ステップS1)。次に、並列処理部23は、葉ノードに到達していないデータがある間、ステップS4~S7の並列処理を繰り返す(ステップS3)。ステップS4~S7の並列処理では、並列処理部23は、i番目のデータであるデータ[i]の現在地ノード番号を「m」にセットする(ステップS4)。これにより、各データについて現在地ノードが設定される。
【0041】
次に、並列処理部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)。
【0042】
こうして、並列処理部23は、ステップS4~S7の並列処理を全データに対して実行する。並列処理部23は、葉ノードに到達していないデータがある限り、決定木モデルにおいて現在地を下層側へ移動しつつ、ステップS4~S7の並列処理を実行し、全てのデータが葉ノードに到達した時点で、処理を終了する。
【0043】
[第2実施形態]
図12は、第2実施形態に係る情報処理装置70の機能構成を示すブロック図である。情報処理装置70は、条件判定ノードと葉ノードを有する決定木に基づいて決定木推論を行う。情報処理装置70は、命令統一手段71と、取得手段72と、条件判定手段73とを備える。命令統一手段71は、決定木に含まれる条件判定ノードが実行する命令を、並列処理に適するように統一して統一命令を生成する。取得手段72は、複数の入力データを取得する。条件判定手段73は、各条件判定ノードについて、統一命令を用いて複数の入力データに対する条件判定を並列処理で行い、条件判定結果を出力する。
【0044】
上記の実施形態の一部又は全部は、以下の付記のようにも記載されうるが、以下には限られない。
【0045】
(付記1)
決定木に含まれる条件判定ノードが実行する命令を、並列処理に適するように統一して統一命令を生成する命令統一手段と、
複数の入力データを取得する取得手段と、
各条件判定ノードについて、前記統一命令を用いて前記複数の入力データに対する条件判定を並列処理で行い、条件判定結果を出力する条件判定手段と、
を備える情報処理装置。
【0046】
(付記2)
前記命令統一手段は、前記決定木に含まれる全ての条件判定ノードが前記統一命令を実行するように、各条件判定ノードの閾値を変更する付記1に記載の情報処理装置。
【0047】
(付記3)
前記統一命令は、前記条件判定ノードにおける判定対象値が、第1の閾値以上であり、かつ、第2の閾値以下であるかを判定する比較命令である付記2に記載の情報処理装置。
【0048】
(付記4)
前記命令統一手段は、前記判定対象値が所定値より小さいかを判定する命令を、前記判定対象値が、マイナス無限大以上であり、かつ、前記所定値より小さい隣接値以下であるかを判定する命令に変換する付記3に記載の情報処理装置。
【0049】
(付記5)
前記命令統一手段は、前記判定対象値が所定値より大きいかを判定する命令を、前記判定対象値が、前記所定値より大きい隣接値以上であり、かつ、プラス無限大以下であるかを判定する命令に変換する付記4に記載の情報処理装置。
【0050】
(付記6)
前記命令統一手段は、前記判定対象値が所定値と一致するかを判定する命令を、判定対象値が、前記所定値以下であり、かつ、前記所定値以上であるかを判定する命令に変換する付記3乃至5のいずれか一項に記載の情報処理装置。
【0051】
(付記7)
前記命令統一手段は、前記判定対象値が所定値以下であるかを判定する命令を、前記判定対象値が、マイナス無限大以上であり、かつ、前記所定値以下であるかを判定する命令に変換する付記3乃至6のいずれか一項に記載の情報処理装置。
【0052】
(付記8)
前記命令統一手段は、前記判定対象値が所定値以上であるかを判定する命令を、前記判定対象値が、前記所定値以上であり、かつ、プラス無限大以下であるかを判定する命令に変換する付記7に記載の情報処理装置。
【0053】
(付記9)
前記条件判定手段は、SIMD方式の並列処理を行う付記1乃至8のいずれか一項に記載の情報処理装置。
【0054】
(付記10)
決定木に含まれる条件判定ノードが実行する命令を、並列処理に適するように統一して統一命令を生成し、
複数の入力データを取得し、
各条件判定ノードについて、前記統一命令を用いて前記複数の入力データに対する条件判定を並列処理で行い、条件判定結果を出力する情報処理方法。
【0055】
(付記11)
決定木に含まれる条件判定ノードが実行する命令を、並列処理に適するように統一して統一命令を生成し、
複数の入力データを取得し、
各条件判定ノードについて、前記統一命令を用いて前記複数の入力データに対する条件判定を並列処理で行い、条件判定結果を出力する処理をコンピュータに実行させるプログラムを記録した記録媒体。
【0056】
以上、実施形態及び実施例を参照して本発明を説明したが、本発明は上記実施形態及び実施例に限定されるものではない。本発明の構成や詳細には、本発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
【符号の説明】
【0057】
12 プロセッサ
21 命令統一部
21a 閾値読込部
21b 比較命令読込部
21c 命令変換部
22 入力データ読込部
23 並列処理部
24 結果出力部
100 情報処理装置
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12