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

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

▶ インターナショナル・ビジネス・マシーンズ・コーポレーションの特許一覧

特許7695008ディープニューラルネットワーク(DNN)を保護するための方法、装置、およびコンピュータプログラム製品(DNNに対する敵対的攻撃の検出)
<>
  • 特許-ディープニューラルネットワーク(DNN)を保護するための方法、装置、およびコンピュータプログラム製品(DNNに対する敵対的攻撃の検出) 図1
  • 特許-ディープニューラルネットワーク(DNN)を保護するための方法、装置、およびコンピュータプログラム製品(DNNに対する敵対的攻撃の検出) 図2
  • 特許-ディープニューラルネットワーク(DNN)を保護するための方法、装置、およびコンピュータプログラム製品(DNNに対する敵対的攻撃の検出) 図3
  • 特許-ディープニューラルネットワーク(DNN)を保護するための方法、装置、およびコンピュータプログラム製品(DNNに対する敵対的攻撃の検出) 図4
  • 特許-ディープニューラルネットワーク(DNN)を保護するための方法、装置、およびコンピュータプログラム製品(DNNに対する敵対的攻撃の検出) 図5
  • 特許-ディープニューラルネットワーク(DNN)を保護するための方法、装置、およびコンピュータプログラム製品(DNNに対する敵対的攻撃の検出) 図6
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2025-06-10
(45)【発行日】2025-06-18
(54)【発明の名称】ディープニューラルネットワーク(DNN)を保護するための方法、装置、およびコンピュータプログラム製品(DNNに対する敵対的攻撃の検出)
(51)【国際特許分類】
   G06F 21/57 20130101AFI20250611BHJP
   G06N 20/00 20190101ALI20250611BHJP
   G06N 3/08 20230101ALI20250611BHJP
