【解決手段】深層学習が行われた深層学習モデルに対して、そのモデル内のパラメータ値にラプラス分布に基づいた誤差を与えると共に、ラプラス分布に基づいて誤差を与えた各パラメータが、最大値及び最小値で示される閾値の範囲を超えたとき、閾値の範囲に制限するようにして、匿名化を行う。あるいは、深層学習モデルを得る演算時に、その演算で使用するパラメータ値にラプラス分布に基づいた誤差を与えると共に、ラプラス分布に基づいて誤差を与えた各パラメータが、最大値及び最小値で示される閾値の範囲を超えたとき、閾値の範囲に制限するようにしたようにして、匿名化を行う。
データベース内の生データに対して、差分プライバシに基づく匿名化処理を施しながら、深層学習アルゴリズムを適用して深層学習済の匿名モデルを得る深層学習処理部を備えたプライバシ保護データ提供システムであり、
前記深層学習処理部は、深層学習モデルを得る演算時に使用する重みパラメータ及びバイアスパラメータに対して、それぞれのパラメータ値にラプラス分布に基づいた誤差を与えると共に、ラプラス分布に基づいて誤差を与えた各パラメータが、最大値及び最小値で示される閾値の範囲を超えたとき、前記閾値の範囲に制限するようにしたことを特徴とする
プライバシ保護データ提供システム。
前記深層学習処理部が深層学習モデルを得る際に、逐次的にグローバルセンシティビティを計算し、計算したグローバルセンシティビティに基づいて前記ラプラス分布を取得する処理を行い、
その逐次的に取得した前記ラプラス分布に基づいた誤差を与えるようにした
請求項2に記載のプライバシ保護データ提供システム。
データベース内の生データに対して、差分プライバシに基づく匿名化処理を施しながら、深層学習アルゴリズムを適用して深層学習済の匿名モデルを得る深層学習処理手順を含み、
前記深層学習処理手順は、深層学習モデルを得る演算時に使用する重みパラメータ及びバイアスパラメータに対して、それぞれのパラメータ値にラプラス分布に基づいた誤差を与えると共に、ラプラス分布に基づいて誤差を与えた各パラメータが、最大値及び最小値で示される閾値の範囲を超えたとき、前記閾値の範囲に制限するようにしたことを特徴とする
プライバシ保護データ提供方法。
前記深層学習処理手順で深層学習モデルを得る際には、逐次的にグローバルセンシティビティを計算し、計算したグローバルセンシティビティに基づいて前記ラプラス分布を取得し、
その逐次的に取得した前記ラプラス分布に基づいた誤差を与えるようにした
請求項5に記載のプライバシ保護データ提供方法。
【発明を実施するための形態】
【0016】
<1.第1の実施の形態例>
以下、本発明の第1の実施の形態例を、
図1〜
図5を参照して説明する。
【0017】
[システム全体の構成]
図1は、第1の実施の形態例のプライバシ保護データ提供システムの構成を示す。
データベース1には、個人情報が含まれる多数の生データが蓄積され、データベース1に蓄積された生データが、深層学習処理部2に供給される。深層学習処理部2は、予め用意された深層学習アルゴリズムを適用した演算を行い、生データを深層学習した深層学習モデル3を得る。
【0018】
そして、深層学習処理部2で得た深層学習モデル3が、匿名化処理部10に供給される。匿名化処理部10は、供給された深層学習モデル3に対して、差分プライバシに基づく匿名化処理を施して、匿名化済みの深層学習モデル4(以下、「匿名化モデル4」と称する)を得る。
【0019】
匿名化処理部10が、差分プライバシに基づいて匿名化モデル4を得る際には、深層学習モデル3に含まれる重みパラメータ及びバイアスパラメータに対して、それぞれのパラメータ値にラプラス分布に基づいて誤差を与えて、差分プライバシの処理を施す。但し、それぞれのパラメータ値にラプラス分布に基づいた誤差を与える際には、その誤差として、最大値及び最小値を示す閾値で制限するようにした。
ラプラス分布に基づいた誤差を与えるということは、誤差を与えたパラメータ値が、確率的要素を含む値になり、結果的に匿名化が行われた匿名化モデル4が得られることになる。
【0020】
[ε−差分プライバシの処理構成]
図2は、匿名化処理部10の機能を示すブロック図である。
図2に示すように、匿名化処理部10は、データ入力部11、ε入力部12、パラメータ構造決定部13、パラメータ初期値決定部14、閾値決定部15、閾値超え判定部16及び閾値計算部17を備える。更に、匿名化処理部10は、匿名化演算部18及びデータ出力部19を備える。
【0021】
データ入力部11には、深層学習モデルのデータが入力され、このデータが匿名化演算部18に供給される。ε入力部12には、差分プライバシの処理を行う際の指標「ε」が入力され、指標「ε」が、匿名化演算部18に供給される。
【0022】
パラメータ構造決定部13は、深層学習モデル3のパラメータ構造を決める機能を有し、このパラメータ構造決定部13で決定された深層学習モデル3のパラメータ構造が、匿名化演算部18に供給される。なお、パラメータ構造決定部13で決定されるパラメータ構造には、少なくとも重みパラメータとバイアスパラメータが含まれる。そして、匿名化演算部18は、これら重みパラメータとバイアスパラメータに誤差を与える処理を行う。
【0023】
パラメータ初期値決定部14は、上述した重みパラメータとバイアスパラメータのパラメータ初期値を決定する。このパラメータ初期値は、匿名化演算部18に供給され、匿名化演算部18は、このパラメータ初期値を用いて、パラメータ構造決定部13で決定されるパラメータ構造の初期値を決定する。
【0024】
閾値決定部15は、ラプラス分布に基づいて得た誤差を設定する際の最大値と最小値を制限するための閾値を決定する。この閾値決定部15における閾値の決定の際には、後述する閾値計算部17での計算結果が利用される。
閾値超え判定部16は、匿名化演算部18が演算を行う際に、パラメータ構造決定部13で決定した誤差値が、閾値決定部15で決定した閾値(最大値又は最小値)を超えたか否かを判定する。
【0025】
閾値計算部17は、閾値を設定するための計算を行い、計算結果を匿名化演算部18に供給する。
匿名化演算部18は、閾値超え判定部16での判定結果が、閾値を超えていた場合には閾値を誤差値とする処理を行う。匿名化演算部18で演算した結果は、データ出力部19から出力される。
【0026】
[全体の処理の流れ]
図3は、第1の実施の形態例のプライバシ保護データ提供システムでの処理の流れを示すフローチャートである。
まず、深層学習処理部2は、データベース1から生データを取得する(ステップS11)。そして、深層学習処理部2は、取得した生データに対して、予め用意された深層学習アルゴリズムを適用して深層学習を行い(ステップS12)、深層学習処理の結果として、深層学習済モデルを取得する(ステップS13)。
【0027】
次に、ステップS13で取得した深層学習済モデルに対して、匿名化処理部10が、匿名化処理を行う(ステップS14)。この匿名化処理を行う際には、閾値による制限を設定した上で、ラプラス分布に基づく誤差の付与を行う。
なお、ステップS14において、匿名化処理の制限に使用される閾値は、匿名化処理部10における、重みパラメータの変動量の最大値及び最小値を示す閾値と、バイアスパラメータの変動量の最大値及び最小値を示す閾値である。これらの閾値の生成処理(ステップS20)の詳細については数式を用いて後述する。
そして、匿名化処理部10によるステップS14での匿名化処理の実行で、匿名化モデルを取得し(ステップS15)、得られた匿名化モデルをデータ出力部19から出力する。
【0028】
[深層学習の詳細]
次に、ここまで説明したステップS12〜S15の各処理の詳細について説明する。
まず、
図4を参照して、深層学習が行われる例について説明する。
図4において、H
(l)は、深層学習の1番目の層を示す。
図4はL=3の例であり、全体でL+1個の層を持っている。入力層はH
(0)、出力層はH
(L)である。それぞれの層は、複数(又は1つ)のノードを有する。ノードN
i(l)は、層H
(l)のi番目のノードを表し、n
(l)は層H
(l)におけるノードの個数を表す。層H
(l)には、ノードN
1(l),N
2(l),・・・,N
n(l)(l)がある。
【0029】
また、
図4において、w
ij(l)は、ノードN
i(l−1)とノードN
j(l)の間の重みパラメータを表す。b
j(l)は、ノードN
j(l)へのバイアスパラメータを表す。F
(l)は、層H
(l)の活性化関数を表す。x
i(l)はノードN
i(l)への入力を表し、y
i(l)はノードN
i(l)からの出力を表す。
これらの入出力の値は、以下の式で計算される。
【0031】
ここで、t
iは、ノードN
i(L)の目標出力値を表し、Mは誤差関数を表す。誤差関数Mは、入力としてy
i(L)及びt
iを取り、その誤差の値を返す。
学習データは、いくつかのバッチと呼ばれるまとまりに分割される。以下のプロセスは各バッチに対して行われる。
【0032】
バッチ内の各レコードに対して、深層学習アルゴリズムにより、y
i(L)を計算する(i=1,・・・,n
(L))。
次に、深層学習アルゴリズムにより、各ノードN
i(l)における誤差信号(δ
i(l)とおく)を計算する。l=Lのとき、δ
i(L)は以下の[数2]式のように計算される。
【0034】
l=1,・・・・,L−1に対しては、δ
i(l)は以下の[数3]式のように計算される。
【0036】
そして、深層学習アルゴリズムにより、δ
i(l)をバッチ内の各レコードに対して計算し、その総和を新たにδ
i(l)とおく。
次に、変動量Δw
ij(l)を、以下のように定義する。
【0038】
最後に、深層学習アルゴリズムにより、各重みパラメータw
ij(l) for l=1,・・・,L,i=1,・・・,n
(l−1), and j=1,・・・,n
(l)を、以下の[数5]式のように更新する。
【0040】
ここで、学習率α、正則項λは、事前に決定しておく。
バイアスパラメータに関しては、以下のように更新する。
【0042】
ここで、Δb
j(l)=δ
j(l)である。
この[数1]式から[数6]式のプロセスを、全てのバッチに対して行う。
また、このプロセスを複数回繰り返す。この繰り返し回数をエポック数と呼ぶ。エポック数は、深層学習を行う前に事前引用文献、又は学習を進めながら決定する。
【0043】
[ε−差分プライバシの詳細]
次に、ε−差分プライバシについて説明する。
例えば、データベースDとデータベースD′は、最大で1レコードだけ異なるとする。ランダム機構Aは、出力の全ての集合Yについて、以下の[数7]式の条件が成り立つとき、ε−差分プライバシを実現する。
【0045】
データベースDとデータベースD′とを、1レコードだけ異なるデータベースであると考える。入力のデータベースとして理論上可能性のある全てのデータベースの集合をQとおく。このとき、fを、f:Q→Rである関数とする。ここで、全てのデータベースD及びデータベースD′に対して以下の[数8]式が成立するとき、Δfをfのグローバルセンシティビティ(global sensitivity)、つまりfの値が取り得る範囲と定義する。
【0047】
次に、ラプラスメカニズムと呼ばれる、ε−差分プライバシを満たす匿名化のメカニズムを説明する。
Lap(v)を、平均0、スケールがvであるラプラス分布に基づいてランダムな誤差を出力する関数であるとする。このとき、ある関数fに対して、ランダムメカニズムAが、f(D)+Lap(Δf/ε)を出力するとき、ランダムメカニズムAは、ε−差分プライバシを満たす。
【0048】
ここでは、誤差bを与える対象の変数が、1つのデータの有無によって変動し得る値の幅の最大値をdとおく。ここでの最大値dは、実際の値ではなく、匿名化前のデータベースとして想定し得る値の幅から算出する。そして、誤差b=d/εとする。つまり、最大値dの値が大きく、εが小さいほど、誤差bの値が大きくなり、与えられる誤差が大きくなる。
【0049】
なお、深層学習の重みパラメータやバイアスパラメータは複数存在する。これらパラメータの集合に対してε−差分プライバシを満たすこともできるが、本実施の形態では、個々のパラメータに対して個別にε−差分プライバシを満たすようにする。
このように個々のパラメータに対して個別にε−差分プライバシを満たすようにする場合には、ランダム機構Aは、各パラメータにおける出力の全ての集合Yについて、以下の式が成り立ち、個々のパラメータに対して個別にε−差分プライバシを満たすことになる。なお、データベースDとデータベースD′は、最大で1レコードだけ異なる。
【0051】
[各パラメータの閾値設定例]
次に、重みパラメータw
ij(l)とバイアスパラメータb
j(l)に対して値の閾値を設定する処理について説明する。なお、この処理は、
図3のステップS20の処理に相当する。
この処理は、1レコードだけ異なるときに変わりうる値の、理論上の最大値(グローバルセンシティビティ)を減少させることで、パラメータに与える誤差を減少させるために行われる。これにより、深層学習モデルの精度低下を軽減させる、つまり精度の向上を図ることができる。
【0052】
ここでは、重みパラメータw
ij(l)の最大値をw
max、最小値をw
minとする。また、バイアスパラメータb
j(l)の最大値をb
max、最小値をb
minとする。
また、本実施の形態では、深層学習への入力値(学習データ)にも閾値を設定する。この入力値の閾値は、ここでは[0,1]とする。ここでの閾値[0,1]とは、最小値を“0”とし、最大値を“1”として、“0”以上“1”以下に制限することを意味する。
【0053】
本実施の形態では、匿名化処理部10は、深層学習を行った後、学習済重みパラメータw
ij(l)に対して誤差を与える。つまり、深層学習時の全てのi,j,l(
図3参照)に対して、w
ij(l)+Lap(w
max−w
min/ε)を計算する。この計算結果を、r
ij(l)とおく。もし、計算結果r
ij(l)の値が、最大値w
maxを超えた場合、重みパラメータw
ij(l)の値を最大値(閾値)w
maxに修正する。
同様に、もし計算結果r
ij(l)の値が、最小値w
minを下回った場合、重みパラメータw
ij(l)の値を最小値(閾値)w
minに修正する。
【0054】
また、この最大値及び最小値で制限する処理を、バイアスパラメータb
j(l)に対しても行う。つまり、バイアスパラメータb
j(l)の計算結果を、min(b
max,max(b
min,b
j(l)+Lap((b
max−b
min)/ε)))に設定する。
【0055】
[閾値を設定したときにε−差分プライバシを満たすことの説明]
次に、閾値(最大値、最小値)で誤差を制限したときのパラメータが、ε−差分プライバシを満たしたものであることを説明する。
上述したように、本実施の形態では、深層学習時の重みパラメータw
ij(l)やバイアスパラメータb
j(l)(
図4参照)として、重みパラメータw
ij(l)の理論上の最大幅(グローバルセンシティビティ)は(w
max−w
min)であり、バイアスパラメータb
j(l)の理論上の最大幅(グローバルセンシティビティ)は(b
max−b
min)である。次に説明するように、学習済み重みパラメータw
j(l)の計算結果を、min(w
max,max(w
min,b
j(l)+Lap((w
max−w
min)/ε)))に設定し、学習済みバイアスパラメータb
j(l)の計算結果を、min(b
max,max(b
min,b
j(l)+Lap((b
max−b
min)/ε)))に設定することで、ε−差分プライバシを満たすことができる。
【0056】
ランダムメカニズムAが、min(f
min, max(f
max,f(D)+Lap(Δf/ε)))を出力するとき、ランダムメカニズムAはε−差分プライバシを実現する。ここで、f
max及びf
minは、f(D)が取り得る理論上の最大値と最小値である。
ここで、データベースDと、そのデータベースDに対して1レコードだけ異なるデータベースD′をおく。
また、F(D)=f(D)+Lap(Δf/ε)とおく。F(D)の値が[f
min,f
max]の範囲に入るとき、[数7]式が成立する。
【0057】
次に、F(D)の値がf
minを下回る場合を考える。このとき、A(D)の出力値はf
minになる。A(D)の出力がf
minになる確率は、次の[数9]式で表される。
【0059】
[数9]式において、Lap(v,u)は、スケールパラメータがvであり、平均との差がuである、ラプラス分布の確率密度関数の値を表す。
同様に、A(D′)の出力値がf
minとなる確率は、次の[数10]式で表される。
【0061】
[数9]式の値と、[数10]式の値の比は、最大で[数11]式で表される。
【0063】
ここで、|f(D)−f(D′)|≦Δfであるから、[数11]式の値は、exp(ε)以下である。したがって、ε−差分プライバシを満たす。
【0064】
次に、F(D)の値がf
max以上となる場合を考える。このとき、A(D)の出力値はf
maxに制限される。A(D)の出力がf
maxとなる確率は、次の[数12]式で表される。
【0066】
同様に、A(D′)の出力値がf
maxとなる確率は、次の[数13]式で表される。
【0068】
[数12]式の値と、[数13]式の値の比は、最大で[数14]式で表される。
【0070】
ここで、|f(D)−f(D′)|≦Δfであるから、[数14]式の値は、exp(ε)以下である。したがって、ε−差分プライバシを満たす。
このように誤差を最大値と最小値の閾値に制限することがε−差分プライバシを満たすことは、全てのパラメータについて成立する。したがって、本実施の形態のように各パラメータの誤差を閾値で制限することで、ε−差分プライバシが成り立つ。
【0071】
図9は、ここまで数式を用いて説明した、誤差を最大値と最小値の閾値に制限する処理の概略を示すものである。
図9に示すように、例えばあるパラメータが取り得る値の範囲が“0”以上“1”以下であり、ある時点でのパラメータ値が0.8であるとする(グローバルセンシティビティは、最大値“1”と最小値“0”の差)。そして、このパラメータ値“0.8”に誤差を付与して、誤差付与済のパラメータ値が“1.1”になったとき、パラメータ値を閾値の範囲の上限値である“1”に制限する処理が行われる。
なお、この
図9に示す例は、パラメータを閾値で制限する概略を非常に簡略化して示すものであり、実際の閾値に制限する処理は、ここまで数式を参照して説明した様々な条件を考慮して行われるものである。
【0072】
[実データで評価した例]
図5は、本実施の形態の処理を、評価用のデータセットに対して実行した場合の例を示す。ここでは、評価用のデータセットとして、プライバシ保護データマイニングの分野で広く利用されている、[アダルトデータセット(Adult data set)]を利用する。[アダルトデータセット]は、15種類の属性(年齢、性別、人種、年収、など)から構成されており、欠損値を含むレコードを除外して、45,222レコードから成る。年収の属性は、各レコードの人物の年収が、5万ドルを超えているか否かの2値を取る。
そして、年収を除く14の属性から、年収が5万ドルを超えているか否かを予測する深層学習システムを構築する。
【0073】
まず、差分プライバシを満たすような匿名化を行わない、生データに対して事前実験を行い、深層学習モデルの精度が高くなるような深層学習アルゴリズムの構造を決定した。学習率は0.01、バッチサイズは50、エポック数は500、正則項は0.001、中間層の数は4(入力層、出力層を含めると、全部で5層)が良い結果を出した。
【0074】
ここでは、10分割交差検定を行って、差分プライバシを満たす匿名化を行うと共に、その匿名化を行う際に、誤差の最大値と最小値を閾値に制限する処理を行った場合の匿名化モデルの精度を計測した。この例では、精度を評価する手法として、手法[accuracy]と手法[f−measure]を用いた。10分割交差検定は、データセットを9:1の比率で2つに分け、比率9の方のデータをトレーニングデータとし、比率1のデータをテストデータとする。すなわち、比率9のトレーニングデータを使って学習を行い、比率1のテストデータから、給料を除く14種類の属性を入力として学習済みの深層学習モデルに投入して、給料を予測する処理を行う。そして、その予測結果と、実際の値を比較して評価を行う。この評価を10回行うようにして、各レコードが一度ずつテストデータに含まれるようにする。
【0075】
手法[accuracy]と手法[f−measure]の2つの評価指標の値(
図5の縦軸)は、いずれも0から1までの値であり、1に近いほど精度が高いことを示す。
図5の横軸はデータセットの数(バッチサイズ)を示し、
図5A、
図5B、
図5Cは、それぞれε=1、ε=10、ε=100の場合を示す。
例えば、
図5Cに示す例では、手法[accuracy]での評価指標値が0.85、手法[f−measure]の評価指標値が0.79となり、いずれも良好な精度が確保されていることが分かる。
【0076】
<2.第2の実施の形態例>
次に、本発明の第2の実施の形態例を、
図6〜
図8を参照して説明する。この第2の実施の形態例を説明する
図6〜
図8において、第1の実施の形態例で説明した
図1〜
図5と同一の構成及び処理については同一符号を付し、詳細な説明を省略する。
【0077】
[システム全体の構成]
図6は、第2の実施の形態例のプライバシ保護データ提供システムの構成を示す。
データベース1には、個人情報が含まれる多数の生データが蓄積され、データベース1に蓄積された生データが、深層学習処理部20に供給される。深層学習処理部20は、予め用意された深層学習アルゴリズムを適用した演算を行うと同時に、深層学習の演算時に、差分プライバシに基づく匿名化処理を施して、匿名化済みの深層学習モデルである、匿名化モデル4を得る。
【0078】
深層学習処理部20が、差分プライバシに基づいて匿名化モデル4を得る際には、深層学習アルゴリズムで使用する重みパラメータ及びバイアスパラメータに対して、それぞれのパラメータ値の変動量にラプラス分布に基づいて誤差を与えて、差分プライバシの処理を施す。但し、それぞれのパラメータ値の変動量にラプラス分布に基づいた誤差を与える際には、その誤差として、最大値及び最小値を示す閾値で制限するようにした。
ラプラス分布に基づいた誤差を与えるということは、誤差を与えたパラメータ値が、確率的要素を含む値になり、結果的に匿名化が行われた匿名化モデル4が得られることになる。
深層学習処理部20が深層学習時に差分プライバシに基づいて匿名化モデル4を得るための誤差の生成は、
図2に示した匿名化処理部10での処理と同様の構成で実現される。
【0079】
[全体の処理の流れ]
図7は、第2の実施の形態例のプライバシ保護データ提供システムでの処理の流れを示すフローチャートである。
まず、深層学習処理部20は、データベース1から生データを取得する(ステップS31)。そして、深層学習処理部20は、取得した生データのパラメータの変動量に対して、グローバルセンシティビティによる制限を設定したラプラス分布に基づく誤差の付与を行いながら、予め用意された深層学習アルゴリズムを適用して深層学習を行う(ステップS32)。このときには、深層学習を行いながら逐次的に、パラメータの変動量のグローバルセンシティビティを計算する。パラメータの変動量のグローバルセンシティビティを計算することで、グローバルセンシティビティとプライバシ指標「ε」からラプラス分布が決まり、ラプラス分布で誤差を与えることで、匿名化が行われる。そして、深層学習処理の結果として、匿名化モデルを取得し(ステップS33)、得られた匿名化モデルをデータ出力部19から出力する。
【0080】
ステップS32において、匿名化処理の制限に使用される閾値は、深層学習処理部20における、重みパラメータの変動量の最大値及び最小値を示す閾値と、バイアスパラメータの変動量の最大値及び最小値を示す閾値である。
【0081】
[深層学習の詳細]
次に、ここまで説明したステップS31〜S33の各処理の詳細について説明する。
本実施の形態例では、活性化関数と誤差関数を事前に決めて、匿名化された深層学習を行う。
例えば、f(x)=max(0;x)で定義されるReLUが、深層学習の最終層を除く活性化関数として広く利用されている。
深層学習の利用目的として、カテゴリ分類の場合、最終層の活性化関数(F(L))
としてソフトマックス関数が、また、誤差関数としてクロスエントロピー誤差関数が広く利用されている。
ソフトマックス関数は、次の[数15]式のように定義される。
【0083】
また、クロスエントロピー誤差関数は、次の[数16]式のように定義される。
【0085】
ここでは、匿名化された深層学習を行う場合、深層学習を行う最終層を除く各層は、活性化関数ReLUを、最終層の活性化関数としてソフトマックス関数を、誤差関数としてクロスエントロピー誤差関数を利用する。
最終層の活性化関数がソフトマックス関数であり、かつ、誤差関数がクロスエントロピー誤差関数の場合、誤差信号δ
j(L) for j=1,・・・,n
(L)の値は、次の[数17]式に示すように計算される。
【0087】
[数17]式において、y
j(L)はノードN
j(L)の出力値を表し、t
j(L)はノードN
j(L)の目標出力値を表す。
最終層以外の層において活性化関数ReLUを使った場合、最終層以外の各ノードの誤差信号δ
j(l)=1,・・・,L−1は次の[数18]式で計算される。
【0089】
x
j(1)の値として取り得る範囲は、[b
j(1)+Σ
imin(w
i,j(1),0), b
j(1)+Σ
imax(w
i,j(1),0)]である。また、x
j(2)の値として取り得る範囲は、[b
j(2)+Σ
i(b
i(1)+Σ
kmax(w
k,i(1),0))min(w
i,j(2),0), b
j(2)+Σ
i(b
i(1)+Σ
kmax(w
k,i(1),0))max(w
i,j(2),0)]となる。深層学習では、x
j(l) for l=1,・・・,Lは、次の[数19]式で計算される。
【0091】
ここで、min(y
i(0))=0であり、max(y
i(0))=1である。これは、深層学習の第1層目への入力値を0以上1以下の範囲に正規化しているためである。また、最終層以外の層では、活性化関数ReLUを使っているので、l=1,・・・,L−1において、y
j(l)は、次の[数20]式によって計算される。
【0093】
これによって、max(y
j(l))の値は、常に0以上であることがわかる。
次に、誤差信号δ
j(l)の取り得る値の範囲を計算する。深層学習モデルの出力値の範囲は、−1から1までであるので、次の[数21]式のように定義される。
【0095】
また、l=1,・・・,L−1について、次の[数22]式で示される。ここで、全てのjとlについて、min(δ
j(l))であり、max(δ
j(l))≧0である。
【0097】
最終的には、次の[数23]式が得られる。
【0099】
b
j(l)については、次の[数24]式で示される。
【0101】
また、l=1,・・・,L−1について、次の[数25]式で示される。
【0103】
既に述べたように、重みパラメータの変動量Δw
ij(l)と、バイアスパラメータの変動量Δb
j(l)に基づいて、重みパラメータとバイアスパラメータを、[数5]式と[数6]式により更新する。つまり、データ入力ごとに毎回、重みパラメータとバイアスパラメータを更新する。
ここで本実施の形態例では、このときの変動量にラプラス分布に基づく誤差を与える。重みパラメータの変動量Δw
ij(l)と、バイアスパラメータの変動量Δb
j(l)についても、値の閾値を設定する。
【0104】
ここでは、Δw
maxとΔw
minを、重みパラメータの変動量Δw
ij(l)の最大値と最小値とする。また、Δb
maxとΔb
minを、バイアスパラメータΔb
j(l)の最大値と最小値とする。
【0105】
また、深層学習のエポック数をEとおく。各バッチに対して学習を行う際に、それぞれのw
ij(l)とb
j(l)に対して、重みパラメータの変動量Δw
ij(l)を、min(Δw
max, min(Δw
max,w
ij(l)+Lap((Δw
max−Δw
min)・E/ε)))に設定する。また、バイアスパラメータの変動量Δb
j(l)をmin(Δb
max, max(Δb
min,b
j(l)+Lap((Δb
max−Δb
min)・E/ε)))に設定する。
【0106】
[閾値を設定したときにε−差分プライバシを満たすことの説明]
次に、深層学習を行う際に、パラメータを閾値(最大値,最小値)で誤差を制限した匿名モデルが、ε−差分プライバシを満たしたものであることを説明する。
各重みパラメータとバイアスパラメータは、[数5]式と[数6]式に基づいて更新される。[数5]式と[数6]式において、重みパラメータの変動量Δw
ij(l)とバイアスパラメータの変動量Δb
j(l)は学習の入力値に依存して変わるが、それ以外の値は入力値に依存しない。したがって、第1の実施の形態で、閾値を設定したときにε−差分プライバシを満たすことを証明した場合と同様に、Δw
ij(l)をmin(Δw
max, max(Δw
min,w
ij(l)+Lap((Δw
max−Δw
min)・E/ε)))に設定し、また、Δb
j(l)をmin(Δb
max, max(Δb
min,b
j(l)+Lap((Δb
max−Δb
min)・E/ε)))に設定することで、各エポックのイテレーションは、パラメータベース(ε/E)−差分プライバシを満たす。
全体でEエポックあるので、次に説明する証明より、最終的にε−差分プライバシを満たす。
【0107】
ランダムメカニズムAが、d個のランダムメカニズムA
1,・・・,A
dから成り立っており、これを1回ずつ続けて実施するものとする。ここでは、i≧2において、A
iは入力としてA
i−1の出力値を取る。A
dの出力値が、Aの出力値となる。
各A
iは、パラメータベースε
i−差分プライバシを満たすものとする。このとき、Aはパラメータベース(Σ
i=1dε
i)の差分プライバシを実現する。
【0108】
ランダムメカニズムAは、d個のランダムメカニズムA
1,・・・,A
dから成り立っており、これを1回ずつ続けて実施するものとする。i≧2において、A
iは入力としてA
i−1の出力値を取る。A
dの出力値が、Aの出力値となる。ここで、各A
iは、ε
i−差分プライバシを満たすものとする。このとき、ランダムメカニズムAは(Σ
i=1dε
i)−差分プライバシを実現する。
この処理は各パラメータに対して実行されるので、ここでのランダムメカニズムAは、パラメータベース(Σ
i=1dε
i)−差分プライバシを実現する。
【0109】
図10は、第2の実施の形態例での、誤差を最大値と最小値の閾値に制限する処理の概略を示すものである。
図10に示すように、例えばあるパラメータの変動量として取り得る最大の範囲が“0”以上“1”以下であり、ある時点での変動量が0.6であるとする。そして、学習しながら逐次的に算出された閾値の範囲が、“0.3”以上“0.7”以下であるとする(この場合のグローバルセンシティビティは、0.7―0.3=0.4)。この閾値の範囲(グローバルセンシティビティ)とプライバシ指標「ε」からラプラス分布が決まる。ラプラス分布で誤差を与える処理が行われる。なお、グローバルセンシティビティ(Δf)は、既に説明した[数8]式で計算されるものである。
ここで、
図10に示すように、パラメータの変動量“0.5”に誤差を付与して、誤差付与済のパラメータの変動量が“0.1”になったとき、その時点での閾値の範囲の下限値である“0.3”に制限する処理が行われる。ラプラス分布はグローバルセンシティビティとプライバシ指標「ε」から計算されるため、グローバルセンシティビティの値を小さく(つまり閾値の幅を小さく)することで、ラプラス分布の誤差を小さくすることができ、深層学習の精度の向上につながる。
この
図10に示す例についても、
図9の例と同様に、パラメータの変動量を閾値で制限する概略を非常に簡略化して示すものであり、実際の閾値に制限する処理は、ここまで数式を参照して説明した様々な条件を考慮して行われるものである。
また、第2の実施の形態例の場合でも、グローバルセンシティビティ(Δf)が、パラメータの変動量として取り得る最大の範囲と一致する場合には、
図9に示す状態で閾値の制限が行われることになる。
【0110】
[実データで評価した例]
図8は、本実施の形態の処理を、評価用のデータセットに対して実行した場合の例を示す。この
図8の例は、第1の実施の形態で説明した
図5での評価と同じ条件で行ったものである。
図8の横軸はデータセットの数(バッチサイズ)を示し、
図8A、
図8B、
図8Cは、それぞれε=1、ε=10、ε=100の場合を示す。
図8A、
図8B、
図8Cに示すように、いずれの場合でも良好な精度が確保されていることが分かる。ここで、
図5(第1の実施の形態例)と、
図8(第2の実施の形態例)とを比較すると分かるように、εの値が小さいときは、第1の実施の形態例の方が、高い精度が得られる。一方、εの値が大きいときは、第2の実施の形態例の方が、高い精度が得られる。但し、この結果は使用するデータセットによって変わるものであり、いずれの実施の形態を適用するのが好ましいかは、使用するデータセットによって異なる。
【0111】
なお、
図5及び
図8に示す評価例では、予測した年収が5万ドル以下で、実際の年収が5万ドル以下である場合の回数をTN、予測した年収が5万ドル以下で、実際の年収が5万ドルを超えている場合の回数をFNとした。また、予測した年収が5万ドルを超えていて、実際に5万ドルを超えている場合の回数をTP、予測した年収が5万ドルを超えていて、実際の年収が5万ドル以下である場合の回数をFPとした。
このとき、手法[accuracy]では、[数26]式での評価を行う。また、手法[f−measure]では、[数27]式での評価を行う。
【0114】
以上説明したように、本発明の各実施の形態によると、ラプラス分布に基づいた誤差を与えて匿名化を行う際に、その誤差の最大値と最小値を閾値で制限するようにしたことで、匿名化を行う際に与える誤差を一定の範囲に制限することができ、誤差が少ない適切な匿名化を行うことができる。その結果、深層学習モデルの精度低下を軽減できるようになる。
【0115】
なお、ここまで説明した数式は、本発明の各実施の形態を適用する場合の好適な一例を示したものであり、本発明は、これらの数式で説明した処理に限定されるものではない。