(57)【要約】【課題】  準同型暗号を用いたニューラルネットワークのシステムにおいて、システム負荷を抑制する技術を提供する。【解決手段】  推論装置は、取得部と、設定部と、推論部とを備える。取得部は、活性化関数に非線形関数を採用した第１ニューラルネットワークを用いて、ニューラルネットワークに含まれる各ニューロン間の結合の重み及びバイアスの少なくとも一方を含むパラメータを調整した学習済みモデルを取得する。設定部は、学習済みモデルにしたがって、活性化関数に非線形関数の近似多項式を採用した第２ニューラルネットワークにパラメータを設定する。推論部は、暗号化されたデータが入力されたとき、第２ニューラルネットワークを用いて、暗号化されたデータを暗号化したまま推論処理を実行する。【選択図】  図２
2019046460.tif 000002
【特許請求の範囲】
【請求項１】
活性化関数に非線形関数を採用した第１ニューラルネットワークを用いて、ニューラルネットワークに含まれる各ニューロン間の結合の重み及びバイアスの少なくとも一方を含むパラメータを調整した学習済みモデルを取得する取得部と、
前記学習済みモデルにしたがって、活性化関数に前記非線形関数の近似多項式を採用した第２ニューラルネットワークにパラメータを設定する設定部と、
暗号化されたデータが入力されたとき、前記第２ニューラルネットワークを用いて、前記暗号化されたデータを暗号化したまま推論処理を実行する推論部と、
を備えることを特徴とする推論装置。
【請求項２】
前記暗号化されたデータは、
準同型暗号の暗号化処理及び復号処理を実行するクライアント装置から入力され、
前記推論部は、
前記準同型暗号の演算を用いて、前記推論処理を実行し、
前記推論装置は、さらに、
前記推論処理により得られる暗号化された推論結果を前記クライアント装置に出力する出力部
を備えることを特徴とする請求項１に記載の推論装置。
【請求項３】
前記第１ニューラルネットワーク及び前記第２ニューラルネットワークは、畳み込みニューラルネットワークである
ことを特徴とする請求項１または２に記載の推論装置。
【請求項４】
学習装置と、推論装置とを備える推論システムであって、
前記学習装置は、
活性化関数に非線形関数を採用した第１ニューラルネットワークを用いて、ニューラルネットワークに含まれる各ニューロン間の結合の重み及びバイアスの少なくとも一方を含むパラメータを調整した学習済みモデルを作成する作成部を備え、
前記推論装置は、
前期学習済みモデルを取得する取得部と、
前記学習済みモデルにしたがって、活性化関数に前記非線形関数の近似多項式を採用した第２ニューラルネットワークにパラメータを設定する設定部と、
暗号化されたデータが入力されたとき、前記第２ニューラルネットワークを用いて、前記暗号化されたデータを暗号化したまま推論処理を実行する推論部と、
を備えることを特徴とする推論システム。
【請求項５】
前記推論システムは、さらに、クライアント装置を備え、
前記推論装置は、さらに、
前記推論処理により得られる暗号化された推論結果を前記クライアント装置に出力する第１出力部を備え、
前記推論部は、
前記準同型暗号の演算を用いて、前記推論処理を実行し、
前記クライアント装置は、
推論処理の対象のデータに対して、準同型暗号の暗号化処理を実行する暗号化部と、
前記暗号化部により得られる前記暗号化されたデータを前記推論装置に出力する第２出力部と、
前記暗号化された推論結果が入力されたとき、前記暗号された推論結果に対して、準同型暗号の複合処理を実行する復号部と、
を備えることを特徴とする請求項４に記載の推論システム。
【請求項６】
コンピュータにより実行される推論方法であって、
活性化関数に非線形関数を採用した第１ニューラルネットワークを用いて、ニューラルネットワークに含まれる各ニューロン間の結合の重み及びバイアスの少なくとも一方を含むパラメータを調整した学習済みモデルを取得し、
前記学習済みモデルにしたがって、活性化関数に前記非線形関数の近似多項式を採用した第２ニューラルネットワークにパラメータを設定し、
暗号化されたデータが入力されたとき、前記第２ニューラルネットワークを用いて、前記暗号化されたデータを暗号化したまま推論処理を実行する、
ことを特徴とする推論方法。
【請求項７】
活性化関数に非線形関数を採用した第１ニューラルネットワークを用いて、ニューラルネットワークに含まれる各ニューロン間の結合の重み及びバイアスの少なくとも一方を含むパラメータを調整した学習済みモデルを取得し、
前記学習済みモデルにしたがって、活性化関数に前記非線形関数の近似多項式を採用した第２ニューラルネットワークにパラメータを設定し、
暗号化されたデータが入力されたとき、前記第２ニューラルネットワークを用いて、前記暗号化されたデータを暗号化したまま推論処理を実行する、
処理をコンピュータに実行させることを特徴とする推論プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、推論装置、及び推論方法に関する。
【背景技術】
【０００２】
サーバ・クライアントモデルにおいて、サーバ装置側でデータを処理するとき、個人情報などの機密性の高い情報の流出を防止するために、サーバ・クライアント間で暗号化したデータを送受信する技術が知られている。
【０００３】
サーバ・クライアントモデルでは、サーバ装置とクライアント装置との間でデータを暗号化して送受信することが行われている。この場合には、サーバ装置は、クライアント装置から受信した暗号化されたデータを複合してから各種処理を実行する。そして、サーバ装置は、処理結果を暗号化してクライアント装置に送信する。クライアント装置は、サーバ装置から受信した暗号化された処理結果を複合して平文の処理結果を得る。
【０００４】
さらに、情報の流出を防止するために、サーバ装置において、暗号化したままのデータを複合せずに処理することが行われている。データを暗号化したまま処理する技術としては、準同型暗号が知られている。
【０００５】
サーバ装置は、準同型暗号を用いることにより、データを暗号化したままの状態で処理することが可能になる。また、クライアント装置は、サーバ装置から処理後の暗号化されたデータを取得し、取得した暗号化されたデータを復号する。これにより、クライアント装置は、データを平文で処理したときと同じ処理結果を得ることができる。以下の説明では、暗号化したままの状態を単に暗号化状態ともいう。
【０００６】
サーバ・クライアントモデルを用いた処理を求められている技術分野の一つに、ニューラルネットワーク（Ｎｅｕｒａｌ  Ｎｅｔｗｏｒｋ：ＮＮ）を用いた推論処理がある。これは、ニューラルネットワークの学習済みモデルのパラメータの規模が大きくなり、推論処理で実行する演算をクライアント装置の資源で実行するのが困難になってきたためである。したがって、サーバ・クライアントモデルを用いることにより、大規模な演算が可能であるサーバ装置の資源を利用して、サーバ装置で推論処理を実行することが求められている。
【０００７】
ニューラルネットワークとは、ニューロンを複数結合し、入力層、中間層、及び出力層を構成するものである。ニューラルネットワークは、中間層を複数含んでいてもよい。また、中間層を複数含むニューラルネットワークを用いて機械学習することを、ディープラーニングという。ディープラーニングは、画像、文字、及び音声などの認識処理に用いられている。
【０００８】
関連する技術として、暗号文処理装置は、第１のテキストデータが第１の順で多項式化されて第１の公開鍵で暗号化された第１の多項式を取得する。また、暗号文処理装置は、第１のテキストデータの各成分の２乗値ベクトルデータが第１の順で多項式化されて第１の公開鍵で暗号化された第１の２乗値多項式を取得する。さらに、暗号文処理装置は、第２のテキストデータが第２の順で多項式化されて第１の公開鍵で暗号化された第２の多項式と、第２のテキストデータの各成分の２乗値ベクトルデータが第２の順で多項式化されて第１の公開鍵で暗号化された第２の２乗値多項式とを取得する。そして、暗号文処理装置は、第１の多項式および第１の２乗値多項式と、第２の多項式および第２の２乗値多項式とを用いて、第２のテキストデータが第１のテキストデータに含まれるかを判定する技術が知られている。
【０００９】
関連する他の技術として、サーバ装置は、活性化関数以外の演算部分について、準同型暗号を用いてデータを暗号化したまま演算を実行する。また、クライアント装置は、活性化関数に係る演算部分について、データを複合して演算を実行する。サーバ装置は、活性化関数の演算をするたびに、クライアント側に演算結果を問い合わせるという技術が知られている。
【００１０】
関連する他の技術として、準同型暗号のなかには、Ｓｏｍｅｗｈａｔ準同型暗号（Ｓｏｍｅｗｈａｔ  Ｈｏｍｏｍｏｒｐｈｉｃ  Ｅｎｃｒｙｐｔｉｏｎ：ＳＨＥ）という種類がある。Ｓｏｍｅｗｈａt準同型暗号は、所定回数の加算と乗算が暗号化状態で成立するという準同型暗号である。例えば、ベクトルの内積の計算は、一次の乗算とそれらの複数の加算で構成されるので、Ｓｏｍｅｗｈａｔ準同型暗号が利用できる。そこで、ニューラルネットワークに含まれる非線形関数を、Ｓｏｍｅｗｈａｔ準同型暗号で演算することが可能な回数の加算及び乗算で表現された線形関数に近似する。これにより、ニューラルネットワークで実行される各種処理を、データが暗号化された状態で実行することができるという技術が知られている（例えば、特許文献１、非特許文献１、及び非特許文献２参照）。
【先行技術文献】
【特許文献】
【００１１】
【特許文献１】特開２０１５−１８４５９４号公報
【特許文献２】米国特許出願公開第２０１６／０３５０６４８号明細書
【非特許文献】
【００１２】
【非特許文献１】C. Orlandi, A. Piva, and M. Barni  著、Research Article Oblivious Neural Network Computing via Homomorphic Encryption、インターネット＜http://clem.dii.unisi.it/~vipp/files/publications/S1687416107373439.pdf＞
【発明の概要】
【発明が解決しようとする課題】
【００１３】
前述した推論技術では、ニューラルネットワークを用いたシステムにおいて、準同型暗号を用いて演算を実行するため、演算量が増大し、システム負荷が大きくなることがある。
【００１４】
本発明は、一側面として、準同型暗号を用いたニューラルネットワークのシステムにおいて、システム負荷を抑制する技術を提供する。
【課題を解決するための手段】
【００１５】
本明細書で開示する推論装置のひとつに、取得部と、設定部と、推論部とを備える推論装置がある。取得部は、活性化関数に非線形関数を採用した第１ニューラルネットワークを用いて、ニューラルネットワークに含まれる各ニューロン間の結合の重み及びバイアスの少なくとも一方を含むパラメータを調整した学習済みモデルを取得する。設定部は、学習済みモデルにしたがって、活性化関数に非線形関数の近似多項式を採用した第２ニューラルネットワークにパラメータを設定する。推論部は、暗号化されたデータが入力されたとき、第２ニューラルネットワークを用いて、暗号化されたデータを暗号化したまま推論処理を実行する。
【発明の効果】
【００１６】
１実施態様によれば、準同型暗号を用いたニューラルネットワークのシステムにおいて、システム負荷を抑制することができる。
【図面の簡単な説明】
【００１７】
【図１】ニューラルネットワークの一実施例の構成を示す図である。
【図２】ニューラルネットワークのシステムの一実施例を示す機能ブロック図である。
【図３】ニューラルネットワークのシステムにおける処理の一例を示すフローチャートである。
【図４】ニューラルネットワークに含まれるニューロンの一実施例を示す図である。
【図５】非線形関数の近似多項式の一実施例を示す図である。
【図６】コンピュータ装置の一実施例を示すブロック図である。
【図７】ニューラルネットワークを用いた画像認識処理の正答率を示す図である。
【発明を実施するための形態】
【００１８】
［実施形態］
実施形態の推論装置について説明する。
【００１９】
図１は、ニューラルネットワークの一実施例の構成を示す図である。
図１を参照して、ニューラルネットワークで行われる演算処理について説明する。
【００２０】
入力層のニューロンの出力は、それぞれ重み係数ｗ１で重み付けされて、中間層の各ニューロンに入力される。中間層のニューロンは、入力された各重み付きの値の総和をとることにより、ａ１、ａ２、ａ３を算出する。例えば、ａ１は、式（１）で算出される。
ａ１＝ｘ１×ｗ１（１１）＋ｘ２×ｗ１（１２）      ・・・（１）
【００２１】
また、中間層のニューロンの出力は、それぞれ重み係数ｗ２で重み付けされて、各出力層に入力される。出力層の各ニューロンは、入力された各重み付きの値の総和をとることにより、ｙ１、ｙ２を算出する。例えば、ｙ１は、式（２）で算出される。
ｙ１＝σ（ａ１）×ｗ２（１１）＋σ（ａ２）×ｗ２（１２）
＋σ（ａ３）×ｗ２（１３）                    ・・・（２）
【００２２】
中間層の各ニューロンでは、図１に示すように、演算結果ａ１、ａ２、ａ３に対して活性化関数σを用いて所定の演算を実行する。活性化関数は、入力信号の総和を出力信号に変換する関数である。
【００２３】
ニューラルネットワークにおいて、活性化関数には、非線形関数が用いられる。これは、活性化関数に線形関数を用いた場合、出力が線形結合の形となる。すると、中間層を複数含むニューラルネットワークが中間層のないニューラルネットワークと同等になってしまうためである。
【００２４】
活性化関数の種類には、式（３）に示すシグモイド（Ｓｉｇｍｏｉｄ）関数、及び式（４）に示すＲｅＬＵ（Ｒｅｃｔｉｆｉｅｄ  Ｌｉｎｅａｒ  Ｕｎｉｔ）関数などがある。
σ（ｕ）＝１／（１＋ｅｘｐ（−ｕ））              ・・・（３）
σ（ｕ）＝ｕ（ｕ＞０）、０（ｕ≦０）              ・・・（４）
【００２５】
ニューラルネットワークのシステムを用いた推論処理では、情報の流出を防止するため、準同型暗号を用いることにより、データを暗号化した状態で処理することが考えられる。
しかし、上述したように、ニューラルネットワークの演算には、非線形関数の演算が含まれている。したがって、乗算と加算しかできない準同型暗号では、ニューラルネットワークの演算処理を実行することができない。
【００２６】
そこで、ニューラルネットワークに含まれる活性化関数に、非線形関数の近似多項式を用いることにより、ニューラルネットワークの演算を準同型暗号上で実行することが考えられる。しかしながら、学習装置と、推論装置とを含む、ニューラルネットワークのシステムにおいて、活性化関数に準同型暗号を用いると、システム負荷が増大するという問題があった。
【００２７】
上述の問題を解決するため、実施形態の推論装置は、活性化関数に非線形関数を採用したニューラルネットワークを用いて調整された学習済みモデルのパラメータを、活性化関数に非線形関数の近似多項式を採用したニューラルネットワークに設定する。そして、推論装置は、推論処理を実行する。以下の説明では、活性化関数に非線形関数の近似多項式を採用したニューラルネットワークのことを単に第２ニューラルネットワークともいう。
【００２８】
これにより、実施形態の推論装置は、学習装置で実行される機械学習の負荷を小さくする。すなわち、実施形態の推論装置は、情報の流出を防止するために、推論処理に準同型暗号を用いたニューラルネットワークのシステムにおいて、システム負荷を抑制することができる。
【００２９】
準同型暗号の方式は、近似多項式を計算可能な準同型暗号であればよい。近似多項式が四則演算を含む場合には、暗号文の乗算と加算とを演算可能なＳｏｍｅｗｈａｔ準同型暗号、または完全準同型暗号などを用いてもよい。また、近似多項式が乗算及び加算のみを含む場合には、暗号文の加算を演算可能な加法準同型暗号、Ｓｏｍｅｗｈａｔ準同型暗号、または完全準同型暗号を用いてもよい。
【００３０】
なお、Ｓｏｍｅｗｈａｔ準同型暗号、または完全準同型暗号は、乗算と加算とが可能なので、任意の演算を実行することが可能である。また、加法準同型暗号では、複数回の加算処理をすることにより、乗算を実行することが可能である。
【００３１】
図２は、ニューラルネットワークのシステムの一実施例を示す機能ブロック図である。
図２を参照して、実施形態のニューラルネットワークのシステム（推論システム）について説明する。以下の説明では、画像認識処理に用いられるニューラルネットワークを一例として説明する。これに限らず、実施例のニューラルネットワークのシステムは、会話、運転支援、及び予測などの他の処理にも適用可能である。
【００３２】
ニューラルネットワークのシステム１００は、学習装置１と、推論装置２と、クライアント装置３とを含む。学習装置１は、例えば、推論処理のサービス提供者が有する情報処理装置である。また、推論装置２は、例えば、サーバ・クライアントモデルにおいてサーバ装置として利用される情報処理装置である。そして、クライアント装置３は、例えば、推論処理を利用するユーザが有する情報処理装置である。
学習装置１と、推論装置２と、クライアント装置３とは、例えば、ネットワークを介して互いに通信可能に接続される。
【００３３】
学習装置１は、受付部１1と、作成部１２とを含む。
受付部１１は、例えば、入力値に対応する目標値を示す組合せのセットが格納された学習セットの入力を受け付ける。
【００３４】
作成部１２は、活性化関数に非線形関数を採用した第１ニューラルネットワークを用いて、ニューラルネットワークに含まれる各ニューロン間の結合の重み及びバイアスの少なくとも一方を含むパラメータを調整した学習済みモデル４０を作成する。学習済みモデル４０に含まれるパラメータは、入力値を重み付けするための各ニューロン間の結合の重みと、出力信号の活性化を偏らせるためのバイアスとの少なくとも一方を含む。以下の説明では、活性化関数に非線形関数を採用した第１ニューラルネットワークのことを単に第１ニューラルネットワークともいう。
【００３５】
作成部１２は、受付部１１により入力が受け付けられた学習セットを用いて、第１ニューラルネットワークのパラメータを調整する教師あり学習を実行する。作成部１２は、例えば、学習セットを用いて学習処理をするとき、誤差逆伝播を用いて、入力値に対して対応する目標値が出力されるように、ニューラルネットワークのパラメータを繰り返し調整する。これにより、作成部１２は、調整済みのパラメータを学習済みモデル４０として出力する。
【００３６】
なお、作成部１２は、正解のないデータを読み込み、第１ニューラルネットワークのパラメータを調整する教師なし学習を実行し、学習済みモデル４０を作成してもよい。また、作成部１２は、将来の価値を最大化するように、第１ニューラルネットワークのパラメータを調整する強化学習を実行し、学習済みモデル４０を作成してもよい。学習装置３は、教師あり学習、教師なし学習、及び強化学習の少なくとも一つを実行してもよい。
【００３７】
上述のように、学習装置１は、作成部１２において、活性化関数に非線形関数を採用した第１ニューラルネットワークを用いて学習処理を実行している。これは、機械学習は、学習装置１で処理されるものであり、ネットワーク及びサーバ装置に情報を送信することがないためである。したがって、学習装置１は、ネットワーク及びサーバ装置上における情報の流出の防止よりも、学習処理における演算量を少なくすることを優先している。
【００３８】
すなわち、実施形態のニューラルネットワークのシステムでは、学習処理において、第１ニューラルネットワークを用いて学習処理における演算量を少なくする。学習処理は、誤差逆伝播を用いてパラメータの調整を繰り返す演算を実行するため、正伝播で処理される推論処理よりも演算量が多くなる。したがって、実施形態のニューラルネットワークのシステムでは、学習処理において第１ニューラルネットワークを用いる。これにより、実施形態のニューラルネットワークのシステムは、繰り返しの演算の一回あたりの演算量を少なくし、ニューラルネットワークのシステム負荷を効率よく抑制する。
【００３９】
推論装置２は、取得部２１と、設定部２２と、推論部２３と、出力部２４と、記憶部２５とを含む。記憶部２５は、学習済みモデル４０を記憶する。
取得部２１は、活性化関数に非線形関数を採用した第１ニューラルネットワークを用いて、ニューラルネットワークに含まれる各ニューロン間の結合の重み及びバイアスの少なくとも一方を含むパラメータを調整した学習済みモデル４０を取得する。そして、取得部２１は、取得した学習済みモデル４０を記憶部２５に記憶させてもよい。
【００４０】
設定部２２は、学習済みモデル４０にしたがって、活性化関数に非線形関数の近似多項式を採用した第２ニューラルネットワークにパラメータを設定する。すなわち、設定部２２は、第２ニューラルネットワークに含まれる各ニューロン間の結合の重み及びバイアスの少なくとも一方を設定する。
【００４１】
推論部２３は、暗号化されたデータが入力されたとき、第２ニューラルネットワークを用いて、暗号化されたデータを暗号化したまま推論処理を実行する。このとき、推論部２３は、暗号化されたデータを暗号化されたまま用いて準同型暗号の演算を行うことにより、推論処理を実行する。暗号化されたデータは、準同型暗号を用いて、暗号化処理及び復号処理を実行するクライアント装置３から入力される。
【００４２】
第１ニューラルネットワーク及び第２ニューラルネットワークは、例えば、畳み込み演算を実行する畳み込みニューラルネットワーク（Ｃｏｎｖｏｌｕｔｉｏｎａｌ  Ｎｅｕｒａｌ  Ｎｅｔｗｏｒｋ：ＣＮＮ）である。畳み込みニューラルネットワークは、二次元的な入力に対して、フィルタによる畳み込み処理を実行することにより、入力データの特徴を抽出する畳み込み層、圧縮処理を行うプーリング層、及び最終段の全結合層を用いて推論処理を実行する。畳み込みニューラルネットワークは、主に画像認識に用いられる。
【００４３】
推論部２３は、畳み込みニューラルネットワークを用いた演算を実行する。畳み込み演算は、デジタル信号処理において、加算及び乗算で表現できる。これにより、推論部１は、加算及び乗算のみを実行できる準同型暗号を用いて推論処理を実行することができる。なお、推論部２３は、畳み込みニューラルネットワークに限らず、準同型暗号で計算可能な範囲内で、他のニューラルネットワークを用いた演算を実行してもよい。
【００４４】
他のニューラルネットワークには、例えば、Ｒｅｃｕｒｒｅｎｔ  Ｎｅｕｒａｌ  Ｎｅｔｗｏｒｋ（ＲＮＮ）、及び全結合型（フィードフォワード）などの教師ありニューラルネットワークがある。また、他のニューラルネットワークには、オートエンコーダ、及びボルツマンマシンなどの教師なしニューラルネットワークがある。
【００４５】
準同型暗号には、前述したように、加法準同型暗号、ｓｏｍｅｗｈａｔ準同型暗号、及び完全準同型暗号などの種類がある。加法準同型暗号は、加算のみが実行できる。ｓｏｍｅｗｈａｔ準同型暗号は、加算及び有限回数の乗算を実行できる。完全準同型暗号は、加算及び乗算が実行できる。したがって、完全準同型暗号は、加算及び乗算を組み合わせることで、任意の処理を実行できる。処理速度は、加法準同型暗号が最も速く、ｓｏｍｅｗｈａｔ準同型暗号、完全準同型暗号の順で遅くなる。
【００４６】
推論部２３では、推論処理の処理速度の向上及び処理負荷の抑制を優先するために加法準同型暗号を用いるとき、乗算の代わりに複数回の加算を実行してもよい。これにより、推論部２３は、加法準同型暗号を用いて、畳み込みニューラルの演算を実行することができる。
【００４７】
推論部２３では、畳み込みニューラルネットワーク及び他のニューラルネットワークを実行するとき、ｓｏｍｅｗｈａｔ準同型暗号を用いてもよい。推論部２３では、ｓｏｍｅｗｈａｔ準同型暗号を用いるとき、推論処理の処理速度の向上及び処理負荷の抑制と、処理精度とのどちらを優先するかにより、第２ニューラルネットワークの演算に含まれる非線形関数の近似多項式の次数及び加算回数が調整してもよい。
【００４８】
すなわち、第２ニューラルネットワークの演算に含まれる非線形関数の近似多項式は、推論処理の処理速度の向上及び処理負荷の抑制を優先するとき、次数を低くする及び加算回数を少なくする、の少なくとも一方の調整がされる。また、第２ニューラルネットワークの演算に含まれる非線形関数の近似多項式は、推論処理の処理精度の向上を優先するとき、次数を高くする及び加算回数を多くする、の少なくとも一方の調整がされる。近似多項式の次数を高くし、加算回数を多くすると、近似多項式がより元の非線形関数に近似するので、推論処理の精度が向上する。
【００４９】
推論部２３では、畳み込みニューラルネットワークと比較して、複雑な演算が含まれる他のニューラルネットワークを実行するとき、完全準同型暗号を用いてもよい。また、推論部２３では、畳み込みニューラルネットワークを実行するときにおいても、完全準同型暗号を用いてもよい。
【００５０】
推論部２３は、暗号化されたデータで暗号化したまま推論処理を実行した結果、暗号化された状態の推論結果を出力する。推論部２３では、準同型暗号を用いて暗号化されたデータを暗号化したまま推論処理するので、推論結果も暗号化された状態で出力される。
出力部２４は、推論処理により得られる暗号化された推論結果をクライアント装置３に出力する。
【００５１】
クライアント装置３は、取得部３１と、暗号化部３２と、複合部３３と、出力部３４と、記憶部３５とを含む。記憶部３５は、推論結果５０を記憶する。
取得部３１は、推論処理の対象のデータを取得する。推論処理の対象のデータとは、例えば、画像、文字、及び音声などの認識対象のデータである。
暗号化部３２は、推論処理の対象のデータに対して、準同型暗号の暗号化処理を実行する。これにより、暗号化部３２は、暗号化されたデータを出力する。
【００５２】
複合部３３は、暗号化された推論結果が入力されたとき、暗号化された推論結果に対して、準同型暗号の複合処理を実行する。そして、複合部３３は、複合した推論結果５０を記憶部３５に記憶させてもよい。
出力部３４は、暗号化部３２により得られる暗号化されたデータを推論装置２に出力する。出力部３４は、推論結果５０を外部に出力してもよい。
【００５３】
図３は、ニューラルネットワークのシステムにおける処理の一例を示すフローチャートである。図４は、ニューラルネットワークに含まれるニューロンの一実施例を示す図である。図５は、非線形関数の近似多項式の一実施例を示す図である。
【００５４】
図３から図５を参照して、ニューラルネットワークのシステムにおける処理について説明する。ニューラルネットワークのシステムにおける処理は、例えば、学習装置１、推論装置２、及びクライアント装置３のプロセッサによって実行される。以下の説明では、学習処理１のプロセッサ、推論処理２のプロセッサ、及びクライアント装置３のプロセッサのことを、単に学習装置１、推論装置２、及びクライアント装置３ともいう。
【００５５】
図３を参照して説明する。
学習装置１は、学習セットが入力されると（Ｓ１０１）、学習セットの入力を受け付ける（Ｓ１０２）。そして、学習装置１は、活性化関数に非線形関数を採用した第１ニューラルネットワークを用いて、ニューラルネットワークに含まれる各ニューロン間の結合の重み及びバイアスの少なくとも一方を含むパラメータを調整した学習済みモデル４０を取得する（Ｓ１０３）。そして、学習装置１は、作成した学習済みモデル４０を推論装置に出力する（Ｓ１０４）。
【００５６】
図４及び図５を参照して説明する。
学習装置１における学習済みモデル４０の作成処理では、暗号化されていない学習セットのデータを用いる。したがって、学習装置１は、例えば、図４（ａ）に示すように、各ニューロンの活性化関数σに非線形関数を採用することができる。例えば、活性化関数σとしてシグモイド関数を採用した場合には、学習装置１は、式（３）に対応する図５（ａ）の点線で示す関数を用いて学習済みモデル４０を作成する。活性化関数σとしてＲｅＬＵ関数を採用した場合には、学習装置１は、式（４）に対応する図５（ｂ）の点線で示す関数を用いて学習済みモデル４０を作成する。
【００５７】
図３を参照して説明する。
推論装置２は、学習済みモデル４０を取得する（Ｓ１０５）。このとき、推論装置２は、学習済みモデル４０を記憶部２５に記憶させてもよい。そして、推論装置２は、学習済みモデル４０にしたがって、活性化関数に非線形関数の近似多項式を採用した第２ニューラルネットワークのパラメータを設定する（Ｓ１０６）。推論装置２は、推論処理が実行可能となったことをクライアント装置３に通知する（Ｓ１０７）。
【００５８】
クライアント装置３は、推論装置２から推論が可能になったことを通知されると、推論処理の対象のデータの入力を受け付ける。そして、クライアント装置３は、推論処理の対象のデータが入力されると（Ｓ１０８）、推論処理の対象のデータを取得する（Ｓ１０９）。推論処理の対象のデータは、例えば、画像、文字、及び音声などである。推論処理の対象のデータは、例えば、カメラなどの撮影装置、キーボードなどの入力装置、及びマイクなどの集音装置を用いて、ユーザにより入力されてもよい。以下の説明では、推論処理の対象のデータのことを単に対象のデータともいう。
【００５９】
クライアント装置３は、対象のデータに対して、準同型暗号の暗号化処理を実行する（Ｓ１１０）。そして、クライアント措置３は、暗号化された対象のデータを推論装置２に出力する（Ｓ１１１）。以下の説明において、暗号化された対象のデータのことを単に暗号化されたデータともいう。
推論装置２は、暗号化されたデータが入力されたとき、第２ニューラルネットワークを用いて、暗号化されたデータを暗号化したまま推論処理を実行する（Ｓ１１２）。そして、推論装置２は、推論処理により得られる暗号化された推論結果をクライアント装置に出力する（Ｓ１１３）。
【００６０】
図４及び図５を参照して説明する。
推論装置２における推論処理では、暗号化されたデータを暗号化したまま演算する処理をする。したがって、推論装置２は、例えば、図４（ｂ）に示すように、各ニューロンの活性化関数として非線形関数である活性化関数σの近似多項式ｆを採用する。例えば、活性化関数としてシグモイド関数の近似多項式ｆを採用した場合には、推論装置２は、下記式（５）に対応する図５（ａ）の実線で示す関数を用いて推論処理を実行する。
【００６１】
ｆｓｉｇ（ｘ）＝８＊１０−１５ｘ６＋２＊１０−５ｘ５−１＊１０−１２ｘ４−０．００２８ｘ３＋４＊１０−１１ｘ２＋０．１６７２ｘ＋０．５      ・・・（５）
【００６２】
活性化関数としてＲｅＬＵ関数の近似多項式ｆを採用した場合には、推論装置２は、下記式（６）に対応する図５（ｂ）の実線で示す関数を用いて推論処理を実行する。
ｆｒｅ（ｘ）＝５＊１０−８ｘ６−９＊１０−２０ｘ５−８＊１０−５ｘ４＋９＊１０−１７ｘ３＋０．０５１２ｘ２＋０．５ｘ      ・・・（６）
上述のように、活性化関数を多項式に近似することより、推論装置２は、準同型暗号を用いて対象のデータを暗号化したまま推論処理ができる。
【００６３】
図３を参照して説明する。
クライアント装置３は、暗号化された推論結果が入力されたとき、暗号された推論結果に対して、準同型暗号の複合処理を実行する（Ｓ１１４）。そして、クライアント装置３は、例えば、表示装置などに、推論結果を出力する（Ｓ１１５）。
【００６４】
なお、Ｓ１０８〜Ｓ１１１は、Ｓ１０１〜Ｓ１０７よりも先に行われてもよい。この場合には、推論装置２は、暗号化されたデータを取得したとき、暗号化されたデータを記憶部２５に記憶してもよい。そして、推論装置２は、Ｓ１１２において推論処理を実行するときに、記憶部２５に記憶している暗号化されたデータを用いて推論処理を実行する。この場合には、Ｓ１０７において、推論装置２は、推論が実行可能になったことをクライアント装置３に通知しなくてもよい。
【００６５】
図６は、コンピュータ装置の一実施例を示すブロック図である。
図６を参照して、コンピュータ装置１００の構成について説明する。
コンピュータ装置１００は、制御回路１０１と、記憶装置１０２と、読書装置１０３と、記録媒体１０４と、通信インターフェイス１０５と、入出力インターフェイス１０６と、入力装置１０７と、表示装置１０８とを含む情報処理装置である。また、通信インターフェイス１０５は、ネットワーク１０９と接続される。そして、各構成要素は、バス１１０により接続される。学習装置１、推論装置２、及びクライアント装置３は、コンピュータ装置１００に記載の構成要素の一部または全てを適宜選択して構成することができる。
【００６６】
制御回路１０１は、コンピュータ装置１００全体の制御をする。そして、制御回路１０１は、例えば、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）、ＦＰＧＡ（Ｆｉｅｌｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）およびＰＬＤ（Ｐｒｏｇｒａｍｍａｂｌｅ  Ｌｏｇｉｃ  Ｄｅｖｉｃｅ）などのプロセッサである。
【００６７】
制御回路１０１は、例えば、図２の学習装置１において、受付部１１及び作成部１２として機能する。制御回路１０１は、例えば、図２の推論装置２において、取得部２１、設定部２２、推論部２３、及び出力部２４として機能する。さらに、制御回路１０１は、例えば、図２のクライアント装置３において、取得部３１、暗号化部３２、複合部３３、及び出力部３４として機能する。
【００６８】
記憶装置１０２は、各種データを記憶する。そして、記憶装置１０２は、例えば、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）およびＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）などのメモリや、ＨＤ（Ｈａｒｄ  Ｄｉｓｋ）などである。また、記憶装置１０２は、例えば、図２の推論装置２において、記憶部２５として機能する。さらに、記憶装置１０２は、例えば、図２のクライアント装置３において、記憶部３５として機能する。
【００６９】
また、ＲＯＭは、ブートプログラムなどのプログラムを記憶している。ＲＡＭは、制御回路１０１のワークエリアとして使用される。ＨＤは、ＯＳ、アプリケーションプログラム、ファームウェアなどのプログラム、および各種データを記憶している。
【００７０】
記憶装置１０２は、制御回路１０１を、例えば、学習装置１の受付部１１及び作成部１２として機能させる学習プログラムを記憶してもよい。記憶装置１０２は、制御回路１０１を、例えば、推論装置２の取得部２１、設定部２２、推論部２３、及び出力部２４として機能させる推論プログラムを記憶してもよい。そして、記憶装置１０２は、制御回路１０１を、例えば、クライアント装置３の取得部３１、暗号化部３２、複合部３３、及び出力部３４として機能させるクライアントプログラムを記憶してもよい。
【００７１】
学習装置１、推論装置２、及びクライアント装置３は、各種処理をするとき、記憶装置１０２に記憶されたプログラムをＲＡＭに読み出す。ＲＡＭに読み出されたプログラムを制御回路１０１で実行することにより、学習装置１、推論装置２、及びクライアント装置３は、それぞれ、学習処理、推論処理、及びクライアント処理を実行する。
【００７２】
学習処理は、例えば、学習装置１で実行される受付処理、及び作成処理を含む。推論処理は、例えば、推論装置２で実行される取得処理、設定処理、推論処理、及び出力処理を含む。クライアント処理は、例えば、クライアント装置３で実行される取得処理、暗号化処理、複合処理、及び出力処理を含む。
【００７３】
なお、上述の各プログラムは、制御回路１０１が通信インターフェイス１０５を介してアクセス可能であれば、ネットワーク１０９上のサーバが有する記憶装置に記憶されていてもよい。
【００７４】
読書装置１０３は、制御回路１０１に制御され、着脱可能な記録媒体１０４のデータのリード／ライトを行なう。そして、読書装置１０３は、例えば、各種Ｄｉｓｋ  ＤｒｉｖｅおよびＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）などである。
【００７５】
記録媒体１０４は、各種データを保存する。記録媒体１０４は、例えば、学習プログラム、推論プログラム、及びクライアントプログラムの少なくとも一方を記憶する。さらに、記録媒体１０４は、図２に示す、学習セットと、学習済みモデル４０と、推論結果５０との少なくとも一方を記憶してもよい。推論結果５０は、暗号化された状態で記録媒体１０４に記憶されてもよい。そして、記録媒体１０４は、読書装置１０３を介してバス１１０に接続され、制御回路１０１が読書装置１０３を制御することにより、データのリード／ライトが行なわれる。
【００７６】
学習済みモデル４０が記録媒体１０４に記録される場合、推論装置２は、記録媒体１０４から学習済みモデルを読み出すことにより、学習済みモデルを取得してもよい。推論結果５０が記録媒体１０４に記録される場合、クライアント装置３は、記録媒体１０４から推論結果５０を読み出すことにより、推論結果５０を取得してもよい。
【００７７】
また、記録媒体１０４は、例えば、ＳＤメモリーカード（ＳＤ  Ｍｅｍｏｒｙ  Ｃａｒｄ）、ＦＤ（Ｆｌｏｐｐｙ  Ｄｉｓｋ）、ＣＤ（Ｃｏｍｐａｃｔ  Ｄｉｓｃ）、ＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｋ）、ＢＤ（Ｂｌｕ−ｒａｙ  Ｄｉｓｋ：登録商標）、およびフラッシュメモリなどの非一時的記録媒体である。
【００７８】
通信インターフェイス１０５は、ネットワーク１０９を介してコンピュータ装置１００と他の装置とを通信可能に接続する。また、通信インターフェイス１０５は、無線ＬＡＮの機能を有するインターフェイス、および近距離無線通信機能を有するインターフェイスを含んでもよい。そして、無線ＬＡＮインターフェイスは、例えば、無線ＬＡＮ規格として、Ｗｉ−Ｆｉ（登録商標）をサポートしてもよい。近距離無線インターフェイスは、例えば、近距離無線通信規格として、Ｂｌｕｅｔｏｏｔｈ（登録商標）をサポートしてもよい。ＬＡＮは、Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋの略である。
【００７９】
通信インターフェイス１０５は、例えば、図２の推論装置２において、取得部２１及び出力部２４として機能する。さらに、通信インターフェイス１０５は、例えば、図２のクライアント装置３において、取得部３１及び出力部３４として機能する。
【００８０】
入出力インターフェイス１０６は、例えば、キーボード、マウス、およびタッチパネルなどの入力装置１０７と接続され、接続された入力装置１０７から各種情報を示す信号が入力されると、バス１１０を介して入力された信号を制御回路１０１に出力する。また、入出力インターフェイス１０６は、制御回路１０１から出力された各種情報を示す信号がバス１１０を介して入力されると、接続された各種装置にその信号を出力する。
【００８１】
入出力インターフェイス１０６は、例えば、図２の学習装置１において、受付部１１として機能する。また、入出力インターフェイス１０６は、例えば、図２の推論装置２において、取得部２１及び出力部２４として機能する。さらに、入出力インターフェイス１０６は、例えば、図２のクライアント装置３において、取得部３１及び出力部３４として機能する。
【００８２】
学習装置１は、入力装置１０７を介して学習セットなどの入力を受けてもよい。推論装置２は、入力装置１０７を介して、推論処理実行の要求などの入力を受け付けてもよい。クライアント装置３は、入力装置１０７を介して、推論処理の対象のデータの入力などを受け付けてもよい。
【００８３】
表示装置１０８は、各種情報を表示する。表示装置１０８は、タッチパネルでの入力を受け付けるための情報を表示してもよい。表示装置１０８は、例えば、図２の出力部３４と接続されて、複合部３３で複合された推論結果５０に対応する情報を表示しもよい。
【００８４】
また、入出力インターフェイス１０６、入力装置１０７、及び表示装置１０８は、ＧＵＩ（Ｇｒａｐｈｉｃａｌ  Ｕｓｅｒ  Ｉｎｔｅｒｆａｃｅ）として機能してもよい。これにより、コンピュータ装置１００は、タッチパネルやマウスなどによる直感的な操作を受け付ける。
ネットワーク１０９は、例えば、ＬＡＮ、無線通信、またはインターネットなどであり、コンピュータ装置１００と他の装置とを通信接続する。学習装置１、推論装置２、及びクライアント装置３は、ネットワーク１０９を介して互いに通信可能に接続されてもよい。
【００８５】
以上のように、推論装置１は、活性化関数に非線形関数を採用したニューラルネットワークの演算により得られた学習済みモデルを用いて、活性化関数に非線形関数の近時多項式を採用したニューラルネットワークの演算により推論処理を実行する。推論装置１は、推論処理において、近似多項式を活性化関数として採用したので、準同型暗号の演算により推論処理が可能となる。これにより、推論装置１は、準同型暗号を用いたニューラルネットワークのシステムにおいて、学習装置における処理の負荷を低減し、システム負荷を小さくすることができる。
【００８６】
推論装置１は、準同型暗号の暗号化処理及び復号処理を実行するクライアント装置３から入力された暗号化されたデータを、暗号化したまま推論処理を実行する。そして、推論装置１は、推論処理により得られる暗号化された推論結果をクライアント装置に出力する。これにより、推論装置１は、準同型暗号を用いたニューラルネットワークのシステムにおいて、準同型暗号を用いて暗号化したまま推論処理を実行するので、情報の流出を防止することができる。
【００８７】
推論装置１は、畳み込みニューラルネットワークを用いた演算を実行する。そして、畳み込み演算は、デジタル信号処理においては、加算及び乗算で表現できる。これにより、推論装置１は、準同型暗号の中では比較的処理速度が速くなる、加算及び乗算の少なくとも一方のみを実行できる準同型暗号を用いて、推論処理を実行することができる。
【００８８】
図７は、ニューラルネットワークを用いた画像認識処理の正答率を示す図である。
図７を参照して、実施形態のニューラルネットワークのシステムにおける推論処理の正答率について説明する。
正答率表２００は、畳み込みニューラルネットワークを用いた画像認識処理において、学習処理と推論処理とのそれぞれで採用する活性化関数と、正答率との関係を示す表である。正答率表２００には、複数回の画像認識処理を実行する実験をすることで得られた、正答率の平均値、最小値、及び最大値が示されている。
【００８９】
正答率表２００の多項式−多項式のカラムは、学習処理及び推論処理において非線形関数であるＲｅｌｕ関数の近似多項式を活性化関数として採用したときの正答率を示す。正答率表２００のＲｅｌｕ−Ｒｅｌｕのカラムは、学習処理及び推論処理において非線形関数であるＲｅｌｕ関数を活性化関数として採用したときの正答率を示す。正答率表２００のＲｅｌｕ−多項式のカラムは、学習処理において非線形関数であるＲｅｌｕ関数を活性化関数として採用し、推論処理においてＲｅｌｕ関数の近似多項式を活性化関数として採用したときの正答率を示す。
【００９０】
Ｒｅｌｕ−多項式のカラムを参照すると、学習処理にＲｅｌｕ関数、推論処理に近似多項式を用いて画像認識処理をしたときの正答率は、平均８５．２％、最小７９．５％、最大９２．０％であったことがわかる。したがって、正答率表２００に示す実験結果は、学習処理にＲｅｌｕ関数、推論処理に近似多項式を用いたニューラルネットワークのシステムを用いて、画像の認識が可能であることを示している。
【００９１】
なお、本実施形態は、以上に述べた実施形態に限定されるものではなく、本実施形態の要旨を逸脱しない範囲内で種々の構成または実施形態を取ることができる。
【符号の説明】
【００９２】
１      学習装置
２      推論装置
３      クライアント装置
１００  コンピュータ装置
１０１  制御回路
１０２  記憶装置
１０３  読書装置
１０４  記録媒体
１０５  通信Ｉ/Ｆ
１０６  入出力Ｉ/Ｆ
１０７  入力装置
１０８  表示装置
１０９  ネットワーク
１１０  バス
【図１】
2019046460.tif 000003
【図２】
2019046460.tif 000004
【図３】
2019046460.tif 000005
【図４】
2019046460.tif 000006
【図５】
2019046460.tif 000007
【図６】
2019046460.tif 000008
【図７】
2019046460.tif 000009