IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 株式会社日立製作所の特許一覧

特許7564074敵対的データ検知装置及び敵対的データ検知方法
<>
  • 特許-敵対的データ検知装置及び敵対的データ検知方法 図1
  • 特許-敵対的データ検知装置及び敵対的データ検知方法 図2
  • 特許-敵対的データ検知装置及び敵対的データ検知方法 図3
  • 特許-敵対的データ検知装置及び敵対的データ検知方法 図4
  • 特許-敵対的データ検知装置及び敵対的データ検知方法 図5
  • 特許-敵対的データ検知装置及び敵対的データ検知方法 図6
  • 特許-敵対的データ検知装置及び敵対的データ検知方法 図7
  • 特許-敵対的データ検知装置及び敵対的データ検知方法 図8
  • 特許-敵対的データ検知装置及び敵対的データ検知方法 図9
  • 特許-敵対的データ検知装置及び敵対的データ検知方法 図10
  • 特許-敵対的データ検知装置及び敵対的データ検知方法 図11
  • 特許-敵対的データ検知装置及び敵対的データ検知方法 図12
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-09-30
(45)【発行日】2024-10-08
(54)【発明の名称】敵対的データ検知装置及び敵対的データ検知方法
(51)【国際特許分類】
   G06F 21/57 20130101AFI20241001BHJP
   G06N 3/094 20230101ALN20241001BHJP
