(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024033639
(43)【公開日】2024-03-13
(54)【発明の名称】学習装置
(51)【国際特許分類】
G06N 20/00 20190101AFI20240306BHJP
【FI】
G06N20/00
【審査請求】未請求
【請求項の数】10
【出願形態】OL
(21)【出願番号】P 2022137349
(22)【出願日】2022-08-30
(71)【出願人】
【識別番号】000004237
【氏名又は名称】日本電気株式会社
(74)【代理人】
【識別番号】100124811
【弁理士】
【氏名又は名称】馬場 資博
(74)【代理人】
【識別番号】100088959
【弁理士】
【氏名又は名称】境 廣巳
(74)【代理人】
【識別番号】100097157
【弁理士】
【氏名又は名称】桂木 雄二
(74)【代理人】
【識別番号】100187724
【弁理士】
【氏名又は名称】唐鎌 睦
(72)【発明者】
【氏名】森 隼基
(72)【発明者】
【氏名】寺西 勇
(72)【発明者】
【氏名】古川 諒
(57)【要約】
【課題】垂直連合学習を行う場合において、推論時の手間を抑制することが難しい。
【解決手段】学習装置400は、自装置が有する特徴量に対応するローカルモデルを取得する取得部と421、予め学習された垂直連合学習モデルの出力と、取得部421が取得した前記ローカルモデルの出力と、の差を計算する残差計算部422と、残差計算部422による計算の結果と、自装置が有する特徴量と、に基づいて、取得部421が取得した前記ローカルモデルに追加する追加木を学習する追加木学習部423と、を有する。
【選択図】
図9
【特許請求の範囲】
【請求項1】
自装置が有する特徴量に対応するローカルモデルを取得する取得部と、
予め学習された垂直連合学習モデルの出力と、前記取得部が取得した前記ローカルモデルの出力と、の差を計算する残差計算部と、
前記残差計算部による計算の結果と、自装置が有する特徴量と、に基づいて、前記取得部が取得した前記ローカルモデルに追加する追加木を学習する追加木学習部と、
を有する
学習装置。
【請求項2】
請求項1に記載の学習装置であって、
前記取得部は、自装置が有する特徴量を用いた学習を行うことで前記ローカルモデルを取得する
学習装置。
【請求項3】
請求項1に記載の学習装置であって、
前記取得部は、前記垂直連合学習モデルを構成する決定木のうち自装置以外に対応するノードに対して欠損値として扱う処置を施したモデルを前記ローカルモデルとして取得する
学習装置。
【請求項4】
請求項3に記載の学習装置であって、
前記取得部は、欠損値として扱う処置として、対象となるノードにおける分岐方向を予め定める処置を施したモデルを前記ローカルモデルとして取得する
学習装置。
【請求項5】
請求項3に記載の学習装置であって、
前記取得部は、自装置とは異なる他の学習装置において、当該他の学習装置が有する特徴量に対応するノードに対して欠損値として扱う処置を施したモデルを前記他の学習装置から前記ローカルモデルとして取得する
学習装置。
【請求項6】
請求項1に記載の学習装置であって、
前記追加木学習部は、前記残差計算部で計算された差を目的変数とし、自装置が有する特徴量を説明変数とした学習を行うことで、前記ローカルモデルに追加する追加木を学習する
学習装置。
【請求項7】
請求項1に記載の学習装置であって、
前記垂直連合学習モデルを作成した各クライアント装置と協力して前記垂直連合学習モデルの出力を取得する出力取得部を有する
学習装置。
【請求項8】
情報処理装置が、
自装置が有する特徴量に対応するローカルモデルを取得し、
予め学習された垂直連合学習モデルの出力と、取得した前記ローカルモデルの出力と、の差を計算し、
計算の結果と、自装置が有する特徴量と、に基づいて、取得した前記ローカルモデルに追加する追加木を学習する
学習方法。
【請求項9】
情報処理装置に、
自装置が有する特徴量に対応するローカルモデルを取得し、
予め学習された垂直連合学習モデルの出力と、取得した前記ローカルモデルの出力と、の差を計算し、
計算の結果と、自装置が有する特徴量と、に基づいて、取得した前記ローカルモデルに追加する追加木を学習する
処理を実現するためのプログラム。
【請求項10】
予め学習された垂直連合学習モデルの出力と自装置が有する特徴量に対応するローカルモデルの出力との差を計算した結果と、自装置が有する特徴量と、に基づいて追加木が追加された前記ローカルモデルに対して推論対象となる特徴量を入力して、入力した結果に応じた出力を行う推論部
を有する
推論装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、学習装置、学習方法、プログラム、推論装置に関する。
【背景技術】
【0002】
表形式のデータなどに対する高精度かつ計算量の少ない機械学習モデルとして、勾配ブースティング決定木(Gradient Boosting Decision Tree: GBDT)がある。
【0003】
GBDTについて記載された文献としては、例えば、特許文献1がある。特許文献1には、勾配ブースティングによる学習を行う学習装置が記載されている。例えば、学習装置は、モデルを学習するための学習データと勾配情報とを記憶するデータ記憶部と、モデルを学習する学習部と、勾配情報を更新する更新部と、サブサンプル率に基づいて、学習データについて次のモデルの学習に使用するか否かを判定するサブサンプル部と、使用すると判定された学習データおよび勾配情報を予め定められた容量までバッファリングする第1バッファ部と、使用しないと判定された学習データおよび勾配情報を予め定められた容量までバッファリングする第2バッファ部と、を備える。また、第1バッファ部および第2バッファ部は、予め定められた容量まで学習データおよび勾配情報をバッファリングする場合、所定のブロックごとにデータ記憶部に書き込む。特許文献1によると、上記構成により、勾配ブースティングにおいて、大容量のサンプルデータに対してデータサブサンプルを行うことができる。
【先行技術文献】
【特許文献】
【0004】
【非特許文献】
【0005】
【非特許文献1】Ren et al., Improving Availability of Vertical Federated Learning,[令和4年7月22日検索],インターネット<URL:https://dl.acm.org/doi/10.1145/3501817>
【発明の概要】
【発明が解決しようとする課題】
【0006】
学習データの直接的なやり取りを行わずに複数のクライアントが協力して機械学習モデルの訓練を行う連合学習の一つとして、同一のサンプルについて各クライアントが異なる特徴量を有している場合などにおいて同一のサンプルで異なる特徴量を用いた訓練を行う垂直連合学習がある。
【0007】
このような垂直連合学習をGBDTなどの決定木に対して行った場合、垂直連合学習モデルとなる決定木を構成するノードごとに垂直連合学習を行うクライアントのいずれかが分岐条件などの値を有する。その結果、推論時において対応するノードの値を有するクライアントが協力することが必要となり、各クライアントで協力が難しい場合に推論できず、また、協力可能な場合でも推論時に手間がかかっていた。また、独立に推論可能な垂直連合学習として、例えば、非特許文献1のようなものがあるが、非特許文献1に記載の技術はニューラルネットやロジスティック回帰のようなパラメトリックなモデルを対象としており、決定木系には向かなかった。このように、推論時の手間などを抑制可能なモデルをGBDTなどの決定木を対象として垂直連合学習で学習することが難しい、という課題が生じていた。
【0008】
そこで、本発明の目的は、上述した課題を解決する学習装置、学習方法、プログラム、推論装置を提供することにある。
【課題を解決するための手段】
【0009】
かかる目的を達成するため本開示の一形態である学習装置は、
自装置が有する特徴量に対応するローカルモデルを取得する取得部と、
予め学習された垂直連合学習モデルの出力と、前記取得部が取得した前記ローカルモデルの出力と、の差を計算する残差計算部と、
前記残差計算部による計算の結果と、自装置が有する特徴量と、に基づいて、前記取得部が取得した前記ローカルモデルに追加する追加木を学習する追加木学習部と、
を有する
という構成をとる。
【0010】
また、本開示の他の形態である学習方法は、
情報処理装置が、
自装置が有する特徴量に対応するローカルモデルを取得し、
予め学習された垂直連合学習モデルの出力と、取得した前記ローカルモデルの出力と、の差を計算し、
計算の結果と、自装置が有する特徴量と、に基づいて、取得した前記ローカルモデルに追加する追加木を学習する
という構成をとる。
【0011】
また、本開示の他の形態であるプログラムは、
情報処理装置に、
自装置が有する特徴量に対応するローカルモデルを取得し、
予め学習された垂直連合学習モデルの出力と、取得した前記ローカルモデルの出力と、の差を計算し、
計算の結果と、自装置が有する特徴量と、に基づいて、取得した前記ローカルモデルに追加する追加木を学習する
処理を実現するためのプログラムである。
【0012】
また、本開示の他の形態である推論装置は、
予め学習された垂直連合学習モデルの出力と自装置が有する特徴量に対応するローカルモデルの出力との差を計算した結果と、自装置が有する特徴量と、に基づいて追加木が追加された前記ローカルモデルに対して推論対象となる特徴量を入力して、入力した結果に応じた出力を行う推論部
を有する
という構成をとる。
【発明の効果】
【0013】
上述したような各構成によると、上述した課題を解決することができる。
【図面の簡単な説明】
【0014】
【
図1】本開示の第1の実施形態における学習システムの概要を説明するための図である。
【
図2】垂直連合学習について説明するための図である。
【
図6】クライアント装置の構成例を示すブロック図である。
【
図7】学習装置の動作例を示すフローチャートである。
【
図8】本開示の第2の実施形態における学習装置の構成例を示すハードウェア図である。
【
図10】推論装置の構成例を示すブロック図である。
【発明を実施するための形態】
【0015】
[第1の実施形態]
本開示の第1の実施形態について、
図1から
図7までを参照して説明する。
図1は、学習システム100の概要を説明するための図である。
図2は、垂直連合学習について説明するための図である。
図3は、学習システム100の構成例を示す図である。
図4は、学習装置200の構成例を示すブロック図である。
図5は、垂直連合学習モデルの一例を示す図である。
図6は、クライアント装置300の構成例を示すブロック図である。
図7は、学習装置200の動作例を示すフローチャートである。
【0016】
本開示の第1の実施形態においては、学習装置200やクライアント装置300などの複数の情報処理装置が協力して1つの決定木を学習する連合学習を行う学習システム100について説明する。
図1で例示するように、本実施形態における学習装置200は、クライアント装置300など他の情報処理装置と協力して学習した垂直連合学習モデルを取得するとともに、所定の手段でローカルモデルを取得する。そして、学習装置200は、垂直連合学習モデルと、ローカルモデルと、の間のギャップを埋めるように新しく追加木を学習する。このようにローカルモデルに追加木を追加して学習しておくことで、学習装置200は、推論時において、他の情報処理装置の協力を必要とすることなく独立に推論を行うことができる。
【0017】
なお、本実施形態においては、
図2で例示するように、連合学習のうち、同一のサンプルで異なる特徴量を用いた学習を行う垂直連合学習を行う場合について例示する。例えば、
図2で例示する場合、学習装置200またはクライアント装置300であるクライアント1とクライアント2とで、同一のサンプルについて異なる特徴量を有している。例えば、垂直連合学習は、同一の地域で異なる職種の会社が顧客を抱えている場合など、顧客などのサンプルが共通する一方で異なる特徴量を扱う複数の情報処理装置が存在する場合に行うことができる。垂直連合学習を行う場合、出力値や分岐条件などの決定木を構成するノードの値は、分岐条件などに対応する特徴量を有する情報処理装置が持つ。つまり、垂直連合学習モデルである決定木を構成するノードごとに、分岐条件などの値を有する情報処理装置が異なる。その結果、原則として、推論時においても垂直連合学習を行った複数の情報処理装置が協力することが必要となる。本実施形態で説明する学習システム100では、上述したように、協力して学習する情報処理装置のうち独立して推論を行いたい学習装置200において、垂直連合学習モデルとローカルモデルとの間のギャップを埋めるように新しい追加木を学習しておく。これにより、垂直連合学習を行いつつ学習装置200において独立した推論を行うことを可能とする。
【0018】
以下、学習システム100の構成について、より詳細に説明する。
図3は、学習システム100の構成例を示している。
図3を参照すると、例えば、学習システム100は、複数のクライアント装置300と学習装置200とを有している。
図3で示すように、クライアント装置300と学習装置200とは、例えば、ネットワークなどを介して互いに通信可能なよう接続されている。なお、学習システム100は2以上の任意の数の学習装置200を有してもよい。また、学習システム100は、2以上の任意の数のクライアント装置300を有してもよい。
【0019】
学習装置200は、クライアント装置300と協力して垂直連合学習モデルを学習する情報処理装置である。また、学習装置200は、学習した垂直連合学習モデルとローカルモデルとの間のギャップを埋めるように新しい追加木を学習することで、独立した推論を行うことを可能とする。
図4は、学習装置200の構成例を示している。
図4を参照すると、学習装置200は、主な構成要素として、例えば、操作入力部210と、画面表示部220と、通信I/F(interface)部230と、記憶部240と、演算処理部250と、を有している。
【0020】
なお、
図4では、1台の情報処理装置を用いて学習装置200としての機能を実現する場合について例示している。しかしながら、学習装置200は、例えば、クラウド上に実現されるなど、複数台の情報処理装置を用いて実現されてもよい。例えば、学習装置200は、垂直連合学習モデルや追加木などのモデルを学習する学習装置と、学習したモデルを用いた推論を行う推論装置と、などから構成されてもよい。また、学習装置200は、操作入力部210や画面表示部220を有さないなど上記例示した構成の一部を含まなくてもよいし、上記例示した以外の構成を有してもよい。
【0021】
操作入力部210は、キーボード、マウスなどの操作入力装置からなる。操作入力部210は、学習装置200を操作する操作者の操作を検出して演算処理部250に出力する。
【0022】
画面表示部220は、LCD(Liquid Crystal Display、液晶ディスプレイ)などの画面表示装置からなる。画面表示部220は、演算処理部250からの指示に応じて、記憶部240に格納されている各種情報などを画面表示することが出来る。
【0023】
通信I/F部230は、データ通信回路などからなる。通信I/F部230は、通信回線を介して接続されたクライアント装置300などの外部装置との間でデータ通信を行う。
【0024】
記憶部240は、HDD(hard disk drive)やSSD(Solid State Drive)、メモリなどの記憶装置である。記憶部240は、演算処理部250における各種処理に必要な処理情報やプログラム244を記憶する。プログラム244は、演算処理部250に読み込まれて実行されることにより各種処理部を実現する。プログラム244は、通信I/F部230などのデータ入出力機能を介して外部装置や記録媒体から予め読み込まれ、記憶部240に保存されている。記憶部240で記憶される主な情報としては、例えば、特徴量情報241、垂直連合学習モデル情報242、ローカルモデル情報243などがある。
【0025】
特徴量情報241は、垂直連合学習を行う際などに用いる学習データである特徴量を含んでいる。後述するように、特徴量情報241は、ローカルモデルを取得する際、垂直連合学習モデルやローカルモデルの出力値を取得する際、などにも活用することができる。例えば、特徴量情報241には、表形式のデータなど、複数のサンプルについて複数の特徴量が含まれてよい。特徴量情報241には、垂直連合学習で用いることができる、クライアント装置300など他の情報処理装置と共通するサンプルについての特徴量を含んでいる。特徴量情報241には、他の情報処理装置と共通しないサンプルの特徴量が含まれてもよい。特徴量情報241は、通信I/F部230を介して外部装置から取得することや操作入力部210などを用いて入力することなどの方法を用いて予め取得されており、記憶部240に格納されている。
【0026】
垂直連合学習モデル情報242は、クライアント装置300など他の情報処理装置と協力して垂直連合学習した結果として生成される垂直連合学習モデルについての情報を含んでいる。例えば、垂直連合学習モデル情報242には、垂直連合学習モデルである決定木を構成する葉ノードの出力値、分岐条件となる特徴量と閾値など内部ノードにおける分岐条件に応じた値、などが含まれてよい。例えば、垂直連合学習モデル情報242は、後述する垂直連合学習部251が他の情報処理装置と協力して垂直連合学習することなどに応じて更新される。
【0027】
図5は、垂直連合学習モデルである決定木の一例を示している。
図5で例示するように、垂直連合学習を行った場合、決定木を構成するノードごとに分岐条件に応じた値や出力値などの情報を持っている情報処理装置が異なる。そのため、垂直連合学習モデル情報242には、決定木を構成するノードの値のうち一部のノードの値のみが含まれる。例えば、
図5で例示する場合、白丸で表示するノードの値を垂直連合学習モデル情報242が含む一方で、黒丸で表示するノードの値を垂直連合学習モデル情報242は含まない。なお、垂直連合学習モデル情報242が値を有するノードは、
図5で例示した場合に限られない。
【0028】
ローカルモデル情報243は、学習装置200独自のモデルについての情報を含んでいる。例えば、ローカルモデル情報243には、ローカルモデルである決定木を構成する葉ノードの出力値や内部ノードにおける分岐条件に応じた値などが含まれてよい。また、ローカルモデル情報243には、後述する追加木学習部255が学習する追加木についての情報を含むことができる。つまり、ローカルモデル情報243には、追加木を構成する葉ノードの出力値や内部ノードにおける分岐条件に応じた値などが含まれてよい。例えば、ローカルモデル情報243は、後述するローカルモデル取得部252がローカルモデルを取得することや追加木学習部255が追加木の学習を行うことなどに応じて更新される。なお、ローカルモデルの取得方法については後述する。
【0029】
演算処理部250は、CPU(Central Processing Unit)などの演算装置とその周辺回路を有する。演算処理部250は、記憶部240からプログラム244を読み込んで実行することにより、上記ハードウェアとプログラム244とを協働させて各種処理部を実現する。演算処理部250で実現される主な処理部としては、例えば、垂直連合学習部251、ローカルモデル取得部252、出力値取得部253、残差計算部254、追加木学習部255、推論部256、出力部257などがある。
【0030】
なお、演算処理部250は、上述したCPUの代わりに、GPU(Graphic Processing Unit)、DSP(Digital Signal Processor)、MPU(Micro Processing Unit)、FPU(Floating point number Processing Unit)、PPU(Physics Processing Unit)、TPU(Tensor Processing Unit)、量子プロセッサ、マイクロコントローラ、又は、これらの組み合わせなどを有してもよい。
【0031】
垂直連合学習部251は、クライアント装置300など他の情報処理装置と協力して垂直連合学習モデルを学習する。また、垂直連合学習部251は、学習した結果を垂直連合学習モデル情報242として記憶部240に格納する。本実施形態においては、垂直連合学習の具体的な方法については特に限定しない。垂直連合学習部251は、一般的な垂直連合学習の手法を用いて、垂直連合学習モデルを学習してよい。
【0032】
ローカルモデル取得部252は、学習装置200独自のモデルであり、自装置が有する特徴量に対応するローカルモデルを取得する。また、ローカルモデル取得部252は、取得したローカルモデルをローカルモデル情報243として記憶部240に格納する。
【0033】
例えば、ローカルモデル取得部252は、特徴量情報241に含まれる自身の特徴量を使用した学習を行うことで、ローカルモデルである決定木を取得することができる。この際、他の情報処理装置と共通しないサンプルの特徴量も学習に使用してよい。ローカルモデル取得部252は、決定木を学習する一般的な方法を用いてローカルモデルである決定木を学習してよい。
【0034】
また、ローカルモデル取得部252は、特徴量情報241に含まれる特徴量を用いた学習の代わりに、垂直連合学習部251が学習した垂直連合学習モデルに基づいて生成されるローカルモデルを取得してもよい。例えば、ローカルモデル取得部252は、垂直連合学習モデル情報242に値が含まれないノードについて欠損値として扱う処理を施すことで生成したローカルモデルを取得することができる。
【0035】
一例として、各クライアント装置300において、垂直連合学習モデルのうち自装置が分岐条件などの値を有するノードについて欠損値として扱う処理を行っておく。ローカルモデル取得部252は、欠損値として扱う処理を施した垂直連合学習モデルを各クライアント装置300から取得して取得したモデルを統合することで、ローカルモデルを取得することができる。換言すると、ローカルモデル取得部252は、各クライアント装置300から取得したモデルに基づいて、各クライアント装置300が分岐条件などの値を有するノードについて、つまり、学習装置200が値を有さないノードについて欠損値として扱う処理を施すことで、学習装置200が有する特徴量に対応するローカルモデルを取得することができる。
【0036】
なお、欠損値として扱う処理の一例としては、例えば、予め分岐方向を定めておくこと、特徴量の平均値に応じた分岐条件を設定しておくこと、などがある。例えば、各クライアント装置300は、欠損値として扱う対象となるノードについて、損失関数の差が大きい方向に常に分岐するように、分岐方向を定めておくことができる。または、各クライアント装置300は、特徴量の平均値に基づく分岐を行うように、例えば自装置の特徴量の平均値などに基づいて分岐方向を定めることができる。なお、欠損値として扱う処理は、上記例示した以外であってもよい、例えば、欠損値として扱う処理として、左方向など予め定められた方向に分岐するように分岐方向を定めてもよいし、そのほか既知の手段で分岐方向や分岐条件を定めてもよい。
【0037】
また、垂直連合学習モデル情報242に含まれないノードの値について、各クライアント装置300が欠損値として扱う処理を施す代わりに、ローカルモデル取得部252が欠損値として扱う処理を施すことでローカルモデルを取得してもよい。この場合、例えば、ローカルモデル取得部252は、予め定められた方向に分岐するように欠損値として扱う処理を施してよい。
【0038】
ローカルモデル取得部252は、上記例示した方法のうちのいずれかを用いて、ローカルモデルを取得することができる。例えば、ローカルモデル取得部252は、特徴量情報241に含まれる特徴量に基づく学習によりローカルモデルを取得することで、オーバーラップしてないサンプルも使用したローカルモデルを取得することができる。また、例えば、ローカルモデル取得部252は、垂直連合学習モデルに対して欠損値として扱う処理を行ったローカルモデルを取得することで、汎化性能の高い垂直連合学習モデルの構造を継承したローカルモデルを取得することができる。
【0039】
出力値取得部253は、垂直連合学習モデルを学習する際に学習データとして用いた全ての特徴量を垂直連合学習モデルに入力した際の出力を取得する。つまり、出力値取得部253は、各クライアント装置300と協力して学習装置200および各クライアント装置300がそれぞれ有する特徴量を垂直連合学習モデルに入力した際の出力値を取得する。例えば、出力値取得部253は、サンプルi=1からNまでに対応する各特徴量を入力した際の出力値を各クライアント装置300と協力して取得する。なお、Nは任意の値であってよい。
【0040】
また、出力値取得部253は、特徴量情報241に含まれる特徴量をローカルモデルに入力した際の出力値を取得する。同様に、出力値取得部253は、サンプルi=1からNまでに対応する特徴量を入力した際の出力値をローカルモデルから取得する。
【0041】
このように、出力値取得部253は、各クライアント装置300と協力して垂直連合学習モデルから出力値を取得するとともに、ローカルモデルから出力値を取得することができる。
【0042】
残差計算部254は、出力値取得部253が取得した結果に基づいて、各サンプルについて、垂直連合学習モデルからの出力値とローカルモデルからの出力値との間の差を計算することで、残差を計算する。
【0043】
例えば、残差計算部254は、数1で示す式を解くことにより、各サンプルi=1からNまでについての残差を計算する。
【数1】
なお、y
glonalは、垂直連合学習モデルからの出力値である。また、y
localは、ローカルモデルからの出力値である。
【0044】
追加木学習部255は、垂直連合学習モデルと、ローカルモデルと、の間のギャップを埋めるように新しく追加木を学習する。例えば、追加木学習部255は、残差計算部254による計算の結果を用いた学習を行う。なお、追加する木の数は任意に設定することが出来る。また、追加木学習部255は、学習した追加木をローカルモデル情報243として記憶部240に格納する。
【0045】
例えば、追加木学習部255は、特徴量情報241に含まれる各サンプルの特徴量を説明変数、残差計算部254が計算した各サンプルに対応する残差を目的変数であるラベルとして、ローカルモデルに追加木を追加する。一例として、追加木学習部255は、一般的なGBDT(勾配ブースティング決定木:Gradient Boosting Decision Tree)アルゴリズムを用いて追加木の学習を行ってよい。例えば、追加木学習部255は、数2で示すような式を用いた計算を行うことで、分岐前後における損失関数の差L
splitが最も大きくなるように内部ノードにおける分岐条件などを決定することができる。
【数2】
なお、g
iやh
iは勾配情報と呼ばれる数である。また、I
Lは分割後左側のノードに進む学習データを示しており、I
Rは分割後右側のノードに進む学習データを示している。また、Iは、分割前のノードにある学習データを示している。以上のように、数1では、分割前後の損失関数の差を計算している。
【0046】
また、追加木学習部255は、数3で示すような式を用いた計算を行うことで、葉ノードの出力値を決定することができる。
【数3】
なお、数1と同様に、g
iやh
iは勾配情報と呼ばれる数である。
【0047】
推論部256は、外部装置などからの指示に応じて推論を行う。上述したように、本実施形態で説明する推論部256は、追加木が追加されたローカルモデルを用いた推論を行うことで、他のクライアント装置300と協力することなく独立に推論を行うことができる。換言すると、推論部256は、外部装置などから取得した推論対象となる特徴量を、追加木が追加されたローカルモデルに入力することで、入力に応じた出力を得ることができる。
【0048】
なお、推論部256は、従来の垂直連合学習の場合と同様に、クライアント装置300などの他の情報処理装置と協力した推論を行ってもよい。例えば、推論部256は、他の情報処理装置と協力可能であるか否かクライアント装置300など他の情報処理装置と通信を行うことなどにより確認して、確認した結果に応じて独立した推論を行うか否か判別するよう構成してもよい。
【0049】
出力部257は、推論部256による推論結果を画面表示部220上に表示させたり、通信I/F部230を介して外部装置へと送信したりする。出力部257は、そのほか記憶部240に格納された情報などを画面表示部220上に表示させたり、通信I/F部230を介して外部装置へと送信したりしてもよい。
【0050】
以上が、学習装置200の構成例である。続いて、
図6を参照して、クライアント装置300の構成例について説明する。
【0051】
クライアント装置300は、学習装置200と協力して垂直連合学習モデルを学習する情報処理装置である。例えば、クライアント装置300は、学習装置200が有する構成のうちの一部を有することができる。
図6は、クライアント装置300の構成例を示している。
図6を参照すると、クライアント装置300は、主な構成要素として、例えば、操作入力部310と、画面表示部320と、通信I/F部330と、記憶部340と、演算処理部350と、を有している。
【0052】
なお、クライアント装置300は、学習装置200と同様に、クラウド上に実現されるなど、複数台の情報処理装置を用いて実現されてもよい。また、クライアント装置300は、操作入力部310や画面表示部320を有さないなど上記例示した構成の一部を含まなくてもよいし、上記例示した以外の構成を有してもよい。
【0053】
操作入力部310、画面表示部320、通信I/F部330の構成は学習装置200と同様であってよい。そのため、説明を省略する。
【0054】
記憶部340は、HDDやSSD、メモリなどの記憶装置である。記憶部340は、演算処理部350における各種処理に必要な処理情報やプログラム343を記憶する。プログラム343は、演算処理部350に読み込まれて実行されることにより各種処理部を実現する。プログラム343は、通信I/F部330などのデータ入出力機能を介して外部装置や記録媒体から予め読み込まれ、記憶部340に保存されている。記憶部340で記憶される主な情報としては、例えば、特徴量情報341、垂直連合学習モデル情報342などがある。
【0055】
特徴量情報341は、垂直連合学習を行う際などに用いる学習データである特徴量を含んでいる。後述するように、特徴量情報341は、垂直連合学習モデルの出力値を取得する際などにも活用することができる。例えば、特徴量情報341には、特徴量情報241の場合と同様に、表形式のデータなど複数のサンプルについて複数の特徴量が含まれてよい。特徴量情報341は、通信I/F部330を介して外部装置から取得することや操作入力部310などを用いて入力することなどの方法を用いて予め取得されており、記憶部340に格納されている。
【0056】
垂直連合学習モデル情報342は、学習装置200や他のクライアント装置300など他の情報処理装置と協力して垂直連合学習した結果として生成される垂直連合学習モデルについての情報を含んでいる。例えば、垂直連合学習モデル情報342には、垂直連合学習モデルである決定木を構成する葉ノードの出力値、分岐条件となる特徴量と閾値など内部ノードにおける分岐条件に応じた値、などが含まれてよい。上述した垂直連合学習モデル情報242の場合と同様に、垂直連合学習モデル情報342には、決定木を構成するノードの値のうち一部のノードの値のみが含まれる。例えば、垂直連合学習モデル情報342は、後述する垂直連合学習部351が他の情報処理装置と協力して垂直連合学習することなどに応じて更新される。
【0057】
演算処理部350は、CPUなどの演算装置とその周辺回路を有する。演算処理部350は、記憶部340からプログラム343を読み込んで実行することにより、上記ハードウェアとプログラム343とを協働させて各種処理部を実現する。演算処理部350で実現される主な処理部としては、例えば、垂直連合学習部351、出力値取得部352、欠損処理部353、送信部354などがある。
【0058】
なお、演算処理部350は、上述したCPUの代わりに、GPU、MPU、FPU、PPU、TPU、量子プロセッサ、マイクロコントローラ、又は、これらの組み合わせなどを有してもよい。
【0059】
垂直連合学習部351は、学習装置200や他のクライアント装置300など他の情報処理装置と協力して垂直連合学習モデルを学習する。また、垂直連合学習部351は、学習した結果を垂直連合学習モデル情報342として記憶部340に格納する。本実施形態においては、垂直連合学習の具体的な方法については特に限定しない。垂直連合学習部351は、一般的な垂直連合学習の手法を用いて、垂直連合学習モデルを学習してよい。
【0060】
出力値取得部352は、垂直連合学習モデルを学習する際に学習データとして用いた全ての特徴量を垂直連合学習モデルに入力した際の出力を取得する。つまり、出力値取得部352は、学習装置200や他のクライアント装置300と協力して学習装置200および各クライアント装置300がそれぞれ有する特徴量を垂直連合学習モデルに入力した際の出力値を取得する。例えば、出力値取得部352は、サンプルi=1からNまでに対応する各特徴量を入力した際の出力値を学習装置200や他のクライアント装置300と協力して取得する。なお、Nは任意の値であってよい。
【0061】
欠損処理部353は、垂直連合学習モデルのうち自装置が分岐条件などの値を有するノードについて欠損値として扱う処理を行う。例えば、上述したように、欠損処理部353が行う欠損値として扱う処理の一例としては、例えば、予め分岐方向を定めておくこと、特徴量の平均値に応じた分岐方向を設定しておくこと、などがある。欠損処理部353は、例示した方法のうちのいずれかを用いて、自装置が値を有するノードについて欠損値として扱う処理を行ってよい。
【0062】
送信部354は、欠損処理部353が欠損値として扱う処理を行った垂直連合学習モデルを学習装置200に対して送信する。例えば、送信部354は、該当するノードを識別するための情報と、分岐方向など欠損値として扱う処理の結果と、を関連づけて学習装置200に対して送信してもよい。
【0063】
以上が、クライアント装置300の構成例である。例えば、学習システム100は、上述したような複数の情報処理装置を有する。換言すると、学習システム100が有する情報処理装置のうち、独立した推論を行うための構成を有する情報処理装置が学習装置200であり、独立した推論を行うための構成を有さない情報処理装置がクライアント装置300である。
【0064】
続いて、
図7を参照して、追加木学習時における学習装置200の動作例について説明する。
図7は、学習装置200の動作例を示すフローチャートである。例えば、学習装置200は、予め他のクライアント装置300と協力した連合学習を行うことなどにより、垂直連合学習モデルを有している。また、
図7を参照すると、ローカルモデル取得部252は、学習装置200独自のモデルであるローカルモデルを取得する(ステップS101)。例えば、ローカルモデル取得部252は、特徴量情報241に含まれる特徴量に基づく学習によりローカルモデルを取得する方法、垂直連合学習モデルに対して欠損値として扱う処理を行ったローカルモデルを取得する方法のうちのいずれかの方法を用いてローカルモデルを取得してよい。
【0065】
出力値取得部253は、特徴量情報241に含まれる特徴量をローカルモデルに入力した際の出力値を取得する(ステップS102)。例えば、出力値取得部253は、サンプルi=1からNまでに対応する特徴量を入力した際の出力値をローカルモデルから取得する。
【0066】
また、出力値取得部253は、垂直連合学習モデルを学習する際に学習データとして用いた全ての特徴量を垂直連合学習モデルに入力した際の出力を取得する(ステップS103)。つまり、出力値取得部253は、各クライアント装置300と協力して学習装置200および各クライアント装置300がそれぞれ有する特徴量を垂直連合学習モデルに入力した際の出力値を取得する。例えば、出力値取得部253は、サンプルi=1からNまでに対応する各特徴量を入力した際の出力値を各クライアント装置300と協力して取得する。
【0067】
なお、学習装置200は、ステップS102の処理とステップS103の処理についてどちらを先に行ってもよいし、並列で行ってもよい。
【0068】
残差算計算254は、出力値取得部253が取得した結果に基づいて、各サンプルについて、垂直連合学習モデルからの出力値とローカルモデルからの出力値との間の差を計算することで、残差を計算する(ステップS104)。例えば、残差計算部254は、垂直連合学習モデルの出力値からローカルモデルの出力値を引くことで残差を計算することができる。
【0069】
追加木学習部255は、垂直連合学習モデルと、ローカルモデルと、の間のギャップを埋めるように新しく追加木を学習する(ステップS105)。例えば、追加木学習部255は、特徴量情報241に含まれる各サンプルの特徴量を説明変数、残差計算部254が計算した各サンプルに対応する残差を目的変数であるラベルとして、ローカルモデルに追加木を追加する。追加木学習部255は、一般的なGBDT(勾配ブースティング決定木:Gradient Boosting Decision Tree)アルゴリズムを用いて追加木の学習を行ってよい。
【0070】
以上が、追加木学習時における学習装置200の動作例である。
【0071】
このように、学習装置200は、ローカルモデル取得部252と追加木学習部255とを有している。このような構成によると、追加木学習部255は、垂直連合学習モデルと、ローカルモデルと、の間のギャップを埋めるように新しく追加木を学習することができる。その結果、推論時において、追加木を追加したローカルモデルを用いた推論を行うことができるようになり、垂直連合学習を行う場合でもクライアント装置300など他の情報処理装置と協力せずに推論を行うことが出来るようになる。つまり、上記構成によると、推論時の手間を抑制することができる。
【0072】
[第2の実施形態]
次に、本開示の第2の実施形態について、
図8から
図10までを参照して説明する。
図8は、学習装置400のハードウェア構成例を示す図である。
図9は、学習装置400の構成例を示すブロック図である。
図10は、推論装置500の構成例を示すブロック図である。
【0073】
本開示の第2の実施形態においては、他の情報処理装置と協力して学習を行う情報処理装置である学習装置400と、学習装置400による学習の結果を用いて独立した推論を行う推論装置500の構成例について説明する。
図8は、学習装置400のハードウェア構成例を示している。
図8を参照すると、学習装置400は、一例として、以下のようなハードウェア構成を有している。
・CPU(Central Processing Unit)401(演算装置)
・ROM(Read Only Memory)402(記憶装置)
・RAM(Random Access Memory)403(記憶装置)
・RAM403にロードされるプログラム群404
・プログラム群404を格納する記憶装置405
・情報処理装置外部の記録媒体410の読み書きを行うドライブ装置406
・情報処理装置外部の通信ネットワーク411と接続する通信インタフェース407
・データの入出力を行う入出力インタフェース408
・各構成要素を接続するバス409
【0074】
なお、学習装置400は、上述したCPUの代わりに、GPU、MPU、FPU、PPU、TPU、量子プロセッサ、マイクロコントローラ、又は、これらの組み合わせなどを用いてもよい。
【0075】
また、学習装置400は、プログラム群404をCPU401が取得して当該CPU401が実行することで、
図9に示す取得部421、残差計算部422、追加木学習部423としての機能を実現することが出来る。なお、プログラム群404は、例えば、予め記憶装置405やROM402に格納されており、必要に応じてCPU401がRAM403などにロードして実行する。また、プログラム群404は、通信ネットワーク411を介してCPU401に供給されてもよいし、予め記録媒体410に格納されており、ドライブ装置406が該プログラムを読み出してCPU401に供給してもよい。
【0076】
なお、
図8は、学習装置400のハードウェア構成例を示している。学習装置400のハードウェア構成は上述した場合に限定されない。例えば、学習装置400は、ドライブ装置406を有さないなど、上述した構成の一部から構成されてもよい。
【0077】
取得部421は、自装置が有する特徴量に対応するローカルモデルを取得する。
【0078】
残差計算部422は、予め学習された垂直連合学習モデルの出力と、取得部421が取得したローカルモデルの出力と、の差を計算する。
【0079】
追加木学習部423は、残差計算部422による計算の結果と、自装置が有する特徴量と、に基づいて、取得部421が取得したローカルモデルに追加する追加木を学習する。
【0080】
このように、学習装置400は、取得部421と残差計算部422と追加木学習部423とを有している。このような構成によると、追加木学習部423は、残差計算部422による計算の結果と、自装置が有する特徴量と、に基づいて、取得部421が取得したローカルモデルに追加する追加木を学習することができる。その結果、追加木を追加したローカルモデルを用いた独立した推論を行うことができるようになる。これにより、推論時の手間を抑制することができる。
【0081】
なお、上述した学習装置400は、当該学習装置400などの情報処理装置に所定のプログラムが組み込まれることで実現できる。具体的に、本発明の他の形態であるプログラムは、学習装置400などの情報処理装置に、自装置が有する特徴量に対応するローカルモデルを取得し、予め学習された垂直連合学習モデルの出力と、取得したローカルモデルの出力と、の差を計算し、計算の結果と、自装置が有する特徴量と、に基づいて、取得したローカルモデルに追加する追加木を学習する、処理を実現するためのプログラムである。
【0082】
また、上述した学習装置400などの情報処理装置により実行される学習方法は、学習装置400などの情報処理装置が、自装置が有する特徴量に対応するローカルモデルを取得し、予め学習された垂直連合学習モデルの出力と、取得したローカルモデルの出力と、の差を計算し、計算の結果と、自装置が有する特徴量と、に基づいて、取得したローカルモデルに追加する追加木を学習する、という方法である。
【0083】
上述した構成を有する、プログラム、又は、プログラムを記録したコンピュータが読み取り可能な記録媒体、又は、学習方法、の発明であっても、上述した学習装置400と同様の作用・効果を奏するために、上述した本発明の目的を達成することが出来る。
【0084】
また、学習装置400による学習結果を用いた推論装置500は、プログラム群をCPUなどが取得して当該CPUなどが実行することで、
図10に示す推論部521としての機能を実現することが出来る。なお、推論装置500のハードウェア構成は、
図8を参照して説明した学習装置400が有する構成と同様であってよい。
【0085】
推論部521は、予め学習された垂直連合学習モデルの出力と自装置が有する特徴量に対応するローカルモデルの出力との差を計算した結果と、自装置が有する特徴量と、に基づいて追加木が追加されたローカルモデルに対して推論対象となる特徴量を入力して、入力した結果に応じた出力を行う。
【0086】
このように、推論装置500は、推論部521を有している。このような構成によると、推論部521は、垂直連合学習したにもかかわらず独立した推論を行うことができる。これにより、推論時の手間を抑制することができる。
【0087】
なお、上述した推論装置500は、当該推論装置500などの情報処理装置に所定のプログラムが組み込まれることで実現できる。具体的に、本発明の他の形態であるプログラムは、推論装置500などの情報処理装置に、予め学習された垂直連合学習モデルの出力と自装置が有する特徴量に対応するローカルモデルの出力との差を計算した結果と、自装置が有する特徴量と、に基づいて追加木が追加されたローカルモデルに対して推論対象となる特徴量を入力して、入力した結果に応じた出力を行う、処理を実現するためのプログラムである。
【0088】
また、上述した推論装置500などの情報処理装置により実行される推論方法は、予め学習された垂直連合学習モデルの出力と自装置が有する特徴量に対応するローカルモデルの出力との差を計算した結果と、自装置が有する特徴量と、に基づいて追加木が追加されたローカルモデルに対して推論対象となる特徴量を入力して、入力した結果に応じた出力を行う、という方法である。
【0089】
上述した構成を有する、プログラム、又は、プログラムを記録したコンピュータが読み取り可能な記録媒体、又は、推論方法、の発明であっても、上述した推論装置500と同様の作用・効果を奏するために、上述した本発明の目的を達成することが出来る。
【0090】
<付記>
上記実施形態の一部又は全部は、以下の付記のようにも記載されうる。以下、本発明における学習装置などの概略を説明する。但し、本発明は、以下の構成に限定されない。
【0091】
(付記1)
自装置が有する特徴量に対応するローカルモデルを取得する取得部と、
予め学習された垂直連合学習モデルの出力と、前記取得部が取得した前記ローカルモデルの出力と、の差を計算する残差計算部と、
前記残差計算部による計算の結果と、自装置が有する特徴量と、に基づいて、前記取得部が取得した前記ローカルモデルに追加する追加木を学習する追加木学習部と、
を有する
学習装置。
(付記2)
付記1に記載の学習装置であって、
前記取得部は、自装置が有する特徴量を用いた学習を行うことで前記ローカルモデルを取得する
学習装置。
(付記3)
付記1に記載の学習装置であって、
前記取得部は、前記垂直連合学習モデルを構成する決定木のうち自装置以外に対応するノードに対して欠損値として扱う処置を施したモデルを前記ローカルモデルとして取得する
学習装置。
(付記4)
付記3に記載の学習装置であって、
前記取得部は、欠損値として扱う処置として、対象となるノードにおける分岐方向を予め定める処置を施したモデルを前記ローカルモデルとして取得する
学習装置。
(付記5)
付記3に記載の学習装置であって、
前記取得部は、自装置とは異なる他の学習装置において、当該他の学習装置が有する特徴量に対応するノードに対して欠損値として扱う処置を施したモデルを前記他の学習装置から前記ローカルモデルとして取得する
学習装置。
(付記6)
付記1に記載の学習装置であって、
前記追加木学習部は、前記残差計算部で計算された差を目的変数とし、自装置が有する特徴量を説明変数とした学習を行うことで、前記ローカルモデルに追加する追加木を学習する
学習装置。
(付記7)
付記1に記載の学習装置であって、
前記垂直連合学習モデルを作成した各クライアント装置と協力して前記垂直連合学習モデルの出力を取得する出力取得部を有する
学習装置。
(付記8)
情報処理装置が、
自装置が有する特徴量に対応するローカルモデルを取得し、
予め学習された垂直連合学習モデルの出力と、取得した前記ローカルモデルの出力と、の差を計算し、
計算の結果と、自装置が有する特徴量と、に基づいて、取得した前記ローカルモデルに追加する追加木を学習する
学習方法。
(付記9)
情報処理装置に、
自装置が有する特徴量に対応するローカルモデルを取得し、
予め学習された垂直連合学習モデルの出力と、取得した前記ローカルモデルの出力と、の差を計算し、
計算の結果と、自装置が有する特徴量と、に基づいて、取得した前記ローカルモデルに追加する追加木を学習する
処理を実現するためのプログラム。
(付記10)
予め学習された垂直連合学習モデルの出力と自装置が有する特徴量に対応するローカルモデルの出力との差を計算した結果と、自装置が有する特徴量と、に基づいて追加木が追加された前記ローカルモデルに対して推論対象となる特徴量を入力して、入力した結果に応じた出力を行う推論部
を有する
推論装置。
【0092】
以上、上記各実施形態を参照して本願発明を説明したが、本願発明は、上述した実施形態に限定されるものではない。本願発明の構成や詳細には、本願発明の範囲内で当業者が理解しうる様々な変更をすることが出来る。
【符号の説明】
【0093】
100 学習システム
200 学習装置
210 操作入力部
220 画面表示部
230 通信I/F部
240 記憶部
241 特徴量情報
242 垂直連合学習モデル情報
243 ローカルモデル情報
244 プログラム
250 演算処理部
251 垂直連合学習部
252 ローカルモデル取得部
253 出力値取得部
254 残差計算部
255 追加木学習部
256 推論部
257 出力部
300 クライアント装置
310 操作入力部
320 画面表示部
330 通信I/F部
340 記憶部
341 特徴量情報
342 垂直連合学習モデル情報
343 プログラム
350 演算処理部
351 垂直連合学習部
352 出力値取得部
353 欠損処理部
354 送信部
400 学習装置
401 CPU
402 ROM
403 RAM
404 プログラム群
405 記憶装置
406 ドライブ装置
407 通信インタフェース
408 入出力インタフェース
409 バス
410 記録媒体
411 通信ネットワーク
421 取得部
422 残差計算部
423 追加木学習部
500 推論装置
521 推論部