(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023154373
(43)【公開日】2023-10-19
(54)【発明の名称】情報処理装置
(51)【国際特許分類】
G06N 3/08 20230101AFI20231012BHJP
【FI】
G06N3/08
【審査請求】未請求
【請求項の数】5
【出願形態】OL
(21)【出願番号】P 2022111963
(22)【出願日】2022-07-12
(31)【優先権主張番号】17/714,563
(32)【優先日】2022-04-06
(33)【優先権主張国・地域又は機関】US
(71)【出願人】
【識別番号】000155469
【氏名又は名称】株式会社野村総合研究所
(74)【代理人】
【識別番号】110003281
【氏名又は名称】弁理士法人大塚国際特許事務所
(72)【発明者】
【氏名】田篭 照博
(57)【要約】 (修正有)
【課題】敵対的トレーニングを用いる場合に、特定のロバストネスを満たすことを予見可能なディープニューラルネットワークを生成する装置を提供する。
【解決手段】情報処理装置は、敵対的トレーニングの特性に関するユーザ設定を取得するユーザ設定取得部と、敵対的サンプルとオリジナルの分類クラスを示す正解データとを含む学習データ及びユーザ設定を用いてニューラルネットワークを学習させる敵対的トレーニングを実行する処理部と、を含む。敵対的トレーニングは、敵対的サンプルが入力された場合に誤分類クラスを出力するニューラルネットワークを、敵対的サンプルを入力した場合にオリジナルの分類クラスを出力するように学習させる。形式検証アルゴリズムを実行することにより、敵対的トレーニングによって学習された重み係数を用いるニューラルネットワークにおいて、特定のデータの所定のノイズの範囲内に敵対的サンプルが存在しないことを判定する。
【選択図】
図3
【特許請求の範囲】
【請求項1】
情報処理装置であって、
1つ以上のプロセッサと、
1つ以上のプログラムを含むメモリと、を含み、前記1つ以上のプログラムは、前記1つ以上のプロセッサによって実行されると、前記情報処理装置に、
敵対的トレーニングの特性に関するユーザ設定を取得することと、
敵対的サンプルとオリジナルの分類クラスを示す正解データとを含む学習データと前記ユーザ設定とを用いてニューラルネットワークを学習させる前記敵対的トレーニングを実行することであって、前記敵対的トレーニングは、前記敵対的サンプルが入力された場合に誤分類クラスを出力するニューラルネットワークを、前記敵対的サンプルを入力した場合に前記オリジナルの分類クラスを出力するように学習させる、ことと、
形式検証アルゴリズムを実行することにより、前記敵対的トレーニングによって学習された重み係数を用いる前記ニューラルネットワークにおいて、特定のデータの所定のノイズの範囲内に敵対的サンプルが存在しないことを判定することと、を実行させる、情報処理装置。
【請求項2】
前記1つ以上のプロセッサは、
前記敵対的トレーニングの特性に関する設定のうちの少なくとも1つの設定の値を変更しながら、前記敵対的トレーニングを実行することと、前記敵対的トレーニングによって学習されたニューラルネットワークが所定の正解率を満たすかを判定することと、を繰り返し、
敵対的トレーニングによって学習されたニューラルネットワークが前記所定の正解率を満たすと判定したことに応じて、直前の前記敵対的トレーニングによって学習された重み係数を用いる前記ニューラルネットワークにおいて特定のデータの所定のノイズの範囲内に敵対的サンプルが存在しないことを、前記形式検証アルゴリズムにより判定する、請求項1に記載の情報処理装置。
【請求項3】
前記設定は、前記敵対的サンプルのノイズの大きさを含み、
前記1つ以上のプロセッサは、
前記敵対的サンプルのノイズの範囲の値を変更しながら、前記敵対的トレーニングを実行する、請求項2に記載の情報処理装置。
【請求項4】
前記敵対的トレーニングによって学習されたニューラルネットワークが前記所定の正解率を満たすかを判定することは、前記敵対的トレーニングによって学習されたニューラルネットワークとテストデータとを用いたテストの正解率が、定められた閾値を超えるかを判定することを含む、請求項3に記載の情報処理装置。
【請求項5】
前記設定は、敵対的サンプルの生成アルゴリズムを含み、
前記1つ以上のプロセッサは、
前記敵対的サンプルの生成アルゴリズムを変更しながら、前記敵対的トレーニングを実行する、請求項2に記載の情報処理装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、敵対的トレーニングと形式手法を用いて、ディープニューラルネットワークのロバストネスを向上させる情報処理装置に関する。
【背景技術】
【0002】
近年、ディープラーニング技術を用いて、画像に含まれる被写体を高い認識確率で認識することが可能になっている。このような、被写体認識などの分類問題を行うディープニューラルネットワークに対して、人間では気づかない程度のノイズ(摂動)を加えた敵対的サンプルと呼ばれる画像を入力し、意図的に誤分類を引き起こす技術が知られている。
【0003】
一方、敵対的サンプルを用いたディープニューラルネットワークに誤分類を引き起こさせる攻撃に対して、ロバストネス(頑健性)を向上させるようにディープニューラルネットワークを学習させる敵対的トレーニングと呼ばれる技術が開発されている(非特許文献1)。
【先行技術文献】
【非特許文献】
【0004】
【非特許文献1】Aleksander Madry、外4名、「Towards Deep Learning Models Resistant to Adversarial Attacks」 ICLR 2018、2017年6月19日、URL: https://arxiv.org/abs/1706.06083
【発明の概要】
【発明が解決しようとする課題】
【0005】
敵対的トレーニングでは、敵対的サンプルを学習データとして用いて、当該敵対的サンプルを入力しても誤分類を行わないようにディープニューラルネットワークを学習させる。このため、敵対的トレーニングによって生成されたディープニューラルネットワークは、一般的なディープニューラルネットワークの学習と同様に、学習やテストに用いるデータのサンプルにおいて高い正解率を出すことが可能になったとしても、常に正しい分類結果を出力することは保証されない。
【0006】
他方、敵対的サンプルに対する誤分類が深刻な結果をもたらす場合があるため、敵対的トレーニングを行う場合に、学習されたニューラルネットワークがどの程度のロバストネスを満たすのかを予見可能であることが望ましい。
【0007】
本発明は、上記課題に鑑みてなされ、その目的は、敵対的トレーニングを用いる場合に、特定のロバストネスを満たすことを予見可能なディープニューラルネットワークを生成する技術を実現することである。
【課題を解決するための手段】
【0008】
この課題を解決するため、例えば本発明の情報処理装置は以下の構成を備える。すなわち、
情報処理装置であって、
1つ以上のプロセッサと、
1つ以上のプログラムを含むメモリと、を含み、前記1つ以上のプログラムは、前記1つ以上のプロセッサによって実行されると、前記情報処理装置に、
敵対的トレーニングの特性に関するユーザ設定を取得することと、
前記ユーザ設定を用いて、敵対的サンプルとオリジナルの分類クラスを示す正解データを含む学習データを用いてニューラルネットワークを学習させる前記敵対的トレーニングを実行することであって、前記敵対的トレーニングは、前記敵対的サンプルが入力された場合に誤分類クラスを出力するニューラルネットワークを、前記敵対的サンプルを入力した場合に前記オリジナルの分類クラスを出力するように学習させる、ことと、
形式検証アルゴリズムを実行することにより、前記敵対的トレーニングによって学習された重み係数を用いる前記ニューラルネットワークにおいて、特定のデータの所定のノイズの範囲内に敵対的サンプルが存在しないことを判定することと、を実行させる。
【発明の効果】
【0009】
本発明によれば、敵対的トレーニングを用いる場合に、特定のロバストネスを満たすことを予見可能なディープニューラルネットワークを生成可能になる。
【図面の簡単な説明】
【0010】
【
図1】本発明の実施形態に係る情報提供システムの概要を説明する図
【
図2】本実施形態に係る情報処理装置のハードウェア構成例を示すブロック図
【
図3】情報処理装置の機能構成例についてを示すブロック図
【
図4】通常の学習によるサンプルの分類と敵対的トレーニングによるサンプルの分類の違いを説明するための図(1)
【
図5】通常の学習によるサンプルの分類と敵対的トレーニングによるサンプルの分類の違いを説明するための図(2)
【
図6】回帰モデルに形式検証を適用した場合を説明するための例(1)
【
図7】回帰モデルに形式検証を適用した場合を説明するための例(2)
【
図8】分類モデルに形式検証を適用した場合を説明するための例(1)
【
図9】分類モデルに形式検証を適用した場合を説明するための例(2)
【
図10】情報処理装置におけるロバストネス向上処理の動作を示すフローチャート
【
図11】学習データ及びテストデータのデータ構造の一例を示す図
【
図12】敵対的サンプルデータのデータ構造の一例を示す図
【
図13】モデルデータ334のデータ構造の一例を示す図
【発明を実施するための形態】
【0011】
以下、添付図面を参照して実施形態を詳しく説明する。なお、以下の実施形態は特許請求の範囲に係る発明を限定するものではなく、また実施形態で説明されている特徴の組み合わせの全てが発明に必須のものとは限らない。実施形態で説明されている複数の特徴のうち二つ以上の特徴は任意に組み合わされてもよい。また、同一若しくは同様の構成には同一の参照番号を付し、重複した説明は省略する。
【0012】
<情報処理システムの概要>
図1を参照して、本実施形態に係る情報処理システムの一例について説明する。情報処理システム10は、例えば、情報処理装置100と電子デバイス101と、通信端末102とから構成され、これらはネットワークを通じて互いに通信可能である。情報処理装置100は、ロバストネス(頑健性)向上処理を実行することにより、敵対的トレーニングと形式検証を終えた学習済みのモデル(検証済みディープニューラルネットワークともいう)を生成する。ロバストネス向上処理、敵対的トレーニング、及び形式検証については、後述する。情報処理装置100は、例えばサーバ装置であるが、ネットワーク上に配置されるエッジノードであってもよいし、P2Pネットワークを構成するノードであってもよい。本実施形態では、説明の簡単のため、サーバ装置が1台のコンピュータで構成される場合を例に説明するが、複数のコンピュータで構成されてもよいし、ホスト上で動作する仮想マシンによって具現化されてもよい。
【0013】
通信端末102は、ロバストネス向上処理に必要なデータや設定値をユーザ103が指定したり、或いは、ユーザ103が必要なデータを情報処理装置100にアップロードしたりする通信端末である。通信端末102は、例えばパーソナルコンピュータであるが、タブレット機器やスマートフォンであってもよい。
【0014】
電子デバイス101は、ロバストネス向上処理によって生成された検証済みのニューラルネットワークが配置される電子デバイスである。電子デバイス101は、例えば、ユーザの指示に応じて、或いは、システムアップデートなどの特定のトリガの発生に応じて、検証済みのニューラルネットワークを情報処理装置100からダウンロードしてよい。
図1に示す例では、電子デバイス101が例えばモバイルデバイスである場合を例に示しているが、画像認識処理を行う他の電子デバイスであってよい。電子デバイスは、例えば車両などであってもよい。ここでは、電子デバイス101にダウンロードする構成を示したが、電子デバイス101に代わり、ニューラルネットワークを取り込んだウェブアプリケーションサーバであってもよいし、または、情報処理装置100がクラウドサービスのプラットフォーム上に構築され、情報処理装置100自体又はクラウドサービスのプラットフォーム上の別の装置にニューラルネットワークを取り込んだ構成であってもよい。
【0015】
詳細は後述するが、本実施形態に係るロバストネス向上処理を行うことにより、ニューラルネットワークに対する敵対的トレーニングや形式検証が行われる。このため、ロバストネス向上処理を行ったニューラルネットワークは、敵対的サンプルに対するロバストネスが向上する。敵対的サンプルは、人間の目には気づかれないレベルのノイズ(摂動ともいう)を加えることにより、ニューラルネットワークが誤分類を引き起こすように生成されるサンプル(入力データ)である。敵対的サンプルに対してロバストネスを向上させたニューラルネットワークは、以下のようなユースケースの一例において、誤分類によるセキュリティリスクを軽減可能である。
【0016】
例えば、動物が撮影された画像を入力すると画像に含まれる動物が何であるかを分類するニューラルネットワークを例に説明する。このニューラルネットワークは、例えばパンダの画像が入力されると、被写体がパンダであるとの分類結果を出力する。例えば、このパンダの画像に数学的に計算されたノイズ(摂動)を加えた画像を敵対的サンプルとして生成する。この敵対的サンプル(ノイズの加わったパンダの画像)は、人間の目で見るとパンダの画像に見える。しかし、敵対的トレーニングを実行していないニューラルネットワークに当該敵対的サンプルを入力すると、ニューラルネットワークは、例えばテナガザルのような誤った分類結果を出力する。これに対し、本実施形態に係るロバストネス向上処理を行った検証済みのニューラルネットワークを用いる電子デバイスでは、ロバストネス要件を満たす範囲のノイズの敵対的サンプルについて、正しい分類結果(すなわちパンダ)を得ることができる。
【0017】
別の例として、人の顔が撮影された画像を入力すると画像に含まれる人物がだれであるかを分類するニューラルネットワークを例に説明する。このような顔認識技術は、例えば、部屋への出入りや監視画像の解析において有用である。ノイズを加えた模様を有するサングラスを着用した人の状態(すなわち敵対的サンプル)について、敵対的トレーニングを実行していないニューラルネットワークによる顔認識処理を行うと、当該ニューラルネットワークは別の人物として認識する。これに対し、本実施形態に係るロバストネス向上処理を行った検証済みのニューラルネットワークを用いる電子デバイスでは、ロバストネス要件を満たす範囲のノイズの敵対的サンプルについて、正しい人物を分類結果として得ることができる。すなわち、電子デバイスの誤動作(敵対的サンプルによるなりすまし)を防止することができる。
【0018】
他の例として、ディープフェイク技術によって生成された、世の中に存在しない人物の顔画像(或いは動画像)に対して、その画像がディープフェイク技術によって生成された画像であるか否かを分類するニューラルネットワークを例に説明する。このような分類器は、ディープフェイク技術によって生成された証明写真やアカウント用の画像を判定したり、政治的な世論操作のために生成された動画を判定するために有用である。敵対的サンプルによってこのようなニューラルネットワークの判定が回避される場合、セキュリティ上のリスクが存在する。これに対し、本実施形態に係るロバストネス向上処理を行った検証済みのニューラルネットワークを用いる電子デバイスでは、ロバストネス要件を満たす範囲のノイズの敵対的サンプルについて、ディープフェイクであるか否かの正しい判定結果を得ることができる。
【0019】
別の例として、画像内の速度標識から法定速度を認識するニューラルネットワークを例に説明する。この例では当該ニューラルネットワークが車両に搭載される場合がある。このようなニューラルネットワークは、画像内の速度標識から法定速度を認識し、走行する車両が法定速度で走行可能にする。標識に模様を付すことにより敵対的サンプル化させた場合、敵対的トレーニングを実行していないニューラルネットワークにより認識処理を行うと、異なる速度や停止の標識として誤分類する場合がある。これに対し、本実施形態に係るロバストネス向上処理を行った検証済みのニューラルネットワークを用いる電子デバイスでは、ロバストネス要件を満たす範囲のノイズの敵対的サンプルについて、正しい標識の分類結果を得ることができる。
【0020】
本実施形態に係る検証済みのニューラルネットワークを用いる電子デバイスを実際のアプリケーションに適用可能な場面は様々である。しかし、本実施形態に係る検証済みのニューラルネットワークを実際のアプリケーションに適用可能な場面や効果は上述の例に限定されない。
【0021】
<情報処理装置のハードウェア構成例>
図2を参照して、情報処理装置100のハードウェア構成例について説明する。情報処理装置100は、メモリ202と、プロセッサ204と、通信インタフェース206と、ストレージ208と、入力インタフェース210とを含む。これらの要素はそれぞれバス214に接続され、バス370を介して互いに通信する。
【0022】
メモリ202は、例えばDRAMなどの揮発性の記憶媒体であって、データやプログラムを一次的に記憶する。また、ストレージ208は、データやプログラムを永続的に記憶する不揮発性の記憶媒体である。ストレージ208は、例えば半導体メモリやハードディスクであってよい。ストレージ208は、後述するニューラルネットワークを学習させるための学習データ、学習済みのニューラルネットワークをテストするためのテストデータ、敵対的サンプルのデータなどの敵対的トレーニングや形式検証の実行に必要な各種データを格納することができる。
【0023】
プロセッサ204は、例えば、中央演算装置(CPU)などの演算回路を含む。プロセッサ204は1つ以上のプロセッサで構成されてよい。プロセッサ204は、更に、機械学習などの統計処理をより高速に実行するための演算回路(例えばGPU)や専用ハードウェアを更に含んでよいし、内部にメモリを含んでもよい。プロセッサ204は、ストレージ208に記憶されているプログラムをメモリ202に展開、実行することにより、情報処理装置100の各種機能を実現する。
【0024】
通信インタフェース206は、情報処理装置100の外部との間でデータの送受信を行うためのインタフェースである。通信インタフェース206は、各種標準に準拠した通信方式で通信可能な通信回路を含んでよい。通信インタフェース206はネットワークに接続され、ネットワークを介して通信端末102や電子デバイス101とデータをやりとりする。入力インタフェース210は、例えば情報処理装置100の管理者からの入力を受け付けるためのデバイスであるが、無くてもよい。
【0025】
電源212は、情報処理装置100の各部が動作するための電力を提供するための回路又はモジュールである。電源212は、バッテリを備えるように構成されてもよい。
【0026】
<敵対的トレーニングの説明>
情報処理装置の機能構成例について説明する前に、本実施形態に係る敵対的トレーニングについて説明する。上述のように、敵対的サンプルは、敵対的トレーニングを行う前のニューラルネットワークに、オリジナルの分類クラスの代わりに誤分類クラスを出力させるように、ノイズを加えた画像や動画である。敵対的サンプルに対するロバストネス(頑健性)は、特定のデータによってニューラルネットワークの分類結果を変化させるために、最低でもどれだけノイズを加える必要があるかで定義されてよい。なお、加えるノイズの大きさはノルムとも言われる。オリジナルのサンプルについて、敵対的サンプルにするために要求されるノイズが大きくなるほど、人間を騙すことが難しくなる。例えば、オリジナルのサンプルXを2次元空間に配置した場合、Xからの半径によりノイズの大きさ(すなわちノルム)を表すことができる。すなわち、どの程度の大きさのノルムを許容するかについてユーザ設定等により定めた場合に、(例えば学習データなどの)特定のデータ群における各サンプルに対する分類結果が、当該ノルムの範囲内で変化しないほど、モデルのロバストネスが高いということができる。
【0027】
敵対的サンプルに対してロバストネスを高める手法はいくつかあるが、本実施形態では、当該ロバストネスを高めるための一手法として敵対的トレーニングを行う場合を例に説明する。敵対的トレーニングは、敵対的サンプルを学習データとして利用する学習である。このとき、学習データにおける各正解データは、敵対的サンプルを誤分類する先のクラスではなく、敵対的サンプル化される前のオリジナルの正解クラスを示す。つまり、敵対的サンプルを入力したときに、誤分類しないように(すなわちオリジナルの正解クラスに分類するように)ニューラルネットワークを学習させる。
【0028】
図4及び
図5では、通常の学習によるサンプルの分類と敵対的トレーニングによるサンプルの分類の違いを模式的に示している。
図4の左側及び右側において、境界線400は、敵対的トレーニングを行う前のニューラルネットワークによってオリジナルの学習データを正しく分類する場合の境界を模式的に示している。各サンプルが敵対的サンプル化されていないため、当該ニューラルネットワークは、各サンプルを正しく分類することができる。
【0029】
図4の右側は、各サンプルから一定のノルムの範囲内に敵対的サンプルが存在する場合に、誤分類が発生することを模式的に示している。
図4の右側に示す各サンプルを囲う四角は、各オリジナルの学習データ(黒丸412と白丸414)からの一定のノルム以内の領域を模式的に表している。また、黒い三角416と白い三角418は、誤分類を発生させる敵対的サンプルを示している。
図4の右側の図では、一部のサンプルにおけるノルムの範囲が別のクラスの領域に掛かっている(境界線400を超えている)ため、「オリジナルの学習データから一定のノルム以内の領域」に敵対的サンプル(黒い三角416と白い三角418)が存在する。
【0030】
図5では、オリジナルのサンプルを学習して形成される境界線400と、敵対的トレーニングによって形成される境界線500との違いを模式的に示している。
図5の左側は、
図4の右側に示す敵対的サンプルが存在する様子を示している。敵対的トレーニングは「オリジナルの学習データから一定のノルム以内の領域」に敵対的サンプルが存在しないように、敵対的サンプルを使って学習することにより、サンプルを分類する境界が境界線500のようになる。これにより、「オリジナルの学習データから一定のノルム以内の領域」が境界線500を超えていないため、敵対的サンプルが存在しないことになる。
【0031】
なお、
図4及び
図5に示した「オリジナルの学習データから一定のノルム以内の領域」は、ロバストネス要件を満たす範囲のノイズの大きさに相当する。すなわち、敵対的トレーニングを行ったニューラルネットワークを生成するにあたり、ロバストネス要件、すなわちどの程度のノルムまでロバストネスを持たせるか、を事前に設定してから、当該ノルムの敵対的サンプルで学習させる必要がある。
【0032】
なお、学習データから一定のノルム以内の領域に敵対的サンプルが存在しないことが保証されることが望ましいが、必ずしもそのように学習が行われることは保証されない。また、敵対的トレーニングによって生成されたニューラルネットワークは、一般的なディープニューラルネットワークの学習と同様に、学習やテストに用いるデータのサンプルにおいて高い正解率を出すことが可能になったとしても、常に正しい分類結果を出力することは保証されない。一方で、敵対的サンプルに対する誤分類が深刻な結果をもたらす場合がある。このため、本実施形態では、以下に説明する形式検証を行うことにより、敵対的トレーニングで学習されたニューラルネットワークがどの程度のロバストネスを満たすのかを予見可能にする。
【0033】
<形式検証の説明>
次に、
図6から
図9を参照して、本実施形態に係る形式検証を用いたディープニューラルネットワークの検証について説明する。形式検証は、ハードウェアとソフトウェアが特定のプロパティを満たすか否かを数学的に証明することにより、例えばシステムが正しいことを保証する。本実施形態の検証では、ディープニューラルネットワークが特定のプロパティを満たすか否かを形式検証により証明する。
【0034】
図6は、回帰モデルに形式検証を適用した場合を説明するための例を示している。
図6に示す例では、ノード600と602は入力層のニューロンを示す。また、ノード604及びノード606は中間層のニューロンを示す。更にノード608は出力層のニューロンを示している。回帰モデルの例では、出力層は入力値に対応する予測値(ここでは与信スコア)を出力する。また、ノード間の矢印に対応付けられた数値は、ノードを繋ぐ重み係数の値を示す。なお、この例では簡単化のため、バイアスを0として省略している。
図6に示す例では、入力x
2が3以下である制約において、出力(予測結果)が5以上となる入力の組み合わせ(x
1、x
2)が存在するかを検証する。この例では、与信スコアが5以上になるような、勤続年数を示すパラメータと年収を示すパラメータの組が存在するかを検証する。
【0035】
図7は、上述の制約を満たす解が存在する場合の例を示している。(x
1、x
2)の組が(5、0)である場合に、入力値と重み係数の積の総和をノードごとに演算し、演算結果に中間層の活性化関数(例えばReLU)による演算を行うことにより、5なる与信スコアが得られる。
【0036】
図8は、分類モデルに形式検証を適用した場合を説明するための例を示している。
図8に示す例では、ノード800と802は入力層のニューロンを示す。また、ノード804及びノード806は中間層のニューロンを示す。更にノード808、810及び812は出力層のニューロンを示している。分類モデルの例では、出力層は、入力値が分類されるクラス(ここでは与信グレード)を出力する。ノード間の矢印に対応付けられた数値は、ノードを繋ぐ重み係数の値を示す。この例においても、バイアスを0として省略している。
図8に示す例では、入力x
1が3以下である制約において、出力層のノード808の値が最大となる入力の組み合わせ(x
1、x
2)が存在するかを検証する。この例では、与信グレードAの確率が最も高くなるような、勤続年数を示すパラメータと年収を示すパラメータの組が存在するかを検証する。
【0037】
図9は、上述の制約を満たす解が存在する場合の例を示している。(x
1、x
2)の組が(1、0)である場合に、入力値と重み係数の積の総和をノードごとに演算し、演算結果に中間層の活性化関数(例えばReLU)による演算を行うことにより、与信グレードAが最も高くなる。
【0038】
上述の例から把握できるように、特定データの一定のノルム内に敵対的サンプルが存在しないことをプロパティとし、当該プロパティを証明することにより、敵対的トレーニングによって生成されたニューラルネットワークのロバストネスを保証することができる。例えば、分類モデルとして示した重み係数は敵対的トレーニングによって得られた重み係数と対応し、入力における制約は、特定のサンプルにおけるノルムの範囲に対応する。また、出力ノードの分類は、敵対的トレーニングを適用したニューラルネットワークの出力層(分類結果)に対応し、出力の制約は、オリジナルの分類クラス以外の確率が最も高くならないことに対応する。このように、形式検証を用いることにより、敵対的トレーニングによって得られた重み係数を用いるニューラルネットワークにおいて、特定データからの一定のノルム内に敵対的サンプルが存在しないことを検証(判定)することができる。
【0039】
<情報処理装置の機能構成例>
次に、
図3を参照して、情報処理装置100の機能構成例について説明する。
図3に示す機能構成例は、例えば、プロセッサ204がストレージ208に記憶された1つ以上のプログラムをメモリ202に展開、実行することにより実現され得る。なお、本実施形態で説明する機能ブロックの各々は、統合されまたは分離されてもよく、また説明する機能が別のブロックで実現されてもよい。また、ハードウェアとして説明したものがソフトウェアで実現されてもよく、その逆であってもよい。
【0040】
データ取得部310は、例えば、敵対的トレーニングを適用したいモデルのデータ(ニューラルネットワークの構成に関するハイパーパラメータ)と、学習データと、テストデータとを取得する。データ取得部310は、例えば、通信端末102から送信されるこれらのデータを受信してもよいし、予め、学習データ及びテストデータ330やモデルデータ334としてストレージ208に格納されたデータをユーザ指示に応じて取得してもよい。更に、情報処理装置100の外部のストレージに格納されているこれらのデータを、ユーザ指示に応じて取得してもよい。
【0041】
ユーザ設定取得部312は、例えば通信端末102から、敵対的トレーニングの特性に関するユーザ設定を取得する。敵対的トレーニングの特性に関する設定は、例えば、敵対的サンプルの生成アルゴリズムの設定、敵対的トレーニングにおいて設定するノルム(ノイズの大きさ)、及び、敵対的トレーニングを実行する際の学習のエポック数などの設定を含む。
【0042】
処理部314は、情報処理装置100の各部を制御して、情報処理装置100の各種動作を制御する。また、処理部314は、敵対的サンプル生成部316、敵対的トレーニング制御部318、及び形式検証制御部320による動作を制御して、ロバストネス向上処理を実現する。
【0043】
敵対的サンプル生成部316は、データ取得部310が取得した学習データを敵対的サンプル化する。そして、敵対的サンプル生成部316は、生成した敵対的サンプルと、オリジナルの分類クラスを示す正解データとを関連付けた、敵対的トレーニング用の学習データを生成する。また、敵対的サンプル生成部316は、データ取得部310が取得したテストデータも敵対的サンプル化する。そして、敵対的サンプル生成部316は、敵対的トレーニングによって生成されたニューラルネットワークのテスト時に用いるテストデータとして、敵対的サンプル化したデータと、テストデータの正解データとを関連付ける。敵対的サンプル生成部316は、生成した敵対的トレーニング用の学習データやテストデータを、例えば敵対的サンプルデータ332としてストレージ208に格納する。
【0044】
敵対的トレーニング制御部318は、敵対的サンプル生成部316によって生成された敵対的トレーニング用の学習データと、ユーザ設定取得部312によって取得されたユーザ設定と、モデルデータとに基づいて、敵対的トレーニングを実行する。また、敵対的トレーニング制御部318は、設定されたエポック数や正解率に到達することによって敵対的トレーニングを終了すると、敵対的トレーニング用のテストデータを用いて、トレーニングされたニューラルネットワークがどの程度誤分類をしないかを評価する。処理部314は、敵対的トレーニング用のテストデータを用いた評価の結果が一定の正解率を超えない場合には、再び敵対的トレーニングを実行するようにして、敵対的トレーニング用のテストデータを用いた評価結果が一定の正解率を超えるまで繰り返してもよい。
【0045】
形式検証制御部320は、敵対的トレーニング制御部318の敵対的トレーニングによって得られた重み係数を用いるニューラルネットワークにおいて、特定データからの一定のノルム内に敵対的サンプルが存在しないことを検証(判定)する。このとき、形式検証制御部320は、敵対的サンプル化されていない学習データ又はテストデータを用いて検証を行う。処理部314は、ロバストネスの制約を満たすデータの割合が事前に設定されている値よりも大きくなった場合に形式検証の処理を終了し、そうでない場合には条件を変更した敵対的トレーニングを行うようにしてもよい。形式検証制御部320は、形式検証の完了したモデルのデータにラベルを付けて、モデルデータ334としてストレージ208に格納してもよい。
【0046】
モデル配置部322は、電子デバイス101からの要求に応じて又は情報処理装置100の管理者の操作に応じて、形式検証の完了したモデルのデータを電子デバイス101に送信し、モデルデータを電子データにデプロイさせる。
【0047】
学習データ及びテストデータ330は、オリジナルの正解データを含む学習データ、及びオリジナルのテストデータを含む。
図11には、学習データ及びテストデータ330のデータ構造の一例を示している。学習データ及びテストデータ330は、データIDと、画像データと、正解ラベルと、データ種別とを含む。データIDは、データの識別子を示す。画像データは、学習データ及びテストデータの画像データである。
図11の例では、これらの画像データは、例えば、ディープフェイク技術を用いて生成された実在しない人物の顔画像と、実在する人物の顔画像のいずれかの画像データである。この正解ラベルは、オリジナルの正解データに対応する。例えば、画像データがディープフェイク技術で生成された画像であれば「1」を示し、実在する人物の顔画像である場合には「0」を示す。当業者には明らかであるが、ニューラルネットワークが人物名を識別する場合には、正解ラベルは画像データと対応する人名などとなる。正解ラベルは、このデータ構造から独立したOne-Hotエンコーディングの形式で記載されてもよい。データ種別は、画像データが学習データとして用いられるのか、テストデータとして用いられるのかを示す。データ種別は、学習データとテストデータの比率が一定になるように、学習のたびにランダムに種別が割り当てられてもよいし、固定であってもよい。また、データ種別の列を設けること無く、テストデータと学習データのついてデータ構造を有してもよい。
【0048】
敵対的サンプルデータ332は、敵対的サンプル化された敵対的トレーニング用の学習データやテストデータを含む。
図12には、敵対的サンプルデータ332のデータ構造の一例を示している。敵対的サンプルデータ332は、データIDと、画像データと、正解ラベルと、データ種別と、生成アルゴリズムと、ノルムとを含む。なお、
図12には示していないが、敵対的サンプルを生成した際のオリジナルの画像データのデータIDを更に含んでもよい。データIDは、敵対的サンプル化された画像の識別子であり、画像データは、敵対的サンプル化された画像データである。正解ラベルは、オリジナルの画像データの正解ラベルの値をそのまま示す。すなわち、ディープニューラルネットワークは、敵対的サンプルを入力した際であっても、誤分類すること無くオリジナルの正解ラベルを導くように学習される。データ種別は、学習データ及びテストデータ330と同様である。生成アルゴリズムは、敵対的サンプルを生成するアルゴリズムの別を示す。アルゴリズムの種別は、様々なものであってよいが、例えばFGSM(Fast Gradient Sign Method)、C&W Attack、JSMA(Jacobian Saliency Map Attack)、Boundary Attackなどであってよい。ノルムは、敵対的サンプルを作成する際に適用されるノイズの大きさを示す。なお、ノルムは、例えば、ワッサースタイン距離などの、敵対的サンプルのノイズの大きさを示す他の指標を用いてもよい。
【0049】
モデルデータ334は、予め取得された或いは通信端末102から送信された、敵対的トレーニングを適用したいモデルのデータ(ニューラルネットワークの構成に関するハイパーパラメータ)を含む。また、敵対的トレーニング制御部318によって生成された敵対的トレーニングの行われたモデルのデータ(ニューラルネットワークの構成に関するハイパーパラメータ)及び重み係数のデータを含む。また、モデルデータ334は、形式検証制御部320による形式検証の完了した、ラベル付けされたモデルのデータを含んでもよい。
図13には、モデルデータ334のデータ構造の一例を示している。モデルデータ334は、モデルIDと、重み係数と、ハイパーパラメータと、生成日時と、生成ステージとを含む。モデルIDは、ニューラルネットワークを識別する識別子である。重み係数は、ニューラルネットワークが学習されたときに得られる重み係数である。ハイパーパラメータは、レイヤ数、各レイヤのノード数、ネットワークの構造(例えばCNNであること、カーネルサイズなど)等のデータを含んでよい。生成日時は、モデルが生成された日時を表す。生成ステージは、例えば、形式検証を完了したモデルであるか、敵対的トレーニングが終了したモデルであるか、オリジナルのモデルであるかなどを識別するための情報である。
【0050】
<情報処理装置におけるロバストネス向上処理の一連の動作>
次に、情報処理装置100において実行されるロバストネス向上処理の一連の動作について、
図10を参照して説明する。また、本処理は、プロセッサ204がストレージ208に格納されるコンピュータプログラムをメモリ202に展開、実行することにより実現される。以下の説明では、説明を容易にするために各ステップの処理主体をまとめてプロセッサ204として説明するが、処理内容に応じて処理部314などの各部が対応する処理を実行する。
【0051】
まずプロセッサ204は、学習データとニューラルネットワークの構成(ハイパーパラメータ等)を取得(S1001)したうえで、ユーザ設定を取得する(S1002)。S1001の処理とS1002の処理の順序は逆であってもよいし、通信端末102から両方のデータを一度に取得してもよい。ユーザ設定は、ノルム(ノイズの大きさ)、敵対的サンプル生成アルゴリズム、敵対的トレーニングを実行する際のエポック数、敵対的トレーニングを実行する際の学習率、敵対的トレーニングを実行する際の学習アルゴリズム、敵対的トレーニング用のテストデータを評価する際の閾値などを含む。ユーザ設定は、更に、形式検証の際にどのデータのノルム内に敵サンプルが存在しないかを指定する設定を含んでよい。敵対的トレーニングを実行する際の学習アルゴリズムは、勾配降下法、Adamなどのアルゴリズムの指定を含む。
【0052】
更に、プロセッサ204は、敵対的サンプルを生成する(S1003)。敵対的サンプルの生成は、ユーザ設定に含まれる敵対的サンプル生成アルゴリズムに基づいて実行される。ユーザ設定に当該アルゴリズムの指定が無い場合には、敵対的サンプル生成アルゴリズムとして取り得るアルゴリズムを順に実行して、様々なアルゴリズムで生成された敵対的サンプルを生成してもよい。このようにすれば、特定の特性の敵対的サンプルだけでなく様々な敵対的サンプルに対してロバストネスを向上させた敵対的トレーニングを実施することができる。
【0053】
プロセッサ204は、S1001で取得された学習データとS1002で取得されたユーザ設定とに基づいて、敵対的トレーニングを実行する(S1004)。プロセッサ204は、敵対的サンプルとオリジナルの分類クラスを示す正解データとを含む学習データを用いてニューラルネットワークを学習させる敵対的トレーニングを実行する。なお、敵対的トレーニングを行う前のオリジナルのニューラルネットワークは、敵対的サンプルを入力されると、オリジナルの分類クラスの代わりに誤分類クラスを出力する。
【0054】
次に、プロセッサ204は、S1001で取得されたテストデータを用いて、敵対的トレーニングで生成されたニューラルネットワークの動作をテストし(S1005)、テストにより求めた正解率が閾値以上であるかを判定する(S1006)。正解率が閾値以上でない場合、プロセッサ204は、処理をS1007に進めて、設定値のうちの1つの設定値を変更し(S1007)、変更した設定値でS1003~1005の処理を再び実行する。
【0055】
S1007では、プロセッサ204は、設定値のうち1つの設定値を変更する。例えば、S1006においてテストデータによるテストが所定以上の正解率に届かずに失敗した場合には、ノルムの大きさ(すなわち1つの設定値)を小さくするようにしてよい。この例とは別に、例えば、ユーザ設定として、敵対的トレーニングのテストデータに対する正解率だけを設定し、S1007が実行されるたびにノルムの大きさ(すなわち1つの設定値)を小さい値から大きな値へ変更するようにしてもよい。このようにすれば、S1003~S1005の処理によって敵対的トレーニングのテスト結果が所定の正解率を超えるようにしたまま、ノルムの大きさを徐々に大きくすることができる。これは、敵対的トレーニングによってロバストネスを向上させた場合に、敵対的サンプルではないオリジナルのサンプルに対する正解率が低下するトレードオフに対して、ディープニューラルネットワークの正解率を維持したまま、可能な限りノルムを大きくした(つまりロバストネスを向上させた)敵対的トレーニングを実現することができる。この場合、S1006では、プロセッサ204は、所定以上の正解率を維持したまま所定の回数だけノルムの変更を繰り返したかを判定し、イエスであれば、S1008に処理を進めるようにしてもよい。なお、上記の方法により、一の敵対的サンプル生成アルゴリズムで所定の正解率を超える最大のノルムの敵対的トレーニングを実現することができ、他の複数の敵対的サンプル生成アルゴリズムでも同様に所定の正解率を超える最大のノルムの敵対的トレーニングを実施してこれらの敵対的トレーニングにより生成されるディープニューラルネットワークのなかから、正解率又は敵対的サンプル生成アルゴリズムの特性の観点からユーザが所望のディープニューラルネットワークを選択可能な構成であってもよい。
【0056】
そのほか、プロセッサ204は、複数のユーザ設定のうちの他の設定を固定したまま設定の1つを変更しながら、S1003~1005の処理を繰り返してよい。例えば、敵対的サンプル生成アルゴリズムを変えながら処理を繰り返すことで、様々な特性の敵対的サンプルが生成され、それらの敵対的サンプルに対して敵対的トレーニングを実行することで、生成されるディープニューラルネットワークのロバストネスを向上させることができる。また、敵対的トレーニングを実行する際のエポック数、敵対的トレーニングを実行する際の学習率、敵対的トレーニングを実行する際の学習アルゴリズムなどは、どの設定値を選択すれば最善の結果を得ることができるかを把握することは難しいことが多い。このため、勘や経験で設定するよりも、プロセッサがこれらの設定値を徐々に変更して得られる結果から最善の結果を得ることができる値を特定できる方がユーザにとってメリットが大きい。
【0057】
一方、プロセッサ204は、正解率が閾値以上である場合、形式検証によるロバストネス評価を実行する(S1008)。なお、形式検証によるロバストネス評価は、公知の技術を用いて実現することができる。例えば、「Reluplex: An Efficient SMT Solver for Verifying Deep Neural Networks」と題する公知文献(Guy Kats, 外3名、2017年5月19日、URL: https://arxiv.org/pdf/1702.01135.pdf)に記載される、ディープニューラルネットワークに対するプロパティを証明する技術を用いることができる。プロセッサ204は、敵対的トレーニングで生成されたディープニューラルネットワークを対象として、オリジナルの学習データやテストデータの所定のノルム(敵対的トレーニングで指定したノルムの値)内において出力層の最大出力が正解データのクラス以外となるようなプロパティをクエリとしてあたえることで、このプロパティに該当する入力の組み合わせが存在しないことを形式検証する。存在しないという結果の場合、プロセッサ204は、敵対的トレーニングによって学習された重み係数を用いるニューラルネットワークにおいて、特定のデータの所定のノイズの範囲内に敵対的サンプルが存在しないことを証明したこととなる。プロパティに該当する入力の組み合わせが見つかった場合は、その特定のデータの所定のノルム内において敵対的サンプルが存在したことを証明したこととなる。なお、この場合、存在した入力の組み合わせを反例として返す。形式検証において、ロバストネスとなるデータ割合が事前に設定されている値よりも大きい場合、プロセッサ204は、特定のデータの所定のノイズの範囲内に敵対的サンプルが存在しないと判定して、ロバストネス向上処理を終了する。
【0058】
以上説明したように、本実施形態は、敵対的トレーニングの特性に関するユーザ設定を取得したうえで、敵対的サンプルとオリジナルの分類クラスを示す正解データとを含む学習データとユーザ設定を用いて、ニューラルネットワークを学習させる敵対的トレーニングを実行する。なお、敵対的トレーニングを行う前のニューラルネットワークは、敵対的サンプルを入力されると、オリジナルの分類クラスの代わりに誤分類クラスを出力する。そして、形式検証アルゴリズムを実行することにより、敵対的トレーニングによって学習された重み係数を用いるニューラルネットワークにおいて、特定のデータの所定のノイズの範囲内に敵対的サンプルが存在しないことを判定する。このようにすることで、敵対的トレーニングを用いる場合に、特定のロバストネスを満たすことを予見可能なディープニューラルネットワークを生成可能になる。
【0059】
発明は上記の実施形態に制限されるものではなく、発明の要旨の範囲内で、種々の変形・変更が可能である。
【符号の説明】
【0060】
100…情報処理装置、101…電子デバイス、102…通信端末、204…プロセッサ、202…メモリ、310…データ取得部、312…ユーザ設定取得部、314…処理部、322…モデル配置部