(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024038750
(43)【公開日】2024-03-21
(54)【発明の名称】学習装置
(51)【国際特許分類】
G06N 20/20 20190101AFI20240313BHJP
【FI】
G06N20/20
【審査請求】未請求
【請求項の数】10
【出願形態】OL
(21)【出願番号】P 2022143003
(22)【出願日】2022-09-08
(71)【出願人】
【識別番号】000004237
【氏名又は名称】日本電気株式会社
(74)【代理人】
【識別番号】100124811
【弁理士】
【氏名又は名称】馬場 資博
(74)【代理人】
【識別番号】100088959
【弁理士】
【氏名又は名称】境 廣巳
(74)【代理人】
【識別番号】100097157
【弁理士】
【氏名又は名称】桂木 雄二
(74)【代理人】
【識別番号】100187724
【弁理士】
【氏名又は名称】唐鎌 睦
(72)【発明者】
【氏名】エンケタイワン バトニヤマ
(57)【要約】
【課題】GBFにおいて的確な学習を行うことが難しい場合がある。
【解決手段】学習装置500は、他の学習装置から受信したクラスごとの学習器の出力と自装置が訓練したクラスごとの学習器の出力とをクラスごとに入力して、クラスごとに所定の出力を取得する取得部521と、取得部521が取得したクラスごとの出力に対して確率を表現するための変換処理をクラスごとに行う変換部522と、を有する。
【選択図】
図11
【特許請求の範囲】
【請求項1】
他の学習装置から受信したクラスごとの学習器の出力と自装置が訓練したクラスごとの学習器の出力とをクラスごとに入力して、クラスごとに所定の出力を取得する取得部と、
前記取得部が取得したクラスごとの出力に対して確率を表現するための変換処理をクラスごとに行う変換部と、
を有する
学習装置。
【請求項2】
請求項1に記載の学習装置であって、
前記取得部は、他の学習装置から受信した学習器の出力と自装置が訓練した学習器の出力とを所定の結合係数を用いて足し合わせる処理をクラスごとに行うことで、所定の出力を得る
学習装置。
【請求項3】
請求項2に記載の学習装置であって、
前記結合係数は、各学習装置が学習器を訓練する際に用いる学習データの数に基づいて学習装置ごとに予め定められた値である
学習装置。
【請求項4】
請求項2に記載の学習装置であって、
他の学習装置から受信した学習器と、自装置が訓練した学習器と、自装置が有するデータと、に基づいて前記結合係数を算出する算出部を有し、
前記取得部は、他の学習装置から受信した学習器の出力と自装置が訓練した学習器の出力とを前記算出部が算出した前記結合係数を用いて足し合わせる処理をクラスごとに行うことで、所定の出力を得る
学習装置。
【請求項5】
請求項4に記載の学習装置であって、
前記算出部は、学習器である決定木において各葉ノードに落ちるデータを特定して、葉ノードごとのデータを用いて前記結合係数を算出する
学習装置。
【請求項6】
請求項4に記載の学習装置であって、
前記算出部は、他の学習装置から受信した学習器と、自装置が訓練した学習器と、自装置が有する、検証用のデータであるバリデーションデータと、に基づいて前記結合係数を算出する
学習装置。
【請求項7】
請求項1に記載の学習装置であって、
他の学習装置から受信した学習器と、自装置が有するデータと、を用いて追加の特徴量を算出する特徴量算出部と、
前記特徴量算出部が算出した特徴量を自装置が有するデータに加えて学習することで学習器を訓練する学習部と、
を有し、
前記取得部は、他の学習装置から受信した学習器の出力と前記学習部が訓練した学習器の出力とを所定の結合係数を用いて足し合わせる処理をクラスごとに行うことで、所定の出力を得る
学習装置。
【請求項8】
請求項1に記載の学習装置であって、
前記変換部は、前記変換処理としてソフトマックス変換を行う
学習装置。
【請求項9】
情報処理装置が、
他の学習装置から受信したクラスごとの学習器の出力と自装置が訓練したクラスごとの学習器の出力とをクラスごとに入力して、クラスごとに所定の出力を取得し、
取得したクラスごとの出力に対して確率を表現するための変換処理をクラスごとに行う
学習方法。
【請求項10】
情報処理装置に、
他の学習装置から受信したクラスごとの学習器の出力と自装置が訓練したクラスごとの学習器の出力とをクラスごとに入力して、クラスごとに所定の出力を取得し、
取得したクラスごとの出力に対して確率を表現するための変換処理をクラスごとに行う
処理を実現するためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、学習装置、学習方法、プログラムに関する。
【背景技術】
【0002】
よりよい性能を得ることなどを目的として、各参加者において学習した学習器を組み合わせることがある。
【0003】
例えば、非特許文献1には、各ラウンドにおいて参加者それぞれが決定木を作成して、作成した決定木を結合することでよりよい性能のモデルを作成する勾配ブースティングフォーレスト(GBF:Gradient Boosting Forest)という技術が記載されている。
【0004】
また、関連する文献として、例えば、特許文献1がある。特許文献1には、既存のモデルとの間のギャップを埋めるように追加の決定木を訓練して訓練した決定木モデルを結合することで精度を上げるGBDT(Gradient Boosting Decision Tree)などについて記載されている。
【先行技術文献】
【特許文献】
【0005】
【非特許文献】
【0006】
【非特許文献1】Feng Wang et al., Gradient Boosting Forest: a Two-Stage Ensemble Method Enabling Federated Learning of GBDTsICONIP 2021: Neural Information Processing pp75-86[令和4年3月8日検索],インターネット<https://link.springer.com/chapter/10.1007/978-3-030-92270-2_7>
【発明の概要】
【発明が解決しようとする課題】
【0007】
非特許文献1によると、多クラス分類用のGBFを行う場合、各決定木の出力に対してソフトマックス変換を行った後に、変換後の値を前ラウンドまでの結果に対して所定の割合で足し合わせている。ここで、ソフトマックス変換では、入力に対する出力が0から1の間に収まるように変換を行う。その結果、各ラウンドで正の値しか足されないこととなり、どこかのラウンドで非正解クラスの確率の増加分を過大に見積もったとしてもそれを修正することが難しかった。このように、GBFにおいて的確な学習を行うことが難しい場合があった。
【0008】
そこで、本発明は、上述した課題を解決することが可能な学習装置、学習方法、記録媒体などを提供することを目的の一つとする。
【課題を解決するための手段】
【0009】
かかる目的を達成するため本開示の一形態である学習装置は、
他の学習装置から受信したクラスごとの学習器の出力と自装置が訓練したクラスごとの学習器の出力とをクラスごとに入力して、クラスごとに所定の出力を取得する取得部と、
前記取得部が取得したクラスごとの出力に対して確率を表現するための変換処理をクラスごとに行う変換部と、
を有する
という構成をとる。
【0010】
また、本開示の他の形態である学習方法は、
情報処理装置が、
他の学習装置から受信したクラスごとの学習器の出力と自装置が訓練したクラスごとの学習器の出力とをクラスごとに入力して、クラスごとに所定の出力を取得し、
取得したクラスごとの出力に対して確率を表現するための変換処理をクラスごとに行う
という構成をとる。
【0011】
また、本開示の他の形態であるプログラムは、
情報処理装置に、
他の学習装置から受信したクラスごとの学習器の出力と自装置が訓練したクラスごとの学習器の出力とをクラスごとに入力して、クラスごとに所定の出力を取得し、
取得したクラスごとの出力に対して確率を表現するための変換処理をクラスごとに行う
処理を実現するためのプログラムである。
【発明の効果】
【0012】
上述したような各構成によると、上述したような課題を解決することができる。
【図面の簡単な説明】
【0013】
【
図2】mラウンド目におけるモデルの様子の一例を示す図である。
【
図3】本開示の第1の実施形態における学習システムの構成例を示す図である。
【
図6】学習装置の動作例を示すフローチャートである。
【
図7】本開示の第2の実施形態における学習装置の構成例を示すブロック図である。
【
図10】本開示の第3の実施形態における学習装置のハードウェア構成例を示す図である。
【発明を実施するための形態】
【0014】
[第1の実施形態]
本開示の第1の実施形態について、
図1から
図6までを参照して説明する。
図1は、本開示の概要を説明するための図である。
図2は、mラウンド目におけるモデルの様子の一例を示す図である。
図3は、学習システム100の構成例を示す図である。
図4は、学習装置300の構成例を示すブロック図である。
図5は、学習データ情報341の一例を示す図である。
図6は、学習装置300の動作例を示すフローチャートである。
【0015】
本開示の第1の実施形態では、
図1で示すように、各ラウンドにおいて参加者それぞれが訓練した決定木を結合することでよりよい性能のモデルを作成する、多クラス分類用の学習システム100について説明する。後述するように、本実施形態で説明する学習システム100では、各ラウンドにおいて参加者それぞれが分類対象となる各クラスに対する決定木を訓練する。そして、学習システム100は、各参加者が訓練した決定木を結合する。この際、本実施形態における学習システム100は、各参加者が訓練した決定木の出力を所定の割合で足し合わせる。その後、学習システム100は、ソフトマックス変換などの確率を表現するための変換処理を行う。これにより、学習システム100は、的確な学習を行うことができる。
【0016】
例えば、
図2は、mラウンド目におけるモデルの様子の一例を示している。
図2では、データに対する決定木の出力をg
classで表現している。一例として、g
A,3は、参加者Aが訓練したクラス3に対応する決定木の出力を示す。
図2で例示するように、本実施形態で説明する学習システム100では、後述する結合係数αを用いて、mラウンド目の出力を(m-1)ラウンドまでのモデルの出力に足し合わせる。この際、学習システム100は、クラスごとに上記足し合わせる処理を行ってよい。その後、学習システム100は、ソフトマックス変換などの確率を表現するための変換処理を行う。このように、本実施形態における学習システム100は、出力を足し合わせたのちに確率を表現するための変換処理を行うよう構成される。
【0017】
なお、本実施形態において、確率を表現するための変換処理とは、出力の合計値が1などの所定の値となり、かつ、各クラスに分類される出力であるスコアが正の値となるように行う変換処理のことをいう。例えば、確率を表現するための変換処理は、ソフトマックス変換などであってよい。確率を表現するための変換処理は、出力の合計値が1などの所定値となり、かつ、各クラスに分類されるスコアが正の値となる上記例示した以外であってもよい。例えば、あるデータに対するクラス1に対応する決定木の出力がa1、クラス2に対応する決定木の出力がa2、クラス3に対応する決定木の出力がa3であったとする。この場合、学習システム100は、確率を表現するための変換処理として、クラス1に対応する決定木においてa1の値をa1+a2+a3など各クラスの出力合計値で割る処理などを行ってもよい。学習システム100は、スコアの絶対値を各クラスに対応する絶対値の和で割る、a12 / (a12+a22+a32)を計算するなど、確率を表現するための変換処理として上記例示した以外の処理を行ってもよい。
【0018】
以下、本実施形態における学習システム100の構成についてより詳細に説明する。
図3は、学習システム100の全体的な構成例を示している。
図3を参照すると、学習システム100は、1つまたは複数の他学習装置200と、学習装置300と、を有している。
図3で示すように、他学習装置200と学習装置300とは、互いに通信可能なようネットワークなどを介して接続されている。なお、学習システム100は、複数の学習装置300を有してもよいし、他学習装置200を有さずに複数の学習装置300から構成されてもよい。
【0019】
他学習装置200は、当該他学習装置200が有する学習データに基づいた訓練を行うことで、学習器である決定木を生成する情報処理装置である。上述したように、本実施形態における他学習装置200は、各ラウンドそれぞれにおいて、分類対象となるクラスごとの決定木を訓練することができる。なお、他学習装置200は、特許文献1に記載されているGBDTなど、一般的な方法で決定木を訓練してよい。また、他学習装置200は、生成した決定木を他の他学習装置200や学習装置300に対して送信することができる。
【0020】
学習装置300は、各ラウンドにおいて他学習装置200や学習装置300などの参加者それぞれが訓練した決定木を結合することでよりよい性能のモデルを作成する情報処理装置である。上述したように、本実施形態で説明する学習装置300は、決定木の出力を所定の割合で足し合わせたのちに、ソフトマックス変換などの確率を表現するための変換処理を行うことで、各決定木を結合することができる。
図4は、学習装置300の構成例を示している。
図4を参照すると、学習装置300は、主な構成要素として、例えば、操作入力部310と、画面表示部320と、通信I/F部330と、記憶部340と、演算処理部350と、を有している。
【0021】
なお、
図4では、1台の情報処理装置を用いて学習装置300としての機能を実現する場合について例示している。しかしながら、学習装置300は、例えば、クラウド上に実現されるなど、複数台の情報処理装置を用いて実現されてもよい。また、学習装置300は、操作入力部310や画面表示部320を有さないなど上記例示した構成の一部を含まなくてもよいし、上記例示した以外の構成を有してもよい。
【0022】
操作入力部310は、キーボード、マウスなどの操作入力装置からなる。操作入力部310は、学習装置300を操作する操作者の操作を検出して演算処理部350に出力する。
【0023】
画面表示部320は、LCD(Liquid Crystal Display、液晶ディスプレイ)などの画面表示装置からなる。画面表示部320は、演算処理部350からの指示に応じて、記憶部340に格納されている各種情報などを画面表示することができる。
【0024】
通信I/F部330は、データ通信回路などからなる。通信I/F部330は、通信回線を介して接続された外部装置との間でデータ通信を行う。
【0025】
記憶部340は、ハードディスクやメモリなどの記憶装置である。記憶部340は、演算処理部350における各種処理に必要な処理情報やプログラム344を記憶する。プログラム344は、演算処理部350に読み込まれて実行されることにより各種処理部を実現する。プログラム344は、通信I/F部330などのデータ入出力機能を介して外部装置や記録媒体から予め読み込まれ、記憶部340に保存されている。記憶部340で記憶される主な情報としては、例えば、学習データ情報341、結合係数情報342、学習器情報343などがある。
【0026】
学習データ情報341は、学習器である決定木を訓練する際に用いる学習データを含んでいる。例えば、学習データ情報341は、通信I/F部330を介して外部装置から取得すること、操作入力部310を用いて入力すること、などの方法を用いて予め取得されており、記憶部340に格納されている。
【0027】
図5は、学習データ情報341の一例を示している。
図5を参照すると、学習データ情報341では、複数の特徴量と、分類対象となるクラスに応じたラベルと、が関連付けられている。例えば、
図5で示す例では、特徴量(x
1、x
2、…、x
d)と、ラベルy
1と、が関連付けられている。
図5で示すように、学習データ情報341には複数の学習データが含まれてよい。
【0028】
結合係数情報342は、各参加者が訓練した学習器である決定木の出力を所定の割合で足し合わせる際に用いる結合係数についての情報を含んでいる。結合係数情報342には、他学習装置200や学習装置300などの参加者ごとの結合係数が含まれてよい。例えば、結合係数情報342は、通信I/F部330を介して外部装置から取得すること、操作入力部310を用いて入力すること、などの方法を用いて予め取得されており、記憶部340に格納されている。
【0029】
例えば、結合係数は、非特許文献1に記載されているように、他学習装置200や学習装置300などの各参加者が有する学習データの数に基づいて、予め定められている。一例として、ある参加者が学習した決定木を結合する際に用いる結合係数は、当該ある参加者が有する学習データの数を、他学習装置200や学習装置300など全参加者が有する学習データの数の和で割ることなどにより予め算出されている。なお、結合係数は、上記例示した以外の既知の方法で予め算出、定められていてもよい。
【0030】
学習器情報343は、他学習装置200や自装置などの学習装置300が訓練または結合した決定木についての情報を含んでいる。例えば、学習器情報343では、決定木の送信元を示す識別情報などと決定木とが関連付けられよい。また、学習器情報343には、ラウンドごと、クラスごとの決定木が含まれてよい。例えば、学習器情報343は、後述する受信部351が他学習装置200などから決定木を受信すること、学習部352が決定木の訓練を行うこと、出力合計部353と変換部354とにより決定木を結合すること、などに応じて更新される。
【0031】
演算処理部350は、CPU(Central Processing Unit)などの演算装置とその周辺回路を有する。演算処理部350は、記憶部340からプログラム344を読み込んで実行することにより、上記ハードウェアとプログラム344とを協働させて各種処理部を実現する。演算処理部350で実現される主な処理部としては、例えば、受信部351、学習部352、出力合計部353、変換部354、推論部355、出力部356などがある。
【0032】
なお、演算処理部350は、上述した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)、量子プロセッサ、マイクロコントローラ、又は、これらの組み合わせなどを有してもよい。
【0033】
受信部351は、他学習装置200や他の学習装置300から学習器である決定木を受信する。例えば、受信部351は、各ラウンドにおいて、学習システム100に含まれる各他学習装置200などからクラスごとの決定木を受信することができる。また、受信部351は、受信した決定木を学習器情報343として記憶部340に格納する。
【0034】
なお、受信部351は、例えば、前ラウンドにおける決定木との間の差分を示す情報などを他学習装置200などから受信してもよい。この場合、受信部351は、受信した差分を示す情報に基づいて対応する決定木を更新するよう構成してもよい。
【0035】
学習部352は、学習データ情報341が示す学習データに基づく学習を行うことで、学習器である決定木を訓練する。学習部352は、クラスごとに決定木を訓練してよい。例えば、学習部352は、特許文献1に記載されたGBDTなどの方法を用いて、前ラウンドまでのモデルの誤差を修正するように追加の決定木を訓練することができる。学習部352は、その他既知の方法を用いて決定木を訓練してもよい。また、学習部352は、訓練した決定木を学習器情報343として記憶部340に格納する。
【0036】
出力合計部353は、他の学習装置から受信した学習器である決定木の出力と自装置が訓練した学習器である決定木の出力とをクラスごとに入力して、クラスごとに所定の出力を取得する取得部として機能する。例えば、出力合計部353は、他学習装置200や学習装置300などの各参加者が訓練した決定木の出力を足し合わせることで、上記所定の出力を取得する。一例として、出力合計部353は、結合係数情報342として格納された、各参加者が有する学習データに基づいて予め算出される重みである結合係数αを用いて、前ラウンドまでのモデルの出力に現ラウンドで訓練した決定木の出力を足し合わせる。出力合計部353は、クラスごとに、上記重みつきの足し合わせる処理を行ってよい。
【0037】
例えば、出力合計部353は、数1で示すような計算を行うことで、上述した重みつきの足し合わせる処理をクラスごとに行う。数1では、参加者がA、B、Cである場合における処理例を示している。例えば、出力合計部353は、数1で示すように、各クラスについて、参加者ごとの結合係数αを用いて、前ラウンドまでのモデルの出力に現ラウンドで訓練した決定木の出力を足し合わせることができる。
【数1】
なお、gは決定木の出力を示し、g
initialは、前ラウンドまでのモデルの出力を示す。例えば、g
i,classは、参加者iが訓練したクラスclassに対応する決定木の出力を示す。αは結合係数であり、例えばα
Aは参加者Aに対応する結合係数を示す。
【0038】
変換部354は、出力合計部353による処理の結果を用いて、確率を表現するための変換処理をクラスごとに行う。また、変換部354は、変換の結果を学習器情報343として記憶部340に格納する。
【0039】
例えば、変換部354は、確率を表現するための変換処理として、数2で示すようなソフトマックス変換を行う。ここで、ソフトマックス変換は、出力の合計が1となり、かつ、どんな入力に対しても出力が0~1の間に収まる、という性質を有する。また、ソフトマックス変換は、大小関係をキープするような性質を有する。つまり、変換対象の関係がg
1>g
2の場合、変換後の値であるPの関係もP
1>P
2となる。
【数2】
なお、数2のうちyは変換結果として出力される確率を表す値pを示し、xは出力合計部353が処理を行った決定木の出力gに対応する。また、iは他学習装置200や学習装置300などの参加者に応じた値である。数2のうち学習システム100に含まれる参加者の数を示すnは任意の値であってよい。
【0040】
推論部355は、変換部354が変換した結果を用いた推論を行う。例えば、推論部355は、過去のラウンドで訓練した決定木や結合係数なども用いた推論を行ってよい。
【0041】
出力部356は、記憶部340に含まれる決定木の出力を行ったり、推論部355による推論結果の出力を行ったりする。例えば、出力部356は、通信I/F部330を介して他学習装置200などの外部装置に対して決定木を送信したり、推論の結果を画面表示部320上に表示させたり通信I/F部330を介して外部装置へと送信したりしてよい。出力部356は、任意のタイミングで出力を行うことができる。
【0042】
以上が、学習装置300の構成例である。続いて、
図6を参照して、学習装置300の動作例について説明する。
図6は、あるラウンドにおける学習装置300の動作例を示すフローチャートである。
図6を参照すると、受信部351は、他学習装置200から学習器である決定木を受信する(ステップS101)。受信部351は、分類対象となるクラスごとの決定木を受信してよい。
【0043】
学習部352は、学習データ情報341が示す学習データに基づく学習を行うことで、学習器である決定木を生成する(ステップS102)。例えば、学習部352は、特許文献1に記載されたGBDTなどの方法を用いて、前ラウンドまでのモデルの誤差を修正するような追加の決定木を生成する。学習部352は、クラスごとに決定木を生成してもよい。
【0044】
出力合計部353は、他学習装置200や学習装置300などの各参加者が訓練した決定木の出力を足し合わせる(ステップS103)。例えば、出力合計部353は、結合係数情報342として格納された、各参加者が有する学習データに基づいて予め算出される重みである結合係数αを用いて、前ラウンドまでのモデルの出力に現ラウンドで訓練した決定木の出力を足し合わせる。出力合計部353は、クラスごとに、上記重みつきの足し合わせる処理を行ってよい。
【0045】
変換部354は、出力合計部353による処理の結果に基づいて、確率を表現するための変換処理をクラスごとに行う。例えば、変換部354は、確率を表現するための変換処理として、数1で示すようなソフトマックス変換を行う(ステップS104)。
【0046】
以上が、学習装置300の動作例である。学習装置300は、
図6で示すような一連の処理を、例えば予め定められた条件を満たすまで繰り返すことができる。
【0047】
このように、学習装置300は、出力合計部353と変換部354とを有している。このような構成によると、学習装置300は、出力合計部353による重みつきの足し合わせる処理の後に、変換部354による確率を表現するための変換処理を行うことができる。その結果、マイナスの値をとりうる決定木の出力に対してソフトマックス変換を行う前に足し合わせる処理を行うため、確率を過大評価した場合などにおいて次のラウンドで修正することができる。これにより、より的確な学習を行うことができる。また、各ラウンドで正の値を足してしまうとラウンドが進むことにより確率が1を超えてしまう場合があるが、上記構成によると、ソフトマックス変換の前に足し合わせる処理を行うため、このような確率が1を超えるおそれを低減させることができる。
【0048】
なお、本実施形態においては、学習器として決定木を用いる場合について説明した。しかしながら、本発明の対象となる学習器は、決定木に限定されない。例えば、学習器は、浅いニューラルネットやサポートベクターマシンなどであってもよい。もちろん、最終的に生成される学習器も、上記各学習器に応じたものであってよい。例えば、学習器としてニューラルネットを用いた場合、最終的に生成されるモデルは勾配ブースティングニューラルネットなどであってもよい。
【0049】
[第2の実施形態]
続いて、本開示の第2の実施形態について、
図7から
図9までを参照して説明する。
図7は、学習装置400の構成例を示すブロック図である。
図8は、ソフトマックス変換の一例を示す図である。
図9は、ニューラルネットの構成例を示す図である。
【0050】
本開示の第2の実施形態では、第1の実施形態で説明した学習システム100の変形例について説明する。本実施形態における学習システム100は、第1の実施形態で説明した学習装置300の代わりに、または、学習装置300とともに、学習装置400を有することができる。
【0051】
学習装置400は、当該学習装置400が有する学習データやバリデーションデータなどのデータに対してより適切な予測を行うように、第1の実施形態で説明した学習装置300よりもよりパーソナライズされた決定木の訓練を行う情報処理装置である。例えば、学習装置400は、自装置で訓練した決定木や他の参加者から受信した決定木と、予め記憶するバリデーションデータなどと、を用いて、各決定木に対応する結合係数αを算出する。そして、学習装置400は、算出した結合係数αを用いた足し合わせる処理を行う。換言すると、学習装置400は、学習データ数に基づいて結合係数αを予め定めておく代わりに、各参加者から取得した決定木とバリデーションデータに基づいて、バリデーションデータに対する予測性能が最適になるよう結合係数αを算出する。また、学習装置400は、他の参加者から受信した決定木に対して学習データやバリデーションデータなどを入力することで得られる追加特徴量を学習データに追加した訓練を行うことで、自装置の決定木を訓練する。学習装置400は、上記例示した方法のいずれか、または、組み合わせを用いることで、より自装置が有する学習データなどにパーソナライズされた決定木の訓練を行う。
【0052】
以下、学習システム100が有する構成のうち、本実施形態に特徴的な構成である学習装置400について説明する。
【0053】
図7は、学習装置400の構成例を示している。
図7を参照すると、学習装置400は、主な構成要素として、例えば、操作入力部310と、画面表示部320と、通信I/F部330と、記憶部440と、演算処理部450と、を有している。なお、学習装置400は、第1の実施形態で説明した学習装置300と同様の変形例から構成されてもよい。また、操作入力部310、画面表示部320、通信I/F部330の構成は、第1の実施形態と同様であってよい。
【0054】
記憶部440は、ハードディスクやメモリなどの記憶装置である。記憶部440は、演算処理部450における各種処理に必要な処理情報やプログラム443を記憶する。プログラム443は、演算処理部450に読み込まれて実行されることにより各種処理部を実現する。プログラム443は、通信I/F部330などのデータ入出力機能を介して外部装置や記録媒体から予め読み込まれ、記憶部440に保存されている。記憶部440で記憶される主な情報としては、例えば、学習データ情報341、バリデーションデータ情報441、学習器情報343、係数情報442などがある。なお、記憶部440には、第1の実施形態で説明した結合係数情報342などが含まれてもよい。以下、記憶部440に格納された各情報のうち、本実施形態に特徴的な情報について説明する。
【0055】
バリデーションデータ情報441は、訓練した決定木の性能などを検証する際に用いるデータであるバリデーションデータを含んでいる。例えば、バリデーションデータ情報441は、通信I/F部330を介して外部装置から取得する、操作入力部310を用いて入力する、などの方法を用いて予め取得されており、記憶部440に格納されている。
【0056】
バリデーションデータ情報441では、学習データ情報341と同様に、複数の特徴量と、ラベルと、が関連付けられている。バリデーションデータ情報441には複数のバリデーションデータが含まれてよい。
【0057】
係数情報442は、他学習装置200から受信した決定木や学習部452が訓練した決定木などの各決定木に対応する結合係数を含んでいる。例えば、係数情報442では、決定木の識別情報と結合係数とが関連付けられている。係数情報442には、ラウンドごと、決定木ごとの結合係数が含まれてよい。例えば、係数情報442は、後述する係数算出部453が結合係数を算出することなどに応じて更新される。
【0058】
演算処理部450は、CPUなどの演算装置とその周辺回路を有する。演算処理部450は、記憶部440からプログラム443を読み込んで実行することにより、上記ハードウェアとプログラム443とを協働させて各種処理部を実現する。演算処理部450で実現される主な処理部としては、例えば、受信部351、特徴量追加算出部451、学習部452、係数算出部453、出力合計部353、変換部354、推論部355、出力部356などがある。なお、第1の実施形態と同様に、演算処理部450は、CPUの代わりにGPUなどを有してもよい。以下、本実施形態に特徴的な構成について説明する。
【0059】
特徴量追加算出部451は、受信部351が受信した決定木と、学習データ情報341に含まれる学習データと、に基づいて、追加の学習データを算出する。例えば、特徴量追加算出部451は、受信部351が受信した決定木に対して学習データ情報341に含まれる各学習データを入力することで、学習器から出力を得る。特徴量追加算出部451は、上記出力を、追加の特徴量として取得することができる。
【0060】
例えば、学習データ情報341に特徴量xi、ラベルyiを含む(xi、yi)という学習データが含まれるとする(iは任意でよい)。また、他学習装置200からf1()、f2()、…という決定木を受信したとする。この場合、特徴量追加算出部451は、各決定木に特徴量xiを入力することで、f1(xi)、f2(xi)、…という追加の特徴量を算出する。その結果、後述する学習部452による学習対象となる学習データは、(xi、f1(xi)、f2(xi)、…、yi)となる。
【0061】
なお、特徴量追加算出部451は、他学習装置200から受信したすべての決定木を用いて追加の特徴量を算出してもよいし、他学習装置200から受信した決定木のうちの一部を抽出して抽出した一部を用いて追加の特徴量を算出してもよい。特徴量追加算出部451は、任意の方法を用いて一部の決定木を抽出してよい。また、特徴量追加算出部451は、学習データ情報341に含まれるすべての学習データを用いて追加の特徴量を算出してもよいし、一部を抽出して抽出した一部の学習データを用いて追加の特徴量を算出してもよい。上記と同様、特徴量追加算出部451は、任意の方法を用いて一部の学習データを抽出してよい。また、特徴量追加算出部451は、学習データの代わりにバリデーションデータを決定木に入力することで追加の特徴量を算出してもよい。
【0062】
学習部452は、特徴量追加算出部451が算出した特徴量と、学習データ情報341が示す学習データと、に基づく学習を行うことで、学習器である決定木を訓練する。学習部452は、第1の実施形態で説明した学習部352と同様、クラスごとに決定木をしてよい。例えば、学習部452は、学習部352と同様に、GBDTなどの既知の方法を用いて前ラウンドまでのモデルの誤差を修正するように追加の決定木を訓練することができる。学習部452は、その他既知の方法を用いて決定木を訓練してもよい。また、学習部452は、生成した決定木を学習器情報343として記憶部340に格納する。
【0063】
なお、学習部452は、上述した特徴量追加算出部451により算出された追加の特徴量をそのまま学習データに追加して機械学習を行ってもよいし、例えば、特徴量追加算出部451により算出された追加の特徴量を線形結合した結果などを学習データに追加して機械学習を行うよう構成してもよい。学習部452は、特徴量追加算出部451により算出された追加の特徴量と、追加の特徴量を線形結合した結果と、を共に学習データに追加して機械学習を行ってもよい。
【0064】
係数算出部453は、バリデーションデータ情報441が示すバリデーションデータを用いて、結合係数を決定木ごとに算出する。例えば、係数算出部453は、バリデーションデータ情報441が示すバリデーションデータに対する予測性能が最適になるように、結合係数を算出する。係数算出部453は、受信部351が受信した決定木や学習部452が生成した決定木ごとに結合係数を算出することができる。係数算出部453は、重回帰などの線形回帰、ニューラルネット、サポートベクター回帰(Support Vector Regression, SVR)などの方法を用いて上記算出を行ってよい。また、係数算出部453は、算出した結合係数を係数情報442として記憶部340に格納する。
【0065】
例えば、バリデーションデータ情報441に特徴量x1i 、ラベルy1iを含む(x1i ,y1i)というバリデーションデータが含まれるとする。また、他学習装置200や学習部452によりf11()、f12()、…という決定木を受信したり生成したりしたとする。この場合、まず、係数算出部453は、各決定木にバリデーションデータを入力することで出力を得る。例えば、係数算出部453は、バリデーションデータ(x1i ,y1i)を決定木f11()に入力することで出力uiを得る。また、係数算出部453は、バリデーションデータ(x1i ,y1i)を決定木f12()に入力することで出力viを得る。そして、係数算出部453は、(ui、vi、y1i)を使うことで、決定木ごとの結合係数を算出する。例えば、係数算出部453は、線形回帰を行うことなどにより、結合係数を算出してよい。例えば、係数算出部453は、バリデーションデータ(x1i ,y1i)と出力uiとを用いた線形回帰を行うことで決定木f11()に対応する結合係数を決定してよい。
【0066】
また、上記結合係数を決定する際、係数算出部453は、出力gの正解値として、ソフトマックス変換を行ったときに正解ラベルに近似的に近づく値を用いてもよい。例えば、(0、0、1)というクラス3に属するデータの確率を再現したい場合、正解値である出力gとしては(0、0、10)などを用いることが考えられる。例えば、数2で示した式の具体的な計算例である
図8で示すように、出力gの正解値として(0、0、10)などを用いることで、ソフトマックス変換を行った際に正解ラベルに近似的に近づいていることが分かる。なお、正解値は、(0、0、100)など上記例示した以外の近似的に近づく値であってもよい。
【0067】
なお、係数算出部453は、バリデーションデータ全体を用いて結合係数を算出してもよいし、バリデーションデータのうちの一部を用いて結合係数を算出してもよい。例えば、モデルの構造や分岐条件などの学習部452が生成した決定木についてのモデル情報を参照すると、各バリデーションデータが落ちる葉ノードを特定することができる。そこで、係数算出部453は、例えば、葉ノードごとのバリデーションデータを用いて線形回帰を行うことなどにより、葉ノードごとに結合係数を算出してもよい。葉ノードごとに落ちるデータの性質が異なるため、葉ノードごとに結合係数を最適化することでより細かな性質に最適化することができる。
【0068】
また、係数算出部453は、バリデーションデータの代わりに学習データ情報341が示す学習データを用いて結合係数を算出してもよい。ただし、過度な偏りを抑制する、という観点からすると、学習データを用いるよりもバリデーションデータを用いて結合係数を算出する方が望ましい。
【0069】
また、係数算出部453は、上述したように、その他任意の方法で結合係数を算出してもよい。例えば、係数算出部453は、ニューラルネットを使った回帰により結合係数を算出してもよい。
図9で例示するように、ニューラルネットを使って線形回帰を表した場合、隠れ層なしの1層のユーラルネットワーク構造として記載することができる。例えば、
図9で例示する場合、入力層のユニット数は参加者の数に応じたものであり、出力層のユニット数は1になる。また、上記構造を数式で表すと、例えば数3のようになる。係数算出部453は、数3で示す式のうち係数w
1、……w
dと、バイアスbを学習することができる。数3で示す式では、係数w
1、……、w
dが各決定木の結合係数に相当する。
【数3】
なお、wは係数であり各決定木の結合係数に相当する。また、xは各決定木の出力に相当する。
【0070】
なお、一般には、数4で示すように、ニューラルネットでは、非線形な活性化関数fを使う。上述したように線形回帰を表す場合、活性化関数fとして恒等関数を用いることで、数3で示したように表記することができる。なお、係数算出部453は、活性化関数fとして恒等関数以外の任意の活性化関数を用いてもよい。
【数4】
【0071】
また、係数算出部453は、上記例示した場合の他、中間層を有するニューラルネットを使って、ニューラルネットのパラメータを学習するよう構成してもよい。この構造の場合、中間層は何層でもいいし、ユニット数も特に制限しない。また、係数算出部453はSVRなどを使って結合係数を決定してもよい。係数算出部453は、上記例示した方法のうちのいずれかを用いて結合係数を決定してよい。
【0072】
出力合計部353は、本実施形態の場合、結合係数情報342として格納された結合係数の代わりに、係数算出部453が算出、決定した結合係数を用いて、重みつきの足し合わせる処理を行う。以降の処理は、第1の実施形態と同様であって良い。
【0073】
このように、学習装置400は、特徴量追加算出部451と学習部452とを有している。このような構成によると、学習部452は、特徴量追加算出部451が算出した特徴量を加えた学習データを用いた学習を行うことにより学習器である決定木を生成することができる。その結果、他学習装置200による学習の成果も取り込んだ形で決定木を生成することができる。これにより、性能を高めつつ、自装置が有するデータにより適した学習器である決定木を生成することができる。つまり、上記構成によると、より的確な学習を行うことができるとともに、よりパーソナライズされた決定木の訓練を行うことができる。
【0074】
また、学習装置300は、係数算出部453を有している。このような構成によると、出力合計部353は、係数算出部453が算出した結合係数を用いて、重みつきの足し合わせる処理を行うことができる。上述したように、係数算出部453は、バリデーションデータなどに対する予測性能が最適になるように、結合係数を算出する。そのため、上記結合係数を用いて各決定木を結合することで、性能を高めつつ、バリデーションデータを有する学習装置300により適した学習器である決定木を生成することができる。つまり、上記構成によると、より的確な学習を行うことができるとともに、よりパーソナライズされた決定木の訓練を行うことができる。
【0075】
なお、本実施形態においては、学習装置400が特徴量追加算出部451と係数算出部453とをともに有する場合について例示した。しかしながら、学習装置400は、特徴量追加算出部451と係数算出部453とのうちのいずれか一つのみを有してもよい。
【0076】
例えば、学習装置400が特徴量追加算出部451を有さない場合、学習部452は、第1の実施形態で説明した学習部352と同様に、学習データ情報341に含まれる学習データに基づく訓練を行う。このような場合であっても、上述したように、バリデーションデータに対する予測性能が最適になるように結合係数を算出するため、結合係数を用いて各決定木を結合することで、性能を高めつつ、バリデーションデータを有する学習装置300により適した学習器である決定木を生成することができる。
【0077】
また、例えば、学習装置400が係数算出部453を有さない場合、出力合計部353は、他学習装置200による学習の成果も取り込んだ形で生成される決定木の出力と、前ラウンドまでのモデルの出力とを足し合わせる。その結果、性能を高めつつ、自装置が有するデータにより適した学習器である決定木を生成することができる。
【0078】
[第3の実施形態]
次に、本開示の第3の実施形態について、
図10、
図11を参照して説明する。
図10、学習装置500のハードウェア構成例を示す図である。
図11は、学習装置500の構成例を示すブロック図である。
【0079】
本開示の第3の実施形態においては、他の学習装置などから受信した学習器と自装置で訓練した学習器とを結合する情報処理装置である学習装置500の構成例について説明する。
図10は、学習装置500のハードウェア構成例を示している。
図10を参照すると、学習装置500は、一例として、以下のようなハードウェア構成を有している。
・CPU(Central Processing Unit)501(演算装置)
・ROM(Read Only Memory)502(記憶装置)
・RAM(Random Access Memory)503(記憶装置)
・RAM503にロードされるプログラム群504
・プログラム群504を格納する記憶装置505
・情報処理装置外部の記録媒体510の読み書きを行うドライブ装置506
・情報処理装置外部の通信ネットワーク511と接続する通信インタフェース507
・データの入出力を行う入出力インタフェース508
・各構成要素を接続するバス509
【0080】
また、学習装置500は、プログラム群504をCPU501が取得して当該CPU501が実行することで、
図11に示す取得部521、変換部522としての機能を実現することができる。なお、プログラム群504は、例えば、予め記憶装置505やROM502に格納されており、必要に応じてCPU501がRAM503などにロードして実行する。また、プログラム群504は、通信ネットワーク511を介してCPU501に供給されてもよいし、予め記録媒体510に格納されており、ドライブ装置506が該プログラムを読み出してCPU501に供給してもよい。
【0081】
なお、
図10は、学習装置500のハードウェア構成例を示している。学習装置500のハードウェア構成は上述した場合に限定されない。例えば、学習装置500は、ドライブ装置506を有さないなど、上述した構成の一部から構成されてもよい。
【0082】
取得部521は、他の学習装置から受信したクラスごとの学習器の出力と自装置が訓練したクラスごとの学習器の出力とをクラスごとに入力して、クラスごとに所定の出力を取得する。例えば、取得部521は、他の学習装置から受信した学習器の出力と自装置が訓練した学習器の出力とを所定の結合係数を用いて足し合わせる処理をクラスごとに行うことで、所定の出力を得ることができる。
【0083】
変換部522は、取得部521が取得した出力に対して確率を表現する変換処理をクラスごとに行う。例えば、変換部522は、変換処理としてソフトマックス変換などを行ってよい。
【0084】
このように、学習装置500は、取得部521と変換部522とを有している。このような構成によると、学習装置500は、取得部521が出力を取得した後に変換処理を行うことができる。その結果、取得部521による処理の後に変換処理を行うことができるため、確率を過大評価した場合などにおいて次のラウンドで修正することができる。これにより、より的確な学習を行うことができる。
【0085】
なお、上述した学習装置500は、当該学習装置500などの情報処理装置に所定のプログラムが組み込まれることで実現できる。具体的に、本発明の他の形態であるプログラムは、学習装置500などの情報処理装置に、他の学習装置から受信した学習器の出力と自装置が訓練した学習器の出力とを入力して、所定の出力を取得し、取得した出力に対して確率を表現するための変換処理を行う、処理を実現するためのプログラムである。
【0086】
また、上述した学習装置500などの情報処理装置により実行される学習方法は、学習装置500などの情報処理装置が、他の学習装置から受信した学習器の出力と自装置が訓練した学習器の出力とを入力して、所定の出力を取得し、取得した出力に対して確率を表現するための変換処理を行う、という方法である。
【0087】
上述した構成を有する、プログラム、又は、プログラムを記録したコンピュータが読み取り可能な記録媒体、又は、学習方法、の発明であっても、上述した学習装置500と同様の作用・効果を奏するために、上述した本開示の目的を達成することができる。
【0088】
<付記>
上記実施形態の一部又は全部は、以下の付記のようにも記載されうる。以下、本発明における学習装置などの概略を説明する。但し、本発明は、以下の構成に限定されない。
【0089】
(付記1)
他の学習装置から受信したクラスごとの学習器の出力と自装置が訓練したクラスごとの学習器の出力とをクラスごとに入力して、クラスごとに所定の出力を取得する取得部と、
前記取得部が取得したクラスごとの出力に対して確率を表現するための変換処理をクラスごとに行う変換部と、
を有する
学習装置。
(付記2)
付記1に記載の学習装置であって、
前記取得部は、他の学習装置から受信した学習器の出力と自装置が訓練した学習器の出力とを所定の結合係数を用いて足し合わせる処理をクラスごとに行うことで、所定の出力を得る
学習装置。
(付記3)
付記2に記載の学習装置であって、
前記結合係数は、各学習装置が学習器を訓練する際に用いる学習データの数に基づいて学習装置ごとに予め定められた値である
学習装置。
(付記4)
付記2に記載の学習装置であって、
他の学習装置から受信した学習器と、自装置が訓練した学習器と、自装置が有するデータと、に基づいて前記結合係数を算出する算出部を有し、
前記取得部は、他の学習装置から受信した学習器の出力と自装置が訓練した学習器の出力とを前記算出部が算出した前記結合係数を用いて足し合わせる処理をクラスごとに行うことで、所定の出力を得る
学習装置。
(付記5)
付記4に記載の学習装置であって、
前記算出部は、学習器である決定木において各葉ノードに落ちるデータを特定して、葉ノードごとのデータを用いて前記結合係数を算出する
学習装置。
(付記6)
付記4または付記5に記載の学習装置であって、
前記算出部は、他の学習装置から受信した学習器と、自装置が訓練した学習器と、自装置が有する、検証用のデータであるバリデーションデータと、に基づいて前記結合係数を算出する
学習装置。
(付記7)
付記1から付記6までのうちのいずれか1項に記載の学習装置であって、
他の学習装置から受信した学習器と、自装置が有するデータと、を用いて追加の特徴量を算出する特徴量算出部と、
前記特徴量算出部が算出した特徴量を自装置が有するデータに加えて学習することで学習器を訓練する学習部と、
を有し、
前記取得部は、他の学習装置から受信した学習器の出力と前記学習部が訓練した学習器の出力とを所定の結合係数を用いて足し合わせる処理をクラスごとに行うことで、所定の出力を得る
学習装置。
(付記8)
付記1から付記7までのうちのいずれか1項に記載の学習装置であって、
前記変換部は、前記変換処理としてソフトマックス変換を行う
学習装置。
(付記9)
情報処理装置が、
他の学習装置から受信したクラスごとの学習器の出力と自装置が訓練したクラスごとの学習器の出力とをクラスごとに入力して、クラスごとに所定の出力を取得し、
取得したクラスごとの出力に対して確率を表現するための変換処理をクラスごとに行う
学習方法。
(付記10)
情報処理装置に、
他の学習装置から受信したクラスごとの学習器の出力と自装置が訓練したクラスごとの学習器の出力とをクラスごとに入力して、クラスごとに所定の出力を取得し、
取得したクラスごとの出力に対して確率を表現するための変換処理をクラスごとに行う
処理を実現するためのプログラム。
【0090】
以上、上記各実施形態を参照して本願発明を説明したが、本願発明は、上述した実施形態に限定されるものではない。本願発明の構成や詳細には、本願発明の範囲内で当業者が理解しうる様々な変更をすることができる。
【符号の説明】
【0091】
100 学習システム
200 他学習装置
300 学習装置
310 操作入力部
320 画面表示部
330 通信I/F部
340 記憶部
341 学習データ情報
342 結合係数情報
343 学習器情報
344 プログラム
350 演算処理部
351 受信部
352 学習部
353 出力合計部
354 変換部
355 推論部
356 出力部
400 学習装置
440 記憶部
441 バリデーションデータ情報
442 係数情報
443 プログラム
450 演算処理部
451 特徴量追加算出部
452 学習部
453 係数算出部
500 学習装置
501 CPU
502 ROM
503 RAM
504 プログラム群
505 記憶装置
506 ドライブ装置
507 通信インタフェース
508 入出力インタフェース
509 バス
510 記録媒体
511 通信ネットワーク
521 取得部
522 変換部