【FI】
G06F21/57 370
G06N3/094
【請求項の数】 12
(21)【出願番号】P 2021165477
(22)【出願日】2021-10-07
(65)【公開番号】P2023056241
(43)【公開日】2023-04-19
【審査請求日】2024-03-18
(73)【特許権者】
【識別番号】000005108
【氏名又は名称】株式会社日立製作所
(74)【代理人】
【識別番号】110001678
【氏名又は名称】藤央弁理士法人
(72)【発明者】
【氏名】山本 恭平
(72)【発明者】
【氏名】吉野 雅之
(72)【発明者】
【氏名】横張 由美子
(72)【発明者】
【氏名】川名 のん
【審査官】宮司 卓佳
(56)【参考文献】
【文献】国際公開第2021/161423(WO,A1)
【文献】国際公開第2021/131029(WO,A1)
【文献】ROTH,K et al.,The Odds are Odd:A Statistical Test for Detecting Adversarial Examples,Proceedings of the 36th International Conference on Machine Learning[online],2019年,http://proceedings.mlr.press/v97/roth19a/roth19a.pdf
(58)【調査した分野】(Int.Cl.,DB名)
G06F 21/57
G06N 3/094
(57)【特許請求の範囲】
【請求項1】
敵対的データ検知装置であって、
プロセッサとメモリとを有し、
前記メモリは、評価対象データと、データが入力されると評価値を出力するモデルと、を保持し、
前記プロセッサは、
前記評価対象データを前記モデルに入力して、前記評価対象データの評価値を算出し、
前記評価対象データに異なるノイズを付加して、複数の拡張評価対象データを生成し、
前記複数の拡張評価対象データに基づいて、第1の判定処理を実行し、
前記第1の判定処理において、
前記複数の拡張評価対象データそれぞれに対して、当該拡張評価対象データの評価値が、前記評価対象データの評価値と一致しないようになるまで、ノイズを加えて当該拡張評価対象データを更新し、
更新後の拡張評価対象データそれぞれの評価値の偏りに基づいて、前記評価対象データが敵対的データであるかを判定する、敵対的データ検知装置。
【請求項2】
請求項1に記載の敵対的データ検知装置であって、
前記プロセッサは、前記複数の拡張評価対象データの個数に占める前記更新後の拡張評価対象データそれぞれの評価値の最頻値の度数が所定の閾値より大きい場合、前記評価対象データが敵対的データであると判定する、敵対的データ検知装置。
【請求項3】
請求項1に記載の敵対的データ検知装置であって、
前記プロセッサは、
前記複数の拡張評価対象データそれぞれを前記モデルに入力して、前記複数の拡張評価対象データそれぞれの評価値を算出し、
前記複数の拡張評価対象データそれぞれの評価値と、前記評価対象データの評価値と、が一致する割合に基づいて、前記評価対象データが敵対的データでない可能性があるかを判定する第2の判定処理を実行し、
前記評価対象データが敵対的データでない可能性があると判定した場合、前記第1の判定処理を実行する、敵対的データ検知装置。
【請求項4】
請求項3に記載の敵対的データ検知装置であって、
前記プロセッサは、前記複数の拡張評価対象データそれぞれの評価値と、前記評価対象データの評価値と、が一致する割合が所定の閾値より小さいときに、前記評価対象データが敵対的データでない可能性があると判定する、敵対的データ検知装置。
【請求項5】
請求項1に記載の敵対的データ検知装置であって、
前記複数の拡張評価対象データの生成において付加されるノイズ、及び前記複数の拡張評価対象データの更新において付加されるノイズは、所定の確率分布に従うノイズ、及び評価値を操作するために生成されたノイズの少なくとも1つを含む、敵対的データ検知装置。
【請求項6】
請求項1に記載の敵対的データ検知装置であって、
前記モデルは、深層学習により生成された学習済みモデル、又は深層学習が行われる際に訓練データに対しリサイズ及びパディングの少なくとも1つを含む処理を施したデータを学習させて得られた学習済みモデルである、敵対的データ検知装置。
【請求項7】
敵対的データ検知装置による敵対的データ検知方法であって、
前記敵対的データ検知装置は、プロセッサとメモリとを有し、
前記メモリは、評価対象データと、データが入力されると評価値を出力するモデルと、を保持し、
前記敵対的データ検知方法は、
前記プロセッサが、前記評価対象データを前記モデルに入力して、前記評価対象データの評価値を算出し、
前記プロセッサが、前記評価対象データに異なるノイズを付加して、複数の拡張評価対象データを生成し、
前記プロセッサが、前記複数の拡張評価対象データに基づいて、第1の判定処理を実行し、
前記第1の判定処理において、
前記プロセッサが、前記複数の拡張評価対象データそれぞれに対して、当該拡張評価対象データの評価値が、前記評価対象データの評価値と一致しないようになるまで、ノイズを加えて当該拡張評価対象データを更新し、
前記プロセッサが、更新後の拡張評価対象データそれぞれの評価値の偏りに基づいて、前記評価対象データが敵対的データであるかを判定する、敵対的データ検知方法。
【請求項8】
請求項7に記載の敵対的データ検知方法であって、
前記プロセッサが、前記複数の拡張評価対象データの個数に占める前記更新後の拡張評価対象データそれぞれの評価値の最頻値の度数が所定の閾値より大きい場合、前記評価対象データが敵対的データであると判定する、敵対的データ検知方法。
【請求項9】
請求項7に記載の敵対的データ検知方法であって、
前記プロセッサが、前記複数の拡張評価対象データそれぞれを前記モデルに入力して、前記複数の拡張評価対象データそれぞれの評価値を算出し、
前記プロセッサが、前記複数の拡張評価対象データそれぞれの評価値と、前記評価対象データの評価値と、が一致する割合に基づいて、前記評価対象データが敵対的データでない可能性があるかを判定する第2の判定処理を実行し、
前記プロセッサが、前記評価対象データが敵対的データでない可能性があると判定した場合、前記第1の判定処理を実行する、敵対的データ検知方法。
【請求項10】
請求項9に記載の敵対的データ検知方法であって、
前記プロセッサが、前記複数の拡張評価対象データそれぞれの評価値と、前記評価対象データの評価値と、が一致する割合が所定の閾値より小さいときに、前記評価対象データが敵対的データでない可能性があると判定する、敵対的データ検知方法。
【請求項11】
請求項7に記載の敵対的データ検知方法であって、
前記複数の拡張評価対象データの生成において付加されるノイズ、及び前記複数の拡張評価対象データの更新において付加されるノイズは、所定の確率分布に従うノイズ、及び評価値を操作するために生成されたノイズの少なくとも1つを含む、敵対的データ検知方法。
【請求項12】
請求項7に記載の敵対的データ検知方法であって、
前記モデルは、深層学習により生成された学習済みモデル、又は深層学習が行われる際に訓練データに対しリサイズ及びパディングの少なくとも1つを含む処理を施したデータを学習させて得られた学習済みモデルである、敵対的データ検知方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、敵対的データ検知装置及び敵対的データ検知方法に関する。
【背景技術】
【0002】
金融、医療、及び製造などの様々な分野でAI(Artificial Intelligence)の普及が進み、AIが機微情報を扱う場面が増加している。一方、AIに特有の脆弱性をついた攻撃が報告されている。
【0003】
AI特有の脆弱性をついた攻撃の一例として、人が気づかない程の微小のノイズがデータに加えられ、AIに誤判定を引き起こさせるAE(Adversarial Example)攻撃がある。以下では、微小のノイズが加えられたデータを敵対的(Adversarial)データ、敵対的データをAIへ投じることをAE攻撃とも呼ぶ。
【0004】
AE攻撃への対策として、敵対的データを生成するまでの過程や敵対的データの持つ特徴を捉えることでAE攻撃を検知する技術が提案されている。AE攻撃を検知する背景技術として、非特許文献1がある。非特許文献1に記載の技術は、入力データにランダムな微小ノイズを加えた際の、出力結果の変化を利用してAE攻撃を検知する。
【先行技術文献】
【非特許文献】
【0005】
【文献】Jingyi Wang,外3名, “Detecting Adversarial Samples for Deep Neural Networks through Mutation Testing.”, [online], NIPS 2018年5月,[令和3年3月26日検索],インターネット<https://arxiv.org/pdf/1805.05010.pdf>
【発明の概要】
【発明が解決しようとする課題】
【0006】
非特許文献1のAE攻撃を検知する技術は、攻撃者が敵対的データの検知手法についての情報を知っている状況下では、安全性が十分でなく、攻撃者は非特許文献1に記載の検知をすり抜ける敵対的データを意図的に生成できる。そこで、本発明の一態様は、攻撃者が敵対的データの検知手法についての情報を知っている状況下においても高精度に敵対的データを検知して、ひいては安全性を保つ。
【課題を解決するための手段】
【0007】
上記課題を解決するために、本発明の一態様は以下の構成を採用する。敵対的データ検知装置は、プロセッサとメモリとを有し、前記メモリは、評価対象データと、データが入力されると評価値を出力するモデルと、を保持し、前記プロセッサは、前記評価対象データを前記モデルに入力して、前記評価対象データの評価値を算出し、前記評価対象データに異なるノイズを付加して、複数の拡張評価対象データを生成し、前記複数の拡張評価対象データに基づいて、第1の判定処理を実行し、前記第1の判定処理において、前記複数の拡張評価対象データそれぞれに対して、当該拡張評価対象データの評価値が、前記評価対象データの評価値と一致しないようになるまで、ノイズを加えて当該拡張評価対象データを更新し、更新後の拡張評価対象データそれぞれの評価値の偏りに基づいて、前記評価対象データが敵対的データであるかを判定する。
【発明の効果】
【0008】
本発明の一態様によれば、攻攻撃者が敵対的データの検知手法についての情報を知っている状況下においても高精度に敵対的データを検知することができ、ひいては安全性を保つことができる。
【0009】
上記した以外の課題、構成及び効果は、以下の実施形態の説明により明らかにされる。
【図面の簡単な説明】
【0010】
図1】実施例1における敵対的データ検知システムの構成例を示すブロック図である。
図2】実施例1におけるノイズ付加サーバのハードウェア構成例を示すブロック図である。
図3】実施例1における評価サーバのハードウェア構成例を示すブロック図である。
図4】実施例1における検知サーバのハードウェア構成例を示すブロック図である。
図5】実施例1におけるデータ送信端末のハードウェア構成例を示すブロック図である。
図6】実施例1における敵対的データ検知処理の一例を示すシーケンス図である。
図7】実施例1における拡張評価対象データ更新処理の一例を示すフローチャートである。
図8】実施例1における敵対的データ判定処理の一例を示すフローチャートである。
図9】実施例1における敵対的データ検知処理の概要の一例を示す説明図である。
図10】実施例2における敵対的データ検知処理の一例を示すシーケンス図である。
図11】実施例2における敵対的データ判定処理の一例を示すフローチャートである。
図12】実施例3における敵対的データ検知システムの入出力データの一例を示す説明図である。
【発明を実施するための形態】
【0011】
以下、添付図面を参照して本発明の実施形態を説明する。本実施形態において、同一の構成には原則として同一の符号を付け、繰り返しの説明は省略する。なお、本実施形態は本発明を実現するための一例に過ぎず、本発明の技術的範囲を限定するものではないことに注意すべきである。本実施形態は、データ送信者から受信したデータが、AE(Adversarial Example)攻撃により生成されたデータであるか否かを判定し、判定結果に応じてデータ受信者に処理結果を送信するシステムを説明する。
【実施例1】
【0012】
図1は、敵対的データ検知システムの構成例を示すブロック図である。敵対的データ検知システムは、例えば、評価対象データを保持するデータ送信端末400、評価対象データにノイズを付加するノイズ付加サーバ100、評価対象データに対する評価値を計算する評価サーバ200、評価対象データがAE攻撃を受けたデータであるかを判定する検知サーバ300、及び評価対象データに対する評価値を受信するデータ受信端末500を含む。
【0013】
データ送信端末400、ノイズ付加サーバ100、評価サーバ200、検知サーバ300、及びデータ受信端末500の詳細な構成については後述する。データ送信端末400とノイズ付加サーバ100と評価サーバ200と検知サーバ300とデータ受信端末500は、インターネット等のネットワーク600を介して相互に情報を送受信する。
【0014】
なお、敵対的データ検知システムに含まれる装置の一部又は全部が一体化していてもよい。例えば、ノイズ付加サーバ100、評価サーバ200、及び検知サーバ300の少なくとも一部が一体化していてもよいし、データ送信端末400とデータ受信端末500とが一体化していてもよい。
【0015】
図2は、ノイズ付加サーバ100のハードウェア構成例を示すブロック図である。ノイズ付加サーバ100は、例えば、互いにバス等の内部信号線104で接続された、プロセッサ(CPU)101、補助記憶装置102、メモリ103、表示装置105、入出力インターフェース106、及び通信インターフェース107を有する計算機によって構成される。
【0016】
プロセッサ101は、メモリ103に格納されたプログラムを実行する。メモリ103は、不揮発性の非一時的な記憶素子であるROM及び揮発性の記憶素子であるRAMを含む。ROMは、不変なプログラム(たとえばBIOS)などを格納する。RAMは、DRAM(Dynamic Random Access Memory)のような高速かつ揮発性の記憶素子であり、プロセッサ101が実行するプログラム及びプログラムの実行時に使用されるデータを一時的に格納する。
【0017】
補助記憶装置102は、例えば、磁気記憶装置(HDD)、フラッシュメモリ(SSD)等の大容量かつ不揮発性の非一時的な記憶装置であり、プロセッサ101が実行するプログラム及びプログラムの実行時に使用されるデータを格納する。すなわち、プログラムは、補助記憶装置102から読み出されて、メモリ103にロードされて、プロセッサ101によって実行される。
【0018】
入出力インターフェース106は、キーボードやマウスなどが接続され、オペレータからの入力を受けるインターフェースである。また、入出力インターフェース106は、表示装置105やプリンタなどが接続され、プログラムの実行結果をオペレータが視認可能な形式で出力するインターフェースでもある。表示装置105は、入出力インターフェース106から出力されたプログラムの実行結果を表示する。
【0019】
通信インターフェース107は、所定のプロトコルに従って、他の装置との通信を制御するネットワークインターフェース装置である。また、通信インターフェース107は、例えば、USB(Universal Serial Bus)等のシリアルインターフェースを含んでもよい。
【0020】
プロセッサ101が実行するプログラムの一部又は全部は、計算機が読み取り可能な非一時的記憶媒体であるリムーバブルメディア(CD-ROM、フラッシュメモリなど)から、又はネットワーク600を介して接続された非一時的記憶装置を備える外部計算機から、ノイズ付加サーバ100に提供され、非一時的記憶媒体である不揮発性の補助記憶装置102に格納されてもよい。このため、ノイズ付加サーバ100は、リムーバブルメディアからデータを読み込むインターフェースを有するとよい。これは、評価サーバ200、検知サーバ300、データ送信端末400、及びデータ受信端末500についても同様である。
【0021】
ノイズ付加サーバ100は、物理的に一つの計算機上で、又は、論理的又は物理的に構成された複数の計算機上で構成される計算機システムであり、同一の計算機上で別個のスレッドで動作してもよく、複数の物理的計算機資源上に構築された仮想計算機上で動作してもよい。これは、評価サーバ200、検知サーバ300、データ送信端末400、及びデータ受信端末500についても同様である。
【0022】
プロセッサ101は、例えば、データ拡張部111、及びノイズ付加部112を含む。例えば、プロセッサ101はメモリ103にロードされたデータ拡張プログラムに従って動作することで、データ拡張部111として機能し、メモリ103にロードされたノイズ付加プログラムに従って動作することで、ノイズ付加部112として機能する。
【0023】
データ拡張部111は、例えば、評価対象データにノイズを付加して拡張評価対象データを生成する。ノイズ付加部112は、拡張評価対象データにノイズを付加することで拡張評価対象データを更新する。
【0024】
図3は、評価サーバ200のハードウェア構成例を示すブロック図である。評価サーバ200は例えば、互いにバス等の内部信号線204で接続された、プロセッサ(CPU)201、補助記憶装置202、メモリ203、表示装置205、入出力インターフェース206、及び通信インターフェース207を有する計算機によって構成される。
【0025】
プロセッサ201、補助記憶装置202、メモリ203、内部信号線204、表示装置205、入出力インターフェース206、及び通信インターフェース207のハードウェアとしての説明は、プロセッサ101、補助記憶装置102、メモリ103、内部信号線104、表示装置105、入出力インターフェース106、及び通信インターフェース107のハードウェアとしての説明と同様であるため説明を省略する。
【0026】
プロセッサ201は評価部211を含む。例えば、プロセッサ201は、メモリ203にロードされた評価プログラムに従って動作することで、評価部211として機能する。
評価部211は、評価対象データ及び拡張評価対象データに対する評価値を計算する。
【0027】
図4は、検知サーバ300のハードウェア構成例を示すブロック図である。検知サーバ300は、例えば、互いにバス等の内部信号線304で接続された、プロセッサ(CPU)301、補助記憶装置302、メモリ303、表示装置305、入出力インターフェース306、及び通信インターフェース307を有する計算機によって構成される。
【0028】
プロセッサ301、補助記憶装置302、メモリ303、内部信号線304、表示装置305、入出力インターフェース306、及び通信インターフェース307のハードウェアとしての説明は、プロセッサ101、補助記憶装置102、メモリ103、内部信号線104、表示装置105、入出力インターフェース106、及び通信インターフェース107のハードウェアとしての説明と同様であるため説明を省略する。
【0029】
プロセッサ301は第1検知部311と第2検知部312を含む。例えば、プロセッサ301は、メモリ303にロードされた第1検知プログラムに従って動作することで、第1検知部311として機能し、メモリ303にロードされた第2検知プログラムに従って動作することで、第2検知部312として機能する。
【0030】
第1検知部311は、評価対象データが敵対的データ(AE攻撃を受けたデータであるか)であるかの最終判定を行う。第2検知部312は、評価対象データが敵対的データであるか敵対的データである可能性があるかを判定し、敵対的データである可能性があるかを判定した場合に、第1検知部311に最終判定を依頼する。なお、実施例1のプロセッサ301は第2検知部312を含まなくてもよい。
【0031】
図5は、データ送信端末400のハードウェア構成例を示すブロック図である。データ送信端末400は例えば、互いにバス等の内部信号線404で連結された、プロセッサ(CPU)401、補助記憶装置402、メモリ403、表示装置405、入出力インターフェース406、及び通信インターフェース407を有する計算機によって構成される。
【0032】
プロセッサ401、補助記憶装置402、メモリ403、内部信号線404、表示装置405、入出力インターフェース406、及び通信インターフェース407のハードウェアとしての説明は、プロセッサ101、補助記憶装置102、メモリ103、内部信号線104、表示装置105、入出力インターフェース106、及び通信インターフェース107のハードウェアとしての説明と同様であるため説明を省略する。
【0033】
データ送信端末400の補助記憶装置402は、評価対象データ421を保持する。なお、評価対象データ421は、データ送信端末400のメモリ403に格納されていてもよい。
【0034】
データ受信端末500のハードウェア構成例は、図5のデータ送信端末400のハードウェア構成例と同様であるため説明を省略する。
【0035】
図6は、敵対的データ検知処理の一例を示すシーケンス図である。まず、データ送信端末400は、評価対象データをノイズ付加サーバ100へ送信する(S601)。画像データは、評価対象データの一例である。
【0036】
データ拡張部111は、受信した評価対象データに対してデータ拡張を行うことで複数の拡張評価対象データを生成する(S602)。ステップS602の処理の一例について説明する。例えば、拡張評価対象データの生成数を示すパラメータnが予め設定されてメモリ103に格納されている。データ拡張部111は、例えば、n種類の異なるノイズを生成し、1つの評価対象データにn種類のノイズそれぞれを付加することで、n個の拡張評価対象データを生成する。データ拡張部111が生成するノイズは、例えば、評価対象データと同じ次元数の数値ベクトルである。また、データ拡張部111は、例えば、ガウス分布等の所定の確率分布に従って、ノイズを生成する。
【0037】
ノイズ付加部112と評価部211は相互に通信して、評価対象データに対する評価値の計算と、拡張評価対象データに対する評価値の計算と、ステップS602で生成された拡張評価対象データに対するノイズ付加と、ノイズが付加された拡張評価対象データに対する評価値の計算と、を行う(S603)。
【0038】
例えば、ノイズ付加部112はn個の拡張評価対象データそれぞれに対し異なるノイズを生成し付加することでn個の拡張評価対象データそれぞれを更新し、評価部211は更新後のn個の拡張データそれぞれについて評価値を算出する。なお、ノイズ付加部112は、例えば、ガウス分布、一様分布、又はラプラス分布等の所定の確率分布に従ってノイズを生成してもよいし、評価部211により計算される評価値を意図的に変化させるようなノイズを生成してもよい。評価値を意図的に変化させるノイズとして、例えば、敵対的データ作成時に生成されるノイズと同様の手法で生成されるノイズが使用される。
【0039】
本実施形態において、評価部211は、例えば、深層学習を用いて生成された学習済みモデルに更新後のn個の拡張評価対象データを入力して得られたクラスを評価値として算出する。なお、当該学習済みモデルは、深層学習を行う際に訓練データに対しリサイズやパディング等の処理を施したデータを学習させることで、ロバスト性を向上させた学習済みモデルであってもよい。なお、この学習済みモデルは、例えば、メモリ203に予め格納されている。
【0040】
なお、ステップS603におけるn個の拡張評価対象データそれぞれの更新処理と更新後のn個の拡張評価対象データそれぞれの評価値算出処理は、所定条件が満たされるまで繰り返し実行される。評価部211は、ステップS603で最終的に算出された拡張評価対象データそれぞれの評価値を検知サーバ300へ送信する(S604)。なお、ステップS603とステップS604の処理の詳細は図7を用いて後述する。
【0041】
第1検知部311は、ステップS604で受信した評価値を用いて、ステップS601で送信された評価対象データが、敵対的データであるか否か判定する(S605)。ステップS605の処理の詳細は図8を用いて後述する。
【0042】
第1検知部311は、評価対象データが敵対的データであると判定した場合(S605:Yes)、評価対象データの評価値をデータ送信端末400に送信せず、当該評価値の送信を拒否することを示す通知(判定結果:reject)をデータ送信端末400に送信する(S606)。第1検知部311は、評価対象データが敵対的データでないと判定した場合(S605:No)、評価対象データの評価値を、データ受信端末500に送信して(S607)、敵対的データ検知処理が終了する。
【0043】
なお、第1検知部311は、ステップS803において評価対象データが敵対的データであると判定した場合に、ステップS606において、当該評価値の送信を拒否することを示す通知(判定結果:reject)をデータ送信端末400に送信せずに、ステップS603で最終的に算出された拡張評価対象データそれぞれの評価値をデータ受信端末500に送信してもよい。
【0044】
図7は、ステップS603及びステップS604における、拡張評価対象データ更新処理の一例を示すフローチャートである。評価部211は、ステップS601で受け取った評価対象データDの評価値Evalを計算する(S701)。つまり、評価部211は、評価対象データDを上記した学習済みモデルに入力して得られた評価対象データDのクラスを評価値Evalとして計算する。
【0045】
評価部211は、i=1,・・・,nそれぞれについてi=1から順に、下記のステップS702~ステップS705の処理を実行する。評価部211は、n個の拡張評価対象データ{D,・・・,D}に含まれるDの評価値AEEvalを計算する(S702)。評価部211は、Eval=AEEvalであるかを判定する(S703)。
【0046】
評価部211は、Eval=AEEvalであると判定した場合(S703:Yes)、ノイズ付加部112はDにノイズを付加することでDを更新し(S704)、ステップS702に戻って更新後のDに対して評価値を再度計算する。なお、ステップS704におけるノイズ付加の方法は、ステップS602におけるノイズ付加の方法と同じであっても異なってもよい。
【0047】
評価部211は、Eval=AEEvalでないと判定した場合(S703:No)、直近のステップS902で算出した評価値AEEvalを、例えば、メモリ203に保存して(S705)、iの値をインクリメントしてステップS902に戻る。
【0048】
なお、Eval=AEEvalであることは、評価対象データDのクラスとDのクラスとが一致していること、即ちDにノイズが付加されて生成されたにも関わらずクラスが変化していないことを示す。一方、Eval=AEEvalでないことは、評価対象データDのクラスとDのクラスとが一致していないこと、即ちDにノイズが付加されてクラスが変化したことを示す。
【0049】
なお、評価部211は、Dに対して所定回数以上のステップS704の処理が行われてもステップS705においてEval=AEEvalであると判定した場合には、このDに対するステップS702~ステップS704の処理を終了して(即ちこのDに対する最終的な評価値を算出することなく)、iをインクリメントしてもよいし、データ送信端末400にエラーを送信して敵対的データ検知処理を終了してもよい。
【0050】
i=1,・・・,nそれぞれに対してステップS705の処理が完了したら、評価部211は、メモリ203に保存されたAEEval,・・・,AEEvalを検知サーバ300に送信して(S604)、拡張評価対象データ更新処理が終了する。
【0051】
図8は、ステップS604及びステップS605における敵対的データ判定処理の一例を示すフローチャートである。第1検知部311は、評価値{AEEval,…,AEEval}を受け取る(S604)。第1検知部311は、AEEval,・・・,AEEvalからなる評価値群における最頻値の度数Numを求める(S801)。
【0052】
第1検知部311は、Numをデータ数nで割った値が、予め定められた閾値qより大きいかを判定する(S802)。なお、閾値qは、例えば、メモリ303に予め格納されている。第1検知部311は、Numをデータ数nで割った値が、予め定められた閾値qより大きいと判定した場合(S802:Yes)、評価対象データが敵対的データであると判定して(S803)、敵対的データ判定処理を終了する。
【0053】
第1検知部311は、Numをデータ数nで割った値が、予め定められた閾値q以下であると判定した場合(S802:No)、評価対象データが敵対的データでないと判定して(S804)、敵対的データ判定処理を終了する。
【0054】
図8の例では、第1検知部311は、AEEval,・・・,AEEvalからなる評価値群における最頻値の度数Numを敵対的データの検知に用いているが、Numは敵対的データを検知するための指標の一例に過ぎず、AEEval,・・・,AEEvalの偏りを示す指標であれば上記したNumと異なる指標を用いてもよい。第1検知部311は、例えば、AEEval,・・・,AEEvalからなる評価値群において度数が上位n位までの評価値の度数の合計をNumとして用いてもよいし、AEEval,・・・,AEEvalそれぞれを出力したデータ数に関する分散を敵対的データの検知に用いてもよい。
【0055】
上記した分散の一例について説明する。第1検知部311は、AEEval,・・・,AEEvalのからなる評価値群に含まれる評価値の度数を算出し、算出した度数の分散を算出する。例えば、拡張評価対象データの個数が10個であり、拡張評価対象データの評価値として取り得る値が、0又は1のいずれかであるとする。さらに、AEEval~AEEval10の値がいずれも1であるとする。この場合、評価値0の度数が0であり、評価値1の度数が10である。このとき第1検知部311は、例えば、(平均)=(拡張評価対象データの個数)/(評価値として取り得る値の個数)を算出し(つまり10/2=5を算出し)、評価値として取り得る各値について(平均-度数)2-を算出して(つまり、(5-0)=25と、(5-10)=25と、を算出して)、算出した((平均)-度数))の総和を拡張評価対象データの個数で割った値(つまり、(25+25)/10=5)を分散として算出する。第1検知部311は、算出した分散が予め定められた閾値r以下であると判定した場合、評価対象データが敵対的データでないと判定し、算出した分散が予め定められた閾値rより大きいと判定した場合、評価対象データが敵対的データであると判定する。
【0056】
図9は、敵対的データ検知処理の概要の一例を示す説明図である。図9の例では、評価対象データが画像である例を説明する。人間が当該画像を見ると当該画像が猫の画像であると認識するが、評価部211がモデルに当該画像を入力すると当該画像が馬の画像であると誤認識する。つまり図9の評価対象データは敵対的データである。
【0057】
この場合、評価対象データである画像は人間からの見た目は猫の画像であるため、評価対象データである画像にノイズが付加されれば、当該ノイズが付加された画像が当該モデルに入力された分類結果は猫の画像である可能性が高い。
【0058】
データ拡張部111は、画像に異なるノイズを付加することで、複数の画像(拡張評価対象データ)を生成する(S602)。ノイズ付加部112は、複数の画像それぞれに対して、評価部211による評価値(即ち画像をモデルに入力したときに出力される分類結果)が変化するまでノイズを付加する(S603)。
【0059】
第1検知部311は、変化後の評価値の偏りを示す指標(Num)を計算し、偏りが大きいと判定した場合、(敵対的データである馬の画像に様々なノイズが付加されると、元画像である猫の画像に変化すると考えられるため)、評価対象データが敵対的データであると判定する。
【0060】
図9の例において、閾値qを0.5とすれば、変化後の4つの評価値のうち3つの評価値が猫の画像であるため、Num/n=3/4>0.5であるため、第1検知部311は、評価対象データが敵対的データであると判定する。
【0061】
以上、本実施例の敵対的データ検知システムは、前述の処理により敵対的データを高精度かつ少ない計算量で検知することができる。なお、敵対的データがモデルに入力されると正常なデータと異なる評価値を出力するが、敵対的データは、正常なデータに作為的な微小ノイズを加えて作成されたデータである可能性が高い。従って、敵対的データにノイズ付加し続けると元の正常データの評価値を出力するデータに戻りやすい傾向があると期待できる。つまり、変化後の拡張評価対象データの評価値が同じ値になる割合が大きい場合には、当該同じ評価値を有する拡張評価対象データは正常なデータに戻っていると考えられ、本実施例の敵対的データ検知システムはこの性質を利用して評価対象データが敵対的データであるかを判定している。
【0062】
具体的には、前述したように、本実施例の敵対的データ検知システムは、拡張評価対象データの評価値が変化するまで拡張評価対象データにノイズを加え続け、変化後の評価値の偏りに基づいて評価対象データが敵対的データであるかを判定する。従って、攻撃者が本実施例の検知手法についての情報を有している場合であっても、モデルの情報を有していて微小なノイズを少ない回数加えても当該モデルによる出力結果が変わらない敵対的データを生成した場合であっても、評価対象データが敵対的データであるかを高精度に検知することができ、ひいては安全性を保つことができる。
【0063】
また、ノイズ付加部112は、ステップS603において、毎回ガウス分布に従ってノイズを生成する等のように各拡張評価対象データに対して同一のアルゴリズムから生成したノイズを付加してもよいし、Dにはガウス分布に従うノイズを付加し、Dには一様分布に従うノイズを付加する等のように、異なる拡張評価対象データに異なるアルゴリズムから生成したノイズを付加してもよい。また、ステップS603において、検知サーバ300からデータ受信端末500へ送信される評価対象データの評価値の計算は、ステップS602において事前に実行されてもよいし、ステップS613の直前に実行されてもよい(ステップS601より後かつステップS613より前の任意のタイミングで行われればよい)。
【実施例2】
【0064】
本実施例では、敵対的データ検知処理の別例を説明する。本実施例の敵対的データ検知処理では、敵対的データ検知システムは、評価対象データにノイズを付加して最初に生成した拡張評価対象データに対する評価値に基づいて評価対象データが敵対的データであるかを判定し(第1の判定)、評価対象データが敵対的データであると判定した場合、さらに実施例1で説明したステップS603~ステップS607の判定処理(第2の判定)を実行する。
【0065】
図10は、敵対的データ検知処理の一例を示すシーケンス図である。図6との相違点を主に説明する。ステップS602に続いて、データ拡張部111は、生成した拡張評価対象データと評価対象データとを、評価サーバ200に送信する(S1001)。
【0066】
評価部211は、ステップS1001で受信した評価対象データ及び拡張評価対象データそれぞれの評価値を計算する(S1002)。評価部211は、ステップS1002で計算した評価値を、検知サーバ300に送信する(S1003)。第2検知部312は、ステップS1003で受信した評価値を用いて、評価対象データが敵対的データであるか敵対的データでない可能性があるかを判定する(S1004)。ステップS1004の処理の詳細は、図11を用いて後述する。
【0067】
第2検知部312は、評価対象データが敵対的データであると判定した場合(S1004:Yes)、評価対象データの評価値をデータ送信端末400に送信せず、当該評価値の送信を拒否することを示す通知(判定結果:reject)をデータ送信端末400に送信して(S1005)、敵対的データ検知処理が終了する。第2検知部312は、敵対的データでない可能性があると判定した場合(S1004:No)、第2の判定に移行すること(及び/又は評価対象データが敵対的データでない可能性があること)を示す通知(判定結果:accept)をノイズ付加サーバ100に送信し(S1006)、ステップS603~ステップS607の処理(第2の判定)が行われて、敵対的データ検知処理が終了する。
【0068】
なお、D(i=1,・・・,n)それぞれに対する初回のステップS702において算出されるDの評価値は、ステップS1002で算出される拡張評価対象データそれぞれの評価値と同一であるため、D(i=1,・・・,n)それぞれに対する初回のステップS702の処理は省略されてもよい。
【0069】
図11はステップS1004における敵対的データ判定処理(第2の判定)の一例を示すフローチャートである。第2検知部312は、評価対象データに対する評価値Evalと拡張評価対象データに対する評価値{Eval,…,Eval}を受け取る(S1003)。第2検知部312は、Eval≠Eval(i=1,…n)となる拡張評価対象データの個数Numを求める(S1101)。第2検知部312は、Numを拡張評価対象データの個数nで割った値が予め定められた閾値pより小さいと判定する(S1102)。なお、閾値pは、例えば、メモリ303に予め格納されている。
【0070】
第2検知部312は、Numを拡張評価対象データの個数nで割った値が予め定められた閾値pより小さいと判定した場合(S1102:Yes)、評価対象データは敵対的データであると判定して(S1103)、敵対的データ判定処理を終了する。第2検知部312は、Numを拡張評価対象データの個数nで割った値が予め定められた閾値p以上であると判定した場合(S1102:No)、評価対象データが敵対的データでない可能性があると判定して(S1104)、敵対的データ判定処理を終了する。
【0071】
なお、第2検知部312は、ステップS1102において、評価値が異なる拡張評価対象データの個数の割合を検知に用いているが、他の指標を検知に用いてもよい。第2検知部312は、例えば、ステップS1102において、拡張評価対象データそれぞれの評価値の、評価対象データの評価値からの変化量をカウントし、当該変化量の平均値をNumの代わりに用いてもよい。
【0072】
敵対的データは、正常なデータに作為的な微小ノイズを加えて作成されたデータである可能性が高いため、モデルが出力される評価値が変化する境界に近いデータである可能性が高い。つまり、評価対象データが敵対的データである場合には、評価対象データにノイズが付加された拡張評価対象データの評価値は、評価対象データの評価値と異なる可能性が高い。従って、本実施例の敵対的データ検知システムは、図11の処理で評価対象データと評価値が異なる拡張評価対象データの割合に基づいて、評価対象データが敵対的データであるかを判定することにより、効率的に敵対的データを検知することができる。
【0073】
なお、上記した例では、敵対的データ検知システムは、第1の判定において評価対象データが敵対的データであると判定した場合に第2の判定により評価対象データが敵対的データであるかの最終的な判定を行うが、第2の判定において評価対象データが敵対的データであると判定した場合に第1の判定による評価対象データが敵対的データであるかの最終的な判定を行ってもよい。
【0074】
以上、本実施例の敵対的データ検知システムは、本実施例の敵対的データ検知システムは、評価対象データに対して、異なる性質を捉えるための2つの検知手法を用いることにより、より安全性が高くかつ高精度に敵対的データを検知することができる。
【実施例3】
【0075】
本実施例は、敵対的データ検知システムのユースケースの一例を説明する。図12は、敵対的データ検知システムの入出力データの一例を示す説明図である。図12の例では、評価対象データが医療画像であり、敵対的データ検知システムは当該医療画像に基づいて、医療画像の被写体の人間が病気であるか、及び病気である場合には被写体の人間がり患している病気の種類を判定する。
【0076】
データ送信端末400は、ステップS601において、医療画像をノイズ付加サーバ100に送信する。ステップS605において、検知サーバ300は、医療画像が敵対的データであると判定した場合、ステップS606において、その旨を示す報告をデータ送信端末400へ送信する。
【0077】
検知サーバ300は、ステップS605において、医療画像が敵対的データではないと判定した場合、ステップS607において、医療画像に対する評価結果(被写体の人間が病気であるか否か、及び病気である場合には病気の種類を示す分類結果)をデータ受信端末500へ送信する。
【0078】
なお、本発明は上記した実施例に限定されるものではなく、様々な変形例が含まれる。例えば、上記した実施例は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、ある実施例の構成の一部を他の実施例の構成に置き換えることも可能であり、また、ある実施例の構成に他の実施例の構成を加えることも可能である。また、各実施例の構成の一部について、他の構成の追加や削除、置換をすることが可能である。
【0079】
また、上記の各構成、機能、処理部、処理手段等は、それらの一部又は全部を、例えば集積回路で設計する等によりハードウェアで実現してもよい。また、上記の各構成、機能等は、プロセッサがそれぞれの機能を実現するプログラムを解釈し、実行することによりソフトウェアで実現してもよい。各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリや、ハードディスク、SSD(Solid State Drive)等の記録装置、または、ICカード、SDカード、DVD等の記録媒体に置くことができる。
【0080】
また、制御線や情報線は説明上必要と考えられるものを示しており、製品上必ずしも全ての制御線や情報線を示しているとは限らない。実際には殆ど全ての構成が相互に接続されていると考えてもよい。
【符号の説明】
【0081】
100 ノイズ付加サーバ、200 評価サーバ、300 検知サーバ、400 データ送信端末、500 データ受信端末、101 プロセッサ、102 補助記憶装置、103 メモリ、107 通信インターフェース、111 データ拡張部、112 ノイズ付加部、201 プロセッサ、202 補助記憶装置、203 メモリ、207 通信インターフェース、211 評価部、301 プロセッサ、302 補助記憶装置、303 メモリ、307 通信インターフェース、311 第1検知部、312 第2検知部、401 プロセッサ、402 補助記憶装置、403 メモリ、407 通信インターフェース
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12