(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-09-03
(45)【発行日】2024-09-11
(54)【発明の名称】情報処理プログラム、情報処理方法、および情報処理装置
(51)【国際特許分類】
G06F 21/62 20130101AFI20240904BHJP
G06F 16/906 20190101ALI20240904BHJP
【FI】
G06F21/62 345
G06F16/906
(21)【出願番号】P 2021093601
(22)【出願日】2021-06-03
【審査請求日】2024-02-08
(73)【特許権者】
【識別番号】000005223
【氏名又は名称】富士通株式会社
(74)【代理人】
【識別番号】110002918
【氏名又は名称】弁理士法人扶桑国際特許事務所
(72)【発明者】
【氏名】前田 若菜
【審査官】岸野 徹
(56)【参考文献】
【文献】再公表特許第2019/181099(JP,A1)
【文献】特開2014-098989(JP,A)
【文献】特開2011-180839(JP,A)
【文献】特開2020-031263(JP,A)
【文献】特表2022-526948(JP,A)
【文献】米国特許出願公開第2020/0097763(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 21/62
G06F 16/906
(57)【特許請求の範囲】
【請求項1】
コンピュータに、
クラス分類用の学習済みのモデルを用いて、複数のクラスそれぞれについて、分類対象データが属する可能性を表す確信度を算出し、
前記複数のクラスそれぞれの前記確信度のうちで値が最大の最大確信度が、所定の数値範囲内にあるか否かを判断し、
前記最大確信度が前記数値範囲に含まれない場合、前記最大確信度を前記数値範囲内の値に修正し、
修正後の前記複数のクラスそれぞれの前記確信度を、前記分類対象データに対するクラス分類の結果として出力する、
処理を実行させる情報処理プログラム。
【請求項2】
前記数値範囲は、閾値より大きな値の範囲であり、
前記最大確信度の値の修正処理では、前記閾値以下の前記最大確信度を、前記閾値より大きい値に修正する、
請求項1記載の情報処理プログラム。
【請求項3】
前記コンピュータに、さらに
前記最大確信度が前記数値範囲に含まれない場合、前記複数のクラスそれぞれの前記確信度を値の大きさで並べた場合の順番を維持したまま、減少量の合計が前記最大確信度の増加量と等しくなるように前記最大確信度以外の減少対象確信度の値を減少させる、
処理を実行させる請求項2記載の情報処理プログラム。
【請求項4】
前記減少対象確信度の値を減少させる処理では、値が最小の最小確信度から昇順に、減少量の合計が前記最大確信度の増加量と等しくなるまで、前記減少対象確信度を減少させる、
処理を実行させる請求項3記載の情報処理プログラム。
【請求項5】
前記数値範囲は、閾値以下の値の範囲であり、
前記最大確信度の値の修正処理では、前記閾値を超えた前記最大確信度を、前記閾値以下の値に修正する、
請求項1記載の情報処理プログラム。
【請求項6】
前記コンピュータに、さらに
前記最大確信度が前記数値範囲に含まれない場合、前記複数のクラスそれぞれの前記確信度を値の大きさで並べた場合の順番を維持したまま、増加量の合計が前記最大確信度の減少量と等しくなるように前記最大確信度以外の増加対象確信度の値を増加させる、
処理を実行させる請求項5記載の情報処理プログラム。
【請求項7】
前記最大確信度の値の修正処理では、乱数を用いて前記数値範囲内の値を決定し、決定した値に前記最大確信度を修正する、
請求項1から6までのいずれかに記載の情報処理プログラム。
【請求項8】
コンピュータが、
クラス分類用の学習済みのモデルを用いて、複数のクラスそれぞれについて、分類対象データが属する可能性を表す確信度を算出し、
前記複数のクラスそれぞれの前記確信度のうちで値が最大の最大確信度が、所定の数値範囲内にあるか否かを判断し、
前記最大確信度が前記数値範囲に含まれない場合、前記最大確信度を前記数値範囲内の値に修正し、
修正後の前記複数のクラスそれぞれの前記確信度を、前記分類対象データに対するクラス分類の結果として出力する、
情報処理方法。
【請求項9】
クラス分類用の学習済みのモデルを記憶する記憶部と、
前記モデルを用いて、複数のクラスそれぞれについて、分類対象データが属する可能性を表す確信度を算出し、前記複数のクラスそれぞれの前記確信度のうちで値が最大の最大確信度が、所定の数値範囲内にあるか否かを判断し、前記最大確信度が前記数値範囲に含まれない場合、前記最大確信度を前記数値範囲内の値に修正し、修正後の前記複数のクラスそれぞれの前記確信度を、前記分類対象データに対するクラス分類の結果として出力する処理部と、
を有する情報処理装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、情報処理プログラム、情報処理方法、および情報処理装置に関する。
【背景技術】
【0002】
情報通信技術では、機械学習によって生成した学習済みのモデルを用いて、ネットワークを介して様々なデータ解析サービスを提供することができる。例えばサービス提供用のサーバは、クラス分類を行うモデルを用いて、ユーザから提供されたデータが属するクラスを推定することができる。
【0003】
学習済みのモデルを用いたサービスに関しては様々な技術が提案されている。例えば入力データの確信度を算出して複数の閾値をもとに確定、ユーザ提示、非処理のいずれかを決定し、2つ以上の確定が許されない場合でも矛盾を無くすと共に、人手チェックによるコストを軽減する情報処理装置が提案されている。また機械学習の成果を利用したサービスの迅速な開発を支援することのできるサービス構築装置も提案されている。
【先行技術文献】
【特許文献】
【0004】
【文献】特開2004-348507号公報
【文献】特開2018-97671号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
モデルを利用したサービスを不特定多数のユーザに提供すると、悪意のあるユーザから攻撃を受ける可能性がある。学習済みのモデルを用いたサービスへの攻撃の1つにメンバーシップ推定攻撃がある。メンバーシップ推定攻撃は、モデルの構築に使用した訓練データに、特定の個人のデータが含まれるか否かを推定する攻撃である。メンバーシップ推定攻撃を許してしまうと、秘匿すべき個人情報が漏れてしまう可能性がある。
【0006】
例えば医療分野で利用する学習済みのモデルとして、投薬量予測モデルがある。投薬量予測モデルの生成には、特定の疾患を有する多数の患者への投薬結果に関するデータが訓練データとして用いられる。メンバーシップ推定攻撃により、特定の患者のデータが訓練データに含まれていることを攻撃者に把握されてしまうと、その患者が特定の疾患を有しているという個人情報も把握されてしまう。従来のクラス分類サービスでは、このようなメンバーシップ推定攻撃に対する耐性が十分ではない。
【0007】
1つの側面では、本件は、メンバーシップ推定攻撃に対する耐性を強化することを目的とする。
【課題を解決するための手段】
【0008】
1つの案では、コンピュータに以下の処理を実行させる情報処理プログラムが提供される。
コンピュータは、クラス分類用の学習済みのモデルを用いて、複数のクラスそれぞれについて、分類対象データが属する可能性を表す確信度を算出する。次にコンピュータは、複数のクラスそれぞれの確信度のうちで値が最大の最大確信度が、所定の数値範囲内にあるか否かを判断する。最大確信度が数値範囲に含まれない場合、コンピュータは、最大確信度を数値範囲内の値に修正する。そしてコンピュータは、修正後の複数のクラスそれぞれの確信度を、分類対象データに対するクラス分類の結果として出力する。
【発明の効果】
【0009】
1態様によれば、メンバーシップ推定攻撃に対する耐性が強化される。
【図面の簡単な説明】
【0010】
【
図1】メンバーシップ推定攻撃への耐性を強化させた情報処理方法の一例を示す図である。
【
図2】クラス分類サービスを提供するシステム構成の一例を示す図である。
【
図3】サーバのハードウェアの一例を示す図である。
【
図4】クラス分類サービスの利用状況を示す図である。
【
図5】メンバーシップ推定攻撃の一例を示す図である。
【
図6】確信度の降順順位を応答した場合に生じる問題の一例を示す図である。
【
図7】サーバのクラス分類機能の一例を示すブロック図である。
【
図9】メンバーシップ推定攻撃への耐性を向上させた確信度ベクトル生成処理の手順の一例を示すフローチャートである。
【
図10】メンバーシップ推定攻撃の失敗例を示す図である。
【
図11】最大確信度を減少させる修正を行う確信度修正の一例を示す図である。
【発明を実施するための形態】
【0011】
以下、本実施の形態について図面を参照して説明する。なお各実施の形態は、矛盾のない範囲で複数の実施の形態を組み合わせて実施することができる。
〔第1の実施の形態〕
まず第1の実施の形態について説明する。第1の実施の形態は、メンバーシップ推定攻撃に対する耐性を強化させた情報処理方法である。
【0012】
図1は、メンバーシップ推定攻撃への耐性を強化させた情報処理方法の一例を示す図である。
図1には、第1の実施の形態に係る情報処理方法を実現する情報処理装置10が示されている。情報処理装置10は、例えば所定の情報処理プログラムを実行することにより、メンバーシップ推定攻撃への耐性を強化させた情報処理方法を実施することができる。
【0013】
情報処理装置10は、例えば端末1から送信された分類対象データ2に対してクラス分類処理を行い、分類対象データ2が属するクラスを示す分類結果を出力する。そのために、情報処理装置10は、記憶部11と処理部12とを有する。記憶部11は、例えば情報処理装置10が有するメモリまたはストレージ装置である。処理部12は、例えば情報処理装置10が有するプロセッサまたは演算回路である。
【0014】
記憶部11は、クラス分類用の学習済みのモデル3を記憶する。モデル3は、例えばニューラルネットワークである。
処理部12は、分類対象データ2を受信すると、モデル3を用いて、複数のクラスそれぞれについて、分類対象データ2が属する可能性を表す確信度を算出する。例えば分類対象データ2が特徴量ベクトルで表されている場合、処理部12は、その特徴量ベクトルに含まれる各要素をモデル3への入力として、モデル3の出力を計算する。モデル3の出力が、複数のクラスそれぞれについての確信度である。なお、分類対象データ2が特徴量ベクトルへの加工前のデータの場合、処理部12は、分類対象データ2に基づいて特徴量ベクトルを生成してもよい。
【0015】
処理部12は、確信度を算出すると、複数のクラスそれぞれの確信度のうちの値が最大の最大確信度が所定の数値範囲内にあるか否かを判断する。所定の数値範囲とは、例えば予め設定された閾値より大きな値の範囲である。確信度の上限が「1」の場合、閾値から1の間の値の範囲が、所定の数値範囲となる。また予め設定された閾値以下の値の範囲を所定の数値範囲とすることもできる。
【0016】
処理部12は、最大確信度が所定の数値範囲に含まれない場合、最大確信度を数値範囲内の値に修正する。例えば処理部12は、所定の数値範囲が閾値より大きな値の範囲の場合、閾値以下の最大確信度を閾値より大きい値に修正する。このとき処理部12は、複数のクラスそれぞれの確信度を値の大きさで並べた場合の順番を維持したまま、減少量の合計が最大確信度の増加量と等しくなるように最大確信度以外の確信度(減少対象確信度)の値を減少させる。例えば処理部12は、値が最も小さい最小確信度から昇順に、減少量の合計が最大確信度の増加量と等しくなるまで、最大確信度以外の減少対象確信度を減少させる。
【0017】
図1のグラフ4には、修正前の各クラスの確信度が棒グラフの高さで示されている。グラフ4では、クラス「A」の確信度が最大確信度である。修正前の最大確信度の値は閾値以下である。そこで処理部12によって確信度が修正される。修正結果がグラフ5に示されている。グラフ5では、クラス「A」の増加量の1/3ずつが、他のクラス「B」、「C」、「D」それぞれの確信度から減算されている。クラス「B」、「C」、「D」の確信度の減少量が等しいため、クラス「B」、「C」、「D」を確信度で並べたときの順番は維持される。
【0018】
処理部12は、最大確信度を修正した場合、複数のクラスそれぞれの修正後の確信度を、分類対象データ2に対するクラス分類の結果として出力する。また処理部12は、モデル3を用いて算出した確信度の最大確信度が所定の数値範囲内であった場合には、算出結果を修正せずにクラス分類の結果として出力する。処理部12は、クラス分類の結果を例えば端末1に送信する。
【0019】
このように、最大確信度が所定の数値範囲外にある場合、最大確信度がその数値範囲内となるように修正することで、クラス分類の結果として出力される最大確信度は、常に数値範囲内にあることとなる。そのため攻撃者が、分類対象データ2のクラス分類を行ったときの最大確信度がある数値範囲内にあるか否かの情報を利用してメンバーシップ推定攻撃を行っても、分類対象データ2が訓練データに含まれるか否かを正しく判断することは困難である。すなわちメンバーシップ推定攻撃に対する耐性が向上している。
【0020】
しかも、修正後も確信度による各クラスの順番が維持される。例えば値が小さい確信度から順に値を所定量ずつ減少させていくことで、修正度の確信度によるクラスの順番の入れ替わりが発生することが確実に抑止される。これにより、確信度を修正することによる情報の劣化を最小限に抑えることができる。その結果、クラス分類の結果を他の情報処理に利用する場合において、他の情報処理の計算精度の劣化が抑止される。
【0021】
なお、所定の数値範囲を閾値以下の値の範囲とすることもできる。この場合、処理部12は、最大確信度が閾値を超えた最大確信度を閾値以下の値に修正する。例えば処理部12は、最大確信度が数値範囲に含まれない場合、複数のクラスそれぞれの確信度を値の大きさで並べた場合の順番を維持したまま、増加量の合計が最大確信度の減少量と等しくなるように最大確信度以外の確信度(増加対象確信度)の値を増加させる。これにより、クラス分類の結果に示される最大確信度は常に閾値以下となり、メンバーシップ推定攻撃が困難となる。
【0022】
また処理部12は、例えば乱数を用いて数値範囲内の値を決定し、決定した値に最大確信度を修正する。これにより修正後の最大確信度の値がランダムな値となり、修正後の最大確信度に基づいて修正の有無を攻撃者に把握されることを抑止できる。
【0023】
〔第2の実施の形態〕
次に第2の実施の形態について説明する。第2の実施の形態は、機械学習により学習済みのモデルを用いたクラス分類サービスを提供するシステムにおいて、メンバーシップ推定攻撃の耐性を向上させたものである。
【0024】
図2は、クラス分類サービスを提供するシステム構成の一例を示す図である。サーバ100には、ネットワーク20を介して複数の端末31,32,・・・が接続されている。サーバ100は、クラス分類用の学習済みモデルを有しており、そのモデルを用いたクラス分類サービスを提供するコンピュータである。複数の端末31,32,・・・は、クラス分類サービスの提供を受けるユーザが使用するコンピュータである。
【0025】
図3は、サーバのハードウェアの一例を示す図である。サーバ100は、プロセッサ101によって装置全体が制御されている。プロセッサ101には、バス109を介してメモリ102と複数の周辺機器が接続されている。プロセッサ101は、マルチプロセッサであってもよい。プロセッサ101は、例えばCPU(Central Processing Unit)、MPU(Micro Processing Unit)、またはDSP(Digital Signal Processor)である。プロセッサ101がプログラムを実行することで実現する機能の少なくとも一部を、ASIC(Application Specific Integrated Circuit)、PLD(Programmable Logic Device)などの電子回路で実現してもよい。
【0026】
メモリ102は、サーバ100の主記憶装置として使用される。メモリ102には、プロセッサ101に実行させるOS(Operating System)のプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、メモリ102には、プロセッサ101による処理に利用する各種データが格納される。メモリ102としては、例えばRAM(Random Access Memory)などの揮発性の半導体記憶装置が使用される。
【0027】
バス109に接続されている周辺機器としては、ストレージ装置103、GPU(Graphics Processing Unit)104、入力インタフェース105、光学ドライブ装置106、機器接続インタフェース107およびネットワークインタフェース108がある。
【0028】
ストレージ装置103は、内蔵した記録媒体に対して、電気的または磁気的にデータの書き込みおよび読み出しを行う。ストレージ装置103は、コンピュータの補助記憶装置として使用される。ストレージ装置103には、OSのプログラム、アプリケーションプログラム、および各種データが格納される。なお、ストレージ装置103としては、例えばHDD(Hard Disk Drive)やSSD(Solid State Drive)を使用することができる。
【0029】
GPU104は画像処理を行う演算装置であり、グラフィックコントローラとも呼ばれる。GPU104には、モニタ21が接続されている。GPU104は、プロセッサ101からの命令に従って、画像をモニタ21の画面に表示させる。モニタ21としては、有機EL(Electro Luminescence)を用いた表示装置や液晶表示装置などがある。
【0030】
入力インタフェース105には、キーボード22とマウス23とが接続されている。入力インタフェース105は、キーボード22やマウス23から送られてくる信号をプロセッサ101に送信する。なお、マウス23は、ポインティングデバイスの一例であり、他のポインティングデバイスを使用することもできる。他のポインティングデバイスとしては、タッチパネル、タブレット、タッチパッド、トラックボールなどがある。
【0031】
光学ドライブ装置106は、レーザ光などを利用して、光ディスク24に記録されたデータの読み取り、または光ディスク24へのデータの書き込みを行う。光ディスク24は、光の反射によって読み取り可能なようにデータが記録された可搬型の記録媒体である。光ディスク24には、DVD(Digital Versatile Disc)、DVD-RAM、CD-ROM(Compact Disc Read Only Memory)、CD-R(Recordable)/RW(ReWritable)などがある。
【0032】
機器接続インタフェース107は、サーバ100に周辺機器を接続するための通信インタフェースである。例えば機器接続インタフェース107には、メモリ装置25やメモリリーダライタ26を接続することができる。メモリ装置25は、機器接続インタフェース107との通信機能を搭載した記録媒体である。メモリリーダライタ26は、メモリカード27へのデータの書き込み、またはメモリカード27からのデータの読み出しを行う装置である。メモリカード27は、カード型の記録媒体である。
【0033】
ネットワークインタフェース108は、ネットワーク20に接続されている。ネットワークインタフェース108は、ネットワーク20を介して、他のコンピュータまたは通信機器との間でデータの送受信を行う。ネットワークインタフェース108は、例えばスイッチやルータなどの有線通信装置にケーブルで接続される有線通信インタフェースである。またネットワークインタフェース108は、基地局やアクセスポイントなどの無線通信装置に電波によって通信接続される無線通信インタフェースであってもよい。
【0034】
サーバ100は、以上のようなハードウェアによって、第2の実施の形態の処理機能を実現することができる。複数の端末31,32,・・・それぞれも、サーバ100と同様のハードウェアを有する。また、第1の実施の形態に示した情報処理装置10も、サーバ100と同様のハードウェアを有する。
【0035】
サーバ100は、例えばコンピュータ読み取り可能な記録媒体に記録されたプログラムを実行することにより、第2の実施の形態の処理機能を実現する。サーバ100に実行させる処理内容を記述したプログラムは、様々な記録媒体に記録しておくことができる。例えば、サーバ100に実行させるプログラムをストレージ装置103に格納しておくことができる。プロセッサ101は、ストレージ装置103内のプログラムの少なくとも一部をメモリ102にロードし、プログラムを実行する。またサーバ100に実行させるプログラムを、光ディスク24、メモリ装置25、メモリカード27などの可搬型記録媒体に記録しておくこともできる。可搬型記録媒体に格納されたプログラムは、例えばプロセッサ101からの制御により、ストレージ装置103にインストールされた後、実行可能となる。またプロセッサ101が、可搬型記録媒体から直接プログラムを読み出して実行することもできる。
【0036】
サーバ100は、機械学習で構築した学習済みモデルを公開し、そのモデルに対する端末31,32,・・・からのクエリアクセスを許可することで、端末31,32,・・・を使用しているユーザにクラス分類サービスを提供する。このとき、ユーザの一部が攻撃者となり、メンバーシップ推定攻撃を行う可能性がある。
【0037】
図4は、クラス分類サービスの利用状況を示す図である。機械学習の技術を用いることで、訓練データ41を用いた学習によりクラス分類用のモデル42を生成することができる。モデル42は、例えばニューラルネットワークで表される。訓練データ41には、説明変数として用いられる学習データと、目的変数として用いられるデータ(正解ラベル)とが含まれる。クラス分類の場合には、正解ラベルに、学習データが属するクラスが示される。
【0038】
機械学習における学習フェーズでは、学習データをモデル42に入力したとき、モデル42で予測されるクラスが正解ラベルと一致するように、モデル42の重みパラメータなどの値の適性化が行われる。クラス分類を行うモデル42の出力は、入力されたデータが各クラスに属する確率である。以下、この確率を確信度と呼ぶ。例えばクラスA、クラスB、クラスCに分類するモデル42であれば、各クラスの確信度が出力される。最も確信度が高いクラスが、入力されたデータが属するものと予測されたクラスである。
【0039】
学習済みのモデル42を利用する一般のユーザ43~45は、端末31,32,・・・を利用してクエリ46~48をサーバ100に送信する。クエリ46~48には、例えばユーザ43~45が分類させたいデータの特徴量が示される。特徴量は、例えばベクトルデータで示される。
図4の例では、クエリ46~48は、4つの要素を含むベクトルデータ(特徴量ベクトル)である。
【0040】
サーバ100は、クエリ46~48をモデル42への入力とすることで、クエリ46~48の生成元となったデータが属するクラスを推定する。ユーザ43~45は、クエリ46~48に対応する各クラスの確信度をサーバ100から取得する。ユーザ43~45は、取得した確信度を他の情報処理に利用することができる。
【0041】
サーバ100のユーザ43~45に攻撃者が含まれている場合がある。
図4の例では、ユーザ45が攻撃者であるものとする。ユーザ45は、例えばメンバーシップ推定攻撃を行う。メンバーシップ推定攻撃は、ユーザ45が取得した個人データ49がモデル42の学習に利用した訓練データ41に含まれるか否かを判別する攻撃である。
【0042】
メンバーシップ推定攻撃が成功すると、特定のデータが機密なデータセットに含まれているかが攻撃者に漏れる。例えば,ワルファリン投与量予測モデルの訓練データにFさんの個人データ49が属していると攻撃者が知った場合、Fさんは血栓に起因する既往歴があることが攻撃者に漏れることとなる。
【0043】
図5は、メンバーシップ推定攻撃の一例を示す図である。攻撃者は、学習済みモデルにクエリを送り、応答値として確信度を取得可能である。攻撃者の目的は、Fさんが学習済みモデルの訓練データに属するか否かの推定である。また攻撃者は、知識として、Fさんに関するデータを有している。攻撃者の攻撃手順は以下の通りである。
【0044】
まず攻撃者は、Fさんのデータが訓練データに属するかを判断する閾値tを設定するために、訓練データに属していないデータの最大確信度を取得する。具体的には、攻撃者は、例えばランダムな値を有する特徴量ベクトルを複数生成する。そして攻撃者は、ランダムに生成した特徴量ベクトルをクエリとしてモデル42に入力し、特徴量ベクトルごとの確信度ベクトルを取得する。確信度ベクトルは、各クラスの確信度を要素とするベクトルデータである。以下、確信度ベクトル内の値の最も大きい確信度を、その確信度ベクトルの最大確信度とする。
【0045】
攻撃者は、確信度ベクトルごとの最大確信度に基づいて閾値tを決定する。例えば、複数得られた最大確信度のうちの最も大きな値を閾値tとする。
図5の例では閾値tは「0.6」となる。
【0046】
次に攻撃者は、Fさんのデータに基づいて特徴量ベクトルを生成する。そして攻撃者は、Fさんの特徴量ベクトルをクエリとしてモデル42に入力し、Fさんのデータが属するクラスに関する確信度ベクトルを得る。
図5の例では、Fさんのデータの確信度ベクトルの最大確信度は「0.7」である。
【0047】
攻撃者は、Fさんのデータの確信度ベクトルの最大確信度を閾値と比較する。そして攻撃者は、最大確信度が閾値tより大きければ、Fさんのデータは訓練データに属すると推定する。
図5の例では最大確信度「0.7」が閾値「0.6」よりも大きいため、Fさんのデータは訓練データに含まれていると推定される。
【0048】
このメンバーシップ推定攻撃は、訓練データに含まれないデータについては、モデル42を用いたクラス分類で得られる最大確信度が低い傾向にあることを利用した攻撃手法である。
【0049】
メンバーシップ推定攻撃に対する単純対策として、クラス分類の結果として確信度を応答せずに、確信度の降順順位を応答する方法が考えられる。しかし、この方法を採用すると、ユーザは確信度を取得できない。ユーザが、確信度の数値を利用した情報処理を行う場合、確信度が取得できないと目的の処理を実施できない。
【0050】
図6は、確信度の降順順位を応答した場合に生じる問題の一例を示す図である。例えば機械学習の1つに、スタッキングという手法がある。スタッキングは、あるモデルの予測値を特徴量として、別のモデルに入力することで目的の予測結果を得る機械学習の手法である。
【0051】
例えばサーバ100において公開するモデル42aは、学習済みのモデル42そのままではなく、モデル42から出力された確信度ベクトルの確信度を、降順順位に置き換える加工を行った後に出力するものとする。
【0052】
ユーザはスタッキング用のモデル50の一部に、サーバ100が有するモデル42aを利用することを希望しているものとする。モデル50は、特徴量ベクトルを複数のモデル51~53に入力し、モデル51~53から出力された確信度ベクトルをメタモデル54の入力とする。そしてメタモデル54の出力が、全体のモデル50で予測した確信度ベクトルとなる。
【0053】
このような場合において、サーバ100で提供されるモデル42aの出力が確信度ベクトルではなく確信度の降順順位である場合、モデル42aによる予測結果をスタッキングに利用することができない。
【0054】
なおメンバーシップ推定攻撃に対する対策として、確信度ベクトルを降順順位に置き換える手法以外にも、例えば確信度ベクトルの各確信度の下位の桁を切り捨てることで、攻撃者による適切な閾値の算出を困難にする方法が考えられる。しかしこの方法では、確信度ベクトル中の最大確信度の変化がわずかなため防御効果が少ない。また学習過程でノイズを加えることで、差分プライバシ(データセット内の個人データを伏せてそのデータセットを学習に利用できるようにすること)を満たしたモデルを構築する方法も考えられる。しかし、ノイズを加えると確信度の順位が変わりやすく、正確性が劣化する。さらに算出された確信度に摂動を加えて想定攻撃モデルが誤判定するように出力することも考えられるが、この方法においても確信度の順位が保たれず正確性が劣化する。
【0055】
このように、クラス分類の結果として、順位を保ったままの確信度が出力されることを保証したうえで、メンバーシップ推定攻撃を防御することが望まれる。そこで第2の実施の形態に係るサーバ100は、クラス分類によって得られる確信度ベクトルの最大確信度が所定の閾値以下の場合、確信度で降順に並べたときの各クラスの順位を変更せずに、最大確信度が閾値より大きな値となるように修正する。これにより、攻撃者は最大確信度を用いたメンバーシップ推定攻撃のための適切な閾値を設定することができなくなり、メンバーシップ推定攻撃に対する防御効果が得られる。
【0056】
図7は、サーバのクラス分類機能の一例を示すブロック図である。サーバ100は、記憶部110、クエリ受け付け部120、クラス分類部130、確信度修正部140、および予測結果送信部150を有する。
【0057】
記憶部110は、学習済みのモデル111を記憶する。モデル111は、例えば
図4に示したモデル42と同様のニューラルネットワークである。記憶部110は、メモリ102またはストレージ装置103によって実現される。
【0058】
クエリ受け付け部120は、端末31,32,・・・からのクエリを受け付ける。クエリ受け付け部120は、クエリを受信すると、クラス分類部130に受信したクエリを送信する。
【0059】
クラス分類部130は、クエリ受け付け部120からクエリを受信すると、クエリに示される特徴量ベクトルのクラス分類処理を行う。例えばクラス分類部130は、記憶部110からモデル111を取得する。そしてクラス分類部130は、取得したクエリをモデル111の入力として、モデル111に従った演算を行い確信度ベクトルを算出する。クラス分類部130は、算出した確信度ベクトルを確信度修正部140に送信する。
【0060】
確信度修正部140は、クラス分類の結果として得られた確信度ベクトルの最大確信度が所定の閾値以上となるように、確信度を修正する。確信度の修正方法の詳細は後述する(
図8等参照)。確信度修正部140は、修正後の確信度を有する確信度ベクトルを予測結果送信部150に送信する。
【0061】
予測結果送信部150は、クエリの送信元の端末に、クラス分類の結果として修正後の確信度を有する確信度ベクトルを送信する。
なお、
図7に示した各要素間を接続する線は通信経路の一部を示すものであり、図示した通信経路以外の通信経路も設定可能である。また、
図7に示した各要素の機能は、例えば、その要素に対応するプログラムモジュールをコンピュータに実行させることで実現することができる。
【0062】
次に確信度修正処理について詳細に説明する。
図8は、確信度修正処理の一例を示す図である。確信度修正部140は、最大確信度が閾値を下回るとき、最大確信度が閾値以上となるように値を加算する。このとき加算する値をxとする。
【0063】
次に確信度修正部140は、確信度の順位が変わらないように、合計がxとなるまで、最大確信度以外の各確信度から数値を減算する。例えば確信度修正部140は、最小確信度から昇順に減算処理の対象とし、その処理を減算値の合計がxとなるまで繰り返す。
【0064】
図8には、データを4つのクラスに分類する場合における、各クラスの確信度を示すグラフ61~65が示されている。グラフ61は、クラス分類部130で算出された確信度を示している。確信度が高い順に、クラス「A」、クラス「B」、クラス「C」、クラス「D」となっている。最も確信度は高いのはクラス「A」である。
【0065】
また確信度修正部140には、確信度の閾値が予め設定されている。閾値は、例えば、閾値算出用に用意した特徴量ベクトル群を用いて得られた確信度ベクトルの最大確信度に基づいて決定される。例えば確信度修正部140は、最大確信度の平均Tsを閾値とする。また確信度修正部140は、最大確信度の標準偏差vの値を用いて閾値を算出してもよい。例えば確信度修正部140は、平均Tsに標準偏差vの整数倍を加算した値(Ts+2vなど)を閾値とする。さらに確信度修正部140は、最大確信度の上位Xパーセンタイル値を閾値としてもよい。
【0066】
グラフ61では、最大確信度であるクラス「A」の確信度が閾値以下となっている。この場合、確信度修正部140により確信度の修正が行われる。
確信度を修正する場合、確信度修正部140は、まず降順確信度ベクトル=[p
0,p
1,・・・,p
n]を生成する。降順確信度ベクトルは、n+1(nは1以上の整数)クラス分類タスクのモデルから出力した確信度ベクトルの要素を、確信度によって降順に並べ直すことで得られるベクトルである。p
i(i=0,…,n)は、確信度がi+1番目に高いクラスの確信度である。
図8の例では、クラス「A」の確信度がp
0、クラス「B」の確信度がp
1、クラス「C」の確信度がp
2、クラス「D」の確信度がp
3となる。
【0067】
確信度修正部140は、クラス「A」の確信度が閾値を超えるように、クラス「A」の確信度にx(xは1未満の正の実数)を加算する。加算結果がグラフ62に示されている。
【0068】
例えば確信度修正部140は、最大確信度であるp0をT+b(bは0以上1-T以下の乱数)に更新する(p0=T+b)。この場合、「x=T+b-p0」である。
グラフ62の状態では、各クラスの確信度の合計が1を超えてしまい、確率値として矛盾が生じる。そこで確信度修正部140は、減少量合計xになるまで、最小の確信度から昇順に確信度をαcずつ減らしていく(αは1以下の正の実数、c=pn)。
【0069】
確信度修正部140は、昇順にpnを更新していき、途中で総減少量がxに達したら減算処理を終了する。例えば確信度修正部140は、i=n-k,k=1でx>Σ0
kαcのとき、pn-1をpn-1-(x-Σ0
k-1αc)と更新し、終了する。
【0070】
確信度修正部140は、p
1を更新したとき、総減少量がxに満たなければ、c=p
minに更新し、p
minから昇順に繰り返す(p
minは、0以外の最小の確信度)。
図8の例では「α=1」としている。この場合、グラフ62の状態においては、最も値が小さいクラス「D」の確信度が減算値(αc)となる。確信度修正部140は、決定した減算値を、確信度が低い方から順に減算する。グラフ63において、クラス「B」、「C」、「D」における斜線領域の高さが減算値を示している。各斜線領域の右上の数字は、減算の順番である。クラス「A」における斜線領域の高さが、減算値の合計を示している。
【0071】
グラフ63の状態では、減算値の合計が、加算値xに達していない。そこで確信度修正部140は、再度、各クラスの確信度の減算処理を行う。
図8の例では、この時点で確信度が「0」以外の最も小さい値を有するクラス「C」の確信度を、減算値に決定している。確信度修正部140は、決定した減算値を、確信度が低い方から順に減算する。
図8の例では、クラス「C」の確信度から減算値の減算を行うと、それまでの減算値の合計と加算値xとの差分が減算値未満となる。そこで確信度修正部140は、クラス「B」の確信度からは、それまでの減算値の合計と加算値xとの差分だけを減算する。
【0072】
確信度修正結果がグラフ65に示されている。このようにクラス分類部130が算出した確信度ベクトルの最大確信度が閾値以下であれば、グラフ65に示すように最大確信度が閾値を超えるように修正される。また最大確信度以外の確信度に対し、値の大きさの順番が変更されないように減算処理が行われる。これにより、修正後においてもすべての確信度の合計を「1」とすることができ、確率値としての矛盾の発生が抑止される。
【0073】
なお
図8の例では、最大確信度にxを加算した後に他の確信度からの減算を行っているが、減算を行った後に加算を行ってもよい。また各確信度から減算するごとに、減算した分だけ最大確信度に加算する処理を行ってもよい。
【0074】
次にメンバーシップ推定攻撃への耐性を向上させた確信度ベクトル生成手順について具体的に説明する。
図9は、メンバーシップ推定攻撃への耐性を向上させた確信度ベクトル生成処理の手順の一例を示すフローチャートである。以下、
図9に示す処理をステップ番号に沿って説明する。
【0075】
[ステップS101]クエリ受け付け部120は、いずれかの端末がサーバ100に送信したクエリを受信する。
[ステップS102]クラス分類部130は、学習済みのモデル111を用いて、クエリに示される特徴量ベクトルに対応するクラスごとの確信度を計算する。クラス分類部130は、クラスごとの確信度を示す確信度ベクトルを確信度修正部140に送信する。
【0076】
[ステップS103]確信度修正部140は、クラスごとの確信度を降順に並べる。例えば確信度修正部140は、降順に並べた確信度を要素とする降順確信度ベクトルを生成する。
【0077】
[ステップS104]確信度修正部140は、最大確信度p0が閾値Tよりも大きいか否かを判断する。確信度修正部140は、閾値Tよりも大きい場合、処理をステップS115に進める。また確信度修正部140は、閾値T以下であれば、処理をステップS105に進める。
【0078】
[ステップS105]確信度修正部140は、最大確信度p0にxを加算する。例えば確信度修正部140は、乱数bを生成し、「x=T+b-p0」を計算する。そして確信度修正部140は、最大確信度p0を「p0+x」(=T+b)に更新する。これにより、最大確信度p0は閾値T以上のランダムな値となる。
【0079】
[ステップS106]確信度修正部140は、確信度減算用の変数を初期化する。例えば確信度修正部140は、1回当りの減少量の基準値を示すcに、最小の確信度pnを設定する。また確信度修正部140は、繰返し回数を示すkに「0」を設定する。さらに確信度修正部140は、減算合計を示すx’に「0」を設定する。
【0080】
[ステップS107]確信度修正部140は、減算対象の確信度pn-kの値を、「pn-k-αc」に更新する。すなわち確信度修正部140は、減算対象の確信度から減少量「αc」だけ減算する。
【0081】
[ステップS108]確信度修正部140は、減算値の合計x’を、「x’+αc」に更新する。すなわち確信度修正部140は、ステップS107で減算した分の値を、減算値の合計に加算する。
【0082】
[ステップS109]確信度修正部140は、kを「k+1」に更新する。これにより、減算対象の確信度が、降順確信度ベクトルにおける1つ前の要素に変更される。
[ステップS110]確信度修正部140は、k=nか否かを判断する。k=nの場合とは、減算対象の確信度が、最大確信度となっている場合である。確信度修正部140は、k=nであれば処理をステップS111に進める。また確信度修正部140は、k=nでなければ処理をステップS113に進める。
【0083】
[ステップS111]確信度修正部140は、cを、現在の確信度のうちの「0」以外の最小確信度pminに更新する。また確信度修正部140は、kを「0」に初期化する。kを初期化することで、減算対象の確信度が、降順確信度ベクトルの最も下位の要素に変更される。
【0084】
[ステップS112]確信度修正部140は、減算対象の確信度p
n-k(降順確信度ベクトルのn-k番目の要素)の値が「0」か否かを判断する。減算対象の確信度の値が「0」になるのは、例えば
図8のグラフ64におけるクラス「D」の確信度のように、以前の減算処理で値が「0」に更新されている場合である。確信度修正部140は、減算対象の確信度の値が「0」であれば、処理をステップS109に進める。また確信度修正部140は、減算対象の確信度の値が「0」でなければ、処理をステップS113に進める。
【0085】
[ステップS113]確信度修正部140は、減算値の合計x’にさらに1回分の減少量を加えた値「x’+αc」がx未満か否かを判断する。確信度修正部140は、「x’+αc」がx未満であれば処理をステップS107に進める。また確信度修正部140は、「x’+αc」がx以上であれば処理をステップS114に進める。
【0086】
[ステップS114]確信度修正部140は、減算対象の確信度pn-kを、「pn-k-(x-x’)に更新する。すなわち確信度修正部140は、減算対象の確信度から、増加量xと減少量の合計x’との差分を減算する。
【0087】
[ステップS115]確信度修正部140は、確信度の値が修正された降順確信度ベクトルの要素の順番を、元の確信度ベクトルにおけるクラスごとの要素の順番に戻し、修正後の確信度ベクトルを生成する。そして確信度修正部140は、生成した確信度ベクトルを出力する。
【0088】
このようにして、各クラスの確信度の順番を変えることなく確信度が修正される。これにより、メンバーシップ推定攻撃に対する安全性を強化することができる。すなわち攻撃者がサーバ100に、ランダムに生成した特徴量ベクトルを有するクエリを送信したとしても、各クエリに対して応答される確信度ベクトルの最大確信度は、閾値以上となる。そのため攻撃者は、訓練データに含まれるデータと訓練データに含まれないデータとを区別するための最大確信度の閾値を適切に設定することができず、特定のデータが訓練データに属するか否かの判断を正確に行うことができない。
【0089】
図10は、メンバーシップ推定攻撃の失敗例を示す図である。例えば攻撃者がランダムに生成した特徴量ベクトルを含むクエリをサーバ100に送信すると、サーバ100は、モデル111を用いてクラス分類処理を行い、クエリごとの確信度ベクトルを計算する。サーバ100は、確信度ベクトルのうち、最大確信度が閾値以下の確信度ベクトルの確信度を修正する。
図10の例では、閾値が「0.6」であるものとする。
【0090】
図10に示す3つの確信度ベクトルはいずれも最大確信度が閾値以下である。そこでサーバ100は、確信度を修正した後、クエリに対する応答として、修正後の確信度ベクトルを攻撃者の端末に送信する。これにより、攻撃者が取得する確信度ベクトルの最大確信度は、すべて閾値より大きくなる。攻撃者が、取得した確信度ベクトルに基づいて、メンバーシップ推定攻撃のための閾値を計算すると、閾値は例えば「0.8」となる。
【0091】
その後、攻撃者が、端末を用いて訓練データに属するFさんのデータの特徴量ベクトルを生成し、その特徴量ベクトルを含むクエリをサーバ100に送信する。サーバ100は、モデル111を用いてFさんの特徴量ベクトルに対応する確信度ベクトルを計算する。
図10の例では、Fさんの特徴量ベクトルに応じて生成された確信度ベクトルの最大確信度は「0.7」である。この最大確信度は、確信度修正のための閾値「0.6」より大きいため、確信度の修正は行われない。そこでサーバ100から攻撃者の端末へ、Fさんの特徴量ベクトルに応じた、修正されていない確信度ベクトルが送信される。
【0092】
攻撃者は、取得した確信度ベクトルの最大確信度が「0.7」であり、ランダムな特徴量データを用いて特定した閾値t=0.8よりも、最大確信度が小さいと判断する。その結果、攻撃者は、Fさんのデータが訓練データに属していないと推定する。
【0093】
図5の例と
図10の例とを比べると分かるように、確信度の修正を行うことで、Fさんのデータが訓練データに含まれるか否かについて攻撃者に知られることが抑止されている。すなわち、メンバーシップ推定攻撃に対する耐性が向上している。
【0094】
〔その他の実施の形態〕
第2の実施の形態では、サーバ100は、すべての確信度ベクトルについて最大確信度が閾値を超えるように確信度を修正しているが、すべての確信度ベクトルについて最大確信度が閾値未満となるように確信度を修正してもよい。
【0095】
図11は、最大確信度を減少させる修正を行う確信度修正の一例を示す図である。例えばサーバ100の確信度修正部140は、最大確信度の上限閾値を設定する。例えば確信度修正部140は、訓練データを用いて、訓練データで得られる複数の確信度ベクトルそれぞれの最大確信度の上位tパーセンタイルを上限閾値t
tとする。
【0096】
確信度修正部140は、クラス分類で生成された確信度ベクトルの最大確信度が上限閾値ttを超えている場合に,最大確信度をxだけ減らす確信度の修正処理を行う。例えば確信度修正部140は、確信度を修正する場合、まず確信度ベクトルの要素を、確信度によって降順に並べ替え、降順確信度ベクトル=[p0,p1,・・・,pn]を生成する。
【0097】
次に確信度修正部140は、最大確信度p0をxだけ減少させる。例えば確信度修正部140は、p0=tsに減少させる。tsは、上限閾値tt以下の値である。このときの減少量xは、「x=p0-ts」となる。
【0098】
確信度修正部140は、修正後のp0(=ts)を、例えば乱数aを用いてp0=p1+aとする。また確信度修正部140は、修正後のp0(=ts)を、p0=tt-aとしてもよい。
【0099】
そして確信度修正部140は、減らした分(減少量x)を他の確信度に振り分ける。例えば各piを「pi+x×(pi/(Σi=1
npi))」と更新する。Σi=1
npiは、最大確信度以外の確信度の合計である。すなわち、減少量xを最大確信度以外の確信度それぞれに、確信度の大きさに応じて比例配分した値が「x×(pi/(Σi=1
npi))である。確信度修正部140は、各確信度に、比例配分により求めた値を加算する。
【0100】
これにより、グラフ71に示すように最大確信度が閾値を超えているとき、グラフ72に示すように最大確信度が閾値以下となるように修正される。このような確信度修正処理を行うことで、攻撃者が、訓練データに含まれる特定の個人のデータから生成した特徴量データをクエリとしてサーバ100に送信しても、サーバ100から応答される確信度ベクトルの最大確信度は閾値以下となる。その結果、攻撃者は、送信したクエリの生成元となった個人のデータが訓練データに含まれていたか否かを正しく判断することができない。
【0101】
以上、実施の形態を例示したが、実施の形態で示した各部の構成は同様の機能を有する他のものに置換することができる。また、他の任意の構成物や工程が付加されてもよい。さらに、前述した実施の形態のうちの任意の2以上の構成(特徴)を組み合わせたものであってもよい。
【符号の説明】
【0102】
1 端末
2 分類対象データ
3 モデル
4,5 グラフ
10 情報処理装置
11 記憶部
12 処理部