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

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

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

特許7597230決定木生成システム、情報処理装置、サーバ、決定木生成方法およびプログラム
<>
  • 特許-決定木生成システム、情報処理装置、サーバ、決定木生成方法およびプログラム 図1
  • 特許-決定木生成システム、情報処理装置、サーバ、決定木生成方法およびプログラム 図2
  • 特許-決定木生成システム、情報処理装置、サーバ、決定木生成方法およびプログラム 図3
  • 特許-決定木生成システム、情報処理装置、サーバ、決定木生成方法およびプログラム 図4
  • 特許-決定木生成システム、情報処理装置、サーバ、決定木生成方法およびプログラム 図5
  • 特許-決定木生成システム、情報処理装置、サーバ、決定木生成方法およびプログラム 図6
  • 特許-決定木生成システム、情報処理装置、サーバ、決定木生成方法およびプログラム 図7
  • 特許-決定木生成システム、情報処理装置、サーバ、決定木生成方法およびプログラム 図8
  • 特許-決定木生成システム、情報処理装置、サーバ、決定木生成方法およびプログラム 図9
  • 特許-決定木生成システム、情報処理装置、サーバ、決定木生成方法およびプログラム 図10
  • 特許-決定木生成システム、情報処理装置、サーバ、決定木生成方法およびプログラム 図11
  • 特許-決定木生成システム、情報処理装置、サーバ、決定木生成方法およびプログラム 図12
  • 特許-決定木生成システム、情報処理装置、サーバ、決定木生成方法およびプログラム 図13
  • 特許-決定木生成システム、情報処理装置、サーバ、決定木生成方法およびプログラム 図14
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-12-02
(45)【発行日】2024-12-10
(54)【発明の名称】決定木生成システム、情報処理装置、サーバ、決定木生成方法およびプログラム
(51)【国際特許分類】
   G06N 20/20 20190101AFI20241203BHJP
