(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-11-08
(45)【発行日】2023-11-16
(54)【発明の名称】制御方法、情報処理装置および制御プログラム
(51)【国際特許分類】
G06N 3/04 20230101AFI20231109BHJP
G06F 21/57 20130101ALI20231109BHJP
【FI】
G06N3/04
G06F21/57 370
(21)【出願番号】P 2021570588
(86)(22)【出願日】2020-01-17
(86)【国際出願番号】 JP2020001409
(87)【国際公開番号】W WO2021144943
(87)【国際公開日】2021-07-22
【審査請求日】2022-05-18
(73)【特許権者】
【識別番号】000005223
【氏名又は名称】富士通株式会社
(74)【代理人】
【識別番号】110002918
【氏名又は名称】弁理士法人扶桑国際特許事務所
(72)【発明者】
【氏名】樋口 裕二
(72)【発明者】
【氏名】清水 俊也
(72)【発明者】
【氏名】森川 郁也
【審査官】福西 章人
(56)【参考文献】
【文献】BASU, Samyadeep et al.,Membership Model Inversion Attacks for Deep Networks,v1,2019年10月09日,pp.1-7,[検索日 2020.02.07], インターネット:<URL:https://arxiv.org/pdf/1910.04257v1.pdf>,第2ページ第27行~第3ページ第4行
【文献】JALAL, Ajil et al.,The Robust Manifold Defense: Adversarial Training using Generative Models,v5,2019年07月10日,pp.1-19,[検索日 2020.02.07], インターネット:<URL:https://arxiv.org/pdf/1712.09196v5.pdf>,第4ページ第1行~第5ページ第17行
(58)【調査した分野】(Int.Cl.,DB名)
G06N 3/00-99/00
G06F 21/57
(57)【特許請求の範囲】
【請求項1】
コンピュータが、
入力の画像データから、前記入力の画像データが特定のクラスに属する可能性を示す確信度を算出する分類モデルと、前記入力の画像データよりも次元数の小さい入力の特徴値を、前記入力の画像データに変換するモデルであって、画像データの集合に対応する特徴値の集合が特定の確率分布に従うように生成された変換モデルと、を取得し、
前記特定の確率分布に基づいて第1の特徴値を抽出し、
前記変換モデルを用いて前記第1の特徴値を第1の画像データに変換し、前記分類モデルを用いて前記第1の画像データに対応する第1の確信度を算出し、
前記特定の確率分布が示す前記第1の特徴値に対応する第1の確率密度を用いて重み係数を算出し、前記第1の確信度と前記重み係数との積を用いて、前記分類モデルによって算出される確信度が前記第1の確信度よりも高くなるように、前記変換モデルに入力する特徴値を前記第1の特徴値から第2の特徴値に更新する、
制御方法。
【請求項2】
前記コンピュータが更に、
前記入力の画像データを前記入力の特徴値に変換するエンコーダと、前記入力の特徴値を前記入力の画像データに変換するデコーダと、を含む変分オートエンコーダを生成し、前記デコーダを前記変換モデルとして使用する、
請求項1記載の制御方法。
【請求項3】
前記コンピュータが更に、
前記特定の確率分布が示す確率密度の最大値より小さい上限値を設定し、
前記第2の特徴値への更新では、前記第1の確率密度が前記上限値以下である場合、前記第1の確率密度を前記重み係数として使用し、前記第1の確率密度が前記上限値を超える場合、前記上限値を前記重み係数として使用する、
請求項
1記載の制御方法。
【請求項4】
コンピュータが、
入力の画像データから、前記入力の画像データが特定のクラスに属する可能性を示す確信度を算出する分類モデルと、前記入力の画像データよりも次元数の小さい入力の特徴値を、前記入力の画像データに変換するモデルであって、画像データの集合に対応する特徴値の集合が特定の確率分布に従うように生成された変換モデルと、を取得し、
前記特定の確率分布に基づいて
複数の第1の特徴値を抽出し、
前記変換モデルを用いて前記
複数の第1の特徴値
それぞれを第1の画像データに変換し、前記分類モデルを用いて前記第1の画像データに対応する第1の確信度を算出し、
前記特定の確率分布および前記
複数の第1の特徴値に基づいて、前記分類モデルによって算出される確信度が前記第1の確信度よりも
それぞれ高くなるように、前記変換モデルに入力する特徴値を前記
複数の第1の特徴値から
複数の第2の特徴値に更新
し、
前記複数の第2の特徴値それぞれから算出された第2の確信度に基づいて、前記複数の第2の特徴値それぞれの評価値を算出し、
前記評価値に基づいて、前記複数の第2の特徴値のうち少なくとも1つの第2の特徴値を選択し、前記少なくとも1つの第2の特徴値から所定範囲内にある他の第2の特徴値を抽出して、前記変換モデルに入力する特徴値として追加する、
制御方法。
【請求項5】
入力の画像データから、前記入力の画像データが特定のクラスに属する可能性を示す確信度を算出する分類モデルと、前記入力の画像データよりも次元数の小さい入力の特徴値を、前記入力の画像データに変換するモデルであって、画像データの集合に対応する特徴値の集合が特定の確率分布に従うように生成された変換モデルと、を記憶する記憶部と、
前記特定の確率分布に基づいて第1の特徴値を抽出し、前記変換モデルを用いて前記第1の特徴値を第1の画像データに変換し、前記分類モデルを用いて前記第1の画像データに対応する第1の確信度を算出し、
前記特定の確率分布が示す前記第1の特徴値に対応する第1の確率密度を用いて重み係数を算出し、前記第1の確信度と前記重み係数との積を用いて、前記分類モデルによって算出される確信度が前記第1の確信度よりも高くなるように、前記変換モデルに入力する特徴値を前記第1の特徴値から第2の特徴値に更新する処理部と、
を有する情報処理装置。
【請求項6】
コンピュータに、
入力の画像データから、前記入力の画像データが特定のクラスに属する可能性を示す確信度を算出する分類モデルと、前記入力の画像データよりも次元数の小さい入力の特徴値を、前記入力の画像データに変換するモデルであって、画像データの集合に対応する特徴値の集合が特定の確率分布に従うように生成された変換モデルと、を取得し、
前記特定の確率分布に基づいて第1の特徴値を抽出し、
前記変換モデルを用いて前記第1の特徴値を第1の画像データに変換し、前記分類モデルを用いて前記第1の画像データに対応する第1の確信度を算出し、
前記特定の確率分布が示す前記第1の特徴値に対応する第1の確率密度を用いて重み係数を算出し、前記第1の確信度と前記重み係数との積を用いて、前記分類モデルによって算出される確信度が前記第1の確信度よりも高くなるように、前記変換モデルに入力する特徴値を前記第1の特徴値から第2の特徴値に更新する、
処理を実行させる制御プログラム。
【請求項7】
コンピュータが、
複数の画像データの特徴に応じた複数の値を特定の分布で含んでおり、前記複数の値それぞれに含まれる変数が前記複数の画像データそれぞれに含まれる変数よりも少ない値集合から、前記分布に従って何れかの値を抽出し、
抽出した前記何れかの値を分類推定モデルへの入力値とした場合の前記分類推定モデルによる分類推定結果に含まれる分類の確信度のうち、特定の分類の確信度を取得し、
前記分布が示す前記何れかの値に対応する確率密度を用いて重み係数を算出し、取得した前記確信度と前記重み係数との積を用いて、前記分類推定モデルへの入力値とした場合に前記分類推定モデルによる分類推定結果に含まれる前記特定の分類の確信度が、取得した前記確信度よりも高くなる値を生成する、
制御方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は制御方法、情報処理装置および制御プログラムに関する。
【背景技術】
【0002】
入力された画像に写った物体のクラスを予測する分類モデルを、機械学習によって生成し、生成された分類モデルを画像認識に使用することがある。分類モデルを生成する機械学習では、サンプル画像と当該サンプル画像が属するクラスを示す教師ラベルとを対応付けた訓練データを用意する。この訓練データを用いて、入力された画像が特定のクラスに属する可能性を示す確信度を出力する分類モデルを生成することができる。分類モデルは、畳み込みニューラルネットワーク(CNN:Convolutional Neural Network)などの多層ニューラルネットワークであることがある。
【0003】
機械学習によって生成された分類モデルに対するセキュリティ上の脅威として、モデルインバージョン攻撃が議論されている。分類モデルはその性質上、訓練データに含まれるサンプル画像と類似する画像が入力された場合に、正解クラスの確信度として非常に高い確信度を出力することが多い。モデルインバージョン攻撃ではこの性質を利用して、特定のクラスの確信度が非常に高くなるような入力の画像を探索することで、訓練データに含まれるサンプル画像を推定する。個人情報など保護すべき秘密情報が訓練データに含まれている場合、秘密情報が推定されて漏洩するリスクがある。
【0004】
なお、機械学習を利用したセキュリティ技術として、ネットワークのトラフィックデータをニューラルネットワークに入力し、ニューラルネットワーク内で算出された特徴ベクトルから侵入カテゴリを判定する侵入検知システムが提案されている。
【先行技術文献】
【特許文献】
【0005】
【発明の概要】
【発明が解決しようとする課題】
【0006】
機械学習によって生成された分類モデルを運用するにあたり、モデルインバージョン攻撃を試行して、分類モデルの攻撃耐性を評価したいことがある。単純な評価方法として、入力する画像を生成し、評価対象の分類モデルにアクセスして特定のクラスの確信度を算出し、確信度が高くなるように画像の画素値を微修正することを繰り返して、正解のサンプル画像を再現できるか評価する方法が考えられる。
【0007】
しかし、画素値の微修正を繰り返す単純な評価方法では、分類モデルへのアクセス回数が非常に多くなって計算量が大きくなってしまう。また、画像は次元数が大きく自由度が高いデータであるため、最初に入力する初期画像に依存して、正解のサンプル画像と類似しない局所解に陥ってしまうことも多い。このため、現実的な分析時間の範囲で、分類モデルの攻撃耐性を精度よく評価することが難しいという問題がある。
【0008】
1つの側面では、本発明は、学習済みモデルの攻撃耐性の評価精度を向上させる制御方法、情報処理装置および制御プログラムを提供することを目的とする。
【課題を解決するための手段】
【0009】
1つの態様では、コンピュータが実行する制御方法が提供される。入力の画像データから、入力の画像データが特定のクラスに属する可能性を示す確信度を算出する分類モデルと、入力の画像データよりも次元数の小さい入力の特徴値を、入力の画像データに変換するモデルであって、画像データの集合に対応する特徴値の集合が特定の確率分布に従うように生成された変換モデルと、を取得する。特定の確率分布に基づいて第1の特徴値を抽出する。変換モデルを用いて第1の特徴値を第1の画像データに変換し、分類モデルを用いて第1の画像データに対応する第1の確信度を算出する。特定の確率分布および第1の特徴値に基づいて、分類モデルによって算出される確信度が第1の確信度よりも高くなるように、変換モデルに入力する特徴値を第1の特徴値から第2の特徴値に更新する。
【0010】
また、1つの態様では、記憶部と処理部とを有する情報処理装置が提供される。また、1つの態様では、コンピュータに実行させる制御プログラムが提供される。
【発明の効果】
【0011】
1つの側面では、学習済みモデルの攻撃耐性の評価精度が向上する。
本発明の上記および他の目的、特徴および利点は本発明の例として好ましい実施の形態を表す添付の図面と関連した以下の説明により明らかになるであろう。
【図面の簡単な説明】
【0012】
【
図1】第1の実施の形態の情報処理装置の例を説明する図である。
【
図2】第2の実施の形態の情報処理装置のハードウェア例を示す図である。
【
図10】情報処理装置の機能例を示すブロック図である。
【
図13】訓練データ推定の第1の手順例を示すフローチャートである。
【
図14】訓練データ推定の第1の手順例を示すフローチャート(続き)である。
【
図15】訓練データ推定の第2の手順例を示すフローチャートである。
【
図16】訓練データ推定の第2の手順例を示すフローチャート(続き)である。
【発明を実施するための形態】
【0013】
以下、本実施の形態を図面を参照して説明する。
[第1の実施の形態]
第1の実施の形態を説明する。
【0014】
図1は、第1の実施の形態の情報処理装置の例を説明する図である。
第1の実施の形態の情報処理装置10は、機械学習によって生成された学習済みモデルの攻撃耐性を評価する。学習済みモデルに対する攻撃には、モデルインバージョン攻撃が含まれる。モデルインバージョン攻撃は、学習済みモデルに様々な入力データを与えて、学習済みモデルの出力を監視することで、機械学習に使用された訓練データを推定するものである。訓練データの再現度は、モデルインバージョン攻撃を受ける学習済みモデルによって異なる。情報処理装置10は、モデルインバージョン攻撃を試行することで、訓練データの再現度を確認し、学習済みモデルの攻撃耐性を評価する。情報処理装置10は、クライアント装置でもよいしサーバ装置でもよい。情報処理装置10を、コンピュータ、制御装置、分析装置、評価装置、機械学習装置などと言うこともできる。
【0015】
情報処理装置10は、記憶部11および処理部12を有する。記憶部11は、RAM(Random Access Memory)などの揮発性半導体メモリでもよいし、HDD(Hard Disk Drive)やフラッシュメモリなどの不揮発性ストレージでもよい。処理部12は、例えば、CPU(Central Processing Unit)、GPU(Graphics Processing Unit)、DSP(Digital Signal Processor)などのプロセッサである。ただし、処理部12は、ASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)などの特定用途の電子回路を含んでもよい。プロセッサは、RAMなどのメモリ(記憶部11でもよい)に記憶されたプログラムを実行する。複数のプロセッサの集合を「マルチプロセッサ」または単に「プロセッサ」と言うこともある。
【0016】
記憶部11は、分類モデル13および変換モデル14を記憶する。
分類モデル13は、評価対象の学習済みモデルであり、画像データから確信度を算出する。画像データは、複数の画素値が格子状に並んだテンソル形式データであってもよい。確信度は、入力された画像データが特定のクラス(画像分類)に属する可能性を示す数値である。分類モデル13は、複数のクラスに対応する複数の確信度を算出してもよい。あるクラスの確信度は、入力された画像データが、複数のクラスのうち当該クラスに属する相対的な確からしさを示す確率であってもよい。複数のクラスの確信度の合計が1であってもよく、各クラスの確信度が0以上1以下の実数であってもよい。あるクラスの確信度が高いほど、入力された画像データが当該クラスに属する可能性が高い。
【0017】
分類モデル13は、例えば、顔認識や文字認識などの画像認識に用いられる。分類モデル13は、機械学習を通じて値が決定されるパラメータを含む。分類モデル13は、CNNなどの多層ニューラルネットワークであってもよく、ノード間を接続するエッジに対して割り当てられた重みをパラメータとして含んでもよい。分類モデル13の生成に使用された訓練データは、サンプル画像データと、当該サンプル画像データが属するクラスを示す教師ラベルとを対応付ける。例えば、サンプル画像データが顔写真データであり、教師ラベルが正解の顔認識結果である。また、例えば、サンプル画像データが手書き文字データであり、教師ラベルが正解の文字認識結果である。
【0018】
ここで、訓練データは、個人情報など保護されるべき秘密情報を含むことがある。例えば、顔写真データと当該人物の名前との対応関係が、保護されるべき個人情報であることがある。分類モデル13は、様々なサンプル画像データと教師ラベルとの間に成立する一般的な関係を表すため、個々の秘密情報を直接提供するものではない。しかし、サンプル画像データが入力された場合に、分類モデル13が、正解クラスの確信度として非常に大きい数値を出力することがある。これは、サンプル画像データを推定するためのヒントを攻撃者に与えていることになる。よって、モデルインバージョン攻撃が成功して、訓練データに含まれる秘密情報が漏洩するリスクがある。
【0019】
なお、情報処理装置10によるモデルインバージョン攻撃の試行は、分類モデル13の内部構造を知らなくても成立するブラックボックス攻撃として行うことが可能である。よって、情報処理装置10は、分類モデル13そのものを保持していなくてもよく、分類モデル13にアクセス可能であればよい。例えば、情報処理装置10は、分類モデル13を公開している他の情報処理装置に画像データを送信し、画像データに対応する確信度を他の情報処理装置から受信するようにしてもよい。
【0020】
変換モデル14は、特徴値を画像データに変換する。変換モデル14が出力する画像データは、分類モデル13に入力可能なものである。入力される特徴値は、画像データよりも次元数が小さい。例えば、特徴値は、48次元のベクトルである。変換モデル14は、多層ニューラルネットワークであってもよい。また、変換モデル14は、情報処理装置10が生成してもよいし、他の情報処理装置から取得するようにしてもよい。
【0021】
ここで、変換モデル14は、様々な画像データの集合に対応する特徴値の集合が、特定の確率分布15に従うように生成されている。確率分布15は、正規分布であってもよい。例えば、確率分布15は、特定の平均ベクトルおよび分散共分散行列によって規定される多変量正規分布である。確率分布15は、1つの特徴値に対して、確率密度関数によって算出される1つの確率密度を割り当てる。ある特徴値の確率密度は、その特徴値から変換される画像データの出現確率を表していると言うこともできる。一般に、平均に近いほど確率密度が大きくなり、平均から遠いほど確率密度が小さくなる。
【0022】
変換モデル14は、変分オートエンコーダ(VAE:Variational Auto Encoder)に含まれるデコーダであってもよい。例えば、情報処理装置10は、分類モデル13の機械学習に用いたサンプル画像データと同一または同種の画像データを収集する。情報処理装置10は、収集した画像データを用いて、機械学習によって変分オートエンコーダを生成する。変分オートエンコーダは、画像データから特徴値を算出するエンコーダと、特徴値を画像データに復元するデコーダとを含む多層ニューラルネットワークである。エンコーダが、特徴値の平均および分散に相当するノードを含むため、エンコーダを通じて算出される特徴値の集合が、特定の確率分布にフィットすることが多い。
【0023】
処理部12は、以下のようにして、分類モデル13に対してモデルインバージョン攻撃を試行する。処理部12は、確率分布15に基づいて特徴値16(第1の特徴値)を抽出する。特徴値16は、確率分布15が示す確率密度に従ってランダムに抽出されてもよい。例えば、処理部12は、0以上1以下の乱数を生成し、累積確率が乱数と一致するような特徴値を求める。これにより、確率密度が高い特徴値ほど抽出される可能性が高くなり、確率密度が低い特徴値ほど抽出される可能性が低くなる。
【0024】
処理部12は、特徴値16を変換モデル14に入力することで、特徴値16を画像データ17に変換する。処理部12は、画像データ17を分類モデル13に入力することで、画像データ17に対応する確信度18を算出する。分類モデル13が複数のクラスの確信度を算出する場合、サンプル画像データを推定する対象とするクラスを1つ決めておく。対象のクラスは、ユーザから指定されてもよい。なお、変換モデル14は、分類モデル13の前段に結合される。モデルインバージョン攻撃の試行では、変換モデル14と分類モデル13とが一体として運用され、中間データとしての画像データ17を明示的に取り出さなくてもよい。よって、変換モデル14と分類モデル13とを結合したものを1つのモデルとみなして、モデルインバージョン攻撃を試行することが可能である。
【0025】
処理部12は、確率分布15と特徴値16と確信度18とに基づいて、特徴値19(第2の特徴値)を抽出し、特徴値16を特徴値19に更新する。特徴値19は、分類モデル13によって算出される確信度が、確信度18よりも高くなるように抽出される。処理部12は、最急降下法などの勾配法の探索アルゴリズムを用いてもよい。例えば、処理部12は、特徴値の変化量に対する、確信度の変化量または確信度に応じた指標値の変化量の比率を、勾配として算出し、算出した勾配と特徴値16とから特徴値19を決定する。このとき、特徴値16に対応する確率密度を、重み係数として確信度18に乗じて指標値を求めるようにしてもよい。これにより、確率密度が高くなる方向に優先的に特徴値が探索され、出現確率が低い画像データの生成を抑制することができる。
【0026】
処理部12は、特徴値19を変換モデル14に入力する。処理部12は、特徴値の更新と画像データの生成と確信度の算出とを繰り返すことで、確信度が高くなる特徴値を探索する。処理部12は、確信度が十分に高い特徴値から変換される画像データを、モデルインバージョン攻撃によるサンプル画像データの推定結果とみなす。なお、処理部12は、確率分布15に従って、異なる複数の特徴値を初期値として抽出し、これら複数の特徴値それぞれに対して上記の繰り返しを実行するようにしてもよい。
【0027】
上記のように、処理部12は、確信度が高くなるような画像データを直接探索する代わりに、確率分布15に従う特徴空間上の特徴値を探索することになる。勾配法の探索アルゴリズムを使用する場合、確信度の勾配は、画像データの画素値に対する勾配として算出される代わりに、特徴空間の特徴値に対する勾配として算出される。
【0028】
なお、第1の実施の形態の情報処理装置10による制御方法は、次のように表現することもできる。情報処理装置10は、複数の画像データの特徴に応じた複数の値を特定の分布で含んでおり、複数の値それぞれに含まれる変数が複数の画像データそれぞれに含まれる変数よりも少ない値集合から、分布に従って何れかの値を抽出する。情報処理装置10は、抽出した何れかの値を分類推定モデルへの入力値とした場合の分類推定モデルによる分類推定結果に含まれる分類の確信度のうち、特定の分類の確信度を取得する。情報処理装置10は、分布と何れかの値とに基づいて、分類推定モデルへの入力値とした場合に分類推定モデルによる分類推定結果に含まれる特定の分類の確信度が、取得した確信度よりも高くなる値を生成する。「分類推定モデル」は、例えば、分類モデル13の前段に変換モデル14を結合したものに対応する。「特定の分布」は、例えば、確率分布15に対応する。「変数」は、例えば、ベクトルに含まれる各次元の要素に対応する。「何れかの値」は、例えば、特徴値16に対応する。「特定の分類の確信度」は、例えば、確信度18に対応する。「取得した確信度より高くなる値」は、例えば、特徴値19に対応する。
【0029】
第1の実施の形態の情報処理装置10によれば、確率分布15に基づいて特徴値16が抽出され、変換モデル14および分類モデル13を通じて確信度18が算出される。そして、分類モデル13によって算出される確信度が確信度18よりも高くなるように、変換モデル14に入力する特徴値が特徴値16から特徴値19に更新される。
【0030】
画像データより次元数が小さく特定の確率分布をもつ特徴空間を利用することで、画像データの画素を直接修正する場合と比べて探索を効率化でき、分類モデル13に画像データを入力するアクセス回数を削減することができる。また、訓練データに含まれるサンプル画像データと明らかに類似しない画像データを生成して分類モデル13に入力してしまう可能性を低減でき、局所解に陥ってサンプル画像データの推定に失敗する可能性を低減できる。よって、分類モデル13に対してモデルインバージョン攻撃を効率的に試行することができ、サンプル画像データの最大の再現度を精度よく評価することができる。その結果、分類モデル13の攻撃耐性の評価精度を向上させることができる。
【0031】
[第2の実施の形態]
次に、第2の実施の形態を説明する。
第2の実施の形態の情報処理装置は、機械学習によって生成された分類モデルに対してモデルインバージョン攻撃を試行し、分類モデルの攻撃耐性を評価する。第2の実施の形態の情報処理装置は、クライアント装置でもよいしサーバ装置でもよい。
【0032】
図2は、第2の実施の形態の情報処理装置のハードウェア例を示す図である。
第2の実施の形態の情報処理装置100は、CPU101、RAM102、HDD103、画像インタフェース104、入力インタフェース105、媒体リーダ106および通信インタフェース107を有する。情報処理装置100が有するこれらのユニットは、バスに接続されている。情報処理装置100は、第1の実施の形態の情報処理装置10に対応する。CPU101は、第1の実施の形態の処理部12に対応する。RAM102またはHDD103は、第1の実施の形態の記憶部11に対応する。
【0033】
CPU101は、プログラムの命令を実行するプロセッサである。CPU101は、HDD103に記憶されたプログラムやデータの少なくとも一部をRAM102にロードし、プログラムを実行する。CPU101は複数のプロセッサコアを備えてもよく、情報処理装置100は複数のプロセッサを備えてもよい。複数のプロセッサの集合を「マルチプロセッサ」または単に「プロセッサ」と言うことがある。
【0034】
RAM102は、CPU101が実行するプログラムやCPU101が演算に使用するデータを一時的に記憶する揮発性半導体メモリである。情報処理装置100は、RAM以外の種類のメモリを備えてもよく、複数のメモリを備えてもよい。
【0035】
HDD103は、OS(Operating System)やミドルウェアやアプリケーションソフトウェアなどのソフトウェアのプログラム、および、データを記憶する不揮発性ストレージである。情報処理装置100は、フラッシュメモリやSSD(Solid State Drive)など他の種類のストレージを備えてもよく、複数のストレージを備えてもよい。
【0036】
画像インタフェース104は、CPU101からの命令に従って、情報処理装置100に接続された表示装置111に画像を出力する。表示装置111として、CRT(Cathode Ray Tube)ディスプレイ、液晶ディスプレイ(LCD:Liquid Crystal Display)、有機EL(OEL:Organic Electro-Luminescence)ディスプレイ、プロジェクタなど、任意の種類の表示装置を使用することができる。情報処理装置100に、プリンタなど表示装置111以外の出力デバイスが接続されてもよい。
【0037】
入力インタフェース105は、情報処理装置100に接続された入力デバイス112から入力信号を受け付ける。入力デバイス112として、マウス、タッチパネル、タッチパッド、キーボードなど、任意の種類の入力デバイスを使用することができる。情報処理装置100に複数種類の入力デバイスが接続されてもよい。
【0038】
媒体リーダ106は、記録媒体113に記録されたプログラムやデータを読み取る読み取り装置である。記録媒体113として、フレキシブルディスク(FD:Flexible Disk)やHDDなどの磁気ディスク、CD(Compact Disc)やDVD(Digital Versatile Disc)などの光ディスク、半導体メモリなど、任意の種類の記録媒体を使用することができる。媒体リーダ106は、例えば、記録媒体113から読み取ったプログラムやデータを、RAM102やHDD103などの他の記録媒体にコピーする。読み取られたプログラムは、例えば、CPU101によって実行される。なお、記録媒体113は可搬型記録媒体であってもよく、プログラムやデータの配布に用いられることがある。また、記録媒体113やHDD103を、コンピュータ読み取り可能な記録媒体と言うことがある。
【0039】
通信インタフェース107は、ネットワーク114に接続され、ネットワーク114を介して他の情報処理装置と通信する。通信インタフェース107は、スイッチやルータなどの有線通信装置に接続される有線通信インタフェースでもよいし、基地局やアクセスポイントなどの無線通信装置に接続される無線通信インタフェースでもよい。
【0040】
次に、分類モデルについて説明する。
図3は、分類モデルの入出力例を示す図である。
機械学習によって分類モデル141が生成される。分類モデル141は、画像142を受け付け、確信度データ143を出力する学習済みモデルである。分類モデル141は、画像142を何れかのクラスに分類するものであり、画像認識に用いられる。第2の実施の形態では主に、人物の顔写真から人物の名前を判定する顔認識を想定する。
【0041】
画像142は、格子状に並んだ画素値の集合である。画素値は、画素(ピクセル)の輝度を示す数値である。画像142は、多次元配列であるテンソルとして表現される。画像142がモノクロ画像である場合、画像142は、所定の高さと所定の幅とをもつ二次元配列である二階のテンソルとして表現される。画像142がカラー画像である場合、画像142は、所定の高さと所定の幅とRGB(Red Green Blue)に相当する3つのチャネルとをもつ三次元配列である三階のテンソルとして表現される。分類モデル141に入力される画像142の高さおよび幅は、予め所定の高さおよび幅に調整されている。分類モデル141には、高さ×幅×チャネル数に相当する個数の画素値が入力されることになる。この高さ×幅×チャネル数が、入力の次元数である。
【0042】
確信度データ143は、複数のクラスに対応する複数の確信度を列挙した出力データである。複数のクラスは、画像種類である分類先クラスの候補である。顔認識の場合、複数のクラスは、異なる人物の名前である。あるクラスの確信度は、画像142が当該クラスに属する確からしさを示す数値である。確信度が高いほど画像142が当該クラスに属する可能性が高いことを意味し、確信度が低いほど画像142が当該クラスに属する可能性が低いことを意味する。各クラスの確信度は、0以上1以下の実数である。複数のクラスの確信度の合計は1となる。例えば、顔写真である画像142に対して、Aliceの確信度が0.80、Bobの確信度が0.10、Carolの確信度が0.10のように判定される。この場合、画像142に写った人物がAliceである可能性が高い。
【0043】
分類モデル141は、例えば、畳み込みニューラルネットワーク(CNN)などの多層ニューラルネットワークである。一般に、畳み込みニューラルネットワークは、1以上の畳み込み層、1以上のプーリング層および1以上の全結合層を含む。
【0044】
畳み込み層は、入力テンソルとカーネルと呼ばれるフィルタとの間で積和演算を行い、特徴マップと呼ばれる出力テンソルを生成する。典型的な畳み込み層では、カーネルの高さおよび幅が入力テンソルより小さく、出力テンソルの高さおよび幅が入力テンソルと同じか入力テンソルより小さい。畳み込み層は、カーネルを入力テンソルに重ね、重なったカーネルの要素と入力テンソルの要素との間でそれぞれ積を算出し、積を合算する。合算値は、カーネルの中心が重なった入力テンソルの要素に対応する出力テンソルの要素となる。畳み込み層は、入力テンソル上でカーネルをずらしながら積和演算を繰り返す。
【0045】
プーリング層は、入力テンソルの中の連続する複数個(例えば、2×2=4個)の要素を1つの要素に合成して、入力テンソルよりも高さおよび幅が小さい出力テンソルを生成する。プーリング演算には、複数個の要素の中から最大値を選択する最大プーリングや、複数個の要素の平均を算出する平均プーリングなどがある。全結合層は、入力テンソルの全ての要素の重み付き和として1つの数値を算出する。
【0046】
上記の畳み込み演算、プーリング演算および全結合演算は、多層ニューラルネットワークとして実装される。多層ニューラルネットワークは、入力データを受け付ける入力層と、出力データを出力する出力層と、入力層と出力層との間にある1以上の中間層とを含む。1つの層にはニューロンに相当するノードが列挙され、隣接する層のノード間にはシナプスに相当するエッジが形成される。エッジには重みが割り当てられる。エッジの重みは、機械学習を通じて算出されるパラメータである。
【0047】
分類モデル141の学習には、サンプル画像とクラスを示す教師ラベルとの組を複数セット含む訓練データが使用される。教師ラベルは、ユーザにより付与される。顔認識の場合、それぞれ人物の名前が付与された顔写真の集合が訓練データとして使用される。
【0048】
分類モデル141が多層ニューラルネットワークである場合、例えば、エッジの重みの算出に誤差逆伝播法が用いられる。誤差逆伝播法では、サンプル画像の画素値が入力層のノードに対して入力され、前の層のノードの出力値に重みを乗じて次の層のノードに入力することが、入力層から出力層に向かって繰り返される。出力層の出力値と教師ラベルとが比較されて誤差が算出される。そして、出力層に近い方から順に、エッジの重みに対する誤差の勾配(偏微分)が算出され、誤差の勾配に基づいて重みが更新される。誤差の勾配は、出力層から入力層に向かって逆方向に伝播する。サンプル画像の入力と誤算の算出と重みの更新が、訓練データに含まれる多数のサンプル画像に対して繰り返される。このようにして、訓練データから分類モデル141が生成される。
【0049】
ところで、分類モデル141の生成に用いられる訓練データには、個人情報など保護されるべき秘密情報が含まれることがある。例えば、顔写真と名前の組が、保護されるべき個人情報であることがある。この点、訓練データから生成された分類モデル141は、入力された画像に対応する確信度を出力するだけであり、訓練データに含まれるサンプル画像と教師ラベルとの組を直接提供するものではない。よって、訓練データを秘匿すれば、分類モデル141を公開しても秘密情報がすぐに漏洩するわけではない。
【0050】
しかし、分類モデル141に対してモデルインバージョン攻撃を行うことで、特定のクラスの確信度に基づいて、当該クラスに対応するサンプル画像を推定することができる場合がある。これは、機械学習の性質上、訓練データに含まれるサンプル画像そのものが分類モデル141に入力されると、分類モデル141から出力される正解クラスの確信度が非常に高くなることがあるためである。モデルインバージョン攻撃によるサンプル画像の再現度が高いと、そのサンプル画像に関連する秘密情報が漏洩するリスクがある。
【0051】
モデルインバージョン攻撃によるサンプル画像の再現度は、分類モデル141のモデル構造、訓練データの量、分類モデル141が予測しようとする事象の性質など、様々な要因に依存する。そこで、情報処理装置100は、分類モデル141を公開する前に、分類モデル141のモデルインバージョン攻撃の耐性を評価する。
【0052】
情報処理装置100は、分類モデル141に対してモデルインバージョン攻撃を試行し、特定のクラスに対応するサンプル画像を、最大でどの程度まで再現できるか評価して、分類モデル141の攻撃耐性を評価する。再現度が低い場合、分類モデル141は攻撃耐性が高い(脆弱性が小さい)ことになり、再現度が高い場合、分類モデル141は攻撃耐性が低い(脆弱性が大きい)ことになる。攻撃耐性が低いと評価された場合、分類モデル141を公開するにあたって、秘密情報の漏洩リスクを下げるような施策を行うことが考えられる。例えば、分類モデル141が出力する確信度の分解能(有効桁数)を下げる、確信度を出力せずに確信度が最大のクラス名だけ出力するなどの対応策が考えられる。
【0053】
ただし、どの様にモデルインバージョン攻撃を試行するかが問題となる。第2の実施の形態では、攻撃者が分類モデル141を入手できない状況を考慮して、分類モデル141の内部構造の情報を使用せずに分類モデル141の入出力を分析するブラックボックス攻撃を想定する。これは、分類モデル141そのものを配布せず、分類モデル141の機能をサービスとしてネットワーク上で公開することがあるためである。
【0054】
ブラックボックス攻撃を前提とする単純な攻撃方法としては、ある画像を分類モデル141に入力して特定のクラスの確信度を取得し、確信度が高くなるように画像を更新することを、確信度が十分に高くなるまで繰り返す方法が考えられる。最急降下法などの勾配法の探索アルゴリズムを使用する場合、画像の画素値に対する確信度の勾配(確信度を画素値で偏微分したもの)を算出し、勾配に応じて画素値を更新することになる。
【0055】
しかしながら、上記の単純な攻撃方法では、画像の次元数が大きく自由度が高いことから、十分に高い確信度を達成するには、画像を更新する回数が多くなり、分類モデル141に画像を入力するアクセスの回数が多くなってしまう。例えば、分類モデル141へのアクセス回数が数億回に達することがあり、アクセス1回当たりの所要時間が1ミリ秒であっても、推定完了まで数日を要することがある。また、最初に入力する初期画像が、真っ白な画像や真っ黒な画像など、所望のサンプル画像とは異質な画像である場合、更新後の画像が局所解に収束してしまうことがある。よって、確信度を極大化した画像がサンプル画像と大きく異なり、モデルインバージョン攻撃が失敗することがある。
【0056】
この問題に対して、情報処理装置100は、変分オートエンコーダを利用してモデルインバージョン攻撃を試行する。情報処理装置100は、モデルインバージョン攻撃が、最大でどの程度の再現度で訓練データのサンプル画像を推定できるかを、効率的に評価する。よって、分類モデル141の攻撃耐性の評価精度が向上する。以下では、第2の実施の形態で使用する変分オートエンコーダについて説明する。
【0057】
図4は、変分オートエンコーダの例を示す図である。
変分オートエンコーダ151は、オートエンコーダの一種である。オートエンコーダは、入力データと出力データとが等しくなるように機械学習によって生成される多層ニューラルネットワークである。オートエンコーダは、入力データを、入力データよりも次元数の小さいベクトルに圧縮し、ベクトルから出力データを復元する。ただし、変分オートエンコーダ151は、ベクトルの集合が特定の確率分布に従うように生成される。変分オートエンコーダ151は、エンコーダ152およびデコーダ153を含む。
【0058】
エンコーダ152は、画像157の入力を受け付ける。エンコーダ152は、複数の層を含む多層ニューラルネットワークである。エンコーダ152の出力の次元数は、エンコーダ152の入力の次元数よりも小さい。例えば、エンコーダ152の各層の次元数が、入力から出力に向かって段階的に減少する。デコーダ153は、画像158を出力する。画像158の高さおよび幅は、画像157と同一である。画像158は、理想的には画像157と同一である。デコーダ153は、複数の層を含む多層ニューラルネットワークである。デコーダ153の出力の次元数は、デコーダ153の入力の次元数よりも大きい。例えば、デコーダ153の各層の次元数が、入力から出力に向かって段階的に増加する。
【0059】
ここで、エンコーダ152とデコーダ153との間で、ベクトル155が算出される。ベクトル155は、画像157の特徴を低次元で表現したものである。ベクトル155の次元数は、例えば、48次元である。ベクトル155を、潜在変数、特徴量、特徴ベクトルなどと言うこともある。ベクトル155は、潜在空間154にマッピングされる。潜在空間154は、48次元空間などのベクトル空間である。
【0060】
同種の画像の集合(例えば、顔写真の集合や手書き文字の集合)をエンコーダ152に入力すると、それら画像の集合に対応するベクトルの集合は、潜在空間154において、正規分布などの特定の確率分布をもつようになる。潜在空間154の確率分布は、例えば、ベクトル155を確率変数とし、特定の平均ベクトルおよび分散共分散行列によって規定される多変量正規分布である。ただし、正規分布以外の確率分布を仮定してもよい。ベクトルの集合の中での特定のベクトルの出現確率は、確率密度関数によって算出される確率密度によって近似される。通常、平均ベクトルに近いベクトルほど確率密度が大きく、平均ベクトルから離れたベクトルほど確率密度が小さい。
【0061】
ベクトル155が特定の確率分布に従うようにするため、エンコーダ152は、入力された画像157に対して、平均ベクトル(μ)に相当する数値と分散共分散行列(Σ)に相当する数値とを算出する。エンコーダ152で算出された数値が表す確率分布から、ベクトル155を抽出するサンプリングが行われる。例えば、平均ベクトルが零ベクトル(0)であり分散共分散行列が単位行列Iである標準正規分布N(0,I)から、乱数156(乱数ε)が生成される。乱数156は、標準正規分布が示す確率密度に従ってランダムに抽出されたものである。分散共分散行列Σに乱数εを乗じて偏差を求め、平均ベクトルμと偏差を合算することでベクトル155が算出される。
【0062】
機械学習による変分オートエンコーダ151の生成では、分類モデル141の機械学習に使用したサンプル画像と同一または同種の画像を収集する。訓練データそのものを入手できる場合、訓練データに含まれるサンプル画像を使用してもよい。ただし、実際のモデルインバージョン攻撃では、攻撃者は訓練データを入手できないため、攻撃耐性評価の観点からはサンプル画像と同種の画像を使用することが好ましい。例えば、分類モデル141が顔認証を行う場合、情報処理装置100は、インターネット上で公開されている顔写真を収集する。また、例えば、分類モデル141が文字認識を行う場合、情報処理装置100は、インターネット上で公開されている手書き文字を収集する。
【0063】
情報処理装置100は、収集した画像を、変分オートエンコーダ151の入力画像かつ出力画像として使用することで、変分オートエンコーダ151に含まれるパラメータを決定する。これにより、エンコーダ152およびデコーダ153に含まれるエッジの重みが決定される。エッジの重みは、例えば、前述の誤差逆伝播法によって更新される。
【0064】
パラメータが決定されると、情報処理装置100は、変分オートエンコーダ151の生成に用いた画像の集合をエンコーダ152に再び入力して、その画像の集合に対応するベクトルの集合を算出する。そして、情報処理装置100は、ベクトルの集合から、平均ベクトルと分散共分散行列とを算出する。平均ベクトルは、次元毎にベクトルの要素を平均化したものである。分散共分散行列は、一辺の長さが次元数である正方行列である。分散共分散行列の対角成分は、各次元の要素の分散を表す。分散共分散行列の非対角成分は、異なる2つの次元の間の要素の共分散を表す。
【0065】
情報処理装置100は、様々な画像に対応するベクトルをプロットした潜在空間154の全体が、この平均ベクトルおよび分散共分散行列に応じた確率分布に従うものとみなす。仮定する確率分布は、例えば、多変量正規分布である。このようにして、変分オートエンコーダ151を生成することで、入力が特定の確率分布に従うデコーダ153を入手することができる。以下に説明するように、情報処理装置100は、確信度が高くなるような画像を直接探索する代わりに、潜在空間154のベクトルを探索する。
【0066】
次に、モデルインバージョン攻撃としての訓練データ推定方法を説明する。以下では、訓練データ推定方法として4通りの例を挙げる。
図5は、訓練データ推定の第1の例を示す図である。
【0067】
第1の訓練データ推定方法では、情報処理装置100は、変分オートエンコーダ151の生成の際に算出した確率分布に従って、潜在空間154からベクトル集合161を抽出する。情報処理装置100は、確率密度が高いベクトルほど抽出されやすく、確率密度が低いベクトルほど抽出されずらくなるように、ランダムに複数のベクトルを抽出する。ベクトル集合161は、例えば、16個のベクトルを含む。
【0068】
情報処理装置100は、ベクトル集合161に含まれるベクトルをそれぞれデコーダ153に入力して、ベクトル集合161に対応する画像集合162を生成する。画像集合162は、例えば、16枚の画像を含む。情報処理装置100は、画像集合162に含まれる画像をそれぞれ分類モデル141に入力して、確信度データ163を生成する。確信度データ163は、画像集合162に含まれる画像それぞれに対して、確信度の列を含む。確信度の列は、複数のクラスに対応する複数の確信度である。
【0069】
情報処理装置100は、特定の1つのクラスに着目し、着目するクラスの確信度を確信度データ163から抽出する。着目するクラスは、モデルインバージョン攻撃の試行にあたって予め1つ決めておく。例えば、着目するクラスがユーザから指定される。情報処理装置100は、画像集合162に含まれる画像毎に、画素値を基準とする確信度の勾配、すなわち、確信度を画素値で偏微分したものを算出する。確信度の勾配は、画素値を微少量だけ変化させたときの確信度の変化量を示す。情報処理装置100は、勾配に基づいて、確信度が高くなるように画像の画素値を更新する。例えば、情報処理装置100は、勾配に所定の学習率λを乗じて更新量を算出し、更新量だけ画素値を変化させる。
【0070】
ただし、人工的に画素値を変更した画像は、自然な画像になっていない可能性がある。そこで、情報処理装置100は、画素値を変更した画像をノイズフィルタ164に入力して、画像からノイズを除去する。ノイズフィルタ164は、例えば、ノイズ除去オートエンコーダ(DAE:Denoising Auto Encoder)である。ノイズ除去オートエンコーダは、ノイズを付加した画像を入力画像とし、ノイズを付加していない元の画像を出力画像として、機械学習により生成されるオートエンコーダである。更に、情報処理装置100は、ノイズフィルタ164を通過した画像を鮮鋭化フィルタ165に入力する。鮮鋭化フィルタ165は、ラプラシアンフィルタなど、エッジを強調する画像フィルタである。ノイズフィルタ164を通過した画像は、ぼけた画像になりやすいためである。
【0071】
鮮鋭化フィルタ165を通過した画像によって、画像集合162が更新される。情報処理装置100は、分類モデル141による確信度データ163の生成と画像集合162の更新とを繰り返すループを実行する。情報処理装置100は、ループのイテレーション回数が所定回数に達したときに、ループを停止してもよい。また、情報処理装置100は、最大の確信度が閾値を超えたときにループを停止してもよい。また、情報処理装置100は、確信度が上昇しなくなったときにループを停止してもよい。
【0072】
情報処理装置100は、それまでに算出された確信度のうち最大の確信度に対応する画像を、着目するクラスに対応するサンプル画像の推定結果として出力する。ただし、情報処理装置100は、確信度が大きい方から複数個の画像を出力するようにしてもよく、確信度が閾値を超える全ての画像を出力するようにしてもよい。
【0073】
第1の訓練データ推定方法では、画像集合162の初期値が、潜在空間154から確率分布に従ってベクトル集合161を抽出することで決定される。よって、明らかにサンプル画像と類似しない的外れな画像を分類モデル141に入力することが抑制される。このため、分類モデル141へのアクセス回数を削減して探索時間を短縮することが可能になると共に、最終的にサンプル画像に近い画像に到達できる可能性が高くなる。
【0074】
図6は、訓練データ推定の第2の例を示す図である。
第2の訓練データ推定方法では、情報処理装置100は、内側ループとして、第1の訓練データ推定方法と同様の処理を実行する。すなわち、情報処理装置100は、ベクトル集合161を生成し、デコーダ153を用いてベクトル集合161を画像集合162に変換し、分類モデル141を用いて画像集合162から確信度データ163を生成する。そして、情報処理装置100は、確信度が高くなるように画像集合162を更新する。
【0075】
ここで、情報処理装置100は、内側ループのイテレーション回数が所定回数に達する毎に外側ループを実行する。外側ループとして、情報処理装置100は、画像集合162に含まれる最新の画像をそれぞれエンコーダ152に入力して、画像集合162に対応するベクトル集合166を生成する。画像集合162に含まれる画像が更新されているため、ベクトル集合166はベクトル集合161とは異なる。ただし、ベクトル集合166に含まれるベクトルの個数は、ベクトル集合161と同じであり、例えば、16個である。
【0076】
情報処理装置100は、ベクトル集合166と確信度データ163とに基づいて、評価値データ167を生成する。評価値データ167は、ベクトル集合166に含まれるベクトルそれぞれの評価値を示す。情報処理装置100は、着目するクラスの確信度そのものを評価値として用いてもよい。また、情報処理装置100は、確率分布が示すベクトルの確率密度を正則化項とし、確信度と正則化項の積を評価値として用いてもよい。確率密度を正則化項とすることで、出現確率が高い自然な画像に対応するベクトルの評価が高くなりやすくなり、出現確率が低い不自然な画像に対応するベクトルの評価が低くなりやすくなる。また、情報処理装置100は、後述するように、正則化項に上限値を設定し、上限値より大きい確率密度を上限値にクリップして正則化項として使用してもよい。
【0077】
情報処理装置100は、算出した評価値に基づいてベクトル集合161を更新する。例えば、情報処理装置100は、ベクトル集合166に含まれるベクトルを評価値の降順にソートし、評価値が高い方から所定個または所定割合のベクトルを選択し、選択しなかったベクトルを削除する。または、情報処理装置100は、各ベクトルが評価値の比の確率で選択されるように、ベクトル集合166からランダムに所定個または所定割合のベクトルを選択する。ここで選択したベクトルの集合が、次のベクトル集合161となる。この場合、ベクトル集合161に含まれるベクトルの個数が減少することになる。外側ループの繰り返しの間に、ベクトルの個数を段階的に減少させてもよい。
【0078】
また、情報処理装置100は、削除したベクトルの代わりに、潜在空間154から新たなベクトルを抽出してベクトル集合161に追加してもよい。外側ループの繰り返しの間、削除した分だけ新たなベクトルを補充することで、ベクトル集合161に含まれるベクトルの個数を一定数に維持してもよい。情報処理装置100は、削除せずに残ったベクトルの近傍から新たなベクトルを抽出するようにしてもよい。例えば、情報処理装置100は、残ったベクトルを中心とする標準偏差の小さい確率分布を定義し、その確率分布に従ってランダムに新たなベクトルを抽出する。ベクトル集合166から半分のベクトルを削除し、残ったベクトルの近傍から1つずつ新たなベクトルを抽出してもよい。
【0079】
外側ループのイテレーション回数が閾値に達すると、訓練データ推定が完了する。情報処理装置100は、それまでに算出された確信度(または、評価値)のうち最大の確信度(または、評価値)に対応する画像を、サンプル画像の推定結果として出力する。ただし、情報処理装置100は、確信度(または、評価値)が大きい方から複数個の画像を出力してもよく、確信度(または、評価値)が閾値を超える全ての画像を出力してもよい。
【0080】
第2の訓練データ推定方法では、途中段階において、評価値の小さいベクトルに対応する画像の更新が打ち切られる。よって、サンプル画像に到達できる可能性が低い無駄な画像探索が抑制される。また、画像の更新を打ち切ったベクトルの代わりに、評価値の高いベクトルの近傍ベクトルが初期値として追加されることがある。このため、分類モデル141へのアクセス回数を削減して探索時間を短縮することが可能になると共に、最終的にサンプル画像に近い画像に到達できる可能性が高くなる。
【0081】
図7は、訓練データ推定の第3の例を示す図である。
第3の訓練データ推定方法は、第1の訓練データ推定方法と同様にシングルループの探索を行う。ただし、探索中に更新される探索対象が、画像集合162の代わりにベクトル集合161となる。第3の訓練データ推定方法では画像集合162は、デコーダ153から分類モデル141に渡される中間データであり、それ以外の用途をもたない。よって、分類モデル141の前段にデコーダ153を結合したものを、仮想的に1つのモデルとみなすことができる。この仮想的なモデルは、潜在空間154のベクトルを入力として受け付け、入力されたベクトルに対応する確信度を出力するものである。
【0082】
情報処理装置100は、ベクトル集合161を生成し、デコーダ153を用いてベクトル集合161を画像集合162に変換し、分類モデル141を用いて画像集合162から確信度データ163を生成する。デコーダ153と分類モデル141とを結合したモデルが、ベクトル集合161から確信度データ163を生成しているとも言える。
【0083】
情報処理装置100は、ベクトル集合161に含まれるベクトル毎に、ベクトルの要素を基準とする確信度の勾配、すなわち、確信度をベクトルの要素で偏微分したものを算出する。確信度の勾配は、ベクトルの要素を微少量だけ変化させたときの確信度の変化量を示す。ただし、情報処理装置100は、確率分布が示すベクトルの確率密度を正則化項とし、確信度と正則化項の積の勾配を算出してもよい。また、情報処理装置100は、後述するように、正則化項に上限値を設定し、上限値より大きい確率密度を上限値にクリップして正則化項として使用してもよい。情報処理装置100は、勾配に基づいて、確信度が高くなるようにベクトルを更新する。例えば、情報処理装置100は、勾配に所定の学習率λを乗じて更新量を算出し、更新量だけベクトルの要素を変化させる。
【0084】
情報処理装置100は、ループのイテレーション回数が所定回数に達したときに、ループを停止してもよい。また、情報処理装置100は、最大の確信度(または、確信度と正則化項の積)が閾値を超えたときにループを停止してもよい。また、情報処理装置100は、確信度(または、確信度と正則化項の積)が上昇しなくなったときにループを停止してもよい。情報処理装置100は、それまでに算出された確信度(または、確信度と正則化項の積)のうち最大の確信度(または、確信度と正則化項の積)をもつベクトルに対応する画像を、サンプル画像の推定結果として出力する。ただし、情報処理装置100は、確信度(または、確信度と正則化項の積)が大きい方から複数個のベクトルに対応する画像を出力するようにしてもよく、確信度(または、確信度と正則化項の積)が閾値を超える全てのベクトルに対応する画像を出力するようにしてもよい。
【0085】
第3の訓練データ推定方法では、探索空間が、画素値の集合である画像空間に代えて、画像空間よりも次元数の小さい潜在空間154になる。よって、分類モデル141へのアクセス回数を削減して探索時間を短縮することが可能になる。また、特定の確率分布をもつ潜在空間154を利用することで、的外れな画像を分類モデル141に入力することが抑制され、最終的にサンプル画像に近い画像に到達できる可能性が高くなる。
【0086】
図8は、訓練データ推定の第4の例を示す図である。
第4の訓練データ推定方法では、情報処理装置100は、内側ループとして、第3の訓練データ推定方法と同様の処理を実行する。すなわち、情報処理装置100は、ベクトル集合161を生成し、デコーダ153を用いてベクトル集合161を画像集合162に変換し、分類モデル141を用いて画像集合162から確信度データ163を生成する。そして、情報処理装置100は、確信度(または、確信度と正則化項の積)が高くなるように、ベクトル集合161を更新する。
【0087】
ここで、情報処理装置100は、内側ループのイテレーション回数が所定回数に達する毎に、第3の訓練データ推定方法と同様に外側ループを実行する。ただし、探索対象が画像集合162でなくベクトル集合161であるため、エンコーダ152を使用しなくてよい。すなわち、情報処理装置100は、ベクトル集合161と確信度データ163とに基づいて、評価値データ167を生成する。評価値データ167は、ベクトル集合161に含まれるベクトルそれぞれの評価値を示す。評価値は、確信度そのものであってもよいし、確信度と正則化項の積であってもよい。正則化項は、ベクトルの確率密度であってもよいし、確率密度を所定の上限値でクリップしたものであってもよい。
【0088】
情報処理装置100は、算出した評価値に基づいてベクトル集合161を更新する。例えば、情報処理装置100は、評価値が高い方から所定個または所定割合のベクトルを選択し、選択しなかったベクトルを削除する。または、情報処理装置100は、各ベクトルが評価値の比の確率で選択されるように、ベクトル集合161の中からランダムに所定個または所定割合のベクトルを選択し、選択しなかったベクトルを削除する。情報処理装置100は、削除したベクトルの代わりに、潜在空間154から新たなベクトルを抽出してベクトル集合161に追加してもよい。例えば、情報処理装置100は、削除せずに残ったベクトルの近傍から新たなベクトルを抽出する。ベクトル集合161から半分のベクトルを削除し、残ったベクトルの近傍から1つずつ新たなベクトルを抽出してもよい。
【0089】
内側ループのイテレーション回数は、例えば、4回である。外側ループのイテレーション回数は、例えば、3回~6回である。外側ループのイテレーション回数が閾値に達すると、訓練データ推定が完了する。情報処理装置100は、それまでに算出された確信度(または、評価値)のうち最大の確信度(または、評価値)に対応する画像を、サンプル画像の推定結果として出力する。ただし、情報処理装置100は、確信度(または、評価値)が大きい方から複数個の画像を出力してもよく、確信度(または、評価値)が閾値を超える全ての画像を出力してもよい。
【0090】
次に、確信度に乗じる正則化項について説明を補足する。
図9は、確率分布のクリッピング例を示す図である。
ベクトルの確率密度は、ベクトルを確率変数とする確率分布171によって規定される。一般に、平均に近いベクトルほど確率密度が大きく、平均から遠いベクトルほど確率密度が小さい。平均から非常に遠いベクトルに対応する画像は、分類モデル141が想定する入力とはかけ離れた画像であることが多い。例えば、分類モデル141が顔認識を行う場合に、平均から非常に遠いベクトルに対応する画像は、人物の顔を表していないことが多い。また、分類モデル141が文字認識を行う場合に、平均から非常に遠いベクトルに対応する画像は、手書き文字を表していないことが多い。
【0091】
そこで、確率密度を正則化項として用いて、確信度に正則化項を乗じることで、確率分布171の平均に近い方向に優先的に探索が進むようにする。これにより、分類モデル141が想定する入力とかけ離れた画像を探索してしまうことを抑制できる。
【0092】
ただし、平均に近すぎるベクトルに対応する画像は、様々なクラスの特徴を平均化した「平均的画像」になってしまう。平均的画像は、特定のクラスに対応するサンプル画像とは異なるものであり、モデルインバージョン攻撃の目的に沿わない。これに対して、確率密度そのものを正則化項として使用すると、ベクトルが平均にある程度近付いた後も、更に平均に近付く方向に優先的に探索が進んでしまい、平均に近付きすぎることがある。
【0093】
そこで、確率分布171に対して上限値172を設定し、上限値172を用いて正則化項をクリッピングすることが考えられる。確率密度が上限値172以下である場合、元の確率密度を正則化項として使用し、確率密度が上限値172を超える場合、上限値172を正則化項として使用する。すなわち、正則化項を上限値172以下に制限する。これにより、ベクトルが確率分布171の平均に近付きすぎることを抑制できる。上限値172は、ユーザが指定してもよいし、3σ(標準偏差σの3倍)における確率密度を上限値172とするなど、情報処理装置100が確率分布171から自動的に決定してもよい。
【0094】
次に、情報処理装置100の機能について説明する。
図10は、情報処理装置の機能例を示すブロック図である。
情報処理装置100は、分類モデル記憶部121、画像記憶部122、VAE記憶部123および分析結果記憶部124を有する。これらの記憶部は、例えば、RAM102またはHDD103の記憶領域を用いて実現される。また、情報処理装置100は、VAE生成部131、訓練データ推定部132および分析結果表示部138を有する。これらの処理部は、例えば、CPU101が実行するプログラムを用いて実現される。
【0095】
分類モデル記憶部121は、学習済みの分類モデル141を記憶する。分類モデル141は、情報処理装置100が生成してもよいし、他の情報処理装置が生成してもよい。ただし、モデルインバージョン攻撃の試行にあたっては、分類モデル141にアクセス可能であればよく、情報処理装置100が分類モデル141そのものを保持していなくてもよい。例えば、情報処理装置100が、分類モデル141の機能を公開している他の情報処理装置に画像を送信し、他の情報処理装置から確信度を受信してもよい。
【0096】
画像記憶部122は、分類モデル141の入力と同種の画像の集合を記憶する。画像記憶部122に記憶される画像は、例えば、インターネットから収集される。例えば、分類モデル141が顔認識モデルである場合、顔写真が収集される。分類モデル141が文字認識モデルである場合、手書き文字が収集される。
【0097】
VAE記憶部123は、学習済みの変分オートエンコーダ151を記憶する。変分オートエンコーダ151は、学習済みのエンコーダ152およびデコーダ153を含む。変分オートエンコーダ151は、情報処理装置100において生成される。ただし、分類モデル141の入力の種類に応じた変分オートエンコーダ151が既に存在する場合、学習済みの変分オートエンコーダ151を情報処理装置100が入手してもよい。また、VAE記憶部123は、エンコーダ152とデコーダ153の間で算出されるベクトルの確率分布を示す情報を記憶する。また、VAE記憶部123は、ベクトルの確率分布に対して設定された確率密度の上限値を示す情報を記憶する。
【0098】
分析結果記憶部124は、分類モデル141のモデルインバージョン攻撃耐性を示す分析結果を記憶する。分析結果には、分類モデル141の機械学習に使用されたサンプル画像を推定した結果である1枚以上の推定画像が含まれる。
【0099】
VAE生成部131は、画像記憶部122に記憶された画像を変分オートエンコーダ151の入力かつ出力として用いて、機械学習により変分オートエンコーダ151を生成する。機械学習により、変分オートエンコーダ151に含まれるノード間のエッジの重みが決定される。VAE生成部131は、エンコーダ152およびデコーダ153を含む変分オートエンコーダ151をVAE記憶部123に格納する。また、VAE生成部131は、学習済みのエンコーダ152に、画像記憶部122に記憶された画像を入力して、画像の集合に対応するベクトルの集合を算出する。VAE生成部131は、算出したベクトルの集合がもつ確率分布を特定し、確率分布を示す情報をVAE記憶部123に格納する。確率分布は、例えば、平均ベクトルと分散共分散行列とによって特定される。
【0100】
訓練データ推定部132は、分類モデル記憶部121に記憶された分類モデル141に対して、モデルインバージョン攻撃を試行する。訓練データ推定部132は、モデルインバージョン攻撃により、分類モデル141の機械学習に使用されたサンプル画像を推定し、推定画像を含む分析結果を分析結果記憶部124に格納する。このとき、訓練データ推定部132は、前述の4通りの訓練データ推定方法の何れかを実行する。訓練データ推定部132は、エンコード部133、デコード部134、確信度算出部135、ベクトル選択部136および画像更新部137を有する。
【0101】
エンコード部133は、VAE記憶部123に記憶されたエンコーダ152に画像を入力し、入力した画像に対応するベクトルを算出する。エンコード部133は、第2の訓練データ推定方法で使用される。デコード部134は、VAE記憶部123に記憶されたデコーダ153にベクトルを入力し、入力したベクトルに対応する画像を生成する。確信度算出部135は、分類モデル141に画像を入力し、入力した画像に対応する確信度を算出する。分類モデル141からは、複数のクラスに対応する複数の確信度が出力される。ただし、モデルインバージョン攻撃では、着目する1つのクラスに対応する1つの確信度が使用される。着目するクラスは、ユーザから指定される。
【0102】
ベクトル選択部136は、確率分布の上限値を設定し、上限値を示す情報をVAE記憶部123に格納する。また、ベクトル選択部136は、VAE記憶部123に記憶された確率分布の情報に基づいて、潜在空間154からベクトルの初期値を抽出する。第3の訓練データ推定方法および第4の訓練データ推定方法では、ベクトル選択部136は、確信度算出部135が算出する確信度を用いて勾配を算出し、勾配に基づいてベクトルを更新する。第2の訓練データ推定方法および第4の訓練データ推定方法では、ベクトル選択部136は、ベクトルの評価値を算出し、評価値に基づいてベクトルの削除や追加を行う。
【0103】
画像更新部137は、確信度算出部135が算出する確信度を用いて勾配を算出し、勾配に基づいて画像を更新する。画像の更新では、予め用意したノイズフィルタ164および鮮鋭化フィルタ165が使用される。画像更新部137は、第1の訓練データ推定方法および第2の訓練データ推定方法で使用される。
【0104】
分析結果表示部138は、分析結果記憶部124に記憶された分析結果を表示装置111に表示させる。例えば、分析結果表示部138は、推定画像を表示装置111に表示させる。なお、情報処理装置100は、他の出力デバイスに分析結果を出力してもよく、他の情報処理装置に分析結果を送信してもよい。
【0105】
図11は、確率分布の情報の例を示す図である。
VAE記憶部123は、潜在空間154の確率分布に関する情報として、平均ベクトル125、分散共分散行列126および確率密度上限127を記憶する。
【0106】
平均ベクトル125は、多変量正規分布の平均を表す。平均ベクトル125は、エンコーダ152に様々な画像を入力して算出された様々なベクトルの平均である。分散共分散行列126は、多変量正規分布の分散を示す行列である。分散共分散行列126は、一辺の長さがベクトルの次元数に等しい正方行列である。分散共分散行列126の対角成分は、上記の様々なベクトルから算出される各次元の分散を示す。分散共分散行列126の非対角成分は、上記の様々なベクトルから算出される異なる2つの次元の共分散を示す。なお、変分オートエンコーダ151の生成に用いられた画像をエンコーダ152に入力することで算出されるベクトルが、多変量正規分布に従うと仮定される。
【0107】
確率密度上限127は、平均ベクトル125および分散共分散行列126によって特定される多変量正規分布の確率密度の最大値よりも小さい上限値である。確率密度上限127は、ユーザから指定されてもよいし、特定された多変量正規分布から自動的に決定されてもよい。例えば、平均から3σ(標準偏差の3倍)だけ離れた位置にあるベクトルに対応する確率密度が、確率密度上限127として採用される。
【0108】
図12は、ベクトルテーブルの例を示す図である。
ベクトルテーブル128は、ベクトル選択部136によって保持される。ベクトルテーブル128は、ベクトルと確信度と確率密度と評価値とを対応付ける。ベクトルテーブル128に登録されるベクトルは、最新のベクトル集合161またはベクトル集合166に含まれるベクトルである。確信度は、分類モデル141によって算出される特定のクラスの確信度である。確率密度は、平均ベクトル125および分散共分散行列126によって特定される潜在空間154の確率分布における確率密度である。評価値は、確信度と正則化項の積である。正則化項は、例えば、確率密度を確率密度上限127でクリップしたものである。確率密度が確率密度上限127以下の場合、確率密度が正則化項になる。確率密度が確率密度上限127を超える場合、確率密度上限127が正則化項になる。
【0109】
次に、訓練データ推定の手順について説明する。まず、前述の第4の訓練データ推定方法の手順を説明する。第3の訓練データ推定方法は、第4の訓練データ推定方法の外側ループを省略したものであるため、説明を省略する。その後、前述の第2の訓練データ推定方法の手順を説明する。第1の訓練データ推定方法は、第2の訓練データ推定方法の外側ループを省略したものであるため、説明を省略する。
【0110】
図13は、訓練データ推定の第1の手順例を示すフローチャートである。
(S10)VAE生成部131は、分類モデル141の入力と同種の画像を収集する。画像の種類としては、顔写真や手書き文字などが挙げられる。VAE生成部131は、例えば、インターネットから画像を検索して収集するクローラプログラムを使用する。
【0111】
(S11)VAE生成部131は、ステップS10で収集した画像を用いて、機械学習により変分オートエンコーダ151を生成する。機械学習は、収集した画像を変分オートエンコーダ151の入力かつ出力に割り当てる教師なし学習である。変分オートエンコーダ151は、エンコーダ152およびデコーダ153を含む。
【0112】
(S12)VAE生成部131は、ステップS10で収集した画像を、ステップS11で生成されたエンコーダ152に入力することで、ベクトルの集合を算出する。ベクトルの次元数は、例えば、48次元である。VAE生成部131は、ベクトルの集合を統計処理して、潜在空間154の確率分布を示す平均ベクトル125および分散共分散行列126を算出する。ベクトルの確率分布として、例えば、多変量正規分布が仮定される。
【0113】
(S13)ベクトル選択部136は、確率密度上限127を決定する。確率密度上限127は、ステップS12で特定された確率分布の確率密度の最大値より小さい値である。例えば、ベクトル選択部136は、平均ベクトル125から標準偏差の所定倍だけ離れた位置における確率密度を算出し、その確率密度を確率密度上限127として採用する。
【0114】
(S14)ベクトル選択部136は、分類モデル141が確信度を出力する複数のクラスのうち、モデルインバージョン攻撃の対象とする対象クラスを選択する。対象クラスは、例えば、情報処理装置100のユーザから指定される。
【0115】
(S15)ベクトル選択部136は、ステップS12で算出された平均ベクトル125および分散共分散行列126が示す確率分布に従って、潜在空間154からランダムにn個のベクトルを抽出する。例えば、n=16とする。
【0116】
(S16)デコード部134は、n個のベクトルの中からベクトルを1つ選択する。
(S17)デコード部134は、ステップS16で選択したベクトルを、ステップS11で生成されたデコーダ153に入力して画像に変換する。確信度算出部135は、変換された画像を分類モデル141に入力して、複数のクラスの確信度を算出する。
【0117】
(S18)ベクトル選択部136は、ステップS12の確率分布に基づいて、ステップS16で選択したベクトルの確率密度を算出する。ベクトル選択部136は、算出した確率密度とステップS13で決定された確率密度上限127とを比較して、ベクトルに対応する正則化項を決定する。正則化項は、確率密度が確率密度上限127以下の場合は確率密度であり、確率密度が確率密度上限127を超える場合は確率密度上限127である。
【0118】
(S19)ベクトル選択部136は、ステップS17で算出された複数のクラスの確信度のうち、ステップS14で選択された対象クラスの確信度を抽出する。ベクトル選択部136は、抽出した確信度とステップS18で決定された正則化項との積を算出し、ベクトルを基準として確信度と正則化項の積の勾配を算出する。勾配は、例えば、ベクトルの各次元の要素を微少量だけ変化させることで算出される。
【0119】
(S20)ベクトル選択部136は、ステップS19で算出された勾配を用いて、ステップS16で選択されたベクトルを更新する。例えば、ベクトル選択部136は、勾配に所定の学習率を乗じた分だけベクトルを変化させる。
【0120】
(S21)デコード部134は、ステップS16においてn個のベクトルの全てを選択したか判断する。全てのベクトルを選択した場合はステップS22に進み、未選択のベクトルがある場合はステップS16に戻る。
【0121】
図14は、訓練データ推定の第1の手順例を示すフローチャート(続き)である。
(S22)ベクトル選択部136は、ステップS16~S21のベクトル更新、すなわち、内側ループをL回繰り返したか判断する。例えば、L=4である。ベクトル更新の連続イテレーション回数がL回に達した場合はステップS23に進み、連続イテレーション回数がL回未満の場合はステップS16に戻る。ステップS16では、n個のベクトルを1つずつ選択することが再度実行されることになる。
【0122】
(S23)ベクトル選択部136は、以下のステップS24~S27のベクトル入れ替え、すなわち、外側ループをK回繰り返したか判断する。例えば、K=3~6である。ベクトル入れ替えのイテレーション回数がK回に達した場合はステップS28に進み、イテレーション回数がK回未満の場合はステップS24に進む。
【0123】
(S24)ベクトル選択部136は、最新のn個のベクトルそれぞれに対して評価値を算出する。評価値は、確信度と正則化項の積である。確信度と正則化項の積は、前述のステップS17~S19と同様の方法で算出される。
【0124】
(S25)ベクトル選択部136は、ステップS24で算出された評価値に基づいて、最新のn個のベクトルを評価値の降順にソートする。
(S26)ベクトル選択部136は、最新のn個のベクトルのうち評価値が低い半数のベクトル(下位n/2個のベクトル)を削除する。
【0125】
(S27)ベクトル選択部136は、潜在空間154から、評価値が高い半数のベクトル(上位n/2個のベクトル)の近傍のn/2個の新たなベクトルを抽出する。例えば、ベクトル選択部136は、上位n/2個のベクトルそれぞれを中心として範囲の狭い(標準偏差の小さい)確率分布を定義する。ベクトル選択部136は、その確率分布に従ってランダムに新たなベクトルを抽出する。上位n/2個のベクトルと追加したn/2個のベクトルとを合わせて、n個のベクトルが用意される。そして、ステップS16に進む。
【0126】
(S28)ベクトル選択部136は、確信度または評価値が高いベクトルを選択する。基準値として確信度を使用するか評価値を使用するかは、予め設定される。例えば、ベクトル選択部136は、確信度または評価値が最大のベクトルを選択する。
【0127】
(S29)デコード部134は、ステップS28で選択したベクトルをデコーダ153に入力し、選択したベクトルから変換された画像を推定画像として生成する。推定画像は、指定されたクラスに対応するサンプル画像として推定したものである。
【0128】
(S30)分析結果表示部138は、推定画像を表示装置111に表示する。
なお、第3の訓練データ推定方法の場合、ステップS23~S27が省略される。ステップS22がYESのときは、ステップS28に進むことになる。
【0129】
図15は、訓練データ推定の第2の手順例を示すフローチャートである。
(S40)VAE生成部131は、分類モデル141の入力と同種の画像を収集する。
(S41)VAE生成部131は、ステップS10で収集した画像を用いて、機械学習により変分オートエンコーダ151を生成する。変分オートエンコーダ151は、エンコーダ152およびデコーダ153を含む。
【0130】
(S42)VAE生成部131は、ステップS40で収集した画像を、ステップS41で生成されたエンコーダ152に入力することで、ベクトルの集合を算出する。VAE生成部131は、ベクトルの集合を統計処理して、潜在空間154の確率分布を示す平均ベクトル125および分散共分散行列126を算出する。
【0131】
(S43)ベクトル選択部136は、確率密度上限127を決定する。
(S44)ベクトル選択部136は、分類モデル141が確信度を出力する複数のクラスのうち、モデルインバージョン攻撃の対象とする対象クラスを選択する。
【0132】
(S45)ベクトル選択部136は、ステップS42で算出された平均ベクトル125および分散共分散行列126が示す確率分布に従って、潜在空間154からランダムにn個のベクトルを抽出する。例えば、n=16とする。
【0133】
(S46)デコード部134は、ステップS45で抽出されたn個のベクトルを、ステップS41で生成されたデコーダ153にそれぞれ入力して、n個の画像に変換する。
(S47)確信度算出部135は、n個の画像の中から画像を1つ選択する。
【0134】
(S48)確信度算出部135は、ステップS47で選択した画像を分類モデル141に入力して、複数のクラスの確信度を算出する。
(S49)画像更新部137は、ステップS48で算出された複数のクラスの確信度のうち、ステップS44で選択された対象クラスの確信度を抽出する。画像更新部137は、画像を基準として確信度の勾配を算出する。勾配は、例えば、ステップS47で選択した画像の各画素値を微少量だけ変化させることで算出される。
【0135】
(S50)画像更新部137は、ステップS49で算出された勾配を用いて、ステップS47で選択された画像を更新する。例えば、画像更新部137は、勾配に所定の学習率を乗じた分だけ画素値を変化させる。更新後の画像をノイズフィルタ164に入力してノイズを除去し、更に鮮鋭化フィルタ165に入力して鮮鋭化する。
【0136】
(S51)確信度算出部135は、ステップS47においてn個の画像の全てを選択したか判断する。全ての画像を選択した場合はステップS52に進み、未選択の画像がある場合はステップS47に戻る。
【0137】
図16は、訓練データ推定の第2の手順例を示すフローチャート(続き)である。
(S52)ベクトル選択部136は、ステップS47~S51の画像更新、すなわち、内側ループをL回繰り返したか判断する。画像更新の連続イテレーション回数がL回に達した場合はステップS53に進み、連続イテレーション回数がL回未満の場合はステップS47に戻る。ステップS47では、n個の画像が再度1つずつ選択される。
【0138】
(S53)ベクトル選択部136は、以下のステップS54~S60のベクトル入れ替え、すなわち、外側ループをK回繰り返したか判断する。ベクトル入れ替えのイテレーション回数がK回に達した場合はステップS61に進み、イテレーション回数がK回未満の場合はステップS54に進む。
【0139】
(S54)エンコード部133は、最新のn個の画像を、ステップS41で生成されたエンコーダ152にそれぞれ入力して、n個のベクトルに変換する。
(S55)ベクトル選択部136は、ステップS42の確率分布に基づいて、ステップS54で変換されたn個のベクトルそれぞれの確率密度を算出する。ベクトル選択部136は、算出した確率密度とステップS43で決定された確率密度上限127とを比較して、n個のベクトルそれぞれに対応する正則化項を決定する。正則化項は、確率密度が確率密度上限127以下の場合は確率密度であり、確率密度が確率密度上限127を超える場合は確率密度上限127である。
【0140】
(S56)ベクトル選択部136は、n個のベクトルそれぞれに対して評価値を算出する。評価値は、確信度とステップS55で算出された正則化項の積である。
(S57)ベクトル選択部136は、ステップS56で算出された評価値に基づいて、n個のベクトルを評価値の降順にソートする。
【0141】
(S58)ベクトル選択部136は、n個のベクトルのうち評価値が低い半数のベクトル(下位n/2個のベクトル)を削除する。
(S59)ベクトル選択部136は、潜在空間154から、評価値が高い半数のベクトル(上位n/2個のベクトル)の近傍のn/2個の新たなベクトルを抽出する。上位n/2個のベクトルと追加したn/2個のベクトルとを合わせて、n個のベクトルとなる。
【0142】
(S60)デコード部134は、ステップS59のn個のベクトルをデコーダ153にそれぞれ入力して、n個の画像に変換する。そして、ステップS47に進む。
(S61)画像更新部137は、確信度または評価値が高い画像を推定画像として選択する。基準値として確信度を使用するか評価値を使用するかは、予め設定される。例えば、画像更新部137は、確信度または評価値が最大の画像を選択する。
【0143】
(S62)分析結果表示部138は、推定画像を表示装置111に表示する。
なお、第1の訓練データ推定方法の場合、ステップS53~S60が省略される。ステップS52がYESのときは、ステップS61に進むことになる。
【0144】
第2の実施の形態の情報処理装置100によれば、学習済みの分類モデル141に対してモデルインバージョン攻撃が試行され、分類モデル141の機械学習に使用されたサンプル画像がどの程度の再現度で推定されるかが確認される。よって、訓練データに個人情報などの秘密情報が含まれている場合において、分類モデル141の公開前にその攻撃耐性を評価することができる。このため、意図しない情報漏洩を抑制することができ、分類モデル141に関するセキュリティを向上させることができる。
【0145】
また、分類モデル141の入力と同種の画像から変分オートエンコーダ151が生成され、変分オートエンコーダ151に含まれるデコーダ153を用いて、分類モデル141に入力する初期画像が生成される。デコーダ153の入力のベクトルは、正規分布などの特定の確率分布をもつ。よって、確率分布に従ってベクトルを選択することで、分類モデル141の入力として自然な初期画像を生成することができる。このため、探索が収束するために要する分類モデル141のアクセス回数を削減することができると共に、最終的にサンプル画像に近い画像に到達できる可能性が高くなる。
【0146】
また、1つの態様では、探索空間が画像空間からベクトル空間に変更され、画像に対する確信度の勾配が算出されて画像が直接更新される代わりに、ベクトルに対する確信度の勾配が算出されてベクトルが更新される。ベクトル空間は画像空間よりも次元数が小さい。よって、分類モデル141のアクセス回数を削減することができる。また、1つの態様では、評価値の低いベクトルが途中で候補から除外され、その代わりに評価値の高いベクトルの近傍ベクトルが候補に追加される。よって、サンプル画像に到達できる可能性が低い無駄な探索を抑制して、分類モデル141のアクセス回数を削減することがきる。
【0147】
また、1つの態様では、確信度そのものに代えて、確信度にベクトルの確率密度を乗じた指標値が使用される。よって、確信度を高くする探索が局所解に陥ってしまい、分類モデル141の入力として不自然な画像を探索してしまうことを抑制できる。また、1つの態様では、確率密度の上限値を設定し、確率密度を上限値でクリップしたものを確信度に乗じるようにする。よって、探索が過度に平均的画像に近付くことを抑制でき、特定のクラスに対応するサンプル画像に近い画像に到達できる可能性が高くなる。その結果、分類モデル141に対して現実的な時間内でモデルインバージョン攻撃を効率的に試行することができ、分類モデル141の攻撃耐性の評価精度を向上させることができる。
【0148】
上記については単に本発明の原理を示すものである。更に、多数の変形や変更が当業者にとって可能であり、本発明は上記に示し、説明した正確な構成および応用例に限定されるものではなく、対応する全ての変形例および均等物は、添付の請求項およびその均等物による本発明の範囲とみなされる。
【符号の説明】
【0149】
10 情報処理装置
11 記憶部
12 処理部
13 分類モデル
14 変換モデル
15 確率分布
16,19 特徴値
17 画像データ
18 確信度