(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2022191762
(43)【公開日】2022-12-28
(54)【発明の名称】統合装置、学習装置、および統合方法
(51)【国際特許分類】
G06N 20/00 20190101AFI20221221BHJP
【FI】
G06N20/00
【審査請求】未請求
【請求項の数】15
【出願形態】OL
(21)【出願番号】P 2021100197
(22)【出願日】2021-06-16
(71)【出願人】
【識別番号】000005108
【氏名又は名称】株式会社日立製作所
(74)【代理人】
【識別番号】110001678
【氏名又は名称】藤央弁理士法人
(72)【発明者】
【氏名】鈴木 麻由美
(72)【発明者】
【氏名】吉田 英恵
(72)【発明者】
【氏名】李 云
(57)【要約】
【課題】連合学習の効率化を図ること。
【解決手段】統合装置は、第1学習装置から、前記第1学習装置の第1予測モデルにおける第1学習データに関する知識係数を受信する受信処理と、複数の第2学習装置の各々に、前記第1予測モデルと、前記受信処理によって受信された前記第1学習データの知識係数に関するデータと、を送信する送信処理と、前記送信処理によって送信した結果、前記複数の第2学習装置の各々が第2学習データおよび前記知識係数に関するデータを前記第1予測モデルに学習させて生成した第2予測モデルにおけるモデルパラメータを統合することにより、統合予測モデルを生成する統合処理と、を実行する。
【選択図】
図2
【特許請求の範囲】
【請求項1】
プログラムを実行するプロセッサと、前記プログラムを記憶する記憶デバイスと、を有する統合装置であって、
前記プロセッサは、
第1学習装置から、前記第1学習装置の第1予測モデルにおける第1学習データに関する知識係数を受信する受信処理と、
複数の第2学習装置の各々に、前記第1予測モデルと、前記受信処理によって受信された前記第1学習データの知識係数に関するデータと、を送信する送信処理と、
前記送信処理によって送信した結果、前記複数の第2学習装置の各々が第2学習データおよび前記知識係数に関するデータを前記第1予測モデルに学習させて生成した第2予測モデルにおけるモデルパラメータを統合することにより、統合予測モデルを生成する統合処理と、
を実行することを特徴とする統合装置。
【請求項2】
請求項1に記載の統合装置であって、
複数の前記第1学習装置と通信可能であり、
前記プロセッサは、
前記複数の第1学習装置の各々が各々の前記第1学習データを第1学習対象モデルに学習させて生成した第1予測モデルにおけるモデルパラメータを統合することにより、先行統合予測モデルを生成する先行統合処理を実行し、
前記送信処理では、前記プロセッサは、前記複数の第1学習装置の各々から、前記第1学習データに関する知識係数を受信し、
前記送信処理では、前記プロセッサは、前記複数の第2学習装置の各々に、前記先行統合処理によって生成された先行統合予測モデルと、前記受信処理によって受信された前記第1学習データごとの知識係数に関するデータと、を送信し、
前記統合処理では、前記プロセッサは、前記送信処理によって送信した結果、前記複数の第2学習装置の各々が各々の前記第2学習データおよび前記知識係数に関するデータを第2学習対象モデルに学習させて生成した第2予測モデルにおけるモデルパラメータを統合することにより、前記統合予測モデルを生成する、
ことを特徴とする統合装置。
【請求項3】
請求項2に記載の統合装置であって、
前記先行統合処理では、前記プロセッサは、前記複数の第1予測モデルの各々の予測精度が第1しきい値以上になるまで前記先行統合予測モデルを生成し、かつ、前記第1学習対象モデルとして前記複数の第1学習装置の各々に送信する処理を繰り返す、
ことを特徴とする統合装置。
【請求項4】
請求項2に記載の統合装置であって、
前記受信処理では、前記プロセッサは、前記複数の第1予測モデルの各々の予測精度が第1しきい値以上になった場合、前記複数の第1学習装置の各々から、前記第1学習データに関する知識係数を受信する、
ことを特徴とする統合装置。
【請求項5】
請求項1に記載の統合装置であって、
前記送信処理では、前記プロセッサは、前記複数の第2学習装置の各々に、前記第1予測モデルと、前記第1学習データの知識係数と、を送信する、
ことを特徴とする統合装置。
【請求項6】
請求項2に記載の統合装置であって、
前記プロセッサは、
前記第1学習データごとの知識係数を合成して合成知識係数を生成する合成処理を実行し、
前記送信処理では、前記プロセッサは、前記複数の第2学習装置の各々に、前記先行統合予測モデルと、前記合成処理によって合成された合成知識係数と、を送信する、
ことを特徴とする統合装置。
【請求項7】
請求項2に記載の統合装置であって、
前記送信処理では、前記プロセッサは、複数の前記第2予測モデルの各々の予測精度が第2しきい値以上になるまで前記統合予測モデルを生成し、かつ、前記第2学習対象モデルとして前記複数の第2学習装置の各々に送信する処理を繰り返す、
ことを特徴とする統合装置。
【請求項8】
プログラムを実行するプロセッサと、前記プログラムを記憶する記憶デバイスと、を有する学習装置であって、
前記プロセッサは、
第1学習データを学習対象モデルに学習させて第1予測モデルを生成する学習処理と、
前記学習処理によって生成された第1予測モデルにおけるモデルパラメータをコンピュータに送信する第1送信処理と、
前記コンピュータから、前記コンピュータが前記モデルパラメータおよび他の学習装置の他の第1予測モデルにおける他のモデルパラメータを統合することにより生成した統合予測モデルを、前記学習対象モデルとして受信する受信処理と、
前記受信処理によって前記統合予測モデルが受信された場合、前記第1学習データの知識係数を算出する知識係数算出処理と、
前記知識係数算出処理によって算出された前記知識係数を前記コンピュータに送信する第2送信処理と、
を実行することを特徴とする学習装置。
【請求項9】
請求項8に記載の学習装置であって、
前記学習処理では、前記プロセッサは、前記受信処理によって前記統合予測モデルが受信されなくなるまで、前記第1学習データを前記統合予測モデルに学習させて前記第1予測モデルを生成する処理を繰り返す、
ことを特徴とする学習装置。
【請求項10】
請求項8に記載の学習装置であって、
前記プロセッサは、
前記学習処理によって前記第1学習データを前記統合予測モデルに学習させることにより生成された第1予測モデルの予測精度を算出する予測精度算出処理を実行し、
前記知識係数算出処理では、前記プロセッサは、前記予測精度算出処理によって算出された予測精度および他の学習装置で算出された予測精度が第1しきい値以上になったときの前記第1予測モデルにおける前記知識係数を算出する、
ことを特徴とする学習装置。
【請求項11】
プログラムを実行するプロセッサと、前記プログラムを記憶する記憶デバイスと、を有する学習装置であって、
前記プロセッサは、
第1予測モデルと、前記第1予測モデルの学習に用いられた第1学習データの知識係数に関するデータとを、コンピュータから受信する第1受信処理と、
第2学習データおよび前記第1受信処理によって受信された知識係数に関するデータを、学習対象モデルとして前記第1受信処理によって受信された第1予測モデルに学習させて第2予測モデルを生成する学習処理と、
前記学習処理によって生成された第2予測モデルにおけるモデルパラメータを前記コンピュータに送信する送信処理と、
を実行することを特徴とする学習装置。
【請求項12】
請求項11に記載の学習装置であって、
前記コンピュータが前記第2予測モデルにおけるモデルパラメータおよび他の学習装置によって学習された他の第2予測モデルにおける他のモデルパラメータを統合することにより生成した第2統合予測モデルを、前記学習対象モデルとして、前記コンピュータから受信する第2受信処理を実行し、
前記学習処理では、前記プロセッサは、前記コンピュータから、前記第2受信処理によって前記第2統合予測モデルが受信されなくなるまで、前記第2予測モデルを生成する処理を繰り返す、
ことを特徴とする学習装置。
【請求項13】
請求項11に記載の学習装置であって、
前記プロセッサは、
前記コンピュータが前記第2予測モデルにおけるモデルパラメータおよび他の学習装置によって学習された他の第2予測モデルにおける他のモデルパラメータを統合することにより生成した第2統合予測モデルを、前記学習対象モデルとして、前記コンピュータから受信する第2受信処理と、
前記学習処理によって前記第2学習データおよび前記知識係数に関するデータを前記第2受信処理によって受信された第2統合予測モデルに学習させることにより生成された第2予測モデルの予測精度を算出する予測精度算出処理と、を実行し、
前記学習処理では、前記プロセッサは、前記予測精度算出処理によって算出された予測精度および前記他の学習装置で算出された予測精度が第2しきい値以上になるまで、前記第2予測モデルを生成する処理を繰り返す、
ことを特徴とする学習装置。
【請求項14】
請求項11に記載の学習装置であって、
前記第1受信処理では、前記プロセッサは、複数の前記第1予測モデルを統合した第1統合予測モデルと、前記第1予測モデルの各々の学習に用いられた前記第1学習データごとの知識係数に関するデータとを、前記コンピュータから受信し、
前記プロセッサは、
前記第1学習データごとの知識係数を合成して合成知識係数を生成する合成処理を実行し、
前記学習処理では、前記プロセッサは、前記第2学習データおよび前記合成処理によって生成された合成知識係数を、前記学習対象モデルに学習させて第2予測モデルを生成する、
ことを特徴とする学習装置。
【請求項15】
プログラムを実行するプロセッサと、前記プログラムを記憶する記憶デバイスと、を有する統合装置による統合方法であって、
前記プロセッサは、
第1学習装置から、前記第1学習装置の第1予測モデルにおける第1学習データに関する知識係数を受信する受信処理と、
複数の第2学習装置の各々に、前記第1予測モデルと、前記受信処理によって受信された前記第1学習データの知識係数に関するデータと、を送信する送信処理と、
前記送信処理によって送信した結果、前記複数の第2学習装置の各々が第2学習データおよび前記知識係数に関するデータを前記第1予測モデルに学習させて生成した第2予測モデルにおけるモデルパラメータを統合することにより、統合予測モデルを生成する統合処理と、
を実行することを特徴とする統合方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、統合装置、学習装置、および統合方法に関する。
【背景技術】
【0002】
機械学習は、AI(Artificial Intelligence)を実現する技術の1つである。機械学習技術は、学習のプロセスと予測のプロセスにより構成される。まず、学習のプロセスは、入力となる特徴量ベクトルから得られた予測値と実際の値(真値)との誤差が最小となるように、学習パラメータを計算する。続いて、予測のプロセスは、学習に用いなかったデータ(以降、テストデータと呼ぶ)から新しい予測値を計算する。
【0003】
これまで、予測値の予測精度が最大となるような学習パラメータの算出方法や演算方法が考案されてきた。たとえば、パーセプトロンと呼ばれる手法は、入力となる特徴量ベクトルと、重みベクトルの線形結合の演算結果と、により予測値を出力する。ニューラルネットワークは、別名、マルチパーセプトロンとも呼ばれ、複数のパーセプトロンを多層的に重ねることで、線形分離不可能問題を解く能力をもつ。deep learningは、ニューラルネットワークにドロップアウト等の新しい技術を導入した手法であり、高い予測精度を達成できる手法として、脚光を浴びた。このように、これまで、予測精度を向上させることを目的として機械学習技術の開発が行われ、その予測精度は人間以上の能力を示しつつある。
【0004】
機械学習技術を社会実装する際、予測精度以外にも課題がある。たとえば、セキュリティや納品後のモデルの更新方法、メモリ等の有限な資源の利用制限などである。
【0005】
セキュリティに関する課題として、データの秘匿性が挙げられる。医療分野や金融分野など、個人情報を含むデータを用いて予測モデルを作成する場合、データの秘匿性の高さから、データを保管している拠点外へのデータの移動が難しいことがある。一般的に、機械学習では、学習に大量のデータを用いることで、高い予測精度を達成可能である。
【0006】
1つの拠点で取得されたデータのみを用いて学習を行う場合、データのサンプル数の少なさや、地域の特徴などにより、非常に局所的な範囲でのみ活用可能なモデルとなりうる。つまり、拠点からデータを持ち出すことなく、各拠点のバリエーション豊かなデータすべてにおいて高い予測を実現する予測モデルの作成を可能とする機械学習技術が必要である。
【0007】
非特許文献1では、連合学習技術により上記データの秘匿性の課題を克服している。1つの共通のモデルを初期値として、各拠点の各データで学習を行い、予測モデルを生成する。生成した予測モデルのモデルパラメータをサーバに送信し、サーバで学習したデータの量に応じた係数を用いて、前記予測モデルのモデルパラメータからグローバル予測モデルを生成する処理を繰り返す。最終的に、すべての拠点のデータに対して高い予測精度を達成するグローバル予測モデルを生成している。また、非特許文献2は、継続学習を開示する。
【先行技術文献】
【特許文献】
【0008】
【非特許文献】
【0009】
【非特許文献1】H. Brendan McMahan, Eider Moore, Daniel Ramage, Seth Hampson and Blaise Aguera y Arcas, “Communication-efficient learning of deep networks from decentralized data”, In Artificial Intelligence and Statistics, pp. 1273-1282, 2017.
【非特許文献2】De Lange, M., Aljundi, R., Masana, M., Parisot, S., Jia, X., Leonardis, A., Slabaugh, G. and Tuytelaars, T., “Continual learning: A comparative study on how to defy forgetting in classification tasks”, arXiv preprint arXiv:1909.08383 2019.
【発明の概要】
【発明が解決しようとする課題】
【0010】
非特許文献1のような連合学習技術では、各拠点における予測モデルの生成とサーバにおけるグローバル予測モデルの生成の繰り返しが多いほど、グローバル予測モデルが決定するまでに、時間も拠点とサーバ間の通信量も増加する。
【0011】
また、新たなデータが拠点に増えた際や、異なる拠点が登場した際には、一度学んだデータを持つ拠点も含めて、統合予測モデルの生成を初めからやり直す必要がある。これは、一般的に、機械学習では、新しいデータを学習すると以前に学習したデータの知識を失う,破滅的忘却(catastrophic forgetting)が発生するためである。これらの場合、一度学んだデータを再度学ぶ冗長性の高さおよびデータを保存し続ける必要がある。
【0012】
つまり、データは日常的に蓄積されていくことから、非特許文献2のように継続学習により随時予測モデルを更新し、過去の知見だけでなく新しい知見にも対応できる予測モデルとすることは、機械学習を用いたサービスにおいて高い需要がある。
【0013】
本発明は、連合学習の効率化を図ることを目的とする。
【課題を解決するための手段】
【0014】
本願において開示される発明の一側面となる統合装置は、プログラムを実行するプロセッサと、前記プログラムを記憶する記憶デバイスと、を有する統合装置であって、前記プロセッサは、第1学習装置から、前記第1学習装置の第1予測モデルにおける第1学習データに関する知識係数を受信する受信処理と、複数の第2学習装置の各々に、前記第1予測モデルと、前記受信処理によって受信された前記第1学習データの知識係数に関するデータと、を送信する送信処理と、前記送信処理によって送信した結果、前記複数の第2学習装置の各々が第2学習データおよび前記知識係数に関するデータを前記第1予測モデルに学習させて生成した第2予測モデルにおけるモデルパラメータを統合することにより、統合予測モデルを生成する統合処理と、を実行することを特徴とする。
【0015】
本願において開示される発明の一側面となる学習装置は、プログラムを実行するプロセッサと、前記プログラムを記憶する記憶デバイスと、を有する学習装置であって、前記プロセッサは、第1学習データを学習対象モデルに学習させて第1予測モデルを生成する学習処理と、前記学習処理によって生成された第1予測モデルにおけるモデルパラメータをコンピュータに送信する第1送信処理と、前記コンピュータから、前記コンピュータが前記モデルパラメータおよび他の学習装置の他の第1予測モデルにおける他のモデルパラメータを統合することにより生成した統合予測モデルを、前記学習対象モデルとして受信する受信処理と、前記受信処理によって前記統合予測モデルが受信された場合、前記第1予測モデルにおける前記第1学習データの知識係数を算出する知識係数算出処理と、前記知識係数算出処理によって算出された前記知識係数を前記コンピュータに送信する第2送信処理と、を実行することを特徴とする。
【0016】
本願において開示される発明の他の側面となる学習装置は、プログラムを実行するプロセッサと、前記プログラムを記憶する記憶デバイスと、を有する学習装置であって、前記プロセッサは、複数の第1予測モデルを統合した第1統合予測モデルと、前記第1予測モデルの各々の学習に用いられた第1学習データごとの知識係数に関するデータとを、コンピュータから受信する第1受信処理と、第2学習データおよび前記第1受信処理によって受信された知識係数に関するデータを、学習対象モデルとして前記第1受信処理によって受信された第1統合予測モデルに学習させて第2予測モデルを生成する学習処理と、前記学習処理によって生成された第2予測モデルにおけるモデルパラメータを前記コンピュータに送信する送信処理と、を実行することを特徴とする。
【発明の効果】
【0017】
本発明の代表的な実施の形態によれば、連合学習の効率化を図ることができる。前述した以外の課題、構成及び効果は、以下の実施例の説明により明らかにされる。
【図面の簡単な説明】
【0018】
【
図1】
図1は、連合学習の一例を示す説明図である。
【
図2】
図2は、実施例1にかかる破滅的忘却を抑制する連合学習例を示す説明図である。
【
図3】
図3は、コンピュータのハードウェア構成例を示すブロック図である。
【
図4】
図4は、実施例1にかかるコンピュータの機能的構成例を示すブロック図である。
【
図5】
図5は、学習部412の機能的構成例を示すブロック図である。
【
図6】
図6は、実施例1にかかるサーバによる統合処理手順例を示すフローチャートである。
【
図7】
図7は、実施例1にかかる拠点による学習処理手順例を示すフローチャートである。
【
図8】
図8は、
図6に示したサーバによる第1統合処理(ステップS601)の詳細な処理手順例を示すフローチャートである。
【
図9】
図9は、
図6に示したサーバによる第2統合処理(ステップS602)の詳細な処理手順例を示すフローチャートである。
【
図10】
図10は、
図7に示した拠点による第1学習処理(ステップS701)の詳細な処理手順例を示すフローチャートである。
【
図11】
図11は、
図7に示した拠点による第2学習処理(ステップS702)の詳細な処理手順例を示すフローチャートである。
【
図16】
図16は、実施例2にかかるサーバの機能的構成例を示すブロック図である。
【
図17】
図17は、実施例2にかかる拠点の機能的構成例を示すブロック図である。
【発明を実施するための形態】
【0019】
本発明の実施形態を、図面を用いて説明する。以下、本発明の実施形態を説明するための全図において、基本的に同一機能を有するものは同一符号を付し、その繰り返しの説明は省略する。
【実施例0020】
<破滅的忘却>
一般的に、機械学習では、現在の学習データを学習すると以前に学習した学習データの知識を失う破滅的忘却(catastrophic forgetting)が発生する。たとえば、フェーズ1として、りんごとオレンジの画像データを学習させ、フェーズ2として、りんごとオレンジの画像を識別できる予測モデルにぶどうとももの画像データを学習させたとする。すると、予測モデルは、ぶどうとももの画像を識別できるが、りんごとオレンジの画像を識別できなくなる。
【0021】
解決方法として、フェーズ2として、りんごとオレンジの画像を識別できる予測モデルをベースに、りんごとオレンジとぶどうとももの画像データを学習させると、4種類すべての画像を識別可能な予測モデルが生成される。しかし、この方法では、フェーズ1で学習したりんごとオレンジの画像データをフェーズ2で保存しておく必要がある。また、フェーズ2のぶどうとももの画像データのみを用いて学習する場合と比べて、フェーズ1およびフェーズ2の画像データ両方を用いて学習する場合では、学習するデータ数が多くなるため、学習により長い時間を要する。
【0022】
機械学習技術を社会実装する際に想定される破滅的忘却として、医療分野や金融分野が考えられる。がん診療分野では、新たな治療薬の開発や陽子線照射技術の向上など、治療法の進化が速い。最新の医療技術に追従した治療効果予測を実施するためには、治療法の進化に合わせた予測モデルの更新が必要となる。投資分野では、目まぐるしく変わる社会情勢を反映した損益予測を実施するためには、直近の取引の学習データだけでなく、重要な要素である雇用統計や景況指数による影響や天災などの影響を受けた長年にわたる過去の学習データも加味した予測モデルの更新が必要となる。
【0023】
特に、医療分野や金融分野では、個人情報を含む学習データを用いて予測モデルを作成する場合、学習データの秘匿性の高さから、学習データを保管している拠点の外への当該学習データの移動が難しいことがある。解決方法として、連合学習を用いる方法が考えられる。
【0024】
連合学習は、1つの共通の予測モデルを初期値として、各拠点の各学習データで学習を行い、拠点ごとに予測モデルを生成する学習方法である。連合学習では、時間経過とともに発生した新しい学習データと過去に学習した学習データの両方を予測可能とする。生成された拠点ごとの予測モデルのモデルパラメータの各々はサーバに送信される。サーバは、各拠点のモデルパラメータを統合し、統合予測モデルを生成する。このような処理を繰り返すことで、統合予測モデルは所望の予測精度を達成する。
【0025】
<連合学習>
図1は、連合学習の一例を示す説明図である。
図1で学習装置となる複数の拠点(
図1では、例として、4つの拠点101~104)の各々は、それぞれ学習データT1~T4(これらを区別しない場合は、単に学習データTとする)を保持し、拠点101~104外に学習データT1~T4を出すことが禁止されているものとする。
【0026】
サーバ100は、拠点101~104で生成された予測モデルM1~M4を統合する統合装置である。サーバ100は、ベースとなる予測モデル(以下、ベース予測モデル)M0を有する。ベース予測モデルM0は、未学習のニューラルネットワークでもよく、重みやバイアスといったモデルパラメータが設定された学習済みのニューラルネットワークでもよい。
【0027】
拠点101~104は、学習データT1~T4を有し、学習データT1~T4で予測モデルM1~M4を生成するコンピュータである。学習データT1~T4はそれぞれ、入力となる学習データと正解データとの組み合わせである。
【0028】
フェーズ1では、拠点101の学習データT1と拠点102の学習データT2とが用いられ、フェーズ2では、フェーズ1で用いられた拠点101の学習データT1と拠点102の学習データT2に加え、拠点103の学習データT3と拠点104の学習データT4とが用いられるものとする。
【0029】
[フェーズ1]
フェーズ1では、サーバ100は、ベース予測モデルM0を拠点101と拠点102に送信する。拠点101および拠点102はそれぞれ、ベース予測モデルM0とそれぞれの学習データT1,T2とを用いて学習し、予測モデルM1,M2を生成する。
【0030】
拠点101および拠点102はそれぞれ、予測モデルM1,M2の重みやバイアスといったモデルパラメータθ1,θ2をサーバ100に送信する。サーバ100は、受信したモデルパラメータθ1,θ2の統合処理を実行し、統合予測モデルM10を生成する。サーバ100は、生成した統合予測モデルM10が所望の予測精度を達成するまで統合予測モデルM10の更新プロセスを繰り返す。なお、拠点101および拠点102は、予測モデルM1,M2のモデルパラメータθ1,θ2の勾配等をサーバ100に送信してもよい。
【0031】
統合処理とは、モデルパラメータθ1,θ2の平均値を算出する処理である。学習データT1,T2のサンプル数が異なる場合は、学習データT1,T2のサンプル数に基づいて重み付け平均を算出してもよい。また、統合処理では、モデルパラメータθ1,θ2の代わりに各拠点101,102から送信されたモデルパラメータθ1,θ2の各勾配の平均値を算出する処理であってもよい。
【0032】
統合予測モデルM10の更新プロセスとは、サーバ100が統合予測モデルM10を拠点101および拠点102に送信し、拠点101および拠点102がそれぞれ統合予測モデルM10に学習データT1,T2を入力して学習を行い、再生成した予測モデルM1,M2のモデルパラメータθ1,θ2をサーバ100に送信し、サーバ100が統合予測モデルM10を再生成する、というプロセスである。生成した統合予測モデルM10が所望の予測精度を達成した場合、フェーズ1は終了となる。
【0033】
[フェーズ2]
フェーズ2では、サーバ100は、フェーズ1で生成した統合予測モデルM10を拠点101~拠点104に送信する。拠点101~拠点104はそれぞれ、統合予測モデルM10に学習データT1~T4を入力して学習を行い、予測モデルM1~M4を生成する。そして、拠点101~拠点104はそれぞれ、生成した予測モデルM1~M4のモデルパラメータθ1~θ4をサーバ100に送信する。なお、拠点101~拠点104は、予測モデルM1~M4のモデルパラメータθ1~θ4の勾配等をサーバ100に送信してもよい。
【0034】
サーバ100は、受信したモデルパラメータθ1~θ4の統合処理を実行し、統合予測モデルM20を生成する。サーバ100は、生成した統合予測モデルM20が所望の予測精度を達成するまで統合予測モデルM20の更新プロセスを繰り返す。
【0035】
フェーズ2での統合処理は、モデルパラメータθ1~θ4の平均値を算出する。学習データT1~T4のデータ数が異なる場合は、学習データT1~T4のデータ数に基づいて重み付け平均を算出してもよい。また、統合処理では、モデルパラメータθ1~θ4の代わりに各拠点101~104から送信されたモデルパラメータθ1~θ4の各勾配の平均値を算出する処理であってもよい。
【0036】
フェーズ2での統合予測モデルM20の更新プロセスは、サーバ100が統合予測モデルM20を拠点101~拠点104に送信し、拠点101~拠点104がそれぞれ統合予測モデルM20に学習データT1~T4を入力して学習を行い、再生成した予測モデルM1~M4のモデルパラメータθ1~θ4をサーバ100に送信し、サーバ100が統合予測モデルM20を再生成する。生成した統合予測モデルM20が所望の予測精度を達成した場合、フェーズ2は終了となる。
【0037】
サーバ100と拠点101~拠点104と間の送受信は、更新プロセスの繰り返しを無視すると、フェーズ1では4回、フェーズ2では8回(矢印の本数)の計12回であり、更新プロセスの繰り返しを加味すると、フェーズ1での繰り返し数を4倍、フェーズ2での繰り返し数を8倍した回数がさらに必要となる。
【0038】
なお、フェーズ1およびフェーズ2での予測精度については、各拠点は、学習データT1~T4以外のテストデータを統合予測モデルM10,M20に適用することにより算出する。具体的には、たとえば、統合予測モデルM10,M20が回帰モデルであれば、予測精度は、平均二乗誤差、二乗平均平方根誤差、または決定係数として算出され、分類モデルあれば、正解率、適合率、再現率、またはF値として算出される。または、サーバ100に保存してある統合予測モデルの精度算出用データなどを使用してもよい。
【0039】
<破滅的忘却を抑制する連合学習>
図2は、実施例1にかかる破滅的忘却を抑制する連合学習例を示す説明図である。
図2では、
図1との相違点を中心に説明する。フェーズ1は、
図1に示した連合学習とほぼ同様である。
図1に示した連合学習と異なる点は、生成した統合予測モデルM10が所望の予測精度を達成した場合、拠点101および拠点102が、予測モデルM1についての学習データT1の知識係数I1および予測モデルM2についての学習データT2の知識係数I2を算出し、サーバ100に送信する点である。知識係数I1,I2は、学習データT1,T2の知識を蓄えた、損失関数を構成する正則化項の係数である。
【0040】
また、各知識係数の算出には統合予測モデルM10を用いてもよいし、知識係数I1の算出に予測モデルM1と統合予測モデルM10、知識係数I2の算出に予測モデルM2と統合予測モデルM10を用いてもよい。
【0041】
フェーズ2では、サーバ100は、フェーズ1で生成した統合予測モデルM10および知識係数I1,I2を拠点103および拠点104の各々に送信する。拠点103および拠点104はそれぞれ、統合予測モデルM10に学習データT3,T4を入力して学習を行い、知識係数I1,I2を加味した予測モデルM3I,M4Iを生成する。そして、拠点103および拠点104はそれぞれ、生成した予測モデルM3I,M4Iのモデルパラメータθ3I,θ4Iをサーバ100に送信する。なお、拠点103および拠点104は、予測モデルM3I,M4Iのモデルパラメータθ3I,θ4Iの勾配等をサーバ100に送信してもよい。
【0042】
サーバ100は、受信したモデルパラメータθ3I,θ4Iの統合処理を実行し、統合予測モデルM20Iを生成する。サーバ100は、生成した統合予測モデルM20Iが所望の予測精度を達成するまで統合予測モデルM20Iの更新プロセスを繰り返す。
【0043】
フェーズ2での統合処理は、モデルパラメータθ3I,θ4Iの平均値を算出する。学習データT3,T4のデータ数が異なる場合は、学習データT3,T4のデータ数に基づいて重み付け平均を算出してもよい。また、統合処理は、モデルパラメータθ3I,θ4Iの代わりに各拠点から送信されたモデルパラメータθ3I,θ4Iの各勾配の平均値を算出する処理であってもよい。
【0044】
フェーズ2での統合予測モデルM20Iの更新プロセスは、サーバ100が統合予測モデルM20Iを拠点103および拠点104に送信し、拠点103および拠点104がそれぞれ統合予測モデルM20Iに学習データT3,T4を入力して学習を行い、知識係数I1,I2を加味して再生成した予測モデルM3I,M4Iのモデルパラメータθ3I,θ4Iをサーバ100に送信し、サーバ100が統合予測モデルM20Iを再生成する。生成した統合予測モデルM20Iが所望の予測精度を達成した場合、フェーズ2は終了となる。
【0045】
拠点103および拠点104の各々は、拠点101の学習データT1の知識係数I1と拠点102の学習データT2の知識係数I2とを学習時に用いる。これにより、拠点103および拠点104の各々が、拠点101の学習データT1と拠点102の学習データT2とを再度使用することなく、サーバ100は、拠点101の学習データT1と拠点102の学習データT2と拠点103の学習データT3と拠点104の学習データT4とを予測可能な統合予測モデルM20Iを生成できる。
【0046】
サーバ100と拠点101~104と間の送受信は、更新プロセスの繰り返しを無視すると、フェーズ1では4回、フェーズ2では4回(矢印の本数)の計8回であり、
図1と比較すると2/3に抑制できている。
【0047】
また、更新プロセスの繰り返しを加味するとフェーズ1での繰り返し数を4倍、フェーズ2での繰り返し数を4倍した回数がさらに必要となる。こちらも、フェーズ2での繰り返し数が半減する分、総合的な送受信回数が抑制可能である。また、フェーズ2の学習において、拠点101の学習データT1と拠点102の学習データT2は学習に用いないため、保存しておく必要がなく、その分、サーバ100の記憶デバイスの容量を他の処理やデータの保管に用いるなど運用効率化を実現可能である。
【0048】
なお、フェーズ1では、拠点101,102が存在するが、拠点101のみでもよい。この場合、サーバ100は、統合予測モデルM10を生成する必要はなく、知識係数I1の算出元となる予測モデルM1および知識係数I1を拠点103,104に送信すればよい。以下、
図2に示した破滅的忘却を抑制する連合学習について具体的に説明する。
【0049】
<コンピュータ(サーバ100、拠点101~拠点104)のハードウェア構成例>
図3は、コンピュータのハードウェア構成例を示すブロック図である。コンピュータ300は、プロセッサ301と、記憶デバイス302と、入力デバイス303と、出力デバイス304と、通信インタフェース(通信IF)305と、を有する。プロセッサ301、記憶デバイス302、入力デバイス303、出力デバイス304、および通信IF305は、バス306により接続される。プロセッサ301は、コンピュータ300を制御する。記憶デバイス302は、プロセッサ301の作業エリアとなる。また、記憶デバイス302は、各種プログラムやデータを記憶する非一時的なまたは一時的な記録媒体である。記憶デバイス302としては、たとえば、ROM(Read Only Memory)、RAM(Random Access Memory)、HDD(Hard Disk Drive)、フラッシュメモリがある。入力デバイス303は、データを入力する。入力デバイス303としては、たとえば、キーボード、マウス、タッチパネル、テンキー、スキャナがある。出力デバイス304は、データを出力する。出力デバイス304としては、たとえば、ディスプレイ、プリンタがある。通信IF305は、ネットワークと接続し、データを送受信する。
【0050】
<コンピュータ300の機能的構成例>
図4は、実施例1にかかるコンピュータ300の機能的構成例を示すブロック図である。コンピュータ300は、予測モデル統合部411と学習部412とを含む演算部410と、送信部421と受信部422とを含む通信IF305と、記憶デバイス302と、出力部431と、を有する。
【0051】
図5は、学習部412の機能的構成例を示すブロック図である。学習部412は、知識係数生成部501と、学習部502と、知識係数合成部503と、を有する。演算部410および出力部431は、具体的には、たとえば、
図3に示した記憶デバイス302に記憶されたプログラムをプロセッサ301に実行させることにより実現される。
【0052】
予測モデル統合部411は、複数の拠点101~104から送信された各々の予測モデル(M1,M2),(M3,M4)のモデルパラメータ(θ1,θ2),(θ3,θ4)に基づいて、1つの統合予測モデルM10,M20Iを生成する統合処理を実行する。たとえば、学習データT内の特徴量ベクトルxを学習した予測モデルは、下記式(1)に示すようにモデルの出力y、モデルパラメータθ、関数hを用いて表現される。
【0053】
【0054】
サーバ100は、フェーズ2において、各拠点(
図2では、拠点101,102)における学習により生成されたモデルパラメータθ
tで構成される統合予測モデルM10に対して、K個(
図2では、フェーズ2の各々でK=2)の拠点(
図2では、拠点103,104)におけるK個の異なる学習データ(
図2では、T3,T4)での学習によりそれぞれ生成されたK個の予測モデル(
図2では、予測モデルM3I、M4I)のモデルパラメータθ
kに関する勾配gkの平均の和を用いて、下記式(2)に示すように、統合予測モデルM20Iのモデルパラメータθ
t+1を生成する。下記式(2)において、ηは学習率、NはK個の拠点で学習に用いた全学習データ(
図2では、T3,T4)の全サンプル数、Nkは拠点kにおいて学習に用いたデータのサンプル数である。
【0055】
【0056】
ここで、上記式(2)では、k個の拠点においてk個の異なる学習データTkの学習によりそれぞれ生成された予測モデル(
図2では、予測モデルM3I、M4I)のモデルパラメータθ
k(
図2では、モデルパラメータθ3I、θ4I)に関する勾配gkを使用したが、これは学習データ(
図2では、T3,T4)を解析できないようにセキュリティに配慮した方法であり、モデルパラメータθ
kや符号化、暗号化などを使用してもよい。また、全結合層や畳み込み層など予測モデル(
図2では、予測モデルM3I,M4I)の構造や損失関数の設計などに応じて、上記式(2)とは異なる方法で予測モデルM3I,M4Iを統合してもよい。
【0057】
学習部412は、ランダムな初期値により決定したモデルパラメータから構成される予測モデルまたはベース予測モデルM0から開始して、学習データTを用いて学習することにより、予測モデルを生成し、知識係数合成部503で知識係数を合成する。また、学習部412は、知識係数合成部503で合成した合成知識係数と、学習データTとを用いて学習することにより、予測モデルを生成する。
【0058】
具体的には、たとえば、コンピュータ300が拠点101,102の場合、学習部412は、サーバ100からベース予測モデルM0を取得して、学習データT1を用いて学習し、予測モデルM1を生成し、知識係数生成部501で知識係数I1を生成する。拠点102についても同様に、学習データT2を用いて予測モデルM2を生成し、知識係数生成部501で知識係数I2を生成する。
【0059】
また、コンピュータ300が拠点103の場合、学習部412は、サーバ100から拠点101,102の知識係数I1,I2を取得した場合、知識係数合成部503で合成する。拠点104についても同様に、学習部412は、サーバ100から拠点101,102の知識係数I1,I2を取得した場合、知識係数合成部503で合成する。また、拠点103,104において、知識係数生成部501は、今後の拠点の増加に備えて、知識係数I3,I4を生成してもよい。
【0060】
また、拠点103,104において、学習部412は、サーバ100の知識係数合成部503で生成された合成知識係数と、拠点103の学習データT3と、を用いて、予測モデルM3Iを生成してもよい。拠点104についても同様に、学習部412は、サーバ100の知識係数合成部503で合成された合成知識係数と、拠点104の学習データT4と、を用いて、予測モデルM4Iを生成する。
【0061】
学習部502は、上記式(1)を用いて、入力となる学習データTmの特徴量ベクトルxmから得られた予測値ymと実際の値や識別クラス番号である正解ラベルtmとの誤差が最小となるようにモデルパラメータθmを計算する損失関数L(θm)を設定する。mは学習データTを識別する番号である。
【0062】
具体的には、たとえば、学習部502は、知識係数生成部501で生成した過去に学習した学習データTごとの知識係数のうち考慮したい過去の学習データTmに関して、知識係数合成部503において合成された合成知識係数を用いた過去知識項R(θm)を設定する。
【0063】
損失関数L(θm)は、下記式(3)に示すように、誤差関数E(θm)と過去知識項R(θm)との和で表現される。
【0064】
【0065】
過去知識項R(θm)は、たとえば、下記式(4)に示すように、正則化項の係数λと、知識係数合成部503にて生成される合成知識係数Ωijと、学習により得られたモデルパラメータθmと、ベース予測モデルM0のモデルパラメータθBと、で表現される。なお、iおよびjは、予測モデルMにおける第i層のj番目のユニットを示す。
【0066】
【0067】
知識係数生成部501は、学習データTと、その学習データTを用いて学習し生成した予測モデルMと、を用いて、知識係数Iを算出することにより、その学習データTの知識を抽出する。具体的には、たとえば、正則化項に知識係数Iを使用することで知識を抽出する方法がある。
【0068】
下記式(5)に示すように、知識係数I
ij(x
m;θ
m)は、学習データT
mを用いて学習し生成したモデルパラメータθ
mにて構成される予測モデルMの出力のモデルパラメータθ
ijによる微分で生成される。学習データT
mに関する知識係数I
ij(x
m;θ
m)は、学習データT
mと学習データT
mを用いて生成された予測モデルMのみを使用して生成するため、過去の学習データTや予測モデルM(たとえば、
図2の学習データT1,T2、予測モデルM1、M2)を保存しておく必要がない。また、過去の学習データTや予測モデルMを、将来、学習データT
mに関する知識係数I
ij(x
m;θ
m)や、学習データT
mを学習した時点より未来の学習データT
m+1を用いて学習し生成したモデルパラメータθ
m+1を用いて生成される知識係数I
ij(x
m;θ
m+1)などを生成するために保存しておく必要もない。
【0069】
【0070】
知識係数合成部503は、知識係数生成部501によって生成された知識係数群のうち、導入したい学習データTを用いて生成された複数の知識係数を合成し、合成知識係数を生成する。具体的には、たとえば、サーバ100または拠点103,104の知識係数合成部503は、学習データT1,T2を用いて生成された複数の知識係数I1,I2を合成し、合成知識係数Ω(I1,I2)を生成する。
【0071】
また、知識係数合成部503は、下記式(6)に示すように、導入したい知識係数Iの識別番号が格納されたUに基づき、学習データTmの特徴量ベクトルxmにおけるサンプルp方向に、各導入したい知識係数Iの和を算出し、全サンプル数で正規化を実行する。本例では、L2ノルム型の正則化項を用いて特定のデータの知識を導入および保存する手法としたが、L1ノルム型やElastic netなどとしてもよいし、Replay-based methodやParameter isolation-based methodなどのようにデータを変換することで保存しておいた知識を使用してもよいし、ベース予測モデルM0にこれから学習する学習データTmを適用した結果やネットワークパスを使用してもよい。
【0072】
【0073】
送信部421は、各種データを送信する。具体的には、たとえば、コンピュータ300がサーバ100であれば、送信部421は、各拠点での学習時(フェーズ1)において、ベース予測モデルM0、第1統合予測モデルM10を拠点101,102に送信する。また、送信部421は、各拠点での学習時(フェーズ2)において、予測モデル統合部で生成した統合予測モデルM10、M20Iと、知識係数I1、I2(または合成知識係数Ω(I1,I2))とを、拠点103,104に送信する。また、送信部421は、各拠点で実行された精度検証結果から、連合学習の繰り返しを継続するか、終了とするかを各拠点に送信する。
【0074】
また、コンピュータ300が拠点101,102であれば、送信部421は、各拠点101,102での学習時(フェーズ1)において、学習したモデルパラメータθ1、θ2と、これまでのすべての知識係数I1,I2または各拠点101,102で学習に用いるようオペレータから入力があった知識係数I1,I2と、予測モデルM1,M2の精度検証結果と、をサーバ100に送信する。
【0075】
また、コンピュータ300が拠点103,104であれば、送信部421は、各拠点103,104での学習時(フェーズ2)において、学習したモデルパラメータθ3I,θ4Iと、予測モデルM3I,M4Iの精度検証結果と、をサーバ100に送信する。
【0076】
受信部422は、各種データを受信する。具体的には、たとえば、コンピュータ300がサーバ100であれば、予測モデル統合時(フェーズ1)において、拠点101,102からモデルパラメータθ1,θ2や知識係数I1,I2、予測モデルM1,M2の予測精度検証結果を受信する。また、受信部422は、予測モデル統合時(フェーズ2)において、拠点103,104からモデルパラメータθ3I,θ4Iや予測モデルM3I,M4Iの精度検証結果を受信する。
【0077】
また、コンピュータ300が拠点101,102であれば、受信部422は、各拠点101,102での学習時(フェーズ1)において、ベース予測モデルM0、第1統合予測モデルM10を受信する。また、コンピュータ300が拠点103,104であれば、受信部422は、各拠点103,104での学習時(フェーズ2)において、統合予測モデルM10,M20Iや知識係数I1,I2(または合成知識係数Ω)を受信する。
【0078】
なお、送受信されるデータは、セキュリティの観点から暗号化等により変換される。これにより、予測モデルMから学習に使用されたデータの解析を困難にする。
【0079】
<統合処理手順例>
図6は、実施例1にかかるサーバ100による統合処理手順例を示すフローチャートである。サーバ100は、知識係数Iを拠点に送付するか否かを判断する(ステップS600)。知識係数Iを拠点に送付しない場合(ステップS600:No)、フェーズ1の開始を意味することになる。したがって、サーバ100は、複数の予測モデルM1,M2を統合する第1統合処理を実行する(ステップS601)。
【0080】
一方、知識係数Iを拠点に送付する場合(ステップS600:Yes)、フェーズ1が完了していることになる。したがって、サーバ100は、複数の予測モデルM3,M4を統合する第2統合処理を実行する(ステップS602)。なお、第1統合処理(ステップS601)の詳細については
図8で、第2統合処理(ステップS602)の詳細については
図9で、後述する。また、知識係数Iを送信していない場合でも、ベース予測モデルM0またはベース予測モデルM0として使用される統合予測モデルと共にフェーズ1であるかフェーズ2であるかの識別符号を送信し、それにより、ステップS601とステップS602のどちらかを実行するのか判断していてもよい。
【0081】
<学習処理手順例>
図7は、実施例1にかかる拠点による学習処理手順例を示すフローチャートである。拠点は、サーバ100から知識係数Iを受信したか否かを判断する(ステップS700)。知識係数Iを受信しなかった場合(ステップS700:No)、当該拠点は、知識係数Iを用いずに学習を行う拠点(たとえば、拠点101,102)である。したがって、当該拠点101,102は、第1学習処理を実行する(ステップS701)。
【0082】
一方、知識係数Iを受信した場合(ステップS700:Yes)、当該拠点は、知識係数Iを用いて連合学習する拠点(たとえば、拠点103,104)である。当該拠点103,104は、第2学習処理を実行する(ステップS702)。なお、第1学習処理(ステップS701)の詳細については
図10で、第2学習処理(ステップS702)の詳細については
図11で、後述する。また、知識係数を受信していない場合でも、ベース予測モデルM0またはベース予測モデルM0として使用される統合予測モデルMと共にフェーズ1であるかフェーズ2であるかの識別符号を受信しそれにより、ステップS701とステップS702のどちらかを実行するのか判断していてもよい。
【0083】
<第1統合処理(ステップS601)>
図8は、
図6に示したサーバ100による第1統合処理(ステップS601)の詳細な処理手順例を示すフローチャートである。サーバ100は、ステップS600:Noにより、送信先に決められている拠点101,102への送信対象モデルを設定する(ステップS801)。具体的には、たとえば、サーバ100は、まだベース予測モデルM0を送信していない場合には、ベース予測モデルM0を送信対象に設定し、過去に送信済みでありその際に生成した統合予測モデルM10をベース予測モデルとするようステップS801において送信対象モデル設定時に指示があった場合、統合予測モデルM10を送信対象に設定する。後者の場合、過去に学習したデータの過去知識に関する知識係数Iをともに送信していないので、過去に学習したデータの知識は新しく生成する予測モデルMでは忘却される。そして、サーバ100は、送信対象モデルを各拠点101,102に送信する(ステップS802)。
【0084】
つぎに、サーバ100は、各拠点101,102から予測モデルM1,M2のモデルパラメータθ1,θ2を受信する(ステップS803)。そして、サーバ100は、受信したモデルパラメータθ1,θ2を用いて統合予測モデルM10を生成する(ステップS804)。そして、サーバ100は、生成した統合予測モデルM10を各拠点101,102に送信する(ステップS805)。
【0085】
つぎに、サーバ100は、各拠点101,102から統合予測モデルM10による予測精度を受信する(ステップS806)。そして、サーバ100は、各予測精度を検証する(ステップS808)。具体的には、たとえば、サーバ100は、各予測精度がしきい値以上であるか否かを判断する。なお、各拠点101、102のデータに対する統合予測モデルM10による予測精度を各拠点で算出したが、サーバ100に評価用データがある場合はその評価用データに対する統合予測モデルM10による予測精度を用いてもよい。このあと、サーバ100は、検証結果を、各拠点101,102に送信する(ステップS808)。
【0086】
サーバ100は、検証結果において、全予測精度がしきい値以上であるか否かを判断する(ステップS809)。全予測精度がしきい値以上でなければ(ステップS809:No)、すなわち、1つでもしきい値未満の予測精度があれば、ステップS803に戻り、サーバ100は、各拠点101,102から再度更新した予測モデルM1,M2のモデルパラメータθ1,θ2を待ち受ける。
【0087】
一方、全予測精度がしきい値以上であれば(ステップS809:Yes)、各拠点101,102は、統合予測モデルM10に対する知識係数I1,I2を算出し送信してくるため、サーバ100は、各拠点101,102から統合予測モデルM10に対する知識係数I1,I2を受信する(ステップS810)。そして、サーバ100は、統合予測モデルM10と知識係数I1,I2を記憶デバイス302に保存する(ステップS811)。これにより、第1統合処理(ステップS601)が終了する。
【0088】
<第2統合処理(ステップS602)>
図9は、
図6に示したサーバ100による第2統合処理(ステップS602)の詳細な処理手順例を示すフローチャートである。サーバ100は、ステップS600:Yesにより、送信先に決められている拠点103,104への送信対象モデルおよび知識係数を設定する(ステップS901)。送信先に決められている拠点103,104へ統合予測モデルM10および知識係数I1,I2を送信する(ステップS902)。なお、知識係数はサーバ100にて予め生成した合成知識係数Ωを送信してもよい。
【0089】
つぎに、サーバ100は、各拠点103,104から統合予測モデルM10(統合予測モデルM20Iが受信済みであれば統合予測モデルM20I)のモデルパラメータθ3I,θ4Iを受信する(ステップS903)。そして、サーバ100は、受信したモデルパラメータθ3I,θ4Iを用いて統合予測モデルM20Iを生成する(ステップS904)。そして、サーバ100は、生成した統合予測モデルM20Iを各拠点103,104に送信する(ステップS905)。
【0090】
つぎに、サーバ100は、各拠点103,104から統合予測モデルM20Iによる予測精度を受信する(ステップS906)。そして、サーバ100は、各予測精度を検証する(ステップS907)。具体的には、たとえば、サーバ100は、各予測精度がしきい値以上であるか否かを判断する。なお、各拠点103、104のデータに対する統合予測モデルM201による予測精度を各拠点で算出したが、サーバに評価用データがある場合はその評価用データに対する統合予測モデルM201による予測精度を用いてもよい。このあと、サーバ100は、検証結果を、各拠点103,104に送信する(ステップS908)。
【0091】
サーバ100は、検証結果において、全予測精度がしきい値以上であるか否かを判断する(ステップS909)。全予測精度がしきい値以上でなければ(ステップS909:No)、すなわち、1つでもしきい値未満の予測精度があれば、ステップS903に戻り、サーバ100は、各拠点103,104から再度更新した予測モデルM20Iのモデルパラメータθ3I,θ4Iを待ち受ける。
【0092】
一方、全予測精度がしきい値以上であれば(ステップS909:Yes)、各拠点103,104は、統合予測モデルM201に対する知識係数I3,I4を算出し送信してくるため、サーバ100は、各拠点103,104から統合予測モデルM201に対する知識係数I3,I4を受信する(ステップS910)。そして、サーバ100は、統合予測モデルM20Iと知識係数I3,I4を記憶デバイス302に保存する(ステップS911)。これにより、第2統合処理(ステップS602)が終了する。
【0093】
<第1学習処理(ステップS701)>
図10は、
図7に示した拠点101,102による第1学習処理(ステップS701)の詳細な処理手順例を示すフローチャートである。各拠点101,102は、ステップS700:Noにより、サーバ100からのベース予測モデルM0を記憶デバイス302に保存する(ステップS1001)。なお、ベース予測モデルM0が統合予測モデルM10であった場合、過去に学習したデータの過去知識に関する知識係数Iをともに送信していないので、過去に学習したデータの知識は新しく生成する予測モデルMでは忘却される。
【0094】
つぎに、各拠点101,102は、学習データT1,T2を用いてベース予測モデルM0を学習し、予測モデルM1,M2を生成する(ステップS1002)。そして、各拠点101,102は、予測モデルM1,M2のモデルパラメータθ1、θ2をサーバ100に送信する(ステップS1003)。これにより、サーバ100では、統合予測モデルM10が生成される(ステップS804)。
【0095】
このあと、各拠点101,102は、サーバ100から統合予測モデルM10を受信する(ステップS1004)。そして、各拠点101,102は、統合予測モデルM10の予測精度を算出し(ステップS1005)、サーバ100に送信する(ステップS1006)。これにより、サーバ100では、各予測精度の検証が実行される(ステップS807)。
【0096】
このあと、各拠点101,102は、サーバ100から検証結果を受信する(ステップS1007)。そして、各拠点101,102は、検証結果において、全予測精度がしきい値以上であるか否かを判断する(ステップS1008)。全予測精度がしきい値以上でなければ(ステップS1008:No)、すなわち、1つでもしきい値未満の予測精度があれば、各拠点101,102は、学習データT1,T2を用いて統合予測モデルM10をベース予測モデルとして再度学習し(ステップS1009)、サーバ100に再度学習し生成した予測モデルM1、M2のモデルパラメータθ1、θ2を送信する(ステップS1010)。そして、ステップS1004に戻り、各拠点101,102は、サーバ100から統合予測モデルM10を待ち受ける。
【0097】
一方、全予測精度がしきい値以上であれば(ステップS1008:Yes)、各拠点101,102は、予測モデルM1,M2に対する知識係数I1,I2を算出し(ステップS1011)、サーバ100に送信する(ステップS1012)。これにより、第1学習処理(ステップS701)が終了する。
【0098】
<第2学習処理(ステップS702)>
図11は、
図7に示した拠点101,102による第2学習処理(ステップS702)の詳細な処理手順例を示すフローチャートである。ステップS700:Yesに遷移した各拠点103,104は、サーバ100からの統合予測モデルM10および知識係数I1,I2を記憶デバイス302に保存する(ステップS1101)。
【0099】
つぎに、各拠点103,104は、学習データT3,T4および知識係数I1,I2を合成して合成知識係数Ωを生成し(ステップS1102)、合成知識係数Ωを用いて統合予測モデルM10を学習し、予測モデルM3I、M4Iを生成する(ステップS1103)。なお、知識係数はサーバ100にて予め生成した合成知識係数Ωを受信する場合、拠点で知識係数Iから合成知識係数を生成するステップS1102を実施しなくてもよい。
【0100】
そして、各拠点103,104は、予測モデルM3I、M4Iのモデルパラメータθ3I,θ4Iをサーバ100に送信する(ステップS1104)。これにより、サーバ100では、統合予測モデルM20Iが生成される(ステップS904)。
【0101】
つぎに、各拠点103,104は、サーバ100から統合予測モデルM20Iを受信する(ステップS1105)。そして、各拠点103,104は、統合予測モデルM20Iの予測精度を算出し(ステップS1106)、サーバ100に送信する(ステップS1107)。これにより、サーバ100では、各予測精度の検証が実行される(ステップS907)。
【0102】
このあと、各拠点103,104は、サーバ100から検証結果を受信する(ステップS1108)。そして、各拠点103,104は、検証結果において、全予測精度がしきい値以上であるか否かを判断する(ステップS1109)。全予測精度がしきい値以上でなければ(ステップS1109:No)、すなわち、1つでもしきい値未満の予測精度があれば、各拠点103,104は、知識係数I1,I2を合成して合成知識係数Ωを生成する(ステップS1110)。ステップS1102で生成した合成知識係数Ωをメモリに一時保存しておき用いてもよい。
【0103】
そして、各拠点103,104は、学習データT3,T4および合成知識係数Ωを用いて予測モデルM20Iをベース予測モデルとして再度学習し(ステップS1110)、サーバ100に再度学習し生成した予測モデルM3I、M4Iのモデルパラメータθ3I,θ4Iを送信する(ステップS1111)。そして、ステップS1105に戻り、各拠点103,104は、サーバ100から再度更新した統合予測モデルM20Iを待ち受ける。
【0104】
一方、全予測精度がしきい値以上であれば(ステップS1109:Yes)、各拠点103,104は、予測モデルM3,M4に対する知識係数I3,I4を算出し(ステップS1112)、サーバ100に送信する(ステップS1113)。これにより、第2学習処理(ステップS702)が終了する。
【0105】
このように、上述した学習システムによれば、複数の拠点101~104にある学習データT1~T4を拠点外に移動させることなく、過去に学習した複数の学習データT1,T2の知識係数I1,I2を用いることで過去に学習した学習データT1,T2を再度学習に用いずに、複数の拠点101~104にある学習データT1~T4を予測可能な予測モデルM20を生成することができる。各拠点103,104での学習とサーバ100でのモデル統合との繰り返しにより生成された複数の拠点101~104にある学習データT1~T4を予測可能な統合予測モデルM20Iを生成することができる。
【0106】
統合予測モデルM20Iに対して、拠点103,104において、継続学習技術を適用すると、学習データT3,T4と、過去に学習した複数の学習データT1,T2の知識係数I1,I2を用いることで過去に学習した学習データT1,T2を再度学習に用いずに、複数の拠点101~104にある学習データT1~T4を予測可能な予測モデルを生成可能である。これにより、拠点101~104にある学習データT1~T4を予測可能な予測モデルM20を生成することができる。
【0107】
<表示画面例>
つぎに、コンピュータ300の出力デバイス304の一例であるディスプレイ、または、出力部431からの出力先のコンピュータ300のディスプレイに表示される表示画面例について説明する。
【0108】
図12は、表示画面の表示例1を示す説明図である。表示画面1200は、たとえば、拠点103,104のディスプレイに表示される。
【0109】
表示画面1200は、Select train dataボタン1201と、Select knowledgeボタン1202と、Trainボタン1203と、mode name欄1204と、data name欄1205と、選択画面810と、チェックボックス811と、を含む。
【0110】
各拠点103,104のユーザは、学習を行いたい場合に、mode name欄1204において、「Train」を選択する。続いて、各拠点103,104のユーザは、Select train dataボタン1201を押下し、学習データT3,T4を選択する。選択された学習データT3,T4は、data name欄1205に表示される。
【0111】
さらに、各拠点103,104のユーザは、予測モデルに組み込みたい過去の知識を示す知識係数を、たとえばチェックボックス1211にチェックを付けることで選択する。各拠点103,104の知識係数合成部503は、チェックされた知識係数I1,I2を合成する。合成により生成された合成知識係数Ωは、各拠点103,104のユーザによるTrainボタン1203の押下により、学習で使用される(ステップS1103)。なお、サーバ100からの要請により、選択する知識係数が予め提示または決定されていてもよい。
【0112】
図13は、表示画面の表示例2を示す説明図である。表示画面1300は、サーバ100が統合予測モデルを生成する際に表示される画面である。表示画面1300は、Select clientボタン1301と、Startボタン1302と、mode name欄1204と、data name欄1205と、選択画面1310と、チェックボックス1311と、を含む。
【0113】
サーバ100のユーザは、予測モデルの統合を行う予測モデル生成をしたい場合に、mode name欄1204において、Federationを選択する。続いて、サーバ100のユーザは、Select clientボタン1301を押下し、統合する予測モデル生成する拠点を、たとえばチェックボックス1311にチェックを付けることで選択する。
【0114】
サーバ100の予測モデル統合部411は、チェックされたclient nameを持つ拠点からの予測モデルを、式(2)を用いて統合する(ステップS804、S904)。なお、選択画面1310では、たとえば、新しく学習したい学習データが貯まっているとのアラートをサーバ100にあげた拠点や、最新のベース予測モデルM0を送信した拠点に対して、Train query欄に「1」などの表示がされていてもよい。その後、Startボタン1302を押下により、予測モデルの生成と統合が行われ、統合予測モデルが生成される(ステップS804、S904)。
【0115】
図14は、表示画面の表示例3を示す説明図である。表示画面1400は、サーバ100で予測精度を確認するための画面である。具体的には、たとえば、サーバ100が最初に1つの学習データT1で学習する。その後、学習データT1で学習した際の知識係数I1を用いて拠点101が学習データT2で、学習データT1で学習した際の知識係数I1を用いて拠点102が学習データT3で学習する。サーバ100は、拠点101が学習データT2で学習した予測モデルと、拠点102が学習データT3で学習した予測モデルとを、統合する。表示画面1400は、その統合処理を行った際の繰り返し回数が「1」であった場合の結果表示例である。具体的には、拠点101、102における予測精度がしきい値以上か判断する(ステップS909)ための、サーバ100における予測精度検証(ステップS907)の際に表示される。
【0116】
表示画面1400は、View resultsボタン1401と、View statusボタン1402と、mode name欄1204と、data name欄1205と、連合学習結果表示画面1411と、データステータス画面1412と、を含む。
【0117】
サーバ100のユーザは、統合予測モデルの予測精度を確認したい場合に、mode name欄1204において、Federationを選択する。
図13で指示した連合学習処理が終了または予測精度の検証(ステップS807、ステップS907)をしている場合、View resultsボタン1401と、View statusボタン1402が表示される。View resultsボタン1401を押下すると、連合学習結果表示画面1411にあるような、統合予測モデルの各学習データT1~T3による予測精度が表示される。
【0118】
View statusボタン1402を押下すると、データステータス画面1412にあるような、各学習データT1~T3がどこの拠点で得られ学習されたデータかが一覧で表示される。
【0119】
連合学習結果表示画面1411に表示されているように、予めサーバ100で学習した学習データT1の知識係数I1を用いて、拠点101の学習データT2を学習した予測モデルと拠点102の学習データT3を学習した予測モデルとの連合学習により生成された統合予測モデルにおいて、拠点101の学習データT2による予測精度(P(T2)=92.19%)と拠点102の学習データT3による予測精度(P(T3)=94.39%)だけでなく、予めサーバ100で学習した学習データT1による予測精度(P(T1)=98.44%)も高く保つことができていることがわかる。
【0120】
図15は、表示画面の表示例4を示す説明図である。表示画面1500は、サーバ100で予測モデルに関する結果を表示する画面である。具体的には、たとえば、
図14の場合と同様、サーバ100が最初に1つの学習データT1で学習する。その後、学習データT1で学習した際の知識係数I1を用いて拠点101が学習データT2で、学習データT1で学習した際の知識係数I1を用いて拠点102が学習データT3で学習する。サーバ100は、拠点101が学習データT2で学習した予測モデルと、拠点102が学習データT3で学習した予測モデルとを、統合する。
【0121】
さらに、
図15では、サーバ100は、統合予測モデルに対してサーバ100の新しい学習データT4を、学習データT1で学習した際の知識係数I1と統合予測モデルに対する学習データT2の知識係数I2と学習データT3の知識係数I3とを用いて学習して生成した統合予測モデルに関する結果を表示する。
【0122】
表示画面1500は、View resultsボタン1401と、View statusボタン1402と、mode name欄1204と、data name欄1205と、学習結果画面1511と、データステータス画面1412と、を含む。
【0123】
サーバ100のユーザは、予測モデルの予測精度を確認したい場合に、mode name欄1204において、Trainを選択する。
図12で指示した学習処理が終了している場合、View resultsボタン1401と、View statusボタン1402が表示される。
【0124】
View resultsボタン1401を押下すると、学習結果画面1511にあるような、最終的な予測モデルによる各学習データによる予測精度が表示される。View statusボタン1402を押下すると、データステータス画面1412にあるような、各学習データがどこの拠点で得られ、学習されたデータかが一覧で表示される。
【0125】
学習結果画面1511に表示されているように、予めサーバ100で学習した学習データT1の知識係数I1を用いて、拠点101の学習データT2で学習した予測モデルと拠点102の学習データT3で学習した予測モデルとの連合学習により生成された統合予測モデルをベース予測モデルM0とする。
【0126】
さらに、ベース予測モデルM0と学習データT4と、学習データT1の知識係数I1、学習データT2の知識係数I2,学習データT3の知識係数I3を用いて継続学習により予測モデルM4を生成する。この場合、拠点101の学習データT2による予測精度(P(T2)=91.84%)と拠点102の学習データT3による予測精度(P(T3)=92.15%)だけでなく、予めサーバ100で学習した学習データT1による予測精度(P(T1)=98.27%)と、今回学習したサーバ100の学習データT4による予測精度(P(T4)=96.31%)も、高く保つことができていることがわかる。
【0127】
実施例1では、連合学習の対象となる予測モデルM1,M2,M3I,M4Iを生成する場所は拠点101~104のみとしたが、サーバ100で生成した予測モデルを連合学習の対象としてもよい。また、拠点101~104のいずれかがサーバ100の役割を担ってもよい。
【0128】
また、拠点101~104が過去の学習データTの知識係数Iを用いずに予測モデルを生成してもよい。この場合、拠点101~104は、サーバ100からの検証結果で合格(予測精度がしきい値以上)した予測モデルを生成した拠点において、知識係数Iを用いた学習により予測モデルを生成する。そして、サーバ100が、検証結果に基づいて拠点101~104のうちいくつかに限定された拠点にて生成された予測モデルを統合して最終的な統合予測モデルを生成してもよい。なお、検証結果ではなくデータの分布特性などから予め拠点をグループに分けてグループごとの統合予測モデルを生成してもよい。
【0129】
このように、
図15に示した例によれば、複数の拠点101~104にある学習データT1~T4を拠点外に移動させることなく、過去に学習した複数の学習データT1,T2の知識係数I1,I2を用いることで過去に学習した学習データT1,T2を再度学習に用いずに、複数の拠点101~104にある学習データT1~T4を予測可能な予測モデルM20を生成することができる。各拠点103,104での学習とサーバ100でのモデル統合との繰り返しにより生成された複数の拠点101~103にある学習データT1~T3を予測可能な統合予測モデルM20Iを生成することができる。
【0130】
統合予測モデルM20Iに対して、拠点104において、継続学習技術を適用すると、学習データT4と、過去に学習した複数の学習データT1,T2,T3の知識係数I1,I2、I3を用いることで過去に学習した学習データT1,T2,T3を再度学習に用いずに、複数の拠点101~104にある学習データT1~T4を予測可能な予測モデルを生成可能である。これにより、拠点101~104にある学習データT1~T4を予測可能な予測モデルM20を生成することができる。
【0131】
したがって、学習データ量の減少による予測モデルの更新時間短縮と、通信する拠点数および通信回数の減少による通信量の抑制と、過去のデータ保存を不要とする記憶デバイス302の使用量抑制と、を実現できる。
【0132】
また、実施例1では、どのコンピュータ300も予測モデル統合部411および学習部412を有しているため、いずれのコンピュータ300もサーバ100および拠点101~104として実行可能である。また、実施例1では、フェーズ1の拠点数を2としたが、フェーズ1の拠点数を3以上としてもよい。同様に、フェーズ2の拠点数を2としたが、フェーズ2の拠点数も3以上としてもよい。
【0133】
また、拠点101~104が知識係数I1~I4をサーバ100に送信した後は、拠点101~104では学習データT1~T4は不要となる。したがって、拠点101~104は学習データT1~T4を削除してもよい。これにより、拠点101~104の記憶デバイス302の省メモリ化を図ることができる。
実施例2について説明する。実施例2は、実施例1よりも、サーバ100および拠点101~104において、それぞれの役割を単一化し、装置構成を最小限にした例である。サーバ100は、学習データで予測モデルを生成しない。拠点101~104は、予測モデルを統合しない。なお、実施例1と同一構成には同一符号を付し、その説明を省略する。
このように、実施例2によれば、実施例1と同様、学習データ量の減少による予測モデルの更新時間短縮と、通信する拠点数および通信回数の減少による通信量の抑制と、過去のデータ保存を不要とする記憶デバイス302の使用量抑制と、を実現できる。
なお、本発明は前述した実施例に限定されるものではなく、添付した特許請求の範囲の趣旨内における様々な変形例及び同等の構成が含まれる。たとえば、前述した実施例は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに本発明は限定されない。また、ある実施例の構成の一部を他の実施例の構成に置き換えてもよい。また、ある実施例の構成に他の実施例の構成を加えてもよい。また、各実施例の構成の一部について、他の構成の追加、削除、または置換をしてもよい。
また、前述した各構成、機能、処理部、処理手段等は、それらの一部又は全部を、たとえば集積回路で設計する等により、ハードウェアで実現してもよく、プロセッサがそれぞれの機能を実現するプログラムを解釈し実行することにより、ソフトウェアで実現してもよい。
各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリ、ハードディスク、SSD(Solid State Drive)等の記憶装置、又は、IC(Integrated Circuit)カード、SDカード、DVD(Digital Versatile Disc)の記録媒体に格納することができる。
また、制御線や情報線は説明上必要と考えられるものを示しており、実装上必要な全ての制御線や情報線を示しているとは限らない。実際には、ほとんど全ての構成が相互に接続されていると考えてよい。