【FI】
G06N20/20
【請求項の数】 10
(21)【出願番号】P 2023544800
(86)(22)【出願日】2021-08-30
(86)【国際出願番号】 JP2021031697
(87)【国際公開番号】W WO2023031992
(87)【国際公開日】2023-03-09
【審査請求日】2024-02-08
(73)【特許権者】
【識別番号】000004237
【氏名又は名称】日本電気株式会社
(74)【代理人】
【識別番号】100109313
【弁理士】
【氏名又は名称】机 昌彦
(74)【代理人】
【識別番号】100149618
【弁理士】
【氏名又は名称】北嶋 啓至
(72)【発明者】
【氏名】エンケタイワン バトニヤマ
【審査官】今城 朋彬
(56)【参考文献】
【文献】米国特許出願公開第2020/0293952(US,A1)
【文献】ONG, Y.J., ET AL.,Adaptive Histogram-Based Gradient Boosted Trees for Federated Learning,arXiv.org [online],2020年12月11日,[retrieved on 2021-11-02], Retrieved from the Internet: <URL: https://arxiv.org/abs/2012.06670>,arXiv:2012.06670
【文献】TIAN, Z., ET AL,FederBoost: Private Federated Learning for GBDT,arXiv.org [online],2020年11月05日,[retrieved on 2021-11-02], Retrieved from the Internet: <URL: https://arxiv.org/abs/2011.02796>,arXiv:2011.02796
(58)【調査した分野】(Int.Cl.,DB名)
G06N 20/00-20/20
(57)【特許請求の範囲】
【請求項1】
複数の情報処理装置と連携して勾配ブースティング決定木を生成する際に、前記複数の情報処理装置それぞれから取得したデータの分布を示す情報に基づいて、ノードの分割条件の候補を分割候補として決定する分割候補決定手段と、
前記複数の情報処理装置に、前記分割候補を出力するデータ出力手段と、
前記分割候補を基にした分割によって生じる子ノードに入るデータ数を調整して前記分割候補を評価した評価結果を、前記複数の情報処理装置から取得するデータ取得手段と、
前記複数の情報処理装置から取得した前記分割候補の評価結果を基に、前記勾配ブースティング決定木を生成する決定木生成手段と
を備えるサーバと、
前記サーバからノードの分割条件の候補を前記分割候補として取得する取得手段と、
保持しているデータのうち、前記分割候補を基にした分割により生じる2つの子ノードそれぞれに入るデータの数を計算するデータ数計算手段と、
前記子ノードに入るデータ数があらかじめ決めた数より少ない場合、前記子ノードに入るデータを調整する調整手段と、
前記調整後の前記2つの子ノードのデータを用いて、前記分割候補を評価する評価手段と、
前記分割候補の評価結果を前記サーバに出力する出力手段と
を備える複数の情報処理装置と
を備える決定木生成システム。
【請求項2】
前記情報処理装置は、
保持しているデータから合成データを生成する生成モデルを用いて、前記合成データを生成するデータ生成手段をさらに備え、
前記調整手段は、前記分割候補を基にした分割により生じる子ノードに入るデータ数があらかじめ決められた数より少ない場合、前記合成データによって前記子ノードのデータを調整する、
請求項1に記載の決定木生成システム。
【請求項3】
前記調整手段は、いずれかの子ノードに入るデータの数が第1基準未満の場合に、前記第1基準の数よりも少ない子ノードに入るデータを削除し、前記第1基準以上でかつ第2基準未満の場合に、前記合成データによって前記子ノードのデータを調整する、
請求項2に記載の決定木生成システム。
【請求項4】
前記調整手段は、いずれか一方の子ノードに入るデータを調整した場合に、2つの子ノードのデータの数の比が維持されるように、もう一方の子ノードに入るデータを前記合成データによって調整する、
請求項2または3に記載の決定木生成システム。
【請求項5】
勾配ブースティング決定木を生成するサーバからノードの分割条件の候補を分割候補として取得する取得手段と、
保持しているデータのうち、前記分割候補を基にした分割により生じる2つの子ノードそれぞれに入るデータ数を計算するデータ数計算手段と、
前記分割候補を基にした分割により生じる子ノードに入るデータ数があらかじめ決めた数より少ない場合、該子ノードに入るデータを調整する調整手段と、
前記調整後の前記2つの子ノードのデータを用いて、前記分割候補を評価する評価手段と、
前記分割候補の評価結果を前記サーバに出力する出力手段と
を備える情報処理装置。
【請求項6】
複数の情報処理装置との連携によって、勾配ブースティング決定木を生成する際に、前記複数の情報処理装置から取得したデータの分布を示す情報に基づいて、ノードの分割条件の候補を分割候補として決定する分割候補決定手段と、
前記複数の情報処理装置に前記分割候補を出力するデータ出力手段と、
前記分割候補を基にした分割により生じる子ノードに入るデータを調整して前記分割候補を評価した評価結果を、前記複数の情報処理装置から取得するデータ取得手段と、
前記複数の情報処理装置から取得した前記分割候補の評価結果を基に、勾配ブースティング決定木を生成する決定木生成手段と
を備え、
前記データ出力手段は、生成した前記勾配ブースティング決定木のデータを出力する、
サーバ。
【請求項7】
勾配ブースティング決定木を生成するサーバからノードの分割条件の候補を分割候補として取得し、
保持しているデータのうち、前記分割候補を基にした分割により生じる2つの子ノードそれぞれに入るデータの数を計算し、
前記分割候補を基にした分割により生じる子ノードに入るデータ数があらかじめ決めた数より少ない場合、該子ノードに入るデータを調整し、
前記調整後の前記2つの子ノードのデータを用いて、前記分割候補を評価し、
前記分割候補の評価結果を前記サーバに出力する、
決定木生成方法。
【請求項8】
複数の情報処理装置との連携によって、勾配ブースティング決定木を生成する際に、前記複数の情報処理装置から取得したデータの分布を示す情報に基づいて、ノードの分割条件の候補を分割候補として決定し、
前記複数の情報処理装置に前記分割候補を出力し、
前記分割候補を基にした分割により生じる子ノードに入るデータを調整して前記分割候補を評価した評価結果を、前記複数の情報処理装置から取得し、
前記複数の情報処理装置から取得した前記分割候補の評価結果を基に、勾配ブースティング決定木を生成し、
生成した前記勾配ブースティング決定木のデータを出力する、
決定木生成方法。
【請求項9】
勾配ブースティング決定木を生成するサーバからノードの分割条件の候補を分割候補として取得する処理と、
保持しているデータのうち、前記分割候補を基にした分割により生じる2つの子ノードそれぞれに入るデータの数を計算する処理と、
前記分割候補を基にした分割により生じる子ノードに入るデータ数があらかじめ決めた数より少ない場合、該子ノードに入るデータを調整する処理と、
前記調整後の前記2つの子ノードのデータを用いて、前記分割候補を評価する処理と、
前記分割候補の評価結果を前記サーバに出力する処理と
をコンピュータに実行させるプログラム。
【請求項10】
複数の情報処理装置との連携によって、勾配ブースティング決定木を生成する際に、前記複数の情報処理装置から取得したデータの分布を示す情報に基づいて、ノードの分割条件の候補を分割候補として決定する処理と、
前記複数の情報処理装置に前記分割候補を出力する処理と、
前記分割候補を基にした分割により生じる子ノードに入るデータ
を調整して前記分割候補を評価した評価結果を、前記複数の情報処理装置から取得する処理と、
前記複数の情報処理装置から取得した前記分割候補の評価結果を基に、勾配ブースティング決定木を生成する処理と、
生成した前記勾配ブースティング決定木のデータを出力する処理と
をコンピュータに実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、決定木生成システムに関するものである。
【背景技術】
【0002】
機械学習によって学習モデルを生成する際に、サーバが複数のクライアントからデータを取得し、取得したデータを用いて学習モデルを生成することがある。また、サーバと、クライアントの連携によって学習モデルを生成する際に、クライアントからサーバには個別のデータを送らない状態で、サーバが学習モデルを生成する連合学習と呼ばれる手法が用いられることがある。
【0003】
連合学習において、サーバ側への情報の漏洩を防ぐ技術の検討が行われている。そのような、情報の漏洩を防ぐ技術としては、例えば、特許文献1のような技術が開示されている。特許文献1記載の機械学習システムは、連合学習によって画像診断用の学習モデルを生成している。
【先行技術文献】
【特許文献】
【0004】
【文献】国際公開第2021/079792号
【発明の概要】
【発明が解決しようとする課題】
【0005】
特許文献1の記載の機械学習システムは、データをグループごとに分類して上で学習モデルの生成に用いている。そのため、グループへの分類の段階でデータの分類が固定化され、柔軟な分割探索ができず、学習モデルの精度を向上することができない場合がある。
【0006】
本発明は、上記の課題を解決するため、データの漏洩を防ぐことができる決定木生成システム等を提供することを目的とする。
【課題を解決するための手段】
【0007】
上記の課題を解決するため、本発明の決定木生成システムは、複数の情報処理装置と連携して勾配ブースティング決定木を生成する際に、複数の情報処理装置それぞれから取得したデータの分布を示す情報に基づいて、ノードの分割条件の候補を分割候補として決定する分割候補決定手段、複数の情報処理装置に、分割候補を出力するデータ出力手段と、分割候補を基にした分割によって生じる子ノードに入るデータを調整して分割候補を評価した評価結果を、複数の情報処理装置から取得するデータ取得手段と、複数の情報処理装置から取得した分割候補の評価結果を基に、勾配ブースティング決定木を生成する決定木生成手段とを備えるサーバと、サーバからノードの分割条件の候補を分割候補として取得する取得手段と、保持しているデータのうち、分割候補を基にした分割により生じる2つの子ノードそれぞれに入るデータの数を計算するデータ数計算手段と、子ノードに入るデータ数があらかじめ決めた数より少ない場合、子ノードに入るデータを調整する調整手段と、調整後の2つの子ノードのデータを用いて、分割候補を評価する評価手段と、分割候補の評価結果をサーバに出力する出力手段とを備える複数の情報処理装置とを備える。
【0008】
本発明の情報処理装置は、勾配ブースティング決定木を生成するサーバからノードの分割条件の候補を分割候補として取得する取得手段と、保持しているデータのうち、分割候補を基にした分割により生じる2つの子ノードそれぞれに入るデータの数を計算するデータ数計算手段と、分割候補を基にした分割により生じる子ノードに入るデータ数があらかじめ決めた数より少ない場合、子ノードに入るデータを調整する調整手段と、調整後の2つの子ノードのデータを用いて、分割候補を評価する評価手段と、分割候補の評価結果をサーバに出力する出力手段とを備える。
【0009】
本発明のサーバは、複数の情報処理装置との連携によって、勾配ブースティング決定木を生成する際に、複数の情報処理装置から取得したデータの分布を示す情報に基づいて、ノードの分割条件の候補を分割候補として決定する分割候補決定手段と、複数の情報処理装置に分割候補を出力するデータ出力手段と、分割候補を基にした分割により生じる子ノードに入るデータを調整して分割候補を評価した評価結果を、複数の情報処理装置から取得するデータ取得手段と、複数の情報処理装置から取得した分割候補の評価結果を基に、勾配ブースティング決定木を生成する決定木生成手段とを備え、データ出力手段は、生成した勾配ブースティング決定木のデータを出力する。
【0010】
本発明の決定木生成方法は、勾配ブースティング決定木を生成するサーバからノードの分割条件の候補を分割候補として取得し、保持しているデータのうち、分割候補を基にした分割により生じる2つの子ノードそれぞれに入るデータの数を計算し、分割候補を基にした分割により生じる子ノードに入るデータ数があらかじめ決めた数より少ない場合、子ノードに入るデータを調整し調整後の2つの子ノードのデータを用いて、分割候補を評価し、分割候補の評価結果をサーバに出力する。
【0011】
本発明のプログラム記録媒体は、勾配ブースティング決定木を生成するサーバからノードの分割条件の候補を分割候補として取得する処理と、保持しているデータのうち、分割候補を基にした分割により生じる2つの子ノードそれぞれに入るデータの数を計算する処理と、分割候補を基にした分割により生じる子ノードに入るデータ数があらかじめ決めた数より少ない場合、子ノードに入るデータを調整する処理と、調整後の2つの子ノードのデータを用いて、分割候補を評価する処理と、分割候補の評価結果をサーバに出力する処理とをコンピュータに実行させるプログラムを記録する。
【発明の効果】
【0012】
本発明によると、データの漏洩を防ぐことができる。
【図面の簡単な説明】
【0013】
図1】本発明の第1の実施形態の構成の概要を示す図である。
図2】本発明の第1の実施形態のサーバの構成の例を示す図である。
図3】本発明の第1の実施形態の情報処理装置の構成の例を示す図である。
図4】本発明の第1の実施形態のサーバの動作フローの例を示す図である。
図5】本発明の第1の実施形態の情報処理装置の動作フローの例を示す図である。
図6】本発明の第1の実施形態の決定木生成システムの動作フローの例を示す図である。
図7】本発明の第1の実施形態の決定木生成システムの動作フローの例を示す図である。
図8】本発明の第1の実施形態におけるデータ数の調整の例を模式的に示す図である。
図9】本発明の第2の実施形態の構成の概要を示す図である。
図10】本発明の第2の実施形態の情報処理装置の構成の例を示す図である。
図11】本発明の第2の実施形態の情報処理装置の動作フローの例を示す図である。
図12】本発明の第2の実施形態におけるデータ数の調整の例を模式的に示す図である。
図13】本発明の第2の実施形態におけるデータ数の調整の例を模式的に示す図である。
図14】本発明の実施形態の他の構成の例を示す図である。
【発明を実施するための形態】
【0014】
(第1の実施形態)
本発明の第1の実施形態について図を参照して詳細に説明する。図1は、本実施形態の決定木生成システムの構成の概要を示す図である。本実施形態の決定木生成システムは、サーバ10と、複数の情報処理装置20を備えている。サーバ10と、それぞれの情報処理装置20は、ネットワークを介して接続されている。なお、複数の情報処理装置20の数は特に制限されず、必要に応じて適宜変更されうる。
【0015】
決定木生成システムは、サーバ10が複数の情報処理装置20との連合学習によって勾配ブースティング決定木を生成する情報処理システムである。決定木生成システムでは、サーバ10が中央サーバ、情報処理装置20がクライアントとして動作する。
【0016】
サーバ10は、決定木を生成する際に、ノードを分割する条件の候補を情報処理装置20に出力し、各情報処理装置20から各条件の評価結果を取得する。各情報処理装置20は、保持しているデータを用いて各条件の評価を行う。サーバ10は、各情報処理装置20から取得する評価結果を基に決定木を生成する。すなわち、サーバ10は、情報処理装置20がそれぞれ保持しているデータに基づいて決定木を生成する。サーバ10は情報処理装置20から個々のデータを取得せずに決定木を生成するため、決定木生成システムは、情報処理装置20から個別のデータがサーバ10側の漏洩を抑制することができる。
【0017】
サーバ10の構成について説明する。図2は、本実施形態のサーバ10の構成の例を示す図である。サーバ10は、予測値計算部11と、分割区間決定部12と、分割候補決定部13と、決定木生成部14と、データ取得部15と、データ出力部16と、データ記憶部17を備えている。
【0018】
予測値計算部11は、各情報処理装置20が保持しているデータについて、目的変数の所定の統計値と、所定の統計値の計算に用いたデータ数を、情報処理装置20それぞれから取得する。所定の統計値は、各情報処理装置20が保持しているデータのうち、目的変数とされるデータについて、あらかじめ設定された統計量として計算した値である。
【0019】
回帰モデルによる決定木を生成する場合には、所定の統計値は、例えば、目的変数の平均値である。所定の統計値は、平均値以外の統計量として計算されたものであってもよい。分類モデルによる決定木を生成する場合には、所定の統計値は、カテゴリーごとに計算される。カテゴリーとは、データの分類を行った際の分類先の区分のことをいう。カテゴリーは、決定木を生成する際に作業者によって設定される。2値分類の場合は、予測値計算部11は、片方の確率を0、もう一方の確率を1として、それぞれのカテゴリーに属するデータ数の重みをかけたものを所定の統計値として計算する。3値以上の場合には、予測値計算部11は、1つ目のカテゴリーと、その他に分け、2値分類として所定の統計値を計算し、その他について同様に分割することで所定の統計値を計算する。
【0020】
予測値計算部11は、所定の統計値と、データ数を取得すると、全ての情報処理装置20についての統計値を、予測値の初期値として計算する。回帰モデルにより決定木を生成する場合に、所定の統計値が平均値であるとき、予測値計算部11は、情報処理装置20ごとの平均値に、データ数の重みをかけ、全ての情報処理装置20のデータの平均値を計算する。分類モデルによる決定木を生成する場合は、予測値計算部11は、カテゴリーごとの予測値を計算する。予測値計算部11は、各情報処理装置20から取得したカテゴリーごとの所定の統計値に、各情報処理装置20が保持しているデータ数の重みをかけ、全ての情報処理装置20における平均値を計算する。予測値計算部11は、データ出力部16を介して、全ての情報処理装置20のデータの平均値を予測値の初期値として各情報処理装置20に出力する。予測値の初期値は、一部のデータを用いて計算された値が用いられてもよい。例えば、一部の情報処理装置20が保持しているデータまたはサーバ10の管理者が管理しているデータを用いて目的変数の所定の統計値が計算され、計算された所定の統計値が予測値の初期値としてサーバ10と各情報処理装置20の間で共有されていてもよい。
【0021】
分割区間決定部12は、各特徴量の分割区間を決定する。分割区間決定部12は、データ取得部15を介して各情報処理装置20から取得する各特徴量の最大値と最小値を基に、全ての情報処理装置20における最大値と最小値を抽出する。各情報処理装置20から取得する各特徴量の最大値と最小値には、補正値が付加されている。補正値は、最大値と最小値の値がサーバ10に漏洩しないように、各情報処理装置20によって実際の最大値と最小値に付加されている。補正値の付加方法については、後で説明する。分割区間決定部12は、補正値が付加された最大値と、最小値を実際の最大値と最小値とみなして処理を行う。分割区間決定部12は、各情報処理装置20から送られてきた各特徴量の最大値と最小値を基に、各特徴量のデータ範囲を抽出する。
【0022】
分割区間決定部12は、各特徴量について、全ての情報処理装置20における最大値と最小値の間を、あらかじめ設定された区間数となるように分割し、区間の境目の値を分割点として計算する。分割区間決定部12は、データ出力部16を介して、分割点の情報を各情報処理装置20に出力する。分割区間は、特徴量ごとにあらかじめ設定されていてもよい。例えば、作業者によって特徴量ごとに分割区間が設定され、設定された分割区間の情報が、サーバ10と各情報処理装置20の間であらかじめ共有されていてもよい。
【0023】
分割候補決定部13は、分割候補を決定する。分割候補は、決定木を生成する際に、ノードを2個の子ノードに分割するときのノードの分割条件の候補である。分割候補は、対象となる特徴量と、分割の条件によって構成される。回帰モデルの場合には、分割の条件は、2つの子ノードに分割する際の閾値によって設定される。また、分類モデルの場合には、分割の条件は、各子ノードに割り当てられた属性によって設定される。
【0024】
分割候補決定部13は、各情報処理装置20から送られてくるデータの分布を示す情報を基に、分割候補を決定する。分割候補決定部13は、データの分布を示す情報を、分割区間ごとのデータに基づいたヒストグラムとして取得する。分割候補決定部13は、データの分布を示す情報として、例えば、hのヒストグラムとして取得する。hは、損失関数の2階微分の値である。損失関数の2階微分の値であるhについては、後で説明する。分割候補決定部13は、各情報処理装置20から送られてくる損失関数の2階微分の値であるhのヒストグラムを分割区間ごとに足し合わせ、全体のヒストグラムを生成する。分割候補決定部13は、全体のヒストグラムを生成すると、各分割区間の重みが均等になるように分割候補を決定する。各分割区間の重みが均等とは、均等であるとみなせればよく、完全に均等でなくてもよい。分割候補の決定は、例えば、weighted quantile sketchアルゴリズムを用いて行うことができる。分割候補決定部13は、データ出力部16を介して、各情報処理装置20に分割候補のデータを出力する。分割候補決定部13は、分割候補のデータとして、対象となる特徴量と、分割の条件の情報を出力する。分割の条件は、回帰モデルの場合は、閾値を用いて設定され、分類モデルの場合は、各カテゴリーに割り当てられている属性を用いて設定される。
【0025】
決定木生成部14は、各情報処理装置20から取得する分割候補の評価結果を基に、決定木を生成する。決定木生成部14は、ノードを子ノードに分岐する前後で、例えば、以下に数1として示す式においてゲインが最大となる分割候補を選択することで決定木を生成する。
[数1]
【0026】
数1において、giは、i番目のデータにおける損失関数の1階微分の値を示す。また、hiは、i番目のデータにおける損失関数の1階微分の値を示す。λとγは、定数である。式1のかっこ内の1項目は、分割によって生じる左右の子ノードのうち、左側の子ノードに入るデータから計算される。数1のかっこ内の2項目は、分割によって生じる左右の子ノードのうち、右側の子ノードに入るデータから計算される。また、式1のかっこ内の3項目は、分岐前のデータから計算される。
【0027】
ここで回帰モデルにおける損失関数は、例えば、以下に数2として示す式で表される。
[数2]
【0028】
数2の損失関数では、2乗誤差が目的変数として用いられている。数2において、yiは、正解値を示す。
【0029】
数2において1階微分を行うと
g = yi - yi (t-1)
となり、正解値と、1回前の予測値との差になる。
【0030】
また、式2において、2階微分を行うと
hi = 1
となり、hiの和は、データ数となる。よって、回帰モデルの場合、hのヒストグラムは、各分割区間におけるデータ数の分布を示すヒストグラムとなる。
【0031】
分類モデルの場合には、決定木生成部14は、ロジスティック回帰を用いて損失関数を計算する。分類モデルの場合における損失関数の式は、例えば、以下の数3ように示される。
[数3]
【0032】
また、数3について、1階微分、2階微分をそれぞれ行うと、以下の数4、数5の式のようになる。
[数4]
【0033】
[数5]
【0034】
分類の場合には、hiは、1にならない。
【0035】
データ取得部15は、各情報処理装置20からデータを取得する。データ取得部15は、各情報処理装置20から、目的変数の所定の統計値、データ数、データの最大値および最小値、各分割区間hのヒストグラム、並びに評価結果のデータを取得する。
【0036】
データ出力部16は、各情報処理装置20にデータを出力する。データ出力部16は、予測値の初期値、特徴量の分割点、分割候補、および生成が完了している部分の決定木のデータを出力する。また、決定木の生成が完了したとき、データ出力部16は、決定木のデータを情報処理装置20またはネットワークを介して接続されている他の情報処理装置に出力する。
【0037】
データ記憶部17は、決定木の生成の処理に用いる各データを保存する。データ記憶部17は、決定木生成部14が生成した決定木のデータを保存する。データ記憶部17は、予測値計算部11が計算した予測値の初期値、分割区間決定部12が計算した分割点、および分割候補決定部13が計算した分割候補のデータを保存する。また、データ記憶部17は、データ取得部15が各情報処理装置20から取得した、目的変数の所定の統計値、データ数、データの最大値および最小値、各分割区間のヒストグラム、並びに評価結果のデータを保存する。
【0038】
情報処理装置20の構成について説明する。図3は、本実施形態の情報処理装置20の構成の例を示す図である。情報処理装置20は、統計値計算部21と、データ範囲計算部22と、データ数計算部23と、データ調整部24と、評価部25と、取得部26と、出力部27と、データ生成部28と、記憶部29を備える。
【0039】
情報処理装置20の統計値計算部21は、保持しているデータについて、所定の統計値を計算する。決定木が回帰モデルに関する場合、統計値計算部21は、目的変数の平均値を所定の統計値として計算する。また、決定木が分類モデルに関し、2値分類である場合、統計値計算部21は、2値の片方の確率を0、もう一方の確率を1とし、それぞれに属するデータ数の割合で重みをかけた値を所定の統計値として計算する。3値以上である場合、統計値計算部21は、1つ目のカテゴリーとその他のカテゴリーに分け、2値分類の場合と同様に統計値を計算する。統計値計算部21、その他のカテゴリーについても、同様に分割して各カテゴリーの統計値を計算する。統計値計算部21は、出力部27を介して、計算した所定の統計値と、データ数をサーバ10に出力する。
【0040】
データ範囲計算部22は、保持しているデータを用いて、各特徴量の範囲を計算する。データ範囲計算部22は、例えば、保持しているデータを用いて、各特徴量の最大値と最小値を抽出する。データ範囲計算部22は、抽出した最大値と最小値に補正値を付加する。補正値は、最大値と最小値の実際の値がサーバ10に漏洩しないように付加される。
【0041】
データ範囲計算部22は、例えば、正の乱数値を生成し、生成した乱数値を用いて最大値に加算し、補正した最大値の値を計算することで最大値に補正値を付加する。また、データ範囲計算部22は、最小値から正の乱数値を減算し、補正した最小値の値を計算することで最小値に補正値を付加する。データ範囲計算部22は、正の乱数値を、例えば、ガウシアンノイズを用いて生成する。ガウシアンノイズの標準偏差は、情報処理装置20ごとに設定されている。データ範囲計算部22は、出力部27を介して、補正した最大値と最小値の値をサーバ10に出力する。また、補正値は、乱数値に代えて、情報処理装置20ごとにあらかじめ設定された値またはあらかじめ設定された係数を用いて計算された値が用いられてもよい。例えば、情報処理装置20ごとに複数の補正値が設定され、また、補正値は、情報処理装置20ごとにあらかじめ設定された値の中からランダムに選択されるようにしてもよい。
【0042】
データ数計算部23は、各分割区間に入るデータの分布を基にしたヒストグラムを生成する。データ数計算部23は、取得部26を介してサーバ10から取得した分割点の情報を基に、特徴量ごとに各データがどの分割に入るかを判定する。データ数計算部23は、各分割区間に入るデータごとに、損失関数の2階微分の値であるhの和を計算する。データ数計算部23は、各分割区間のhの和の分布を示すヒストグラムをhのヒストグラムとして生成する。回帰モデルに関する決定木を生成する場合には、生成されるヒストグラムは、各分割区間に入るデータ数のヒストグラムとなる。データ数計算部23は、生成したヒストグラムをサーバ10に出力する。
【0043】
データ調整部24は、分割候補を基にした分割によって生じする子ノードそれぞれに入るデータを調整する。データを調整するとは、子ノードに入るデータの数があらかじめ設定された基準より少ない場合に、サーバ10へのデータの漏洩を防ぐために行う処理のことをいう。データ調整部24は、例えば、子ノードにデータ生成部28によって生成された合成データを補充することで子ノードのデータを調整する。データ調整部24は、子ノードのデータを合成と置き換えることで、子ノードのデータを調整してもよい。
【0044】
データ調整部24は、所持しているデータのうち、分割候補を基にした分割によって生じる子ノードそれぞれに入るデータの数を計算する。いずれかの子ノードに入るデータ数があらかじめ設定された値より少ないとき、データ調整部24は、あらかじめ設定されたデータ数になるようにデータを調整する。データ調整部24は、データ生成部28が生成した合成データのうち、データ数が少ない子ノードの条件を満たす合成データを用いて、データを調整する。
【0045】
評価部25は、サーバ10から送られてくる分割候補の評価値を計算することで分割候補を評価する。評価部25は、上述した数2または数3によって示される損失関数の1階微分と、2階微分の値を計算する。また、評価部25は、分割候補を基にした分割によって生じる子ノードごとに、損失関数の1階微分と、2階微分の和をそれぞれ計算する。評価部25は、出力部27を介して、損失関数の1階微分の和と、2階微分の和の値をサーバ10に出力する。
【0046】
取得部26は、サーバ10から決定木の生成に関する処理に用いる各データを取得する。取得部26は、サーバ10から、目的変数の予測値の初期値、特徴量の分割区間を示す分割点の情報、分割候補および生成された決定木のデータを取得する。
【0047】
出力部27は、決定木の生成に関する処理に用いる各データをサーバ10に出力する。出力部27は、保持しているデータの所定の統計値とデータ数、各特徴量の補正した最大値と最小値、分割区間ごとのデータ数のヒストグラムおよび分割候補の評価結果をサーバ10に出力する。
【0048】
データ生成部28は、データ生成モデルを用いて、保持しているデータから新たなデータを合成データとして生成する。データ生成モデルは、保持しているデータを用いて、あらかじめ訓練されている。データ生成モデルは、他の情報処理装置が保持しているデータ用いて、あらかじめ訓練されたものであってもよい。生成モデルには、例えば、CTGAN(Conditional Tabular Generative Adversarial Networks)を用いることができる。生成モデルは、生成器と、判別器を交互に訓練し、生成器が作った合成データを判別器が実データと区別ができないように訓練することで生成されている。生成モデルは、実データのデータ範囲に含まれる合成データを生成できるものであれば、他の手法を用いて生成されたものであってもよい。ここで実データとは、情報処理装置20があらかじめ保持しているデータのことをいう。
【0049】
記憶部29は、決定木の生成に関する処理に用いる各データを保存している。記憶部29は、決定木の生成に用いるデータを保存している。また、記憶部29は、取得部26がサーバ10から取得した、目的変数の予測値の初期値、特徴量の分割区間を示す分割点の情報、分割候補および生成された決定木のデータを保存している。また、記憶部29は、各部位が計算した保持しているデータの所定の統計値とデータ数、各特徴量の補正した最大値と最小値、損失関数の2階微分の値を示すhのヒストグラムおよび分割候補の評価結果を保存している。
【0050】
本実施形態の決定木生成システムの動作について説明する。以下では、回帰モデルによる決定木を生成する場合を例に説明する。図4は、サーバ10の動作フローの例を示す図である。図5は、情報処理装置20の動作フローの例を示す図である。また、図6および図7は、決定木生成システムの動作フローの例を示すシーケンス図である。図4および図5と、図6および図7の動作ステップの番号は、互いに対応している。
【0051】
各情報処理装置20の統計値計算部21は、保持しているデータを用いて、目的変数の所定の統計値を計算する(ステップS31)。決定木が回帰モデルに関する場合、統計値計算部21は、目的変数の所定の統計値として目的変数の平均値を計算する。所定の統計値を計算すると、統計値計算部21は、出力部27を介して、計算した所定の統計値と、データ数をサーバ10に出力する(ステップS31)。
【0052】
サーバ10のデータ取得部15は、クライアントの情報処理装置20から、目的変数の所定の統計値と、データ数を取得する(ステップS11)。目的変数の統計値と、データ数を取得すると、サーバ10の予測値計算部11は、所定の統計値とデータ数から目的変数の予測値の初期値を計算する(ステップS12)。予測値計算部11は、情報処理装置20ごとの所定の統計値にデータ数を重みとしてかけ、全体の平均値を計算することで、目的変数の予測値の初期値を計算する。予測値を計算すると、予測値計算部11は、データ出力部16を介して、計算した予測値を各情報処理装置20に出力する(ステップS13)。
【0053】
情報処理装置20のデータ範囲計算部22は、各特徴量について、最大値と最小値を抽出する。データ範囲計算部22は、正の乱数値を生成し、生成した乱数値を用いて最大値に加算し、補正された最大値の値を計算する。データ範囲計算部22は、最小値から正の乱数値を減算し、補正された最小値の値を計算する(ステップS33)。補正された最大値と最小値を計算すると、データ範囲計算部22は、出力部27を介して、補正された最大値と最小値を各特徴量のデータ範囲としてサーバ10に出力する(ステップS34)。
【0054】
サーバ10のデータ取得部15は、クライアントの情報処理装置20から、各特徴量の補正された最大値と最小値を、各特徴量のデータの範囲として取得する(ステップS14)。
【0055】
各特徴量のデータ範囲の情報を取得すると、サーバ10の分割区間決定部12は、各特徴量の分割点を計算する(ステップS15)。分割区間決定部12は、各情報処理装置20から送られてきたデータ範囲を基に、全ての情報処理装置20でのデータ範囲を特定する。分割区間決定部12は、各特徴量について、全ての情報処理装置20でのデータ範囲を、あらかじめ設定された区間数となるように分割し、区間の境目の値を分割点として計算する。分割区間決定部12は、データ出力部16を介して、分割点を示す情報を分割区間の情報として各情報処理装置20に出力する(ステップS15)。
【0056】
情報処理装置20の取得部26は、分割点のデータを取得する(ステップS35)。分割点のデータが取得されると、データ数計算部23は、各特徴量について各分割区間に入るデータを用いて、損失関数の2階微分の値を示すhのヒストグラムを生成する(ステップS36)。ヒストグラムを生成すると、データ数計算部23は、出力部27を介して、生成したヒストグラムをサーバ10に出力する(ステップS37)。
【0057】
サーバ10のデータ取得部15は、ヒストグラムのデータを取得する(ステップS17)。ヒストグラムのデータが取得されると、サーバ10の分割候補決定部13は、取得したヒストグラムを基に、分割候補を計算する(ステップS18)。分割候補を決定する際に、分割候補決定部13は、分割した際に生じする2つの子ノードに入るデータ数がほぼ均等になるように、ノードを分割する条件の候補を決定する。分割候補を決定すると、分割候補決定部13は、データ出力部16を介して、分割候補のデータを各情報処理装置20に出力する(ステップS19)。
【0058】
情報処理装置20の取得部26は、分割候補のデータを取得する(ステップS38)。分割候補のデータが取得されると、データ数計算部23は、分割候補のデータを基に、分割によって生じる子ノードそれぞれに入るデータ数を計算する(ステップS39)。
【0059】
いずれかの子ノードに入るデータ数があらかじめ設定された値より少ないとき(ステップS40でNo)、データ調整部24は、データ生成部28が生成したデータを用いて、あらかじめ設定されたデータ数になるようにデータを調整する(ステップS41)。例えば、あらかじめ設定された数がk個であったとき、いずれかの子ノードに入るデータ数がk個以下である場合に、データ調整部24は、データ数がk個になるようにデータ生成部28が生成したデータを用いて、データ数がk個未満の子ノードに入るデータを補充する。データ調整部24は、データ数がk以上になるように調整すればよく、調整後のデータ数は、k+1個以上であってもよい。
【0060】
分割によって生じる子ノードのいずれもデータ数がk以上で、基準を満たしている場合には(ステップS40でYes)、評価部25は、データ数の調整は行わない。
【0061】
子ノードに入るデータ数の計算または、データ数の計算とデータ数の調整を行うと、評価部25は、損失関数の1階微分の値gと、2階微分の値hを計算する。gとhを計算すると、評価部25は、各ノードに入るデータについて、gとhの和を計算する(ステップS42)。評価部25は、出力部27を介して、損失関数の1階微分と、2階微分の値をサーバ10に出力する(ステップS43)。1回目の損失関数の評価のとき、評価部25は、前回の予測値として、サーバ10が計算した最初の予測値を用いる。
【0062】
サーバ10のデータ取得部15は、分割候補についてのgの和とhの和を評価結果として取得する(ステップS20)。各情報処理装置20から分割候補についてのgの和とhの和を評価結果として取得すると、決定木生成部14は、各情報処理装置20から取得する評価結果を基に、勾配ブースティング法によって決定木を生成する(ステップS21)。
【0063】
決定木を生成すると、決定木生成部14は、終了条件を満たしているかを確認する(ステップS22)。決定木生成部14は、木の層、また、葉ノードの数があらかじめ設定された数を満たし、かつ、生成された木の数があらかじめ設定された数になっている場合に、終了条件を満たしていると判断する。終了条件を満たしていないとき(ステップS23でNo)、サーバ10は、ステップS14からの動作を繰り返す。終了条件を満たしているとき、(ステップS23でYes)、決定木生成部14は、データ出力部16を介して、各情報処理装置20に決定木の生成が完了したことを示す情報を出力して、決定木の終了の動作を終了する。
【0064】
決定木の生成が終了すると、決定木生成部14は、生成した決定木のデータをデータ記憶部17に保存する。また、生成した決定木のデータを、決定木のデータを用いる情報処理装置に出力する。
【0065】
ステップS43において、分割候補のgの和とhの和を出力すると、情報処理装置20は、サーバ10から送られてくる情報を基に、決定木の生成の処理が完了したかを確認する。情報処理装置20は、決定木の生成が完了したことを示す情報を受け取ると(ステップS44でYes)、決定木の生成の処理を終了する。情報処理装置20は、決定木の生成が完了していないことを示す情報を受け取ると(ステップS44でNo)、ステップ33からの動作を繰り返す。
【0066】
図8は、分割候補に基づいて生じた子ノードに入るデータの調整方法を模式的に示す図である。図8の(a)は、左側の子ノードに1個、右側の子ノードに4個のデータが入る例を示している。図8の(a)の状態では、評価部25は、1個のデータのみでgの和を計算し、hの和が1の情報とともにgの和の情報をサーバ10に出力する。そのため、サーバ10は、1個のデータに由来するgの値を取得することができる。このとき、他の情報が加わったとき、サーバ10は、gの値の元となるデータを特定できる可能性が生じる。
【0067】
一方で、図8の(b)は、データ生成部28が生成したデータ3個が合成データとして左側の子ノードに加えられている。図8の(b)の状態では、評価部25は、4個のデータのgの和と、hの和が4である情報をサーバ10に出力する。そのため、サーバ10は、個別のデータのgを特定することはできない。このように、データ数が少ないときに、データ生成部28によって生成した合成データを用いて、データが少ない子ノードのデータを補充することで、データの漏洩を防ぐことができる。
【0068】
上記の説明では、分割によって生じる子ノードに入るデータ数があらかじめ設定された基準より少ない場合に、データ数が基準より少ない子ノード側のデータを、合成データを用いて補充する例について説明した。そのような構成に代えて、データ調整部24は、データ数が基準よりも少ない子ノード側の調整と併せて、もう一方の子ノードのデータを調整してもよい。例えば、データ調整部24は、一方の子ノードのデータ数が基準よりも少ないとき、データの補充の前後で、2個の子ノードのデータ数の比が同一となるように、両方の子ノードに合成データを補充してもよい。また、データ調整部24は、一方の子ノードのデータ数が基準よりも少ないとき、データ数が少ない子ノードに補充したデータと同数の合成データをもう一方の子ノードに補充してもよい。また、データ調整部24は、一方の子ノードのデータ数が基準よりも少ないとき、2個の子ノードのデータ数の比に基づいて、子ノードに補充するデータ数を決定してもよい。このように、両方のノードにデータ生成部28で生成した合成データを加えることで、合成データを加えたことによる評価結果への影響を抑制することができる。
【0069】
また、分割によって生じる子ノードに入るデータ数があらかじめ設定された基準より少ない場合に、データ調整部24は、基準より少ない子ノードに入るデータを合成データと置き換えてもよい。基準より少ない子ノードに入るデータを合成データに置き換えることで、実データの基づいたデータのサーバ10への漏洩を防ぐことができる。
【0070】
本実施形態の決定木生成システムの情報処理装置20は、分割によって生じする子ノードに入るデータ数があらかじめ設定された数より少なかった場合に、データ生成部28で生成した合成データを用いてデータを調整している。分割によって生じする子ノードに入るデータ数があらかじめ設定された数より少ない場合、子ノードに入るデータの特徴から、データの漏洩が起こる場合がある。これに対して、データを調整し、データの漏洩を防ぐために行う処理することで、データの漏洩が起こる可能性を下げることができる。
【0071】
情報処理装置20は、分割候補の評価結果として、損失関数の1階微分の和と、2階微分の和をサーバ10に送信している。子ノードに入るデータ数が少ない場合に、例えば、実データを用いて計算した損失関数の1階微分と2階微分の値をサーバ10に送ると送られるデータからデータの特徴が特定できる場合がある。これに対して、情報処理装置20は、データ数が少ない場合に、例えば、生成した合成データを用いて評価した結果を、サーバ10に出力することで、データの内容がサーバ10側に漏れる可能性を抑制することができる。また、本実施形態の決定木生成システムは、クラスタリングによるグループ化などを行わないため、柔軟に分割候補を設定して評価を行うことができるため、決定木として生成される学習モデルの精度を向上することができる。そのため、本実施形態の決定木生成システムは、モデルの精度を維持しつつ、情報の漏洩を防ぐことができる。
【0072】
サーバとクライアントの連合学習によって学習モデルを生成する際に、高いセキュリティレベルが要求される場合には、秘匿性の高いハードウェアを用いて学習モデルの生成が行われる。しかし、そのようなハードウェアは、構成が複雑であり、また、高価である。一方で、本実施形態の決定木生成システムは、情報処理装置20におけるソフトウェア的な処理によってデータを調整することでサーバ10側のデータの漏洩を防ぐことができる。よって、本実施形態の決定木生成システムは、複雑な構成の装置を必要とすることなく、情報の漏洩を防ぐことができる。
【0073】
(第2の実施形態)
本発明の第2の実施形態について、図を参照して詳細に説明する。図9は、本実施形態の決定木生成システムの構成の概要を示す図である。本実施形態の決定木生成システムは、サーバ10と、複数の情報処理装置30を備えている。本実施形態のサーバ10の構成と機能は、第1の実施形態のサーバ10と同様である。
【0074】
第1の実施形態の決定木生成システムは、いずれかの子ノードに入るデータ数があらかじめ設定された数より少なかったときに、クライアントがデータ生成モデルを用いて生成されたデータによってデータ数の調整を行っている。そのような構成に対し、本実施形態の決定木生成システムは、いずれかの子ノードに入るデータ数があらかじめ設定された数より少なかったときに、データが少数の子ノードに入るデータを削除する処理を行うことを特徴とする。
【0075】
情報処理装置30の構成について説明する。図10は、本実施形態の情報処理装置30の構成の例を示す図である。情報処理装置30は、統計値計算部21と、データ範囲計算部22と、データ数計算部23と、データ調整部31と、評価部25と、取得部26と、出力部27と、データ生成部28と、記憶部29を備えている。
【0076】
情報処理装置30は、データ調整部31の機能のみが情報処理装置20と異なる。情報処理装置30において、統計値計算部21、データ範囲計算部22、データ数計算部23、評価部25、取得部26、出力部27、データ生成部28および記憶部29の構成と機能は、情報処理装置20の同名称の部位とそれぞれ同様である。
【0077】
データ調整部31は、分割候補を基にした分割によって生じる子ノードそれぞれに入るデータを調整する。データ調整部31は、子ノードに入るデータの削除または子ノードへの合成データの補充を行うことで子ノードに入るデータを調整する。データ調整部31は、子ノードのデータを合成と置き換えることで、子ノードのデータを調整してもよい。データ調整部31は、分割候補を基にした分割によって生じる子ノードそれぞれに入るデータ数を計算する。いずれかの子ノードに入るデータ数があらかじめ設定された値より少ないとき、データ調整部31は、データ数が設定された数より少ない子ノードのデータを調整する。
【0078】
分割候補を基にした分割によって生じる子ノードに入るデータ数がm個未満(mは正の整数)のとき、データ調整部31は、m個未満の子ノードに入るデータを削除する。データが削除されることで、m個未満のデータ数の子ノードに入るデータは、0になる。mの値は、あらかじめ設定されている。mの値は、例えば、m=1のように、0に近い値として設定される。mの値は、1以外であってもよい。いずれかの子ノードに入るデータがm個以上、n個未満(nは正の整数)のとき、データ調整部31は、データ生成部28が生成した合成データを用いて、子ノードのデータ数がn個以上となるように、子ノードのデータを調整する。すなわち、mを第1の基準の値、nを第2の基準の値とすると、いずれかの子ノードに入るデータ数が第1の基準未満の場合、データ調整部31は、データ数が第1の基準未満の子ノードに入るデータを削除する。また、いずれかの子ノードに入るデータ数が第1の基準以上かつ第2の基準未満の場合、データ調整部31は、データ数が第2の基準未満の子ノードに合成データを補充することでデータを調整する。
【0079】
本実施形態の決定木生成システムの動作について説明する。図11は、本実施形態の情報処理装置30の動作フローの例を示す図である。サーバ10は、第1の実施形態の図4と同様の動作を行う。
【0080】
本実施形態の決定木生成システムにおいて、情報処理装置30のステップS39までの動作、すなわち、分割候補の情報を基に、データ数計算部23が子ノードに入るデータ数を計算するまでの動作は、第2の実施形態と同様である。そのため、ステップS51以降のデータ調整部31が、子ノードのデータを調整する動作から説明する。
【0081】
データ数計算部39の計算結果において、いずれかの子ノードに入るデータ数がm個未満である場合(ステップS51でYes)、データ調整部31は、データがm個未満の子ノードに入るデータを削除することで子ノードのデータを調整する(ステップS52)。すなわち、データ調整部31は、データ数がm個未満の子ノードのデータ数を0個にする。このとき、データ調整部31は、分割によって生じるもう一方の子ノードについては、データの調整を行わない。
【0082】
データ数がm個以上、n個未満である場合(ステップS53でYes)、データ調整部31は、データ生成部28が生成したデータを用いて、データ数がn個以上になるようにデータを補充することで子ノードのデータを調整する(ステップS54)。データ調整部31、データ数がn以上になるように調整すればよく、調整後のデータ数は、n+1個以上であってもよい。ステップS52またはステップS54において、子ノードのデータの調整が行われると、第1の実施形態と同様に、ステップS42の評価部25におけるgとhの計算以降の動作が行われることで、決定木の生成に関する処理が進められる。また、ステップS53において、データ数がn個以上である場合にも、ステップS42以降の動作が行われる。
【0083】
本実施形態の情報処理装置30は、分割によって生じる子ノードに入るデータ数があらかじめ設定された第1の基準よりも少ない場合に、データ数が少ない子ノードに入るデータを削除している。そのように処理することで、情報処理装置30からサーバ10に情報が伝わることを防ぐことができる。また、分割によって生じる子ノードに入るデータ数が第1の基準以上ではあるが、第2の基準未満の場合、情報処理装置30は、データ生成部28によって生成したデータによって、データを増やすことでデータを調整している。このように、本実施形態の決定木生成システムは、子ノードに入るデータ数によって、データの削除または補充のいずれかを行うことで、決定木の精度を維持しつつ、データのサーバ10への漏洩を防ぐことができる。
【0084】
上記の各実施形態のおけるサーバ10、情報処理装置20および情報処理装置30における各処理は、コンピュータプログラムをコンピュータで実行することによって実現することができる。図14は、サーバ10、情報処理装置20および情報処理装置30における各処理を行うコンピュータプログラムを実行するコンピュータ200の構成の例を示したものである。コンピュータ200は、CPU(Central Processing Unit)201と、メモリ202と、記憶装置203と、入出力I/F(Interface)204と、通信I/F205を備えている。
【0085】
CPU201は、記憶装置203から各処理を行うコンピュータプログラムを読み出して実行する。CPU201は、複数のCPUの組み合わせによって構成されていてもよい。メモリ202は、DRAM(Dynamic Random Access Memory)等によって構成され、CPU201が実行するコンピュータプログラムや処理中のデータが一時記憶される。記憶装置203は、CPU201が実行するコンピュータプログラムを記憶している。記憶装置203は、例えば、不揮発性の半導体記憶装置によって構成されている。記憶装置203には、ハードディスクドライブ等の他の記憶装置が用いられてもよい。入出力I/F204は、作業者からの入力の受付および表示データ等の出力を行うインタフェースである。通信I/F205は、サーバまたは他の情報処理装置と通信を行うインタフェースである。
【0086】
各処理の実行に用いられるコンピュータプログラムは、記録媒体に格納して頒布することもできる。記録媒体としては、例えば、データ記録用磁気テープや、ハードディスクなどの磁気ディスクを用いることができる。また、記録媒体としては、CD-ROM(Compact Disc Read Only Memory)等の光ディスクを用いることもできる。不揮発性の半導体記憶装置を記録媒体として用いてもよい。
上記の実施形態の一部又は全部は、以下の付記のようにも記載されうるが、以下には限られない。
【0087】
[付記1]
複数の情報処理装置と連携して勾配ブースティング決定木を生成する際に、前記複数の情報処理装置それぞれから取得したデータの分布を示す情報に基づいて、ノードの分割条件の候補を分割候補として決定する分割候補決定手段と、
前記複数の情報処理装置に、前記分割候補を出力するデータ出力手段と、
前記分割候補を基にした分割によって生じる子ノードに入るデータを調整して前記分割候補を評価した評価結果を、前記複数の情報処理装置から取得するデータ取得手段と、
前記複数の情報処理装置から取得した前記分割候補の評価結果を基に、前記勾配ブースティング決定木を生成する決定木生成手段と
を備えるサーバと、
前記サーバからノードの分割条件の候補を前記分割候補として取得する取得手段と、
保持しているデータのうち、前記分割候補を基にした分割により生じる2つの子ノードそれぞれに入るデータの数を計算するデータ数計算手段と、
前記子ノードに入るデータ数があらかじめ決めた数より少ない場合、前記子ノードに入るデータを調整する調整手段と、
前記調整後の前記2つの子ノードのデータを用いて、前記分割候補を評価する評価手段と、
前記分割候補の評価結果を前記サーバに出力する出力手段と
を備える複数の情報処理装置と
を備える決定木生成システム。
【0088】
[付記2]
前記情報処理装置は、
保持しているデータから合成データを生成する生成モデルを用いて、前記合成データを生成するデータ生成手段をさらに備え、
前記調整手段は、前記分割候補を基にした分割により生じる子ノードに入るデータ数があらかじめ決められた数より少ない場合、前記合成データによって前記子ノードのデータを調整する、
付記1に記載の決定木生成システム。
【0089】
[付記3]
前記調整手段は、いずれかの子ノードに入るデータの数が第1基準未満の場合に、前記第1基準の数よりも少ない子ノードに入るデータを削除し、前記第1基準以上でかつ第2基準未満の場合に、前記合成データによって前記子ノードのデータを調整する、
付記2に記載の決定木生成システム。
【0090】
[付記4]
前記調整手段は、いずれか一方の子ノードに入るデータを調整した場合に、2つの子ノードのデータの数の比が維持されるように、もう一方の子ノードに入るデータを前記合成データによって調整する、
付記2または3に記載の決定木生成システム。
【0091】
[付記5]
前記調整手段は、前記分割候補をにした分割により生じる子ノードに入るデータ数があらかじめ決めた数より少ない場合、データ数があらかじめ決めた数より少ない子ノードに入るデータを削除する、
付記1に記載の決定木生成システム。
【0092】
[付記6]
勾配ブースティング決定木を生成するサーバからノードの分割条件の候補を分割候補として取得する取得手段と、
保持しているデータのうち、前記分割候補を基にした分割により生じる2つの子ノードそれぞれに入るデータの数を計算するデータ数計算手段と、
前記分割候補を基にした分割により生じる子ノードに入るデータ数があらかじめ決めた数より少ない場合、該子ノードに入るデータを調整する調整手段と、
前記調整後の前記2つの子ノードのデータを用いて、前記分割候補を評価する評価手段と、
前記分割候補の評価結果を前記サーバに出力する出力手段と
を備える情報処理装置。
【0093】
[付記7]
保持しているデータから合成データを生成するデータ生成手段をさらに備え、
前記調整手段は、前記分割候補を基にした分割により生じる子ノードに入るデータ数があらかじめ決めた数より少ない場合、前記合成データによって前記子ノードのデータを調整する
付記6に記載の情報処理装置。
【0094】
[付記8]
前記調整手段は、いずれかの子ノードに入るデータの数が第1基準未満の場合に、前記第1基準の数よりも少ない子ノードに入るデータを削除し、前記第1基準以上かつ第2基準未満の場合に、前記合成データによって前記子ノードのデータを調整する、
付記7に記載の情報処理装置。
【0095】
[付記9]
前記調整手段は、いずれか一方の子ノードに入るデータを調整した場合に、2つの子ノードのデータの数の比が維持されるように、もう一方の子ノードに入るデータを前記合成データによって調整する、
付記7または8に記載の情報処理装置。
【0096】
[付記10]
前記調整手段は、前記分割候補を基にした分割により生じる子ノードに入るデータ数があらかじめ決めた数より少ない場合、データ数があらかじめ決めた数より少ない子ノードに入るデータを削除する、
付記6に記載の情報処理装置。
【0097】
[付記11]
複数の情報処理装置との連携によって、勾配ブースティング決定木を生成する際に、前記複数の情報処理装置から取得したデータの分布を示す情報に基づいて、ノードの分割条件の候補を分割候補として決定する分割候補決定手段と、
前記複数の情報処理装置に前記分割候補を出力するデータ出力手段と、
前記分割候補を基にした分割により生じる子ノードに入るデータを調整して前記分割候補を評価した評価結果を、前記複数の情報処理装置から取得するデータ取得手段と、
前記複数の情報処理装置から取得した前記分割候補の評価結果を基に、勾配ブースティング決定木を生成する決定木生成手段と
を備え、
前記データ出力手段は、生成した前記勾配ブースティング決定木のデータを出力する、
サーバ。
【0098】
[付記12]
前記分割候補決定手段は、各特徴量を複数の分割点で分割し、前記複数の情報処理装置から取得した各区間に入るデータのヒストグラムを足し合わせたヒストグラムを基に、全区間の重みが均等になるように前記分割候補を決定する、
付記11に記載のサーバ。
【0099】
[付記13]
前記分割候補決定手段は、前記複数の情報処理装置から取得する各特徴量の最大値と、最小値のデータを基に、全データにおける最大値と、最小値を抽出し、抽出した全データにおける最大値と、最小値の間を、あらかじめ設定された区間数となるように分割して前記複数の分割点を決定する、
付記11または12に記載のサーバ。
【0100】
[付記14]
勾配ブースティング決定木を生成するサーバからノードの分割条件の候補を分割候補として取得し、
保持しているデータのうち、前記分割候補を基にした分割により生じる2つの子ノードそれぞれに入るデータの数を計算し、
前記分割候補を基にした分割により生じる子ノードに入るデータ数があらかじめ決めた数より少ない場合、該子ノードに入るデータを調整し、
前記調整後の前記2つの子ノードのデータを用いて、前記分割候補を評価しと、
前記分割候補の評価結果を前記サーバに出力する、
決定木生成方法。
【0101】
[付記15]
複数の情報処理装置との連携によって、勾配ブースティング決定木を生成する際に、前記複数の情報処理装置から取得したデータの分布を示す情報に基づいて、ノードの分割条件の候補を分割候補として決定し、
前記複数の情報処理装置に前記分割候補を出力し、
前記分割候補を基にした分割により生じる子ノードに入るデータを調整して前記分割候補を評価した評価結果を、前記複数の情報処理装置から取得し、
前記複数の情報処理装置から取得した前記分割候補の評価結果を基に、勾配ブースティング決定木を生成し、
生成した前記勾配ブースティング決定木のデータを出力する、
決定木生成方法。
【0102】
[付記16]
勾配ブースティング決定木を生成するサーバからノードの分割条件の候補を分割候補として取得する処理と、
保持しているデータのうち、前記分割候補を基にした分割により生じる2つの子ノードそれぞれに入るデータの数を計算する処理と、
前記分割候補を基にした分割により生じる子ノードに入るデータ数があらかじめ決めた数より少ない場合、該子ノードに入るデータを調整する処理と、
前記調整後の前記2つの子ノードのデータを用いて、前記分割候補を評価する処理と、
前記分割候補の評価結果を前記サーバに出力する処理と
をコンピュータに実行させるプログラムを記録したプログラム記録媒体。
【0103】
[付記17]
複数の情報処理装置との連携によって、勾配ブースティング決定木を生成する際に、前記複数の情報処理装置から取得したデータの分布を示す情報に基づいて、ノードの分割条件の候補を分割候補として決定する処理と、
前記複数の情報処理装置に前記分割候補を出力する処理と、
前記分割候補を基にした分割により生じる子ノードに入るデータを調整して前記分割候補を評価した評価結果を、前記複数の情報処理装置から取得する処理と、
前記複数の情報処理装置から取得した前記分割候補の評価結果を基に、勾配ブースティング決定木を生成する処理と、
生成した前記勾配ブースティング決定木のデータを出力する処理と
をコンピュータに実行させるプログラムを記録したプログラム記録媒体。
【0104】
以上、上述した実施形態を例として本発明を説明した。しかしながら、本発明は、上述した実施形態には限定されない。即ち、本発明は、本発明のスコープ内において、当業者が理解し得る様々な態様を適用することができる。
【符号の説明】
【0105】
10 サーバ
11 予測値計算部
12 分割区間決定部
13 分割候補決定部
14 決定木生成部
15 データ取得部
16 データ出力部
17 データ記憶部
20 情報処理装置
21 統計値計算部
22 データ範囲計算部
23 データ数計算部
24 データ調整部
25 評価部
26 取得部
27 出力部
28 データ生成部
29 記憶部
30 情報処理装置
31 データ調整部
200 コンピュータ
201 CPU
202 メモリ
203 記憶装置
204 入出力I/F
205 通信I/F
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14