(57)【要約】【課題】畳み込みニューラルネットワークの学習モデルに入力するデータを秘匿化する技術を提供する。【解決手段】モデル取得部３０は、畳み込みニューラルネットワークの学習モデルを取得する。畳み込み用フィルタ取得部３１は、畳み込み層における畳み込み用フィルタを取得する。変換フィルタ取得部３２は、畳み込み用フィルタをフーリエ変換して、変換フィルタを取得する。鍵行列生成部３３は、０以外の要素から構成される行列である鍵行列を生成する。秘匿化フィルタ生成部３４は、変換フィルタと鍵行列とのアダマール積である秘匿化フィルタを生成する。逆鍵行列生成部３５は、鍵行列のアダマール積の逆元である逆鍵行列を生成する。データ取得部３６は、処理対象データのフーリエ変換と、逆鍵行列とのアダマール積である秘匿化データを取得する。フィルタ実行部３７は、秘匿化データと秘匿化フィルタとのアダマール積をフーリエ逆変換する。【選択図】図６
2019168911.tif 000002
【特許請求の範囲】
【請求項１】
行列を入力データとする畳み込みニューラルネットワークの学習モデルを取得するモデル取得部と、
前記学習モデル中の畳み込み層における畳み込み用フィルタを取得する畳み込み用フィルタ取得部と、
前記畳み込み用フィルタをフーリエ変換して、前記入力データと同一サイズの変換フィルタを取得する変換フィルタ取得部と、
前記入力データと同一サイズの行列であって、０以外の要素から構成される行列である鍵行列を生成する鍵行列生成部と、
前記変換フィルタと前記鍵行列とのアダマール積である秘匿化フィルタを生成する秘匿化フィルタ生成部と、
前記鍵行列のアダマール積の逆元である逆鍵行列を生成する逆鍵行列生成部と、
前記畳み込みニューラルネットワークの処理対象データのフーリエ変換と、前記逆鍵行列とのアダマール積である秘匿化データを取得するデータ取得部と、
前記秘匿化データと前記秘匿化フィルタとのアダマール積をフーリエ逆変換するフィルタ実行部と、
前記フィルタ実行部の実行結果を前記畳み込み層以降の層の入力として、前記処理対象データに関する前記学習モデルの出力を取得するモデル実行部と、
を備える情報処理装置。
【請求項２】
通信ネットワークを介して前記逆鍵行列をユーザ端末に送信する逆鍵行列送信部をさらに備え、
前記データ取得部は、前記通信ネットワークを介して、前記ユーザ端末から、前記秘匿化データを取得し、
前記モデル実行部は、前記学習モデルの出力を、前記通信ネットワークを介して前記ユーザ端末に送信する、
請求項１に記載の情報処理装置。
【請求項３】
前記鍵行列生成部は、
絶対値と絶対値の逆数とがともに所定の値以上となる乱数を発生させる乱数発生部と、
前記入力データのサイズを取得する行列パラメータ取得部と、
乱数発生部が発生させた乱数を要素とし、前記入力データのサイズと同一サイズの行列を前記鍵行列として生成する行列生成部と、
を備える、請求項１又は２に記載の情報処理装置。
【請求項４】
前記畳み込み用フィルタ取得部は、前記学習モデル中の複数の畳み込み層のうち、少なくとも最初の畳み込み層における畳み込み用フィルタを取得する、
請求項１から３のいずれか一項に記載の情報処理装置。
【請求項５】
前記逆鍵行列生成部は、前記鍵行列を構成する複数の要素のそれぞれを、各要素の逆数で置換することで、アダマール積の逆元を生成する、
請求項１から４のいずれか一項に記載の情報処理装置。
【請求項６】
プロセッサが、
行列を入力データとする畳み込みニューラルネットワークの学習モデルを取得するステップと、
前記学習モデル中の畳み込み層における畳み込み用フィルタを取得するステップと、
前記畳み込み用フィルタをフーリエ変換して、前記入力データと同一サイズの変換フィルタを取得するステップと、
前記入力データと同一サイズの行列であって、それぞれが０以外の要素から構成される行列である鍵行列を生成するステップと、
前記変換フィルタと前記鍵行列とのアダマール積である秘匿化フィルタを生成するステップと、
前記鍵行列のアダマール積の逆元である逆鍵行列を生成するステップと、
前記畳み込みニューラルネットワークの処理対象データのフーリエ変換と、前記逆鍵行列とのアダマール積である秘匿化データを取得するステップと、
前記秘匿化データと前記秘匿化フィルタとのアダマール積を取得するステップと、
前記秘匿化データと前記秘匿化フィルタとのアダマール積をフーリエ逆変換するステップと、
フーリエ逆変換をして得られた行列を前記畳み込み層以降の層の入力として、前記処理対象データに関する前記学習モデルの出力を取得するステップと、
を実行する情報処理方法。
【請求項７】
コンピュータに、
行列を入力データとする畳み込みニューラルネットワークの学習モデルを取得する機能と、
前記学習モデル中の畳み込み層における畳み込み用フィルタを取得する機能と、
前記畳み込み用フィルタをフーリエ変換して、前記入力データと同一サイズの変換フィルタを取得する機能と、
前記入力データと同一サイズの行列であって、０以外の要素から構成される行列である鍵行列を生成する機能と、
各変換フィルタと割り当てた前記鍵行列とのアダマール積である秘匿化フィルタを生成する機能と、
前記鍵行列のアダマール積の逆元である逆鍵行列を生成する機能と、
前記畳み込みニューラルネットワークの処理対象データのフーリエ変換と、前記逆鍵行列のアダマール積である秘匿化データを取得する機能と、
前記秘匿化データと前記秘匿化フィルタとのアダマール積を取得する機能と、
前記秘匿化データと前記秘匿化フィルタとのアダマール積をフーリエ逆変換する機能と、
フーリエ逆変換して得られた行列を前記畳み込み層以降の層の入力として、前記処理対象データに関する前記学習モデルの出力を取得する機能と、
を実現させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は情報処理装置、情報処理方法、及びプログラムに関し、特に、畳み込みニューラルネットワークの入力データを秘匿化する技術に関する。
【背景技術】
【０００２】
近年、ＣＰＵ（Central Processing Unit）及びＧＰＵ（Graphics Processing Unit）の高速化、メモリの大容量化、及び機械学習技術が急速に進んできている。このため、数十万から百万といったオーダーの学習データを用いる機械学習が可能となり、精度の高い識別技術や分類技術が確立されつつある（非特許文献１参照）。
【先行技術文献】
【非特許文献】
【０００３】
【非特許文献１】Yangqing Jia, Evan Shelhamer, Jeff Donahue, Sergey Karayev, Jonathan Long, Ross Girshick, Sergio Guadarrama, and Trevor Darrell. Caffe: Convolutional architecture for fast feature embedding. In Proceedings of the 22nd ACM international conference on Multimedia (pp. 675-678). ACM.
【発明の概要】
【発明が解決しようとする課題】
【０００４】
大量の学習データに基づく機械学習を実行するためには大量の計算コストがかかる。また、大量の学習データを用意すること、及び用意した学習データを機械学習に用いるために加工する前処理にも膨大な労力を要する。一方で、機械学習によって生成された学習モデルはデジタルデータであり、その複製は容易である。したがって、学習モデルの作成者がユーザに利用させることを目的として学習モデルをユーザに提供すると、提供した学習モデルがその後不正に利用される恐れが生じる。
【０００５】
そのため、例えば、学習モデルの作成者は、学習モデルのユーザに学習モデル自体を提供せずに、通信ネットワークを介してユーザから処理対象データを取得し、学習モデルの処理結果のみをユーザに提供する態様も考えられる。しかしながら、この態様では、学習モデルに入力するデータに個人情報が含まれる等によって漏洩が問題となるデータの場合、ユーザは学習モデルの利用に二の足を踏みかねない。
【０００６】
本発明はこれらの点に鑑みてなされたものであり、畳み込みニューラルネットワークの学習モデルに入力するデータを秘匿化する技術を提供することを目的とする。
【課題を解決するための手段】
【０００７】
本発明の第１の態様は、情報処理装置である。この装置は、行列を入力データとする畳み込みニューラルネットワークの学習モデルを取得するモデル取得部と、前記学習モデル中の畳み込み層における畳み込み用フィルタを取得する畳み込み用フィルタ取得部と、前記畳み込み用フィルタをフーリエ変換して、前記入力データと同一サイズの変換フィルタを取得する変換フィルタ取得部と、前記入力データと同一サイズの行列であって、０以外の要素から構成される行列である鍵行列を生成する鍵行列生成部と、前記変換フィルタと前記鍵行列とのアダマール積である秘匿化フィルタを生成する秘匿化フィルタ生成部と、前記鍵行列のアダマール積の逆元である逆鍵行列を生成する逆鍵行列生成部と、前記畳み込みニューラルネットワークの処理対象データのフーリエ変換と、前記逆鍵行列とのアダマール積である秘匿化データを取得するデータ取得部と、前記秘匿化データと前記秘匿化フィルタとのアダマール積をフーリエ逆変換するフィルタ実行部と、前記フィルタ実行部の実行結果を前記畳み込み層以降の層の入力として、前記処理対象データに関する前記学習モデルの出力を取得するモデル実行部と、を備える。
【０００８】
前記情報処理装置は、通信ネットワークを介して前記逆鍵行列をユーザ端末に送信する逆鍵行列送信部をさらに備えてもよく、前記データ取得部は、前記通信ネットワークを介して、前記ユーザ端末から、前記秘匿化データを取得してもよく、前記モデル実行部は、前記学習モデルの出力を、前記通信ネットワークを介して前記ユーザ端末に送信してもよい。
【０００９】
前記鍵行列生成部は、絶対値と絶対値の逆数とがともに所定の値以上となる乱数を発生させる乱数発生部と、前記入力データのサイズを取得する行列パラメータ取得部と、乱数発生部が発生させた乱数を要素とし、前記入力データのサイズと同一サイズの行列を前記鍵行列として生成する行列生成部と、を備えてもよい。
【００１０】
前記畳み込み用フィルタ取得部は、前記学習モデル中の複数の畳み込み層のうち、少なくとも最初の畳み込み層における畳み込み用フィルタを取得してもよい。
【００１１】
前記逆鍵行列生成部は、前記鍵行列を構成する複数の要素のそれぞれを、各要素の逆数で置換することで、アダマール積の逆元を生成してもよい。
【００１２】
本発明の第２の態様は、情報処理方法である。この方法において、プロセッサが、行列を入力データとする畳み込みニューラルネットワークの学習モデルを取得するステップと、前記学習モデル中の畳み込み層における畳み込み用フィルタを取得するステップと、前記畳み込み用フィルタをフーリエ変換して、前記入力データと同一サイズの変換フィルタを取得するステップと、前記入力データと同一サイズの行列であって、それぞれが０以外の要素から構成される行列である鍵行列を生成するステップと、前記変換フィルタと前記鍵行列とのアダマール積である秘匿化フィルタを生成するステップと、前記鍵行列のアダマール積の逆元である逆鍵行列を生成するステップと、前記畳み込みニューラルネットワークの処理対象データのフーリエ変換と、前記逆鍵行列とのアダマール積である秘匿化データを取得するステップと、前記秘匿化データと前記秘匿化フィルタとのアダマール積を取得するステップと、前記秘匿化データと前記秘匿化フィルタとのアダマール積をフーリエ逆変換するステップと、フーリエ逆変換をして得られた行列を前記畳み込み層以降の層の入力として、前記処理対象データに関する前記学習モデルの出力を取得するステップと、を実行する。
【００１３】
本発明の第３の態様は、プログラムである。このプログラムは、コンピュータに、行列を入力データとする畳み込みニューラルネットワークの学習モデルを取得する機能と、前記学習モデル中の畳み込み層における畳み込み用フィルタを取得する機能と、前記畳み込み用フィルタをフーリエ変換して、前記入力データと同一サイズの変換フィルタを取得する機能と、前記入力データと同一サイズの行列であって、０以外の要素から構成される行列である鍵行列を生成する機能と、各変換フィルタと割り当てた前記鍵行列とのアダマール積である秘匿化フィルタを生成する機能と、前記鍵行列のアダマール積の逆元である逆鍵行列を生成する機能と、前記畳み込みニューラルネットワークの処理対象データのフーリエ変換と、前記逆鍵行列のアダマール積である秘匿化データを取得する機能と、前記秘匿化データと前記秘匿化フィルタとのアダマール積を取得する機能と、前記秘匿化データと前記秘匿化フィルタとのアダマール積をフーリエ逆変換する機能と、フーリエ逆変換して得られた行列を前記畳み込み層以降の層の入力として、前記処理対象データに関する前記学習モデルの出力を取得する機能と、を実現させる。
【発明の効果】
【００１４】
本発明によれば、畳み込みニューラルネットワークの学習モデルに入力するデータを秘匿化することができる。
【図面の簡単な説明】
【００１５】
【図１】畳み込みニューラルネットワークの一般的な機能構成を模式的に示す図である。
【図２】入力データと特徴マップとの畳み込みの関係を説明するための図である。
【図３】畳み込み用フィルタを用いた特徴マップの生成を説明するための図である。
【図４】Ｎ個の畳み込み用フィルタとＮ段の特徴マップとの関係を説明するための図である。
【図５】実施の形態の概要を説明するための図である。
【図６】実施の形態に係る情報処理装置の機能構成を模式的に示す図である。
【図７】実施の形態に係る鍵行列生成部の機能構成を模式的に示す図である。
【図８】実施の形態に係る情報処理装置の利用シーンの一例を模式的に示す図である。
【図９】実施の形態に係る情報処理装置が実行する情報処理の流れを説明するためのフローチャートである。
【発明を実施するための形態】
【００１６】
＜畳み込みニューラルネットワーク＞
実施の形態に係る情報処理装置は、畳み込みニューラルネットワーク（Convolutional Neural Network；ＣＮＮ）に入力するデータを秘匿化する技術に関する。そこで、実施の形態に係る情報処理装置の前提技術として、まず畳み込みニューラルネットワークについて簡単に説明する。
【００１７】
図１は、畳み込みニューラルネットワークの一般的な機能構成を模式的に示す図である。
【００１８】
現在、様々な構成のニューラルネットワークが提案されているが、これらの基本構成は共通である。ニューラルネットワークの基本構成は、複数種類の層の重ね合わせ（又はグラフ構造）で表現される。ニューラルネットワークは、入力データに対する出力結果が適切な値になるようにモデルパラメータを学習する。言い換えると、ニューラルネットワークは、入力データに対する出力結果が適切な値になるように定義された損失関数を最小化するようにモデルパラメータを学習する。
【００１９】
図１において、順伝播型ニューラルネットワークとして、入力層（input layer）と、隠れ層（hidden layer）と、出力層（output layer）との３つの層から構成され、入力層から出力層へ向けて一方向に伝播する。隠れ層は、グラフ状に複数の層から構成することができる。各層は、複数のユニット（ニューロン）を持つ。各層において、前方層のユニットから後方層のユニットへつなぐ関数のパラメータを、「重み（weight）」と称す。本明細書における学習とは、この関数のパラメータとして、適切な「重み」を算出することである。
【００２０】
図１は、畳み込みニューラルネットワークを図示している。畳み込みニューラルネットワークは、入力層と、畳み込み層（convolutional layer）と、プーリング層（pooling layer）と、全結合層（full-connected layer）と、出力層とから構成される。図１において、第１層Ｌ１が入力層であり、第２層Ｌ２は畳み込み層である。同様に、第ｎ層Ｌｎが出力層となっている。畳み込みニューラルネットワークは、前方層における特定のユニットのみが、後方層のユニットへ結合されている。すなわち、畳み込みニューラルネットワークにおいては、前方層における全てのユニットが後方層のユニットへ結合されているものではない。
【００２１】
実施の形態に係るニューラルネットワークにおける学習は、訓練データに対する出力層からの出力値と訓練データのラベルとの誤差を用いて、各層の重みを最適に更新することを意味する。その誤差を算出するために、「損失関数」（loss function）が定義される。誤差は、「誤差逆伝播法」によって出力層側から入力層側へ向けて次々に伝播し、各層の重みを少しずつ更新していく。最終的に、誤差が小さくなるように、各層の重みを適切な値に調整する収束計算を実行する。具体的には、ニューラルネットワークにおける学習（すなわち、新規のモデルパラメータの生成段階）で、誤差を逆伝播させた勾配によって、モデルパラメータを更新する。
【００２２】
図２は、入力データと特徴マップとの畳み込みの関係を説明するための図である。図２における処理は、畳み込み層及び全結合層によって実行される。図２に示す例では、入力データに対して１個の畳み込み用フィルタをかけることにより、特徴マップを生成している。図２において、入力データ、畳み込み用フィルタ、及び特徴マップのサイズはそれぞれ以下のとおりである。
入力データ  ：３２×３２×３個の要素
畳み込み用フィルタ：５×５×３個の要素  （モデルパラメータ）
特徴マップ  ：２８×２８個の要素
【００２３】
畳み込み用フィルタはＮ個（Ｎは１以上の整数。）分用意され、これがモデルパラメータとなる。すなわち、「重み」とは、Ｎ個の畳み込み用フィルタを意味する。ただし、ここでは、バイアス項は考慮しないものとする。
【００２４】
図３は、畳み込み用フィルタを用いた特徴マップの生成を説明するための図である。
図３に示す例では、５×５×３個の要素からなる１個の畳み込み用フィルタを入力データにかけ、その各要素の積の和を特徴マップの１個の要素の値とする。そして、入力データに対して同じ畳み込み用フィルタを移動させることにより、１枚の特徴マップを生成する。ここで、畳み込み用フィルタを移動させる要素の数（移動量）を「ストライド（stride）」と称す。入力データの周囲の縁（ふち）には、要素０を埋めたゼロパディング（zero-padding）の領域を設ける。これによって、入力データの縁の要素にも、同数の畳み込み用フィルタをあてることができる。
【００２５】
図４は、Ｎ個の畳み込み用フィルタとＮ段の特徴マップとの関係を説明するための図である。図４に示す例では、畳み込み用フィルタの数はＮ個である。図２及び図３は、１個の畳み込み用フィルタによって生成された１枚の特徴マップが生成される場合の例が示されている。これに対し、図４に示す例は、Ｎ個の畳み込み用フィルタによってＮ段の特徴マップが生成される場合の例が示されている。ニューラルネットワークの学習では、ある層における特徴マップが、次の層における入力データとなる。ニューラルネットワークの学習を実行することにより、損失関数に基づく誤差が出力層側から入力層側へ向けて次々に伝播し、既知の誤差逆伝播法によって各層の重みが更新される。
【００２６】
＜実施の形態の概要＞
以上を前提として、実施の形態の概要を述べる。
実施の形態に係る情報処理装置は、畳み込みニューラルネットワークの学習モデルに入力する入力データが秘匿化された状態で取得し、秘匿前の状態に戻すことなくそのまま処理して学習モデルの出力を得ることができる装置である。実施の形態に係る情報処理装置は、実空間における畳み込み演算が、周波数空間においては乗算となることを利用して、周波数空間において入力データと畳み込みフィルタとの両方を秘匿化する。
【００２７】
図５は、実施の形態の概要を説明するための図である。実施の形態に係る情報処理装置が受け付ける入力データは行列で表現可能なデータであり、例えば画像データである。図５において、ｄが付された矩形が、入力データｄである。図１を参照して説明したように、実施の形態に係る情報処理装置が扱う畳み込み用ニューラルネットワークにおいて、第２層Ｌ２は畳み込み層である。畳み込み層においては、入力データｄと、畳み込み用フィルタｋとの畳み込みが実行される。
【００２８】
よく知られているように、実空間における畳み込み用フィルタｋと入力データｄとの畳み込みは、周波数空間における畳み込みフィルタと入力データとの積となる。図５において、畳み込み用フィルタｋのフーリエ変換を変換フィルタＫで示しており、実空間における入力データｄのフーリエ変換を変換入力データＤで示している。入力データｄ及び畳み込み用フィルタｋが行列で表現される場合、周波数空間における両者の畳み込みは、変換フィルタＫと変換入力データＤとのアダマール積となる。なお、図５において、畳み込みは「＊」で表し、アダマール積を「〇」で表している。
【００２９】
実施の形態に係る情報処理装置は、入力データｄと同一サイズの乱数行列Ｅと、その乱数行列Ｅのアダマール積における逆元１／Ｅとを生成する。乱数行列Ｅとその逆元１／Ｅとを用いると、変換フィルタＫと変換入力データＤとのアダマール積は、以下の式（１）で表現できる。
Ｋ〇Ｄ＝Ｋ〇Ｅ〇１／Ｅ〇Ｄ    （１）
【００３０】
説明の便宜のため、入力データｄが３行３列の行列であるとする。この場合、変換入力データＤ、変換フィルタＫ、鍵行列Ｅ、及び逆鍵行列１／Ｅはいずれも３行３列の行列となる。そこで、変換入力データＤ、変換フィルタＫ、鍵行列Ｅ、及び逆鍵行列１／Ｅを、それぞれ以下の式（２）、式（３）、式（４）、及び式（５）とする。
【００３１】
【数１】
2019168911.tif 000003
2019168911.tif 000004
2019168911.tif 000005
2019168911.tif 000006
【００３２】
式（２）及び式（３）より、式（１）の左辺は、以下の式（６）となる。
【数２】
2019168911.tif 000007
【００３３】
また、式（３）及び式（４）より、式（１）の右辺の初めの２項は、以下の式（７）となる。
【数３】
2019168911.tif 000008
【００３４】
さらに、式（２）及び式（５）より、式（１）の右辺の後ろの２項は、以下の式（８）となる。
【数４】
2019168911.tif 000009
【００３５】
乱数行列Ｅを構成する要素は乱数である。したがって、乱数行列Ｅを知らない限り、式（７）、すなわち変換フィルタＫと乱数行列Ｅとのアダマール積Ｋ〇Ｅから変換フィルタＫを推定することは困難である。この意味で、乱数行列Ｅは、畳み込み用フィルタｋを秘匿化するための秘密鍵となる。以下、乱数行列Ｅを鍵行列Ｅと記載することがある。また、変換フィルタＫと乱数行列Ｅとのアダマール積Ｋ〇Ｅを秘匿化フィルタと記載することがある。なお、式（１）から式（８）は、入力データｄが３行３列の行列の場合を示したが、その他のサイズの場合も要素数が変わるだけで式（１）から式（８）と同様の式となる。
【００３６】
乱数行列Ｅの逆元である１／Ｅを構成する要素もまた乱数となる。したがって、乱数行列Ｅの逆元１／Ｅを知らない限り、式（８）、すなわち変換入力データＤと乱数行列Ｅの逆元１／Ｅとアダマール積である１／Ｅ〇Ｄから変換入力データＤを推定することは困難である。したがって、乱数行列Ｅの逆元１／Ｅは、変換入力データＤを秘匿化するための秘密鍵となる。以下、乱数行列Ｅの逆元１／Ｅを逆鍵行列１／Ｅと記載することがある。また、変換入力データＤと乱数行列Ｅの逆元１／Ｅとアダマール積１／Ｅ〇Ｄを秘匿化データと記載することがある。
【００３７】
実施の形態に係る情報処理装置は、実空間における変換フィルタＫに替えて、式（７）で表される秘匿化フィルタを保持している。また、実施の形態に係る情報処理装置は、実空間における入力データｄに替えて、式（８）で表される秘匿化データを取得する。実施の形態に係る情報処理装置は、秘匿化フィルタと秘匿化データとのアダマール積を計算することにより、秘匿化する前の変換フィルタＫと、秘匿化する前の変換入力データＤとのアダマール積を取得することができる。
【００３８】
実施の形態に係る情報処理装置は、変換フィルタＫと変換入力データＤとのアダマール積をフーリエ逆変換することにより、実空間における入力データｄと畳み込み用フィルタｋとの畳み込み演算の結果を取得することができる。これにより、実施の形態に係る情報処理装置は、取得した畳み込み演算の結果を以降の層に入力し、入力データｄを入力とする学習モデルの結果を取得することができる。
【００３９】
このように、実施の形態に係る情報処理装置は、畳み込みニューラルネットワークを用いて生成した学習モデルの処理対象のデータを秘匿化した状態で取得し、秘匿前の状態に戻すことなく秘匿化されたまま処理をすることができる。これにより、実施の形態に係る情報処理装置は、学習モデルに入力するデータを秘匿し、漏洩することを抑制できる。
【００４０】
さらに、実施の形態に係る情報処理装置は、学習モデルを構成する畳み込み用フィルタｋも秘匿化することができる。これにより、実施の形態に係る情報処理装置によれば、学習モデルの少なくとも一部については構造を秘匿化することができる。
【００４１】
＜実施の形態に係る情報処理装置１の機能構成＞
以下、実施の形態に係る情報処理装置についてより詳細に説明する。
図６は、実施の形態に係る情報処理装置１の機能構成を模式的に示す図である。情報処理装置１は、記憶部２と制御部３とを備える。
【００４２】
実施の形態に係る情報処理装置１は、ＣＰＵやＧＰＵ等のプロセッサ、ＤＲＡＭ（Dynamic Random Access Memory）等の作業メモリ、及びＨＤＤ（Hard Disk Drive）やＳＳＤ（Solid State Drive）等の大容量記憶装置によって構成される。情報処理装置１は、ＰＣ（Personal Computer）やワークステーション、サーバ等の単一の装置であってもよいし、クラウドサーバのように複数の装置から構成されてもよい。
【００４３】
記憶部２は、情報処理装置１を実現するコンピュータのＢＩＯＳ（Basic Input Output System）等を格納するＲＯＭ（Read Only Memory）や情報処理装置１の作業領域となるＲＡＭ（Random Access Memory）、ＯＳ（Operating System）やアプリケーションプログラム、当該アプリケーションプログラムの実行時に参照される種々の情報を格納するＨＤＤやＳＳＤ等の大容量記憶装置である。
【００４４】
制御部３は、情報処理装置１のＣＰＵやＧＰＵ等のプロセッサであり、記憶部２に記憶されたプログラムを実行することによってモデル取得部３０、畳み込み用フィルタ取得部３１、変換フィルタ取得部３２、鍵行列生成部３３、秘匿化フィルタ生成部３４、逆鍵行列生成部３５、データ取得部３６、フィルタ実行部３７、モデル実行部３８、及び逆鍵行列送信部３９として機能する。
【００４５】
記憶部２は、あらかじめ訓練データとラベルとを畳み込みニューラルネットワークで学習することによって生成した学習モデルを保持している。モデル取得部３０は、行列を入力データｄとする畳み込みニューラルネットワークの学習モデルを、記憶部２から読み出して取得する。
【００４６】
畳み込み用フィルタ取得部３１は、モデル取得部３０が読み出した学習モデル中の畳み込み層における畳み込み用フィルタｋを取得する。特に、畳み込み用フィルタ取得部３１は、学習モデル中の複数の畳み込み層のうち、少なくとも最初の畳み込み層における畳み込み用フィルタｋを取得する。図１に示すように、実施の形態に係る情報処理装置１が処理対象とする学習モデルの第２層Ｌ２、すなわち、入力層Ｌ１に隣接する層Ｌは、最初の畳み込み層となっている。これにより、入力層Ｌ１に秘匿化データが入力されても、第２層Ｌ２において実空間のデータに変換し、以降の層は実空間のデータで処理をすることができる。
【００４７】
変換フィルタ取得部３２は、畳み込み用フィルタ取得部３１が取得した畳み込み用フィルタｋをフーリエ変換して、入力データｄと同一サイズの変換フィルタＫを取得する。鍵行列生成部３３は、入力データｄと同一サイズの行列であって、０以外の要素から構成される行列である鍵行列Ｅを生成する。
【００４８】
図７は、実施の形態に係る鍵行列生成部３３の機能構成を模式的に示す図である。鍵行列生成部３３は、乱数発生部３３０、行列パラメータ取得部３３１、及び行列生成部３３２を備える。
【００４９】
乱数発生部３３０は、絶対値と絶対値の逆数とがともに所定の値以上となる乱数を発生させる。ここで「所定の値」とは、情報処理装置１のＣＰＵが逆数を計算したときに計算誤差が許容範囲となる値である。所定の値の具体的な値は学習モデルに課される計算精度等を考慮して実験により定めればよい。例えば、乱数発生部３３０が発生させる乱数をｒとし、その逆数をｓ（ｓは１／ｒの数値計算結果）とした場合、｜ｒ×ｓ−１｜が倍精度実数型の計算機イプシロン程度となるように所定の値を定めればよい。
【００５０】
行列パラメータ取得部３３１は、入力データｄのサイズを取得する。行列生成部３３２は、乱数発生部３３０が発生させた乱数を要素とし、入力データｄのサイズと同一サイズの行列を鍵行列Ｅとして生成する。これにより、鍵行列生成部３３は、要素が乱数であり、入力データｄと同一サイズの鍵行列Ｅを生成することができる。また、鍵行列Ｅを構成する各要素は所定の値以上としているため、鍵行列Ｅと逆鍵行列１／Ｅとのアダマール積の各要素の１との誤差が計算機イプシロン程度に抑えられる。
【００５１】
図６の説明に戻る。秘匿化フィルタ生成部３４は、変換フィルタＫと鍵行列Ｅとのアダマール積である秘匿化フィルタを生成する。逆鍵行列生成部３５は、鍵行列Ｅのアダマール積の逆元である逆鍵行列１／Ｅを生成する。具体的には、逆鍵行列生成部３５は、鍵行列Ｅを構成する複数の要素のそれぞれを、各要素の逆数で置換することで、アダマール積の逆元を生成する。
【００５２】
データ取得部３６は、畳み込みニューラルネットワークの処理対象である入力データｄのフーリエ変換である変換入力データＤと、逆鍵行列１／Ｅとのアダマール積である秘匿化データを取得する。フィルタ実行部３７は、まず、秘匿化データと秘匿化フィルタとのアダマール積を算出する。フィルタ実行部３７は、算出した秘匿化データと秘匿化フィルタとのアダマール積をフーリエ逆変換する。これにより、フィルタ実行部３７は、実空間における入力データｄと畳み込み用フィルタｋとの畳み込みを取得することができる。
【００５３】
モデル実行部３８は、畳み込み用フィルタｋを取得した畳み込み層以降の層にフィルタ実行部３７の実行結果を入力することにより、処理対象データである入力データｄに関する学習モデルの出力を取得する。このように、実施の形態に係る情報処理装置１は、処理対象とする入力データｄを秘匿した状態で取得し、取得したデータを可読可能な元の状態に戻すことなくそのまま処理して学習モデルの出力を得ることができる。
【００５４】
＜実施の形態に係る情報処理装置１の利用シーン＞
図８は、実施の形態に係る情報処理装置１の利用シーンの一例を模式的に示す図である。図８に示す例では、情報処理装置１は、通信ネットワークＮを介して通信ネットワークＮと通信可能な態様で接続している。
【００５５】
ユーザ端末Ｔは、情報処理装置１から入力ＡＰＩ（Application Program Interface）と出力ＡＰＩとの提供を受けている。ユーザ端末Ｔは、入力ＡＰＩを利用することにより、通信ネットワークＮを介して処理対象とするデータを情報処理装置１に送信することができる。また、ユーザ端末Ｔは、出力ＡＰＩを利用することにより、通信ネットワークＮを介して情報処理装置１から学習モデルの実行結果を受信することができる。
【００５６】
具体的には、逆鍵行列送信部３９は、通信ネットワークＮを介して逆鍵行列１／Ｅをユーザ端末Ｔに送信する。このとき、逆鍵行列送信部３９は、入力ＡＰＩの一部に逆鍵行列１／Ｅを含めてユーザ端末Ｔに提供する。入力ＡＰＩはユーザ端末Ｔが実行可能なプログラムの形式で提供されている。ユーザ端末Ｔが入力ＡＰＩを実行して処理対象の入力データｄを処理することにより、まず、入力データｄはフーリエ変換されて変換入力データＤとなる。
【００５７】
続いて、ユーザ端末Ｔが実行する入力ＡＰＩは、変換入力データＤと逆鍵行列１／Ｅとのアダマール積をとることにより、秘匿化データを生成する。最後に、ユーザ端末Ｔが実行する入力ＡＰＩは、秘匿化データを通信ネットワークＮを介して情報処理装置１に送信する。
【００５８】
データ取得部３６は、通信ネットワークＮを介して、ユーザ端末Ｔから、秘匿化データを取得する。フィルタ実行部３７は、秘匿化データと秘匿化フィルタとのアダマール積を算出し、算出した秘匿化データと秘匿化フィルタとのアダマール積をフーリエ逆変換する。モデル実行部３８は、畳み込み用フィルタｋを取得した畳み込み層以降の層にフィルタ実行部３７の実行結果を入力することにより、処理対象データである入力データｄに関する学習モデルの出力を取得する。逆鍵行列送信部３９は、記憶部２が実行する出力ＡＰＩからの要求を取得すると、学習モデルの出力を、通信ネットワークＮを介してユーザ端末Ｔに送信する。ユーザ端末Ｔは、入力データｄに関する学習モデルの出力を情報処理装置１から取得することができる。
【００５９】
このように、ユーザ端末Ｔは、学習モデルの適用に要する演算の大部分を情報処理装置１に委任することができる。これにより、ユーザ端末Ｔが計算リソースが少ない機器であったり、バッテリ駆動等の理由により消費電力に制限があるような場合であったりしても、学習モデルを実行することができる。
【００６０】
また、情報処理装置１は、学習モデル自体をユーザ端末Ｔに提供することなくユーザ端末Ｔに学習モデルを利用する機会を提供することができる。これにより、情報処理装置１は、学習モデルが第三者に漏洩したり、不正利用されたりすることを抑制できる。
【００６１】
さらに、ユーザ端末Ｔは、学習モデルの処理対象のデータを秘匿化した状態で情報処理装置１に提供するので、通信ネットワークＮを伝送中に第三者にデータが漏洩することを抑制できる。
【００６２】
＜情報処理装置１が実行する情報処理の処理フロー＞
図９は、実施の形態に係る情報処理装置１が実行する情報処理の流れを説明するためのフローチャートである。本フローチャートにおける処理は、例えば情報処理装置１が起動したときに開始する。
【００６３】
モデル取得部３０は、行列を入力データｄとする畳み込みニューラルネットワークの学習モデルを記憶部２から読み出して取得する（Ｓ２）。畳み込み用フィルタ取得部３１は、学習モデル中の畳み込み層における畳み込み用フィルタｋを取得する（Ｓ４）。
【００６４】
変換フィルタ取得部３２は、畳み込み用フィルタ取得部３１が取得した畳み込み用フィルタｋをフーリエ変換して、入力データｄと同一サイズの変換フィルタＫを取得する（Ｓ６）。鍵行列生成部３３は、入力データｄと同一サイズの行列であって、それぞれが０以外の要素から構成される行列である鍵行列Ｅを生成する（Ｓ８）。
【００６５】
秘匿化フィルタ生成部３４は、変換フィルタＫと鍵行列Ｅとのアダマール積である秘匿化フィルタを生成する（Ｓ１０）。逆鍵行列生成部３５は、鍵行列Ｅのアダマール積の逆元である逆鍵行列１／Ｅを生成する（Ｓ１２）。データ取得部３６は、畳み込みニューラルネットワークの処理対象となる入力データｄのフーリエ変換である変換入力データＤと、逆鍵行列１／Ｅとのアダマール積である秘匿化データを取得する（Ｓ１４）。
【００６６】
フィルタ実行部３７は、秘匿化データと秘匿化フィルタとのアダマール積を取得する（Ｓ１６）。続いて、フィルタ実行部３７は、秘匿化データと秘匿化フィルタとのアダマール積をフーリエ逆変換する（Ｓ１８）。モデル実行部３８は、フィルタ実行部３７がフーリエ逆変換をして得られた行列を畳み込み層以降の層の入力として、処理対象となる入力データｄに関する学習モデルの出力を取得する（Ｓ２０）。
【００６７】
モデル実行部３８が入力データｄに関する学習モデルの出力を取得すると、本フローチャートにおける処理は終了する。
【００６８】
＜実施の形態に係る情報処理装置１が奏する効果＞
以上説明したように、実施の形態に係る情報処理装置１によれば、畳み込みニューラルネットワークの学習モデルに入力するデータを秘匿化する技術を提供することができる。
【００６９】
以上、本発明を実施の形態を用いて説明したが、本発明の技術的範囲は上記実施の形態に記載の範囲には限定されず、その要旨の範囲内で種々の変形及び変更が可能である。例えば、装置の分散・統合の具体的な実施の形態は、以上の実施の形態に限られず、その全部又は一部について、任意の単位で機能的又は物理的に分散・統合して構成することができる。また、複数の実施の形態の任意の組み合わせによって生じる新たな実施の形態も、本発明の実施の形態に含まれる。組み合わせによって生じる新たな実施の形態の効果は、もとの実施の形態の効果を合わせ持つ。
【００７０】
＜第１の変形例＞
上記では、変換フィルタ取得部３２が取得する畳み込み用フィルタｋが単数の場合について主に説明した。しかしながら、例えば図４を参照して説明したように、畳み込み用フィルタｋの数がＮ個（Ｎは２以上の整数）であってもよい。
【００７１】
この場合、畳み込み用フィルタ取得部３１は、学習モデル中の畳み込み層におけるＮ個の畳み込み用フィルタｋを取得する。変換フィルタ取得部３２は、Ｎ個の畳み込み用フィルタをそれぞれフーリエ変換して、入力データｄと同一サイズのＮ個の変換フィルタＫを取得する。
【００７２】
鍵行列生成部３３は、入力データｄと同一サイズＮ個の異なる行列であって、それぞれが０以外の要素から構成される行列であるＮ個の鍵行列Ｅを生成する。秘匿化フィルタ生成部３４は、Ｎ個の変換フィルタＫそれぞれに異なる鍵行列Ｅを割り当て、各変換フィルタＫと割り当てた鍵行列Ｅとのアダマール積である秘匿化フィルタを生成する。
【００７３】
逆鍵行列生成部３５は、Ｎ個の鍵行列Ｅそれぞれのアダマール積の逆元であるＮ個の逆鍵行列１／Ｅを生成する。データ取得部３６は、畳み込みニューラルネットワークの処理対象の入力データｄのフーリエ変換である変換入力データＤと、Ｎ個の逆鍵行列１／Ｅそれぞれとのアダマール積をとったＮ個の秘匿化データを取得する。
【００７４】
フィルタ実行部３７は、Ｎ個の秘匿化データのそれぞれについて、各秘匿化データの生成に用いられた逆鍵行列１／Ｅの逆元となる鍵行列Ｅを用いて生成された秘匿化フィルタとのアダマール積をフーリエ逆変換する。モデル実行部３８は、フィルタ実行部３７の実行結果を畳み込み層以降の層の入力として、処理対象データに関する学習モデルの出力を取得する。
【００７５】
このように、情報処理装置１は、畳み込み用フィルタｋの数が複数であっても、単数の場合と同様に入力データｄを秘匿した状態で学習モデルを実行することができる。
【００７６】
＜第２の変形例＞
上記では、変換フィルタ取得部３２が畳み込み用フィルタｋをフーリエ変換して、入力データｄと同一サイズの変換フィルタＫを取得する場合について説明した。ここで、畳み込み用フィルタｋが特定の周波数を多く含み、他の周波数を含まないフィルタである場合、変換フィルタＫの要素に０が多く含まれることになる。この場合、秘匿化フィルタ生成部３４が、変換フィルタＫと鍵行列Ｅとのアダマール積である秘匿化フィルタを生成すると、変換フィルタＫの要素が０である部分は、秘匿化フィルタの要素も０となる。このような場合、秘匿化フィルタから変換フィルタＫの構造が推定される可能性がある。
【００７７】
そこで、鍵行列生成部３３は、第１鍵行列Ｅと、第２鍵行列Ｆとの二つの鍵行列を生成する。第１鍵行列Ｅと、第２鍵行列Ｆとはともに、入力データｄと同一サイズの行列であって、それぞれが０以外の要素から構成される行列である。
【００７８】
秘匿化フィルタ生成部３４は、変換フィルタＫに第２鍵行列Ｆを加算した行列と、第１鍵行列Ｅとのアダマール積を、秘匿化フィルタとして生成する。すなわち、秘匿化フィルタは、（Ｋ＋Ｆ）〇Ｅとなる。
【００７９】
逆鍵行列生成部３５は、第１鍵行列Ｅのアダマール積の逆元である逆鍵行列１／Ｅを生成する。データ取得部３６は、畳み込みニューラルネットワークの処理対象の入力データｄのフーリエ変換である変換入力データＤと、逆鍵行列１／Ｅとのアダマール積である第１秘匿化データを取得する。データ取得部３６はまた、畳み込みニューラルネットワークの処理対象の入力データｄのフーリエ変換である変換入力データＤと、第２鍵行列Ｆとのアダマール積である第２秘匿化データも取得する。具体的には、第１秘匿化データは１／Ｅ〇Ｄであり、第２秘匿化データはＦ〇Ｄである。このため、逆鍵行列送信部３９がユーザ端末Ｔに送信する入力ＡＰＩは、逆鍵行列１／Ｅに加え、第２鍵行列Ｆも含まれる。
【００８０】
フィルタ実行部３７は、第１秘匿化データ１／Ｅ〇Ｄと秘匿化フィルタ（Ｋ＋Ｆ）〇Ｅとのアダマール積から、第２秘匿化データＦ〇Ｄを減じた行列をフーリエ逆変換する。なお、第１秘匿化データ１／Ｅ〇Ｄと秘匿化フィルタ１／Ｅ〇Ｄとのアダマール積から、第２秘匿化データＦ〇Ｄを減じた行列は、以下の式（９）のように変形できる。
（１／Ｅ〇Ｄ）〇（（Ｋ＋Ｆ）〇Ｅ）−Ｆ〇Ｄ＝Ｄ〇Ｋ    （９）
【００８１】
式（９）の右辺は式（１）の左辺と等しく、入力データｄと畳み込み用フィルタｋとの畳み込みを周波数空間で表現した形となる。以上より、変換フィルタＫの要素に０が多い場合であっても、変換フィルタＫに第２鍵行列Ｆを加算することにより、行列の要素を非ゼロ化することができる。
【符号の説明】
【００８２】
１・・・情報処理装置
２・・・記憶部
３・・・制御部
３０・・・モデル取得部
３１・・・畳み込み用フィルタ取得部
３２・・・変換フィルタ取得部
３３・・・鍵行列生成部
３３０・・・乱数発生部
３３１・・・行列パラメータ取得部
３３２・・・行列生成部
３４・・・秘匿化フィルタ生成部
３５・・・逆鍵行列生成部
３６・・・データ取得部
３７・・・フィルタ実行部
３８・・・モデル実行部
３９・・・逆鍵行列送信部
Ｔ・・・ユーザ端末
Ｎ・・・通信ネットワーク
【図１】
2019168911.tif 000010
【図２】
2019168911.tif 000011
【図３】
2019168911.tif 000012
【図４】
2019168911.tif 000013
【図５】
2019168911.tif 000014
【図６】
2019168911.tif 000015
【図７】
2019168911.tif 000016
【図８】
2019168911.tif 000017
【図９】
2019168911.tif 000018