(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2022062959
(43)【公開日】2022-04-21
(54)【発明の名称】データ処理システム、モデル生成装置、データ処理方法、モデル生成方法、及びプログラム
(51)【国際特許分類】
G06N 20/00 20190101AFI20220414BHJP
【FI】
G06N20/00
【審査請求】未請求
【請求項の数】13
【出願形態】OL
(21)【出願番号】P 2020171188
(22)【出願日】2020-10-09
(71)【出願人】
【識別番号】507357232
【氏名又は名称】株式会社エンビジョンAESCジャパン
(74)【代理人】
【識別番号】100110928
【弁理士】
【氏名又は名称】速水 進治
(74)【代理人】
【識別番号】100127236
【弁理士】
【氏名又は名称】天城 聡
(72)【発明者】
【氏名】陳 九廷
(72)【発明者】
【氏名】嶋脇 秀徳
(72)【発明者】
【氏名】林 逸郎
(57)【要約】
【課題】データの解析に用いられるモデルの秘匿性を高める。
【解決手段】データ処理システム20は、入力データ処理部230、中間データ生成部240、及び出力データ生成部250を備えている。入力データ処理部230は、入力データを取得し、当該入力データを変換ルールに従って変換する。この変換ルールの一例は、入力データにダミーデータを追加することにより、入力データに含まれる値の数を増やすことである。中間データ生成部240は、変換後の入力データを処理することにより、中間データを生成する。この中間データは、例えば複数の値からなる複数行及び/または複数列のデータである。中間データは、意味がある値(すなわち求めたい値)と、ダミーとなる値とを含んでいる。出力データ生成部250は、中間データ生成部240が生成した中間データのうち意味がある値を選択することにより出力データを生成する。
【選択図】
図3
【特許請求の範囲】
【請求項1】
複数の値からなる入力データを取得し、当該入力データを変換ルールに従って変換する入力データ処理部と、
変換後の前記入力データを処理することにより、複数の値からなる複数行及び/または複数列のデータからなる中間データを出力する中間データ生成部と、
前記中間データに所定の演算を行った後に予め定められた位置にある少なくとも一つの値を選択することにより出力データを生成する出力データ生成部と、
を備え、
前記中間データ生成部と、前記出力データ生成部とは異なる装置に設けられているデータ処理システム。
【請求項2】
請求項1に記載のデータ処理システムにおいて、
前記入力データに含まれる複数の値は、対象物の状態を互いに異なる指標で測定した結果であり、
前記中間データ生成部は、訓練データを用いて生成されたモデルを用いて前記中間データを生成し、
前記変換ルールは、前記入力データにダミーデータを追加することにより、前記入力データに含まれる値の数を増やすことであるデータ処理システム。
【請求項3】
請求項1又は2に記載のデータ処理システムにおいて、
異常な前記入力データが入力されたとき、前記中間データに含まれる複数の値のうち前記出力データとして選択されなかった値は、正常な前記入力データが入力されたときの前記出力データに含まれる値が取り得る範囲内にある、データ処理システム。
【請求項4】
請求項3に記載のデータ処理システムにおいて、
前記中間データ生成部は、訓練データを用いて生成されたモデルを用いて前記中間データを生成し、
前記モデルを生成するときに用いられる訓練データは、正常なデータからなる第1訓練データ、及び一部に異常なデータを含む第2訓練データを含んでおり、
前記モデルは、
前記第1訓練データを用いて訓練され、その後に、前記変換ルールによって変換された後の前記第2訓練データを用いて訓練される工程を、複数回繰り返すことにより生成されている、データ処理システム。
【請求項5】
請求項4に記載のデータ処理システムにおいて、
前記第1訓練データは前記変換ルールによって変換されずに用いられるデータ処理システム。
【請求項6】
請求項2~5のいずれか一項に記載のデータ処理システムにおいて、
前記対象物は二次電池であるデータ処理システム。
【請求項7】
請求項1~6のいずれか一項に記載のデータ処理システムにおいて、
前記入力データ処理部は、前記入力データに所定の条件を満たす値が含まれていたときに、当該値を他の値に置換するデータ処理システム。
【請求項8】
請求項1~7のいずれか一項に記載のデータ処理システムが有する中間データ生成部で用いられるモデルを生成するモデル生成装置であって、
正常なデータからなる第1訓練データ、及び一部に異常なデータを含む第2訓練データを取得する訓練データ取得部と、
前記モデルを、前記第1訓練データを用いて訓練し、その後に、前記変換ルールによって変換された後の前記第2訓練データを用いて訓練する工程を、複数回繰り返すモデル生成部と、
を備えるモデル生成装置。
【請求項9】
コンピュータが、
複数の値からなる入力データを取得し、当該入力データを変換ルールに従って変換する入力データ処理と、
変換後の前記入力データを処理することにより、複数の値からなる複数行及び/または複数列のデータからなる中間データを出力する中間データ生成処理と、
前記中間データに所定の演算を行った後に予め定められた位置にある少なくとも一つの値を選択することにより出力データを生成する出力データ生成処理と、
を行い、
前記中間データ生成処理と、前記出力データ生成処理とが、異なるコンピュータによって行われるデータ処理方法。
【請求項10】
請求項1~7のいずれか一項に記載のデータ処理システムが有する中間データ生成部で用いられるモデルを生成するモデル生成方法であって、
コンピュータに、
正常なデータからなる第1訓練データ、及び一部に異常なデータを含む第2訓練データを取得する訓練データ取得処理と、
前記モデルを、前記第1訓練データを用いて訓練し、その後に、前記変換ルールによって変換された後の前記第2訓練データを用いて訓練する工程を、複数回繰り返すモデル生成処理と、
を行わせるモデル生成方法。
【請求項11】
コンピュータに、
複数の値からなる入力データを取得し、当該入力データを変換ルールに従って変換する入力データ処理機能と、
変換後の前記入力データを処理することにより、複数の値からなる複数行及び/または複数列のデータからなる中間データを出力する中間データ生成機能と、
を持たせるプログラム。
【請求項12】
コンピュータに、
請求項11に記載の中間データ生成機能によって生成された前記中間データに所定の演算を行った後に、予め定められた位置にある少なくとも一つの値を選択することにより出力データを生成する出力データ生成機能と、
を持たせるプログラム。
【請求項13】
コンピュータに、請求項1~7のいずれか一項に記載のデータ処理システムが有する中間データ生成部で用いられるモデルを生成する機能を持たせるプログラムであって、
前記コンピュータに、
正常なデータからなる第1訓練データ、及び一部に異常なデータを含む第2訓練データを取得する訓練データ取得機能と、
前記モデルを、前記第1訓練データを用いて訓練し、その後に、前記変換ルールによって変換された後の前記第2訓練データを用いて訓練する工程を、複数回繰り返すモデル生成機能と、
を持たせるプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、データ処理システム、モデル生成装置、データ処理方法、モデル生成方法、及びプログラムに関する。
【背景技術】
【0002】
近年は、機械学習によって生成されたモデルが様々な用途で使用されている。例えば特許文献1には、二次電池の状態を推定する際にニューラルネットワークを用いた学習を用いることが記載されている。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
データの解析に用いられるモデル、例えば機械学習によって生成されたモデルの価値は高い。一方、このモデルの用途が広がると、このモデルを用いた装置がネットワークに接続する場合のように、第三者がモデルに接続できるケースが増えてくる。この場合、このモデルに入力データを送信し、このモデルによる出力データを受信することも可能になる。すると、第三者は、入力データの出力データの組み合わせを複数得ることができるため、モデルの構造を推定できる可能性が出てくる。
【0005】
本発明の目的の一例は、データの解析に用いられるモデルの秘匿性を高めることにある。
【課題を解決するための手段】
【0006】
本発明によれば、複数の値からなる入力データを取得し、当該入力データを変換ルールに従って変換する入力データ処理部と、
変換後の前記入力データを処理することにより、複数の値からなる複数行及び/または複数列のデータからなる中間データを出力する中間データ生成部と、
前記中間データに所定の演算を行った後に予め定められた位置にある少なくとも一つの値を選択することにより出力データを生成する出力データ生成部と、
を備え、
前記中間データ生成部と、前記出力データ生成部とは異なる装置に設けられているデータ処理システムが提供される。
【0007】
本発明によれば、請求項1に記載のデータ処理システムが有する中間データ生成部で用いられるモデルを生成するモデル生成装置であって、
正常なデータからなる第1訓練データ、及び一部に異常なデータを含む第2訓練データを取得する訓練データ取得部と、
前記モデルを、前記第1訓練データを用いて訓練し、その後に、前記変換ルールによって変換された後の前記第2訓練データを用いて訓練する工程を、複数回繰り返すモデル生成部と、
を備えるモデル生成装置が提供される。
【0008】
本発明によれば、コンピュータが、
複数の値からなる入力データを取得し、当該入力データを変換ルールに従って変換する入力データ処理と、
変換後の前記入力データを処理することにより、複数の値からなる複数行及び/または複数列のデータからなる中間データを出力する中間データ生成処理と、
前記中間データに所定の演算を行った後に予め定められた位置にある少なくとも一つの値を選択することにより出力データを生成する出力データ生成処理と、
を行い、
前記中間データ生成処理と、前記出力データ生成処理とが、異なるコンピュータによって行われるデータ処理方法が提供される。
【0009】
本発明によれば、上記データ処理システムが有する中間データ生成部で用いられるモデルを生成するモデル生成方法であって、
コンピュータに、
正常なデータからなる第1訓練データ、及び一部に異常なデータを含む第2訓練データを取得する訓練データ取得処理と、
前記モデルを、前記第1訓練データを用いて訓練し、その後に、前記変換ルールによって変換された後の前記第2訓練データを用いて訓練する工程を、複数回繰り返すモデル生成処理と、
を行わせるモデル生成方法が提供される。
【0010】
本発明によれば、コンピュータに、
複数の値からなる入力データを取得し、当該入力データを変換ルールに従って変換する入力データ処理機能と、
変換後の前記入力データを処理することにより、複数の値からなる複数行及び/または複数列のデータからなる中間データを出力する中間データ生成機能と、
を持たせるプログラムが提供される。
【0011】
本発明によれば、コンピュータに、
上記した中間データ生成機能によって生成された前記中間データに所定の演算を行った後に予め定められた位置にある少なくとも一つの値を選択することにより出力データを生成する出力データ生成機能と、
を持たせるプログラムが提供される。
【0012】
本発明によれば、コンピュータに、請求項1に記載のデータ処理システムが有する中間データ生成部で用いられるモデルを生成する機能を持たせるプログラムであって、
前記コンピュータに、
正常なデータからなる第1訓練データ、及び一部に異常なデータを含む第2訓練データを取得する訓練データ取得機能と、
前記モデルを、前記第1訓練データを用いて訓練し、その後に、前記変換ルールによって変換された後の前記第2訓練データを用いて訓練する工程を、複数回繰り返すモデル生成機能と、
を持たせるプログラムが提供される。
【発明の効果】
【0013】
本発明によれば、データの解析に用いられるモデルの秘匿性は高まる。
【図面の簡単な説明】
【0014】
【
図1】実施形態に係るモデル生成装置及びデータ処理システムの使用環境の一例を説明するための図である。
【
図2】モデル生成装置の機能構成の一例を示す図である。
【
図3】データ処理システムの機能構成の一例を示す図である。
【
図4】モデル生成装置の事前処理部及びデータ処理システムの入力データ処理部が用いる変換ルールの第1例を説明するための図である。
【
図5】データ処理システムの入力データ処理部が用いる変換ルールの第2例を説明するための図である。
【
図6】モデル生成装置の事前処理部及びデータ処理システムの入力データ処理部が用いる変換ルールの第3例を説明するための図である。
【
図7】モデル生成装置のハードウェア構成例を示す図である。
【
図8】モデル生成装置が行うモデルの生成処理の第1例を示すフローチャートである。
【
図9】モデル生成装置が行うモデルの生成処理の第2例を示すフローチャートである。
【
図10】データ処理システムが行う処理の一例を示すフローチャートである。
【
図11】仮モデルの生成方法を説明するための図である。
【発明を実施するための形態】
【0015】
以下、本発明の実施の形態について、図面を用いて説明する。尚、すべての図面において、同様な構成要素には同様の符号を付し、適宜説明を省略する。
【0016】
図1は、実施形態に係るモデル生成装置10及びデータ処理システム20の使用環境の一例を説明するための図である。データ処理システム20は、モデル生成装置10が生成したモデルを用いて入力データを処理し、出力データを出力する。入力データは、複数の値からなる。これら複数の値の一例は、対象物の状態を互いに異なる指標で測定した結果である。以下の説明において、対象物は蓄電池(二次電池)30であり、入力データは蓄電池30の状態の測定結果である。この場合、入力データは、例えば蓄電池30の出力電圧、出力電流値、及び温度を含んでいる。ただし、対象物及び入力データはこれらに限定されない。
【0017】
本図に示す例において、モデル生成装置10及びデータ処理システム20は、蓄電池30と共に使用される。データ処理システム20の一部の機能は、蓄電池30のBMS(Battery Management System)であってもよい。ただし、後述する中間データ生成部240と出力データ生成部250は、互いに異なる装置に設けられている。そして一つのデータ処理システム20が複数の蓄電池30に接続しており、これら複数の蓄電池30に関する処理を行う。
【0018】
蓄電池30は機器40に電力を供給する。一例として、機器40は、例えば電動車両などの車両である。ただし、蓄電池30が家庭用の蓄電池の場合、機器40は家庭で用いられる電気機器となる。この場合、蓄電池30は機器40の外部に位置する。また蓄電池30は、系統電力網に接続していてもよい。この場合、蓄電池30は、供給される電力を平準化するために用いられる。具体的には、機器40は、電力が余っている時には電力を蓄え、電力が不測している時には電力を供給する。
【0019】
データ処理システム20は、蓄電池30の状態を推定する。ここで推定される状態は、例えば、蓄電池30の残容量(単位はAh)、充電率(SOC:State Of Charge)、及びSOH(State Of Health)の少なくとも一つである。SOHは、例えば「現在の満充電容量(Ah)/初期の満充電容量(Ah)×100(%)」である。なお、蓄電池30の状態はこれらに限定されない。この推定において、上記したように、データ処理システム20はモデルを用いる。モデル生成装置10は、データ処理システム20が用いるモデルの少なくとも一つを、機械学習、例えばニューラルネットワークを用いて生成し、かつ更新する。
【0020】
モデル生成装置10は、複数の蓄電池30から蓄電池30の状態に関するデータの測定値(以下、実績データと記載)を取得してもよい。この場合、複数の実績データの一部は、機械学習の訓練データとして用いられ、実績データの残りの少なくとも一部は、モデルを検証するために用いられてもよい。
【0021】
実績データは、蓄電池30の種類(例えば品名や型番)を特定する情報を含んでいるのが好ましい。このようにすると、モデル生成装置10は、蓄電池30の種類別にモデルを生成することができる。そしてデータ処理システム20は、当該データ処理システム20が接続している蓄電池30の種類に対応するモデルをモデル生成装置10から取得し、使用することができる。したがって、データ処理システム20による蓄電池30の状態の推定精度は高くなる。
【0022】
なお、実績データの少なくとも一部は、実績データを集めることを主目的として使用されている蓄電池30によって生成されてもよい。
【0023】
図2は、モデル生成装置10の機能構成の一例を示す図である。本図に示す例において、モデル生成装置10は、訓練データ取得部120及びモデル生成部140を備えている。訓練データ取得部120は、複数の訓練データを取得する。一例として、訓練データのそれぞれは、蓄電池のある充放電サイクルにおける状態を示す指標(例えば電流、電圧、及び温度)を含む訓練用測定データを入力データとして、当該蓄電池の性能を示す値(例えば残容量、SOC、及びSOHの少なくとも一つ)である訓練用出力データを目標値としている。モデル生成部140は、複数の訓練データを機械学習することにより、モデルを生成する。
【0024】
モデル生成部140は、複数の機械学習アルゴリズム(例えばLSTM(Long Short-Term Memory)、DNN(Deep Neural Network)、及びLR(Linear Regression)など)を用いて、複数のモデルを生成してもよい。
【0025】
本図に示す例において、訓練データ取得部120は訓練データ記憶部110から訓練データを取得する。訓練データ記憶部110は、モデル生成装置10の一部であってもよいし、モデル生成装置10の外部に設けられていてもよい。訓練データ記憶部110が記憶している訓練データは、正常なデータからなる第1訓練データ、及び一部に異常なデータを含む第2訓練データを含んでいる。第1訓練データの一例は、上記した実績データである。第2訓練データの一例は、実績データとしては存在し得ない値を含んでおり、例えば人またはコンピュータによって生成される。
【0026】
モデル生成装置10は、さらに事前処理部130を備えている。事前処理部130は、少なくとも第2訓練データを、予め定められた変換ルールに従って変換する。モデル生成部140は、変換後の第2訓練データを用いてモデルを生成する。ここで事前処理部130は、さらに第1訓練データを、予め定められた変換ルールに従って変換してもよい。この場合、モデル生成部140は、変換後の第1訓練データを用いてモデルを生成する。
【0027】
上記した変換ルールの一例は、訓練データの入力データに対してダミーデータを追加することにより、当該入力データを構成する値の数を増やすとともに、訓練データの出力データに対してもダミーデータを追加することにより、当該出力データを構成する値の数を増やす処理である。例えば入力データが3つの値からなる場合、変換後の入力データは、当初から入力データに含まれていた3つの値と、少なくとも一つの値からなるダミーデータと、を含んでいるため、4つ以上の値から構成されることになる。なお、この変換ルールの詳細例については後述する。
【0028】
モデル生成部140が生成したモデルは、モデル記憶部150に記憶される。そしてモデル記憶部150に記憶されたモデルは、モデル送信部160によってデータ処理システム20に送信される。本図に示す例において、モデル記憶部150及びモデル送信部160は、モデル生成装置10の一部となっている。ただし、モデル記憶部150及びモデル送信部160の少なくとも一方はモデル生成装置10の外部の装置になっていてもよい。
【0029】
図3は、データ処理システム20の機能構成の一例を示す図である。データ処理システム20は、入力データ処理部230、中間データ生成部240、及び出力データ生成部250を備えている。
【0030】
中間データ生成部240と出力データ生成部250は、互いに異なる装置となっている。一例として、データ処理システム20のうち出力データ生成部250がクラウドサーバ上に設けられており、データ処理システム20の他の機能が端末上に設けられている。ただし、後述する記憶処理部210、モデル記憶部220、及び表示処理部260もクラウドサーバ上に設けられていてもよい。
【0031】
入力データ処理部230は、入力データを取得し、当該入力データを変換ルールに従って変換する。入力データの構成は、モデル生成装置10が用いる訓練データの入力データと同じである。例えば入力データ処理部230は、蓄電池30の状態を検出するセンサ(例えば電流計、電圧計、及び温度計)から入力データを取得する。また入力データ処理部230が用いる変換ルールは、モデル生成装置10の事前処理部130が用いる変換ルールと同じである。この変換ルールの一例は、上記したように、入力データにダミーデータを追加することにより、入力データに含まれる値の数を増やすことである。
【0032】
中間データ生成部240は、変換後の入力データを処理することにより、中間データを生成する。この中間データは、例えば複数の値からなる複数行及び/または複数列のデータである。中間データ生成部240は、モデル生成装置10が生成したモデルを用いて中間データを生成する。上記したように、モデル生成装置10はモデルを生成する際に、訓練データの出力データにダミーデータを追加している。このため、生成される中間データは、意味がある値(すなわち求めたい値)と、ダミーとなる値とを含んでいる。
【0033】
出力データ生成部250は、中間データ生成部240が生成した中間データに所定の演算を行った後に予め定められた位置にある少なくとも一つの値(すなわち中間データのうち意味がある値)を選択することにより出力データを生成する。ここで行われる所定の演算は、例えば加算であるが、減算、乗算、又は除算であってもよいし、加算、減算、乗算、及び除算の少なくとも2つを組み合わせた演算であってもよい。
【0034】
本図に示す例において、データ処理システム20は、さらに記憶処理部210、表示処理部260、及びディスプレイ270を備えている。
【0035】
記憶処理部210は、モデル生成装置10からモデルを取得し、モデル記憶部220に記憶させる。記憶処理部210は、モデル生成装置10からモデルを更新するためのデータ(例えばモデルのパラメータ)を取得した場合、このデータを用いて、モデル記憶部220に記憶されているモデルを更新する。この更新処理は、繰り返し行われるのが好ましい。本図に示す例において、モデル記憶部220はデータ処理システム20の一部となっている。ただし、モデル記憶部220はデータ処理システム20の外部の装置であってもよい。
【0036】
表示処理部260は、出力データ生成部250が生成した出力データをディスプレイ270に表示させる。ディスプレイ270は、機器40の使用者が視認可能な位置に配置されている。例えば機器40が車両の場合、ディスプレイ270は当該車両の内部(例えば運転席の前又は斜め前)に設けられている。
【0037】
図4は、モデル生成装置10の事前処理部130及びデータ処理システム20の入力データ処理部230が用いる変換ルールの第1例を説明するための図である。
図4(A)は入力データの第1例を示しており、
図4(B)は
図4(A)に対応する出力データの一例を示している。
【0038】
図4(A)に示す例において、入力データは行データであり、複数の値(例えば[1,1,1]という3つの値)によって構成されている。そして変換ルールは、この行の所定の位置にダミーデータを挿入することである。その結果、入力データは、2列目にダミーの値である「0」が追加されている。そして2列目以降の値は一列ずつ繰り下がっている。
【0039】
そして、
図4(B)に示す例において、本来の出力データは行データであり、所定の数の値(例えば[1,3,1]という3つの値)によって構成されている。これに対し、モデル生成装置10が生成したモデルは、変換後の入力データを用いることを前提としており、その結果、本来の出力データよりも多い数の値(例えば[-3,1,3,1,-2]という5つの値)からなる行データとなる。ただしこの行データは、予め定められた位置(すなわち予め定められた列)に、本来の出力データ([1,3,1])を含んでいるとともに、残りの位置(列)にダミーの値を含んでいる。出力データ生成部250は[-3,1,3,1,-2]から、[1,3,1]を抽出する処理を行う。なお、本来の出力データとなる複数の値は連続している必要はない。
【0040】
なお、モデル生成装置10の事前処理部130は、訓練データに含まれる入力データ(例えば[1,1,1])に対して所定の値のダミーデータ(例えば0)を所定の位置(例えば2列目)に追加する。また事前処理部130は、訓練データに含まれる出力データ(例えば[1,3,1])に対して所定のダミーデータを所定の位置(例えば1列目と5列目)を追加する。ここで出力データに追加される所定のダミーデータの値は、本来の出力データに含まれる値が取り得る範囲内にあるのが好ましい。このようにすると、中間データ生成部240が生成した中間データに含まれるダミーの値(すなわち出力データとして選択されない値)は、本来の出力データとなる複数の値が取り得る範囲内になる。したがって、第三者が中間データを見たとしても、この第三者は中間データに含まれる複数の値のうちどれが意味のあるデータ(すなわち本来の出力データ)であるか、判断できない。このため、第三者は入力データと出力データの組み合わせを特定できなくなり、その結果、モデル生成装置10が生成したモデルの秘匿性は高くなる。
【0041】
なお、モデルをこのようにするためには、モデル生成装置10が用いる第2訓練データにおいて、出力データに含まれるダミーの値を、本来の出力データとなる複数の値が取り得る範囲内にすればよい。
【0042】
図5は、データ処理システム20の入力データ処理部230が用いる変換ルールの第2例を説明するための図である。
図5(A)は入力データの第1例を示しており、
図5(B)は
図5(A)に対応する出力データの一例を示している。
【0043】
本図に示す処理は、
図4を用いて説明した処理とほぼ同様である。ただし、変換ルールは、さらに、「入力データに所定の条件を満たす値が含まれていたときに、当該値を他の値に置換すること」を含んでいる。第三者がモデルの構造を推定することを目的として、コンピュータを用いて多数の入力データをデータ処理システム20に入力する場合、入力データは特定の値(例えば0や1などの整数)を含むことが多い。そこで変換ルールにおける「所定の条件を満たす値」として、コンピュータが自動でデータを生成するときに用いやすい値を設定しておくと、変換ルールによってこの値は他の値に置き換えられる。従って、モデルの秘匿性は高くなる。
【0044】
ここで、「所定の条件を満たす値」と、置き換えた後の値である「他の値」との差を小さくすると、入力データが「所定の条件を満たす値」を含んでいた場合であっても、出力データ生成部250が出力する出力データの値と、値を置き換えなかった場合の出力データ(本来の出力データの値)との差は小さくなる。このため、変換ルールの値の置換に起因した誤差は小さくなる。
【0045】
なお、上記した値の置き換えは、モデル生成装置10の事前処理部130では行われなくてもよい。
【0046】
図6は、モデル生成装置10の事前処理部130及びデータ処理システム20の入力データ処理部230が用いる変換ルールの第3例を説明するための図である。
【0047】
本図に示す処理は、
図4又は
図5を用いて説明した処理を前提にしている。このため、
図6(A)に示す処理は、
図5(A)(又は
図4(A))に示した処理と同じである。その上で、中間データ生成部240が生成した中間データは、これらのデータを構成する少なくとも一つの値(ダミーとなる値ではなく本来のデータを構成する値)に所定の演算を行うことにより、本来のデータが得られるようになっている。この演算は、出力データ生成部250が行う。例えば
図6(B)に示す例では、3列目の値に定数(例えば1)を加えることにより、本来のデータが得られるようになっている。
【0048】
このようにするためには、例えばモデル生成部140が用いる訓練データにおいて、出力データに対して、中間データ生成部240(又は出力データ生成部250)が行う演算とは逆の演算(例えば3列目の値から定数(例えば1)を引く)を行い、この逆演算を行った後の訓練データを用いて、中間データ生成部240が用いるモデルを生成すればよい。
【0049】
本図に示す例によれば、モデルが出力する中間データのうち本来のデータを示す値は、本来の値とは異なる値になる。このため、モデルの秘匿性はさらに高くなる。
【0050】
図7は、モデル生成装置10のハードウェア構成例を示す図である。モデル生成装置10は、バス1010、プロセッサ1020、メモリ1030、ストレージデバイス1040、入出力インタフェース1050、及びネットワークインタフェース1060を有する。
【0051】
バス1010は、プロセッサ1020、メモリ1030、ストレージデバイス1040、入出力インタフェース1050、及びネットワークインタフェース1060が、相互にデータを送受信するためのデータ伝送路である。ただし、プロセッサ1020などを互いに接続する方法は、バス接続に限定されない。
【0052】
プロセッサ1020は、CPU(Central Processing Unit) やGPU(Graphics Processing Unit)などで実現されるプロセッサである。
【0053】
メモリ1030は、RAM(Random Access Memory)などで実現される主記憶装置である。
【0054】
ストレージデバイス1040は、HDD(Hard Disk Drive)、SSD(Solid State Drive)、メモリカード、又はROM(Read Only Memory)などで実現される補助記憶装置である。ストレージデバイス1040はモデル生成装置10の各機能(例えば訓練データ取得部120、事前処理部130、モデル生成部140、及びモデル送信部160)を実現するプログラムモジュールを記憶している。プロセッサ1020がこれら各プログラムモジュールをメモリ1030上に読み込んで実行することで、そのプログラムモジュールに対応する各機能が実現される。また、ストレージデバイス1040は訓練データ記憶部110及びモデル記憶部150としても機能する。
【0055】
入出力インタフェース1050は、モデル生成装置10と各種入出力機器とを接続するためのインタフェースである。
【0056】
ネットワークインタフェース1060は、モデル生成装置10をネットワークに接続するためのインタフェースである。このネットワークは、例えばLAN(Local Area Network)やWAN(Wide Area Network)である。ネットワークインタフェース1060がネットワークに接続する方法は、無線接続であってもよいし、有線接続であってもよい。モデル生成装置10は、ネットワークインタフェース1060を介してデータ処理システム20と通信してもよい。
【0057】
なお、データ処理システム20のハードウェア構成も
図7に示した例と同様である。そして、ストレージデバイスは、データ処理システム20の各機能(例えば記憶処理部210、入力データ処理部230、中間データ生成部240、出力データ生成部250、及び表示処理部260)を実現するプログラムモジュールを記憶している。またストレージデバイスは、モデル記憶部220としても機能する。
【0058】
図8は、モデル生成装置10が行うモデルの生成処理の第1例を示すフローチャートである。
【0059】
まずモデル生成装置10の訓練データ取得部120は、訓練データ記憶部110から訓練データを読み出す(ステップS10)。この訓練データには、第1訓練データ及び第2訓練データが含まれる。この状態において、第1訓練データ及び第2訓練データは変換ルールが適用されておらず、そのため、ダミーデータを加えられていない。
【0060】
次いでモデル生成部140は、第1訓練データを用いてモデルを訓練する(ステップS20)。以下、この訓練により生成されたモデルをベースモデルという。ベースモデルに対する入力データの値の数、及びベースモデルからの出力データの値の数は、それぞれ本来の数である。
【0061】
次いで、モデル生成部140は、ベースモデルを処理することにより、仮モデルを生成する(ステップS30)。この仮モデルは、入力データの数及び出力データの数のそれぞれが、変換ルールが適用された後の数となっている。
【0062】
ここで、仮モデルの生成方法について、説明する。仮モデルは、例えば以下の方法によって生成される。なお、上記した第1訓練データの変換ルール、および中間データから出力データへの変換ルールは、この仮モデルの生成方法に従って定まる。
(1)ベースモデルのパラメータを示す行列において、特定の列、特定の行、もしくは任意の位置にダミーデータを追加する(
図4~
図6に示した例に対応)。
(2)ベースモデルのパラメータを示す行列において、特定の列、特定の行、もしくは特定の成分を相互に入れ替える(
図11参照)。
(3)(1)及び(2)を組み合わせる。
【0063】
ここで、(1)又は(3)において、仮モデルの訓練を行うことにより、仮モデルにおけるダミーデータの値が定まる。
【0064】
次いで事前処理部130は、第1訓練データおよび第2訓練データを変換ルールに従って変換する(ステップS40)。そしてモデル生成部140は、変換後の第1訓練データおよび第2訓練データを用いて仮モデルを訓練する(ステップS50)。その後、訓練後の仮モデルが基準を満たすか否かを判断する(ステップS60)。この基準は、例えば以下の2つの双方を含んでいる。
【0065】
第1の基準は、訓練に用いられなかった実績データを訓練データ記憶部110から選択し、選択した実績データの入力データを仮モデルに入力し、その結果としての出力データと、選択した実績データのうち出力データに相当するデータと、の差が基準以下になることである。
【0066】
第2の基準は、訓練に用いられなかった異常なデータ(第2訓練データに相当)の入力データを仮モデルに入力し、その結果として得られた出力データを構成するすべての値が、本来の出力データが取り得る値の範囲内にあることである。
【0067】
訓練後の仮モデルが基準を満たさなかった場合(ステップS60:No)、ステップS20に戻る。すなわちモデル生成装置10は、仮モデルが基準を満たすまで、ステップS20~ステップS50に示した処理を繰り返す。
【0068】
訓練後の仮モデルが基準を満たした場合(ステップS60:Yes)、モデル生成部140は、仮モデルを正式なモデルとしてモデル記憶部150に記憶させる(ステップS70)。
【0069】
図9は、モデル生成装置10が行うモデルの生成処理の第2例を示すフローチャートである。本図に示す例は、第1訓練データを変換ルールで変換した後(ステップS22)にモデルを訓練することにより、仮モデルを生成する(ステップS32)点を除いて、
図8に示した例と同様である。
【0070】
図10は、データ処理システム20が行う処理の一例を示すフローチャートである。まず入力データ処理部230は、入力データを取得する。例えば入力データ処理部230は、蓄電池30から入力データを取得し(ステップS110)、この入力データを変換ルールに従って変換する(ステップS120)。次いで中間データ生成部240は、変換後の入力データを、モデル記憶部220が記憶しているモデルに入力することにより、中間データを得る(ステップS130)。次いで出力データ生成部250は、中間データに所定の演算を行った後に所定の位置にある値を選択することにより、出力データを生成する(ステップS140)。その後、出力データ生成部250は、表示処理部260に出力データを出力する(ステップS150)。表示処理部260は、ディスプレイ270に出力データを表示させる。
【0071】
以上、本実施形態によれば、データ処理システム20が用いるモデルの出力データは、データ処理システム20の出力データとは異なる。このため、第三者がデータ処理システム20の入力データと出力データの組み合わせを複数得たとしても、これらの組み合わせから20が用いるモデルを推定しにくい。したがって、このモデルの秘匿性は高い。
【0072】
以上、図面を参照して本発明の実施形態について述べたが、これらは本発明の例示であり、上記以外の様々な構成を採用することもできる。
【0073】
また、上述の説明で用いた複数のフローチャートでは、複数の工程(処理)が順番に記載されているが、各実施形態で実行される工程の実行順序は、その記載の順番に制限されない。各実施形態では、図示される工程の順番を内容的に支障のない範囲で変更することができる。また、上述の各実施形態は、内容が相反しない範囲で組み合わせることができる。
【符号の説明】
【0074】
10 モデル生成装置
20 データ処理システム
30 蓄電池
40 機器
110 訓練データ記憶部
120 訓練データ取得部
130 事前処理部
140 モデル生成部
150 モデル記憶部
160 モデル送信部
210 記憶処理部
220 モデル記憶部
230 入力データ処理部
240 中間データ生成部
250 出力データ生成部
260 表示処理部
270 ディスプレイ