IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカの特許一覧

(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-10-16
(45)【発行日】2023-10-24
(54)【発明の名称】予測モデル変換方法及びシステム
(51)【国際特許分類】
   G06N 3/08 20230101AFI20231017BHJP
   G06N 3/045 20230101ALI20231017BHJP
   G09C 1/00 20060101ALI20231017BHJP
【FI】
G06N3/08
G06N3/045
G09C1/00 650Z
【請求項の数】 13
(21)【出願番号】P 2020565682
(86)(22)【出願日】2019-12-23
(86)【国際出願番号】 JP2019050376
(87)【国際公開番号】W WO2020145113
(87)【国際公開日】2020-07-16
【審査請求日】2022-10-07
(31)【優先権主張番号】P 2019003238
(32)【優先日】2019-01-11
(33)【優先権主張国・地域又は機関】JP
(73)【特許権者】
【識別番号】514136668
【氏名又は名称】パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ
【氏名又は名称原語表記】Panasonic Intellectual Property Corporation of America
(74)【代理人】
【識別番号】100109210
【弁理士】
【氏名又は名称】新居 広守
(74)【代理人】
【識別番号】100137235
【弁理士】
【氏名又は名称】寺谷 英作
(74)【代理人】
【識別番号】100131417
【弁理士】
【氏名又は名称】道坂 伸一
(72)【発明者】
【氏名】西田 直央
(72)【発明者】
【氏名】大庭 達海
(72)【発明者】
【氏名】海上 勇二
(72)【発明者】
【氏名】照屋 唯紀
(72)【発明者】
【氏名】アッタラパドゥン ナッタポン
【審査官】千葉 久博
(56)【参考文献】
【文献】西田 直央 ほか,Binarized Neural Networksを用いた秘匿予測プロトコル,コンピュータセキュリティシンポジウム2017論文集,日本,一般社団法人情報処理学会,2017年10月16日,p. 592-599
【文献】KITAI, Hiromasa et al.,MOBIUS: Model-Oblivious Binarized Neural Networks,arXiv [online],2018年11月29日,[検索日 2020.01.22],インターネット: <URL: https://arxiv.org/pdf/1811.12028v1>
(58)【調査した分野】(Int.Cl.,DB名)
G06N 3/08
G06N 3/045
G09C 1/00
(57)【特許請求の範囲】
【請求項3】
前記均一化処理は、式yi=sii+ti(ここで、xiは入力であり、yiは出力である)によって行われる処理であり、
前記si及び前記tiは、前記均一化処理を行うためのパラメータであり、
前記非線形処理を含む処理は、式(1)によって行われる処理であり、
【数1】
前記kiは、前記非線形処理を含む処理を行うためのパラメータであって、前記si及び前記tiを用いて定められる、
請求項1又は2に記載の予測モデル変換方法。
【請求項4】
前記kiは、式(2)で表される、
【数2】
(ここでは、uは、予測処理の計算途中の理論上の最大値であり、pは、暗号化に用いられる除数である)
請求項3に記載の予測モデル変換方法。
【請求項13】
ニューラルネットワークである予測モデルに含まれる、均一化処理を行うための少なくとも1つのパラメータを、非線形処理を含む処理を行うための少なくとも1つのパラメータに変換することにより、前記予測モデルを変換する予測モデル変換部と、
変換された前記予測モデルを暗号化することにより、秘匿状態の入力を秘匿としたまま予測処理が行われる暗号化予測モデルを生成する予測モデル暗号化部と、
を備える、
予測モデル変換システム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、内容を秘匿しながらニューラルネットワークの予測処理を行うための予測モデル変換方法及び予測モデル変換システムに関する。
【背景技術】
【0002】
近年、様々な企業がニューラルネットワークを利用したサービスを提供している。例えば、アップロードされた画像から被写体の種別を識別するサービス、又は、ユーザの購買履歴からそのユーザの嗜好を予測して商品を推薦するサービス等が挙げられる。
【0003】
このようなサービスでは、画像又は購買履歴等の個人情報を利用するため、ユーザのプライバシ情報を保護する必要がある。また、サービス提供者のノウハウに関わる情報を第三者に知られることなく、ユーザにサービスを提供できるシステムが求められている。
【0004】
例えば、非特許文献1(SecureML)、非特許文献2(CryptoNets)及び非特許文献3(MOBIUS)には、データを秘匿にしたまま予測処理を行う技術が開示されている。
【先行技術文献】
【非特許文献】
【0005】
【文献】Payman Mohassel,外1名,“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,外5名,“CryptoNets: Applying Neural Networks to Encrypted Data with High Throughput and Accuracy”,(http://proceedings.mlr.press/v48/gilad-bachrach16.pdf)
【文献】Hiromasa Kitai,外9名,“MOBIUS: Model-Oblivious Binarized Neural Networks”,(https://arxiv.org/abs/1811.12028)
【発明の概要】
【発明が解決しようとする課題】
【0006】
しかしながら、非特許文献1(SecureML)は、一般的なニューラルネットワークに比べて予測精度が大きく低下するという問題がある。また、非特許文献2(CryptoNets)及び非特許文献3(MOBIUS)は、計算量が膨大であり、予測精度が低下するという問題がある。
【0007】
そこで、本開示では、予測処理の効率を向上させる予測モデル変換方法及び予測モデル変換システムを提供する。さらに、本開示では、上記構成を有することにより、計算量が削減されるため、処理速度を向上し、かつ、予測精度の低下を低減することできる。
【課題を解決するための手段】
【0008】
上記課題を解決するため、予測モデル変換方法の一態様は、ニューラルネットワークである予測モデルに含まれる、均一化処理を行うための少なくとも1つのパラメータを、非線形処理を含む処理を行うための少なくとも1つのパラメータに変換することにより、前記予測モデルを変換する予測モデル変換ステップと、変換された前記予測モデルを暗号化することにより、秘匿状態の入力を秘匿としたまま予測処理が行われる暗号化予測モデルを生成する予測モデル暗号化ステップと、を含む。
【0009】
また、上記問題を解決するため、予測モデル変換システムの一態様は、ニューラルネットワークである予測モデルに含まれる、均一化処理を行うための少なくとも1つのパラメータを、非線形処理を含む処理を行うための少なくとも1つのパラメータを変換することにより、前記予測モデルを変換する予測モデル変換部と、変換された前記予測モデルを暗号化することにより、秘匿状態の入力を秘匿したまま予測処理が行われる暗号化予測モデルを生成する予測モデル暗号化部と、を備える。
【発明の効果】
【0010】
本開示の予測モデル変換方法及び予測モデル変換システムによれば、入力を秘匿のまま実行可能な予測処理の速度を向上し、かつ、予測精度の低下を低減することができる。
【図面の簡単な説明】
【0011】
図1図1は、実施の形態に係る予測モデル変換システムの全体構成の一例を示す図である。
図2図2は、実施の形態におけるデータ提供装置の構成の一例を示す図である。
図3図3は、実施の形態におけるユーザ端末装置の構成の一例を示す図である。
図4図4は、実施の形態におけるデータ演算装置の構成の一例を示す図である。
図5図5は、実施の形態における予測モデルに含まれる均一化パラメータの一例を示す図である。
図6図6は、実施の形態における予測処理の均一化処理の一例を示す図である。
図7図7は、実施の形態における均一化処理のパラメータから新しいパラメータを生成するための計算式を示す図である。
図8図8は、実施の形態における均一化+非線形処理の一例を示す図である。
図9図9は、実施の形態における均一化処理の一例を示す図である。
図10A図10Aは、実施の形態における事前計算後の予測モデルの一例を示す図である。
図10B図10Bは、実施の形態における変換後の予測モデルの一例を示す図である。
図10C図10Cは、実施の形態における負の整数を正の整数に変換した予測モデルの一例を示す図である。
図11図11は、実施の形態における特徴量の一例を示す図である。
図12図12は、実施の形態における分散化特徴量の一例を示す図である。
図13図13は、実施の形態における予測処理のフローの概要を示す図である。
図14図14は、実施の形態における重み行列の一例を示す図である。
図15図15は、実施の形態に係る予測モデル変換方法の一例を示すフローチャートである。
図16A図16Aは、実施の形態における予測モデル変換システムの学習フェーズの動作を示すシーケンス図である。
図16B図16Bは、実施の形態における予測モデル変換システムの予測フェーズの動作を示す第1シーケンス図である。
図16C図16Cは、実施の形態における予測モデル変換システムの予測フェーズの動作を示す第2シーケンス図である。
図16D図16Dは、図16BのステップS205の一例を示すシーケンス図である。
図17図17は、実施の形態における予測処理の変形例を示す図である。
図18図18は、実施の形態におけるプーリング処理の一例を示す図である。
【発明を実施するための形態】
【0012】
(本開示の基礎となった知見)
近年、様々な企業がニューラルネットワークを利用したサービスを提供している。ニューラルネットワークを用いたサービスの例として、アップロードされた画像から被写体の種別を識別するサービス、ユーザの購買履歴をもとにそのユーザが好むと思われる商品を推薦するサービス、又は、ユーザの生体情報(例えば、脈拍、血糖値、又は、体温等)からユーザの健康状態若しくは心的状態を予測してユーザにフィードバックするサービス等が挙げられる。
【0013】
このようなサービスでは、ユーザからの入力情報、例えば、ユーザがアップロードする画像、ユーザの購買履歴又は生体情報等の入力情報に機微な情報が含まれていることも多いため、ユーザのプライバシ情報を保護する必要がある。そのため、ユーザがサービス提供者に対してプライバシ情報を公開することなくサービスを利用できる、ニューラルネットワークの学習処理及び予測処理を行う技術が求められている。
【0014】
また、サービス提供者の立場から見ても、サービスのノウハウに関わる情報をできる限りユーザ及びユーザ以外の第三者に知られることなく、ユーザにサービスを提供できる技術が求められている。
【0015】
これら2つの条件を満たす技術として、例えば、データを秘匿したまま計算を行うことが可能な秘密計算法という手法を用いて、ニューラルネットワークの予測処理を行う方法が考えられている。秘密計算法は、データを保管する主体に対して計算過程と結果とを秘匿することができる技術である。例えば、クラウドのような第三者が管理するサーバにデータを保管し、その保管しているデータに対してあらゆる演算を実行することができる。第三者には、入力データ、計算過程、計算結果を知られることがないため、個人情報のような機微な情報に対する分析処理をアウトソースすることができる。
【0016】
例えば、非特許文献1(SecureML)、非特許文献2(CryptoNets)及び非特許文献3(MOBIUS)には、データを秘匿にしたまま予測処理を行う技術が開示されている。
【0017】
しかしながら、これらの文献に記載の方法は、予測精度が低下し、かつ、計算量が膨大であるため、実用性に疑問がある。
【0018】
本発明者らは、上記課題を解決すべく鋭意検討した結果、予測処理における均一化処理のためのパラメータを変換して、均一化処理と非線形処理とを含む処理のための新たなパラメータを見出した。そして、本発明者らは、新たなパラメータを用いることにより、ニューラルネットワークにおいて均一化処理と非線形化処理とを含む処理を1つの層で実行できることを見出した。
【0019】
そこで、本開示は、入力を秘匿のまま実行可能な予測処理の速度を向上し、かつ、予測精度の低下を低減することができる予測モデル変換方法及び予測モデル変換システムを提供する。
【0020】
本開示の一態様は以下の通りである。
【0021】
本開示の一態様に係る予測モデル変換方法は、ニューラルネットワークである予測モデルに含まれる、均一化処理を行うための少なくとも1つのパラメータを、非線形処理を含む処理を行うための少なくとも1つのパラメータに変換することにより、前記予測モデルを変換する予測モデル変換ステップと、変換された前記予測モデルを暗号化することにより、秘匿状態の入力を秘匿としたまま予測処理が行われる暗号化予測モデルを生成する予測モデル暗号化ステップと、を含む。
【0022】
このように、均一化処理を行うための複数のパラメータを、非線形処理を含む処理を行うための少なくとも1つのパラメータに変換することで、均一化処理と非線形処理とに関連する処理をより簡単な処理で行うことができる。その結果、処理の回数が減少するため、予測処理の計算量を削減することができる。また、処理の回数が少なくなることにより、計算誤差の発生を低減することができるため、予測精度の低下を低減することができる。
【0023】
例えば、本開示の一態様に係る予測モデル変換方法は、前記均一化処理を行うための少なくとも1つのパラメータは、複数のパラメータであり、前記非線形処理を含む処理を行うための少なくとも1つのパラメータは、1つのパラメータであり、前記予測モデル変換ステップでは、前記均一化処理を行うための複数のパラメータを、前記非線形処理を含む処理を行うための1つのパラメータに変換するとしてもよい。
【0024】
これにより、非線形処理を含む処理で使用される式を簡単な式とすることができる。そのため、予測処理の計算量が削減されて、予測処理の速度が向上する。
【0025】
例えば、本開示の一態様に係る予測モデル変換方法は、前記均一化処理は、式yi=sii+ti(ここで、xiは入力であり、yiは出力である)によって行われる処理であり、前記si及び前記tiは、前記均一化処理を行うためのパラメータであり、前記非線形処理を含む処理は、式(1)によって行われる処理であり、前記kiは、前記非線形処理を含む処理を行うためのパラメータであって、前記si及び前記tiを用いて定められるとしてもよい。
【0026】
【数1】
【0027】
これにより、上記式(1)に均一化処理の入力xiを入力することにより、非線形処理後の出力を得ることができる。そのため、予測処理の計算量が削減されて、予測処理の速度が向上する。
【0028】
例えば、本開示の一態様に係る予測モデル変換方法は、前記kiは、式(2)で表されるとしてもよい。
【0029】
【数2】
(ここでは、uは、予測処理の計算途中の理論上の最大値であり、pは、暗号化に用いられる除数である)
【0030】
これにより、siの値が大きすぎる場合、又は、小さすぎる場合であっても、適切な値のパラメータkiを得ることができる。
【0031】
例えば、本開示の一態様に係る予測モデル変換方法は、前記予測モデル暗号化ステップでは、変換された前記予測モデルを、秘密分散法により分散することにより予測モデルを暗号化し、前記予測モデルの分散において、前記非線形処理を含む処理を行うためのパラメータを分散するとしてもよい。
【0032】
これにより、予測モデルを秘匿することができ、安全に予測処理を行うことが出来る。また、秘密分散法を適用するためには、予測モデルの小数点以下の数を切り捨てるなどの整数化処理が必要となるため、計算誤差が発生する可能性が高くなり、予測精度が低下する。しかしながら、均一化処理のパラメータを、非線形処理を含む処理のパラメータに変換することで、上記の整数化処理が不要となるため、秘密分散法を用いる場合でも、計算誤差をなくすことができる。そのため、計算量を削減して予測処理の精度を向上し、かつ、予測精度の低下を低減することができる。
【0033】
例えば、本開示の一態様に係る予測モデル変換方法は、さらに、前記予測モデルの要素が取り得る値よりも大きな範囲で、前記秘密分散法で用いる除数を決定する除数決定ステップを含むとしてもよい。
【0034】
秘密分散法においては、大きい数値を除数(つまり、法p)として用いると計算量が大きくなってしまうため、最適な除数を決定することで、最低限の計算量で予測処理を行うことが出来る。
【0035】
例えば、本開示の一態様に係る予測モデル変換方法は、前記予測モデルは、それぞれが-1又は1の二値で構成される複数のパラメータを含む二値化ニューラルネットワークであってもよい。
【0036】
このように、予測モデルとして二値化ニューラルネットワークを用いることにより、行列積演算の計算時間を短くすることができる。また、予測モデルが二値化ニューラルネットワークであることにより、予測モデルに含まれる負の数値を正の数値に変換する処理が簡便になる。そのため、予測処理のスピードの低下を低減することができる。
【0037】
例えば、本開示の一態様に係る予測モデル変換方法は、さらに、事前に収集した学習用のデータを用いて、前記予測モデルの学習処理を行う学習ステップを含み、前記予測モデル変換ステップでは、前記予測処理のよって前記均一化処理を行うための少なくとも1つのパラメータとして得られたパラメータを変換するとしてもよい。
【0038】
これにより、正しい予測結果を導き出すために適した予測モデルを作成しやすくなる。したがって、予測精度を向上させることができる。
【0039】
例えば、本開示の一態様に係る予測モデル変換方法は、前記予測モデル変換ステップでは、前記予測モデルに含まれる複数のパラメータのうちの負の数値に対し、秘密分散法で用いる除数を加算することにより、前記負の数値を正の数値に変換するとしてもよい。
【0040】
一般に、パラメータの数値が大きいほど予測精度が高く、数値が小さい方が高速に計算できる。そのため、例えば、予測精度と予測スピードとのバランスの観点から、秘密分散法で用いる除数の値を決定し、負の数値に加算する。これにより、変換後の予測モデルを用いると、予測精度及び予測スピードの低下を低減することができる。また、変換後の予測モデルに含まれる全てのパラメータが正の数値で表されるため、変換後の予測モデルを秘密分散法により分散させることができる。したがって、入力を秘匿のまま予測処理を行うことができる。
【0041】
例えば、本開示の一態様に係る予測モデル変換方法は、前記予測モデル変換ステップでは、前記予測モデルに含まれる複数のパラメータのうち数値を、前記数値の符号を0又は1で示す符号部と、前記数値の絶対値を示す数値部との組に変換することにより、負の数値を正の数値に変換するとしてもよい。
【0042】
当該変換処理は、例えば、予測モデルに含まれるパラメータの1つが-10である場合、-10は、符号を示す符号部と数値の絶対値を示す数値部との組(1,10)に変換される。このように、負の数値である-10が正の数値である1と10との組に変換されるため、予測モデルに含まれるパラメータは、正の数値のみで表される。したがって、当該変換処理を予測モデルに適用することにより、変換された予測モデルを秘密分散法により分散させることができる。
【0043】
例えば、本開示の一態様に係る予測モデル変換方法は、さらに、センシングによって得られたデータから特徴量を算出する特徴量算出ステップと、前記算出された特徴量を秘密分散法により分散する特徴量分散化ステップと、を含むとしてもよい。
【0044】
これにより、ユーザからセンシングによって得られた個人情報などの機微な情報についても、予測モデルと同様にして、秘密分散法により分散させることができる。そのため、本開示の一態様に係る予測モデル変換方法によれば、予測処理に対する入力(ここでは、ユーザ情報)を秘匿のまま、つまり、ユーザのプライバシ情報を保護しながら、予測処理を実行することができる。
【0045】
例えば、本開示の一態様に係る予測モデル変換方法は、さらに、分散された前記予測モデルに、分散された前記特徴量を入力して、分散された前記予測モデルで予測処理を実行する予測処理ステップを含み、前記予測処理ステップは、前記非線形処理を含み、前記非線形処理は、前記非線形処理に対する入力が0又は正に対応する数値であれば1に、前記入力が負に対応する数値であれば-1に対応する正の数値に変換する処理であるとしてもよい。
【0046】
これにより、変換後の数値が予測の正確性が保証される正の数値範囲に収まるように入力の数値を変換することができる。そのため、予測処理のスピード及び予測精度の低下を低減することができる。
【0047】
なお、以下で説明する実施の形態は、いずれも本開示の一具体例を示すものである。以下の実施の形態で示される数値、形状、構成要素、ステップ、ステップの順序などは、一例であり、本開示を限定する主旨ではない。また、以下の実施の形態における構成要素のうち、最上位概念を示す独立請求項に記載されていない構成要素については、任意の構成要素として説明される。また、各図は、必ずしも厳密に図示したものではない。各図において、実質的に同一の構成については同一の符号を付し、重複する説明は省略又は簡略化することがある。
【0048】
また、本開示の主旨を逸脱しない限り、当業者が思いつく各種変形を実施の形態に施したものや、全ての実施の形態において、各々の実施の形態における一部の構成要素を組み合わせて構築される別の形態も、本開示の範囲に含まれる。
【0049】
(実施の形態)
以下、本実施の形態に係る予測モデル変換方法及び予測モデル変換システムについて図面を用いて説明する。
【0050】
[1. 予測モデル変換システムの概要]
まず、予測モデル変換システムの概要について説明する。図1は、実施の形態に係る予測モデル変換システム400の全体構成の一例を示す図である。
【0051】
本実施の形態に係る予測モデル変換システム400は、入力を秘匿したまま予測処理を行うための予測モデル変換システムである。より具体的には、予測モデル変換システムは、暗号化された予測モデル(以下、分散化予測モデル)と、分散化予測モデルと同様の方法で暗号化されたユーザ情報(以下、分散化特徴量)とを用いて、暗号化されたまま予測処理を行うシステムである。すなわち、上記の入力とは、予測処理を実行するニューラルネットワーク(ここでは、データ演算装置300、310、320)に入力された暗号化済みのデータである。なお、予測モデルは、予測処理で使用されるパラメータ及び重み付け行列などの予測処理に必要なデータである。
【0052】
以下、予測モデル変換システムを秘匿予測システムとも言う。また、以下、分散化及び暗号化を秘匿化とも言う。
【0053】
[1.1 予測モデル変換システムの構成]
続いて、本実施の形態に係る予測モデル変換システム400の構成について図1図4を参照しながら説明する。図2は、実施の形態におけるデータ提供装置100の構成の一例を示す図である。図3は、実施の形態におけるユーザ端末装置200の構成の一例を示す図である。図4は、実施の形態におけるデータ演算装置300の構成の一例を示す図である。
【0054】
図1に示されるように、予測モデル変換システム400は、例えば、データ提供装置100と、ユーザ端末装置200と、2以上の(ここでは、3つの)データ演算装置300、310、320と、を備える。なお、各装置間の通信は、有線のインターネット線、無線通信、専用通信等のいずれかであればよい。なお、データ演算装置300、310、320はそれぞれ、1つのクラウドサーバ、又は、1つのクラウドサーバに含まれる装置であってもよい。
【0055】
本実施の形態では、図1に示される予測モデル変換システム400を例に説明するが、これに限られない。予測モデル変換システム400は、少なくとも以下の構成を備えるシステムであってもよい。
【0056】
例えば、予測モデル変換システム400は、ニューラルネットワークである予測モデルに含まれる、均一化処理を行うための少なくとも1つのパラメータを、非線形処理を含む処理を行うための少なくとも1つのパラメータに変換することにより、予測モデルを変換する予測モデル変換部104と、変換された予測モデルを暗号化することにより、秘匿状態の入力を秘匿としたまま予測処理が行われる暗号化予測モデルを生成する予測モデル暗号化部(例えば、予測モデル分散部105)と、を備えるとよい。
【0057】
なお、予測モデル分散部105は、予測モデル暗号化部の一例である。例えば、予測モデル分散部105は、変換された予測モデルを、秘密分散法により分散することにより予測モデルを暗号化する。
【0058】
さらに、予測モデル変換システム400は、例えば、ユーザ情報をセンシングすることによって得られたデータから特徴量を算出する特徴量算出部202と、算出された特徴量を秘密分散法により分散する特徴量分散部203と、を備えてもよい。
【0059】
さらに、予測モデル変換システム400は、例えば、分散された予測モデルに分散された特徴量を入力して、分散された予測モデルで予測処理を実行する予測演算部302を備えてもよい。
【0060】
予測モデル変換システム400では、例えば、企業又は団体が予測処理に必要なデータ(以下、予測モデル)を、データ提供装置100から3つのクラウドサーバ、すなわち、データ演算装置300、310、320に秘匿して送信する。ユーザが秘匿予測システムのサービスを利用する際は、ユーザが自身の情報(以下、特徴量)を、ユーザ端末装置200から3つのクラウドサーバであるデータ演算装置300、310、320に秘匿して送信する。3つのクラウドサーバは互いに通信を行うことにより、それぞれのクラウドサーバが他のクラウドサーバで得られたデータを利用しながら、データを秘匿したまま予測結果を計算する。そして、3つのデータ演算装置300、310、320はそれぞれ、得られた予測結果をユーザ端末装置200へ送信する。ユーザ端末装置200は、3つのデータ演算装置300、310、320から受信した予測結果を復号する。
【0061】
なお、データ提供装置100は1つ以上であってもよいし、ユーザ端末装置200も1つ以上であってもよい。さらに、図1に示す例では、予測モデル変換システム400は、3つのデータ演算装置300、310、320を備えているが、少なくとも2つのデータ演算装置を備えていればよい。理由の詳細については、後述する。なお、本実施の形態で用いられる秘密分散法は、分散されたデータのうち少なくとも2つのデータを集めなければ元の値を復号することはできない。そのため、分散されたデータのそれぞれは、秘匿状態のまま予測処理が行われる。そして、予測処理で算出された予測結果もまた、秘匿された状態であり、復号された予測結果を得るために、2つ以上の秘匿された状態の予測結果が必要となる。
【0062】
なお、予測モデル変換システム400を構成する各装置間の通信は、リアルタイムの通信でなくてもよい。例えば、ユーザ端末装置200は、センシングしたユーザ情報又は秘匿状態のまま行われる予測処理(以下、単に、予測処理とも呼ぶ)の要求コマンドをある程度集めて、一時に、2つ以上のデータ演算装置300、310、320に送信してもよい。
【0063】
以下、本実施の形態に係る予測モデル変換システムの各構成について図面を参照しながらより具体的に説明する。
【0064】
[1.2 データ提供装置]
以下、データ提供装置100について図1及び図2を参照しながら説明する。
【0065】
図1に示されるように、データ提供装置100は、例えば、企業又は団体が予測処理に必要なデータを、データ演算装置300、310、320に秘匿して提供するための装置である。
【0066】
図2に示されるように、データ提供装置100は、学習データ格納部101と、学習部102と、予測モデル変換部104と、予測モデル分散部105と、通信部106と、予測モデル格納部103と、を備える。
【0067】
データ提供装置100は、例えば、企業又は団体等が所持しているノウハウを学習データとしてニューラルネットワークに学習処理をさせ、予測モデルを作成する。企業又は団体が所持しているノウハウは、例えば、血圧、心拍、及び、CTスキャン情報等の生体情報と、それらの生体情報に対応する症例と、を紐づけたデータである。データ提供装置100は、それらの学習データから、例えば、二値化ニューラルネットワーク(Binarized Neural Networks:BNN)の学習処理により予測モデルを作成する。そして、データ提供装置100は、作成された予測モデルを秘密分散法により分散させることにより、秘匿状態のまま、複数のデータ演算装置300、310、320に送信する。
【0068】
以下、データ提供装置100の各構成について説明する。
【0069】
[1.2.1 学習データ格納部]
学習データ格納部101は、入力を秘匿のまま予測処理を行うために必要な予測モデルを作成するための学習データを格納する。学習データは、ユーザ端末装置200の特徴量算出部202(図3参照)で算出される特徴量と同じ性質のデータと、当該特徴量と同じ性質のデータに対応する正解データと、の組である。本実施の形態では、学習データは、例えば、複数の患者に関するデータであって、各患者のバイタルデータから算出された特徴量と、当該特徴量に対応する正解データである当該各患者の病名と、の組である。
【0070】
[1.2.2 学習部]
学習部102は、例えば、BNNであり、学習データ格納部101に格納された学習データに対して、あらかじめ定められた方法により学習処理を行うことにより、予測モデルを作成する。学習処理については、例えば、非特許文献4(Matthieu Courbariaux,外4名,“Binarized Neural Networks: Training Deep Neural Networks with Weights and Activations Constrained to +1 or -1”,(https://arxiv.org/abs/1602.02830))に示された方法を用いる。図5は、本実施の形態における予測モデルの一例を示す図である。なお、予測モデルについては、後述するため、ここでの説明を省略する。
【0071】
[1.2.3 予測モデル格納部]
予測モデル格納部103は、学習部102で作成した予測モデルを格納する。
【0072】
[1.2.4 予測モデル変換部]
予測モデル変換部104は、学習部102の学習処理によって得られた予測モデルを変換する。ここでは、予測モデル変換部104は、予測モデル格納部103に格納された予測モデルに対して変換処理を行う。なお、予測モデルは、例えば、予測処理で使用されるパラメータ、式、及び、重み付け行列などを含む。予測処理は、データ演算装置300、310、320の予測演算部302で実行される。本実施の形態では、予測演算部302は、BNNである。以下、予測モデルについて図面を参照しながらより具体的に説明する。
【0073】
図6は、本実施の形態における予測処理の均一化処理の一例を示す図である。図6の(式A)は、BNNにおける予測処理の均一化処理の一例を示す式である。均一化処理は、式(A)yi=sii+tiによって行われる処理であり、パラメータsi及びtiは、均一化処理を行うためのパラメータである。式(A)では、xiは均一化処理の入力ベクトル(以下、単に入力ともいう)を示し、yiは均一化処理の出力ベクトル(以下、単に出力ともいう)を示す。
【0074】
式(B)及び(式C)に含まれるγ、σ、ε、β、μは、図5の予測モデルに含まれる学習済みのパラメータベクトルである。そのため、式(B)及び式(C)のパラメータsi及びtiは、上記の5つの学習済みのパラメータが固定値であるため、予測処理の前に計算可能である。
【0075】
予測処理では、均一化処理の直後に必ず非線形処理が実行される。そのため、非線形処理の入力データは、均一化処理の出力データである。非線形処理では、入力データ(つまり、均一化処理の出力データ)の正負の符号を判定している。つまり非線形処理では、均一化処理の出力と正負の符号が同じになる値を返す処理(下記の式(D1)及び式(D2))によって代用することができる。例えば、図6の式(A)の両辺をsiで割ることで、図6の式(D)に示すような、y’i=xi+ti/siと変形した式が導出される。ただし、このままでは、パラメータsiの符号によっては、yi及びy’iの符号が異なる符号になる場合がある。そこで、パラメータsiの符号が正である場合は、式(D1)y’i=xi+tiで、パラメータsiの符号が負である場合には、秘密計算法の法pを用いて式(D2)y’i=xi+ti+p/2で代用できる。また、このままではsiが0から1の間の小数であり、かつ、tiが大きい数値である場合、ti/siの値が大きくなる。秘密分散法では、計算途中の値、又は、秘密分散するパラメータの値が法pを超えないように、十分に大きい数値を法pとして設定している。しかし、法pを大きい値に設定するほど、計算量が増える。そのため、ti/siが大きくなると、大きい値を法pとして利用する必要があるため、計算量が増大する。
【0076】
ここで、予測処理における入力データの値の範囲が決まっていれば、入力データの値の範囲と学習済みパラメータとに基づいて、予測処理の計算途中の値の理論上の最大値を事前に計算することができる。図7は、実施の形態における均一化処理のパラメータから新しいパラメータを生成するための計算式を示す図である。本実施の形態では、上記の最大値をuとし、新しいパラメータki図7の式(G)を用いて計算することで、均一化処理の代わりに式y’i=xi+kiを用いること(これを新しい均一化処理という)ができる。
【0077】
なお、kiは、非線形処理を含む処理を行うためのパラメータであって、上記のパラメータsi及びtiを用いて定められる。また、図7の式(G)では、uは、予測処理の計算途中の理論上の最大値であり、pは、暗号化に用いられる除数である。
【0078】
本実施の形態における予測処理では、この新しい均一化処理と非線形処理とに関連する処理をより簡単な処理で実行することができる。この簡単な処理は、非線形処理を含む処理(以下、均一化+非線形処理と呼ぶ)であり、図8に示される式によって行われる処理である。図8は、実施の形態における均一化+非線形処理の一例を示す図である。図8に示されるように、均一化+非線形処理では、新しい均一化処理の式y’i=xi+kiが0以上であれば、出力yiは1であり、式y’i=xi+kiが0より小さければ、出力yiは-1である。このように、本実施の形態における均一化+非線形処理では、非線形処理を含む処理を行うための少なくとも1つのパラメータは、1つのパラメータ(上記のki)であり、図8に示される式を用いた簡単な処理で実行される。
【0079】
以上のように、均一化処理を行うための少なくとも1つのパラメータは、複数のパラメータであり、予測モデル変換部は、均一化処理を行うための複数のパラメータを、均一化+非線形処理を行うための1つのパラメータに変換する。
【0080】
また、予測モデル変換部104では、図6の式(A)、式(B)及び式(C)の計算をあらかじめ行い、これを新たな予測モデルとしてもよい。以下、図6の式(A)、式(B)及び式(C)の計算をあらかじめ行うことを事前計算とも呼ぶ。
【0081】
このように、暗号化前に事前に計算できる式を計算して新たな予測モデルとすることにより、データ演算装置300、310、320での計算量及び通信量を削減することができるため、予測精度の低下を低減することができる。
【0082】
上述したように、秘密分散法では、少数を扱うことができない。そのため、予測モデル分散部105で秘密分散法により予測モデルを分散する際、小数を扱うことはできない。そこで、図10A及び図10Bに示されるように、予測モデル変換部104は、図6の(式A)、式(B)及び式(C)の計算をあらかじめ行って作製した新たな予測モデルs及びtに対して、事前に定めた数値(例えば、10)を掛けて小数点以下を切り捨てることで、新たな予測モデルs及びtを整数化する(図10Bの整数化されたパラメータs’及びt’)。
【0083】
また、上述したように、秘密分散法では、負の数値(つまり、負の整数)を扱うことができない。そのため、予測モデル分散部105で秘密分散法により予測モデルを分散する際、負の数値を扱うことはできない。そこで、予測モデル変換部104は、予測モデルに含まれる複数のパラメータのうちの負の数値に対し、秘密分散法で用いる除数(つまり、法p)を加算することにより、負の数値を正の数値に変換するとしてもよい。例えば、図10B及び図10Cに示されるように、予測モデル変換部104では、整数化された予測モデルs’及びt’のうち、負の数値で表される要素を正の数値に変換し、変換された予測モデルを作成する。例えば、ある要素xが負の数値だった場合、分散処理に用いる法pに対して、要素xをp+xに変換する。なお、予測モデル変換部104は、さらに、予測モデルの要素が取り得る値よりも大きな範囲で、秘密分散法で用いる除数(法p)を決定してもよい。なお、法pは、2のべき乗に近いもので、できる限り小さいものであってもよい。
【0084】
以下、予測モデルの事前計算について図10A図10Cを参照しながらより具体的に説明する。
【0085】
図10Aは、本実施の形態における事前計算後の予測モデルの一例を示す図である。図10Aでは、図5に示される5つのパラメータγ、σ、ε、β、μを、図6の式(A)及び式(B)に代入して算出されるパラメータs及びパラメータtを示している。
【0086】
図10Bは、本実施の形態における変換後の予測モデルの一例を示す図である。図10Aに示されるパラメータs及びtは小数を含む値だが、秘密分散法では小数を扱うことができない。そのため、図7の式(E)及び式(F)に示されるように、パラメータs及びtをある定数q(図10Bではq=10)を掛けて小数点以下を切り捨てることで、図10Aに示されるパラメータs及びtを整数化する(図10Bの整数化パラメータs’及びパラメータt’)。また同時に、パラメータs及びtを用いて、図7の(式G)に示す計算を行うことにより、図10Bに示される新しいパラメータkを生成する。なお、図10Bに示されるように、整数化されたパラメータs’及びパラメータt’は、負の数値を含む。上述した通り、予測モデルを秘密分散法により分散する際に、負の数値を扱うことはできないため、負の数値を正の数値に変換する必要がある。具体的には、負の数値に対し、秘密分散法で用いる除数p(上記の法p)を加算して、負の数値を正の数値に変換する。図10Cに示されるように、例えば、p=65519とすると、上記パラメータのうちの負の数値は、負の数値に対応する非常に大きな正の数値に変換される。
【0087】
図10Cは、本実施の形態における複数のパラメータを用いて変換した予測モデルの一例を示す図である。上述した通り、図10Cに示すパラメータs’、t’及びkは、整数化後の予測モデルのうち、負の数値に対し、法pを加算することにより、当該負の数値に対応する非常に大きな正の数値に変換される。なお、図10Cにおいて、p=65519である。
【0088】
[1.2.5 予測モデル分散部]
予測モデル分散部105は、予測モデル暗号化部の一例である。予測モデル分散部105は、予測モデル変換部104により作成された変換予測モデルを、あらかじめ定められた方法により分散して秘匿する。例えば、予測モデル分散部105は、変換された予測モデル(いわゆる、変換予測モデル)を、秘密分散法により分散することにより予測モデルを暗号化し、予測モデルの分散において、非線形処理を含む処理(いわゆる、均一化+非線形処理)を行うためのパラメータを分散する。
【0089】
予測モデル分散部105では、データ演算装置300、310、320において、ユーザ端末装置200から取得した特徴量を暗号化したまま(つまり、秘匿状態のまま)予測処理を行うことが可能な分散された予測モデル(以下、分散化予測モデルともいう)を作成する。予測モデル分散部105は、例えば、Shamir(2,3)閾値秘密分散法(非特許文献5:Adi Shamir,“How to share a secret”,(https://cs.jhu.edu/~sdoshi/crypto/papers/shamirturing.pdf))を用いて分散し、分散化予測モデルを作成する。
【0090】
なお、上述の通り、秘密分散法としては、非特許文献5の方法に限られず、非特許文献6(Ronald Cramer,外2名,“Share Conversion, Pseudorandom Secret-Sharing and Applications to Secure Computation”,(https://rd.springer.com/chapter/10.1007/978-3-540-30576-7_19))、及び、非特許文献7(Takashi Nishide,外1名,“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))のいずれかに示された方法を用いてもよい。
【0091】
予測処理の計算途中の値の上界(つまり、最大値u)は、入力データの値の範囲と学習済みパラメータから計算することができる。分散処理に用いる法pは、計算途中の値がpを超えないように設定されなければならないため、事前に予測処理の計算途中の値の上界(つまり、最大値u)を計算し、その値以上の数を法pとして決定し、予測モデル分散部105で保持する。
【0092】
[1.2.6 通信部]
通信部106は、データ演算装置300、310、320と通信を行う。通信部106は、予測モデル分散部105で作成された分散化予測モデル(いわゆる、暗号化予測モデル)を複数のデータ演算装置300、310、320に送信する。
【0093】
[1.3 ユーザ端末装置]
図3は、ユーザ端末装置200の構成の一例を示す図である。ユーザ端末装置200は、センシング部201と、特徴量算出部202と、特徴量分散部203と、復号部204と、予測結果利用部205と、通信部206と、を備える。ユーザ端末装置200は、例えば、プロセッサ(マイクロプロセッサ)、メモリ、センサ、及び、通信インタフェース等を備えるコンピュータ又は携帯端末に実装される。
【0094】
ユーザ端末装置200は、例えば、ユーザの血圧、心拍、又は、CTスキャン情報等のユーザに関する情報、すなわち、プライバシデータをセンシングし、特徴量を算出してデータ演算装置300、310、320へ送信する。このとき、ユーザ端末装置200は、例えば秘密分散法により特徴量を分散することで、秘匿化してデータ演算装置300、310、320に送信する。そして、ユーザ端末装置200は、算出された特徴量に対応する予測結果をデータ演算装置300、310、320に要求し、予測結果をデータ演算装置300、310、320から得て、予測モデル変換システム400におけるサービスに利用する。このとき、ユーザ端末装置200は、データ演算装置300、310、320から暗号化された予測結果を取得し、それらの予測結果を復号して利用する。
【0095】
[1.3.1 センシング部]
センシング部201は、ユーザについての情報(ユーザ情報)をセンシングするためのセンサである測定装置を、1つ以上含んで構成される。
【0096】
センシングするユーザ情報は、例えば、ユーザの血圧、体温、若しくは、心拍等のバイタルデータ、又は、ユーザの身体を撮影若しくは測定して得られる顔画像、エコー情報、若しくは、CTスキャン情報等の画像情報等でもよい。
【0097】
また、センシングするユーザ情報は、例えば、GPS(Global Positioning System)で得られる位置情報、ユーザが電気機器若しくは車両等の移動体を操作した履歴を示すログ情報、又は、ユーザによる商品等の購入履歴情報等でもよい。
【0098】
ログ情報は、例えば車両のステアリング操作、アクセル操作、ブレーキ操作、若しくは変速ギアの操作等に関連して取得又は測定される各種情報であり、例えば、変位量、速度、又は加速度等を操作時刻と対応付けた情報であってもよい。
【0099】
センシングするユーザ情報は、例えば、ユーザが他人に知られたくない個人的な事柄であるプライバシデータであってもよい。
【0100】
予測モデル変換システム400は、ユーザのプライバシデータを秘匿したままBNNの予測処理を行うための予測モデル変換システムであって、秘匿したまま予測結果を算出する秘匿予測システムである。ここでは、センシング部201でセンシングされたユーザについての情報は、プライバシデータであると仮定して説明する。
【0101】
[1.3.2 特徴量算出部]
特徴量算出部202は、センシング部201で取得したユーザのプライバシデータから特徴量を算出する。特徴量算出部202が算出する特徴量は、複数の成分を含むベクトルで表され得る。
【0102】
この特徴量は、例えば、ユーザの身体の全体若しくは一部位の形状、サイズ、重量、状態、及び、動きの少なくとも1つに関連する指標を示す成分を含む。
【0103】
なお、特徴量の対象となるユーザの身体の部位はいかなる部位であってもよく、例えば、目、鼻、耳、手、足、臓器、又は、血管等がある。
【0104】
ユーザの身体の全体又は一部位についての状態としては、例えば、健康状態であり、より具体的には、健康診断に用いられる各種検査項目に対する状態、体内の水分量、血圧、又は、酸素飽和度等が挙げられる。
【0105】
また、ユーザの身体の全体又は一部位についての動きとしては、例えば、体動(つまり、体の動き)であり、より具体的には、単位時間当たりの寝返り回数等、手足の震え、若しくは、顔面の痙攣などの振動、心拍数、呼吸数、若しくは、吸気呼気比率等の微振動が挙げられる。
【0106】
なお、特徴量は、例えば、プライバシデータがユーザの顔画像である場合、顔画像における特徴的なパラメータの主成分である。特徴量は、例えば、ユーザの顔画像のある領域の位置、面積、又は、幅等の情報であってもよい。また、特徴量は、例えば、センシング部201でユーザについて測定された何らかの要素を示す履歴情報から、時間軸に対応した要素の傾向を(例えば多項式で表現した場合の各項の係数を)成分として含むベクトルで表される情報であってもよい。
【0107】
なお、センシング部201で取得したユーザ情報から抽出された特徴量自体も、プライバシデータであり得る。図11は、本実施の形態における特徴量の一例を示す図である。
【0108】
[1.3.3 特徴量分散部]
特徴量分散部203は、特徴量算出部202により算出された特徴量を、あらかじめ定められた方法により分散して秘匿する。特徴量分散部203では、データ演算装置300、310、320において特徴量を分散された状態のまま(つまり、秘匿状態のまま)使用して予測処理を行うことが可能な方法、例えば、Shamir(2,3)閾値秘密分散法(非特許文献5)を用いて特徴量を分散させることにより、分散された特徴量(以下、分散化特徴量ともいう)を作成する。
【0109】
秘密分散法とは、秘密情報から複数の分散情報を生成する技術である。分散情報は予め定められた組み合わせからは秘密情報を復元できるが、それ以外の組み合わせからは秘密情報が復元できないように作られる。定められた組み合わせは様々な構造を取ることができ、その構造は、アクセス構造と呼ばれる。アクセス構造には、様々な種類のアクセス構造がある。ここでは、代表的なアクセス構造として、閾値型アクセス構造について説明する。閾値型アクセス構造は、生成される分散情報の数nと、閾値m(m≦n)の2つのパラメータで表される。m個以上の分散情報からは秘密情報が復元できるが、m個未満の分散情報からは秘密情報が復元できないというものである。閾値型アクセス構造を有する秘密分散法には、例えば、上記のShamir(2,3)閾値秘密分散法(非特許文献5)があり、秘密情報を入力として3個の分散情報を生成するための分散処理と、2個以上の分散情報から秘密情報を復元する復元処理とを含む。
【0110】
なお、秘密分散法は、非特許文献5に記載の方法に限らず、非特許文献6又は非特許文献7に示された方法を用いてもよい。分散処理に用いる法pは、あらかじめシステムで決定され、特徴量分散部203で保持される。図12は、本実施の形態における分散化特徴量の一例を示す図である。
【0111】
[1.3.4 復号部]
復号部204は、ユーザ端末装置200がデータ演算装置300、310、320に送信した分散された特徴量に対応する予測結果を、データ演算装置300、310、320からそれぞれ受信して復号する。これらの予測結果は、秘密分散法により分散された特徴量及び予測モデルを分散された状態のまま使用して得られた結果であり、いわゆる暗号化された予測結果である。これらの予測結果の復号方法については、例えば、非特許文献5、非特許文献6、及び、非特許文献7のいずれかの方法を用いてもよい。
【0112】
[1.3.5 予測結果利用部]
予測結果利用部205は、復号部204で復号された予測結果を利用する。予測結果の利用の一例としては、予測結果をユーザへ提示すること、つまり、予測結果の提示である。予測結果の提示は、例えば、画像であってもよく、音声であってもよい。予測結果の提示が画像である場合、当該提示は、例えば、予測結果に基づくグラフ、又は、統計情報等の形式で表示される。また、予測結果の提示が音声である場合、当該提示は、例えば、予測結果に基づく音声で出力される。なお、予測結果の提示は、画像及び音声であってもよい。この場合、ユーザ端末装置200は、例えば画像を表示するディスプレイ、音声を出力するスピーカーなどの音声出力装置、及び、その他のユーザインタフェースを含んで実装され、予測結果を提示してもよい。
【0113】
また、予測結果利用部205は、予測結果に基づいて、さらに所定の演算、又は、情報検索等を行い、ユーザに対して、病院での検診の提案、生活習慣の改善のためのアドバイス、又は、お勧めの献立等を提示してもよい。
【0114】
[1.3.6 通信部]
通信部206は、複数のデータ演算装置300、310、320と通信を行う。通信部206は、特徴量分散部203で作成された分散された特徴量をそれぞれデータ演算装置300、310、320に送信する。以下の[1.4データ演算装置]の項にて詳細に説明するが、複数のデータ演算装置300、310、320は、これらの分散化特徴量を受信することをトリガーとし、これらの分散化特徴量を秘匿された状態のまま使用して、予測処理を実行する。また、通信部106は、データ演算装置300、310、320がそれぞれ計算した予測結果を受信し、復号部204に送信する。なお、これらの予測結果は、上述の通り、暗号化された予測結果である。
【0115】
[1.4 データ演算装置]
続いて、データ演算装置について説明する。図1に示されるように、データ演算装置300、310、320は、例えば、クラウドサーバである。予測モデル変換システム400では、データ演算装置300は、2つ以上備えられていればよい。本実施の形態では、3つのデータ演算装置300、310、320はそれぞれ、互いに通信を行うことで、データを秘匿したまま予測結果を計算し、暗号化された予測結果をユーザ端末装置200へ送信する。より具体的には、データ演算装置300、310、320では、分散化予測モデルに分散化特徴量を入力して、分散化予測モデルで予測処理を実行する。以下、本実施の形態におけるデータ演算装置300、310、320についてより具体的に説明する。
【0116】
図4は、データ演算装置300の構成の一例を示す図である。データ演算装置300は、分散化予測モデル格納部301と、予測演算部302と、通信部303と、を備える。データ演算装置300は、ユーザ端末装置200から受信した分散化特徴量と、データ提供装置100から受信した分散化予測モデルを、分散された状態のまま使用して予測処理を行う。なお、データ演算装置310、320も、データ演算装置300と同じ構成である。
【0117】
[1.4.1 分散化予測モデル格納部]
分散化予測モデル格納部301は、データ提供装置100から受信した分散された予測モデル(いわゆる、分散化予測モデル)を格納する。
【0118】
[1.4.2 予測演算部]
予測演算部302は、分散化予測モデル格納部301に格納されている分散化予測モデルと、ユーザ端末装置200から受信した分散化特徴量とを用いて、予測処理を行う。予測演算部302では、分散化予測モデルと分散化特徴量とを分散された状態のまま(つまり、秘匿された状態のまま)使用して予測処理を行い、分散化予測結果を求める。なお、分散化予測結果は、暗号化された予測結果である。
【0119】
続いて、図面を参照しながらより具体的に予測処理について説明する。図13は、本実施の形態における予測処理のフローの一例を示す図である。
【0120】
予測演算部302は、分散化予測モデルに、分散化特徴量を入力して、分散された前記予測モデルで予測処理を実行する。予測処理は、非線形処理を含む。予測処理は、行列積演算、データ分布の均一化+非線形処理、均一化処理、最大値検索の4つの処理で実行される。従来の予測処理では、データ分布の均一化処理及び非線形処理は別々に実行されていたが、本実施の形態における予測処理では、予測モデル変換部104にて新しいパラメータkを生成したことにより、均一化処理と非線形処理とを図8に示される簡単な式を用いて計算する(つまり、より簡単な処理で行う)ことが可能となる。より具体的には、本実施の形態では、非線形処理は、非線形処理に対する入力が0又は正に対応する数値であれば1に、前記入力が負に対応する数値であれば-1に対応する正の数値に変換する処理である。これにより、均一化処理及び非線形処理を別々で実行する場合よりもより計算量が削減される。また、図9に示す式で均一化処理を行う場合、s’とt’を計算する過程で小数点以下の切り捨てを行っているため、計算誤差が発生してしまい、最終的な予測処理の精度が劣化してしまう。その反面、図8に示す式を用いて計算することで、計算誤差無く、つまり精度が劣化することなく予測処理を行うことが可能になる。
【0121】
予測処理では、行列積演算、データ分布の均一化+非線形処理が所定の回数繰り返し実行された後、最大値検索により予測結果(つまり、分散化予測結果)を得る。なお、図13に示される予測処理のフローは一例であり、これに限定されない。
【0122】
以下、予測処理の各処理について図面を参照しながら説明する。
【0123】
まず、行列積演算について説明する。行列積演算は、分散された入力ベクトルである分散化特徴量と、分散化予測モデルに含まれる分散化重み行列との行列積を計算する。以下分散化重み行列及び分散化特徴量について説明する。
【0124】
図14は、本実施の形態における変換前の重み行列の一例を示す図である。図14に示されるように、予測モデル(ここでは、変換前の重み行列)は、-1又は1の二値で構成される複数のパラメータを含む二値化ニューラルネットワーク(BNN)である。図示しないが、例えば、図10B及び図10Cで説明した方法により、図14に示される予測モデルに含まれる複数のパラメータのうち負の数値を正の数値に変換し、変換後の予測モデル(変換後の重み行列)を作製する。本実施の形態では、行列積演算で用いる分散化予測モデル(つまり、分散化重み行列)は、例えば、変換後の予測モデルを、秘密分散法により分散することにより暗号化した暗号化予測モデルである。
【0125】
続いて、分散化特徴量について説明する。分散化特徴量は、センシングによって得られたデータ(以下、センシングデータともいう)から算出された特徴量を、予測モデルと同様に、秘密分散法により分散して得られた暗号化された特徴量である。例えば、図11及び図12を参照すると、ユーザAAAのセンシングデータは、特徴量1、特徴量2及び特徴量3であり、これらの特徴量をそれぞれ秘密分散法によりデータ演算装置300、310、320に分散している。例えば、特徴量1の分散化について説明すると、図12に示される特徴量1の分散化特徴量は、特徴量1を秘密分散法により分散して得られた3つの暗号化された特徴量である。
【0126】
続いて、行列積演算で得られたデータ分布の均一化処理と非線形処理について説明する。図8に示される式は、本実施の形態における均一化+非線形処理に用いられる。図8において、xiは入力ベクトルであり、上述の行列積演算で算出されるベクトルである。また、ベクトルkiは、予測モデル変換部104で生成したパラメータである。yiは、出力ベクトルであり、均一化+非線形処理により算出されるベクトルである。均一化+非線形処理では、入力ベクトルxiとパラメータkiの和を計算した後、その値が0又は正に対応する数値であれば1に対応する数値に、負に対応する数値であれば-1に対応する数値に変換する。
【0127】
正に対応する数値は、例えば、法pを用いて表すと、0~(p-1)/2であり、負に対応する数値は、(p+1)/2~p-1であってもよい。なお、0~p-1のどこからどこまでを正に対応する数値にするか、負に対応する数値にするかは、任意に決めてもよい。
【0128】
また、例えば、最上位ビットが0であれば、正に対応する数値とし、最上位ビットが1であれば、負に対応する値としてもよい。
【0129】
続いて、最大値検索について説明する。最大値検索では、分散された入力ベクトルの全要素の中で最大値の要素を検索する。最大値検索では、例えば、最大値検索に対する入力ベクトルの全要素間で大小関係を比較し、比較結果の論理積を計算することにより実現される。より具体的には、最大値検索では、各要素について、他の全ての要素と個別に大小関係が比較される。比較結果は、0及び1の二値で表される。例えば、ある要素の値が他の要素の値と同じ、又は、他の要素の値よりも大きければ、比較結果は1で表され、ある要素の値が他の要素の値よりも小さければ、比較結果は0で表される。全要素について、他の要素との大小関係の比較結果は、比較表に格納される。この場合、全要素の中で最大値の要素は、他の要素との大小関係の比較結果が全て1になる。そのため、比較結果の論理積を計算した場合、論理積は、最大値の要素のみが1になり、それ以外の要素は全て0になる。この特性を利用することで、最大値の要素を抽出することができる。
【0130】
上述のように、本実施の形態では、行列積演算、データ分布の均一化+非線形処理、及び、データ分布の均一化処理、最大値検索の4つの処理は、それぞれの処理に対する入力の和、積、大小関係の比較、論理積だけで構成され得る。例えば、非特許文献8(Takashi Nishide,外1名,“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))では、2つの分散された値を復号することなく、それらの値の和、積、大小関係の比較、及び、論理積を計算できる。このことから、予測処理に非特許文献8の方式を用いることで、分散化予測モデルと分散化特徴量とを復号することなく、入力を秘匿したまま予測処理を行うことができる。
【0131】
[1.4.3 通信部]
データ演算装置300の通信部303は、データ提供装置100、ユーザ端末装置200、及び、他のデータ演算装置310、320と通信を行う。通信部303は、データ提供装置100から分散化予測モデルを受信し、受信した分散化予測モデルを分散化予測モデル格納部301に格納する。通信部303は、ユーザ端末装置200から分散化特徴量を受信し、受信した分散化特徴量を予測演算部302へ送信する。また、通信部303は、予測演算部302で算出された分散化予測結果をユーザ端末装置200に送信する。
【0132】
上述の通り、データ演算装置300は、分散化予測モデルと分散化特徴量とを復号することなく、これらを分散されたまま、つまり、秘匿状態のまま、予測処理を行う。
【0133】
[2. 予測モデル変換方法]
続いて、本実施の形態に係る予測モデル変換方法の一例について説明する。図15は、本実施の形態に係る予測モデル変換方法の一例を示すフローチャートである。
【0134】
予測モデル変換方法は、ニューラルネットワークである予測モデルに含まれる、均一化処理を行うための少なくとも1つのパラメータを、非線形処理を含む処理を行うための少なくとも1つのパラメータに変換することにより、前記予測モデルを変換する予測モデル変換ステップ(S001)と、変換された前記予測モデルを暗号化することにより、秘匿状態の入力を秘匿としたまま予測処理が行われる暗号化予測モデルを生成する予測モデル暗号化ステップ(S002)と、を含む。
【0135】
以下、予測モデル変換システムの動作の一例について説明する。
【0136】
[2.1 予測モデル変換システムの動作(予測モデル変換方法)]
続いて、予測モデル変換システム400の動作の一例について説明する。予測モデル変換システム400の動作は、(i)データ提供装置100が予測モデルを学習して分散する学習フェーズと、(ii)複数のデータ演算装置300、310、320が分散された予測モデル(いわゆる、分散化予測モデル)を利用して分散された特徴量(いわゆる、分散化特徴量)の予測を行う予測フェーズと、を含む。
【0137】
[2.1.1 学習フェーズ]
まず、予測モデル変換システム400の学習フェーズの動作について説明する。図16Aは、本実施の形態に係る予測モデル変換システム400の学習フェーズの動作の一例を示すシーケンス図である。
【0138】
学習ステップS101では、データ提供装置100(図2参照)は、学習データ格納部101に格納された学習用のデータを参照し、学習部102にて二値化ニューラルネットワーク(BNN)である予測モデルの学習処理を行う。
【0139】
これにより、予測処理を行うための予測モデルが作成される。作成された予測モデルは予測モデル格納部103に格納される。
【0140】
次に、予測モデル変換ステップS102では、データ提供装置100は、作成された予測モデルに対して、予測モデル変換部104にて変換処理を適用する。具体的には、予測モデル変換ステップS102では、データ提供装置100は、均一化処理と非線形処理とを、例えば図8に示される簡単な処理で実行できるように、ニューラルネットワークの予測モデルに含まれる均一化処理で用いるパラメータ(図6の均一化パラメータsi及びti)を変換して、新しいパラメータkiを生成する。より具体的には、予測モデル変換ステップS102では、予測モデルに含まれる均一化パラメータを図7の(式G)に示す計算式で変換し、次に、変換されたパラメータのうち負の数値を正の整数に変換する(図10B及び図10C参照)。
【0141】
これにより、均一化処理と非線形処理とを簡単な式を用いて計算することができるため、計算量が少なくなる。また、均一化+非線形処理の出力結果は、均一化処理を実行した後に非線形処理を実行した出力と同じであるため、予測精度の低下を抑制することができる。
【0142】
次に、予測モデル分散化ステップS103では、データ提供装置100は、予測モデル変換ステップS102で変換された予測モデルを秘密分散法により分散する。これにより、分散された予測モデル(いわゆる、分散化予測モデル)が得られる。
【0143】
次に、ステップS104では、データ提供装置100は、予測モデル分散化ステップS103で得られた分散化予測モデルを、複数のデータ演算装置300、310、320に送信する。
【0144】
次に、ステップS105では、データ演算装置300、310、320は、それぞれ、データ提供装置100から受信した分散化予測モデルを自身の分散化予測モデル格納部301に格納する。
【0145】
以上により、学習フェーズでは、データ提供装置100は、予測処理を行うための予測モデルを作成し、作成された予測モデルを秘密分散法により分散して分散化予測モデルを作成する。これにより、予測モデルを秘匿のまま複数のデータ演算装置300、310、320に送信することができる。
【0146】
[2.1.2 予測フェーズ]
続いて、予測モデル変換システム400の予測フェーズについて説明する。図16Bは、本実施の形態に係る予測モデル変換システム400の予測フェーズにおけるユーザ端末装置200の動作の一例を示す第1シーケンス図である。図16Cは、本実施の形態に係る予測モデル変換システム400の予測フェーズにおけるユーザ端末装置200の動作の一例を示す第2シーケンス図である。
【0147】
図16Bに示されるように、まず、ステップS201では、ユーザ端末装置200(図3参照)は、センシング部201で情報を取得する。ここでは、センシングによって得られた情報は、ユーザのプライバシデータである。センシング部201で取得された情報は、特徴量算出部202に送信される。
【0148】
次に、特徴量算出ステップS202では、ユーザ端末装置200は、特徴量算出部202にて、センシング部201から受信した情報から特徴量を算出する。特徴量は、センシング部201から受信した情報の特徴を示す値である。図11を再び参照すると、図11では、特徴量1、特徴量2及び特徴量3が上記特徴量の例として示されている。
【0149】
次に、特徴量分散化ステップS203では、ユーザ端末装置200は、特徴量算出ステップS202で算出された特徴量を、秘密分散法により分散する。これにより、分散された特徴量(いわゆる、分散化特徴量)が得られる。ここで、図12を再び参照して、分散化特徴量の算出方法について説明する。例えば、センシング部201でセンシングされたユーザの情報が特徴量1である場合、特徴量1は、データ演算装置の数に応じた個数(ここでは、3つ)に分散される。特徴量1に対し、乱数(ここでは、26)を加算し、データ演算装置300に送信する分散化特徴量を算出する。さらに、この分散化特徴量に乱数26を加算し、データ演算装置310に送信する分散化特徴量を算出する。さらに、この分散化特徴量に乱数26を加算し、データ演算装置320に送信する分散化特徴量を算出する。
【0150】
次に、ステップS204では、ユーザ端末装置200は、分散化特徴量を複数のデータ演算装置300、310、320に送信する。具体的には、図12に示すように、ユーザ端末装置200は、特徴量1、特徴量2、及び、特徴量3をそれぞれ分散した分散化特徴量を、複数のデータ演算装置300、310、320に送信する。
【0151】
複数のデータ演算装置300、310、320は、それぞれ、ユーザ端末装置200から分散化特徴量を受信すると、自身の分散化予測モデル格納部(図4の分散化予測モデル格納部301)に格納された分散化予測モデルを読み出し、予測処理ステップS205を開始する。
【0152】
予測処理ステップでは、複数のデータ演算装置300、310、320は、分散化特徴量と分散化予測モデルとを分散された状態のまま(秘匿状態のまま)使用して、二値化ニューラルネットワーク(BNN)の予測処理を行う。なお、予測処理ステップS205の詳細については後述する。
【0153】
これにより、複数のデータ演算装置300、310、320は、それぞれ予測処理の結果として分散化予測結果を得る。なお、非特許文献8の方式を用いて予測処理の計算を行った場合、予測処理を行う際は、複数のデータ演算装置300、310、320のそれぞれが有する分散された情報、及び、分散された情報を予測処理したデータを、複数のデータ演算装置300、310、320の間で通信する必要がある。
【0154】
次に、図16Cに示されるように、ステップS206では、複数のデータ演算装置300、310、320は、それぞれ、分散化予測結果をユーザ端末装置200へ送信する。
【0155】
次に、ステップS207では、ユーザ端末装置200は、複数のデータ演算装置300、310、320から送信された分散化予測結果を受信し、受信された分散化予測結果を復号し、予測結果を得る。
【0156】
最後に、ステップS208では、ユーザ端末装置200は、予測結果利用部205にて、取得した予測結果を利用する。上述したように、ユーザ端末装置200は、例えば、予測結果を画像又は音声などでユーザへ提示し、予測結果にも続いて、生活習慣の改善、ストレス解消方法、又は、お勧めの献立などを提示してもよい。
【0157】
以上により、予測フェーズでは、データ提供装置100は、予測処理を行うための予測モデルを作成し、作成された予測モデルを秘密分散法により分散して分散化予測モデルを作成する。これにより、予測モデルを秘匿のまま複数のデータ演算装置300、310、320に送信することができる。そして、ユーザ端末装置200は、予測結果を復号して、ユーザに予測結果の提示及び予測結果の利用を行う。
【0158】
[2.2 予測処理ステップS205]
以下、予測モデル変換システム400の予測処理ステップS205について、より具体的に説明する。図16Dは、図16BのステップS205の一例を示すシーケンス図である。
【0159】
複数のデータ演算装置300、310、320は、図16Aに示されるように、データ提供装置100から分散化予測モデルを取得した後、ユーザ端末装置200から分散化特徴量を受信することをトリガーとして、予測処理ステップS205を開始する。
【0160】
予測処理ステップS205では、複数のデータ演算装置300、310、320は、分散化特徴量と分散化予測モデルとを分散されたまま(秘匿状態のまま)用いて、二値化ニューラルネットワーク(BNN)の予測処理を行う。
【0161】
図16Dに示されるように、データ演算装置300、310、320は、それぞれ、所定回数の繰り返し処理を開始する(ステップS2051)。
【0162】
まず、行列積演算ステップS2052では、複数のデータ演算装置300、310、320は、分散化特徴量(図12参照)である分散された入力ベクトルをユーザ端末装置200から受信すると、分散化予測モデルである分散化重み行列(不図示)との行列積を計算し、出力として第一分散化ベクトルを得る。
【0163】
より具体的には、データ演算装置300における動作を例に説明すると、データ演算装置300は、ユーザ端末装置200から分散化特徴量を受信すると、分散化予測モデル格納部301に格納された分散化予測モデルを読み出す。次いで、データ演算装置300は、分散化特徴量と分散化予測モデルとの行列積を計算し、第一分散化特徴量である第一分散化ベクトルを得る。
【0164】
なお、分散化予測モデル(ここでは、分散化重み行列)は、全ての要素が正の数値になるように変換された変換後の予測モデルを、秘密分散法により分散して得られる。上述したように、図13に例示する二値化ニューラルネットワークである予測モデル(つまり、変換前の重み行列)は、当該予測モデルの複数のパラメータ(つまり、要素)のうち-1が-1に対応する正の数値に変換される。予測モデルの全ての要素が正の数値で表されることにより、予測モデル変換システムは、当該予測モデルを秘密分散法により分散することができる。
【0165】
次に、均一化+非線形処理ステップS2053では、複数のデータ演算装置300、310、320は、行列積演算ステップS2052で出力として得られた第一分散化ベクトルと、均一化パラメータを変換して得られた変換後の均一化パラメータとを用いて、第一分散化ベクトルに含まれる要素ごとに和を計算する(図8参照)。その後、各要素について、値が0又は正に対応する数値であれば1に、負に対応する数値であれば-1に対応する正の整数に変換する。これにより、均一化+非線形処理ステップS2053では、出力として第二分散化特徴量である第二分散化ベクトルを得る。
【0166】
より具体的には、第二分散化ベクトルyiは、図8に示すように、第一分散化ベクトルの各要素xiに変換均一化パラメータkiを加え、結果が0以上かどうかを、値を秘匿したまま計算することで求められる。
【0167】
次に、複数のデータ演算装置300、310、320は、均一化+非線形処理ステップS2053で出力として得られた第二分散化ベクトルと、分散化予測モデルとを用いて、行列積演算ステップS2052を実行する。続いて、複数のデータ演算装置300、310、320は、行列積演算ステップS2052で得られた第三分散化ベクトルを入力として、均一化+非線形処理ステップS2053を実行する。これにより、第四分散化ベクトルが得られる。
【0168】
このように、上記の行列積演算ステップS2052、均一化+非線形処理ステップS2053の一連のステップは所定の回数繰り返される。図13を再び参照すると、本実施の形態では、例えば、当該一連のステップ(いわゆる、層)は2回繰り返される。このように、所定回数(ここでは、2回)の繰り返し処理を終了する(ステップS2054)ことにより、第四分散化ベクトルが得られる。
【0169】
次いで、行列演算ステップS2055では、複数のデータ演算装置300、310、320は、上記一連のステップS2052~S2053を所定の回数(ここでは、2回)繰り返して出力として得られた第四分散化ベクトルと、重み行列との行列積を算出する。これにより、第五分散化ベクトルが得られる。
【0170】
次いで、均一化処理ステップS2056では、行列演算ステップS2055で得られた第五分散化ベクトルに対して均一化処理を実行する。これにより、第六分散化ベクトルが得られる。
【0171】
最後に、最大値検索ステップS2057では、均一化処理ステップS2056で得られた第六分散化ベクトルのうち最大値の要素を検索する。これにより、分散化予測結果が得られる。
【0172】
以上のように、本実施の形態に係る予測モデル変換方法では、均一化処理と非線形処理とを簡単な処理で実行できるように、ニューラルネットワークの予測モデルに含まれる均一化パラメータを変換して、新しいパラメータkiを生成することで、複数の処理を例えば図8に示される簡単な式を用いて実行することができる。これにより、分散化特徴量及び分散化予測モデルを分散させた状態のまま使用して、つまり、秘匿のまま使用して、予測処理を行うことができる。そのため、予測処理の途中に第三者が予測処理に係るデータを取得したとしても、元のデータに復号されにくい。したがって、本実施の形態に係る予測モデル変換方法を適用することにより、ユーザのプライバシデータ、及び、企業独自のノウハウなどの機密性の高い情報を第三者から保護することができる。また、均一化+非線形処理の出力結果は、均一化処理を実行した後に非線形処理を実行した出力と同じ出力であるため、秘匿のまま予測処理を行う際の予測精度の低下を抑制することができる。また、複数の処理を簡単な式を用いて実行できるため、計算量を削減することができる。
【0173】
(他の実施の形態)
以上、本開示に係る予測モデル変換方法、及び、予測モデル変換システムについて、実施の形態に基づいて説明したが、本開示は、上記の実施の形態に限定されるものではない。本開示の主旨を逸脱しない限り、当業者が思いつく各種変形を実施の形態に施したものや、実施の形態における一部の構成要素を組み合わせて構築される別の形態も、本開示の範囲に含まれる。例えば、以下のような場合も本開示に含まれる。
【0174】
(1)上記実施の形態では、データ提供装置100が、予測モデル変換部104において、予測モデルに含まれる複数のパラメータ(以下、要素ともいう)のうち負の数値を正の数値に変換する例を示したが、これに限られない。予測モデル変換部104は、予測モデルに対して、以下に示す変換処理を行ってもよい。予測モデル変換部104は、予測モデルに含まれる複数のパラメータのうち数値を、数値の符号を0又は1で示す符号部と、数値の絶対値を示す数値部との組に変換することにより、負の数値を正の数値に変換してもよい。例えば、ある要素x(ここでは、xは整数)について、x=ab(ただし、aは、xの符号を示す符号部であり、bはxの絶対値を示す数値部である。)とする。符号部aには、ある要素xが0又は正の数値であれば0を代入し、ある要素xが負の数値であれば1を代入する。また、数値部bには、xの絶対値を代入する。このようにして、ある要素xは、aとbとの組(a,b)に変換される。予測モデルに含まれる全ての要素に上記変換処理を適用することにより、予測モデルに含まれる負の数値を正の数値に変換することができる。そのため、変換処理後の予測モデルに含まれる全要素は、正の数値(ここでは、正の整数)のみで表される。これにより、予測モデル分散部105は、変換処理後の予測モデルを秘密分散法により分散することができる。
【0175】
(2)上記実施の形態では、秘密分散法の法pの具体的な決定法は明記していないが、以下の操作により最適な法pを決定してもよい。予測モデルと入力データの値の範囲がわかっていれば、予測処理の計算途中の値の上界を求めることができる。例えば、予測処理の最初の行列積演算に注目すると、入力ベクトルの値の範囲が0~255、入力ベクトルの次元数がa、出力ベクトルの次元数がbだった場合、出力ベクトルの値の範囲は-255a~255aであり、この行列積演算の計算途中の値の上界は255aとなる。さらに次の均一化+非線形処理においては、入力ベクトルの値の範囲が-255a~255a、入力ベクトルの次元数がb、出力ベクトルの次元数がbであり、均一化+非線形処理のパラメータkの値の最大値がcだった場合、出力ベクトルの値は-1又は1であり、計算途中の値の上界は255a+cとなる。このように、予測処理における各処理途中の値の上界を求めることで、予測処理全体の中の計算途中の値の上界を計算することができる。例えば求めた上界がuだった場合には、秘密分散法の法pとして、2u+1以上の最も小さい素数を選ぶことで、計算量を最小にする最適な法pを選ぶことができる。
【0176】
(3)また、計算量は法pのビット長に依存するものであるため、ビット長が同じであれば、小さい素数を法pに選んでも、大きい素数を法pとして選んでも、計算量は変わらない。ただし、秘密分散法の中には、同じビット長でも、大きい素数を用いた方が効率的に計算できるアルゴリズムが存在するため、前述のように2u+1以上の最も小さい素数を選んでもよいし、その素数と同じビット長の最大の素数を法pとして選んでもよい。これにより、さらに効率化できる場合がある。
【0177】
(4)上記実施の形態では、予測処理の一例として行列積演算、均一化処理、均一化+非線形処理、最大値検索処理を用いた処理を示したが、畳み込み(Convolution)やプーリングといった処理を行ってもよい。これらの処理を用いた予測処理の一例を図17に示す。図17も一例であり、それぞれの処理を行う回数や順番はこれに限定されない。
【0178】
複数のデータ演算装置300、310、320は、ユーザ端末装置200から分散化特徴量を取得することをトリガーとして、所定回数の繰り返し処理を開始する(ステップS301)。
【0179】
まず、ステップS302では、複数のデータ演算装置300、310、320は、分散化された入力ベクトルと、分散化された畳み込みパラメータとを用いて畳み込みの処理を行い、第一分散化ベクトルを得る。畳み込みの処理は、行列積と加算の組み合わせによって計算できる。
【0180】
次に、ステップS303では、複数のデータ演算装置300、310、320は、ステップS302で出力として得られた第一分散化ベクトルと、均一化パラメータを変換して得られた変換均一化パラメータとを用いて、均一化+非線形処理を行い、第二分散化ベクトルを得る。
【0181】
次に、ステップS304では、複数のデータ演算装置300、310、320は、ステップS303で出力として得られた第二分散化ベクトルと、分散化された畳み込みパラメータとを用いて畳み込みの処理を行い、第三分散化ベクトルを得る。
【0182】
次に、ステップS305では、複数のデータ演算装置300、310、320は、ステップS304で出力として得られた第三分散化ベクトルに対してプーリングの処理を行い、第四分散化ベクトルを得る。プーリングには、図17のように、決められた領域の最大(Max Pooling)、平均(Average Pooling)又は合計(Sum Pooling)を求める処理があり、全てのプーリング処理で最大、平均、平均等のいずれかのみを計算する処理でもよいし、組み合わせてもよい。
【0183】
次に、ステップS306では、複数のデータ演算装置300、310、320は、ステップS305で出力として得られた第四分散化ベクトルと、均一化パラメータを変換して得られた変換均一化パラメータとを用いて、均一化+非線形処理を行い、第五分散化ベクトルを得る。
【0184】
本実施の形態では、ステップS302からステップS306を所定の回数繰り返したのち(ステップS307)、最後の均一化+非線形処理の出力である第n分散化ベクトルと分散化予測モデルとを用いて行列積演算を計算し(ステップS308)、その出力と均一化パラメータとを用いて均一化処理を行い(ステップS309)、最後に最大値検索処理を行う(ステップS310)。これにより、分散化予測結果が得られる。
【0185】
(5)上記実施の形態では、予測演算部302における最大値検索処理の一例として、各要素について、他の全ての要素と大小関係を比較し、比較結果の理論積が1となる要素が最大値の要素であると判定する処理方法を挙げたが、これに限定されない。例えば、最大値検索処理では、以下の処理により最大値の要素(以下、最大値要素)を求めてもよい。最大値検索処理に対する入力ベクトルの複数の要素のうち1つ目の要素(要素Aとする)を暫定的な最大値要素とし、要素Aと残りの要素との大小関係を順次比較する。暫定的な最大値要素である要素Aよりも大きい要素(要素Bとする)が見つかった場合は、要素Bを新しい暫定的な最大値要素とし、要素Bと残りの要素との大小関係を順次比較する。全要素と比較した段階での暫定的な最大値要素が要素Bであるとすると、要素Bの数値と番号とを最大値検索処理の出力とする。
【0186】
(6)また、予測演算部302における最大値検索処理は、以下の処理により最大値要素を求めてもよい。例えば、最大値検索処理に対する入力ベクトルの全要素について、隣り合う要素同士で大小関係を比較し、小さい要素を除外する。この処理を繰り返し、最後に残った1つの要素が最大値要素であると判定することにより、最大値要素を求めることができる。
【0187】
(7)上記実施の形態では、ユーザ端末装置200が予測結果を利用する処理の一例を述べたが、次に示すような処理を行ってもよい。ユーザは予測結果を受け取り復号した後、予測結果の正誤及び有用度に関する情報をデータ提供装置100に送信してもよい。
【0188】
(8)上記実施の形態では、ユーザ端末装置200が予測結果を利用する処理の一例を述べたが、次に示すような処理を行ってもよい。ユーザ端末装置200は、複数のデータ演算装置300、310、320から予測結果を受け取り復号した後、予測モデル変換システムに入力したユーザに関する情報(以下、ユーザ情報)と共に、予測結果の正誤及び有用度に関する情報をデータ提供装置100に送信してもよい。
【0189】
(9)上記実施の形態では、データ提供装置100が行う処理の一例を述べたが、次のような処理を行ってもよい。データ提供装置100は、ユーザ端末装置200から受け取ったユーザ情報と予測結果に関する情報との組、又は、予測結果に関する情報のみをもとに予測モデルの再学習を行ってもよい。そして、データ提供装置100は、再学習により新しく作成された予測モデルを秘密分散法により分散させ、新たな分散化予測モデルとして複数のデータ演算装置300、310、320に送信する。複数のデータ演算装置300、310、320は、受信した新たな予測モデルを予測モデル格納部に格納し、予測モデルを更新する。
【0190】
(10)上記実施の形態では、均一化パラメータを変換することで均一化処理と非線形処理を簡単な式を用いて計算でき、計算量を削減できたが、次のように予測処理を変換させてもよい。行列積演算や畳み込み演算と均一化処理はいずれも線形計算であるため、行列積演算と均一化処理、畳み込み演算と均一化処理を同時に計算することができる。データ提供装置100は均一化処理と非線形処理を組み合わせる代わりに、行列積演算と均一化処理、畳み込み演算と均一化処理を組み合わせた新しい予測モデルを生成し、データ演算装置300、310、320へ配布する。この場合、行列積演算のパラメータである重み行列、畳み込みパラメータと均一化パラメータを用いて新しいパラメータを生成し、予測モデルを変換する。
【0191】
(11)また、行列積演算と均一化処理、畳み込み演算と均一化処理を同時に計算可能な処理に変換した後、さらに非線形処理を組み合わせ、行列積演算と均一化処理と非線形処理、畳み込み演算と均一化処理と非線形処理を簡単な式を用いて計算可能な予測処理に変換してもよい。
【0192】
(12)上記の実施の形態における各装置は、具体的には、マイクロプロセッサ、ROM(Read Only Memory)、RAM(Random Access Memory)、ハードディスクユニット、ディスプレイユニット、キーボード、マウスなどから構成されるコンピュータシステムである。RAM又はハードディスクユニットには、コンピュータプログラムが記録されている。マイクロプロセッサが、上記コンピュータプログラムに従って動作することにより、各装置は、その機能を達成する。ここでコンピュータプログラムは、所定の機能を達成するために、コンピュータに対する指令を示す命令コードが複数個組み合わされて構成されたものである。
【0193】
(13)上記の実施の形態における各装置は、構成する構成要素の一部又は全部は、1個のシステムLSI(Large Scale Integration:大規模集積回路)から構成されていてもよい。システムLSIは、複数の構成部を1個のチップ上に集積して製造された超多機能LSIであり、具体的には、マイクロプロセッサ、ROM、RAMなどを含んで構成されるコンピュータシステムである。RAMには、コンピュータプログラムが記録されている。マイクロプロセッサが、コンピュータプログラムに従って動作することにより、システムLSIは、その機能を達成する。
【0194】
また、上記の各装置を構成する構成要素の各部は、個別に1チップ化されていても良いし、一部又は全てを含むように1チップ化されてもよい。
【0195】
また、ここでは、システムLSIとしたが、集積度の違いにより、IC(Integrated circuit)、LSI、スーパーLSI、ウルトラLSIと呼称されることもある。また、集積回路化の手法はLSIに限るものではなく、専用回路又は汎用プロセッサで実現してもよい。LSI製造後に、プログラムすることが可能なFPGA(Field Programmable Gate Array)、LSI内部の回路セルの接続又は設定を再構成可能なリコンフィギュラブル・プロセッサを利用してもよい。
【0196】
さらには、半導体技術の進歩又は派生する別技術によりLSIに置き換わる集積回路化の技術が登場すれば、当然、その技術を用いて機能ブロックの集積化を行ってもよい。バイオ技術の適用等が可能性としてありえる。
【0197】
(14)上記の各装置を構成する構成要素の一部又は全部は、各装置に脱着可能なICカード又は単体のモジュールから構成されているとしてもよい。ICカード又は前記モジュールは、マイクロプロセッサ、ROM、RAMなどから構成されるコンピュータシステムである。ICカード又は前記モジュールは、上記の超多機能LSIを含んでいてもよい。マイクロプロセッサが、コンピュータプログラムに従って動作することにより、前記ICカード又は前記モジュールは、その機能を達成する。このICカード又はこのモジュールは、耐タンパ性を有してもよい。
【0198】
(15)本開示は、上記に示す方法であるとしてもよい。また、これらの方法をコンピュータにより実現するコンピュータプログラムであるとしてもよいし、上記コンピュータプログラムからなるデジタル信号であるとしてもよい。
【0199】
また、本開示は、上記コンピュータプログラム又は上記デジタル信号をコンピュータ読み取り可能な記録媒体、例えば、フレキシブルディスク、ハードディスク、CD-ROM、MO(Magneto-Optical disc)、DVD、DVD-ROM、DVD-RAM、BD(Blu-ray(登録商標)Disc)、半導体メモリなどに記録したものとしてもよい。また、これらの記録媒体に記録されている上記デジタル信号であるとしてもよい。
【0200】
また、本開示は、上記コンピュータプログラム又は上記デジタル信号を、電気通信回線、無線又は有線通信回線、インターネットを代表とするネットワーク、データ放送等を経由して伝送するものとしてもよい。
【0201】
また、本開示は、マイクロプロセッサとメモリを備えたコンピュータシステムであって、メモリは、上記コンピュータプログラムを記録しており、マイクロプロセッサは、コンピュータプログラムに従って動作するとしてもよい。
【0202】
また、プログラム又はデジタル信号を記録媒体に記録して移送することにより、又はプログラム又は上記デジタル信号を、ネットワーク等を経由して移送することにより、独立した他のコンピュータシステムにより実施するとしてもよい。
【0203】
(16)上記実施の形態及び上記変形例をそれぞれ組み合わせるとしてもよい。
【産業上の利用可能性】
【0204】
本開示は、ユーザの機微情報をデータ演算装置において平文で扱わず、プライバシを保護するシステム等に適用され得る。
【符号の説明】
【0205】
100 データ提供装置
101 学習データ格納部
102 学習部
103 予測モデル格納部
104 予測モデル変換部
105 予測モデル分散部
106、206、303 通信部
200 ユーザ端末装置
201 センシング部
202 特徴量算出部
203 特徴量分散部
204 復号部
205 予測結果利用部
300、310、320 データ演算装置
301 分散化予測モデル格納部
302 予測演算部
400 予測モデル変換システム
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10A
図10B
図10C
図11
図12
図13
図14
図15
図16A
図16B
図16C
図16D
図17
図18