(57)【要約】【課題】匿名化された深層学習モデルを得る際に、どのようなデータであっても、精度の高い好適な匿名化された深層学習モデルを得る。【解決手段】深層学習が行われた深層学習モデルに対して、そのモデル内のパラメータ値にラプラス分布に基づいた誤差を与えると共に、ラプラス分布に基づいて誤差を与えた各パラメータが、最大値及び最小値で示される閾値の範囲を超えたとき、閾値の範囲に制限するようにして、匿名化を行う。あるいは、深層学習モデルを得る演算時に、その演算で使用するパラメータ値にラプラス分布に基づいた誤差を与えると共に、ラプラス分布に基づいて誤差を与えた各パラメータが、最大値及び最小値で示される閾値の範囲を超えたとき、閾値の範囲に制限するようにしたようにして、匿名化を行う。【選択図】図３
2018097467.tif 000002
【特許請求の範囲】
【請求項１】
データベース内の生データに対して、深層学習アルゴリズムを適用して深層学習モデルを得る深層学習処理部と、
前記深層学習処理部で得られた深層学習モデルに対して、差分プライバシに基づく匿名化処理を施して匿名モデルを得る匿名化処理部と、を備えたプライバシ保護データ提供システムであり、
前記匿名化処理部は、前記深層学習モデルに含まれる重みパラメータ及びバイアスパラメータに対して、それぞれのパラメータ値にラプラス分布に基づいた誤差を与えると共に、ラプラス分布に基づいて誤差を与えた各パラメータが、最大値及び最小値で示される閾値の範囲を超えたとき、前記閾値の範囲に制限するようにしたことを特徴とする
プライバシ保護データ提供システム。
【請求項２】
データベース内の生データに対して、差分プライバシに基づく匿名化処理を施しながら、深層学習アルゴリズムを適用して深層学習済の匿名モデルを得る深層学習処理部を備えたプライバシ保護データ提供システムであり、
前記深層学習処理部は、深層学習モデルを得る演算時に使用する重みパラメータ及びバイアスパラメータに対して、それぞれのパラメータ値にラプラス分布に基づいた誤差を与えると共に、ラプラス分布に基づいて誤差を与えた各パラメータが、最大値及び最小値で示される閾値の範囲を超えたとき、前記閾値の範囲に制限するようにしたことを特徴とする
プライバシ保護データ提供システム。
【請求項３】
前記深層学習処理部が深層学習モデルを得る際に、逐次的にグローバルセンシティビティを計算し、計算したグローバルセンシティビティに基づいて前記ラプラス分布を取得する処理を行い、
その逐次的に取得した前記ラプラス分布に基づいた誤差を与えるようにした
請求項２に記載のプライバシ保護データ提供システム。
【請求項４】
データベース内の生データに対して、深層学習アルゴリズムを適用して深層学習モデルを得る深層学習処理手順と、
前記深層学習処理手順で得られた深層学習モデルに対して、差分プライバシに基づく匿名化処理を施す匿名化処理手順と、を含み、
前記匿名化処理手順は、前記深層学習モデルに含まれる重みパラメータ及びバイアスパラメータに対して、それぞれのパラメータ値にラプラス分布に基づいた誤差を与えると共に、ラプラス分布に基づいて誤差を与えた各パラメータが、最大値及び最小値で示される閾値の範囲を超えたとき、前記閾値の範囲に制限するようにしたことを特徴とする
プライバシ保護データ提供方法。
【請求項５】
データベース内の生データに対して、差分プライバシに基づく匿名化処理を施しながら、深層学習アルゴリズムを適用して深層学習済の匿名モデルを得る深層学習処理手順を含み、
前記深層学習処理手順は、深層学習モデルを得る演算時に使用する重みパラメータ及びバイアスパラメータに対して、それぞれのパラメータ値にラプラス分布に基づいた誤差を与えると共に、ラプラス分布に基づいて誤差を与えた各パラメータが、最大値及び最小値で示される閾値の範囲を超えたとき、前記閾値の範囲に制限するようにしたことを特徴とする
プライバシ保護データ提供方法。
【請求項６】
前記深層学習処理手順で深層学習モデルを得る際には、逐次的にグローバルセンシティビティを計算し、計算したグローバルセンシティビティに基づいて前記ラプラス分布を取得し、
その逐次的に取得した前記ラプラス分布に基づいた誤差を与えるようにした
請求項５に記載のプライバシ保護データ提供方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プライバシ保護データ提供システム及びプライバシ保護データ提供方法に関する。
【背景技術】
【０００２】
近年、個人データなどのプライバシ保護が必要なデータを公開する際に、差分プライバシと称される処理を施して、個々のデータのプライバシを確保した上で、適正なデータ解析が実行できるようにしたものが提案されている。
【０００３】
データに対して差分プライバシの処理を施す際には、プライバシの保護レベルが、「ε」で示されるプライバシ指標で示される。プライバシ指標「ε」の値が０に近づくほど、データの保護レベルが高く、プライバシ指標「ε」の値が大きいほど、データの保護レベルが低くなる。
【０００４】
具体的には、あるデータベースＤを匿名化して差分プライバシの処理を施す匿名学習アルゴリズムＡが存在するとき、この匿名学習アルゴリズムＡは、確率的要素を含むアルゴリズムになる。すなわち、データベースＤを、確率的要素を含む匿名学習アルゴリズムＡで匿名化したときには、確率的要素を含むために、処理を施す毎に異なる匿名化済データｓ１，ｓ２，・・・，ｓｎが得られる。ここで、データベースＤと、そのデータベースＤから１レコードだけ異なるデータとしたデータベースＤ′とを用意し、それぞれのデータベースＤ，Ｄ′の集合Ｓの特定のデータｓｉ（データｓｉはデータｓ１〜ｓｎのいずれか）になる確率の比が、プライバシ指標「ε」を使ったｅｘｐ（ε）以下になるとき、この匿名学習アルゴリズムＡは、差分プライバシを満たすアルゴリズムになる。
【０００５】
この差分プライバシを満たす点を、より分かりやすく述べると、例えば、多数の個人情報からなる特定のデータベースＤに、ある任意の一人のデータを追加（又は削除）したものを、データベースＤ′とする。ここで、データベースＤを匿名学習アルゴリズムＡで差分プライバシの処理を施して匿名化した結果と、データベースＤ′を匿名学習アルゴリズムＡで差分プライバシの処理を施して匿名化した結果とが、ほとんど変わらないとき（つまり上述した閾値ｅｘｐ（ε）を超えないとき）、プライバシが守られた状態で、データベースＤが公開されたと言える。
【０００６】
これは、データベースＤを構成する各データで特定される個人から見たとき、一人一人のデータの有無に関わらず、結果がほぼ同じであるため、プライバシが守られた状態と見なせることになる。言い換えると、データベースＤとデータベースＤ′のいずれであっても、結果が同じになることを意味している。
特許文献１には、差分プライバシを満たして、データを集計する手法の一例についての記載がある。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２０１６−１２０７４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
上述したように、差分プライバシの処理を施す匿名学習アルゴリズムを作成することで、データの匿名化が可能であるが、実際には、どのようなデータベース構成であっても、確率の比がｅｘｐ（ε）以下になる条件を満たして、かつニューラルモデルの精度が高くなるような機械学習を行う匿名学習アルゴリズムの作成は難しいという問題があった。
【０００９】
本発明は、匿名化された深層学習モデルを形成する際に、どのようなデータであっても、精度の高い好適な匿名化された深層学習モデルが得られるプライバシ保護データ提供システム及びプライバシ保護データ提供方法を提供することを目的とする。
【課題を解決するための手段】
【００１０】
本発明の一側面のプライバシ保護データ提供システムは、データベース内の生データに対して、深層学習アルゴリズムを適用して深層学習モデルを得る深層学習処理部と、深層学習処理部で得られた深層学習モデルに対して、差分プライバシに基づく匿名化処理を施して、匿名モデルを得る匿名化処理部とを備えたプライバシ保護データ提供システムである。
ここで、匿名化処理部は、深層学習モデルに含まれる重みパラメータ及びバイアスパラメータに対して、それぞれのパラメータ値にラプラス分布に基づいた誤差を与えると共に、ラプラス分布に基づいて誤差を与えた各パラメータが、最大値及び最小値で示される閾値の範囲を超えたとき、閾値の範囲に制限するようにしたことを特徴とする。
【００１１】
また、本発明の他の側面のプライバシ保護データ提供システムは、データベース内の生データに対して、差分プライバシに基づく匿名化処理を施しながら、深層学習アルゴリズムを適用して深層学習済の匿名モデルを得る深層学習処理部を備えたプライバシ保護データ提供システムである。
ここで、深層学習処理部は、深層学習モデルを得る演算時に使用する重みパラメータ及びバイアスパラメータに対して、それぞれのパラメータ値にラプラス分布に基づいた誤差を与えると共に、ラプラス分布に基づいて誤差を与えた各パラメータが、最大値及び最小値で示される閾値の範囲を超えたとき、閾値の範囲に制限するようにしたことを特徴とする。
【００１２】
本発明の一側面のプライバシ保護データ提供方法は、データベース内の生データに対して、深層学習アルゴリズムを適用して深層学習モデルを得る深層学習処理手順と、記深層学習処理手順で得られた深層学習モデルに対して、差分プライバシに基づく匿名化処理を施す匿名化処理手順と、を含む。
ここで、匿名化処理手順は、深層学習モデルに含まれる重みパラメータ及びバイアスパラメータに対して、それぞれのパラメータ値にラプラス分布に基づいた誤差を与えると共に、ラプラス分布に基づいて誤差を与えた各パラメータが、最大値及び最小値で示される閾値の範囲を超えたとき、閾値の範囲に制限するようにしたことを特徴とする。
【００１３】
本発明の他の側面のプライバシ保護データ提供方法は、データベース内の生データに対して、差分プライバシに基づく匿名化処理を施しながら、深層学習アルゴリズムを適用して深層学習済の匿名モデルを得る深層学習処理手順を含む。
ここで、深層学習処理手順は、深層学習モデルを得る演算時に使用する重みパラメータ及びバイアスパラメータに対して、それぞれのパラメータ値にラプラス分布に基づいた誤差を与えると共に、ラプラス分布に基づいて誤差を与えた各パラメータが、最大値及び最小値で示される閾値の範囲を超えたとき、閾値の範囲に制限するようにしたことを特徴とする。
【発明の効果】
【００１４】
本発明によれば、ラプラス分布に基づいて誤差を与えた各パラメータが、最大値及び最小値で示される閾値の範囲を超えたとき、閾値の範囲に制限するようにしたことで、誤差を与えてデータの匿名化を行っても、データの変動範囲を適正な範囲に制限することができ、適切な匿名化ができるようになる。その結果、匿名化による深層学習モデルの精度低下を軽減できるようになる。
【図面の簡単な説明】
【００１５】
【図１】本発明の第１の実施の形態例による処理システムの構成例を示すブロック図である。
【図２】本発明の第１の実施の形態例による匿名化処理部内で、ラプラス分布に基づいた誤差を与える構成例を示すブロック図である。
【図３】本発明の第１の実施の形態例による処理の流れの例を示すフローチャートである。
【図４】本発明の第１の実施の形態例による深層学習の概要を示す説明図である。
【図５】本発明の第１の実施の形態例による実験例を示す説明図である。
【図６】本発明の第２の実施の形態例による処理システムの構成例を示すブロック図である。
【図７】本発明の第２の実施の形態例による処理の流れの例を示すフローチャートである。
【図８】本発明の第２の実施の形態例による実験例を示す説明図である。
【図９】本発明の各実施の形態例による誤差の付与と閾値への制限例（例１）の概略を示す説明図である。
【図１０】本発明の各実施の形態例による誤差の付与と閾値への制限例（例２）の概略を示す説明図である。
【発明を実施するための形態】
【００１６】
＜１．第１の実施の形態例＞
以下、本発明の第１の実施の形態例を、図１〜図５を参照して説明する。
【００１７】
［システム全体の構成］
図１は、第１の実施の形態例のプライバシ保護データ提供システムの構成を示す。
データベース１には、個人情報が含まれる多数の生データが蓄積され、データベース１に蓄積された生データが、深層学習処理部２に供給される。深層学習処理部２は、予め用意された深層学習アルゴリズムを適用した演算を行い、生データを深層学習した深層学習モデル３を得る。
【００１８】
そして、深層学習処理部２で得た深層学習モデル３が、匿名化処理部１０に供給される。匿名化処理部１０は、供給された深層学習モデル３に対して、差分プライバシに基づく匿名化処理を施して、匿名化済みの深層学習モデル４（以下、「匿名化モデル４」と称する）を得る。
【００１９】
匿名化処理部１０が、差分プライバシに基づいて匿名化モデル４を得る際には、深層学習モデル３に含まれる重みパラメータ及びバイアスパラメータに対して、それぞれのパラメータ値にラプラス分布に基づいて誤差を与えて、差分プライバシの処理を施す。但し、それぞれのパラメータ値にラプラス分布に基づいた誤差を与える際には、その誤差として、最大値及び最小値を示す閾値で制限するようにした。
ラプラス分布に基づいた誤差を与えるということは、誤差を与えたパラメータ値が、確率的要素を含む値になり、結果的に匿名化が行われた匿名化モデル４が得られることになる。
【００２０】
［ε−差分プライバシの処理構成］
図２は、匿名化処理部１０の機能を示すブロック図である。
図２に示すように、匿名化処理部１０は、データ入力部１１、ε入力部１２、パラメータ構造決定部１３、パラメータ初期値決定部１４、閾値決定部１５、閾値超え判定部１６及び閾値計算部１７を備える。更に、匿名化処理部１０は、匿名化演算部１８及びデータ出力部１９を備える。
【００２１】
データ入力部１１には、深層学習モデルのデータが入力され、このデータが匿名化演算部１８に供給される。ε入力部１２には、差分プライバシの処理を行う際の指標「ε」が入力され、指標「ε」が、匿名化演算部１８に供給される。
【００２２】
パラメータ構造決定部１３は、深層学習モデル３のパラメータ構造を決める機能を有し、このパラメータ構造決定部１３で決定された深層学習モデル３のパラメータ構造が、匿名化演算部１８に供給される。なお、パラメータ構造決定部１３で決定されるパラメータ構造には、少なくとも重みパラメータとバイアスパラメータが含まれる。そして、匿名化演算部１８は、これら重みパラメータとバイアスパラメータに誤差を与える処理を行う。
【００２３】
パラメータ初期値決定部１４は、上述した重みパラメータとバイアスパラメータのパラメータ初期値を決定する。このパラメータ初期値は、匿名化演算部１８に供給され、匿名化演算部１８は、このパラメータ初期値を用いて、パラメータ構造決定部１３で決定されるパラメータ構造の初期値を決定する。
【００２４】
閾値決定部１５は、ラプラス分布に基づいて得た誤差を設定する際の最大値と最小値を制限するための閾値を決定する。この閾値決定部１５における閾値の決定の際には、後述する閾値計算部１７での計算結果が利用される。
閾値超え判定部１６は、匿名化演算部１８が演算を行う際に、パラメータ構造決定部１３で決定した誤差値が、閾値決定部１５で決定した閾値（最大値又は最小値）を超えたか否かを判定する。
【００２５】
閾値計算部１７は、閾値を設定するための計算を行い、計算結果を匿名化演算部１８に供給する。
匿名化演算部１８は、閾値超え判定部１６での判定結果が、閾値を超えていた場合には閾値を誤差値とする処理を行う。匿名化演算部１８で演算した結果は、データ出力部１９から出力される。
【００２６】
［全体の処理の流れ］
図３は、第１の実施の形態例のプライバシ保護データ提供システムでの処理の流れを示すフローチャートである。
まず、深層学習処理部２は、データベース１から生データを取得する（ステップＳ１１）。そして、深層学習処理部２は、取得した生データに対して、予め用意された深層学習アルゴリズムを適用して深層学習を行い（ステップＳ１２）、深層学習処理の結果として、深層学習済モデルを取得する（ステップＳ１３）。
【００２７】
次に、ステップＳ１３で取得した深層学習済モデルに対して、匿名化処理部１０が、匿名化処理を行う（ステップＳ１４）。この匿名化処理を行う際には、閾値による制限を設定した上で、ラプラス分布に基づく誤差の付与を行う。
なお、ステップＳ１４において、匿名化処理の制限に使用される閾値は、匿名化処理部１０における、重みパラメータの変動量の最大値及び最小値を示す閾値と、バイアスパラメータの変動量の最大値及び最小値を示す閾値である。これらの閾値の生成処理（ステップＳ２０）の詳細については数式を用いて後述する。
そして、匿名化処理部１０によるステップＳ１４での匿名化処理の実行で、匿名化モデルを取得し（ステップＳ１５）、得られた匿名化モデルをデータ出力部１９から出力する。
【００２８】
［深層学習の詳細］
次に、ここまで説明したステップＳ１２〜Ｓ１５の各処理の詳細について説明する。
まず、図４を参照して、深層学習が行われる例について説明する。
図４において、Ｈ（ｌ）は、深層学習の１番目の層を示す。図４はＬ＝３の例であり、全体でＬ＋１個の層を持っている。入力層はＨ（０）、出力層はＨ（Ｌ）である。それぞれの層は、複数（又は１つ）のノードを有する。ノードＮｉ（ｌ）は、層Ｈ（ｌ）のｉ番目のノードを表し、ｎ（ｌ）は層Ｈ（ｌ）におけるノードの個数を表す。層Ｈ（ｌ）には、ノードＮ１（ｌ），Ｎ２（ｌ），・・・，Ｎｎ（ｌ）（ｌ）がある。
【００２９】
また、図４において、ｗｉｊ（ｌ）は、ノードＮｉ（ｌ−１）とノードＮｊ（ｌ）の間の重みパラメータを表す。ｂｊ（ｌ）は、ノードＮｊ（ｌ）へのバイアスパラメータを表す。Ｆ（ｌ）は、層Ｈ（ｌ）の活性化関数を表す。ｘｉ（ｌ）はノードＮｉ（ｌ）への入力を表し、ｙｉ（ｌ）はノードＮｉ（ｌ）からの出力を表す。
これらの入出力の値は、以下の式で計算される。
【００３０】
【数１】
2018097467.tif 000003
【００３１】
ここで、ｔｉは、ノードＮｉ（Ｌ）の目標出力値を表し、Ｍは誤差関数を表す。誤差関数Ｍは、入力としてｙｉ（Ｌ）及びｔｉを取り、その誤差の値を返す。
学習データは、いくつかのバッチと呼ばれるまとまりに分割される。以下のプロセスは各バッチに対して行われる。
【００３２】
バッチ内の各レコードに対して、深層学習アルゴリズムにより、ｙｉ（Ｌ）を計算する（ｉ＝１，・・・，ｎ（Ｌ））。
次に、深層学習アルゴリズムにより、各ノードＮｉ（ｌ）における誤差信号（δｉ（ｌ）とおく）を計算する。ｌ＝Ｌのとき、δｉ（Ｌ）は以下の［数２］式のように計算される。
【００３３】
【数２】
2018097467.tif 000004
【００３４】
ｌ＝１，・・・・，Ｌ−１に対しては、δｉ（ｌ）は以下の［数３］式のように計算される。
【００３５】
【数３】
2018097467.tif 000005
【００３６】
そして、深層学習アルゴリズムにより、δｉ（ｌ）をバッチ内の各レコードに対して計算し、その総和を新たにδｉ（ｌ）とおく。
次に、変動量Δｗｉｊ（ｌ）を、以下のように定義する。
【００３７】
【数４】
2018097467.tif 000006
【００３８】
最後に、深層学習アルゴリズムにより、各重みパラメータｗｉｊ（ｌ）  for ｌ＝１，・・・，Ｌ，ｉ＝１，・・・，ｎ（ｌ−１），  and ｊ＝１，・・・，ｎ（ｌ）を、以下の［数５］式のように更新する。
【００３９】
【数５】
2018097467.tif 000007
【００４０】
ここで、学習率α、正則項λは、事前に決定しておく。
バイアスパラメータに関しては、以下のように更新する。
【００４１】
【数６】
2018097467.tif 000008
【００４２】
ここで、Δｂｊ（ｌ）＝δｊ（ｌ）である。
この［数１］式から［数６］式のプロセスを、全てのバッチに対して行う。
また、このプロセスを複数回繰り返す。この繰り返し回数をエポック数と呼ぶ。エポック数は、深層学習を行う前に事前引用文献、又は学習を進めながら決定する。
【００４３】
［ε−差分プライバシの詳細］
次に、ε−差分プライバシについて説明する。
例えば、データベースＤとデータベースＤ′は、最大で１レコードだけ異なるとする。ランダム機構Ａは、出力の全ての集合Ｙについて、以下の［数７］式の条件が成り立つとき、ε−差分プライバシを実現する。
【００４４】
【数７】
2018097467.tif 000009
【００４５】
データベースＤとデータベースＤ′とを、１レコードだけ異なるデータベースであると考える。入力のデータベースとして理論上可能性のある全てのデータベースの集合をＱとおく。このとき、ｆを、ｆ：Ｑ→Ｒである関数とする。ここで、全てのデータベースＤ及びデータベースＤ′に対して以下の［数８］式が成立するとき、Δｆをｆのグローバルセンシティビティ（global sensitivity）、つまりｆの値が取り得る範囲と定義する。
【００４６】
【数８】
2018097467.tif 000010
【００４７】
次に、ラプラスメカニズムと呼ばれる、ε−差分プライバシを満たす匿名化のメカニズムを説明する。
Lap(v)を、平均０、スケールがｖであるラプラス分布に基づいてランダムな誤差を出力する関数であるとする。このとき、ある関数ｆに対して、ランダムメカニズムＡが、ｆ（Ｄ）＋Lap（Δｆ／ε）を出力するとき、ランダムメカニズムＡは、ε−差分プライバシを満たす。
【００４８】
ここでは、誤差ｂを与える対象の変数が、１つのデータの有無によって変動し得る値の幅の最大値をｄとおく。ここでの最大値ｄは、実際の値ではなく、匿名化前のデータベースとして想定し得る値の幅から算出する。そして、誤差ｂ＝ｄ／εとする。つまり、最大値ｄの値が大きく、εが小さいほど、誤差ｂの値が大きくなり、与えられる誤差が大きくなる。
【００４９】
なお、深層学習の重みパラメータやバイアスパラメータは複数存在する。これらパラメータの集合に対してε−差分プライバシを満たすこともできるが、本実施の形態では、個々のパラメータに対して個別にε−差分プライバシを満たすようにする。
このように個々のパラメータに対して個別にε−差分プライバシを満たすようにする場合には、ランダム機構Ａは、各パラメータにおける出力の全ての集合Ｙについて、以下の式が成り立ち、個々のパラメータに対して個別にε−差分プライバシを満たすことになる。なお、データベースＤとデータベースＤ′は、最大で１レコードだけ異なる。
【００５０】
2018097467.tif 000011
【００５１】
［各パラメータの閾値設定例］
次に、重みパラメータｗｉｊ（ｌ）とバイアスパラメータｂｊ（ｌ）に対して値の閾値を設定する処理について説明する。なお、この処理は、図３のステップＳ２０の処理に相当する。
この処理は、１レコードだけ異なるときに変わりうる値の、理論上の最大値（グローバルセンシティビティ）を減少させることで、パラメータに与える誤差を減少させるために行われる。これにより、深層学習モデルの精度低下を軽減させる、つまり精度の向上を図ることができる。
【００５２】
ここでは、重みパラメータｗｉｊ（ｌ）の最大値をｗｍａｘ、最小値をｗｍｉｎとする。また、バイアスパラメータｂｊ（ｌ）の最大値をｂｍａｘ、最小値をｂｍｉｎとする。
また、本実施の形態では、深層学習への入力値（学習データ）にも閾値を設定する。この入力値の閾値は、ここでは［０，１］とする。ここでの閾値[０，１]とは、最小値を“０”とし、最大値を“１”として、“０”以上“１”以下に制限することを意味する。
【００５３】
本実施の形態では、匿名化処理部１０は、深層学習を行った後、学習済重みパラメータｗｉｊ（ｌ）に対して誤差を与える。つまり、深層学習時の全てのｉ，ｊ，ｌ（図３参照）に対して、ｗｉｊ（ｌ）＋Lap（ｗｍａｘ−ｗｍｉｎ／ε）を計算する。この計算結果を、ｒｉｊ（ｌ）とおく。もし、計算結果ｒｉｊ（ｌ）の値が、最大値ｗｍａｘを超えた場合、重みパラメータｗｉｊ（ｌ）の値を最大値（閾値）ｗｍａｘに修正する。
同様に、もし計算結果ｒｉｊ（ｌ）の値が、最小値ｗｍｉｎを下回った場合、重みパラメータｗｉｊ（ｌ）の値を最小値（閾値）ｗｍｉｎに修正する。
【００５４】
また、この最大値及び最小値で制限する処理を、バイアスパラメータｂｊ（ｌ）に対しても行う。つまり、バイアスパラメータｂｊ（ｌ）の計算結果を、ｍｉｎ（ｂｍａｘ，ｍａｘ（ｂｍｉｎ，ｂｊ（ｌ）＋Lap（（ｂｍａｘ−ｂｍｉｎ）／ε）））に設定する。
【００５５】
［閾値を設定したときにε−差分プライバシを満たすことの説明］
次に、閾値（最大値、最小値）で誤差を制限したときのパラメータが、ε−差分プライバシを満たしたものであることを説明する。
上述したように、本実施の形態では、深層学習時の重みパラメータｗｉｊ（ｌ）やバイアスパラメータｂｊ（ｌ）（図４参照）として、重みパラメータｗｉｊ（ｌ）の理論上の最大幅（グローバルセンシティビティ）は（ｗｍａｘ−ｗｍｉｎ）であり、バイアスパラメータｂｊ（ｌ）の理論上の最大幅（グローバルセンシティビティ）は（ｂｍａｘ−ｂｍｉｎ）である。次に説明するように、学習済み重みパラメータｗｊ（ｌ）の計算結果を、ｍｉｎ（ｗｍａｘ，ｍａｘ（ｗｍｉｎ，ｂｊ（ｌ）＋Lap（（ｗｍａｘ−ｗｍｉｎ）／ε）））に設定し、学習済みバイアスパラメータｂｊ（ｌ）の計算結果を、ｍｉｎ（ｂｍａｘ，ｍａｘ（ｂｍｉｎ，ｂｊ（ｌ）＋Lap（（ｂｍａｘ−ｂｍｉｎ）／ε）））に設定することで、ε−差分プライバシを満たすことができる。
【００５６】
ランダムメカニズムＡが、ｍｉｎ（ｆｍｉｎ， ｍａｘ（ｆｍａｘ，ｆ（Ｄ）＋Lap（Δｆ／ε）））を出力するとき、ランダムメカニズムＡはε−差分プライバシを実現する。ここで、ｆｍａｘ及びｆｍｉｎは、ｆ（Ｄ）が取り得る理論上の最大値と最小値である。
ここで、データベースＤと、そのデータベースＤに対して１レコードだけ異なるデータベースＤ′をおく。
また、Ｆ（Ｄ）＝ｆ（Ｄ）＋Lap（Δｆ／ε）とおく。Ｆ（Ｄ）の値が［ｆｍｉｎ，ｆｍａｘ］の範囲に入るとき、［数７］式が成立する。
【００５７】
次に、Ｆ（Ｄ）の値がｆｍｉｎを下回る場合を考える。このとき、Ａ（Ｄ）の出力値はｆｍｉｎになる。Ａ（Ｄ）の出力がｆｍｉｎになる確率は、次の［数９］式で表される。
【００５８】
【数９】
2018097467.tif 000012
【００５９】
［数９］式において、Lap（ｖ，ｕ）は、スケールパラメータがｖであり、平均との差がｕである、ラプラス分布の確率密度関数の値を表す。
同様に、Ａ（Ｄ′）の出力値がｆｍｉｎとなる確率は、次の［数１０］式で表される。
【００６０】
【数１０】
2018097467.tif 000013
【００６１】
［数９］式の値と、［数１０］式の値の比は、最大で［数１１］式で表される。
【００６２】
【数１１】
2018097467.tif 000014
【００６３】
ここで、｜ｆ（Ｄ）−ｆ（Ｄ′）｜≦Δｆであるから、［数１１］式の値は、ｅｘｐ（ε）以下である。したがって、ε−差分プライバシを満たす。
【００６４】
次に、Ｆ（Ｄ）の値がｆｍａｘ以上となる場合を考える。このとき、Ａ（Ｄ）の出力値はｆｍａｘに制限される。Ａ（Ｄ）の出力がｆｍａｘとなる確率は、次の［数１２］式で表される。
【００６５】
【数１２】
2018097467.tif 000015
【００６６】
同様に、Ａ（Ｄ′）の出力値がｆｍａｘとなる確率は、次の［数１３］式で表される。
【００６７】
【数１３】
2018097467.tif 000016
【００６８】
［数１２］式の値と、［数１３］式の値の比は、最大で［数１４］式で表される。
【００６９】
【数１４】
2018097467.tif 000017
【００７０】
ここで、｜ｆ（Ｄ）−ｆ（Ｄ′）｜≦Δｆであるから、［数１４］式の値は、ｅｘｐ（ε）以下である。したがって、ε−差分プライバシを満たす。
このように誤差を最大値と最小値の閾値に制限することがε−差分プライバシを満たすことは、全てのパラメータについて成立する。したがって、本実施の形態のように各パラメータの誤差を閾値で制限することで、ε−差分プライバシが成り立つ。
【００７１】
図９は、ここまで数式を用いて説明した、誤差を最大値と最小値の閾値に制限する処理の概略を示すものである。図９に示すように、例えばあるパラメータが取り得る値の範囲が“０”以上“１”以下であり、ある時点でのパラメータ値が０．８であるとする（グローバルセンシティビティは、最大値“１”と最小値“０”の差）。そして、このパラメータ値“０．８”に誤差を付与して、誤差付与済のパラメータ値が“１．１”になったとき、パラメータ値を閾値の範囲の上限値である“１”に制限する処理が行われる。
なお、この図９に示す例は、パラメータを閾値で制限する概略を非常に簡略化して示すものであり、実際の閾値に制限する処理は、ここまで数式を参照して説明した様々な条件を考慮して行われるものである。
【００７２】
［実データで評価した例］
図５は、本実施の形態の処理を、評価用のデータセットに対して実行した場合の例を示す。ここでは、評価用のデータセットとして、プライバシ保護データマイニングの分野で広く利用されている、［アダルトデータセット（Adult data set）］を利用する。［アダルトデータセット］は、１５種類の属性（年齢、性別、人種、年収、など）から構成されており、欠損値を含むレコードを除外して、４５，２２２レコードから成る。年収の属性は、各レコードの人物の年収が、５万ドルを超えているか否かの２値を取る。
そして、年収を除く１４の属性から、年収が５万ドルを超えているか否かを予測する深層学習システムを構築する。
【００７３】
まず、差分プライバシを満たすような匿名化を行わない、生データに対して事前実験を行い、深層学習モデルの精度が高くなるような深層学習アルゴリズムの構造を決定した。学習率は０．０１、バッチサイズは５０、エポック数は５００、正則項は０．００１、中間層の数は４（入力層、出力層を含めると、全部で５層）が良い結果を出した。
【００７４】
ここでは、１０分割交差検定を行って、差分プライバシを満たす匿名化を行うと共に、その匿名化を行う際に、誤差の最大値と最小値を閾値に制限する処理を行った場合の匿名化モデルの精度を計測した。この例では、精度を評価する手法として、手法［ａｃｃｕｒａｃｙ］と手法［ｆ−ｍｅａｓｕｒｅ］を用いた。１０分割交差検定は、データセットを９：１の比率で２つに分け、比率９の方のデータをトレーニングデータとし、比率１のデータをテストデータとする。すなわち、比率９のトレーニングデータを使って学習を行い、比率１のテストデータから、給料を除く１４種類の属性を入力として学習済みの深層学習モデルに投入して、給料を予測する処理を行う。そして、その予測結果と、実際の値を比較して評価を行う。この評価を１０回行うようにして、各レコードが一度ずつテストデータに含まれるようにする。
【００７５】
手法［ａｃｃｕｒａｃｙ］と手法［ｆ−ｍｅａｓｕｒｅ］の２つの評価指標の値（図５の縦軸）は、いずれも０から１までの値であり、１に近いほど精度が高いことを示す。図５の横軸はデータセットの数（バッチサイズ）を示し、図５Ａ、図５Ｂ、図５Ｃは、それぞれε＝１、ε＝１０、ε＝１００の場合を示す。
例えば、図５Ｃに示す例では、手法［ａｃｃｕｒａｃｙ］での評価指標値が０．８５、手法［ｆ−ｍｅａｓｕｒｅ］の評価指標値が０．７９となり、いずれも良好な精度が確保されていることが分かる。
【００７６】
＜２．第２の実施の形態例＞
次に、本発明の第２の実施の形態例を、図６〜図８を参照して説明する。この第２の実施の形態例を説明する図６〜図８において、第１の実施の形態例で説明した図１〜図５と同一の構成及び処理については同一符号を付し、詳細な説明を省略する。
【００７７】
［システム全体の構成］
図６は、第２の実施の形態例のプライバシ保護データ提供システムの構成を示す。
データベース１には、個人情報が含まれる多数の生データが蓄積され、データベース１に蓄積された生データが、深層学習処理部２０に供給される。深層学習処理部２０は、予め用意された深層学習アルゴリズムを適用した演算を行うと同時に、深層学習の演算時に、差分プライバシに基づく匿名化処理を施して、匿名化済みの深層学習モデルである、匿名化モデル４を得る。
【００７８】
深層学習処理部２０が、差分プライバシに基づいて匿名化モデル４を得る際には、深層学習アルゴリズムで使用する重みパラメータ及びバイアスパラメータに対して、それぞれのパラメータ値の変動量にラプラス分布に基づいて誤差を与えて、差分プライバシの処理を施す。但し、それぞれのパラメータ値の変動量にラプラス分布に基づいた誤差を与える際には、その誤差として、最大値及び最小値を示す閾値で制限するようにした。
ラプラス分布に基づいた誤差を与えるということは、誤差を与えたパラメータ値が、確率的要素を含む値になり、結果的に匿名化が行われた匿名化モデル４が得られることになる。
深層学習処理部２０が深層学習時に差分プライバシに基づいて匿名化モデル４を得るための誤差の生成は、図２に示した匿名化処理部１０での処理と同様の構成で実現される。
【００７９】
［全体の処理の流れ］
図７は、第２の実施の形態例のプライバシ保護データ提供システムでの処理の流れを示すフローチャートである。
まず、深層学習処理部２０は、データベース１から生データを取得する（ステップＳ３１）。そして、深層学習処理部２０は、取得した生データのパラメータの変動量に対して、グローバルセンシティビティによる制限を設定したラプラス分布に基づく誤差の付与を行いながら、予め用意された深層学習アルゴリズムを適用して深層学習を行う（ステップＳ３２）。このときには、深層学習を行いながら逐次的に、パラメータの変動量のグローバルセンシティビティを計算する。パラメータの変動量のグローバルセンシティビティを計算することで、グローバルセンシティビティとプライバシ指標「ε」からラプラス分布が決まり、ラプラス分布で誤差を与えることで、匿名化が行われる。そして、深層学習処理の結果として、匿名化モデルを取得し（ステップＳ３３）、得られた匿名化モデルをデータ出力部１９から出力する。
【００８０】
ステップＳ３２において、匿名化処理の制限に使用される閾値は、深層学習処理部２０における、重みパラメータの変動量の最大値及び最小値を示す閾値と、バイアスパラメータの変動量の最大値及び最小値を示す閾値である。
【００８１】
［深層学習の詳細］
次に、ここまで説明したステップＳ３１〜Ｓ３３の各処理の詳細について説明する。
本実施の形態例では、活性化関数と誤差関数を事前に決めて、匿名化された深層学習を行う。
例えば、ｆ（ｘ）＝ｍａｘ（０；ｘ）で定義されるＲｅＬＵが、深層学習の最終層を除く活性化関数として広く利用されている。
深層学習の利用目的として、カテゴリ分類の場合、最終層の活性化関数（Ｆ（Ｌ））
としてソフトマックス関数が、また、誤差関数としてクロスエントロピー誤差関数が広く利用されている。
ソフトマックス関数は、次の［数１５］式のように定義される。
【００８２】
【数１５】
2018097467.tif 000018
【００８３】
また、クロスエントロピー誤差関数は、次の［数１６］式のように定義される。
【００８４】
【数１６】
2018097467.tif 000019
【００８５】
ここでは、匿名化された深層学習を行う場合、深層学習を行う最終層を除く各層は、活性化関数ReLUを、最終層の活性化関数としてソフトマックス関数を、誤差関数としてクロスエントロピー誤差関数を利用する。
最終層の活性化関数がソフトマックス関数であり、かつ、誤差関数がクロスエントロピー誤差関数の場合、誤差信号δｊ（Ｌ）  for ｊ＝１，・・・，ｎ(L)の値は、次の［数１７］式に示すように計算される。
【００８６】
【数１７】
2018097467.tif 000020
【００８７】
［数１７］式において、ｙｊ（Ｌ）はノードＮｊ（Ｌ）の出力値を表し、ｔｊ（Ｌ）はノードＮj（Ｌ）の目標出力値を表す。
最終層以外の層において活性化関数ReLUを使った場合、最終層以外の各ノードの誤差信号δｊ（ｌ）＝１，・・・，Ｌ−１は次の［数１８］式で計算される。
【００８８】
【数１８】
2018097467.tif 000021
【００８９】
ｘｊ（１）の値として取り得る範囲は、［ｂｊ（１）＋Σｉｍｉｎ（ｗｉ，ｊ（１），０），  ｂｊ（１）＋Σｉｍａｘ（ｗｉ，ｊ（１），０）］である。また、ｘｊ（２）の値として取り得る範囲は、［ｂｊ（２）＋Σｉ（ｂｉ（１）＋Σｋｍａｘ（ｗｋ，ｉ（１），０））ｍｉｎ（ｗｉ，ｊ（２），０），  ｂｊ（２）＋Σｉ（ｂｉ（１）＋Σｋｍａｘ（ｗｋ，ｉ（１），０））ｍａｘ（ｗｉ，ｊ（２），０）］となる。深層学習では、ｘｊ（ｌ） for ｌ＝１，・・・，Ｌは、次の［数１９］式で計算される。
【００９０】
【数１９】
2018097467.tif 000022
【００９１】
ここで、ｍｉｎ（ｙｉ（０））＝０であり、ｍａｘ（ｙｉ（０））＝１である。これは、深層学習の第１層目への入力値を０以上１以下の範囲に正規化しているためである。また、最終層以外の層では、活性化関数ReLUを使っているので、ｌ＝１，・・・，Ｌ−１において、ｙｊ（ｌ）は、次の［数２０］式によって計算される。
【００９２】
【数２０】
2018097467.tif 000023
【００９３】
これによって、ｍａｘ（ｙｊ（ｌ））の値は、常に０以上であることがわかる。
次に、誤差信号δｊ（ｌ）の取り得る値の範囲を計算する。深層学習モデルの出力値の範囲は、−１から１までであるので、次の［数２１］式のように定義される。
【００９４】
【数２１】
2018097467.tif 000024
【００９５】
また、ｌ＝１，・・・，Ｌ−１について、次の［数２２］式で示される。ここで、全てのｊとｌについて、ｍｉｎ（δｊ（ｌ））であり、ｍａｘ（δｊ（ｌ））≧０である。
【００９６】
【数２２】
2018097467.tif 000025
【００９７】
最終的には、次の［数２３］式が得られる。
【００９８】
【数２３】
2018097467.tif 000026
【００９９】
ｂｊ（ｌ）については、次の［数２４］式で示される。
【０１００】
【数２４】
2018097467.tif 000027
【０１０１】
また、ｌ＝１，・・・，Ｌ−１について、次の［数２５］式で示される。
【０１０２】
【数２５】
2018097467.tif 000028
【０１０３】
既に述べたように、重みパラメータの変動量Δｗｉｊ（ｌ）と、バイアスパラメータの変動量Δｂｊ（ｌ）に基づいて、重みパラメータとバイアスパラメータを、［数５］式と［数６］式により更新する。つまり、データ入力ごとに毎回、重みパラメータとバイアスパラメータを更新する。
ここで本実施の形態例では、このときの変動量にラプラス分布に基づく誤差を与える。重みパラメータの変動量Δｗｉｊ（ｌ）と、バイアスパラメータの変動量Δｂｊ（ｌ）についても、値の閾値を設定する。
【０１０４】
ここでは、ΔｗｍａｘとΔｗｍｉｎを、重みパラメータの変動量Δｗｉｊ（ｌ）の最大値と最小値とする。また、ΔｂｍａｘとΔｂｍｉｎを、バイアスパラメータΔｂｊ（ｌ）の最大値と最小値とする。
【０１０５】
また、深層学習のエポック数をＥとおく。各バッチに対して学習を行う際に、それぞれのｗｉｊ（ｌ）とｂｊ（ｌ）に対して、重みパラメータの変動量Δｗｉｊ（ｌ）を、ｍｉｎ（Δｗｍａｘ， ｍｉｎ（Δｗｍａｘ，ｗｉｊ（ｌ）＋Lap（（Δｗｍａｘ−Δｗｍｉｎ）・Ｅ／ε）））に設定する。また、バイアスパラメータの変動量Δｂｊ（ｌ）をｍｉｎ（Δｂｍａｘ， ｍａｘ（Δｂｍｉｎ，ｂｊ（ｌ）＋Lap（（Δｂｍａｘ−Δｂｍｉｎ）・Ｅ／ε）））に設定する。
【０１０６】
［閾値を設定したときにε−差分プライバシを満たすことの説明］
次に、深層学習を行う際に、パラメータを閾値（最大値,最小値）で誤差を制限した匿名モデルが、ε−差分プライバシを満たしたものであることを説明する。
各重みパラメータとバイアスパラメータは、［数５］式と［数６］式に基づいて更新される。［数５］式と［数６］式において、重みパラメータの変動量Δｗｉｊ（ｌ）とバイアスパラメータの変動量Δｂｊ（ｌ）は学習の入力値に依存して変わるが、それ以外の値は入力値に依存しない。したがって、第１の実施の形態で、閾値を設定したときにε−差分プライバシを満たすことを証明した場合と同様に、Δｗｉｊ（ｌ）をｍｉｎ（Δｗｍａｘ， ｍａｘ（Δｗｍｉｎ，ｗｉｊ（ｌ）＋Lap（（Δｗｍａｘ−Δｗｍｉｎ）・Ｅ／ε）））に設定し、また、Δｂｊ（ｌ）をｍｉｎ（Δｂｍａｘ， ｍａｘ（Δｂｍｉｎ，ｂｊ（ｌ）＋Lap（（Δｂｍａｘ−Δｂｍｉｎ）・Ｅ／ε)))に設定することで、各エポックのイテレーションは、パラメータベース（ε／Ｅ）−差分プライバシを満たす。
全体でＥエポックあるので、次に説明する証明より、最終的にε−差分プライバシを満たす。
【０１０７】
ランダムメカニズムＡが、ｄ個のランダムメカニズムＡ１，・・・，Ａｄから成り立っており、これを１回ずつ続けて実施するものとする。ここでは、ｉ≧２において、Ａｉは入力としてＡｉ−１の出力値を取る。Ａｄの出力値が、Ａの出力値となる。
各Ａｉは、パラメータベースεｉ−差分プライバシを満たすものとする。このとき、Ａはパラメータベース（Σｉ＝１ｄεｉ）の差分プライバシを実現する。
【０１０８】
ランダムメカニズムＡは、ｄ個のランダムメカニズムＡ１，・・・，Ａｄから成り立っており、これを１回ずつ続けて実施するものとする。ｉ≧２において、Ａｉは入力としてＡｉ−１の出力値を取る。Ａｄの出力値が、Ａの出力値となる。ここで、各Ａｉは、εｉ−差分プライバシを満たすものとする。このとき、ランダムメカニズムＡは（Σｉ＝１ｄεｉ）−差分プライバシを実現する。
この処理は各パラメータに対して実行されるので、ここでのランダムメカニズムＡは、パラメータベース（Σｉ＝１ｄεｉ）−差分プライバシを実現する。
【０１０９】
図１０は、第２の実施の形態例での、誤差を最大値と最小値の閾値に制限する処理の概略を示すものである。図１０に示すように、例えばあるパラメータの変動量として取り得る最大の範囲が“０”以上“１”以下であり、ある時点での変動量が０．６であるとする。そして、学習しながら逐次的に算出された閾値の範囲が、“０．３”以上“０．７”以下であるとする（この場合のグローバルセンシティビティは、０．７―０．３＝０．４）。この閾値の範囲（グローバルセンシティビティ）とプライバシ指標「ε」からラプラス分布が決まる。ラプラス分布で誤差を与える処理が行われる。なお、グローバルセンシティビティ（Δｆ）は、既に説明した［数８］式で計算されるものである。
ここで、図１０に示すように、パラメータの変動量“０．５”に誤差を付与して、誤差付与済のパラメータの変動量が“０．１”になったとき、その時点での閾値の範囲の下限値である“０．３”に制限する処理が行われる。ラプラス分布はグローバルセンシティビティとプライバシ指標「ε」から計算されるため、グローバルセンシティビティの値を小さく（つまり閾値の幅を小さく）することで、ラプラス分布の誤差を小さくすることができ、深層学習の精度の向上につながる。
この図１０に示す例についても、図９の例と同様に、パラメータの変動量を閾値で制限する概略を非常に簡略化して示すものであり、実際の閾値に制限する処理は、ここまで数式を参照して説明した様々な条件を考慮して行われるものである。
また、第２の実施の形態例の場合でも、グローバルセンシティビティ（Δｆ）が、パラメータの変動量として取り得る最大の範囲と一致する場合には、図９に示す状態で閾値の制限が行われることになる。
【０１１０】
［実データで評価した例］
図８は、本実施の形態の処理を、評価用のデータセットに対して実行した場合の例を示す。この図８の例は、第１の実施の形態で説明した図５での評価と同じ条件で行ったものである。
図８の横軸はデータセットの数（バッチサイズ）を示し、図８Ａ、図８Ｂ、図８Ｃは、それぞれε＝１、ε＝１０、ε＝１００の場合を示す。
図８Ａ、図８Ｂ、図８Ｃに示すように、いずれの場合でも良好な精度が確保されていることが分かる。ここで、図５（第１の実施の形態例）と、図８（第２の実施の形態例）とを比較すると分かるように、εの値が小さいときは、第１の実施の形態例の方が、高い精度が得られる。一方、εの値が大きいときは、第２の実施の形態例の方が、高い精度が得られる。但し、この結果は使用するデータセットによって変わるものであり、いずれの実施の形態を適用するのが好ましいかは、使用するデータセットによって異なる。
【０１１１】
なお、図５及び図８に示す評価例では、予測した年収が５万ドル以下で、実際の年収が５万ドル以下である場合の回数をＴＮ、予測した年収が５万ドル以下で、実際の年収が５万ドルを超えている場合の回数をＦＮとした。また、予測した年収が５万ドルを超えていて、実際に５万ドルを超えている場合の回数をＴＰ、予測した年収が５万ドルを超えていて、実際の年収が５万ドル以下である場合の回数をＦＰとした。
このとき、手法［ａｃｃｕｒａｃｙ］では、［数２６］式での評価を行う。また、手法［ｆ−ｍｅａｓｕｒｅ］では、［数２７］式での評価を行う。
【０１１２】
【数２６】
2018097467.tif 000029
【０１１３】
【数２７】
2018097467.tif 000030
【０１１４】
以上説明したように、本発明の各実施の形態によると、ラプラス分布に基づいた誤差を与えて匿名化を行う際に、その誤差の最大値と最小値を閾値で制限するようにしたことで、匿名化を行う際に与える誤差を一定の範囲に制限することができ、誤差が少ない適切な匿名化を行うことができる。その結果、深層学習モデルの精度低下を軽減できるようになる。
【０１１５】
なお、ここまで説明した数式は、本発明の各実施の形態を適用する場合の好適な一例を示したものであり、本発明は、これらの数式で説明した処理に限定されるものではない。
【符号の説明】
【０１１６】
１…データベース（生データ）、２…深層学習処理部、３…深層学習モデル、４…匿名化モデル（匿名化済の深層学習モデル）、１０…匿名化処理部（閾値制限付き差分プライバシ適用）、１１…データ入力部、１２…ε入力部、１３…パラメータ構造決定部、１４…パラメータ初期値決定部、１５…閾値決定部、１６…閾値超え判定部、１７…閾値計算部、１８…匿名化演算部、１９…データ出力部、２０…機械学習処理部（差分プライバシ適用）
【図１】
2018097467.tif 000031
【図２】
2018097467.tif 000032
【図３】
2018097467.tif 000033
【図４】
2018097467.tif 000034
【図５】
2018097467.tif 000035
【図６】
2018097467.tif 000036
【図７】
2018097467.tif 000037
【図８】
2018097467.tif 000038
【図９】
2018097467.tif 000039
【図１０】
2018097467.tif 000040