(57)【要約】      （修正有）【課題】ユーザのプライバシ情報を保護しつつ、予測精度の低下および予測処理のスピードの低下を低減することができる予測モデル分散システムを提供する。【解決手段】予測モデル分散システムにおいて、データ提供装置２００は、ニューラルネットワークである予測モデルに含まれる複数のパラメータのうち負の数値を正の数値に変換することにより予測モデルを変換し（Ｓ１０２）、変換された予測モデルを、秘密分散法により分散して（Ｓ１０３）、データ演算装置３００、３１０、３２０に送信する。一方、ユーザ端末装置はユーザ情報である特徴量を秘密分散法により分散して、データ演算装置３００，３１０、３２０に送信する。データ演算装置３００、３１０、３２０は連携して予測処理を行い分散化予測結果を得て、分散化予測結果をユーザ端末装置１００に送信し、ユーザ端末装置１００は予測結果を復号して、予測結果を利用する。【選択図】図５
2019215512.tif 000002
【特許請求の範囲】
【請求項１】
入力を秘匿したまま予測処理を行うための予測モデル分散方法であって、
ニューラルネットワークである予測モデルに含まれる複数のパラメータのうち負の数値を正の数値に変換することにより前記予測モデルを変換する予測モデル変換ステップと、
変換された前記予測モデルを、秘密分散法により分散する予測モデル分散化ステップと、
を含む、
予測モデル分散方法。
【請求項２】
前記予測モデルは、前記複数のパラメータが１または−１の二値で構成されるパラメータを含む二値化ニューラルネットワークである、
請求項１に記載の予測モデル分散方法。
【請求項３】
さらに、
事前に収集した学習用のデータを用いて、前記予測モデルの学習処理を行う学習ステップを含む、
請求項１または２に記載の予測モデル分散方法。
【請求項４】
前記予測モデル変換ステップでは、前記予測モデルに含まれる前記複数のパラメータのうち小数の値を整数の値に変換する、
請求項１〜３のいずれか一項に記載の予測モデル分散方法。
【請求項５】
前記予測モデル変換ステップでは、前記予測モデルに含まれる前記複数のパラメータのうちの負の数値に対し、前記秘密分散法で用いる除数を加算することにより、前記負の数値を正の数値に変換する、
請求項１〜４のいずれか一項に記載の予測モデル分散方法。
【請求項６】
前記予測モデル変換ステップでは、前記予測モデルに含まれる前記複数のパラメータのうち数値を、前記数値の符号を０または１で示す符号部と、前記数値の絶対値を示す数値部との組に変換することにより、前記負の数値を正の数値に変換する、
請求項１〜４のいずれか一項に記載の予測モデル分散方法。
【請求項７】
前記予測モデル変換ステップでは、さらに、前記複数のパラメータの一部から新たなパラメータを生成する、
請求項１〜６のいずれか一項に記載の予測モデル分散方法。
【請求項８】
さらに、
センシングによって得られたデータから特徴量を算出する特徴量算出ステップと、
算出された前記特徴量を前記秘密分散法により分散する特徴量分散化ステップと、
を含む、
請求項１〜７のいずれか一項に記載の予測モデル分散方法。
【請求項９】
さらに、
分散された前記予測モデルに、分散された前記特徴量を入力して、分散された前記予測モデルで予測処理を実行する予測処理ステップを含み、
前記予測処理ステップは、非線形処理を含み、
前記非線形処理は、前記非線形処理に対する入力が０または正に対応する数値であれば１に、前記入力が負に対応する数値であれば−１に対応する正の数値に変換する処理である、
請求項８に記載の予測モデル分散方法。
【請求項１０】
入力を秘匿したまま予測処理を行うための予測モデル分散システムであって、
ニューラルネットワークである予測モデルに含まれる複数のパラメータのうち負の数値を正の数値に変換することにより前記予測モデルを変換する予測モデル変換部と、
変換された前記予測モデルを、秘密分散法により分散する予測モデル分散部と、
を備える、
予測モデル分散システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、秘密分散法により内容を秘匿しながらニューラルネットワークの予測処理を行うための予測モデル分散方法および予測モデル分散システムに関する。
【背景技術】
【０００２】
近年、様々な企業がニューラルネットワークを利用したサービスを提供している。ニューラルネットワークを用いたサービスの例として、アップロードされた画像から被写体の種別を識別するサービスや、ユーザの購買履歴をもとにそのユーザが好むと思われる商品を推薦するサービス等が挙げられる。
【０００３】
このようなサービスでは、ユーザからの入力情報、例えば、ユーザがアップロードする画像またはユーザの購買履歴等の入力情報に機微な情報が含まれていることも多いため、ユーザのプライバシ情報を保護する必要がある。そのため、ユーザがサービス提供者に対してプライバシ情報を公開することなく、ニューラルネットワークの学習処理および予測処理を行う技術が求められている。
【０００４】
また、サービス提供者の立場から見ても、サービスのノウハウに関わる情報をできる限りユーザに知られることなく、ユーザにサービスを提供できることが求められる。
【０００５】
これら２つの条件を満たす技術として、データを秘匿したまま計算を行うことが可能な秘密計算法という手法を用いて、ニューラルネットワークの予測処理を行う方法が考えられている。秘密計算法は、データを保管する主体に対して計算過程と結果とを秘匿することができる技術である。例えば、クラウドのような第三者が管理するサーバにデータを保管し、その保管しているデータに対してあらゆる演算を実行することができる。第三者には、入力データ、計算過程、計算結果を知られることがないため、個人情報のような機微な情報に対する分析処理をアウトソースすることができる。特に、非特許文献１（SecureML）および非特許文献２（CryptoNets）は、データを秘匿にしたまま予測処理を行う技術が開示されている。
【先行技術文献】
【非特許文献】
【０００６】
【非特許文献１】Payman Mohassel、外１名、「SecureML: A System for Scalable Privacy-Preserving Machine Learning」、「IEEE Symposium on Security and Privacy 2017」（https://eprint.iacr.org/2017/396.pdf）
【非特許文献２】Ran Gilad-Bachrach、外５名、「CryptoNets: Applying Neural Networks to Encrypted Data with High Throughput and Accuracy」、（http://proceedings.mlr.press/v48/gilad-bachrach16.pdf）
【非特許文献３】Adi Shamir、「How to share a secret」、（http://dl.acm.org/citation.cfm?id=359176）
【非特許文献４】Ronald Cramer、外２名、「Share Conversion, Pseudorandom Secret-Sharing and Applications to Secure Computation」、（https://rd.springer.com/chapter/10.1007/978-3-540-30576-7_19）
【非特許文献５】Toshinori Araki、外４名、「High-Throughput Semi-Honest Secure Three-Party Computation with an Honest Majority」、（https://eprint.iacr.org/2016/768.pdf）
【非特許文献６】Takashi Nishide、外１名、「Multiparty Computation for Interval, Equality, and Comparison Without Bit-Decomposition Protocol」、「Public Key Cryptography - PKC 2007」、Springer Berlin Heidelberg 、（https://rd.springer.com/chapter/10.1007/978-3-540-71677-8_23）
【非特許文献７】Matthieu Courbariaux、外４名、「Binarized Neural Networks: Training Deep Neural Networks with Weights and Activations Constrained to +1 or -1」、（https://arxiv.org/abs/1602.02830）
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、非特許文献１（SecureML）は、一般的なニューラルネットワークに比べて予測精度が低下するという問題がある。また、非特許文献２（CryptoNets）は、計算量が膨大であり、実用性に疑問がある。
【０００８】
そこで、本開示では、予測精度の低下を低減することができる予測モデル分散方法および予測モデル分散システムを提供する。さらに、本開示では、上記構成を有することにより、計算量を少なく維持することができるため、予測処理のスピードの低下を低減することができる。
【課題を解決するための手段】
【０００９】
上記課題を解決するため、予測モデル分散方法の一態様は、入力を秘匿したまま予測処理を行うための予測モデル分散方法であって、ニューラルネットワークである予測モデルに含まれる複数のパラメータのうち負の数値を正の数値に変換することにより前記予測モデルを変換する予測モデル変換ステップと、変換された前記予測モデルを、秘密分散法により分散する予測モデル分散化ステップと、を含むことを特徴とするものである。
【００１０】
また、上記問題を解決するため、予測モデル分散システムの一態様は、入力を秘匿したまま予測処理を行うための予測モデル分散システムであって、ニューラルネットワークである予測モデルに含まれる複数のパラメータのうち負の数値を正の数値に変換することにより前記予測モデルを変換する予測モデル変換部と、変換された前記予測モデルを、秘密分散法により分散する予測モデル分散部と、を備える。
【発明の効果】
【００１１】
本開示の予測モデル分散方法および予測モデル分散システムによれば、入力を秘匿のまま予測処理のスピードおよび予測精度の低下を低減することができる。
【図面の簡単な説明】
【００１２】
【図１】実施の形態に係る予測モデル分散システムの全体構成の一例を示す図である。
【図２】実施の形態におけるユーザ端末装置の構成の一例を示す図である。
【図３】実施の形態におけるデータ提供装置の構成の一例を示す図である。
【図４】実施の形態におけるデータ演算装置の構成一例を示す図である。
【図５】実施の形態における予測モデル分散システムの学習フェーズの動作を示すシーケンス図である。
【図６】実施の形態における予測モデル分散システムの予測フェーズの動作を示すシーケンス図である。
【図７】実施の形態における予測モデル分散システムの予測フェーズの動作を示すシーケンス図である。
【図８】実施の形態における予測処理の動作を示すシーケンス図である。
【図９】実施の形態における特徴量の一例を示す図である。
【図１０】実施の形態における分散化特徴量の一例を示す図である。
【図１１】実施の形態における均一化処理の一例を示す図である。
【図１２】実施の形態における予測モデルの一例を示す図である。
【図１３Ａ】実施の形態における事前計算後の予測モデルの一例を示す図である。
【図１３Ｂ】実施の形態における整数化後の予測モデルの一例を示す図である。
【図１３Ｃ】実施の形態における負の整数を正の整数に変換した予測モデルの一例を示す図である。
【図１４】実施の形態における予測処理のフローの概要を示す図である。
【図１５】実施の形態における変換前の重み行列の一例を示す図である。
【図１６】実施の形態における均一化処理の一例を示す図である。
【発明を実施するための形態】
【００１３】
（本開示の基礎となった知見）
暗号化したままニューラルネットワークの予測演算を行う手法として、非特許文献１（SecureML）と非特許文献２（CryptoNets）が開示されている。しかしこれらの方法は、予測精度が低下し、かつ、計算量が膨大であるため、実用性に疑問がある。
【００１４】
そこで、本開示では、例えば、Binarized Neural Networks（二値化ニューラルネットワーク）のようなニューラルネットワークを秘密計算法で実現することにより、入力を秘匿のまま予測処理のスピードおよび予測精度の低下を低減することができる予測モデル分散方法および予測モデル分散システムを提供する。
【００１５】
本開示の一態様は以下の通りである。
【００１６】
本開示の一態様に係る予測モデル分散方法は、入力を秘匿したまま予測処理を行うための予測モデル分散方法であって、ニューラルネットワークである予測モデルに含まれる複数のパラメータのうち負の数値を正の数値に変換することにより前記予測モデルを変換する予測モデル変換ステップと、変換された前記予測モデルを、秘密分散法により分散する予測モデル分散化ステップと、を含む。
【００１７】
これにより、予測モデルに含まれる全パラメータが正の数値に変換されるため、予測モデルを分散させる手法として秘密分散法を適用することができる。そのため、入力を秘匿のまま予測処理のスピードおよび予測精度の低下を低減することができる。
【００１８】
例えば、本開示の一態様に係る予測モデル分散方法は、前記予測モデルは、前記複数のパラメータが１または−１の二値で構成されるパラメータを含む二値化ニューラルネットワークであってもよい。
【００１９】
このように、予測モデルとして二値化ニューラルネットワークを用いることにより、行列積演算の計算時間を短くすることができる。また、予測モデルが二値化ニューラルネットワークであることにより、予測モデルに含まれる負の数値を正の数値に変換する処理が簡便になる。そのため、予測処理のスピードの低下を低減することができる。
【００２０】
例えば、本開示の一態様に係る予測モデル分散方法は、さらに、事前に収集した学習用のデータを用いて、前記予測モデルの学習処理を行う学習ステップを含んでもよい。
【００２１】
これにより、正しい予測結果を導き出すために適した予測モデルを作成しやすくなる。したがって、予測精度を向上させることができる。
【００２２】
例えば、本開示の一態様に係る予測モデル分散方法は、前記予測モデル変換ステップでは、前記予測モデルに含まれる前記複数のパラメータのうち小数の値を整数の値に変換してもよい。
【００２３】
複数のパラメータに小数の値が含まれると、計算が煩雑になり、計算時間が長くなる。また、小数を整数に変換しても、得られる計算結果は同じである。そのため、小数の値を整数の値に変換することにより、予測処理の精度が保たれたまま、予測処理における計算時間を短くすることができる。また、秘密分散法では、小数の値を扱うことができないため、小数の値を整数の値に変換する必要がある。これにより、変換後の予測モデルを秘密分散法により分散させることができる。
【００２４】
例えば、本開示の一態様に係る予測モデル分散方法は、前記予測モデル変換ステップでは、前記予測モデルに含まれる前記複数のパラメータのうちの負の数値に対し、前記秘密分散法で用いる除数を加算することにより、前記負の数値を正の数値に変換してもよい。
【００２５】
一般に、パラメータの数値が大きいほど予測精度が高く、数値が小さいほうが計算速度が速い。そのため、例えば、予測精度と予測スピードとのバランスの観点から、秘密分散法で用いる除数の値を決定し、負の数値に加算する。これにより、変換後の予測モデルを用いると、予測精度および予測スピードの低下を低減することができる。また、変換後の予測モデルに含まれる全てのパラメータが正の数値で表されるため、変換後の予測モデルを秘密分散法により分散させることができる。したがって、入力を秘匿のまま予測処理を行うことができる。
【００２６】
例えば、本開示の一態様に係る予測モデル分散方法は、前記予測モデル変換ステップでは、前記予測モデルに含まれる前記複数のパラメータのうち数値を、前記数値の符号を０または１で示す符号部と、前記数値の絶対値を示す数値部との組に変換することにより、前記負の数値を正の数値に変換してもよい。
【００２７】
当該変換処理は、例えば、予測モデルに含まれるパラメータの１つが−１０である場合、−１０は、符号を示す符号部と数値の絶対値を示す数値部との組（１，１０）に変換される。このように、負の数値である−１０が正の数値である１と１０との組に変換されるため、予測モデルに含まれるパラメータは、正の数値のみで表される。したがって、当該変換処理を予測モデルに適用することにより、変換された予測モデルを秘密分散法により分散させることができる。
【００２８】
例えば、本開示の一態様に係る予測モデル分散方法は、前記予測モデル変換ステップでは、さらに、前記複数のパラメータの一部から新たなパラメータを生成してもよい。
【００２９】
これにより、予測モデルを分散化する、つまり、予測モデルを暗号化する前に、予測モデルに含まれる学習済みのパラメータで構成される部分を計算する。パラメータは学習されると固定であるため、予測モデルが暗号化される前に固定値となる部分を計算して新たなパラメータを生成してもよい。これにより、予測モデルが暗号化された後に計算されるよりも、計算量および通信量を削減することができるため、予測処理における計算スピードを向上させることができる。したがって、入力が秘匿されたままで予測処理を行っても、処理スピードの低下を低減することができる。
【００３０】
例えば、本開示の一態様に係る予測モデル分散方法は、さらに、センシングによって得られたデータから特徴量を算出する特徴量算出ステップと、前記算出された特徴量を前記秘密分散法により分散する特徴量分散化ステップと、を含んでもよい。
【００３１】
これにより、ユーザからセンシングによって得られた個人情報などの機微な情報についても、予測モデルと同様にして、秘密分散法により分散させることができる。そのため、本開示の一態様に係る予測モデル分散方法によれば、予測処理に対する入力（ここでは、ユーザ情報）を秘匿のまま、つまり、ユーザのプライバシ情報を保護しながら、予測処理を実行することができる。
【００３２】
例えば、本開示の一態様に係る予測モデル分散方法は、分散された前記予測モデルに分散された前記特徴量を入力して、分散された前記予測モデルで予測処理を実行する予測処理ステップを含み、前記予測処理ステップは、非線形処理を含み、前記非線形処理は、前記非線形処理に対する入力が０または正に対応する数値であれば１に、前記入力が負に対応する数値であれば−１に対応する正の数値に変換する処理であってもよい。
【００３３】
これにより、変換後の数値が予測の正確性が保証される正の数値範囲に収まるように入力の数値を変換することができる。そのため、予測処理のスピードおよび予測精度の低下を低減することができる。
【００３４】
また、本開示の一態様に係る予測モデル分散システムは、入力を秘匿したまま予測処理を行うための予測モデル分散システムであって、ニューラルネットワークである予測モデルに含まれる複数のパラメータのうち負の数値を正の数値に変換することにより前記予測モデルを変換する予測モデル変換部と、変換された前記予測モデルを、秘密分散法により分散する予測モデル分散部と、を備える。
【００３５】
当該システムによれば、予測モデルに含まれる全パラメータが正の数値に変換されるため、予測モデルを分散させる手法として秘密分散法を適用することができる。そのため、入力を秘匿のまま予測処理のスピードおよび予測精度の低下を低減することができる。
【００３６】
なお、以下で説明する実施の形態は、いずれも本開示の一具体例を示すものである。以下の実施の形態で示される数値、形状、構成要素、ステップ、ステップの順序などは、一例であり、本開示を限定する主旨ではない。また、以下の実施の形態における構成要素のうち、最上位概念を示す独立請求項に記載されていない構成要素については、任意の構成要素として説明される。また、各図は、必ずしも厳密に図示したものではない。各図において、実質的に同一の構成については同一の符号を付し、重複する説明は省略又は簡略化することがある。
【００３７】
また、本開示の主旨を逸脱しない限り、当業者が思いつく各種変形を実施の形態に施したものや、全ての実施の形態において、各々の実施の形態における一部の構成要素を組み合わせて構築される別の形態も、本開示の範囲に含まれる。
【００３８】
（実施の形態）
以下、本実施の形態に係る予測モデル分散方法および予測モデル分散システムについて図面を用いて説明する。
【００３９】
［予測モデル分散システム］
本実施の形態に係る予測モデル分散システムは、入力を秘匿したまま予測処理を行うための予測モデル分散システムであって、ニューラルネットワークである予測モデルに含まれる複数のパラメータのうち負の数値を正の数値に変換することにより予測モデルを変換する予測モデル変換部と、変換された予測モデルを、秘密分散法により分散する予測モデル分散部と、を備える。
【００４０】
本実施の形態では、さらに、センシングによって得られたデータから特徴量を算出する特徴量算出部と、算出された特徴量を秘密分散法により分散する特徴量分散化部と、を備える。
【００４１】
また、本実施の形態では、さらに、分散された予測モデルに分散された特徴量を入力して、分散された予測モデルで予測処理を実行する予測処理部を備える。
【００４２】
［１．  予測モデル分散システムの構成］
ここでは、本開示の実施の形態に係る予測モデル分散システムの構成について図面を参照しながら説明する。なお、本明細書では、予測モデル分散システムは、暗号化された予測モデル（以下、分散化予測モデル）と、分散化予測モデルと同様の方法で暗号化されたユーザ情報（以下、分散化特徴量）とを用いて、暗号化されたまま予測処理を行うシステムである。以下、予測モデル分散システムを秘匿予測システムとも言う。また、以下、分散化および暗号化を秘匿化とも言う。
【００４３】
［１．１  予測モデル分散システムの全体構成］
図１は、本開示の実施の形態１に係る予測モデル分散システムの全体構成の一例を示す図である。図１に示すように、予測モデル分散システムは、例えば、ユーザ端末装置１００とデータ提供装置２００と３つのデータ演算装置３００、３１０、３２０とを備える。各装置間の通信は、有線のインターネット線、無線通信、専用通信等のいずれかであればよい。
【００４４】
ここで、データ演算装置３００、３１０、３２０はそれぞれ、１つのクラウドサーバ、もしくは、１つのクラウドサーバに含まれる装置である。
【００４５】
予測モデル分散システムにおいて、例えば、企業または団体が予測処理に必要なデータ（以下、予測モデル）を、データ提供装置２００から３つのクラウドサーバ、すなわち、データ演算装置３００、３１０、３２０に秘匿して送信する。ユーザが秘匿予測システムのサービスを利用する際は、ユーザが自身の情報（以下、特徴量）を、ユーザ端末装置１００から３つのクラウドサーバであるデータ演算装置３００、３１０、３２０に秘匿して送信する。３つのクラウドサーバは互いに通信を行うことにより、それぞれのクラウドサーバが他のクラウドサーバで得られたデータを利用しながら、データを秘匿したまま予測結果を計算し、３つのクラウドサーバはそれぞれ得られた予測結果をユーザ端末装置１００へ送信する。
【００４６】
なお、ユーザ端末装置１００は１つ以上であってもよいし、データ提供装置２００も１つ以上であってもよい。さらに、図１に示す例では、予測モデル分散システムは、データ演算装置を３つ備えているが、データ演算装置を少なくとも２つ備えていればよい。理由の詳細については、後述する。概要を説明すると、本開示で用いられる秘密分散法は、データを分散する数に応じて、乱数を加算する回数が増える。そのため、１つの分散されたデータでは、除数を割り出すことができないため、少なくとも２つの分散されたデータが必要となる。そのため、データを秘匿したまま算出された予測結果もまた、秘匿された状態であり、復号された予測結果を得るために、２つ以上の秘匿された予測結果が必要となる。
【００４７】
なお、予測モデル分散システムを構成する各装置間の通信は、リアルタイムの通信でなくてもよい。例えば、ユーザ端末装置１００はセンシングしたユーザ情報または秘匿予測処理（以下、予測処理とも呼ぶ）の要求コマンドをある程度集めて、一時に、複数のデータ演算装置３００、３１０、３２０に送信してもよい。
【００４８】
［１．２  ユーザ端末装置］
図２は、ユーザ端末装置１００の構成の一例を示す図である。ユーザ端末装置１００は、センシング部１０１と、特徴量算出部１０２と、特徴量分散部１０３と、復号部１０４と、予測結果利用部１０５と、通信部１０６とを含んで構成される。ユーザ端末装置１００は、例えば、プロセッサ（マイクロプロセッサ）、メモリ、センサ、通信インタフェース等を備えるコンピュータまたは携帯端末に実装される。
【００４９】
ユーザ端末装置１００は、例えばユーザの血圧、心拍、ＣＴスキャン情報等のユーザに関する情報、すなわち、プライバシデータをセンシングし、特徴量を算出してデータ演算装置３００、３１０、３２０へ送信する。そして、ユーザ端末装置１００は、算出された特徴量に対応する予測結果をデータ演算装置３００、３１０、３２０に要求し、予測結果をデータ演算装置３００、３１０、３２０から得て、予測モデル分散システムにおけるサービスに利用する。
【００５０】
［１．２．１  センシング部］
センシング部１０１は、ユーザについての情報をセンシングするためのセンサである測定装置を、１つ以上含んで構成される。
【００５１】
センシングする情報は、例えばユーザの血圧、体温、心拍等のバイタルデータ、ユーザの身体を撮影または測定して得られる顔画像、エコー情報、ＣＴスキャン情報等の画像情報等でもよい。
【００５２】
またセンシングする情報は、例えばGPS(Global Positioning System)で得られる位置情報、ユーザが電気機器または車両等の移動体を操作した履歴を示すログ情報、あるいは、ユーザによる商品等の購入履歴情報等でもよい。
【００５３】
ログ情報は、例えば車両のステアリング操作、アクセル操作、ブレーキ操作、変速ギアの操作等に関連して取得または測定される各種情報であり、例えば、変位量、速度、加速度等を操作時刻と対応付けた情報であってもよい。
【００５４】
センシングするユーザの情報は、例えばユーザが他人に知られたくない個人的な事柄であるプライバシデータであってもよい。
【００５５】
予測モデル分散システムは、プライバシデータを秘匿したまま、Binarized Neural Networks（二値化ニューラルネットワーク）の予測処理を行うための予測モデル分散システムであって、秘匿したまま予測結果を算出する秘匿予測システムである。ここでは、センシング部１０１でセンシングされたユーザについての情報は、プライバシデータであると仮定して説明する。
【００５６】
［１．２．２  特徴量算出部］
特徴量算出部１０２は、センシング部１０１で取得したユーザのプライバシデータから特徴量を算出する。特徴量算出部１０２が算出する特徴量は、複数の成分を含むベクトルで表され得る。
【００５７】
この特徴量は、例えば、ユーザの身体の全体または一部位についての形状、サイズ、重量、状態、および、動きの少なくとも１つに関連する指標を示す成分を含む。
【００５８】
なお、特徴量の対象となるユーザの身体の部位はいかなる部位であってもよく、例えば、目、鼻、耳、手、足、臓器、血管等がある。
【００５９】
ユーザの身体の全体または一部位についての状態としては、例えば健康状態、例えば、健康診断に用いられる各種検査項目に対する状態、水分量、血圧、酸素飽和度等が挙げられる。
【００６０】
また、ユーザの身体の全体または一部位についての動きとしては、例えば、体動、具体的には、単位時間当たりの寝返り回数等、微振動、例えば、心拍数、呼吸数、吸気呼気比率等が挙げられる。
【００６１】
なお、特徴量は、例えば、ユーザの顔画像における特徴的なパラメータの主成分である。特徴量は、例えば、ある領域の位置、面積、幅等の情報であってもよい。また、特徴量は、センシング部１０１でユーザについて測定された何らかの要素を示す履歴情報から、時間軸に対応した要素の傾向を例えば多項式で表現した場合の各項の係数を成分として含むベクトルで表される情報であってもよい。
【００６２】
センシング部１０１で取得した情報から抽出された特徴量自体も、プライバシデータであり得る。図９は、本実施の形態における特徴量の一例を示す図である。
【００６３】
［１．２．３  特徴量分散部］
特徴量分散部１０３は、特徴量算出部１０２により算出された特徴量を、あらかじめ定められた方法により分散して秘匿する。特徴量分散部１０３では、データ演算装置３００、３１０、３２０において特徴量を分散された状態のまま使用して予測処理を行うことが可能な方法、例えば、非特許文献３のShamir（２，３）閾値秘密分散法を用いて特徴量を分散させることにより、分散された特徴量（以下、分散化特徴量ともいう）を作成する。
【００６４】
秘密分散法とは、秘密情報から複数の分散情報を生成する技術である。分散情報は予め定められた組み合わせからは秘密情報を復元できるが、それ以外の組み合わせからは秘密情報が復元できないように作られる。定められた組み合わせには様々な構造を取ることができ、その構造は、アクセス構造と呼ばれる。様々なアクセス構造があるが、代表的なアクセス構造として、閾値型アクセス構造について説明する。閾値型アクセス構造は、生成される分散情報の数ｎと、閾値ｋの２つのパラメータで表される。ｋ個以上の分散情報からは秘密情報が復元できるが、ｋ個未満の分散情報からは秘密情報が復元できないというものである。閾値型アクセス構造を有する秘密分散法には、例えば、上記のShamir（２，３）閾値秘密分散法があり、秘密情報を入力として３個の分散情報を生成するための分散処理と、２個以上の分散情報から秘密情報を復元する復元処理とを含む。
【００６５】
なお、秘密分散法は、非特許文献３に記載の方法に限らず、非特許文献４または非特許文献５に示された方法を用いてもよい。分散処理に用いる法ｐは、あらかじめシステムで決定され、特徴量分散部１０３で保持される。図１０は、本実施の形態における分散化特徴量の一例を示す図である。
【００６６】
［１．２．４  復号部］
復号部１０４は、ユーザ端末装置１００がデータ演算装置３００、３１０、３２０に送信した分散された特徴量に対応する予測結果を、データ演算装置３００、３１０、３２０からそれぞれ受信して復号する。これらの予測結果は、秘密分散法により分散された特徴量および予測モデルを分散された状態のまま使用して得られた結果であり、暗号化された予測結果である。これらの予測結果の復号方法については、例えば、非特許文献３、非特許文献４、および、非特許文献５のいずれかの方法を用いればよい。
【００６７】
［１．２．５  予測結果利用部］
予測結果利用部１０５は、復号部１０４で復号された予測結果を利用する。予測結果の利用の一例としては、予測結果をユーザへ提示すること、つまり、予測結果の提示である。予測結果の提示は、例えば、画像であってもよく、音声であってもよい。予測結果の提示が画像である場合、当該提示は、例えば、予測結果に基づくグラフ、統計情報等の形式で表示される。また、予測結果の提示が音声である場合、当該提示は、例えば、予測結果に基づく音声で出力される。なお、予測結果の提示は、画像および音声であってもよい。この場合、ユーザ端末装置１００は、例えば画像を表示するディスプレイ、音声を出力するスピーカーなどの音声出力装置、および、その他のユーザインタフェースを含んで実装され、予測結果を提示してもよい。
【００６８】
また、予測結果利用部１０５は、予測結果に基づいて、さらに所定の演算、または、情報検索等を行い、ユーザに対して、病院での検診の提案、生活習慣の改善のためのアドバイス、または、お勧めの献立等を提示してもよい。
【００６９】
［１．２．６  通信部］
通信部１０６は、複数のデータ演算装置３００、３１０、３２０と通信を行う。通信部１０６は、特徴量分散部１０３で作成された分散された特徴量をそれぞれデータ演算装置３００、３１０、３２０に送信する。以下のデータ演算装置の項にて詳細に説明するが、複数のデータ演算装置３００、３１０、３２０は、これらの分散化特徴量を受信することをトリガーとし、これらの分散化特徴量を秘匿された状態のまま使用して、予測処理を実行する。また通信部１０６は、データ演算装置３００、３１０、３２０がそれぞれ計算した予測結果を受信し、復号部１０４に送信する。なお、これらの予測結果は、上述の通り、暗号化された予測結果である。
【００７０】
［１．３  データ提供装置］
続いて、データ提供装置２００について説明する。図１に示すように、データ提供装置２００は、例えば、企業または団体が予測処理に必要なデータを、データ演算装置３００、３１０、３２０に秘匿して提供するための装置である。
【００７１】
図３は、本実施の形態におけるデータ提供装置２００の構成の一例を示す図である。データ提供装置２００は、学習データ格納部２０１と、学習部２０２と、予測モデル変換部２０４と、予測モデル分散部２０５と、通信部２０６と、予測モデル格納部２０３とを含んで構成される。
【００７２】
データ提供装置２００は、例えば、企業または団体が所持している血圧、心拍、ＣＴスキャン情報等の生体情報と、生体情報に対応する症例とを紐づけたデータから、Binarized Neural Networks（二値化ニューラルネットワーク）の学習処理により予測モデルを作成する。そして、データ提供装置２００は、作成された予測モデルを秘密分散法により分散させて、秘匿のまま、複数のデータ演算装置３００、３１０、３２０に送信する。
【００７３】
［１．３．１  学習データ格納部］
学習データ格納部２０１は、入力を秘匿のまま予測処理を行うために必要な予測モデルを作成するための学習データを格納する。学習データは、ユーザ端末装置１００の特徴量算出部１０２で算出される特徴量と同じ性質のデータと、当該特徴量と同じ性質のデータに対応する正解データとの組である。本実施の形態では、例えば、複数の患者のバイタルデータから算出された特徴量と、当該特徴量に対応する正解データである患者の病名との組を学習データとする。
【００７４】
［１．３．２  学習部］
学習部２０２では、学習データ格納部２０１に格納された学習データに対して、あらかじめ定められた方法により学習処理を行い、予測モデルを作成する。学習処理については、例えば、非特許文献７に示された方法を用いる。図１２は、本実施の形態における予測モデルの一例を示す図である。
【００７５】
［１．３．３  予測モデル格納部］
予測モデル格納部２０３は、学習部２０２で作成した予測モデルを格納する。
【００７６】
［１．３．４  予測モデル変換部］
予測モデル変換部２０４は、予測モデル格納部２０３に格納された予測モデルに対して変換処理を行う。
【００７７】
図１１は、本実施の形態における予測処理の均一化処理の一例を示す図である。図１１の（式Ａ）は、Binarized Neural Networks（二値化ニューラルネットワーク）における予測処理の均一化処理の一例を示す式である。（式Ａ）のγ、σ、ε、β、μは予測モデルに含まれる学習済みのパラメータであり、ｘは均一化処理の入力、ｙは均一化処理の出力を示す。（式Ａ）の一部を示す、図１１の（式Ｂ）および（式Ｃ）は、上記の５つの学習済みのパラメータが固定値であるため、予測処理の前に計算可能である。そのため、予測モデル変換部２０４では、（式Ｂ）および（式Ｃ）の計算を均一化処理の前にあらかじめ行い、これを新たな予測モデルとする。以下、図１１の（式Ｂ）および（式Ｃ）の計算をあらかじめ行うことを事前計算とも呼ぶ。
【００７８】
これにより、データ演算装置３００、３１０、３２０での計算量および通信量を削減することができる。
【００７９】
予測モデル分散部２０５で秘密分散法により予測モデルを分散する際、小数を扱うことはできないため、予測モデル変換部２０４では、作成された予測モデルに対して事前に定めた数値を掛け、小数点以下を切り捨てることで整数化する。例えば、作製された予測モデルを１０倍して、小数点以下を切り捨てて、整数化する（図１３Ａおよび図１３Ｂ参照）。
【００８０】
また、予測モデル分散部２０５で秘密分散法により予測モデルを分散する際、負の数値を扱うことはできないため、予測モデル変換部２０４では、予測モデルのうち、負の数値で表される要素を正の数値に変換し、変換予測モデルを作成する。例えば、ある要素ｘが負の数値だった場合、分散処理に用いる法ｐに対して、要素ｘをｐ＋ｘに変換する（図１３Ｂおよび図１３Ｃ参照）。
【００８１】
図１３Ａは、本実施の形態における事前計算後の予測モデルの一例を示す図である。図１３Ａでは、図１２に示す５つのパラメータγ、σ、ε、β、μを、図１１の（式Ｂ）および（式Ｃ）に代入して算出された新たなパラメータｓおよびパラメータｔを示している。パラメータｓおよびパラメータｔは、小数を含む。上述した通り、予測モデルを分散する際に、小数を扱うことはできないため、小数を整数化する。ここでは、パラメータｓおよびパラメータｔを１０倍して、小数点以下を切り捨てて整数化する。
【００８２】
図１３Ｂは、本実施の形態における整数化後の予測モデルの一例を示す図である。図１３Ｂに示すように、整数化されたパラメータｓおよびパラメータｔは、負の数値を含む。上述した通り、予測モデルを分散する際に、負の数値を扱うことはできないため、負の数値を正の数値に変換する。具体的には、負の数値に対し、秘密分散法で用いる除数ｐ（上記の法ｐ）を加算して、負の数値を正の数値に変換する。例えば、ｐ＝６５５１９とすると、上記パラメータのうちの負の数値は、負の数値に対応する非常に大きな正の数値に変換される。
【００８３】
図１３Ｃは、本実施の形態における負の数値を正の数値に変換した予測モデルの一例を示す図である。上述した通り、図１３Ｃに示すパラメータｓおよびパラメータｔは、整数化後の予測モデルのうち、負の数値に対し、法ｐを加算することにより、当該負の数値に対応する非常に大きな正の数値に変換される。なお、図１３Ｃにおいて、ｐ＝６５５１９である。
【００８４】
［１．３．５  予測モデル分散部］
予測モデル分散部２０５は、予測モデル変換部２０４により作成された変換予測モデルを、あらかじめ定められた方法により分散して秘匿する。予測モデル分散部２０５では、データ演算装置３００、３１０、３２０において特徴量を暗号化したまま、予測処理を行うことが可能な分散された予測モデル（以下、分散化予測モデルともいう）を作成する。予測モデル分散部２０５では、例えば、非特許文献３のShamir（２，３）閾値秘密分散法を用いて分散し、分散化予測モデルを作成する。
【００８５】
なお、上述の通り、秘密分散法としては、非特許文献３の方法に限られず、非特許文献４、および、非特許文献５のいずれかに示された方法を用いてもよい。分散処理に用いる法ｐは、あらかじめシステムで決定され、予測モデル分散部２０５で保持される。
【００８６】
［１．３．６  通信部］
通信部２０６は、データ演算装置３００、３１０、３２０と通信を行う。通信部２０６は、予測モデル分散部２０５で作成された分散化予測モデルを複数のデータ演算装置３００、３１０、３２０に送信する。
【００８７】
［１．４  データ演算装置］
続いて、データ演算装置について説明する。図１に示すように、データ演算装置３００、３１０、３２０は、例えば、クラウドサーバである。予測モデル分散システムでは、データ演算装置３００は、２つ以上備えられていればよい。本実施の形態では、３つのデータ演算装置３００、３１０、３２０はそれぞれ、互いに通信を行うことで、データを秘匿したまま予測結果を計算し、ユーザ端末装置１００へ送信する。より具体的には、データ演算装置３００、３１０、３２０では、分散化予測モデルに分散化特徴量を入力して、分散化予測モデルで予測処理を実行する。以下、本実施の形態におけるデータ演算装置３００、３１０、３２０についてより具体的に説明する。
【００８８】
図４は、データ演算装置３００の構成の一例を示す図である。データ演算装置３００は、分散化予測モデル格納部３０１と、予測演算部３０２と、通信部３０３とを含んで構成される。データ演算装置３００は、ユーザ端末装置１００から受信した分散化特徴量と、データ提供装置２００から受信した分散化予測モデルを、分散された状態のまま使用して予測処理を行う。なお、データ演算装置３１０、３２０は、データ演算装置３００と同じ構成である。
【００８９】
［１．４．１  分散化予測モデル格納部］
分散化予測モデル格納部３０１は、データ提供装置２００から受信した分散された予測モデルを格納する。
【００９０】
［１．４．２  予測演算部］
予測演算部３０２は、分散化予測モデル格納部３０１に格納されている分散化予測モデルと、ユーザ端末装置１００から受信した分散化特徴量とを用いて、予測処理を行う。予測演算部３０２では、分散化予測モデルと分散化特徴量とを分散された状態のまま使用して予測処理を行い、分散化予測結果を求める。
【００９１】
図１４は、本実施の形態における予測処理のフローの概要を示す図である。予測処理は、行列積演算、データ分布の均一化処理、非線形処理、最大値探索の４つの処理で実行される。予測処理では、行列積演算、データ分布の均一化処理、非線形処理が所定の回数繰り返し実行された後、最大値探索により予測結果を得る。
【００９２】
まず、行列積演算について説明する。行列積演算は、分散された入力ベクトルである分散化特徴量と、分散化予測モデルに含まれる分散化重み行列との行列積を計算する。図１５は、本実施の形態における変換前の重み行列の一例を示す図である。図１５に示すように、予測モデルは、複数のパラメータが１または−１の二値で構成されるパラメータを含む二値化ニューラルネットワークである。図示しないが、本実施の形態では、分散化予測モデルは、例えば、図１５に示す予測モデルに含まれる複数のパラメータのうち負の数値を正の数値に変換することにより得られる変換後の予測モデルを秘密分散法により分散された暗号化された予測モデルである。また、分散化特徴量は、センシングによって得られたデータから算出された特徴量を、予測モデルと同様に、秘密分散法により分散して得られた暗号化された特徴量である。例えば、図１０に示すように、分散化特徴量は、１つの特徴量（例えば、特徴量１）を秘密分散法により分散して得られた３つの暗号化された特徴量である。具体的には、図９に示す特徴量１が１２であり、この特徴量１に乱数（ここでは、２６）を加算すると、図１０に示すデータ演算装置３００に送信される特徴量１の分散化特徴量３８が算出される。上述したように、データを分散する個数に応じて、乱数の加算回数が増す。具体的には、２つめの分散化特徴量は、乱数２６を２回加算して得られる。例えば、２つめの分散化特徴量は、図１０に示すデータ演算装置３１０に送信される特徴量１の分散化特徴量６４である。
【００９３】
続いて、行列積演算で得られたデータ分布の均一化処理について説明する。図１６は、本実施の形態におけるデータ分布の均一化処理で用いられる式の一例を示す図である。図１６において、ｘは入力ベクトルであり、上述の行列積演算で算出されるベクトルである。また、ベクトルｓおよびベクトルｔは、予測モデルに含まれる均一化パラメータである。図１６は、図１１の（式Ａ）、（式Ｂ）および（式Ｃ）により得られる式ｙ＝ｓｘ＋ｔに対応する。ここで、ｙは、出力ベクトルであり、均一化処理により算出されるベクトルである。均一化処理は、入力ベクトルと均一化パラメータとの和と積により計算される。均一化処理を行うことで、行列積演算、均一化処理、非線形処理を繰り返す回数を削減することができる。なお、本実施の形態では、均一化パラメータとして、図１３Ｃに示すベクトルｓおよびベクトルｔを用いる。
【００９４】
続いて、非線形処理について説明する。非線形処理は、均一化処理により算出されたベクトル（例えば、上記のｙ）である分散された入力ベクトルのそれぞれの要素について、非線形変換を行う処理である。非線形処理は、例えば、非線形処理に対する入力が０または正に対応する数値であれば１に、入力が負に対応する数値であれば−１に対応する正の数値に変換する。
【００９５】
予測処理では、上記の行列積演算、データ分布の均一化処理、および、非線形処理が所定の回数繰り返し実行された後、最大値探索が行われる。
【００９６】
続いて、最大値探索について説明する。最大値探索では、分散された入力ベクトルの全要素の中で最大値の要素を探索する。最大値検索では、例えば、最大値検索に対する入力ベクトルの全要素間で大小関係を比較し、比較結果の論理積を計算することにより実現される。より具体的には、最大値検索では、各要素について、他の全ての要素と個別に大小関係が比較される。比較結果は、０および１の二値で表される。例えば、ある要素の値が他の要素の値と同じ、または、他の要素の値よりも大きければ、比較結果は１で表され、ある要素の値が他の要素の値よりも小さければ、比較結果は０で表される。全要素について、他の要素との大小関係の比較結果は、比較表に格納される。この場合、全要素の中で最大値の要素は、他の要素との大小関係の比較結果が全て１になる。そのため、比較結果の論理積を計算した場合、論理積は、最大値の要素のみが１になり、それ以外の要素は全て０になる。この特性を利用することで、最大値の要素を抽出することができる。
【００９７】
上述のように、本実施の形態では、行列積演算、データ分布の均一化処理、非線形処理、および、最大値探索の４つの処理は、それぞれの処理に対する入力の和、積、大小関係の比較、論理積だけで構成され得る。非特許文献６では、２つの分散された値を復号することなく、それらの値の和、積、大小関係の比較、および、論理積を計算できる。このことから、予測処理に非特許文献６の方式を用いることで、分散化予測モデルと分散化特徴量とを復号することなく、入力を秘匿したまま予測処理を行うことができる。
【００９８】
［１．４．３  通信部］
データ演算装置３００の通信部３０３は、ユーザ端末装置１００、データ提供装置２００、他のデータ演算装置３１０、３２０と通信を行う。通信部３０３は、データ提供装置２００から分散化予測モデルを受信し、受信した分散化予測モデルを分散化予測モデル格納部に格納する。通信部３０３は、ユーザ端末装置１００から分散化特徴量を受信し、受信した分散化特徴量を予測演算部３０２へ送信する。また、通信部３０３は、予測演算部３０２で算出された分散化予測結果をユーザ端末装置１００に送信する。
【００９９】
上述の通り、データ演算装置３００は、分散化予測モデルと分散化特徴量とを復号することなく、これらを分散されたまま、つまり、秘匿のまま、予測処理を行う。そのため、通信部３０３は、他のデータ演算装置３１０、３２０に対して、分散化予測モデルおよび分散化特徴量に処理を加えたデータを送信する。
【０１００】
［２．  予測モデル分散システムの動作（予測モデル分散方法）］
予測モデル分散システムの動作の一例について説明する。予測モデル分散システムの動作は、データ提供装置２００が予測モデルを学習し分散する学習フェーズと、複数のデータ演算装置３００、３１０、３２０が分散された予測モデル（いわゆる、分散化予測モデル）を利用して分散された特徴量（いわゆる、分散化特徴量）の予測を行う予測フェーズの２つを含む。
【０１０１】
［２．１  学習フェーズ］
まず、予測モデル分散システムの学習フェーズの動作について説明する。図５は、本実施の形態に係る予測モデル分散システムの学習フェーズの動作の一例を示すシーケンス図である。
【０１０２】
学習ステップＳ１０１では、データ提供装置２００は、学習データ格納部２０１に格納された学習用のデータを参照し、学習部２０２にてBinarized Neural Networks（二値化ニューラルネットワーク）である予測モデルの学習処理を行う。
【０１０３】
これにより、予測処理を行うための予測モデルが作成される。作成された予測モデルは予測モデル格納部２０３に格納される。
【０１０４】
次に、予測モデル変換ステップＳ１０２では、データ提供装置２００は、作成された予測モデルに対して、予測モデル変換部２０４にて変換処理を適用する。具体的には、予測モデル変換ステップＳ１０２では、データ提供装置２００は、ニューラルネットワークである予測モデルに含まれる複数のパラメータのうち負の数値を正の数値に変換することにより、当該予測モデルを変換する。
【０１０５】
より具体的には、予測モデル変換ステップＳ１０２では、予測モデルに含まれる複数のパラメータのうち小数の値を整数の値に変換し、次いで、複数のパラメータのうち負の数値を正の整数に変換する。
【０１０６】
これにより、負の数値を含む予測モデルを、正の数値のみで表現することができるため、秘密分散法により予測モデルを分散させた後も、正しく計算を行うことができる。
【０１０７】
次に、予測モデル分散化ステップＳ１０３では、データ提供装置２００は、予測モデル変換ステップＳ１０２で変換された予測モデルを秘密分散法により分散する。これにより、分散された予測モデル（いわゆる、分散化予測モデル）が得られる。
【０１０８】
次に、ステップＳ１０４では、データ提供装置２００は、予測モデル分散化ステップＳ１０３で得られた分散化予測モデルを、複数のデータ演算装置３００、３１０、３２０に送信する。
【０１０９】
次に、ステップＳ１０５では、データ演算装置３００、３１０、３２０は、データ提供装置２００から受信した分散化予測モデルを分散化予測モデル格納部３０１に格納する。
【０１１０】
以上により、学習フェーズでは、データ提供装置２００は、予測処理を行うための予測モデルを作成し、作成された予測モデルを秘密分散法により分散して分散化予測モデルを作成する。これにより、予測モデルを秘匿のまま複数のデータ演算装置３００、３１０、３２０に送信することができる。
【０１１１】
［２．２  予測フェーズ］
続いて、予測モデル分散システムの予測フェーズについて説明する。図６および図７は、本実施の形態に係る予測モデル分散システムの予測フェーズにおけるユーザ端末装置１００の動作の一例を示すシーケンス図である。
【０１１２】
まず、ステップＳ２０１では、ユーザ端末装置１００は、センシング部１０１で情報を取得する。ここでは、センシングによって得られた情報は、ユーザのプライバシデータである。センシング部１０１で取得された情報は、特徴量算出部１０２に送信される。
【０１１３】
次に、特徴量算出ステップＳ２０２では、ユーザ端末装置１００は、特徴量算出部１０２にて、センシング部１０１から受信した情報から特徴量を算出する。特徴量は、センシング部１０１から受信した情報の特徴を示す値である。図９を再び参照すると、図９では、特徴量１、特徴量２および特徴量３が上記特徴量の例として示されている。
【０１１４】
次に、特徴量分散化ステップＳ２０３では、ユーザ端末装置１００は、特徴量算出ステップＳ２０２で算出された特徴量を、秘密分散法により分散する。これにより、分散された特徴量（いわゆる、分散化特徴量）が得られる。ここで、図１０を再び参照して、分散化特徴量の算出方法について説明する。例えば、センシング部１０１でセンシングされたユーザの情報が特徴量１である場合、特徴量１は、データ演算装置の数に応じた個数（ここでは、３つ）に分散される。特徴量１に対し、乱数（ここでは、２６）を加算し、データ演算装置３００に送信する分散化特徴量を算出する。さらに、この分散化特徴量に２６を加算し、データ演算装置３１０に送信する分散化特徴量を算出する。さらに、この分散化特徴量に２６を加算し、データ演算装置３２０に送信する分散化特徴量を算出する。
【０１１５】
次に、ステップＳ２０４では、ユーザ端末装置１００は、分散化特徴量を複数のデータ演算装置３００、３１０、３２０に送信する。具体的には、図１０に示すように、ユーザ端末装置１００は、特徴量１、特徴量２、および、特徴量３をそれぞれ分散した分散化特徴量を、複数のデータ演算装置３００、３１０、３２０に送信する。
【０１１６】
複数のデータ演算装置３００、３１０、３２０は、それぞれ、ユーザ端末装置１００から分散化特徴量を受信すると、分散化予測モデル格納部（データ演算装置３００では、分散化予測モデル格納部３０１）に格納された分散化予測モデルを読み出し、予測処理ステップＳ２０５を開始する。
【０１１７】
予測処理ステップでは、複数のデータ演算装置３００、３１０、３２０は、分散化特徴量と分散化予測モデルとを分散された状態のまま使用して、Binarized Neural Networks（二値化ニューラルネットワーク）の予測処理を行う。なお、予測処理ステップＳ２０５の詳細については後述する。
【０１１８】
これにより、複数のデータ演算装置３００、３１０、３２０は、それぞれ予測処理の結果として分散化予測結果を得る。なお、非特許文献６の方式を用いて予測処理の計算を行った場合、予測処理を行う際は、複数のデータ演算装置３００、３１０、３２０のそれぞれが有する分散された情報、および、分散された情報を予測処理したデータを、複数のデータ演算装置３００、３１０、３２０の間で通信する必要がある。
【０１１９】
次に、ステップＳ２０６では、複数のデータ演算装置３００、３１０、３２０は、それぞれ、分散化予測結果をユーザ端末装置１００へ送信する。
【０１２０】
次に、ステップＳ２０７では、ユーザ端末装置１００は、複数のデータ演算装置３００、３１０、３２０から送信された分散化予測結果を受信し、受信された分散化予測結果を復号し、予測結果を得る。
【０１２１】
最後に、ステップＳ２０８では、ユーザ端末装置１００は、予測結果利用部１０５にて、取得した予測結果を利用する。
【０１２２】
以上により、予測フェーズでは、データ提供装置２００は、予測処理を行うための予測モデルを作成し、作成された予測モデルを秘密分散法により分散して分散化予測モデルを作成する。これにより、予測モデルを秘匿のまま複数のデータ演算装置３００、３１０、３２０に送信することができる。
【０１２３】
［２．３  予測処理ステップＳ２０５］
複数のデータ演算装置３００、３１０、３２０は、ユーザ端末装置１００から分散化特徴量を受信することをトリガーとして、予測処理ステップＳ２０５を開始する。予測処理ステップＳ２０５では、複数のデータ演算装置３００、３１０、３２０は、分散化特徴量と分散化予測モデルとを分散されたまま用いて、Binarized Neural Networks（二値化ニューラルネットワーク）の予測処理を行う。
【０１２４】
以下、予測モデル分散システムの予測処理ステップＳ２０５について、より具体的に説明する。図８は、本実施の形態に係る予測モデル分散システムの予測フェーズにおける複数のデータ演算装置３００、３１０、３２０の動作の一例を示すシーケンス図である。
【０１２５】
まず、行列積演算ステップＳ３０１では、複数のデータ演算装置３００、３１０、３２０は、分散化特徴量（図１０参照）である分散された入力ベクトルを受信すると、分散化予測モデルである分散化重み行列（図１５参照）との行列積を計算し、出力として第一分散化ベクトルを得る。より具体的には、データ演算装置３００における動作を例に説明すると、データ演算装置３００は、ユーザ端末装置１００から分散化特徴量を受信すると、分散化予測モデル格納部３０１に格納された分散化予測モデルを読み出す。次いで、データ演算装置３００は、分散化特徴量と分散化予測モデルとの行列積を計算し、第一分散化特徴量である第一分散化ベクトルを得る。なお、分散化予測モデル（ここでは、分散化重み行列）は、全ての要素が正の数値になるように変換された変換後の予測モデルを、秘密分散法により分散して得られる。より具体的には、図１５に例示する二値化ニューラルネットワークである予測モデル（ここでは、重み行列）は、当該予測モデルの複数のパラメータ（つまり、要素）のうち−１が−１に対応する正の数値に変換される。予測モデルの全ての要素が正の数値で表されることにより、予測モデル分散システムは、当該予測モデルを秘密分散法により分散することができる。
【０１２６】
次に、均一化処理ステップＳ３０２では、複数のデータ演算装置３００、３１０、３２０は、行列積演算ステップＳ３０１で出力として得られた第一分散化ベクトルと、均一化パラメータ（図１６参照）とを用いて、第一分散化ベクトルに含まれる要素ごとに積および和を計算し、出力として第二分散化特徴量である第二分散化ベクトルを得る。具体的には、第二分散化ベクトルは、図１６に示すように、各要素ｘ１〜ｘ４をそれぞれ、図１１の（式Ａ）〜（式Ｃ）により導かれる均一化処理の式ｙ＝ｓｘ＋ｔに代入して求められる。
【０１２７】
次に、非線形処理ステップＳ３０３では、均一化処理ステップＳ３０２で出力として得られた第二分散化ベクトルを非線形処理に対する入力ベクトルとし、非線形処理を行う。より具体的には、非線形処理ステップＳ３０３では、入力ベクトルの各要素が０または正に対応する数値であれば１に、入力ベクトルの各要素が負に対応する数値であれば−１に対応する正の整数に変換する。これにより、非線形処理ステップＳ３０３では、出力として第三分散化特徴量である第三分散化ベクトルを得る。
【０１２８】
次に、複数のデータ演算装置３００、３１０、３２０は、非線形処理ステップＳ３０３で出力として得られた第三分散化ベクトルと、分散化予測モデルとを用いて、行列積演算ステップＳ３０１を実行する。続いて、複数のデータ演算装置３００、３１０、３２０は、行列積演算ステップＳ３０１で得られた第四分散化ベクトルを入力として、均一化処理ステップＳ３０２を実行した後、均一化処理ステップＳ３０２で得られた第五分散化ベクトルを入力として、非線形処理ステップＳ３０３を実行する。これにより、第六分散化ベクトルが得られる。
【０１２９】
このように、上記の行列積演算ステップＳ３０１、均一化処理ステップＳ３０２、および、非線形処理ステップＳ３０３の一連のステップは所定の回数繰り返される。図１４を再び参照すると、本実施の形態では、例えば、当該一連のステップ（いわゆる、層）は２回繰り返される。これにより、第六分散化ベクトルが得られる。次いで、行列演算ステップＳ３０４では、複数のデータ演算装置３００、３１０、３２０は、上記一連のステップＳ３０１〜Ｓ３０３を所定の回数（ここでは、２回）繰り返して出力として得られた第六分散化ベクトルと、重み行列との行列積を算出する。これにより、第七分散化ベクトルが得られる。次いで、均一化処理ステップＳ３０５では、行列演算ステップＳ３０４で得られた第七分散化ベクトルに対して均一化処理を実行する。これにより、第八分散化ベクトルが得られる。最後に、最大値探索ステップＳ３０６では、均一化処理ステップＳ３０５で得られた第八分散化ベクトルのうち最大値の要素を探索する。これにより、分散化予測結果が得られる。
【０１３０】
以上のように、本実施の形態に係る予測モデル分散方法では、予測モデルの複数のパラメータのうち負の数値を正の数値に変換することで、予測モデルを秘密分散法により分散することができる。これにより、分散化特徴量および分散化予測モデルを分散させた状態のまま使用して、つまり、秘匿のまま、予測処理を行うことができる。そのため、予測処理の途中に第三者が予測処理に係るデータを取得したとしても、元のデータに復号されにくい。したがって、本実施の形態に係る予測モデル分散方法を適用することにより、ユーザのプライバシデータ、および、企業独自のノウハウなどの機密性の高い情報を第三者から保護することができる。また、例えば、均一化パラメータのように、予測モデルの複数のパラメータの一部を事前に計算することで、予測処理を高速化することができる。
【０１３１】
（他の実施の形態）
以上、本開示に係る予測モデル分散システム、および、予測モデル分散方法について、実施の形態に基づいて説明したが、本開示は、上記の実施の形態に限定されるものではない。本開示の主旨を逸脱しない限り、当業者が思いつく各種変形を実施の形態に施したものや、実施の形態における一部の構成要素を組み合わせて構築される別の形態も、本開示の範囲に含まれる。例えば、以下のような場合も本開示に含まれる。
【０１３２】
（１）上記実施の形態では、データ提供装置２００が、予測モデル変換部２０４において、予測モデルに含まれる複数のパラメータ（以下、要素ともいう）のうち負の数値を正の数値に変換する例を示したが、これに限られない。予測モデル変換部２０４は、予測モデルに対して、以下に示す変換処理を行ってもよい。ある要素ｘ（ここでは、ｘは整数）について、ｘ＝ａｂ（ただし、ａは、ｘの符号を示す符号部であり、ｂはｘの絶対値を示す数値部である。）とする。符号部ａには、ある要素ｘが０または正の数値であれば０を代入し、ある要素ｘが負の数値であれば１を代入する。また、数値部ｂには、ｘの絶対値を代入する。このようにして、ある要素ｘは、ａとｂとの組（ａ，ｂ）に変換される。予測モデルに含まれる全ての要素に上記変換処理を適用することにより、予測モデルに含まれる負の数値を正の数値に変換することができる。そのため、変換処理後の予測モデルに含まれる全要素は、正の数値（ここでは、正の整数）のみで表される。これにより、予測モデル分散部２０５は、変換処理後の予測モデルを秘密分散法により分散することができる。
【０１３３】
（２）上記実施の形態では、データ提供装置２００が、予測モデル変換部２０４において、均一化処理の式に含まれるパラメータｓおよびパラメータｔを、学習済みのパラメータを用いて事前に計算する際のパラメータｓおよびパラメータｔの変換処理の一例を示したが、これに限られない。予測モデル変換部２０４は、均一化処理の式に対して、以下に示す変換処理を行ってもよい。予測モデル変換部２０４が、事前に、つまり、均一化処理の前に、図１１の（式Ｂ）および（式Ｃ）を計算することにより、パラメータｓおよびパラメータｔが決定される。これにより、図１１の（式Ａ）は、ｙ＝ｓｘ＋ｔで表される。そのため、予測演算部３０２は、均一化処理の式ｙ＝ｓｘ＋ｔを用いて、入力ｘに対して均一化処理を行うことができる。均一化処理の後に、非線形処理が行われる。非線形処理では、ｓｘ＋ｔの計算結果である出力ｙと０との大小関係を比較する。例えば、ある数値と０との大小関係を比較する場合、ある数値をいかなる正の数値で割っても、その数値と０との大小関係の比較結果は変わらない。このことから、均一化処理の出力ｙと０との大小関係を比較する場合に、ｙの代わりに、ｙを所定の正の数値で割った数値を当該比較に用いてもよい。例えば、上記均一化処理の式中のｓについて、ｓ＝ｃｄ（ただし、ｃは、ｘの符号を表し、ｄは、ｓの絶対値を表す。）とすると、均一化処理の出力ｙをｓの絶対値ｄで割ると、ｙ／ｄ＝ｃｘ＋ｔ／ｄとなる。データ提供装置２００は、予測モデル変換部２０４において、事前にｔ／ｄを計算してもよい。これにより、予測演算部３０２は、均一化処理の式としてｙを所定の正の数値で割った式であるｙ／ｄ＝ｃｘ＋ｔ／ｄを用いて、入力ｘに対して均一化処理を行うことができる。以上により、予測演算部３０２は、均一化処理の式ｙ／ｄ＝ｃｘ＋ｔ／ｄを用いると、上記実施の形態における均一化処理の式ｙ＝ｓｘ＋ｔを用いる場合よりもさらに計算量を削減することができる。
【０１３４】
（３）上記実施の形態では、予測演算部３０２における非線形処理の一例として、非線形処理に対する入力が０または正に対応する数値であれば１に、当該入力が負に対応する数値であれば−１に対応する正の数値に変換する処理を用いるが、これに限定されない。例えば、非線形処理では、入力が０であれば０に、入力が０より大きければ１に、入力が０より小さければ−１に対応する正の整数に変換する処理等、非線形処理後の数値が０以上で表される３つの整数となる変換処理が適用されてもよい。
【０１３５】
（４）上記実施の形態では、予測演算部３０２における最大値探索処理の一例として、各要素について、他の全ての要素と大小関係を比較し、比較結果の理論積が１となる要素が最大値の要素であると判定する処理方法を挙げたが、これに限定されない。例えば、最大値探索処理では、以下の処理により最大値の要素（以下、最大値要素）を求めてもよい。最大値探索処理に対する入力ベクトルの複数の要素のうち１つ目の要素（要素Ａとする）を暫定的な最大値要素とし、要素Ａと残りの要素との大小関係を順次比較する。暫定的な最大値要素である要素Ａよりも大きい要素（要素Ｂとする）が見つかった場合は、要素Ｂを新しい暫定的な最大値要素とし、要素Ｂと残りの要素との大小関係を順次比較する。全要素と比較した段階での暫定的な最大値要素が要素Ｂであるとすると、要素Ｂの数値と番号とを最大値探索処理の出力とする。
【０１３６】
（５）また、予測演算部３０２における最大値探索処理は、以下の処理により最大値要素を求めてもよい。例えば、最大値探索処理に対する入力ベクトルの全要素について、隣り合う要素同士で大小関係を比較し、小さい要素を除外する。この処理を繰り返し、最後に残った１つの要素が最大値要素であると判定することにより、最大値要素を求めることができる。
【０１３７】
（６）上記実施の形態では、ユーザ端末装置１００が予測結果を利用する処理の一例を述べたが、次に示すような処理を行ってもよい。ユーザは予測結果を受け取り復号した後、予測結果の正誤および有用度に関する情報をデータ提供装置２００に送信してもよい。
【０１３８】
（７）上記実施の形態では、ユーザ端末装置１００が予測結果を利用する処理の一例を述べたが、次に示すような処理を行ってもよい。ユーザ端末装置１００は、複数のデータ演算装置３００、３１０、３２０から予測結果を受け取り復号した後、予測モデル分散システムに入力したユーザに関する情報（以下、ユーザ情報）と共に、予測結果の正誤および有用度に関する情報をデータ提供装置２００に送信してもよい。
【０１３９】
（８）上記実施の形態では、データ提供装置２００が行う処理の一例を述べたが、次のような処理を行ってもよい。データ提供装置２００は、ユーザ端末装置１００から受け取ったユーザ情報と予測結果に関する情報との組、または、予測結果に関する情報のみをもとに予測モデルの再学習を行ってもよい。そして、データ提供装置２００は、再学習により新しく作成された予測モデルを秘密分散法により分散させ、新たな分散化予測モデルとして複数のデータ演算装置３００、３１０、３２０に送信する。複数のデータ演算装置３００、３１０、３２０は、受信した新たな予測モデルを予測モデル格納部に格納し、予測モデルを更新する。
【０１４０】
（９）上記の実施の形態における各装置は、具体的には、マイクロプロセッサ、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）、ハードディスクユニット、ディスプレイユニット、キーボード、マウスなどから構成されるコンピュータシステムである。ＲＡＭまたはハードディスクユニットには、コンピュータプログラムが記録されている。マイクロプロセッサが、上記コンピュータプログラムに従って動作することにより、各装置は、その機能を達成する。ここでコンピュータプログラムは、所定の機能を達成するために、コンピュータに対する指令を示す命令コードが複数個組み合わされて構成されたものである。
【０１４１】
（１０）上記の実施の形態における各装置は、構成する構成要素の一部または全部は、１個のシステムＬＳＩ（Ｌａｒｇｅ  Ｓｃａｌｅ  Ｉｎｔｅｇｒａｔｉｏｎ：大規模集積回路）から構成されていてもよい。システムＬＳＩは、複数の構成部を１個のチップ上に集積して製造された超多機能ＬＳＩであり、具体的には、マイクロプロセッサ、ＲＯＭ、ＲＡＭなどを含んで構成されるコンピュータシステムである。ＲＡＭには、コンピュータプログラムが記録されている。マイクロプロセッサが、コンピュータプログラムに従って動作することにより、システムＬＳＩは、その機能を達成する。
【０１４２】
また、上記の各装置を構成する構成要素の各部は、個別に１チップ化されていても良いし、一部または全てを含むように１チップ化されてもよい。
【０１４３】
また、ここでは、システムＬＳＩとしたが、集積度の違いにより、ＩＣ（Ｉｎｔｅｇｒａｔｅｄ  ｃｉｒｃｕｉｔ）、ＬＳＩ、スーパーＬＳＩ、ウルトラＬＳＩと呼称されることもある。また、集積回路化の手法はＬＳＩに限るものではなく、専用回路または汎用プロセッサで実現してもよい。ＬＳＩ製造後に、プログラムすることが可能なＦＰＧＡ（Ｆｉｅｌｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）、ＬＳＩ内部の回路セルの接続または設定を再構成可能なリコンフィギュラブル・プロセッサーを利用してもよい。
【０１４４】
さらには、半導体技術の進歩または派生する別技術によりＬＳＩに置き換わる集積回路化の技術が登場すれば、当然、その技術を用いて機能ブロックの集積化を行ってもよい。バイオ技術の適用等が可能性としてありえる。
【０１４５】
（１１）上記の各装置を構成する構成要素の一部または全部は、各装置に脱着可能なＩＣカードまたは単体のモジュールから構成されているとしてもよい。ＩＣカードまたは前記モジュールは、マイクロプロセッサ、ＲＯＭ、ＲＡＭなどから構成されるコンピュータシステムである。ＩＣカードまたは前記モジュールは、上記の超多機能ＬＳＩを含んでいてもよい。マイクロプロセッサが、コンピュータプログラムに従って動作することにより、前記ＩＣカードまたは前記モジュールは、その機能を達成する。このＩＣカードまたはこのモジュールは、耐タンパ性を有してもよい。
【０１４６】
（１２）本開示は、上記に示す方法であるとしてもよい。また、これらの方法をコンピュータにより実現するコンピュータプログラムであるとしてもよいし、上記コンピュータプログラムからなるデジタル信号であるとしてもよい。
【０１４７】
また、本開示は、上記コンピュータプログラムまたは上記デジタル信号をコンピュータ読み取り可能な記録媒体、例えば、フレキシブルディスク、ハードディスク、ＣＤ−ＲＯＭ、ＭＯ（Ｍａｇｎｅｔｏ−Ｏｐｔｉｃａｌ  ｄｉｓｃ）、ＤＶＤ、ＤＶＤ−ＲＯＭ、ＤＶＤ−ＲＡＭ、ＢＤ（Ｂｌｕ−ｒａｙ（登録商標）Ｄｉｓｃ）、半導体メモリなどに記録したものとしてもよい。また、これらの記録媒体に記録されている上記デジタル信号であるとしてもよい。
【０１４８】
また、本開示は、上記コンピュータプログラムまたは上記デジタル信号を、電気通信回線、無線または有線通信回線、インターネットを代表とするネットワーク、データ放送等を経由して伝送するものとしてもよい。
【０１４９】
また、本開示は、マイクロプロセッサとメモリを備えたコンピュータシステムであって、メモリは、上記コンピュータプログラムを記録しており、マイクロプロセッサは、コンピュータプログラムに従って動作するとしてもよい。
【０１５０】
また、プログラムまたはデジタル信号を記録媒体に記録して移送することにより、またはプログラムまたは上記デジタル信号を、ネットワーク等を経由して移送することにより、独立した他のコンピュータシステムにより実施するとしてもよい。
【０１５１】
（１３）上記実施の形態および上記変形例をそれぞれ組み合わせるとしてもよい。
【産業上の利用可能性】
【０１５２】
本開示は、ユーザの機微情報をデータ演算装置において平文で扱わず、プライバシを保護するシステム等に適用され得る。
【符号の説明】
【０１５３】
１００  ユーザ端末装置
１０１  センシング部
１０２  特徴量算出部
１０３  特徴量分散部
１０４  復号部
１０５  予測結果利用部
１０６  通信部
２００  データ提供装置
２０１  学習データ格納部
２０２  学習部
２０３  予測モデル格納部
２０４  予測モデル変換部
２０５  予測モデル分散部
２０６  通信部
３００、３１０、３２０  データ演算装置
３０１  分散化予測モデル格納部
３０２  予測演算部
３０３  通信部
【図１】
2019215512.tif 000003
【図２】
2019215512.tif 000004
【図３】
2019215512.tif 000005
【図４】
2019215512.tif 000006
【図５】
2019215512.tif 000007
【図６】
2019215512.tif 000008
【図７】
2019215512.tif 000009
【図８】
2019215512.tif 000010
【図９】
2019215512.tif 000011
【図１０】
2019215512.tif 000012
【図１１】
2019215512.tif 000013
【図１２】
2019215512.tif 000014
【図１３Ａ】
2019215512.tif 000015
【図１３Ｂ】
2019215512.tif 000016
【図１３Ｃ】
2019215512.tif 000017
【図１４】
2019215512.tif 000018
【図１５】
2019215512.tif 000019
【図１６】
2019215512.tif 000020