(57)【要約】  予測モデル変換方法は、ニューラルネットワークである予測モデルに含まれる、均一化処理を行うための少なくとも１つのパラメータを、非線形処理を含む処理を行うための少なくとも１つのパラメータに変換することにより、予測モデルを変換する予測モデル変換ステップ（Ｓ００１）と、変換された予測モデルを暗号化することにより、秘匿状態の入力を秘匿としたまま予測処理が行われる暗号化予測モデルを生成する予測モデル暗号化ステップ（Ｓ００２）と、を含む。
2020145113.tif 000002
【特許請求の範囲】
【請求項１】
ニューラルネットワークである予測モデルに含まれる、均一化処理を行うための少なくとも１つのパラメータを、非線形処理を含む処理を行うための少なくとも１つのパラメータに変換することにより、前記予測モデルを変換する予測モデル変換ステップと、  変換された前記予測モデルを暗号化することにより、秘匿状態の入力を秘匿としたまま予測処理が行われる暗号化予測モデルを生成する予測モデル暗号化ステップと、  を含む、  予測モデル変換方法。
【請求項２】
前記均一化処理を行うための少なくとも１つのパラメータは、複数のパラメータであり、  前記非線形処理を含む処理を行うための少なくとも１つのパラメータは、１つのパラメータであり、  前記予測モデル変換ステップでは、前記均一化処理を行うための複数のパラメータを、前記非線形処理を含む処理を行うための１つのパラメータに変換する、  請求項１に記載の予測モデル変換方法。
【請求項３】
前記均一化処理は、式ｙi＝ｓiｘi＋ｔi（ここで、ｘiは入力であり、ｙiは出力である）によって行われる処理であり、  前記ｓi及び前記ｔiは、前記均一化処理を行うためのパラメータであり、  前記非線形処理を含む処理は、式（１）によって行われる処理であり、【数１】
2020145113.tif 000005
前記ｋiは、前記非線形処理を含む処理を行うためのパラメータであって、前記ｓi及び前記ｔiを用いて定められる、  請求項１又は２に記載の予測モデル変換方法。
【請求項４】
前記ｋiは、式（２）で表される、【数２】
2020145113.tif 000006
（ここでは、ｕは、予測処理の計算途中の理論上の最大値であり、ｐは、暗号化に用いられる除数である）  請求項３に記載の予測モデル変換方法。
【請求項５】
前記予測モデル暗号化ステップでは、  変換された前記予測モデルを、秘密分散法により分散することにより予測モデルを暗号化し、  前記予測モデルの分散において、前記非線形処理を含む処理を行うためのパラメータを分散する、  請求項１〜４のいずれか一項に記載の予測モデル変換方法。
【請求項６】
前記予測モデル変換方法は、さらに、前記予測モデルの要素が取り得る値よりも大きな範囲で、前記秘密分散法で用いる除数を決定する除数決定ステップを含む、  請求項５に記載の予測モデル変換方法。
【請求項７】
前記予測モデルは、それぞれが−１又は１の二値で構成される複数のパラメータを含む二値化ニューラルネットワークである、  請求項１〜６のいずれか一項に記載の予測モデル変換方法。
【請求項８】
前記予測モデル変換方法は、さらに、事前に収集した学習用のデータを用いて、前記予測モデルの学習処理を行う学習ステップを含み、  前記予測モデル変換ステップでは、前記学習処理によって前記均一化処理を行うための少なくとも１つのパラメータとして得られたパラメータを変換する、  請求項１〜７のいずれか一項に記載の予測モデル変換方法。
【請求項９】
前記予測モデル変換ステップでは、前記予測モデルに含まれる複数のパラメータのうちの負の数値に対し、秘密分散法で用いる除数を加算することにより、前記負の数値を正の数値に変換する、  請求項５〜８のいずれか一項に記載の予測モデル変換方法。
【請求項１０】
前記予測モデル変換ステップでは、前記予測モデルに含まれる複数のパラメータのうち数値を、前記数値の符号を０又は１で示す符号部と、前記数値の絶対値を示す数値部との組に変換することにより、負の数値を正の数値に変換する、  請求項１〜８のいずれか一項に記載の予測モデル変換方法。
【請求項１１】
前記予測モデル変換方法は、さらに、  センシングによって得られたデータから特徴量を算出する特徴量算出ステップと、  算出された前記特徴量を秘密分散法により分散する特徴量分散化ステップと、  を含む、  請求項５〜１０のいずれか一項に記載の予測モデル変換方法。
【請求項１２】
前記予測モデル変換方法は、さらに、分散された前記予測モデルに、分散された前記特徴量を入力して、分散された前記予測モデルで予測処理を実行する予測処理ステップを含み、  前記予測処理ステップは、前記非線形処理を含み、  前記非線形処理は、前記非線形処理に対する入力が０又は正に対応する数値であれば１に、前記入力が負に対応する数値であれば−１に対応する正の数値に変換する処理である、  請求項１１に記載の予測モデル変換方法。
【請求項１３】
ニューラルネットワークである予測モデルに含まれる、均一化処理を行うための少なくとも１つのパラメータを、非線形処理を含む処理を行うための少なくとも１つのパラメータに変換することにより、前記予測モデルを変換する予測モデル変換部と、  変換された前記予測モデルを暗号化することにより、秘匿状態の入力を秘匿としたまま予測処理が行われる暗号化予測モデルを生成する予測モデル暗号化部と、  を備える、  予測モデル変換システム。
【発明の詳細な説明】
【技術分野】
【０００１】  本開示は、内容を秘匿しながらニューラルネットワークの予測処理を行うための予測モデル変換方法及び予測モデル変換システムに関する。
【背景技術】
【０００２】  近年、様々な企業がニューラルネットワークを利用したサービスを提供している。例えば、アップロードされた画像から被写体の種別を識別するサービス、又は、ユーザの購買履歴からそのユーザの嗜好を予測して商品を推薦するサービス等が挙げられる。【０００３】  このようなサービスでは、画像又は購買履歴等の個人情報を利用するため、ユーザのプライバシ情報を保護する必要がある。また、サービス提供者のノウハウに関わる情報を第三者に知られることなく、ユーザにサービスを提供できるシステムが求められている。【０００４】  例えば、非特許文献１（ＳｅｃｕｒｅＭＬ）、非特許文献２（ＣｒｙｐｔｏＮｅｔｓ）及び非特許文献３（ＭＯＢＩＵＳ）には、データを秘匿にしたまま予測処理を行う技術が開示されている。
【先行技術文献】
【非特許文献】
【０００５】
【非特許文献１】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)
【発明の概要】
【発明が解決しようとする課題】
【０００６】  しかしながら、非特許文献１（ＳｅｃｕｒｅＭＬ）は、一般的なニューラルネットワークに比べて予測精度が大きく低下するという問題がある。また、非特許文献２（ＣｒｙｐｔｏＮｅｔｓ）及び非特許文献３（ＭＯＢＩＵＳ）は、計算量が膨大であり、予測精度が低下するという問題がある。【０００７】  そこで、本開示では、予測処理の効率を向上させる予測モデル変換方法及び予測モデル変換システムを提供する。さらに、本開示では、上記構成を有することにより、計算量が削減されるため、処理速度を向上し、かつ、予測精度の低下を低減することできる。
【課題を解決するための手段】
【０００８】  上記課題を解決するため、予測モデル変換方法の一態様は、ニューラルネットワークである予測モデルに含まれる、均一化処理を行うための少なくとも１つのパラメータを、非線形処理を含む処理を行うための少なくとも１つのパラメータに変換することにより、前記予測モデルを変換する予測モデル変換ステップと、変換された前記予測モデルを暗号化することにより、秘匿状態の入力を秘匿としたまま予測処理が行われる暗号化予測モデルを生成する予測モデル暗号化ステップと、を含む。【０００９】  また、上記問題を解決するため、予測モデル変換システムの一態様は、ニューラルネットワークである予測モデルに含まれる、均一化処理を行うための少なくとも１つのパラメータを、非線形処理を含む処理を行うための少なくとも１つのパラメータを変換することにより、前記予測モデルを変換する予測モデル変換部と、変換された前記予測モデルを暗号化することにより、秘匿状態の入力を秘匿したまま予測処理が行われる暗号化予測モデルを生成する予測モデル暗号化部と、を備える。
【発明の効果】
【００１０】  本開示の予測モデル変換方法及び予測モデル変換システムによれば、入力を秘匿のまま実行可能な予測処理の速度を向上し、かつ、予測精度の低下を低減することができる。
【図面の簡単な説明】
【００１１】
【図１】図１は、実施の形態に係る予測モデル変換システムの全体構成の一例を示す図である。
【図２】図２は、実施の形態におけるデータ提供装置の構成の一例を示す図である。
【図３】図３は、実施の形態におけるユーザ端末装置の構成の一例を示す図である。
【図４】図４は、実施の形態におけるデータ演算装置の構成の一例を示す図である。
【図５】図５は、実施の形態における予測モデルに含まれる均一化パラメータの一例を示す図である。
【図６】図６は、実施の形態における予測処理の均一化処理の一例を示す図である。
【図７】図７は、実施の形態における均一化処理のパラメータから新しいパラメータを生成するための計算式を示す図である。
【図８】図８は、実施の形態における均一化＋非線形処理の一例を示す図である。
【図９】図９は、実施の形態における均一化処理の一例を示す図である。
【図１０Ａ】図１０Ａは、実施の形態における事前計算後の予測モデルの一例を示す図である。
【図１０Ｂ】図１０Ｂは、実施の形態における変換後の予測モデルの一例を示す図である。
【図１０Ｃ】図１０Ｃは、実施の形態における負の整数を正の整数に変換した予測モデルの一例を示す図である。
【図１１】図１１は、実施の形態における特徴量の一例を示す図である。
【図１２】図１２は、実施の形態における分散化特徴量の一例を示す図である。
【図１３】図１３は、実施の形態における予測処理のフローの概要を示す図である。
【図１４】図１４は、実施の形態における重み行列の一例を示す図である。
【図１５】図１５は、実施の形態に係る予測モデル変換方法の一例を示すフローチャートである。
【図１６Ａ】図１６Ａは、実施の形態における予測モデル変換システムの学習フェーズの動作を示すシーケンス図である。
【図１６Ｂ】図１６Ｂは、実施の形態における予測モデル変換システムの予測フェーズの動作を示す第１シーケンス図である。
【図１６Ｃ】図１６Ｃは、実施の形態における予測モデル変換システムの予測フェーズの動作を示す第２シーケンス図である。
【図１６Ｄ】図１６Ｄは、図１６ＢのステップＳ２０５の一例を示すシーケンス図である。
【図１７】図１７は、実施の形態における予測処理の変形例を示す図である。
【図１８】図１８は、実施の形態におけるプーリング処理の一例を示す図である。
【発明を実施するための形態】
【００１２】  （本開示の基礎となった知見）  近年、様々な企業がニューラルネットワークを利用したサービスを提供している。ニューラルネットワークを用いたサービスの例として、アップロードされた画像から被写体の種別を識別するサービス、ユーザの購買履歴をもとにそのユーザが好むと思われる商品を推薦するサービス、又は、ユーザの生体情報（例えば、脈拍、血糖値、又は、体温等）からユーザの健康状態若しくは心的状態を予測してユーザにフィードバックするサービス等が挙げられる。
【００１３】  このようなサービスでは、ユーザからの入力情報、例えば、ユーザがアップロードする画像、ユーザの購買履歴又は生体情報等の入力情報に機微な情報が含まれていることも多いため、ユーザのプライバシ情報を保護する必要がある。そのため、ユーザがサービス提供者に対してプライバシ情報を公開することなくサービスを利用できる、ニューラルネットワークの学習処理及び予測処理を行う技術が求められている。
【００１４】  また、サービス提供者の立場から見ても、サービスのノウハウに関わる情報をできる限りユーザ及びユーザ以外の第三者に知られることなく、ユーザにサービスを提供できる技術が求められている。
【００１５】  これら２つの条件を満たす技術として、例えば、データを秘匿したまま計算を行うことが可能な秘密計算法という手法を用いて、ニューラルネットワークの予測処理を行う方法が考えられている。秘密計算法は、データを保管する主体に対して計算過程と結果とを秘匿することができる技術である。例えば、クラウドのような第三者が管理するサーバにデータを保管し、その保管しているデータに対してあらゆる演算を実行することができる。第三者には、入力データ、計算過程、計算結果を知られることがないため、個人情報のような機微な情報に対する分析処理をアウトソースすることができる。
【００１６】  例えば、非特許文献１（ＳｅｃｕｒｅＭＬ）、非特許文献２（ＣｒｙｐｔｏＮｅｔｓ）及び非特許文献３（ＭＯＢＩＵＳ）には、データを秘匿にしたまま予測処理を行う技術が開示されている。
【００１７】  しかしながら、これらの文献に記載の方法は、予測精度が低下し、かつ、計算量が膨大であるため、実用性に疑問がある。
【００１８】  本発明者らは、上記課題を解決すべく鋭意検討した結果、予測処理における均一化処理のためのパラメータを変換して、均一化処理と非線形処理とを含む処理のための新たなパラメータを見出した。そして、本発明者らは、新たなパラメータを用いることにより、ニューラルネットワークにおいて均一化処理と非線形化処理とを含む処理を１つの層で実行できることを見出した。
【００１９】  そこで、本開示は、入力を秘匿のまま実行可能な予測処理の速度を向上し、かつ、予測精度の低下を低減することができる予測モデル変換方法及び予測モデル変換システムを提供する。
【００２０】  本開示の一態様は以下の通りである。
【００２１】  本開示の一態様に係る予測モデル変換方法は、ニューラルネットワークである予測モデルに含まれる、均一化処理を行うための少なくとも１つのパラメータを、非線形処理を含む処理を行うための少なくとも１つのパラメータに変換することにより、前記予測モデルを変換する予測モデル変換ステップと、変換された前記予測モデルを暗号化することにより、秘匿状態の入力を秘匿としたまま予測処理が行われる暗号化予測モデルを生成する予測モデル暗号化ステップと、を含む。
【００２２】  このように、均一化処理を行うための複数のパラメータを、非線形処理を含む処理を行うための少なくとも１つのパラメータに変換することで、均一化処理と非線形処理とに関連する処理をより簡単な処理で行うことができる。その結果、処理の回数が減少するため、予測処理の計算量を削減することができる。また、処理の回数が少なくなることにより、計算誤差の発生を低減することができるため、予測精度の低下を低減することができる。
【００２３】  例えば、本開示の一態様に係る予測モデル変換方法は、前記均一化処理を行うための少なくとも１つのパラメータは、複数のパラメータであり、前記非線形処理を含む処理を行うための少なくとも１つのパラメータは、１つのパラメータであり、前記予測モデル変換ステップでは、前記均一化処理を行うための複数のパラメータを、前記非線形処理を含む処理を行うための１つのパラメータに変換するとしてもよい。
【００２４】  これにより、非線形処理を含む処理で使用される式を簡単な式とすることができる。そのため、予測処理の計算量が削減されて、予測処理の速度が向上する。
【００２５】  例えば、本開示の一態様に係る予測モデル変換方法は、前記均一化処理は、式ｙi＝ｓiｘi＋ｔi（ここで、ｘiは入力であり、ｙiは出力である）によって行われる処理であり、前記ｓi及び前記ｔiは、前記均一化処理を行うためのパラメータであり、前記非線形処理を含む処理は、式（１）によって行われる処理であり、前記ｋiは、前記非線形処理を含む処理を行うためのパラメータであって、前記ｓi及び前記ｔiを用いて定められるとしてもよい。
【００２６】
【数１】
2020145113.tif 000003
【００２７】  これにより、上記式（１）に均一化処理の入力ｘiを入力することにより、非線形処理後の出力を得ることができる。そのため、予測処理の計算量が削減されて、予測処理の速度が向上する。
【００２８】  例えば、本開示の一態様に係る予測モデル変換方法は、前記ｋiは、式（２）で表されるとしてもよい。
【００２９】
【数２】
2020145113.tif 000004
（ここでは、ｕは、予測処理の計算途中の理論上の最大値であり、ｐは、暗号化に用いられる除数である）
【００３０】  これにより、ｓiの値が大きすぎる場合、又は、小さすぎる場合であっても、適切な値のパラメータｋiを得ることができる。
【００３１】  例えば、本開示の一態様に係る予測モデル変換方法は、前記予測モデル暗号化ステップでは、変換された前記予測モデルを、秘密分散法により分散することにより予測モデルを暗号化し、前記予測モデルの分散において、前記非線形処理を含む処理を行うためのパラメータを分散するとしてもよい。
【００３２】  これにより、予測モデルを秘匿することができ、安全に予測処理を行うことが出来る。また、秘密分散法を適用するためには、予測モデルの小数点以下の数を切り捨てるなどの整数化処理が必要となるため、計算誤差が発生する可能性が高くなり、予測精度が低下する。しかしながら、均一化処理のパラメータを、非線形処理を含む処理のパラメータに変換することで、上記の整数化処理が不要となるため、秘密分散法を用いる場合でも、計算誤差をなくすことができる。そのため、計算量を削減して予測処理の精度を向上し、かつ、予測精度の低下を低減することができる。
【００３３】  例えば、本開示の一態様に係る予測モデル変換方法は、さらに、前記予測モデルの要素が取り得る値よりも大きな範囲で、前記秘密分散法で用いる除数を決定する除数決定ステップを含むとしてもよい。
【００３４】  秘密分散法においては、大きい数値を除数（つまり、法ｐ）として用いると計算量が大きくなってしまうため、最適な除数を決定することで、最低限の計算量で予測処理を行うことが出来る。
【００３５】  例えば、本開示の一態様に係る予測モデル変換方法は、前記予測モデルは、それぞれが−１又は１の二値で構成される複数のパラメータを含む二値化ニューラルネットワークであってもよい。
【００３６】  このように、予測モデルとして二値化ニューラルネットワークを用いることにより、行列積演算の計算時間を短くすることができる。また、予測モデルが二値化ニューラルネットワークであることにより、予測モデルに含まれる負の数値を正の数値に変換する処理が簡便になる。そのため、予測処理のスピードの低下を低減することができる。
【００３７】  例えば、本開示の一態様に係る予測モデル変換方法は、さらに、事前に収集した学習用のデータを用いて、前記予測モデルの学習処理を行う学習ステップを含み、前記予測モデル変換ステップでは、前記予測処理のよって前記均一化処理を行うための少なくとも１つのパラメータとして得られたパラメータを変換するとしてもよい。
【００３８】  これにより、正しい予測結果を導き出すために適した予測モデルを作成しやすくなる。したがって、予測精度を向上させることができる。
【００３９】  例えば、本開示の一態様に係る予測モデル変換方法は、前記予測モデル変換ステップでは、前記予測モデルに含まれる複数のパラメータのうちの負の数値に対し、秘密分散法で用いる除数を加算することにより、前記負の数値を正の数値に変換するとしてもよい。
【００４０】  一般に、パラメータの数値が大きいほど予測精度が高く、数値が小さい方が高速に計算できる。そのため、例えば、予測精度と予測スピードとのバランスの観点から、秘密分散法で用いる除数の値を決定し、負の数値に加算する。これにより、変換後の予測モデルを用いると、予測精度及び予測スピードの低下を低減することができる。また、変換後の予測モデルに含まれる全てのパラメータが正の数値で表されるため、変換後の予測モデルを秘密分散法により分散させることができる。したがって、入力を秘匿のまま予測処理を行うことができる。
【００４１】  例えば、本開示の一態様に係る予測モデル変換方法は、前記予測モデル変換ステップでは、前記予測モデルに含まれる複数のパラメータのうち数値を、前記数値の符号を０又は１で示す符号部と、前記数値の絶対値を示す数値部との組に変換することにより、負の数値を正の数値に変換するとしてもよい。
【００４２】  当該変換処理は、例えば、予測モデルに含まれるパラメータの１つが−１０である場合、−１０は、符号を示す符号部と数値の絶対値を示す数値部との組（１，１０）に変換される。このように、負の数値である−１０が正の数値である１と１０との組に変換されるため、予測モデルに含まれるパラメータは、正の数値のみで表される。したがって、当該変換処理を予測モデルに適用することにより、変換された予測モデルを秘密分散法により分散させることができる。
【００４３】  例えば、本開示の一態様に係る予測モデル変換方法は、さらに、センシングによって得られたデータから特徴量を算出する特徴量算出ステップと、前記算出された特徴量を秘密分散法により分散する特徴量分散化ステップと、を含むとしてもよい。
【００４４】  これにより、ユーザからセンシングによって得られた個人情報などの機微な情報についても、予測モデルと同様にして、秘密分散法により分散させることができる。そのため、本開示の一態様に係る予測モデル変換方法によれば、予測処理に対する入力（ここでは、ユーザ情報）を秘匿のまま、つまり、ユーザのプライバシ情報を保護しながら、予測処理を実行することができる。
【００４５】  例えば、本開示の一態様に係る予測モデル変換方法は、さらに、分散された前記予測モデルに、分散された前記特徴量を入力して、分散された前記予測モデルで予測処理を実行する予測処理ステップを含み、前記予測処理ステップは、前記非線形処理を含み、前記非線形処理は、前記非線形処理に対する入力が０又は正に対応する数値であれば１に、前記入力が負に対応する数値であれば−１に対応する正の数値に変換する処理であるとしてもよい。
【００４６】  これにより、変換後の数値が予測の正確性が保証される正の数値範囲に収まるように入力の数値を変換することができる。そのため、予測処理のスピード及び予測精度の低下を低減することができる。
【００４７】  なお、以下で説明する実施の形態は、いずれも本開示の一具体例を示すものである。以下の実施の形態で示される数値、形状、構成要素、ステップ、ステップの順序などは、一例であり、本開示を限定する主旨ではない。また、以下の実施の形態における構成要素のうち、最上位概念を示す独立請求項に記載されていない構成要素については、任意の構成要素として説明される。また、各図は、必ずしも厳密に図示したものではない。各図において、実質的に同一の構成については同一の符号を付し、重複する説明は省略又は簡略化することがある。
【００４８】  また、本開示の主旨を逸脱しない限り、当業者が思いつく各種変形を実施の形態に施したものや、全ての実施の形態において、各々の実施の形態における一部の構成要素を組み合わせて構築される別の形態も、本開示の範囲に含まれる。
【００４９】  （実施の形態）  以下、本実施の形態に係る予測モデル変換方法及び予測モデル変換システムについて図面を用いて説明する。
【００５０】  ［１．  予測モデル変換システムの概要］  まず、予測モデル変換システムの概要について説明する。図１は、実施の形態に係る予測モデル変換システム４００の全体構成の一例を示す図である。
【００５１】  本実施の形態に係る予測モデル変換システム４００は、入力を秘匿したまま予測処理を行うための予測モデル変換システムである。より具体的には、予測モデル変換システムは、暗号化された予測モデル（以下、分散化予測モデル）と、分散化予測モデルと同様の方法で暗号化されたユーザ情報（以下、分散化特徴量）とを用いて、暗号化されたまま予測処理を行うシステムである。すなわち、上記の入力とは、予測処理を実行するニューラルネットワーク（ここでは、データ演算装置３００、３１０、３２０）に入力された暗号化済みのデータである。なお、予測モデルは、予測処理で使用されるパラメータ及び重み付け行列などの予測処理に必要なデータである。
【００５２】  以下、予測モデル変換システムを秘匿予測システムとも言う。また、以下、分散化及び暗号化を秘匿化とも言う。
【００５３】  ［１．１  予測モデル変換システムの構成］  続いて、本実施の形態に係る予測モデル変換システム４００の構成について図１〜図４を参照しながら説明する。図２は、実施の形態におけるデータ提供装置１００の構成の一例を示す図である。図３は、実施の形態におけるユーザ端末装置２００の構成の一例を示す図である。図４は、実施の形態におけるデータ演算装置３００の構成の一例を示す図である。
【００５４】  図１に示されるように、予測モデル変換システム４００は、例えば、データ提供装置１００と、ユーザ端末装置２００と、２以上の（ここでは、３つの）データ演算装置３００、３１０、３２０と、を備える。なお、各装置間の通信は、有線のインターネット線、無線通信、専用通信等のいずれかであればよい。なお、データ演算装置３００、３１０、３２０はそれぞれ、１つのクラウドサーバ、又は、１つのクラウドサーバに含まれる装置であってもよい。
【００５５】  本実施の形態では、図１に示される予測モデル変換システム４００を例に説明するが、これに限られない。予測モデル変換システム４００は、少なくとも以下の構成を備えるシステムであってもよい。
【００５６】  例えば、予測モデル変換システム４００は、ニューラルネットワークである予測モデルに含まれる、均一化処理を行うための少なくとも１つのパラメータを、非線形処理を含む処理を行うための少なくとも１つのパラメータに変換することにより、予測モデルを変換する予測モデル変換部１０４と、変換された予測モデルを暗号化することにより、秘匿状態の入力を秘匿としたまま予測処理が行われる暗号化予測モデルを生成する予測モデル暗号化部（例えば、予測モデル分散部１０５）と、を備えるとよい。
【００５７】  なお、予測モデル分散部１０５は、予測モデル暗号化部の一例である。例えば、予測モデル分散部１０５は、変換された予測モデルを、秘密分散法により分散することにより予測モデルを暗号化する。
【００５８】  さらに、予測モデル変換システム４００は、例えば、ユーザ情報をセンシングすることによって得られたデータから特徴量を算出する特徴量算出部２０２と、算出された特徴量を秘密分散法により分散する特徴量分散部２０３と、を備えてもよい。
【００５９】  さらに、予測モデル変換システム４００は、例えば、分散された予測モデルに分散された特徴量を入力して、分散された予測モデルで予測処理を実行する予測演算部３０２を備えてもよい。
【００６０】  予測モデル変換システム４００では、例えば、企業又は団体が予測処理に必要なデータ（以下、予測モデル）を、データ提供装置１００から３つのクラウドサーバ、すなわち、データ演算装置３００、３１０、３２０に秘匿して送信する。ユーザが秘匿予測システムのサービスを利用する際は、ユーザが自身の情報（以下、特徴量）を、ユーザ端末装置２００から３つのクラウドサーバであるデータ演算装置３００、３１０、３２０に秘匿して送信する。３つのクラウドサーバは互いに通信を行うことにより、それぞれのクラウドサーバが他のクラウドサーバで得られたデータを利用しながら、データを秘匿したまま予測結果を計算する。そして、３つのデータ演算装置３００、３１０、３２０はそれぞれ、得られた予測結果をユーザ端末装置２００へ送信する。ユーザ端末装置２００は、３つのデータ演算装置３００、３１０、３２０から受信した予測結果を復号する。
【００６１】  なお、データ提供装置１００は１つ以上であってもよいし、ユーザ端末装置２００も１つ以上であってもよい。さらに、図１に示す例では、予測モデル変換システム４００は、３つのデータ演算装置３００、３１０、３２０を備えているが、少なくとも２つのデータ演算装置を備えていればよい。理由の詳細については、後述する。なお、本実施の形態で用いられる秘密分散法は、分散されたデータのうち少なくとも２つのデータを集めなければ元の値を復号することはできない。そのため、分散されたデータのそれぞれは、秘匿状態のまま予測処理が行われる。そして、予測処理で算出された予測結果もまた、秘匿された状態であり、復号された予測結果を得るために、２つ以上の秘匿された状態の予測結果が必要となる。
【００６２】  なお、予測モデル変換システム４００を構成する各装置間の通信は、リアルタイムの通信でなくてもよい。例えば、ユーザ端末装置２００は、センシングしたユーザ情報又は秘匿状態のまま行われる予測処理（以下、単に、予測処理とも呼ぶ）の要求コマンドをある程度集めて、一時に、２つ以上のデータ演算装置３００、３１０、３２０に送信してもよい。
【００６３】  以下、本実施の形態に係る予測モデル変換システムの各構成について図面を参照しながらより具体的に説明する。
【００６４】  ［１．２  データ提供装置］  以下、データ提供装置１００について図１及び図２を参照しながら説明する。
【００６５】  図１に示されるように、データ提供装置１００は、例えば、企業又は団体が予測処理に必要なデータを、データ演算装置３００、３１０、３２０に秘匿して提供するための装置である。
【００６６】  図２に示されるように、データ提供装置１００は、学習データ格納部１０１と、学習部１０２と、予測モデル変換部１０４と、予測モデル分散部１０５と、通信部１０６と、予測モデル格納部１０３と、を備える。
【００６７】  データ提供装置１００は、例えば、企業又は団体等が所持しているノウハウを学習データとしてニューラルネットワークに学習処理をさせ、予測モデルを作成する。企業又は団体が所持しているノウハウは、例えば、血圧、心拍、及び、ＣＴスキャン情報等の生体情報と、それらの生体情報に対応する症例と、を紐づけたデータである。データ提供装置１００は、それらの学習データから、例えば、二値化ニューラルネットワーク（Ｂｉｎａｒｉｚｅｄ  Ｎｅｕｒａｌ  Ｎｅｔｗｏｒｋｓ：ＢＮＮ）の学習処理により予測モデルを作成する。そして、データ提供装置１００は、作成された予測モデルを秘密分散法により分散させることにより、秘匿状態のまま、複数のデータ演算装置３００、３１０、３２０に送信する。
【００６８】  以下、データ提供装置１００の各構成について説明する。
【００６９】  ［１．２．１  学習データ格納部］  学習データ格納部１０１は、入力を秘匿のまま予測処理を行うために必要な予測モデルを作成するための学習データを格納する。学習データは、ユーザ端末装置２００の特徴量算出部２０２（図３参照）で算出される特徴量と同じ性質のデータと、当該特徴量と同じ性質のデータに対応する正解データと、の組である。本実施の形態では、学習データは、例えば、複数の患者に関するデータであって、各患者のバイタルデータから算出された特徴量と、当該特徴量に対応する正解データである当該各患者の病名と、の組である。
【００７０】  ［１．２．２  学習部］  学習部１０２は、例えば、ＢＮＮであり、学習データ格納部１０１に格納された学習データに対して、あらかじめ定められた方法により学習処理を行うことにより、予測モデルを作成する。学習処理については、例えば、非特許文献４（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)）に示された方法を用いる。図５は、本実施の形態における予測モデルの一例を示す図である。なお、予測モデルについては、後述するため、ここでの説明を省略する。
【００７１】  ［１．２．３  予測モデル格納部］  予測モデル格納部１０３は、学習部１０２で作成した予測モデルを格納する。
【００７２】  ［１．２．４  予測モデル変換部］  予測モデル変換部１０４は、学習部１０２の学習処理によって得られた予測モデルを変換する。ここでは、予測モデル変換部１０４は、予測モデル格納部１０３に格納された予測モデルに対して変換処理を行う。なお、予測モデルは、例えば、予測処理で使用されるパラメータ、式、及び、重み付け行列などを含む。予測処理は、データ演算装置３００、３１０、３２０の予測演算部３０２で実行される。本実施の形態では、予測演算部３０２は、ＢＮＮである。以下、予測モデルについて図面を参照しながらより具体的に説明する。
【００７３】  図６は、本実施の形態における予測処理の均一化処理の一例を示す図である。図６の（式Ａ）は、ＢＮＮにおける予測処理の均一化処理の一例を示す式である。均一化処理は、式（Ａ）ｙi＝ｓiｘi＋ｔiによって行われる処理であり、パラメータｓi及びｔiは、均一化処理を行うためのパラメータである。式（Ａ）では、ｘiは均一化処理の入力ベクトル（以下、単に入力ともいう）を示し、ｙiは均一化処理の出力ベクトル（以下、単に出力ともいう）を示す。
【００７４】  式（Ｂ）及び（式Ｃ）に含まれるγ、σ、ε、β、μは、図５の予測モデルに含まれる学習済みのパラメータベクトルである。そのため、式（Ｂ）及び式（Ｃ）のパラメータｓi及びｔiは、上記の５つの学習済みのパラメータが固定値であるため、予測処理の前に計算可能である。
【００７５】  予測処理では、均一化処理の直後に必ず非線形処理が実行される。そのため、非線形処理の入力データは、均一化処理の出力データである。非線形処理では、入力データ（つまり、均一化処理の出力データ）の正負の符号を判定している。つまり非線形処理では、均一化処理の出力と正負の符号が同じになる値を返す処理（下記の式（Ｄ１）及び式（Ｄ２））によって代用することができる。例えば、図６の式（Ａ）の両辺をｓiで割ることで、図６の式（Ｄ）に示すような、ｙ’i＝ｘi＋ｔi／ｓiと変形した式が導出される。ただし、このままでは、パラメータｓiの符号によっては、ｙi及びｙ’iの符号が異なる符号になる場合がある。そこで、パラメータｓiの符号が正である場合は、式（Ｄ１）ｙ’i＝ｘi＋ｔiで、パラメータｓiの符号が負である場合には、秘密計算法の法ｐを用いて式（Ｄ２）ｙ’i＝ｘi＋ｔi＋ｐ／２で代用できる。また、このままではｓiが０から１の間の小数であり、かつ、ｔiが大きい数値である場合、ｔi／ｓiの値が大きくなる。秘密分散法では、計算途中の値、又は、秘密分散するパラメータの値が法ｐを超えないように、十分に大きい数値を法ｐとして設定している。しかし、法ｐを大きい値に設定するほど、計算量が増える。そのため、ｔi／ｓiが大きくなると、大きい値を法ｐとして利用する必要があるため、計算量が増大する。
【００７６】  ここで、予測処理における入力データの値の範囲が決まっていれば、入力データの値の範囲と学習済みパラメータとに基づいて、予測処理の計算途中の値の理論上の最大値を事前に計算することができる。図７は、実施の形態における均一化処理のパラメータから新しいパラメータを生成するための計算式を示す図である。本実施の形態では、上記の最大値をｕとし、新しいパラメータｋiを図７の式（Ｇ）を用いて計算することで、均一化処理の代わりに式ｙ’i＝ｘi＋ｋiを用いること（これを新しい均一化処理という）ができる。
【００７７】  なお、ｋiは、非線形処理を含む処理を行うためのパラメータであって、上記のパラメータｓi及びｔiを用いて定められる。また、図７の式（Ｇ）では、ｕは、予測処理の計算途中の理論上の最大値であり、ｐは、暗号化に用いられる除数である。
【００７８】  本実施の形態における予測処理では、この新しい均一化処理と非線形処理とに関連する処理をより簡単な処理で実行することができる。この簡単な処理は、非線形処理を含む処理（以下、均一化＋非線形処理と呼ぶ）であり、図８に示される式によって行われる処理である。図８は、実施の形態における均一化＋非線形処理の一例を示す図である。図８に示されるように、均一化＋非線形処理では、新しい均一化処理の式ｙ’i＝ｘi＋ｋiが０以上であれば、出力ｙiは１であり、式ｙ’i＝ｘi＋ｋiが０より小さければ、出力ｙiは−１である。このように、本実施の形態における均一化＋非線形処理では、非線形処理を含む処理を行うための少なくとも１つのパラメータは、１つのパラメータ（上記のｋi）であり、図８に示される式を用いた簡単な処理で実行される。
【００７９】  以上のように、均一化処理を行うための少なくとも１つのパラメータは、複数のパラメータであり、予測モデル変換部は、均一化処理を行うための複数のパラメータを、均一化＋非線形処理を行うための１つのパラメータに変換する。
【００８０】  また、予測モデル変換部１０４では、図６の式（Ａ）、式（Ｂ）及び式（Ｃ）の計算をあらかじめ行い、これを新たな予測モデルとしてもよい。以下、図６の式（Ａ）、式（Ｂ）及び式（Ｃ）の計算をあらかじめ行うことを事前計算とも呼ぶ。
【００８１】  このように、暗号化前に事前に計算できる式を計算して新たな予測モデルとすることにより、データ演算装置３００、３１０、３２０での計算量及び通信量を削減することができるため、予測精度の低下を低減することができる。
【００８２】  上述したように、秘密分散法では、少数を扱うことができない。そのため、予測モデル分散部１０５で秘密分散法により予測モデルを分散する際、小数を扱うことはできない。そこで、図１０Ａ及び図１０Ｂに示されるように、予測モデル変換部１０４は、図６の（式Ａ）、式（Ｂ）及び式（Ｃ）の計算をあらかじめ行って作製した新たな予測モデルｓ及びｔに対して、事前に定めた数値（例えば、１０）を掛けて小数点以下を切り捨てることで、新たな予測モデルｓ及びｔを整数化する（図１０Ｂの整数化されたパラメータｓ’及びｔ’）。
【００８３】  また、上述したように、秘密分散法では、負の数値（つまり、負の整数）を扱うことができない。そのため、予測モデル分散部１０５で秘密分散法により予測モデルを分散する際、負の数値を扱うことはできない。そこで、予測モデル変換部１０４は、予測モデルに含まれる複数のパラメータのうちの負の数値に対し、秘密分散法で用いる除数（つまり、法ｐ）を加算することにより、負の数値を正の数値に変換するとしてもよい。例えば、図１０Ｂ及び図１０Ｃに示されるように、予測モデル変換部１０４では、整数化された予測モデルｓ’及びｔ’のうち、負の数値で表される要素を正の数値に変換し、変換された予測モデルを作成する。例えば、ある要素ｘが負の数値だった場合、分散処理に用いる法ｐに対して、要素ｘをｐ＋ｘに変換する。なお、予測モデル変換部１０４は、さらに、予測モデルの要素が取り得る値よりも大きな範囲で、秘密分散法で用いる除数（法ｐ）を決定してもよい。なお、法ｐは、２のべき乗に近いもので、できる限り小さいものであってもよい。
【００８４】  以下、予測モデルの事前計算について図１０Ａ〜図１０Ｃを参照しながらより具体的に説明する。
【００８５】  図１０Ａは、本実施の形態における事前計算後の予測モデルの一例を示す図である。図１０Ａでは、図５に示される５つのパラメータγ、σ、ε、β、μを、図６の式（Ａ）及び式（Ｂ）に代入して算出されるパラメータｓ及びパラメータｔを示している。
【００８６】  図１０Ｂは、本実施の形態における変換後の予測モデルの一例を示す図である。図１０Ａに示されるパラメータｓ及びｔは小数を含む値だが、秘密分散法では小数を扱うことができない。そのため、図７の式（Ｅ）及び式（Ｆ）に示されるように、パラメータｓ及びｔをある定数ｑ（図１０Ｂではｑ＝１０）を掛けて小数点以下を切り捨てることで、図１０Ａに示されるパラメータｓ及びｔを整数化する（図１０Ｂの整数化パラメータｓ’及びパラメータｔ’）。また同時に、パラメータｓ及びｔを用いて、図７の（式Ｇ）に示す計算を行うことにより、図１０Ｂに示される新しいパラメータｋを生成する。なお、図１０Ｂに示されるように、整数化されたパラメータｓ’及びパラメータｔ’は、負の数値を含む。上述した通り、予測モデルを秘密分散法により分散する際に、負の数値を扱うことはできないため、負の数値を正の数値に変換する必要がある。具体的には、負の数値に対し、秘密分散法で用いる除数ｐ（上記の法ｐ）を加算して、負の数値を正の数値に変換する。図１０Ｃに示されるように、例えば、ｐ＝６５５１９とすると、上記パラメータのうちの負の数値は、負の数値に対応する非常に大きな正の数値に変換される。
【００８７】  図１０Ｃは、本実施の形態における複数のパラメータを用いて変換した予測モデルの一例を示す図である。上述した通り、図１０Ｃに示すパラメータｓ’、ｔ’及びｋは、整数化後の予測モデルのうち、負の数値に対し、法ｐを加算することにより、当該負の数値に対応する非常に大きな正の数値に変換される。なお、図１０Ｃにおいて、ｐ＝６５５１９である。
【００８８】  ［１．２．５  予測モデル分散部］  予測モデル分散部１０５は、予測モデル暗号化部の一例である。予測モデル分散部１０５は、予測モデル変換部１０４により作成された変換予測モデルを、あらかじめ定められた方法により分散して秘匿する。例えば、予測モデル分散部１０５は、変換された予測モデル（いわゆる、変換予測モデル）を、秘密分散法により分散することにより予測モデルを暗号化し、予測モデルの分散において、非線形処理を含む処理（いわゆる、均一化＋非線形処理）を行うためのパラメータを分散する。
【００８９】  予測モデル分散部１０５では、データ演算装置３００、３１０、３２０において、ユーザ端末装置２００から取得した特徴量を暗号化したまま（つまり、秘匿状態のまま）予測処理を行うことが可能な分散された予測モデル（以下、分散化予測モデルともいう）を作成する。予測モデル分散部１０５は、例えば、Ｓｈａｍｉｒ（２，３）閾値秘密分散法（非特許文献５：Adi Shamir，“How to share a secret”，(https://cs.jhu.edu/~sdoshi/crypto/papers/shamirturing.pdf)）を用いて分散し、分散化予測モデルを作成する。
【００９０】  なお、上述の通り、秘密分散法としては、非特許文献５の方法に限られず、非特許文献６（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)）、及び、非特許文献７（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)）のいずれかに示された方法を用いてもよい。
【００９１】  予測処理の計算途中の値の上界（つまり、最大値ｕ）は、入力データの値の範囲と学習済みパラメータから計算することができる。分散処理に用いる法ｐは、計算途中の値がｐを超えないように設定されなければならないため、事前に予測処理の計算途中の値の上界（つまり、最大値ｕ）を計算し、その値以上の数を法ｐとして決定し、予測モデル分散部１０５で保持する。
【００９２】  ［１．２．６  通信部］  通信部１０６は、データ演算装置３００、３１０、３２０と通信を行う。通信部１０６は、予測モデル分散部１０５で作成された分散化予測モデル（いわゆる、暗号化予測モデル）を複数のデータ演算装置３００、３１０、３２０に送信する。
【００９３】  ［１．３  ユーザ端末装置］  図３は、ユーザ端末装置２００の構成の一例を示す図である。ユーザ端末装置２００は、センシング部２０１と、特徴量算出部２０２と、特徴量分散部２０３と、復号部２０４と、予測結果利用部２０５と、通信部２０６と、を備える。ユーザ端末装置２００は、例えば、プロセッサ（マイクロプロセッサ）、メモリ、センサ、及び、通信インタフェース等を備えるコンピュータ又は携帯端末に実装される。
【００９４】  ユーザ端末装置２００は、例えば、ユーザの血圧、心拍、又は、ＣＴスキャン情報等のユーザに関する情報、すなわち、プライバシデータをセンシングし、特徴量を算出してデータ演算装置３００、３１０、３２０へ送信する。このとき、ユーザ端末装置２００は、例えば秘密分散法により特徴量を分散することで、秘匿化してデータ演算装置３００、３１０、３２０に送信する。そして、ユーザ端末装置２００は、算出された特徴量に対応する予測結果をデータ演算装置３００、３１０、３２０に要求し、予測結果をデータ演算装置３００、３１０、３２０から得て、予測モデル変換システム４００におけるサービスに利用する。このとき、ユーザ端末装置２００は、データ演算装置３００、３１０、３２０から暗号化された予測結果を取得し、それらの予測結果を復号して利用する。
【００９５】  ［１．３．１  センシング部］  センシング部２０１は、ユーザについての情報（ユーザ情報）をセンシングするためのセンサである測定装置を、１つ以上含んで構成される。
【００９６】  センシングするユーザ情報は、例えば、ユーザの血圧、体温、若しくは、心拍等のバイタルデータ、又は、ユーザの身体を撮影若しくは測定して得られる顔画像、エコー情報、若しくは、ＣＴスキャン情報等の画像情報等でもよい。
【００９７】  また、センシングするユーザ情報は、例えば、ＧＰＳ（Ｇｌｏｂａｌ  Ｐｏｓｉｔｉｏｎｉｎｇ  Ｓｙｓｔｅｍ）で得られる位置情報、ユーザが電気機器若しくは車両等の移動体を操作した履歴を示すログ情報、又は、ユーザによる商品等の購入履歴情報等でもよい。
【００９８】  ログ情報は、例えば車両のステアリング操作、アクセル操作、ブレーキ操作、若しくは変速ギアの操作等に関連して取得又は測定される各種情報であり、例えば、変位量、速度、又は加速度等を操作時刻と対応付けた情報であってもよい。
【００９９】  センシングするユーザ情報は、例えば、ユーザが他人に知られたくない個人的な事柄であるプライバシデータであってもよい。
【０１００】  予測モデル変換システム４００は、ユーザのプライバシデータを秘匿したままＢＮＮの予測処理を行うための予測モデル変換システムであって、秘匿したまま予測結果を算出する秘匿予測システムである。ここでは、センシング部２０１でセンシングされたユーザについての情報は、プライバシデータであると仮定して説明する。
【０１０１】  ［１．３．２  特徴量算出部］  特徴量算出部２０２は、センシング部２０１で取得したユーザのプライバシデータから特徴量を算出する。特徴量算出部２０２が算出する特徴量は、複数の成分を含むベクトルで表され得る。
【０１０２】  この特徴量は、例えば、ユーザの身体の全体若しくは一部位の形状、サイズ、重量、状態、及び、動きの少なくとも１つに関連する指標を示す成分を含む。
【０１０３】  なお、特徴量の対象となるユーザの身体の部位はいかなる部位であってもよく、例えば、目、鼻、耳、手、足、臓器、又は、血管等がある。
【０１０４】  ユーザの身体の全体又は一部位についての状態としては、例えば、健康状態であり、より具体的には、健康診断に用いられる各種検査項目に対する状態、体内の水分量、血圧、又は、酸素飽和度等が挙げられる。
【０１０５】  また、ユーザの身体の全体又は一部位についての動きとしては、例えば、体動（つまり、体の動き）であり、より具体的には、単位時間当たりの寝返り回数等、手足の震え、若しくは、顔面の痙攣などの振動、心拍数、呼吸数、若しくは、吸気呼気比率等の微振動が挙げられる。
【０１０６】  なお、特徴量は、例えば、プライバシデータがユーザの顔画像である場合、顔画像における特徴的なパラメータの主成分である。特徴量は、例えば、ユーザの顔画像のある領域の位置、面積、又は、幅等の情報であってもよい。また、特徴量は、例えば、センシング部２０１でユーザについて測定された何らかの要素を示す履歴情報から、時間軸に対応した要素の傾向を（例えば多項式で表現した場合の各項の係数を）成分として含むベクトルで表される情報であってもよい。
【０１０７】  なお、センシング部２０１で取得したユーザ情報から抽出された特徴量自体も、プライバシデータであり得る。図１１は、本実施の形態における特徴量の一例を示す図である。
【０１０８】  ［１．３．３  特徴量分散部］  特徴量分散部２０３は、特徴量算出部２０２により算出された特徴量を、あらかじめ定められた方法により分散して秘匿する。特徴量分散部２０３では、データ演算装置３００、３１０、３２０において特徴量を分散された状態のまま（つまり、秘匿状態のまま）使用して予測処理を行うことが可能な方法、例えば、Ｓｈａｍｉｒ（２，３）閾値秘密分散法（非特許文献５）を用いて特徴量を分散させることにより、分散された特徴量（以下、分散化特徴量ともいう）を作成する。
【０１０９】  秘密分散法とは、秘密情報から複数の分散情報を生成する技術である。分散情報は予め定められた組み合わせからは秘密情報を復元できるが、それ以外の組み合わせからは秘密情報が復元できないように作られる。定められた組み合わせは様々な構造を取ることができ、その構造は、アクセス構造と呼ばれる。アクセス構造には、様々な種類のアクセス構造がある。ここでは、代表的なアクセス構造として、閾値型アクセス構造について説明する。閾値型アクセス構造は、生成される分散情報の数ｎと、閾値ｍ（ｍ≦ｎ）の２つのパラメータで表される。ｍ個以上の分散情報からは秘密情報が復元できるが、ｍ個未満の分散情報からは秘密情報が復元できないというものである。閾値型アクセス構造を有する秘密分散法には、例えば、上記のＳｈａｍｉｒ（２，３）閾値秘密分散法（非特許文献５）があり、秘密情報を入力として３個の分散情報を生成するための分散処理と、２個以上の分散情報から秘密情報を復元する復元処理とを含む。
【０１１０】  なお、秘密分散法は、非特許文献５に記載の方法に限らず、非特許文献６又は非特許文献７に示された方法を用いてもよい。分散処理に用いる法ｐは、あらかじめシステムで決定され、特徴量分散部２０３で保持される。図１２は、本実施の形態における分散化特徴量の一例を示す図である。
【０１１１】  ［１．３．４  復号部］  復号部２０４は、ユーザ端末装置２００がデータ演算装置３００、３１０、３２０に送信した分散された特徴量に対応する予測結果を、データ演算装置３００、３１０、３２０からそれぞれ受信して復号する。これらの予測結果は、秘密分散法により分散された特徴量及び予測モデルを分散された状態のまま使用して得られた結果であり、いわゆる暗号化された予測結果である。これらの予測結果の復号方法については、例えば、非特許文献５、非特許文献６、及び、非特許文献７のいずれかの方法を用いてもよい。
【０１１２】  ［１．３．５  予測結果利用部］  予測結果利用部２０５は、復号部２０４で復号された予測結果を利用する。予測結果の利用の一例としては、予測結果をユーザへ提示すること、つまり、予測結果の提示である。予測結果の提示は、例えば、画像であってもよく、音声であってもよい。予測結果の提示が画像である場合、当該提示は、例えば、予測結果に基づくグラフ、又は、統計情報等の形式で表示される。また、予測結果の提示が音声である場合、当該提示は、例えば、予測結果に基づく音声で出力される。なお、予測結果の提示は、画像及び音声であってもよい。この場合、ユーザ端末装置２００は、例えば画像を表示するディスプレイ、音声を出力するスピーカーなどの音声出力装置、及び、その他のユーザインタフェースを含んで実装され、予測結果を提示してもよい。
【０１１３】  また、予測結果利用部２０５は、予測結果に基づいて、さらに所定の演算、又は、情報検索等を行い、ユーザに対して、病院での検診の提案、生活習慣の改善のためのアドバイス、又は、お勧めの献立等を提示してもよい。
【０１１４】  ［１．３．６  通信部］  通信部２０６は、複数のデータ演算装置３００、３１０、３２０と通信を行う。通信部２０６は、特徴量分散部２０３で作成された分散された特徴量をそれぞれデータ演算装置３００、３１０、３２０に送信する。以下の［１．４データ演算装置］の項にて詳細に説明するが、複数のデータ演算装置３００、３１０、３２０は、これらの分散化特徴量を受信することをトリガーとし、これらの分散化特徴量を秘匿された状態のまま使用して、予測処理を実行する。また、通信部１０６は、データ演算装置３００、３１０、３２０がそれぞれ計算した予測結果を受信し、復号部２０４に送信する。なお、これらの予測結果は、上述の通り、暗号化された予測結果である。
【０１１５】  ［１．４  データ演算装置］  続いて、データ演算装置について説明する。図１に示されるように、データ演算装置３００、３１０、３２０は、例えば、クラウドサーバである。予測モデル変換システム４００では、データ演算装置３００は、２つ以上備えられていればよい。本実施の形態では、３つのデータ演算装置３００、３１０、３２０はそれぞれ、互いに通信を行うことで、データを秘匿したまま予測結果を計算し、暗号化された予測結果をユーザ端末装置２００へ送信する。より具体的には、データ演算装置３００、３１０、３２０では、分散化予測モデルに分散化特徴量を入力して、分散化予測モデルで予測処理を実行する。以下、本実施の形態におけるデータ演算装置３００、３１０、３２０についてより具体的に説明する。
【０１１６】  図４は、データ演算装置３００の構成の一例を示す図である。データ演算装置３００は、分散化予測モデル格納部３０１と、予測演算部３０２と、通信部３０３と、を備える。データ演算装置３００は、ユーザ端末装置２００から受信した分散化特徴量と、データ提供装置１００から受信した分散化予測モデルを、分散された状態のまま使用して予測処理を行う。なお、データ演算装置３１０、３２０も、データ演算装置３００と同じ構成である。
【０１１７】  ［１．４．１  分散化予測モデル格納部］  分散化予測モデル格納部３０１は、データ提供装置１００から受信した分散された予測モデル（いわゆる、分散化予測モデル）を格納する。
【０１１８】  ［１．４．２  予測演算部］  予測演算部３０２は、分散化予測モデル格納部３０１に格納されている分散化予測モデルと、ユーザ端末装置２００から受信した分散化特徴量とを用いて、予測処理を行う。予測演算部３０２では、分散化予測モデルと分散化特徴量とを分散された状態のまま（つまり、秘匿された状態のまま）使用して予測処理を行い、分散化予測結果を求める。なお、分散化予測結果は、暗号化された予測結果である。
【０１１９】  続いて、図面を参照しながらより具体的に予測処理について説明する。図１３は、本実施の形態における予測処理のフローの一例を示す図である。
【０１２０】  予測演算部３０２は、分散化予測モデルに、分散化特徴量を入力して、分散された前記予測モデルで予測処理を実行する。予測処理は、非線形処理を含む。予測処理は、行列積演算、データ分布の均一化＋非線形処理、均一化処理、最大値探索の４つの処理で実行される。従来の予測処理では、データ分布の均一化処理及び非線形処理は別々に実行されていたが、本実施の形態における予測処理では、予測モデル変換部１０４にて新しいパラメータｋを生成したことにより、均一化処理と非線形処理とを図８に示される簡単な式を用いて計算する（つまり、より簡単な処理で行う）ことが可能となる。より具体的には、本実施の形態では、非線形処理は、非線形処理に対する入力が０又は正に対応する数値であれば１に、前記入力が負に対応する数値であれば−１に対応する正の数値に変換する処理である。これにより、均一化処理及び非線形処理を別々で実行する場合よりもより計算量が削減される。また、図９に示す式で均一化処理を行う場合、ｓ’とｔ’を計算する過程で小数点以下の切り捨てを行っているため、計算誤差が発生してしまい、最終的な予測処理の精度が劣化してしまう。その反面、図８に示す式を用いて計算することで、計算誤差無く、つまり精度が劣化することなく予測処理を行うことが可能になる。
【０１２１】  予測処理では、行列積演算、データ分布の均一化＋非線形処理が所定の回数繰り返し実行された後、最大値探索により予測結果（つまり、分散化予測結果）を得る。なお、図１３に示される予測処理のフローは一例であり、これに限定されない。
【０１２２】  以下、予測処理の各処理について図面を参照しながら説明する。
【０１２３】  まず、行列積演算について説明する。行列積演算は、分散された入力ベクトルである分散化特徴量と、分散化予測モデルに含まれる分散化重み行列との行列積を計算する。以下分散化重み行列及び分散化特徴量について説明する。
【０１２４】  図１４は、本実施の形態における変換前の重み行列の一例を示す図である。図１４に示されるように、予測モデル（ここでは、変換前の重み行列）は、−１又は１の二値で構成される複数のパラメータを含む二値化ニューラルネットワーク（ＢＮＮ）である。図示しないが、例えば、図１０Ｂ及び図１０Ｃで説明した方法により、図１４に示される予測モデルに含まれる複数のパラメータのうち負の数値を正の数値に変換し、変換後の予測モデル（変換後の重み行列）を作製する。本実施の形態では、行列積演算で用いる分散化予測モデル（つまり、分散化重み行列）は、例えば、変換後の予測モデルを、秘密分散法により分散することにより暗号化した暗号化予測モデルである。
【０１２５】  続いて、分散化特徴量について説明する。分散化特徴量は、センシングによって得られたデータ（以下、センシングデータともいう）から算出された特徴量を、予測モデルと同様に、秘密分散法により分散して得られた暗号化された特徴量である。例えば、図１１及び図１２を参照すると、ユーザＡＡＡのセンシングデータは、特徴量１、特徴量２及び特徴量３であり、これらの特徴量をそれぞれ秘密分散法によりデータ演算装置３００、３１０、３２０に分散している。例えば、特徴量１の分散化について説明すると、図１２に示される特徴量１の分散化特徴量は、特徴量１を秘密分散法により分散して得られた３つの暗号化された特徴量である。
【０１２６】  続いて、行列積演算で得られたデータ分布の均一化処理と非線形処理について説明する。図８に示される式は、本実施の形態における均一化＋非線形処理に用いられる。図８において、ｘiは入力ベクトルであり、上述の行列積演算で算出されるベクトルである。また、ベクトルｋiは、予測モデル変換部１０４で生成したパラメータである。ｙiは、出力ベクトルであり、均一化＋非線形処理により算出されるベクトルである。均一化＋非線形処理では、入力ベクトルｘiとパラメータｋiの和を計算した後、その値が０又は正に対応する数値であれば１に対応する数値に、負に対応する数値であれば−１に対応する数値に変換する。
【０１２７】  正に対応する数値は、例えば、法ｐを用いて表すと、０〜（ｐ−１）／２であり、負に対応する数値は、（ｐ＋１）／２〜ｐ−１であってもよい。なお、０〜ｐ−１のどこからどこまでを正に対応する数値にするか、負に対応する数値にするかは、任意に決めてもよい。
【０１２８】  また、例えば、最上位ビットが０であれば、正に対応する数値とし、最上位ビットが１であれば、負に対応する値としてもよい。
【０１２９】  続いて、最大値探索について説明する。最大値探索では、分散された入力ベクトルの全要素の中で最大値の要素を探索する。最大値検索では、例えば、最大値検索に対する入力ベクトルの全要素間で大小関係を比較し、比較結果の論理積を計算することにより実現される。より具体的には、最大値検索では、各要素について、他の全ての要素と個別に大小関係が比較される。比較結果は、０及び１の二値で表される。例えば、ある要素の値が他の要素の値と同じ、又は、他の要素の値よりも大きければ、比較結果は１で表され、ある要素の値が他の要素の値よりも小さければ、比較結果は０で表される。全要素について、他の要素との大小関係の比較結果は、比較表に格納される。この場合、全要素の中で最大値の要素は、他の要素との大小関係の比較結果が全て１になる。そのため、比較結果の論理積を計算した場合、論理積は、最大値の要素のみが１になり、それ以外の要素は全て０になる。この特性を利用することで、最大値の要素を抽出することができる。
【０１３０】  上述のように、本実施の形態では、行列積演算、データ分布の均一化＋非線形処理、及び、データ分布の均一化処理、最大値探索の４つの処理は、それぞれの処理に対する入力の和、積、大小関係の比較、論理積だけで構成され得る。例えば、非特許文献８（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)）では、２つの分散された値を復号することなく、それらの値の和、積、大小関係の比較、及び、論理積を計算できる。このことから、予測処理に非特許文献８の方式を用いることで、分散化予測モデルと分散化特徴量とを復号することなく、入力を秘匿したまま予測処理を行うことができる。
【０１３１】  ［１．４．３  通信部］  データ演算装置３００の通信部３０３は、データ提供装置１００、ユーザ端末装置２００、及び、他のデータ演算装置３１０、３２０と通信を行う。通信部３０３は、データ提供装置１００から分散化予測モデルを受信し、受信した分散化予測モデルを分散化予測モデル格納部３０１に格納する。通信部３０３は、ユーザ端末装置２００から分散化特徴量を受信し、受信した分散化特徴量を予測演算部３０２へ送信する。また、通信部３０３は、予測演算部３０２で算出された分散化予測結果をユーザ端末装置２００に送信する。
【０１３２】  上述の通り、データ演算装置３００は、分散化予測モデルと分散化特徴量とを復号することなく、これらを分散されたまま、つまり、秘匿状態のまま、予測処理を行う。
【０１３３】  [２．  予測モデル変換方法]  続いて、本実施の形態に係る予測モデル変換方法の一例について説明する。図１５は、本実施の形態に係る予測モデル変換方法の一例を示すフローチャートである。
【０１３４】  予測モデル変換方法は、ニューラルネットワークである予測モデルに含まれる、均一化処理を行うための少なくとも１つのパラメータを、非線形処理を含む処理を行うための少なくとも１つのパラメータに変換することにより、前記予測モデルを変換する予測モデル変換ステップ（Ｓ００１）と、変換された前記予測モデルを暗号化することにより、秘匿状態の入力を秘匿としたまま予測処理が行われる暗号化予測モデルを生成する予測モデル暗号化ステップ（Ｓ００２）と、を含む。
【０１３５】  以下、予測モデル変換システムの動作の一例について説明する。
【０１３６】  ［２．１  予測モデル変換システムの動作（予測モデル変換方法）］  続いて、予測モデル変換システム４００の動作の一例について説明する。予測モデル変換システム４００の動作は、（ｉ）データ提供装置１００が予測モデルを学習して分散する学習フェーズと、（ｉｉ）複数のデータ演算装置３００、３１０、３２０が分散された予測モデル（いわゆる、分散化予測モデル）を利用して分散された特徴量（いわゆる、分散化特徴量）の予測を行う予測フェーズと、を含む。
【０１３７】  ［２．１．１  学習フェーズ］  まず、予測モデル変換システム４００の学習フェーズの動作について説明する。図１６Ａは、本実施の形態に係る予測モデル変換システム４００の学習フェーズの動作の一例を示すシーケンス図である。
【０１３８】  学習ステップＳ１０１では、データ提供装置１００（図２参照）は、学習データ格納部１０１に格納された学習用のデータを参照し、学習部１０２にて二値化ニューラルネットワーク（ＢＮＮ）である予測モデルの学習処理を行う。
【０１３９】  これにより、予測処理を行うための予測モデルが作成される。作成された予測モデルは予測モデル格納部１０３に格納される。
【０１４０】  次に、予測モデル変換ステップＳ１０２では、データ提供装置１００は、作成された予測モデルに対して、予測モデル変換部１０４にて変換処理を適用する。具体的には、予測モデル変換ステップＳ１０２では、データ提供装置１００は、均一化処理と非線形処理とを、例えば図８に示される簡単な処理で実行できるように、ニューラルネットワークの予測モデルに含まれる均一化処理で用いるパラメータ（図６の均一化パラメータｓi及びｔi）を変換して、新しいパラメータｋiを生成する。より具体的には、予測モデル変換ステップＳ１０２では、予測モデルに含まれる均一化パラメータを図７の（式Ｇ）に示す計算式で変換し、次に、変換されたパラメータのうち負の数値を正の整数に変換する（図１０Ｂ及び図１０Ｃ参照）。
【０１４１】  これにより、均一化処理と非線形処理とを簡単な式を用いて計算することができるため、計算量が少なくなる。また、均一化＋非線形処理の出力結果は、均一化処理を実行した後に非線形処理を実行した出力と同じであるため、予測精度の低下を抑制することができる。
【０１４２】  次に、予測モデル分散化ステップＳ１０３では、データ提供装置１００は、予測モデル変換ステップＳ１０２で変換された予測モデルを秘密分散法により分散する。これにより、分散された予測モデル（いわゆる、分散化予測モデル）が得られる。
【０１４３】  次に、ステップＳ１０４では、データ提供装置１００は、予測モデル分散化ステップＳ１０３で得られた分散化予測モデルを、複数のデータ演算装置３００、３１０、３２０に送信する。
【０１４４】  次に、ステップＳ１０５では、データ演算装置３００、３１０、３２０は、それぞれ、データ提供装置１００から受信した分散化予測モデルを自身の分散化予測モデル格納部３０１に格納する。
【０１４５】  以上により、学習フェーズでは、データ提供装置１００は、予測処理を行うための予測モデルを作成し、作成された予測モデルを秘密分散法により分散して分散化予測モデルを作成する。これにより、予測モデルを秘匿のまま複数のデータ演算装置３００、３１０、３２０に送信することができる。
【０１４６】  ［２．１．２  予測フェーズ］  続いて、予測モデル変換システム４００の予測フェーズについて説明する。図１６Ｂは、本実施の形態に係る予測モデル変換システム４００の予測フェーズにおけるユーザ端末装置２００の動作の一例を示す第１シーケンス図である。図１６Ｃは、本実施の形態に係る予測モデル変換システム４００の予測フェーズにおけるユーザ端末装置２００の動作の一例を示す第２シーケンス図である。
【０１４７】  図１６Ｂに示されるように、まず、ステップＳ２０１では、ユーザ端末装置２００（図３参照）は、センシング部２０１で情報を取得する。ここでは、センシングによって得られた情報は、ユーザのプライバシデータである。センシング部２０１で取得された情報は、特徴量算出部２０２に送信される。
【０１４８】  次に、特徴量算出ステップＳ２０２では、ユーザ端末装置２００は、特徴量算出部２０２にて、センシング部２０１から受信した情報から特徴量を算出する。特徴量は、センシング部２０１から受信した情報の特徴を示す値である。図１１を再び参照すると、図１１では、特徴量１、特徴量２及び特徴量３が上記特徴量の例として示されている。
【０１４９】  次に、特徴量分散化ステップＳ２０３では、ユーザ端末装置２００は、特徴量算出ステップＳ２０２で算出された特徴量を、秘密分散法により分散する。これにより、分散された特徴量（いわゆる、分散化特徴量）が得られる。ここで、図１２を再び参照して、分散化特徴量の算出方法について説明する。例えば、センシング部２０１でセンシングされたユーザの情報が特徴量１である場合、特徴量１は、データ演算装置の数に応じた個数（ここでは、３つ）に分散される。特徴量１に対し、乱数（ここでは、２６）を加算し、データ演算装置３００に送信する分散化特徴量を算出する。さらに、この分散化特徴量に乱数２６を加算し、データ演算装置３１０に送信する分散化特徴量を算出する。さらに、この分散化特徴量に乱数２６を加算し、データ演算装置３２０に送信する分散化特徴量を算出する。
【０１５０】  次に、ステップＳ２０４では、ユーザ端末装置２００は、分散化特徴量を複数のデータ演算装置３００、３１０、３２０に送信する。具体的には、図１２に示すように、ユーザ端末装置２００は、特徴量１、特徴量２、及び、特徴量３をそれぞれ分散した分散化特徴量を、複数のデータ演算装置３００、３１０、３２０に送信する。
【０１５１】  複数のデータ演算装置３００、３１０、３２０は、それぞれ、ユーザ端末装置２００から分散化特徴量を受信すると、自身の分散化予測モデル格納部（図４の分散化予測モデル格納部３０１）に格納された分散化予測モデルを読み出し、予測処理ステップＳ２０５を開始する。
【０１５２】  予測処理ステップでは、複数のデータ演算装置３００、３１０、３２０は、分散化特徴量と分散化予測モデルとを分散された状態のまま（秘匿状態のまま）使用して、二値化ニューラルネットワーク（ＢＮＮ）の予測処理を行う。なお、予測処理ステップＳ２０５の詳細については後述する。
【０１５３】  これにより、複数のデータ演算装置３００、３１０、３２０は、それぞれ予測処理の結果として分散化予測結果を得る。なお、非特許文献８の方式を用いて予測処理の計算を行った場合、予測処理を行う際は、複数のデータ演算装置３００、３１０、３２０のそれぞれが有する分散された情報、及び、分散された情報を予測処理したデータを、複数のデータ演算装置３００、３１０、３２０の間で通信する必要がある。
【０１５４】  次に、図１６Ｃに示されるように、ステップＳ２０６では、複数のデータ演算装置３００、３１０、３２０は、それぞれ、分散化予測結果をユーザ端末装置２００へ送信する。
【０１５５】  次に、ステップＳ２０７では、ユーザ端末装置２００は、複数のデータ演算装置３００、３１０、３２０から送信された分散化予測結果を受信し、受信された分散化予測結果を復号し、予測結果を得る。
【０１５６】  最後に、ステップＳ２０８では、ユーザ端末装置２００は、予測結果利用部２０５にて、取得した予測結果を利用する。上述したように、ユーザ端末装置２００は、例えば、予測結果を画像又は音声などでユーザへ提示し、予測結果にも続いて、生活習慣の改善、ストレス解消方法、又は、お勧めの献立などを提示してもよい。
【０１５７】  以上により、予測フェーズでは、データ提供装置１００は、予測処理を行うための予測モデルを作成し、作成された予測モデルを秘密分散法により分散して分散化予測モデルを作成する。これにより、予測モデルを秘匿のまま複数のデータ演算装置３００、３１０、３２０に送信することができる。そして、ユーザ端末装置２００は、予測結果を復号して、ユーザに予測結果の提示及び予測結果の利用を行う。
【０１５８】  ［２．２  予測処理ステップＳ２０５］  以下、予測モデル変換システム４００の予測処理ステップＳ２０５について、より具体的に説明する。図１６Ｄは、図１６ＢのステップＳ２０５の一例を示すシーケンス図である。
【０１５９】  複数のデータ演算装置３００、３１０、３２０は、図１６Ａに示されるように、データ提供装置１００から分散化予測モデルを取得した後、ユーザ端末装置２００から分散化特徴量を受信することをトリガーとして、予測処理ステップＳ２０５を開始する。
【０１６０】  予測処理ステップＳ２０５では、複数のデータ演算装置３００、３１０、３２０は、分散化特徴量と分散化予測モデルとを分散されたまま（秘匿状態のまま）用いて、二値化ニューラルネットワーク（ＢＮＮ）の予測処理を行う。
【０１６１】  図１６Ｄに示されるように、データ演算装置３００、３１０、３２０は、それぞれ、所定回数の繰り返し処理を開始する（ステップＳ２０５１）。
【０１６２】  まず、行列積演算ステップＳ２０５２では、複数のデータ演算装置３００、３１０、３２０は、分散化特徴量（図１２参照）である分散された入力ベクトルをユーザ端末装置２００から受信すると、分散化予測モデルである分散化重み行列（不図示）との行列積を計算し、出力として第一分散化ベクトルを得る。
【０１６３】  より具体的には、データ演算装置３００における動作を例に説明すると、データ演算装置３００は、ユーザ端末装置２００から分散化特徴量を受信すると、分散化予測モデル格納部３０１に格納された分散化予測モデルを読み出す。次いで、データ演算装置３００は、分散化特徴量と分散化予測モデルとの行列積を計算し、第一分散化特徴量である第一分散化ベクトルを得る。
【０１６４】  なお、分散化予測モデル（ここでは、分散化重み行列）は、全ての要素が正の数値になるように変換された変換後の予測モデルを、秘密分散法により分散して得られる。上述したように、図１３に例示する二値化ニューラルネットワークである予測モデル（つまり、変換前の重み行列）は、当該予測モデルの複数のパラメータ（つまり、要素）のうち−１が−１に対応する正の数値に変換される。予測モデルの全ての要素が正の数値で表されることにより、予測モデル変換システムは、当該予測モデルを秘密分散法により分散することができる。
【０１６５】  次に、均一化＋非線形処理ステップＳ２０５３では、複数のデータ演算装置３００、３１０、３２０は、行列積演算ステップＳ３０１で出力として得られた第一分散化ベクトルと、均一化パラメータを変換して得られた変換後の均一化パラメータとを用いて、第一分散化ベクトルに含まれる要素ごとに和を計算する（図８参照）。その後、各要素について、値が０又は正に対応する数値であれば１に、負に対応する数値であれば−１に対応する正の整数に変換する。これにより、均一化＋非線形処理ステップＳ２０５３では、出力として第二分散化特徴量である第二分散化ベクトルを得る。
【０１６６】  より具体的には、第二分散化ベクトルｙiは、図８に示すように、第一分散化ベクトルの各要素ｘiに変換均一化パラメータｋiを加え、結果が０以上かどうかを、値を秘匿したまま計算することで求められる。
【０１６７】  次に、複数のデータ演算装置３００、３１０、３２０は、均一化＋非線形処理ステップＳ３０２で出力として得られた第二分散化ベクトルと、分散化予測モデルとを用いて、行列積演算ステップＳ３０１を実行する。続いて、複数のデータ演算装置３００、３１０、３２０は、行列積演算ステップＳ２０５２で得られた第三分散化ベクトルを入力として、均一化＋非線形処理ステップＳ２０５３を実行する。これにより、第四分散化ベクトルが得られる。
【０１６８】  このように、上記の行列積演算ステップＳ２０５２、均一化＋非線形処理ステップＳ２０５３の一連のステップは所定の回数繰り返される。図１３を再び参照すると、本実施の形態では、例えば、当該一連のステップ（いわゆる、層）は２回繰り返される。このように、所定回数（ここでは、２回）の繰り返し処理を終了する（ステップＳ２０５４）ことにより、第四分散化ベクトルが得られる。
【０１６９】  次いで、行列演算ステップＳ２０５５では、複数のデータ演算装置３００、３１０、３２０は、上記一連のステップＳ２０５２〜Ｓ２０５３を所定の回数（ここでは、２回）繰り返して出力として得られた第四分散化ベクトルと、重み行列との行列積を算出する。これにより、第五分散化ベクトルが得られる。
【０１７０】  次いで、均一化処理ステップＳ２０５６では、行列演算ステップＳ２０５５で得られた第五分散化ベクトルに対して均一化処理を実行する。これにより、第六分散化ベクトルが得られる。
【０１７１】  最後に、最大値探索ステップＳ２０５７では、均一化処理ステップＳ２０５６で得られた第六分散化ベクトルのうち最大値の要素を探索する。これにより、分散化予測結果が得られる。
【０１７２】  以上のように、本実施の形態に係る予測モデル変換方法では、均一化処理と非線形処理とを簡単な処理で実行できるように、ニューラルネットワークの予測モデルに含まれる均一化パラメータを変換して、新しいパラメータｋiを生成することで、複数の処理を例えば図８に示される簡単な式を用いて実行することができる。これにより、分散化特徴量及び分散化予測モデルを分散させた状態のまま使用して、つまり、秘匿のまま使用して、予測処理を行うことができる。そのため、予測処理の途中に第三者が予測処理に係るデータを取得したとしても、元のデータに復号されにくい。したがって、本実施の形態に係る予測モデル変換方法を適用することにより、ユーザのプライバシデータ、及び、企業独自のノウハウなどの機密性の高い情報を第三者から保護することができる。また、均一化＋非線形処理の出力結果は、均一化処理を実行した後に非線形処理を実行した出力と同じ出力であるため、秘匿のまま予測処理を行う際の予測精度の低下を抑制することができる。また、複数の処理を簡単な式を用いて実行できるため、計算量を削減することができる。
【０１７３】  （他の実施の形態）  以上、本開示に係る予測モデル変換方法、及び、予測モデル変換システムについて、実施の形態に基づいて説明したが、本開示は、上記の実施の形態に限定されるものではない。本開示の主旨を逸脱しない限り、当業者が思いつく各種変形を実施の形態に施したものや、実施の形態における一部の構成要素を組み合わせて構築される別の形態も、本開示の範囲に含まれる。例えば、以下のような場合も本開示に含まれる。
【０１７４】  （１）上記実施の形態では、データ提供装置１００が、予測モデル変換部１０４において、予測モデルに含まれる複数のパラメータ（以下、要素ともいう）のうち負の数値を正の数値に変換する例を示したが、これに限られない。予測モデル変換部１０４は、予測モデルに対して、以下に示す変換処理を行ってもよい。予測モデル変換部１０４は、予測モデルに含まれる複数のパラメータのうち数値を、数値の符号を０又は１で示す符号部と、数値の絶対値を示す数値部との組に変換することにより、負の数値を正の数値に変換してもよい。例えば、ある要素ｘ（ここでは、ｘは整数）について、ｘ＝ａｂ（ただし、ａは、ｘの符号を示す符号部であり、ｂはｘの絶対値を示す数値部である。）とする。符号部ａには、ある要素ｘが０又は正の数値であれば０を代入し、ある要素ｘが負の数値であれば１を代入する。また、数値部ｂには、ｘの絶対値を代入する。このようにして、ある要素ｘは、ａとｂとの組（ａ，ｂ）に変換される。予測モデルに含まれる全ての要素に上記変換処理を適用することにより、予測モデルに含まれる負の数値を正の数値に変換することができる。そのため、変換処理後の予測モデルに含まれる全要素は、正の数値（ここでは、正の整数）のみで表される。これにより、予測モデル分散部１０５は、変換処理後の予測モデルを秘密分散法により分散することができる。
【０１７５】  （２）上記実施の形態では、秘密分散法の法ｐの具体的な決定法は明記していないが、以下の操作により最適な法ｐを決定してもよい。予測モデルと入力データの値の範囲がわかっていれば、予測処理の計算途中の値の上界を求めることができる。例えば、予測処理の最初の行列積演算に注目すると、入力ベクトルの値の範囲が０〜２５５、入力ベクトルの次元数がａ、出力ベクトルの次元数がｂだった場合、出力ベクトルの値の範囲は−２５５ａ〜２５５ａであり、この行列積演算の計算途中の値の上界は２５５ａとなる。さらに次の均一化＋非線形処理においては、入力ベクトルの値の範囲が−２５５ａ〜２５５ａ、入力ベクトルの次元数がｂ、出力ベクトルの次元数がｂであり、均一化＋非線形処理のパラメータｋの値の最大値がｃだった場合、出力ベクトルの値は−１又は１であり、計算途中の値の上界は２５５ａ＋ｃとなる。このように、予測処理における各処理途中の値の上界を求めることで、予測処理全体の中の計算途中の値の上界を計算することができる。例えば求めた上界がｕだった場合には、秘密分散法の法ｐとして、２ｕ＋１以上の最も小さい素数を選ぶことで、計算量を最小にする最適な法ｐを選ぶことができる。
【０１７６】  （３）また、計算量は法ｐのビット長に依存するものであるため、ビット長が同じであれば、小さい素数を法ｐに選んでも、大きい素数を法ｐとして選んでも、計算量は変わらない。ただし、秘密分散法の中には、同じビット長でも、大きい素数を用いた方が効率的に計算できるアルゴリズムが存在するため、前述のように２ｕ＋１以上の最も小さい素数を選んでもよいし、その素数と同じビット長の最大の素数を法ｐとして選んでもよい。これにより、さらに効率化できる場合がある。
【０１７７】  （４）上記実施の形態では、予測処理の一例として行列積演算、均一化処理、均一化＋非線形処理、最大値探索処理を用いた処理を示したが、畳み込み（Ｃｏｎｖｏｌｕｔｉｏｎ）やプーリングといった処理を行ってもよい。これらの処理を用いた予測処理の一例を図１７に示す。図１７も一例であり、それぞれの処理を行う回数や順番はこれに限定されない。
【０１７８】  複数のデータ演算装置３００、３１０、３２０は、ユーザ端末装置２００から分散化特徴量を取得することをトリガーとして、所定回数の繰り返し処理を開始する（ステップＳ３０１）。
【０１７９】  まず、ステップＳ３０２では、複数のデータ演算装置３００、３１０、３２０は、分散化された入力ベクトルと、分散化された畳み込みパラメータとを用いて畳み込みの処理を行い、第一分散化ベクトルを得る。畳み込みの処理は、行列積と加算の組み合わせによって計算できる。
【０１８０】  次に、ステップＳ３０３では、複数のデータ演算装置３００、３１０、３２０は、ステップＳ４０１で出力として得られた第一分散化ベクトルと、均一化パラメータを変換して得られた変換均一化パラメータとを用いて、均一化＋非線形処理を行い、第二分散化ベクトルを得る。
【０１８１】  次に、ステップＳ３０４では、複数のデータ演算装置３００、３１０、３２０は、ステップＳ３０３で出力として得られた第二分散化ベクトルと、分散化された畳み込みパラメータとを用いて畳み込みの処理を行い、第三分散化ベクトルを得る。
【０１８２】  次に、ステップＳ３０５では、複数のデータ演算装置３００、３１０、３２０は、ステップＳ４０３で出力として得られた第三分散化ベクトルに対してプーリングの処理を行い、第四分散化ベクトルを得る。プーリングには、図１７のように、決められた領域の最大（Ｍａｘ  Ｐｏｏｌｉｎｇ）、平均（Ａｖｅｒａｇｅ  Ｐｏｏｌｉｎｇ）又は合計（Ｓｕｍ  Ｐｏｏｌｉｎｇ）を求める処理があり、全てのプーリング処理で最大、平均、平均等のいずれかのみを計算する処理でもよいし、組み合わせてもよい。
【０１８３】  次に、ステップＳ３０６では、複数のデータ演算装置３００、３１０、３２０は、ステップＳ３０５で出力として得られた第四分散化ベクトルと、均一化パラメータを変換して得られた変換均一化パラメータとを用いて、均一化＋非線形処理を行い、第五分散化ベクトルを得る。
【０１８４】  本実施の形態では、ステップＳ３０２からステップＳ３０６を所定の回数繰り返したのち（ステップＳ３０７）、最後の均一化＋非線形処理の出力である第ｎ分散化ベクトルと分散化予測モデルとを用いて行列積演算を計算し（ステップＳ３０８）、その出力と均一化パラメータとを用いて均一化処理を行い（ステップＳ３０９）、最後に最大値探索処理を行う（ステップＳ３１０）。これにより、分散化予測結果が得られる。
【０１８５】  （５）上記実施の形態では、予測演算部３０２における最大値探索処理の一例として、各要素について、他の全ての要素と大小関係を比較し、比較結果の理論積が１となる要素が最大値の要素であると判定する処理方法を挙げたが、これに限定されない。例えば、最大値探索処理では、以下の処理により最大値の要素（以下、最大値要素）を求めてもよい。最大値探索処理に対する入力ベクトルの複数の要素のうち１つ目の要素（要素Ａとする）を暫定的な最大値要素とし、要素Ａと残りの要素との大小関係を順次比較する。暫定的な最大値要素である要素Ａよりも大きい要素（要素Ｂとする）が見つかった場合は、要素Ｂを新しい暫定的な最大値要素とし、要素Ｂと残りの要素との大小関係を順次比較する。全要素と比較した段階での暫定的な最大値要素が要素Ｂであるとすると、要素Ｂの数値と番号とを最大値探索処理の出力とする。
【０１８６】  （６）また、予測演算部３０２における最大値探索処理は、以下の処理により最大値要素を求めてもよい。例えば、最大値探索処理に対する入力ベクトルの全要素について、隣り合う要素同士で大小関係を比較し、小さい要素を除外する。この処理を繰り返し、最後に残った１つの要素が最大値要素であると判定することにより、最大値要素を求めることができる。
【０１８７】  （７）上記実施の形態では、ユーザ端末装置２００が予測結果を利用する処理の一例を述べたが、次に示すような処理を行ってもよい。ユーザは予測結果を受け取り復号した後、予測結果の正誤及び有用度に関する情報をデータ提供装置１００に送信してもよい。
【０１８８】  （８）上記実施の形態では、ユーザ端末装置２００が予測結果を利用する処理の一例を述べたが、次に示すような処理を行ってもよい。ユーザ端末装置２００は、複数のデータ演算装置３００、３１０、３２０から予測結果を受け取り復号した後、予測モデル変換システムに入力したユーザに関する情報（以下、ユーザ情報）と共に、予測結果の正誤及び有用度に関する情報をデータ提供装置１００に送信してもよい。
【０１８９】  （９）上記実施の形態では、データ提供装置１００が行う処理の一例を述べたが、次のような処理を行ってもよい。データ提供装置１００は、ユーザ端末装置２００から受け取ったユーザ情報と予測結果に関する情報との組、又は、予測結果に関する情報のみをもとに予測モデルの再学習を行ってもよい。そして、データ提供装置１００は、再学習により新しく作成された予測モデルを秘密分散法により分散させ、新たな分散化予測モデルとして複数のデータ演算装置３００、３１０、３２０に送信する。複数のデータ演算装置３００、３１０、３２０は、受信した新たな予測モデルを予測モデル格納部に格納し、予測モデルを更新する。
【０１９０】  （１０）上記実施の形態では、均一化パラメータを変換することで均一化処理と非線形処理を簡単な式を用いて計算でき、計算量を削減できたが、次のように予測処理を変換させてもよい。行列積演算や畳み込み演算と均一化処理はいずれも線形計算であるため、行列積演算と均一化処理、畳み込み演算と均一化処理を同時に計算することができる。データ提供装置１００は均一化処理と非線形処理を組み合わせる代わりに、行列積演算と均一化処理、畳み込み演算と均一化処理を組み合わせた新しい予測処理を生成し、データ演算装置３００、３１０、３２０へ配布する。この場合、行列積演算のパラメータである重み行列、畳み込みパラメータと均一化パラメータを用いて新しいパラメータを生成し、予測モデルを変換する。
【０１９１】  （１１）また、行列積演算と均一化処理、畳み込み演算と均一化処理を同時に計算可能な処理に変換した後、さらに非線形処理を組み合わせ、行列積演算と均一化処理と非線形処理、畳み込み演算と均一化処理と非線形処理を簡単な式を用いて計算可能な予測処理に変換してもよい。
【０１９２】  （１２）上記の実施の形態における各装置は、具体的には、マイクロプロセッサ、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）、ハードディスクユニット、ディスプレイユニット、キーボード、マウスなどから構成されるコンピュータシステムである。ＲＡＭ又はハードディスクユニットには、コンピュータプログラムが記録されている。マイクロプロセッサが、上記コンピュータプログラムに従って動作することにより、各装置は、その機能を達成する。ここでコンピュータプログラムは、所定の機能を達成するために、コンピュータに対する指令を示す命令コードが複数個組み合わされて構成されたものである。
【０１９３】  （１３）上記の実施の形態における各装置は、構成する構成要素の一部又は全部は、１個のシステムＬＳＩ（Ｌａｒｇｅ  Ｓｃａｌｅ  Ｉｎｔｅｇｒａｔｉｏｎ：大規模集積回路）から構成されていてもよい。システムＬＳＩは、複数の構成部を１個のチップ上に集積して製造された超多機能ＬＳＩであり、具体的には、マイクロプロセッサ、ＲＯＭ、ＲＡＭなどを含んで構成されるコンピュータシステムである。ＲＡＭには、コンピュータプログラムが記録されている。マイクロプロセッサが、コンピュータプログラムに従って動作することにより、システムＬＳＩは、その機能を達成する。
【０１９４】  また、上記の各装置を構成する構成要素の各部は、個別に１チップ化されていても良いし、一部又は全てを含むように１チップ化されてもよい。
【０１９５】  また、ここでは、システムＬＳＩとしたが、集積度の違いにより、ＩＣ（Ｉｎｔｅｇｒａｔｅｄ  ｃｉｒｃｕｉｔ）、ＬＳＩ、スーパーＬＳＩ、ウルトラＬＳＩと呼称されることもある。また、集積回路化の手法はＬＳＩに限るものではなく、専用回路又は汎用プロセッサで実現してもよい。ＬＳＩ製造後に、プログラムすることが可能なＦＰＧＡ（Ｆｉｅｌｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）、ＬＳＩ内部の回路セルの接続又は設定を再構成可能なリコンフィギュラブル・プロセッサを利用してもよい。
【０１９６】  さらには、半導体技術の進歩又は派生する別技術によりＬＳＩに置き換わる集積回路化の技術が登場すれば、当然、その技術を用いて機能ブロックの集積化を行ってもよい。バイオ技術の適用等が可能性としてありえる。
【０１９７】  （１４）上記の各装置を構成する構成要素の一部又は全部は、各装置に脱着可能なＩＣカード又は単体のモジュールから構成されているとしてもよい。ＩＣカード又は前記モジュールは、マイクロプロセッサ、ＲＯＭ、ＲＡＭなどから構成されるコンピュータシステムである。ＩＣカード又は前記モジュールは、上記の超多機能ＬＳＩを含んでいてもよい。マイクロプロセッサが、コンピュータプログラムに従って動作することにより、前記ＩＣカード又は前記モジュールは、その機能を達成する。このＩＣカード又はこのモジュールは、耐タンパ性を有してもよい。
【０１９８】  （１５）本開示は、上記に示す方法であるとしてもよい。また、これらの方法をコンピュータにより実現するコンピュータプログラムであるとしてもよいし、上記コンピュータプログラムからなるデジタル信号であるとしてもよい。
【０１９９】  また、本開示は、上記コンピュータプログラム又は上記デジタル信号をコンピュータ読み取り可能な記録媒体、例えば、フレキシブルディスク、ハードディスク、ＣＤ−ＲＯＭ、ＭＯ（Ｍａｇｎｅｔｏ−Ｏｐｔｉｃａｌ  ｄｉｓｃ）、ＤＶＤ、ＤＶＤ−ＲＯＭ、ＤＶＤ−ＲＡＭ、ＢＤ（Ｂｌｕ−ｒａｙ（登録商標）Ｄｉｓｃ）、半導体メモリなどに記録したものとしてもよい。また、これらの記録媒体に記録されている上記デジタル信号であるとしてもよい。
【０２００】  また、本開示は、上記コンピュータプログラム又は上記デジタル信号を、電気通信回線、無線又は有線通信回線、インターネットを代表とするネットワーク、データ放送等を経由して伝送するものとしてもよい。
【０２０１】  また、本開示は、マイクロプロセッサとメモリを備えたコンピュータシステムであって、メモリは、上記コンピュータプログラムを記録しており、マイクロプロセッサは、コンピュータプログラムに従って動作するとしてもよい。
【０２０２】  また、プログラム又はデジタル信号を記録媒体に記録して移送することにより、又はプログラム又は上記デジタル信号を、ネットワーク等を経由して移送することにより、独立した他のコンピュータシステムにより実施するとしてもよい。
【０２０３】  （１６）上記実施の形態及び上記変形例をそれぞれ組み合わせるとしてもよい。
【産業上の利用可能性】
【０２０４】  本開示は、ユーザの機微情報をデータ演算装置において平文で扱わず、プライバシを保護するシステム等に適用され得る。
【符号の説明】
【０２０５】  １００  データ提供装置  １０１  学習データ格納部  １０２  学習部  １０３  予測モデル格納部  １０４  予測モデル変換部  １０５  予測モデル分散部  １０６、２０６、３０３  通信部  ２００  ユーザ端末装置  ２０１  センシング部  ２０２  特徴量算出部  ２０３  特徴量分散部  ２０４  復号部  ２０５  予測結果利用部  ３００、３１０、３２０  データ演算装置  ３０１  分散化予測モデル格納部  ３０２  予測演算部  ４００  予測モデル変換システム
【図１】
2020145113.tif 000007
【図２】
2020145113.tif 000008
【図３】
2020145113.tif 000009
【図４】
2020145113.tif 000010
【図５】
2020145113.tif 000011
【図６】
2020145113.tif 000012
【図７】
2020145113.tif 000013
【図８】
2020145113.tif 000014
【図９】
2020145113.tif 000015
【図１０Ａ】
2020145113.tif 000016
【図１０Ｂ】
2020145113.tif 000017
【図１０Ｃ】
2020145113.tif 000018
【図１１】
2020145113.tif 000019
【図１２】
2020145113.tif 000020
【図１３】
2020145113.tif 000021
【図１４】
2020145113.tif 000022
【図１５】
2020145113.tif 000023
【図１６Ａ】
2020145113.tif 000024
【図１６Ｂ】
2020145113.tif 000025
【図１６Ｃ】
2020145113.tif 000026
【図１６Ｄ】
2020145113.tif 000027
【図１７】
2020145113.tif 000028
【図１８】
2020145113.tif 000029
【手続補正書】
【提出日】令和3年5月13日(2021.5.13)
【手続補正１】
【補正対象書類名】明細書
【補正対象項目名】０１２０
【補正方法】変更
【補正の内容】
【０１２０】
予測演算部３０２は、分散化予測モデルに、分散化特徴量を入力して、分散された前記予測モデルで予測処理を実行する。予測処理は、非線形処理を含む。予測処理は、行列積演算、データ分布の均一化＋非線形処理、均一化処理、最大値検索の４つの処理で実行される。従来の予測処理では、データ分布の均一化処理及び非線形処理は別々に実行されていたが、本実施の形態における予測処理では、予測モデル変換部１０４にて新しいパラメータｋを生成したことにより、均一化処理と非線形処理とを図８に示される簡単な式を用いて計算する（つまり、より簡単な処理で行う）ことが可能となる。より具体的には、本実施の形態では、非線形処理は、非線形処理に対する入力が０又は正に対応する数値であれば１に、前記入力が負に対応する数値であれば−１に対応する正の数値に変換する処理である。これにより、均一化処理及び非線形処理を別々で実行する場合よりもより計算量が削減される。また、図９に示す式で均一化処理を行う場合、ｓ’とｔ’を計算する過程で小数点以下の切り捨てを行っているため、計算誤差が発生してしまい、最終的な予測処理の精度が劣化してしまう。その反面、図８に示す式を用いて計算することで、計算誤差無く、つまり精度が劣化することなく予測処理を行うことが可能になる。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】０１２１
【補正方法】変更
【補正の内容】
【０１２１】
予測処理では、行列積演算、データ分布の均一化＋非線形処理が所定の回数繰り返し実行された後、最大値検索により予測結果（つまり、分散化予測結果）を得る。なお、図１３に示される予測処理のフローは一例であり、これに限定されない。
【手続補正３】
【補正対象書類名】明細書
【補正対象項目名】０１２９
【補正方法】変更
【補正の内容】
【０１２９】
続いて、最大値検索について説明する。最大値検索では、分散された入力ベクトルの全要素の中で最大値の要素を検索する。最大値検索では、例えば、最大値検索に対する入力ベクトルの全要素間で大小関係を比較し、比較結果の論理積を計算することにより実現される。より具体的には、最大値検索では、各要素について、他の全ての要素と個別に大小関係が比較される。比較結果は、０及び１の二値で表される。例えば、ある要素の値が他の要素の値と同じ、又は、他の要素の値よりも大きければ、比較結果は１で表され、ある要素の値が他の要素の値よりも小さければ、比較結果は０で表される。全要素について、他の要素との大小関係の比較結果は、比較表に格納される。この場合、全要素の中で最大値の要素は、他の要素との大小関係の比較結果が全て１になる。そのため、比較結果の論理積を計算した場合、論理積は、最大値の要素のみが１になり、それ以外の要素は全て０になる。この特性を利用することで、最大値の要素を抽出することができる。
【手続補正４】
【補正対象書類名】明細書
【補正対象項目名】０１３０
【補正方法】変更
【補正の内容】
【０１３０】
上述のように、本実施の形態では、行列積演算、データ分布の均一化＋非線形処理、及び、データ分布の均一化処理、最大値検索の４つの処理は、それぞれの処理に対する入力の和、積、大小関係の比較、論理積だけで構成され得る。例えば、非特許文献８（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)）では、２つの分散された値を復号することなく、それらの値の和、積、大小関係の比較、及び、論理積を計算できる。このことから、予測処理に非特許文献８の方式を用いることで、分散化予測モデルと分散化特徴量とを復号することなく、入力を秘匿したまま予測処理を行うことができる。
【手続補正５】
【補正対象書類名】明細書
【補正対象項目名】０１６５
【補正方法】変更
【補正の内容】
【０１６５】
次に、均一化＋非線形処理ステップＳ２０５３では、複数のデータ演算装置３００、３１０、３２０は、行列積演算ステップＳ２０５２で出力として得られた第一分散化ベクトルと、均一化パラメータを変換して得られた変換後の均一化パラメータとを用いて、第一分散化ベクトルに含まれる要素ごとに和を計算する（図８参照）。その後、各要素について、値が０又は正に対応する数値であれば１に、負に対応する数値であれば−１に対応する正の整数に変換する。これにより、均一化＋非線形処理ステップＳ２０５３では、出力として第二分散化特徴量である第二分散化ベクトルを得る。
【手続補正６】
【補正対象書類名】明細書
【補正対象項目名】０１６７
【補正方法】変更
【補正の内容】
【０１６７】
次に、複数のデータ演算装置３００、３１０、３２０は、均一化＋非線形処理ステップＳ２０５３で出力として得られた第二分散化ベクトルと、分散化予測モデルとを用いて、行列積演算ステップＳ２０５２を実行する。続いて、複数のデータ演算装置３００、３１０、３２０は、行列積演算ステップＳ２０５２で得られた第三分散化ベクトルを入力として、均一化＋非線形処理ステップＳ２０５３を実行する。これにより、第四分散化ベクトルが得られる。
【手続補正７】
【補正対象書類名】明細書
【補正対象項目名】０１７１
【補正方法】変更
【補正の内容】
【０１７１】
最後に、最大値検索ステップＳ２０５７では、均一化処理ステップＳ２０５６で得られた第六分散化ベクトルのうち最大値の要素を検索する。これにより、分散化予測結果が得られる。
【手続補正８】
【補正対象書類名】明細書
【補正対象項目名】０１７７
【補正方法】変更
【補正の内容】
【０１７７】
（４）上記実施の形態では、予測処理の一例として行列積演算、均一化処理、均一化＋非線形処理、最大値検索処理を用いた処理を示したが、畳み込み（Ｃｏｎｖｏｌｕｔｉｏｎ）やプーリングといった処理を行ってもよい。これらの処理を用いた予測処理の一例を図１７に示す。図１７も一例であり、それぞれの処理を行う回数や順番はこれに限定されない。
【手続補正９】
【補正対象書類名】明細書
【補正対象項目名】０１８０
【補正方法】変更
【補正の内容】
【０１８０】
次に、ステップＳ３０３では、複数のデータ演算装置３００、３１０、３２０は、ステップＳ３０２で出力として得られた第一分散化ベクトルと、均一化パラメータを変換して得られた変換均一化パラメータとを用いて、均一化＋非線形処理を行い、第二分散化ベクトルを得る。
【手続補正１０】
【補正対象書類名】明細書
【補正対象項目名】０１８２
【補正方法】変更
【補正の内容】
【０１８２】
次に、ステップＳ３０５では、複数のデータ演算装置３００、３１０、３２０は、ステップＳ３０４で出力として得られた第三分散化ベクトルに対してプーリングの処理を行い、第四分散化ベクトルを得る。プーリングには、図１７のように、決められた領域の最大（Ｍａｘ  Ｐｏｏｌｉｎｇ）、平均（Ａｖｅｒａｇｅ  Ｐｏｏｌｉｎｇ）又は合計（Ｓｕｍ  Ｐｏｏｌｉｎｇ）を求める処理があり、全てのプーリング処理で最大、平均、平均等のいずれかのみを計算する処理でもよいし、組み合わせてもよい。
【手続補正１１】
【補正対象書類名】明細書
【補正対象項目名】０１８４
【補正方法】変更
【補正の内容】
【０１８４】
本実施の形態では、ステップＳ３０２からステップＳ３０６を所定の回数繰り返したのち（ステップＳ３０７）、最後の均一化＋非線形処理の出力である第ｎ分散化ベクトルと分散化予測モデルとを用いて行列積演算を計算し（ステップＳ３０８）、その出力と均一化パラメータとを用いて均一化処理を行い（ステップＳ３０９）、最後に最大値検索処理を行う（ステップＳ３１０）。これにより、分散化予測結果が得られる。
【手続補正１２】
【補正対象書類名】明細書
【補正対象項目名】０１８５
【補正方法】変更
【補正の内容】
【０１８５】
（５）上記実施の形態では、予測演算部３０２における最大値検索処理の一例として、各要素について、他の全ての要素と大小関係を比較し、比較結果の理論積が１となる要素が最大値の要素であると判定する処理方法を挙げたが、これに限定されない。例えば、最大値検索処理では、以下の処理により最大値の要素（以下、最大値要素）を求めてもよい。最大値検索処理に対する入力ベクトルの複数の要素のうち１つ目の要素（要素Ａとする）を暫定的な最大値要素とし、要素Ａと残りの要素との大小関係を順次比較する。暫定的な最大値要素である要素Ａよりも大きい要素（要素Ｂとする）が見つかった場合は、要素Ｂを新しい暫定的な最大値要素とし、要素Ｂと残りの要素との大小関係を順次比較する。全要素と比較した段階での暫定的な最大値要素が要素Ｂであるとすると、要素Ｂの数値と番号とを最大値検索処理の出力とする。
【手続補正１３】
【補正対象書類名】明細書
【補正対象項目名】０１８６
【補正方法】変更
【補正の内容】
【０１８６】
（６）また、予測演算部３０２における最大値検索処理は、以下の処理により最大値要素を求めてもよい。例えば、最大値検索処理に対する入力ベクトルの全要素について、隣り合う要素同士で大小関係を比較し、小さい要素を除外する。この処理を繰り返し、最後に残った１つの要素が最大値要素であると判定することにより、最大値要素を求めることができる。
【手続補正１４】
【補正対象書類名】明細書
【補正対象項目名】０１９０
【補正方法】変更
【補正の内容】
【０１９０】
（１０）上記実施の形態では、均一化パラメータを変換することで均一化処理と非線形処理を簡単な式を用いて計算でき、計算量を削減できたが、次のように予測処理を変換させてもよい。行列積演算や畳み込み演算と均一化処理はいずれも線形計算であるため、行列積演算と均一化処理、畳み込み演算と均一化処理を同時に計算することができる。データ提供装置１００は均一化処理と非線形処理を組み合わせる代わりに、行列積演算と均一化処理、畳み込み演算と均一化処理を組み合わせた新しい予測モデルを生成し、データ演算装置３００、３１０、３２０へ配布する。この場合、行列積演算のパラメータである重み行列、畳み込みパラメータと均一化パラメータを用いて新しいパラメータを生成し、予測モデルを変換する。
【国際調査報告】
2020145113.tif 000030
2020145113.tif 000031
2020145113.tif 000032
2020145113.tif 000033
2020145113.tif 000034