【FI】
G06F21/57
G06N20/00
G06N3/08
【請求項の数】 18
(21)【出願番号】P 2021184715
(22)【出願日】2021-11-12
(65)【公開番号】P2022080285
(43)【公開日】2022-05-27
【審査請求日】2024-04-11
(31)【優先権主張番号】16/950,684
(32)【優先日】2020-11-17
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】390009531
【氏名又は名称】インターナショナル・ビジネス・マシーンズ・コーポレーション
【氏名又は名称原語表記】INTERNATIONAL BUSINESS MACHINES CORPORATION
【住所又は居所原語表記】New Orchard Road, Armonk, New York 10504, United States of America
(74)【代理人】
【識別番号】100112690
【弁理士】
【氏名又は名称】太佐 種一
(72)【発明者】
【氏名】チャン、ジアロン
(72)【発明者】
【氏名】グ、ゾンシュ
(72)【発明者】
【氏名】ジャン、ジヨン
(72)【発明者】
【氏名】ストックリン、フィリップ、マーク
(72)【発明者】
【氏名】モロイ、マイケル、イアン
【審査官】川原 光司
(56)【参考文献】
【文献】米国特許出願公開第2019/0238568(US,A1)
【文献】特開2020-160743(JP,A)
【文献】米国特許出願公開第2020/0005133(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 21/12-21/16
G06F 21/50-21/57
G06N 20/00-20/20
G06N 3/00-3/126
(57)【特許請求の範囲】
【請求項1】
コンピュータによって、1つ以上の中間層を含む複数の層を有するディープニューラルネットワーク(DNN)を保護するための方法であって、前記コンピュータが、
一の中間層に関連する活性化の表現を記録することと、
1つ以上の表現の各々について、分類器を訓練することと、
各表現について前記分類器を訓練した後に、少なくとも1つ以上の前記表現から訓練された当該分類器を用いて、前記ディープニューラルネットワークに対する敵対的入力を検出することと、
最後のDNN層における1つ以上のニューロンを不活性化することと、
前記最後のDNN層における1つ以上の残りのニューロンからの値のセットを用いて、追加の分類器を生成することと、
前記追加の分類器を用いて、前記敵対的入力の検出を確認することと、
を含む、方法。
【請求項2】
前記分類器を訓練することは、ラベルアレイのセットを生成することを含み、当該ラベルアレイは、前記中間層に関連する前記活性化の表現に対するラベルのセットである、
請求項1に記載の方法。
【請求項3】
前記分類器を使用することは、前記ラベルアレイのそれぞれのセットを外れ値検出モデルに集約することをさらに含む、
請求項2に記載の方法。
【請求項4】
前記外れ値検出モデルは、所与の入力が前記敵対的入力であるか否かを示す指標と共に予測を生成する、
請求項3に記載の方法。
【請求項5】
前記敵対的入力を検出した場合に、アクションを取ることをさらに含む、
請求項4に記載の方法。
【請求項6】
前記アクションは、通知を発行すること、敵対的入力と判定される1つ以上の追加の入力を敵対者が行うことを防止すること、前記DNNに関連する実装システムを保護するアクションを取ること、当該DNNを保持または強化するアクションを取ること、のいずれかである、
請求項5に記載の方法。
【請求項7】
プロセッサと、
コンピュータメモリと、を含む装置であって、当該コンピュータメモリは、1つ以上の中間層を含む複数の層を有するディープニューラルネットワーク(DNN)を保護するために前記プロセッサによって実行されるコンピュータプログラム命令を保持し、当該コンピュータプログラム命令は、
一の中間層に関連する活性化の表現を記録し、
1つ以上の前記表現の各々について、分類器を訓練し、
前記訓練後に、少なくとも1つ以上の前記表現から訓練された前記分類器を用いて、前記ディープニューラルネットワークに対する敵対的入力を検出し、
最後のDNN層における1つ以上のニューロンを不活性化し、
前記最後のDNN層における1つ以上の残りのニューロンからの値のセットを用いて、追加の分類器を生成し、
前記追加の分類器を用いて、前記敵対的入力の検出を確認するように構成されている、
装置。
【請求項8】
前記分類器を訓練することは、ラベルアレイのセットを生成することを含み、当該ラベルアレイは、前記中間層に関連する前記活性化の表現に対するラベルのセットである、
請求項に記載の装置。
【請求項9】
前記分類器を使用するように構成されている前記コンピュータプログラム命令は、前記ラベルアレイのそれぞれのセットを外れ値検出モデルに集約するように構成されたコンピュータプログラム命令をさらに含む、
請求項に記載の装置。
【請求項10】
前記コンピュータプログラム命令は、前記外れ値検出モデルを用いて、所与の入力が前記敵対的入力であるか否かを示す指標と共に予測を生成するように構成されたコンピュータプログラム命令をさらに含む、
請求項に記載の装置。
【請求項11】
前記コンピュータプログラム命令は、前記敵対的入力を検出した場合に、アクションを取るように構成されたコンピュータプログラム命令をさらに含む、
請求項10に記載の装置。
【請求項12】
前記アクションは、通知を発行すること、敵対的入力と判定される1つ以上の追加の入力を敵対者が行うことを防止すること、前記DNNに関連する実装システムを保護するアクションを取ること、当該DNNを保持または強化するアクションを取ること、のいずれかである、
請求項11に記載の装置。
【請求項13】
1つ以上の中間層を含む複数の層を有するディープニューラルネットワーク(DNN)を保護するためにデータ処理システムにおいて用いられる非一時的なコンピュータ可読媒体内のコンピュータプログラム製品であって、当該コンピュータプログラム製品はコンピュータプログラム命令を保持し、当該コンピュータプログラム命令は当該データ処理システムによって実行されることで、
一の中間層に関連する活性化の表現を記録し、
1つ以上の前記表現の各々について、分類器を訓練し、
前記訓練後に、少なくとも1つ以上の前記表現から訓練された前記分類器を用いて、前記ディープニューラルネットワークに対する敵対的入力を検出し、
最後のDNN層における1つ以上のニューロンを不活性化し、
前記最後のDNN層における1つ以上の残りのニューロンからの値のセットを用いて、追加の分類器を生成し、
前記追加の分類器を用いて、前記敵対的入力の検出を確認するように構成されている、
コンピュータプログラム製品。
【請求項14】
前記分類器を訓練することは、ラベルアレイのセットを生成することを含み、当該ラベルアレイは、前記中間層に関連する前記活性化の表現に対するラベルのセットである、
請求項13に記載のコンピュータプログラム製品。
【請求項15】
前記分類器を使用するように構成されている前記コンピュータプログラム命令は、前記ラベルアレイのそれぞれのセットを外れ値検出モデルに集約するように構成されたコンピュータプログラム命令をさらに含む、
請求項14に記載のコンピュータプログラム製品。
【請求項16】
前記コンピュータプログラム命令は、前記外れ値検出モデルを用いて、所与の入力が前記敵対的入力であるか否かを示す指標と共に予測を生成するように構成されたコンピュータプログラム命令をさらに含む、
請求項15に記載のコンピュータプログラム製品。
【請求項17】
前記コンピュータプログラム命令は、前記敵対的入力を検出した場合に、アクションを取るように構成されたコンピュータプログラム命令をさらに含む、
請求項16に記載のコンピュータプログラム製品。
【請求項18】
前記アクションは、通知を発行すること、敵対的入力と判定される1つ以上の追加の入力を敵対者が行うことを防止すること、前記DNNに関連する実装システムを保護するアクションを取ること、当該DNNを保持または強化するアクションを取ること、のいずれかである、
請求項17に記載のコンピュータプログラム製品。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は情報セキュリティ全般に関し、特に、機械学習モデルを不正な複製、配布、および使用から保護することに関する。
【背景技術】
【0002】
最先端の人工知能(AI)サービスの主要な要素である機械学習技術は、画像認識、音声認識、自然言語処理などの様々なタスクにおいて、人間に匹敵する能力を提供できるほどに成功を遂げている。大手テクノロジー企業のほとんどが、ディープニューラルネットワーク(DNN)を主要な要素として、各々のAI製品やサービスを構築している。製品レベルの深層学習モデルの構築には、大量の訓練データ、強力なコンピューティングリソース、および人間の専門知識が必要であり、簡単な作業ではない。例えば、Googleのモデル「Inception v4」は、画像分類を目的に設計された最先端の畳み込みニューラルネットワーク(CNN)であるが、このニューラルネットワークからモデルを生成するには、数百万枚の画像からなる画像データセットを使用して、複数のGPUを稼働して数日から数週間かかる。さらに、深層学習モデルの設計には、機械学習に関する相当な専門知識が必要であり、モデルのアーキテクチャの定義やモデルのハイパーパラメータの選択において何度も試行錯誤を繰り返す必要がある。
【0003】
DNNは多くのタスクにおいて優れた性能を発揮するが、近年の研究により、DNNは敵対的攻撃(adversarial attacks)に脆弱であることが明らかになっている。敵対的攻撃とは、DNNの入力データに小さな摂動(perturbations)(「敵対的例(adversarial examples)とも呼ばれる」)を意図的に加えて、誤分類(misclassifications)を引き起こす行為を指す。このような攻撃は、標的となるDNNが自動運転、ロボティクス、視覚的認証・識別などの重要なアプリケーションに使用されている場合に特に危険である。一例として、自動運転用DNNモデルに対する敵対的な攻撃により、DNNが一時停止の標識を速度制限の標識と誤認識し、危険な運転状態に陥ったことが報告されている。
【0004】
また、敵対的訓練(adversarial training)、入力の前処理、異なるモデル強化(hardening)法など、敵対的攻撃に対して複数の防御手段が提案されている。これらの防御手段により、攻撃者が敵対的例を生成することは難しくなるものの、これらの防御手段にも依然として脆弱性が存在しており、敵対的攻撃の成功を許してしまう場合があることが示されている。
【発明の概要】
【発明が解決しようとする課題】
【0005】
このように、本技術分野においては、DNNを標的とした敵対的攻撃に対処する技術が求められている。
【課題を解決するための手段】
【0006】
本明細書に開示する技術は、一般的な敵対的攻撃の性質、すなわち、敵対的攻撃は通常、DNNにおける最終的なターゲットラベルのみを保証し、中間表現(intermediate representations)のラベルは保証されないという性質に着目したものである。本開示によれば、この不整合(inconsistency)を、DNNに対する敵対的攻撃が存在することを示す指標として利用する。これに関連して本開示はさらに、敵対的攻撃は最後の(出力)DNN層についても、対象の敵対的ラベル(adversary label)のみを保証し、他の中間(または二次的)予測間の相関関係は無視するという性質に着目する。このさらなる不整合を、敵対的攻撃のさらなる(もしくは二次的な)指標(または確認)として利用する。したがって、本明細書に開示する手法は、DNN自体におけるラベルおよび(必要に応じて)相関関係の整合性を検査し、敵対的攻撃の指標を提供可能であることが好ましい。
【0007】
一般的な使用例において、DNNは、実装システム(deployed system)に関連付けられる。本開示のさらなる態様によれば、敵対的攻撃を検出した場合、実装システムに関して所与のアクションが取られる。所与のアクションの内容は各実装に固有のものであるが、一例として、通知/警告を発行すること、敵対的入力と判定される入力を敵対者が行うことを防止すること、実装システムを保護するアクションを取ること、DNNを再訓練するかまたはその他の方法で保護(強化)するアクションを取ること、敵対者をサンドボックス化(sandboxing)することなどが含まれる。
【0008】
以上、本開示の主題に関連する特徴の一部を概説したが、これらの特徴は、例示的なものに過ぎない。後述するように、本開示の主題を異なる方法で適用するか、または本開示の主題に変更を加えることによっても、他の多くの効果を達成することができる。
【図面の簡単な説明】
【0009】
本開示の主題およびその利点のより完全な理解を目的として、以下、添付図面を参照して本開示を詳細に説明する。
【0010】
図1図1は、例示的な実施形態の諸態様を実施可能な、分散型データ処理環境の一例を示すブロック図である。
図2図2は、例示的な実施形態の諸態様を実施可能な、データ処理システムの一例を示すブロック図である。
図3図3は、一連の層を有するDNNを示す図である。
図4図4は、実装システムのコントローラのフロントエンド(front-end)として機能するDNNを示す図である。
図5図5は、本開示の技術による、隠れ層(hidden layer)の整合性を評価することにより外れ値検出モデル(outlier detection model)を生成するためのプロセスフローである。
図6図6は、本開示の好適な実施形態による、外れ値検出モデルを構築するための好適な技術を詳細に示した図である。
【発明を実施するための形態】
【0011】
添付図面、特に図1および図2に、本開示の例示的な実施形態を実施可能なデータ処理環境の例を示す。なお、図1および図2は例示に過ぎず、本開示の主題の態様または実施形態を実施可能な環境に関して、いかなる限定も明示または示唆するものではない。本発明の要旨および範囲から逸脱することなく、図示の環境に対して多くの変更が可能である。
【0012】
添付図面を参照すると、図1は、例示的な実施形態の諸態様を実施可能な分散型データ処理システムの一例を表したものである。分散型データ処理システム100は、例示的な実施形態の諸態様を実施可能なコンピュータのネットワークを含むことができる。分散型データ処理システム100は、分散型データ処理システム100内で相互に接続された種々の装置およびコンピュータ間の通信リンクを提供する手段である、少なくとも1つのネットワーク102を含む。ネットワーク102は、有線、無線通信リンク、光ファイバケーブルなどの接続を含むことができる。
【0013】
図示の例において、サーバ104およびサーバ106は、記憶ユニット108と共にネットワーク102に接続されている。また、ネットワーク102には、クライアント110、112、114も接続されている。これらのクライアント110、112、114は例えば、パーソナルコンピュータやネットワークコンピュータなどであってよい。図示の例において、サーバ104は、ブートファイル、オペレーティングシステムイメージ、アプリケーションなどのデータを、クライアント110、112、114に提供する。図示の例において、クライアント110、112、114は、サーバ104のクライアントである。分散型データ処理システム100は、不図示の追加のサーバ、クライアント、および他の装置を含んでもよい。
【0014】
図示の例において、分散型データ処理システム100はインターネットであり、ネットワーク102は、伝送制御プロトコル/インターネットプロトコル(TCP/IP)スイートを使用して相互に通信する世界中のネットワークおよびゲートウェイの集合体を表す。インターネットの中心には、データおよびメッセージを送信しあう何千もの民間用、政府用、教育機関用等のコンピュータシステムからなる主要ノードまたはホストコンピュータ間の高速データ通信の基幹回線(backbone)が存在する。もちろん、分散型データ処理システム100は、例えばイントラネット、ローカルエリアネットワーク(LAN)、広域ネットワーク(WAN)など、複数の異種のネットワークを含んで実装してもよい。上述したように、図1は、本開示の主題の異なる実施形態に対して構造上の限定を行うものではなく、例示であることが意図される。したがって、図1に示す具体的な構成要素は、本発明の例示的な実施形態を実施可能な環境に関して限定をもたらすものではない。
【0015】
次に、図2を参照すると、例示的な実施形態の諸態様を実施可能なデータ処理システムの一例としてのブロック図が示されている。データ処理システム200は、図1のクライアント110などのコンピュータの一例であり、その中に、本開示の例示的な実施形態の処理を実行するためのコンピュータ使用可能コードまたは命令を記憶することができる。
【0016】
図2は、例示的な実施形態を実施可能なデータ処理システムのブロック図である。データ処理システム200は、図1のサーバ104またはクライアント110などのコンピュータの一例であり、その中に、例示的な実施形態における処理を実施するためのコンピュータ使用可能プログラムコードまたは命令を記憶することができる。図示の例では、データ処理システム200は通信ファブリック202を含む。通信ファブリック202は、プロセッサユニット204、メモリ206、永続ストレージ208、通信ユニット210、入力/出力(I/O)ユニット212、およびディスプレイ214の間の通信を可能にする。
【0017】
プロセッサユニット204は、メモリ206にロード可能なソフトウェアの命令を実行する機能を果たす。プロセッサユニット204は、具体的な実装態様に応じて、1つまたは複数のプロセッサのセットであってもよいし、マルチプロセッサコアであってもよい。さらに、プロセッサユニット204は、単一のチップ上にメインプロセッサが二次プロセッサと共に存在する1つ以上の異種プロセッサシステム(heterogeneous processor systems)を用いて実装してもよい。別の例として、プロセッサユニット204は、同種の複数のプロセッサを含む対称型マルチプロセッサ(SMP)システムであってもよい。
【0018】
メモリ206および永続ストレージ208は、記憶装置の一例である。記憶装置は、一時的もしくは永続的またはその両方の形式で情報を記憶可能な任意のハードウェアである。これらの例において、メモリ206は例えば、ランダムアクセスメモリまたは他の任意の適切な揮発性もしくは不揮発性の記憶装置とすることができる。永続ストレージ208は、具体的な実装態様に応じて、種々の形態を取ることができる。例えば、永続ストレージ208は、1つ以上のコンポーネントまたは装置を含むことができる。例えば、永続ストレージ208は、ハードドライブ、フラッシュメモリ、書き換え可能な光ディスク、書き換え可能な磁気テープ、またはこれらの何らかの組み合わせとすることができる。永続ストレージ208により使用される媒体は、取り外し可能であってもよい。例えば、取り外し可能なハードドライブを永続ストレージ208に用いてもよい。
【0019】
通信ユニット210は、これらの例において、他のデータ処理システムまたは装置との通信を可能にする。これらの例において、通信ユニット210は、ネットワークインタフェースカードである。通信ユニット210は、物理通信リンクおよび無線通信リンクのいずれかまたは両方を用いて、通信を可能にすることができる。
【0020】
入力/出力ユニット212は、データ処理システム200に接続可能な他の装置とのデータの入出力を可能にする。例えば、入力/出力ユニット212は、キーボードおよびマウスを介したユーザ入力の接続部を提供することができる。さらに、入力/出力ユニット212は、プリンタに出力を送信することができる。ディスプレイ214は、ユーザに情報を表示する機構を提供する。
【0021】
オペレーティングシステムおよびアプリケーションまたはプログラムに対する命令は、永続ストレージ208に記憶される。これらの命令は、メモリ206にロードしてプロセッサユニット204が実行することができる。メモリ206などのメモリ内に配置可能なコンピュータ実装命令を用いて、種々の実施形態のプロセスをプロセッサユニット204により行うことができる。これらの命令は、プログラムコード、コンピュータ使用可能プログラムコード、またはコンピュータ可読プログラムコードと呼ばれ、プロセッサユニット204内のプロセッサにより読み出して実行することができる。種々の実施形態におけるプログラムコードは、種々の物理的または有形のコンピュータ可読媒体(メモリ206または永続ストレージ208など)において実現することができる。
【0022】
プログラムコード216は、選択的に取り外し可能なコンピュータ可読媒体218に機能的形態(functional form)で配置され、プロセッサユニット204による実行のためにデータ処理システム200にロードまたは転送することができる。これらの例において、プログラムコード216およびコンピュータ可読媒体218は、コンピュータプログラム製品220を構成する。一例として、コンピュータ可読媒体218は、例えば光ディスクまたは磁気ディスクなどの有形の形態とすることができる。この場合、コンピュータ可読媒体218は、永続ストレージ208の一部であるドライブまたは他の装置内に挿入または載置され、永続ストレージ208の一部であるハードドライブなどの記憶装置への転送が行われる。また、有形の形態の場合、コンピュータ可読媒体218は、データ処理システム200に接続されるハードドライブ、サムドライブ、またはフラッシュメモリなどの永続ストレージの形態であってもよい。コンピュータ可読媒体218の有形の形態は、コンピュータ記録可能記憶媒体とも呼ばれる。いくつかの例において、コンピュータ記録可能媒体218は、取り外し可能でなくてもよい。
【0023】
あるいは、プログラムコード216は、コンピュータ可読媒体218からデータ処理システム200に、通信ユニット210への通信リンクを介して、もしくは入力/出力ユニット212との接続部を介して、またはその両方を介して転送してもよい。通信リンクもしくは接続部またはその両方は、図示の例において、物理的なものであってもよいし無線であってもよい。コンピュータ可読媒体は、プログラムコードを含む通信リンクまたは無線伝送などの、非有形媒体の形態であってもよい。データ処理システム200に関して図示した種々のコンポーネントは、種々の実施形態を実施可能な方式に対して構造上の限定を加えることを意図したものではない。データ処理システム200に関して図示したコンポーネントに追加される、またはそれに代わるコンポーネントを含むデータ処理システムによって、種々の例示的な実施形態を実施可能である。図2に示す他のコンポーネントも、図示の例から変更することができる。一例として、データ処理システム200内の記憶装置は、データを記憶可能な任意のハードウェア装置でよい。メモリ206、永続ストレージ208、およびコンピュータ可読媒体218は、有形の形態の記憶装置の例である。
【0024】
別の例において、バスシステムを用いて通信ファブリック202を実現することができ、バスシステムは、システムバスや入力/出力バスなどの1つ以上のバスで構成することができる。もちろん、バスシステムは、当該バスシステムに接続される種々のコンポーネントまたは装置間のデータ転送を可能にするものであれば、いずれの適切な種類のアーキテクチャを用いて実現してもよい。さらに、通信ユニットは、データの送受信に用いられる、モデムやネットワークアダプタなどの1つ以上の装置を含むことができる。さらに、メモリは例えば、通信ファブリック202内に存在し得るインタフェースおよびメモリコントローラハブに見られるような、メモリ206またはキャッシュとすることができる。
【0025】
本発明の動作を実行するためのコンピュータプログラムコードは、Java、スモールトーク、C++などのオブジェクト指向プログラミング言語と、および「C」プログラミング言語や類似のプログラミング言語などの従来の手続き型プログラミング言語を含む、1つ以上のプログラミング言語を任意に組み合わせて記述することができる。プログラムコードは、スタンドアロン型ソフトウェアパッケージとして完全にユーザのコンピュータ上で、または部分的にユーザのコンピュータ上で実行可能である。あるいは、部分的にユーザのコンピュータ上でかつ部分的にリモートコンピュータ上で、または、完全にリモートコンピュータもしくはサーバ上で実行可能である。後者の場合、リモートコンピュータは、LANやWANを含む任意の種類のネットワークを介してユーザのコンピュータに接続してもよいし、外部コンピュータに(例えば、インターネットサービスプロバイダを使用してインターネットを介して)接続してもよい。
【0026】
当業者であれば理解できるように、図1および2に示すハードウェアは、実装態様に応じて異なる場合がある。図1および2に示すハードウェアに加えて、またはこれらに代えて、フラッシュメモリ、同等の不揮発性メモリ、または光ディスクドライブなどの他の内部ハードウェアまたは周辺機器を使用してもよい。また、例示的な実施形態のプロセスは、本開示の主題の要旨および範囲から逸脱することなく、上述のSMPシステム以外のマルチプロセッサデータ処理システムに適用することもできる。
【0027】
記載内容から分かるように、本明細書で説明する技術は、図1に示すような標準的なクライアント-サーバの枠組み内で動作することができる。このような枠組みにおいて、クライアントマシンは、1つ以上の一連のマシン上で実行されるインターネットアクセス可能なウェブベースのポータルと通信する。エンドユーザは、当該ポータルにアクセスして対話することが可能なインターネット接続可能装置(例えば、デスクトップコンピュータ、ノートブックコンピュータ、インターネット対応モバイル装置など)を操作する。各クライアントマシンまたはサーバマシンは一般的には、ハードウェアおよびソフトウェアを含む図2に示すようなデータ処理システムであり、これらのエンティティは、インターネット、イントラネット、エクストラネット、プライベートネットワーク、または他のいずれかの通信媒体もしくは通信リンクなどのネットワーク上で互いに通信する。データ処理システムは一般的に、1つ以上のプロセッサ、オペレーティングシステム、1つ以上のアプリケーション、および1つ以上のユーティリティを含む。データ処理システム上のアプリケーションは、(限定はされないが)特にHTTP、SOAP、XML、WSDL、UDDI、およびWSFLのサポートを含む、ウェブサービスのネイティブサポートを提供する。SOAP、WSDL、UDDIおよびWSFLに関する情報は、これらの規格の開発および管理を担うワールドワイドウェブコンソーシアム(W3C)から入手可能であり、HTTPおよびXMLに関するさらなる情報は、インターネット技術タスクフォース(IETF)から入手可能である。なお、これらの規格には精通しているものとする。
【0028】
(ディープニューラルネットワーク)
さらなる背景情報を説明すると、深層学習とは、特徴表現(feature representation)を手作業で作成する必要なく、訓練データから階層的なデータ表現を自動的に学習する機械学習フレームワークの一種である。深層学習は、ディープニューラルネットワーク(DNN)と呼ばれる学習アーキテクチャをベースにしており、線形パーセプトロン(linear perceptrons)、畳み込み(convolutions)、非線形活性化関数(non-linear activation functions)など、多くの基本的なニューラルネットワークユニットで構成されている。これらのネットワークユニットは(数個から1000個以上の)層として構成され、複雑な概念を認識するために生データから直接訓練される。下位のネットワーク層は、低レベルの特徴(low-level features)(例えば、画像認識では、画像の角やエッジなど)に対応することが多く、上位の層は、高レベルで意味論的に意味のある(semantically-meaningful)特徴に対応することが多い。
【0029】
具体的には、DNNは、生の訓練データ表現(raw training data representation)を入力とし、パラメトリック関数(parametric function)を介してそれを出力にマッピングする。パラメトリック関数は、ネットワークアーキテクチャと、当該ネットワークアーキテクチャにおいて使用されるすべてのニューラルネットワークユニットの集合的なパラメータ(collective parameters)とによって定義される。各ネットワークユニットは、接続ニューロンから入力ベクトルを受け取り、次の層に渡される値を出力する。例えば、線形ユニット(linear unit)は、その重みパラメータと、前の層からの接続ニューロンの出力値との間のドット積(dot product)を出力する。訓練データ中の複雑な構造をモデル化するDNNの能力を高めるために、様々なタイプのネットワークユニットが開発され、線形活性化(linear activations)と組み合わせて使用されている。これらのネットワークユニットは例えば、非線形活性化ユニット(双曲線正接(hyperbolic tangent)、シグモイド、正規化線形ユニット(Rectified Linear Unit)など)、最大プーリング(max pooling)、およびバッチ正規化(batch normalization)などである。ニューラルネットワークの目的がデータを有限のクラスセット(set of classes)に分類することである場合、出力層における活性化関数は通常、ソフトマックス関数である。これは、クラスセットの予測クラス分布(predicted class distribution)と見なすことができる。
【0030】
DNNのネットワーク重みを訓練する前に、最初のステップとしてモデルのアーキテクチャを決定するが、これには、少なからずドメインの専門知識(domain expertise)やエンジニアリング努力が必要なことが多い。所与のネットワークアーキテクチャに関して、ネットワークの挙動はネットワークパラメータθの値によって決まる。より正式には、D={x,z i=1を訓練データとすると(ここで、z∈[0,n-1]がxの正解ラベル(ground truth label)である)、損失関数(loss function)に基づいて、予測クラスラベルと正解ラベルとの差を最小化するように、ネットワークパラメータが最適化される。現在、DNNの訓練手法として最も広く使われているのは逆伝播(back-propagation)アルゴリズムであり、出力層からネットワーク全体に予測損失の勾配(gradient)を伝播させることで、ネットワークパラメータを更新する。最も一般的に用いられているDNNは、ニューロン間の接続がループを形成しないフィードフォワード型ニューラルネットワーク(feed-forward neural networks)である。他のDNNの種類としては、長・短期記憶(LSTM)などのリカレント型ニューラルネットワーク(recurrent neural networks)があり、これらの種類のネットワークは連続データ(sequential data)のモデル化に有効である。
【0031】
形式的には、DNNは、Xを入力空間、Yをカテゴリセットを表す出力空間とした関数g:X→Yとして文献(Xuら)に記載されている。Xの要素であるサンプルxに関して、g(x)=f(FL-1(...((f(x))))。各fは層を表し,Fは最後の出力層である。最後の出力層は、隠れ空間(hidden space)から出力空間(クラスラベル)へのマッピングを、合計で1になる範囲[0,1]内の実数のベクトルを出力するソフトマックス関数によって作成する。ソフトマックス関数の出力は、C個の異なる可能な出力クラスに対する入力xの確率分布(probability distribution)である。
【0032】
図3は、人工ニューラルネットワークと呼ばれることもある代表的なDNN300を示す図である。図示するように、DNN300は相互に接続されたノード(ニューロン)群であり、各ノード303は人工ニューロンを表し、線305は1つの人工ニューロンの出力から別の人工ニューロンの入力への接続を表している。DNNでは、各ニューロンの出力は、その入力の合計の非線形関数によって計算される。ニューロン間の接続はエッジと呼ばれる。ニューロンとエッジは通常、学習の進行に応じて調整される重みを有する。重みは、接続部における信号の強度を増減させる。図示するように、DNN300においては通常、ニューロンは各層に集約されており、異なる層が、入力に対して異なる変換を行うことができる。また、図示するように、信号(一般的には実数)は、第1の層(入力層)302から、1つ以上の中間層(隠れ層)304を通過して、最後の層(出力層)306に到達する。隠れ層304は、入力層302から特徴を抽出する機能を実現する。図3では2つの隠れ層が示されているが、隠れ層の数はこれに限定されない。一般的に、隠れ層の数(および各層におけるニューロンの数)は、ネットワークによって対処される問題に応じて異なる。隠れ層に含まれるニューロンの数が多すぎると、ネットワークが過剰適合(overfit)して入力パターンを記憶してしまうため、ネットワークの汎化(generalize)能力が制限されてしまう可能性がある。一方、隠れ層のニューロンの数が少なすぎると、ネットワークは入力空間の特徴を表現することができず、これによっても、ネットワークの汎化能力が制限されてしまう。総じて、ネットワークが小さいほど(ニューロンや重みが少ないほど)、優れたネットワークになる。
【0033】
DNN300は、訓練データセットを用いて訓練され、その結果、訓練済みDNNに対応する重みのセットが生成される。形式的には、訓練セットはN個のラベル付き入力を含む。ここで、i番目の入力は、(x,y)と表される。訓練時には、各層に関連するパラメータがランダムに初期化され,入力サンプル(x,y)がネットワークに入力される。ネットワークの出力は、i番目のサンプルに関連する予測g(x)である。DNNを訓練するため、予測出力g(x)とその真のラベルyとの差を損失関数J(g(x),y)でモデル化し、これをネットワークに逆伝播させてモデルのパラメータを更新する。
【0034】
図4は、実装システム402のフロントエンドとして実装されたDNN400を示す図である。一例として、実装システムは、電気自動車(EV)404の自動運転システムである。自動運転システムは、様々なコンポーネントやシステムが複雑に組み合わされたものであり、人間のドライバーの代わりに電子機器と機械によって知覚、意思決定、および自動車の運転が行われるものである。この中で、DNN400は一般的には、知覚(例えば、道路および交通の視覚化)および、自動車のアクティブ運転中の意思決定に用いられる。なお、この使用例はDNNを用いた実装システムの例示に過ぎず、本開示を限定するものと解釈すべきではない。
【0035】
(脅威モデル)
本明細書において、「敵対的入力(adversarial input)」とは、標的となる分類器(DNN)から誤った出力を生成することを目的として、敵対者が行う入力のことである。敵対的攻撃は、Szegedyらによって、ニューラルネットワークが敵対的例の影響を受けやすいことが発見されて以来、研究の対象となっている。例えば、GoodfellowらはFGSM(Fast Gradient Sign Method)を提案している。これは、コスト関数を線形化し、Linftyの制限下でコストを最大化する摂動を求めて誤分類を引き起こす、非標的型攻撃(untargeted attack)である。Moosavi-Dezfooliらは、DeepFoolを提案している。これは、Lノルムを最小化することで敵対的例を探索する非標的型手法である。Papernotらは、JSMA(Jacobian-based Saliency Map Approach)を発表している。これは、DNNモデルのヤコビアン勾配行列(Jacobian gradient matrix)を使用して、敵対的Saliencyスコアの高い画像ピクセルを繰り返し摂動することにより、対象の敵対的画像を生成する手法である。この攻撃の目的は、標的のクラスに関するピクセルのSaliencyスコアを高めることである。最近では、Carliniらが、Lノルムを利用した新たな標的型の勾配ベース敵対的手法を開発した。この手法は、最小限の摂動を用いた既存の手法よりもはるかに高い成功率を示している。
【0036】
(敵対的攻撃を検出するためのフレームワーク)
以上を背景に、本開示の技術について説明する。上述したように、本技術は、一般的な敵対的攻撃の性質、すなわち、敵対的攻撃は通常、DNNにおける最終的なターゲットラベルのみを保証し、中間表現のラベルは保証されないという性質に着目したものである。本開示によれば、この不整合を、DNNに対する敵対的攻撃が存在することを示す指標として利用する。これに関連して本開示はさらに、敵対的攻撃は最後の(出力)DNN層についても、対象の敵対的ラベルのみを保証し、他の中間(または二次的)予測間の相関関係は無視するという性質に着目する。一般的に、中間予測とは、DNN内の中間層(多くの場合、隠れ層)に存在する予測のことである。このさらなる不整合を、敵対的攻撃のさらなる(もしくは二次的な)指標(または確認)として利用する。したがって、本検出技術は、攻撃指標を提供するためにDNN自体を検査することが好ましい。
【0037】
一般的な使用例において、DNNは、実装システムに関連付けられる。敵対的攻撃を検出した場合、実装システムに関して所与のアクションが取られる。所与のアクションの内容は各実装に固有のものであるが、一例として、通知を発行すること、敵対的入力と判定される入力を敵対者が行うことを防止すること、実装システムを保護するアクションを取ること、DNNを再訓練するかまたはその他の方法で保護(強化)するアクションを取ること、敵対者をサンドボックス化することなどが含まれる。
【0038】
図5は、本開示に係る基本技術のプロセスフローを示す図である。本技術は、DNNおよびそれに関連付けられた実装システムの存在を前提としている。一の実施形態において、DNN、より一般的には実装システムに対する敵対的攻撃を検出する方法は、DNNの訓練中に開始される。ステップ500にて、すべて(またはほぼすべて)の訓練データセットをネットワークに入力することによって訓練が開始される。ステップ502にて、DNNの複数の層のそれぞれの中間表現(層単位の活性化(layer-wise activations))が記録される。なお、各層ごとに中間表現を記録することは必須ではなく、特定の層の中間表現で十分な場合がある。ステップ504にて、一の実施形態では、各中間表現について、別個(separate)の機械学習モデル(分類器)が訓練される。機械学習モデルは、各中間表現のラベルを決定する。機械学習モデルは、k近傍法(k-NN:k-nearest neighbor)や他のDNNなどの分類アルゴリズムによって実装することができる。本実施形態では、ステップ504にて、各中間表現に対するラベルアレイのそれぞれのセットが生成される。各ラベルアレイは、異なる入力に対して機械学習モデルによって割り当てられた、中間表現に対するラベルのセットからなる。中間表現に対してそれぞれのラベルアレイが生成された後、ステップ506にて、ラベルアレイのそれぞれのセットを用いて、外れ値検出モデル(outlier detection model)を訓練する。外れ値検出モデルは、最終的なクラス予測および、敵対的入力の可能性の有無に関する指標を出力するように訓練される。ステップ508にて、関連付けられた実装システムを想定して、所与の入力または発生に関して敵対的攻撃が検出されるか否かを判定するテストを実行することができる。敵対的攻撃が検出されない場合、アクションは実行されない。ステップ508の結果が敵対的攻撃を示している場合、処理はステップ510に移動し、敵対的攻撃の検出に応じてアクションを実行する。これにより、基本的な処理が完了する。
【0039】
別の実施形態では、DNNがすでに訓練された後に、層単位の活性化が計算され、別個の機械学習モデルが訓練される。その場合、上述のステップ500は省略してもよい。
【0040】
上述の技術は、機械学習モデルが、最終的なターゲットラベルと中間表現の(1つまたは複数の)ラベルとの間の不整合を評価してラベルアレイを生成することから、本明細書において、「ラベルの整合性を判定する」と呼ぶ場合がある。本明細書の手法はとりわけ、内部ラベルの整合性により、既知の技術(すなわち、敵対的訓練、入力の前処理、および異なるモデル強化法)における欠陥および計算上の非効率性を回避する、堅牢な敵対的攻撃検出方法が実現できるという利点がある。
【0041】
図6は、一例としての実施形態による、DNN600に対する上述のプロセスを示す図である。上述したように、DNN600は、訓練データセット602を受け取る。訓練データセット602によるDNNの訓練中に、1つ以上のモデル604が、内部活性化(internal activations)、すなわち、中間(隠れ)層のそれぞれの状態を評価することによって訓練される。上述したように、訓練自体はこの手法において必須ではない。このように、また図示するように、DNNは第1の隠れ層(層1)を有し、当該層の内部活性化(状態)はモデル604Aによってモデル化されている。より正式には、各入力iに対して、ラベル配列[li1,li2,...lin]が生成される。ここで、linはn番目の層における入力iのラベルを表す。この例では、DNNは第2の隠れ層(第2層)も有しており、当該層の内部活性化(状態)はモデル604Bによってモデル化されている。必須ではないが、モデル604Aおよび604Bは、集約モデル(aggregate model)または分類器606に統合されることが好ましい。当該分類器は、図5のプロセスフローに示した上述の外れ値検出モデルに対応する。分類器606は、元の訓練データセット602および1つ以上のモデル604によって定義されたラベルから派生的に訓練されており、その出力として分類を提供する。上述したように、一般的に分類は、特定のデータ入力に対する(内部状態の集約的な予測の)予測であるとともに、その入力が敵対的入力であるか否かの指標でもある。
【0042】
上述したように、DNNは通常、多数の中間(隠れ)層を含む。各中間層は、関連するモデル604を有していてもよいが、これは必須ではない。好適な手法において、モデル606が提供する予測および敵対的入力の分類のために、個々のモデルも同様に用いてよい。言い換えれば、分類器は、モデル604に埋め込まれた集約的な内部活性化に関する集約的知識(aggregate internal activation knowledge)に基づいて動作することが好ましい。
【0043】
また、図6にはさらなる最適化手法が示されている。本明細書においては、これを相関整合性チェック(correlation consistency check)と呼ぶこともある。特に、DNNの最後の層には、摂動に対して過度に敏感であると判定される、または考えられる1つ以上のニューロンが存在する場合がある。したがって、この例示的な実施形態によれば、DNN600の最後の層におけるニューロン608の1つが、そのようなニューロンであると仮定される。この最適化手法によれば、当該ニューロンは不活性化/無視され、最後の層における残りのニューロンの値を、別個の分類器を訓練するため(または、分類器606を補強するため)に使用し、敵対的入力に対するさらなる相関整合性チェックを実現する。基本的に、この分類器は、他のラベル間の相関関係に基づいて入力データを分類する。実際のラベルが訓練済み分類器からのラベルと異なる場合、その入力データは敵対的攻撃である可能性が高い。
【0044】
したがって、上述したように、本明細書に記載の技術は、(元の訓練データセットを用いて訓練された)中間(層)表現のラベルを使用して、敵対的攻撃を検出することが好ましい。そして、本技術は、最終的なターゲットラベルと(訓練後に存在する)中間表現のラベルとの間の不整合が、DNNが敵対的入力を受信したか否かに関する有用な指標となるという概念を利用している。さらに、敵対的攻撃は最後のDNN層についても対象の敵対的ラベルのみを保証するので、本技術においては、特定のニューロンによって敵対的攻撃に関するさらなる指標が提供できるように、(最後の層における)他のラベル間の相関関係も検査することが好ましい。このように、本明細書に記載の技術では、層間でのモデルラベルの整合性、および(場合によっては)最後の層におけるラベル間の相関整合性610を、敵対的攻撃の指標として活用する。
【0045】
より一般的には、本明細書に記載の技術は、既存の防御システムを補完することができる。
【0046】
本開示の1つ以上の態様(例えば、外れ値検出モデルを生成するための最初のDNN訓練)はサービスとして、例えばサードパーティによって実装されてもよい。本開示の主題は、クラウドベースのコンピューティング、データストレージ、または関連サービスを提供するデータセンタ内で、またはデータセンタに関連して実装されてもよい。
【0047】
一般的な使用例において、セキュリティ情報イベント管理(SIEM)やその他のセキュリティシステムには、訓練済みモデルとそれに関連する外れ値検出モデルに対してAPIクエリを発行すると共に、これらクエリに対する応答(敵対的入力の指標となる応答を含む)を受信することが可能なインタフェースが関連付けられている。この目的のために、図1に示すようなクライアントサーバアーキテクチャを使用してもよい。
【0048】
本明細書に記載の手法は、オンデマンドで実行されるように設計されてもよいし、自動化された方法で実行されるように設計されてもよい。
【0049】
モデルの訓練や敵対的入力の識別に用いられるサービスへのアクセスは、任意の適切なリクエスト/レスポンスプロトコルやワークフローを介して行うことができる(APIの有無は問わない)。
【0050】
本開示に記載の機能は、その全部または一部が、ハードウェアプロセッサによって実行されるソフトウェアベースの機能など、スタンドアロン型手法として実装されていてもよいし、マネージドサービス(SOAP/XMLインタフェースを介したウェブサービスを含む)として利用可能であってもよい。なお、本明細書に記載の具体的なハードウェアおよびソフトウェア実装の詳細は、例示を目的としているに過ぎず、本開示の主題の範囲を限定することを意図したものではない。
【0051】
より一般的には、本開示の主題に関連するコンピュータ装置は、各々がハードウェアおよびソフトウェアを含む(図2に示すような)データ処理システムであり、これらのエンティティは、インターネット、イントラネット、エクストラネット、プライベートネットワーク、または他の通信媒体もしくは通信リンクなどのネットワーク上で互いに通信する。データ処理システム上のアプリケーションは、(限定はされないが)特にHTTP、FTP、SMTP、SOAP、XML、WSDL、UDDIおよびWSFLのサポートを含む、ウェブサービスおよび他の既知のサービスならびにプロトコルのネイティブサポートを提供する。SOAP、WSDL、UDDIおよびWSFLに関する情報は、これらの規格の開発および管理を担うワールドワイドウェブコンソーシアム(W3C)から入手可能であり、HTTP、FTP、SMTPおよびXMLに関するさらなる情報は、インターネット技術タスクフォース(IETF)から入手可能である。なお、これらの規格には精通しているものとする。
【0052】
本明細書に記載の方式は、単純なn-tierアーキテクチャ、ウェブポータル、連合システム(federated systems)など、種々のサーバサイドアーキテクチャ内で、またはそれらと組み合わせて実装することができる。また、本明細書に記載の技術は、疎結合の(loosely-coupled)サーバ(「クラウド」ベースのものを含む)環境で実施してもよい。
【0053】
さらにより一般的には、本明細書に記載の主題は、完全にハードウェアの実施形態、完全にソフトウェアの実施形態、またはハードウェアおよびソフトウェアの両要素を含む実施形態の形をとることができる。好ましい実施形態において、機能はソフトウェアで実装される。ソフトウェアは、一例としてファームウェア、常駐ソフトウェア、マイクロコードなどを含む。さらに、上述したように、アイデンティティ・コンテキストベースのアクセス制御機能は、コンピュータまたは任意の命令実行システムによって使用されるかまたはこれらに関連するプログラムコードを提供するコンピュータ使用可能媒体またはコンピュータ可読媒体からアクセス可能な、コンピュータプログラム製品の形態をとることができる。本明細書の記載において、コンピュータ使用可能媒体またはコンピュータ可読媒体は、命令実行システム、機器、または装置によって使用されるかまたはこれらに関連するプログラムを収容または記憶可能な任意の機器とすることができる。媒体は、電子、磁気、光学、電磁気、赤外線、または半導体システム(または機器もしくは装置)とすることができる。コンピュータ可読媒体の例としては、半導体またはソリッドステートメモリ、磁気テープ、取り外し可能フロッピーディスク、RAM、ROM、剛性磁気ディスクおよび光ディスクが挙げられる。光ディスクの例としては、CD-ROM、CD-R/W、DVDが挙げられる。コンピュータ可読媒体は、有形の物品である。
【0054】
代表的な実施形態において、本明細書に記載の技術は、専用コンピュータ内で、好ましくは、1つ以上のプロセッサによって実行されるソフトウェアで実装される。ソフトウェアは、これら1つ以上のプロセッサに関連する1つ以上のデータストアまたはメモリ内に維持される。ソフトウェアは、1つ以上のコンピュータプログラムとして実装することができる。この専用ハードウェアおよびソフトウェアは全体として、上述した機能を構成する。
【0055】
上記では、特定の実施形態により行われる動作の特定の順序を説明したが、かかる順序は例示に過ぎず、他の実施形態において、これらの動作を異なる順序で行ってもよいし、一部の動作を組み合わせてもよいし、一部の動作が重複していてもよい。明細書において特定の実施形態に言及する場合、当該実施形態が特定の特徴、構造、または特性を含む可能性があることを示すが、必ずしもすべての実施形態が当該特定の特徴、構造、または特性を含んでいる必要はない。
【0056】
最後に、システムの所定のコンポーネントを個別に説明してきたが、当業者であれば理解できるように、所定の命令、プログラムシーケンス、コード部分、実行スレッドなどにおいて、機能の一部を組み合わせたり、共有したりしてもよい。
【0057】
本明細書に記載の技術は、DNNを用いて自身に関するコマンドおよび制御操作を容易にする実装システムを改善するのみならず、他の技術または技術分野、例えば、深層学習システムや他のセキュリティシステムをも改善する。
【0058】
本明細書に記載の技術は、DNNモデルでの使用に限定されない。本手法を、内部処理状態(すなわち、隠れ重み)を有する、サポートベクタマシン(SVM)やロジスティック回帰(LR)モデルなどの任意の機械学習モデルに拡張してもよい。また、本手法を、決定木ベースのモデルにおける使用に拡張してもよい。
【0059】
本開示の主題を説明してきたが、特許請求の範囲は次の通りである。
図1
図2
図3
図4
図5
図6