(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2024-07-24
(54)【発明の名称】モデルの予測と最適化との同時実行のための敵対的攻撃の軽減
(51)【国際特許分類】
G06N 3/094 20230101AFI20240717BHJP
G06N 20/00 20190101ALI20240717BHJP
【FI】
G06N3/094
G06N20/00
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2023573542
(86)(22)【出願日】2022-06-21
(85)【翻訳文提出日】2023-11-29
(86)【国際出願番号】 CN2022100045
(87)【国際公開番号】W WO2022268058
(87)【国際公開日】2022-12-29
(32)【優先日】2021-06-25
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
(71)【出願人】
【識別番号】390009531
【氏名又は名称】インターナショナル・ビジネス・マシーンズ・コーポレーション
【氏名又は名称原語表記】INTERNATIONAL BUSINESS MACHINES CORPORATION
【住所又は居所原語表記】New Orchard Road, Armonk, New York 10504, United States of America
(74)【代理人】
【識別番号】100112690
【氏名又は名称】太佐 種一
(74)【代理人】
【識別番号】100120710
【氏名又は名称】片岡 忠彦
(74)【復代理人】
【識別番号】110000420
【氏名又は名称】弁理士法人MIP
(72)【発明者】
【氏名】オング、ユーヤ、ジェレミー
(72)【発明者】
【氏名】バラカルド エンジェル、ナタリー
(72)【発明者】
【氏名】メガヘド、アリー
(72)【発明者】
【氏名】チュバ、エブーベ
(72)【発明者】
【氏名】ゾウ、イー
(57)【要約】
敵対的機械学習モデルの予測および最適化を提供する手法が開示される。本手法は、予測と最適化との同時実行フレームワーク内のモデルへの入力から、タスク最適化モデルが敵対的攻撃によって引き起こされる誤った決定を下すことを防ぐ敵対的訓練の最適量を決定する防御者用の訓練方法を含み得る。基本的に、本手法は、敵対的訓練を介して堅牢なモデルを訓練することになる。堅牢な訓練モデルに基づいて、ユーザは、入力によって作成された機械学習予測からの所与の入力に基づいて(タスク・ベースの最適化モデル内の敵対的ノイズによる)潜在的な脅威を軽減することができる。
【特許請求の範囲】
【請求項1】
敵対的機械学習モデルの予測および最適化を提供するためのコンピュータ実装方法であって、前記コンピュータ実装方法が、
訓練モデルに関連付けられた入力データのセットを受信することであって、前記入力データが、訓練データセット、テスト・データセット、タスク定義コスト関数、可能なアクションの範囲、過去のデータセット、および事前訓練モデルの重みを含む、前記受信することと、
脅威の仮定および前記可能なアクションの範囲に基づいて前記テスト・データセットからテスト最適アクション値を決定することと、
前記訓練データセットの出力特徴および前記可能なアクションの範囲に基づいて前記訓練データセットから訓練最適アクション値を決定することと、
前記テスト最適アクション値と前記訓練最適アクション値との間の第1の距離を計算することと、
前記過去のデータセットに基づいて予測損失関数を計算することと、
前記可能なアクションの範囲と前記訓練最適アクション値との間の第2の距離を計算することと、
前記可能なアクションの範囲および前記テスト・データセットからの出力予測に基づいて前記タスク定義コスト関数を計算することと、
前記第1の距離、前記予測損失関数、前記第2の距離、および前記タスク定義コスト関数に基づいて総損失を算出することと、
前記総損失関数の勾配を算出することと、
前記訓練モデルに関連付けられた1つまたは複数のパラメータに対して誤差逆伝播法を実行することと、
収束が生じたかどうかを判定することと、
前記収束が生じたことに応答して、最適なアクション、最適な学習済みモデル・パラメータ、および最適なタスク定義目的関数を出力することと
を含む、コンピュータ実装方法。
【請求項2】
前記訓練データセットが、1つまたは複数の入力特徴、1つまたは複数の出力特徴、および1つまたは複数のアクション値を含む、請求項1に記載のコンピュータ実装方法。
【請求項3】
テスト最適アクション値を決定することが、
予測の集合体を導出するために、前記入力テスト・セットが与えられた場合に、前記可能なアクションの範囲のそれぞれについて順伝播推論を実行すること
をさらに含む、請求項1に記載のコンピュータ実装方法。
【請求項4】
テスト最適アクション値を決定することが、
タスク定義の最適化関数、様々な過去のアクション、および過去の入力値に基づいて前記最適なアクションについて解くこと
をさらに含む、請求項1に記載のコンピュータ実装方法。
【請求項5】
前記テスト最適アクション値と前記訓練最適アクション値との間の差分の絶対値を使用することによって前記第1の距離を計算する、請求項1に記載のコンピュータ実装方法。
【請求項6】
前記第1の距離を計算することが、前記テスト最適アクション値と前記訓練最適アクション値との間のワッサースタイン距離に基づく、請求項1に記載のコンピュータ実装方法。
【請求項7】
前記テスト最適アクション値と前記訓練最適アクション値との差分の絶対値を使用して前記第2の距離を計算する、請求項1に記載のコンピュータ実装方法。
【請求項8】
前記第2の距離を計算することが、前記テスト最適アクション値と前記訓練最適アクション値との間のワッサースタイン距離に基づく、請求項1に記載のコンピュータ実装方法。
【請求項9】
【数1】
によって定義される前記予測損失関数に対応する重みを利用して前記総損失を計算する、請求項1に記載のコンピュータ実装方法。
【請求項10】
【数2】
によって定義される前記タスク定義コスト関数に対応する重みを利用して前記総損失を計算する、請求項1に記載のコンピュータ実装方法。
【請求項11】
収束が生じたかどうかを判定することが、増分カウンタを使用して反復回数をカウントすることと、前記増分カウンタからの値を終了閾値と比較することとをさらに含む、請求項1に記載のコンピュータ実装方法。
【請求項12】
敵対的機械学習モデルの予測および最適化を提供するためのコンピュータ・プログラム製品であって、前記コンピュータ・プログラム製品が、
1つまたは複数のコンピュータ可読記憶媒体と、前記1つまたは複数のコンピュータ可読記憶媒体に記憶されたプログラム命令とを備え、前記プログラム命令が、
訓練モデルに関連付けられた入力データのセットを受信するためのプログラム命令であって、前記入力データが、訓練データセット、テスト・データセット、タスク定義コスト関数、可能なアクションの範囲、過去のデータセット、および事前訓練モデルの重みを含む、前記プログラム命令と、
脅威の仮定および前記可能なアクションの範囲に基づいて前記テスト・データセットからテスト最適アクション値を決定するためのプログラム命令と、
前記訓練データセットの出力特徴および前記可能なアクションの範囲に基づいて前記訓練データセットから訓練最適アクション値を決定するためのプログラム命令と、
前記テスト最適アクション値と前記訓練最適アクション値との間の第1の距離を計算するためのプログラム命令と、
前記過去のデータセットに基づいて予測損失関数を計算するためのプログラム命令と、
前記可能なアクションの範囲と前記訓練最適アクション値との間の第2の距離を計算するためのプログラム命令と、
前記可能なアクションの範囲および前記テスト・データセットからの出力予測に基づいて前記タスク定義コスト関数を計算するためのプログラム命令と、
前記第1の距離、前記予測損失関数、前記第2の距離、および前記タスク定義コスト関数に基づいて総損失を算出するためのプログラム命令と、
前記総損失関数の勾配を算出するためのプログラム命令と、
前記訓練モデルに関連付けられた1つまたは複数のパラメータに対して誤差逆伝播法を実行するためのプログラム命令と、
収束が生じたかどうかを判定するためのプログラム命令と、
前記収束が生じたことに応答して、最適なアクション、最適な学習済みモデル・パラメータ、および最適なタスク定義目的関数を出力するためのプログラム命令と
を含む、コンピュータ・プログラム製品。
【請求項13】
前記訓練データセットが、1つまたは複数の入力特徴、1つまたは複数の出力特徴、および1つまたは複数のアクション値を含む、請求項12に記載のコンピュータ・プログラム製品。
【請求項14】
テスト最適アクション値を決定するためのプログラム命令が、
予測の集合体を導出するために、前記入力テスト・セットが与えられた場合に、前記可能なアクションの範囲のそれぞれについて順伝播推論を実行するためのプログラム命令をさらに含む、請求項12に記載のコンピュータ・プログラム製品。
【請求項15】
前記第1の距離を計算するためのプログラム命令が、前記テスト最適アクション値と前記訓練最適アクション値との間のワッサースタイン距離に基づく、請求項12に記載のコンピュータ・プログラム製品。
【請求項16】
前記第2の距離を計算するためのプログラム命令が、前記テスト最適アクション値と前記訓練最適アクション値との間のワッサースタイン距離に基づく、請求項12に記載のコンピュータ・プログラム製品。
【請求項17】
敵対的機械学習モデルの予測および最適化を提供するためのコンピュータ・システムであって、前記コンピュータ・システムが、
1つまたは複数のコンピュータ・プロセッサと、
1つまたは複数のコンピュータ可読記憶媒体と、
前記1つまたは複数のコンピュータ可読記憶媒体に記憶された、前記1つまたは複数のコンピュータ・プロセッサのうちの少なくとも1つによって実行されるプログラム命令と
を含み、前記プログラム命令が、
訓練モデルに関連付けられた入力データのセットを受信するためのプログラム命令であって、前記入力データが、訓練データセット、テスト・データセット、タスク定義コスト関数、可能なアクションの範囲、過去のデータセット、および事前訓練モデルの重みを含む、前記プログラム命令と、
脅威の仮定および前記可能なアクションの範囲に基づいて前記テスト・データセットからテスト最適アクション値を決定するためのプログラム命令と、
前記訓練データセットの出力特徴および前記可能なアクションの範囲に基づいて前記訓練データセットから訓練最適アクション値を決定するためのプログラム命令と、
前記テスト最適アクション値と前記訓練最適アクション値との間の第1の距離を計算するためのプログラム命令と、
前記過去のデータセットに基づいて予測損失関数を計算するためのプログラム命令と、
前記可能なアクションの範囲と前記訓練最適アクション値との間の第2の距離を計算するためのプログラム命令と、
前記可能なアクションの範囲および前記テスト・データセットからの出力予測に基づいて前記タスク定義コスト関数を計算するためのプログラム命令と、
前記第1の距離、前記予測損失関数、前記第2の距離、および前記タスク定義コスト関数に基づいて総損失を算出するためのプログラム命令と、
前記総損失関数の勾配を算出するためのプログラム命令と、
前記訓練モデルに関連付けられた1つまたは複数のパラメータに対して誤差逆伝播法を実行するためのプログラム命令と、
収束が生じたかどうかを判定するためのプログラム命令と、
前記収束が生じたことに応答して、最適なアクション、最適な学習済みモデル・パラメータ、および最適なタスク定義目的関数を出力するためのプログラム命令と
を含む、コンピュータ・システム。
【請求項18】
テスト最適アクション値を決定するためのプログラム命令が、
予測の集合体を導出するために、前記入力テスト・セットが与えられた場合に、前記可能なアクションの範囲のそれぞれについて順伝播推論を実行するためのプログラム命令
をさらに含む、請求項17に記載のコンピュータ・システム。
【請求項19】
前記第1の距離を計算するためのプログラム命令が、前記テスト最適アクション値と前記訓練最適アクション値との間のワッサースタイン距離に基づく、請求項17に記載のコンピュータ・システム。
【請求項20】
前記第2の距離を計算するためのプログラム命令が、前記テスト最適アクション値と前記訓練最適アクション値との間のワッサースタイン距離に基づく、請求項17に記載のコンピュータ・システム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、一般に、機械学習に関し、より詳細には、タスク最適化のために敵対的訓練を活用することに関する。
【背景技術】
【0002】
現在、多くの機械学習モデルは、意思決定のための重要なコンポーネントの一部として、より大規模なシステムのコンテキスト内に統合されている。多くのアプリケーションには、何らかの機械学習(ML)モデルを介して予測する必要がある未確定パラメータがいくつか存在する。これらの予測は、続いて、いくらかの有用性を最大化するために/いくらかのコストを最小化するために実行する必要がある最適なアクションを推奨する何らかのタスク最適化モデルに入力される。具体的には、モデルの結果は、何らかの定義されたコスト関数を最小化するための最適化プロセスへの入力として使用される。
【0003】
最近では、サイバ攻撃が増加しており、そのような攻撃の一種は、敵対者(adversary)が、MLを適用するよう意図されたサンプルを修正することによってMLモデルから巧妙に逃れることである。例えば、入力データまたは入力モデルに対する何らかの敵対的攻撃によって画像が何らかの摂動を受けると、画像分類器が画像を誤分類する可能性がある。
【発明の概要】
【0004】
本発明の態様は、敵対的機械学習モデルの予測および最適化を提供するためのコンピュータ実装方法、コンピュータ・システム、ならびにコンピュータ・プログラム製品を開示する。コンピュータ実装方法は、1つまたは複数のコンピュータ・プロセッサによって実施されてもよく、訓練モデルに関連付けられた入力データのセットを受信することであって、入力データが、訓練データセット、テスト・データセット、タスク定義コスト関数、可能なアクションの範囲、過去のデータセット、および事前訓練モデルの重みを含む、受信することと、脅威の仮定および可能なアクションの範囲に基づいてテスト・データセットからテスト最適アクション値を決定することと、訓練データセットの出力特徴および可能なアクションの範囲に基づいて訓練データセットから訓練最適アクション値を決定することと、テスト最適アクション値と訓練最適アクション値との間の第1の距離を計算することと、過去のデータセットに基づいて予測損失関数を計算することと、可能なアクションの範囲と訓練最適アクション値との間の第2の距離を計算することと、可能なアクションの範囲およびテスト・データセットからの出力予測に基づいてタスク定義コスト関数を計算することと、第1の距離、予測損失関数、第2の距離、およびタスク定義コスト関数に基づいて総損失を算出することと、総損失関数の勾配を算出することと、訓練モデルに関連付けられた1つまたは複数のパラメータに対して誤差逆伝播法(backpropagation)を実行することと、収束が生じたかどうかを判定することと、収束が生じたことに応答して、最適なアクション、最適な学習済みモデル・パラメータ、および最適なタスク定義目的関数を出力することとを含んでもよい。
【0005】
本発明の別の実施形態によれば、コンピュータ・システムが提供される。コンピュータ・システムは、処理ユニットと、処理ユニットに結合され、命令が記憶されているメモリとを備える。命令は、処理ユニットによって実行されたときに、本発明の実施形態による方法の作用を実行する。
【0006】
本発明のさらに別の実施形態によれば、非一過性の機械可読媒体に有形的に記憶され、機械実行可能命令を含む、コンピュータ・プログラム製品が提供される。命令は、デバイス上で実行されたときに、本発明の実施形態による方法の作用をデバイスに実行させる。
【0007】
次に、本発明の好ましい実施形態を、単なる例として以下の図面を参照して説明する。
【図面の簡単な説明】
【0008】
【
図1】本発明の一実施形態による、100として指定された、敵対的訓練環境を示す機能ブロック図である。
【
図2A】本発明の一実施形態による、機械学習における既存の現行技術への追加コンポーネント、具体的には敵対的攻撃の軽減に関連する最適化および予測モデルを示す、200として指定された流れ図である。
【
図2B】本発明の一実施形態による、機械学習における既存の現行技術への追加コンポーネント、具体的には敵対的攻撃の軽減に関連する最適化および予測モデルを示す、200として指定された流れ図である。
【
図2C】本発明の一実施形態による、機械学習における既存の現行技術への追加コンポーネント、具体的には敵対的攻撃の軽減に関連する最適化および予測モデルを示す、200として指定された流れ図である。
【
図2D】本発明の一実施形態による、機械学習における既存の現行技術への追加コンポーネント、具体的には敵対的攻撃の軽減に関連する最適化および予測モデルを示す、200として指定された流れ図である。
【
図3】本発明の一実施形態による、300として指定された、敵対的コンポーネント111の動作を示す高レベルの流れ図である。
【
図4】本発明の一実施形態による、400として指定された、
図1の敵対的訓練環境内で敵対的コンポーネント111を実行することが可能なサーバ・コンピュータのコンポーネントのブロック図である。
【発明を実施するための形態】
【0009】
敵対的機械学習は、「欺瞞的な」(例えば、偽装されている、などの)入力を学習モデルに供給することによって学習モデルを欺こうとする機械学習技術である。その最も一般的な理由は、ML(機械学習)モデルに誤動作を引き起こすことである。(敵対的機械学習を利用した)サイバ攻撃を示す一例には、空港セキュリティ・アプリケーションが含まれ、このアプリケーションでは、システムは、MLモデルを通じてどの荷物がさらなる検査を受ける必要がある可能性が高いかを予測し、次いで、何らかの最適化モデルを介して、制約のある検査リソースを予測に応じて割り当てる。敵対者は、荷物の一部に敵対的パッチをプリントして、MLモデルにこれらの荷物を誤分類させ、次いで、どの荷物をより徹底的に検査するか(例えば、検査するか、または全く検査しないか、一部を検査するか、など)および検査にどの程度のリソースを割り当てるか(例えば、派遣すべき従業員または警察犬の数、など)について最適化モデルが誤った決定を下すように仕向ける。
【0010】
本発明の実施形態は、現在の先行技術における欠陥を認識し、その欠陥に対処するための手法を提供する。手法の1つは、予測と最適化との同時実行フレームワーク内のモデルへの入力から、タスク最適化モデルが敵対的攻撃によって引き起こされる誤った決定を下すことを防ぐ敵対的訓練の最適量を決定する、防御者(defender)のための訓練方法を含み得る。基本的に、本手法は、敵対的訓練を介して堅牢なモデルを訓練することになる。堅牢な訓練モデルに基づいて、ユーザは、入力によって作成された機械学習予測からの所与の入力に基づいて(タスク・ベースの最適化モデル内の敵対的ノイズによる)潜在的な脅威を軽減することができる。
【0011】
本手法は、以下の概略的なステップ、すなわち(i)コンピューティング・デバイスによって、訓練データセットを使用して機械学習モデルを事前訓練するステップと、(ii)コンピューティング・デバイスによって、汚染されている可能性のある機械学習モデルの敵対的訓練の1つまたは複数の敵対的訓練例を発見するステップと、(iii)コンピューティング・デバイスによって、機械学習モデルの1つまたは複数の汚染されていない訓練例を発見するステップと、(iv)コンピューティング・デバイスによって、発見された1つまたは複数の敵対的訓練例と発見された1つまたは複数の汚染されていない訓練例との間の差分ベクトルを算出するステップと、(v)コンピューティング・デバイスによって、機械学習モデルのさらなる訓練のために差分ベクトル内のさらなる訓練データを提供するステップとによって要約され得る。
【0012】
多くの機械学習モデルは、意思決定のための重要なコンポーネントの一部として、より大規模なシステムのコンテキスト内に統合されている。したがって、モデルの結果は、何らかの定義されたコスト関数を最小化するための最適化プロセスへの入力として使用される。従来、そのようなタスクは独立して行われ、ユーザは、最初に予測モデルを構築し、次いでモデルの出力を使用して予測に基づいて個別に決定値を生成する。実施形態は、2つの独立したコンポーネントとは対照的に、エンド・ツー・エンド・プロセスにおける予測モデルと最適化関数との複合最適化を考察する。
【0013】
現在の先行技術に関連する問題文について説明する。問題文:次の表記:F(X)=Pr(Y│X;θ)=Yを用いた機械学習モデルを考察する。この機械学習モデルは、何らかの定義されたアクションのためのより大規模なタスク最適化プロセスで使用される。このプロセスは、機械学習モデルの予測
【数1】
に基づいて、実行されるアクションZを決定し、さらに、G(Y,Z)によって定義されるいくらかのコストを伴う。
【0014】
論点は、「プロセスが、最も少ないコスト(すなわち、最適化)を伴う決定を下せるように、適切なモデル(すなわち、予測)をどのように学習するか?」ということである。形式的には、これは、
【数2】
として定義することができる。従来、主な焦点は、予測のみにあり、最適化が最適なタスク・アクションを識別することができるように予測が十分に良好であることを期待する(すなわち、これは、正確な予測が最適なタスク最適化アクションにつながると仮定する)。言い換えれば、ユーザは、予測と最適化という2つの問題を別々に順番に解決する。しかしながら、予測と最適化との同時実行フレームワークにおいて、本発明の実施形態は、これらの2つの最適化を複合的に実行することができる。
【0015】
敵対的攻撃を示す別の例は、衛星による画像認識の最適化に関連している。監視を実行して潜在的な脅威に対処するために衛星が配備されるシナリオについて考察する。当面のタスクが大規模であるという理由により、多くの場合、地上で見たものを分類する機械学習モデルが使用される。この分類子に加えて、部隊を配備して潜在的な脅威に対処するための最適化が実行される。敵対者は、衛星画像からの検出を避けるために、施設、車両、または物体の屋根に敵対的パッチを追加し、脅威を認識していない防御者にとって望ましくない結果をもたらす場合がある。
【0016】
さらに別の例では、例示の敵対的攻撃は、サプライ・チェーンの物流分野における需要の予想および最適化に関連している。重要な製品(すなわち、武器、航空機部品、医療機器)の在庫輸送および備蓄のためのサプライ・チェーン最適化では、ユーザが、所与の重要な製品の需要を予測するための予測モデルを構築し、タスクの最適化が、どの部品を輸送するか、輸送する各製品の最適な数量、およびこれらの製品の一部を購入する場合の価格など、様々な物流の最適化の決定を最適化する。ここで、敵対者は、最適ではない決定が行われるようにモデルに製品需要を誤って予測させることによって、サプライ・チェーン運営の物流業務を混乱させようとする可能性がある。敵対者は、予測モデルが予想を生成するために使用し得るデータ・ストリームを傍受し、誤りのあるノイズをデータ・ストリームに挿入する可能性があり、これは、不正確な予想、したがって次善の決定につながる。このような次善の決定または誤った決定が招いた結果は、企業に数十億ドルの損失をもたらし、その重要な製品に依存している他の主要産業に影響を与える可能性がある。
【0017】
本発明の他の実施形態は、現在の先行技術に対する改善、すなわち、i)予測と最適化との同時実行モデルのための敵対的訓練を介して堅牢なモデルを複合的に訓練するための方法を導入すること、および(ii)敵対者によって摂動された可能性のある入力によって作成された機械学習予測からの入力を考慮して、タスク・ベースの最適化モデル内の敵対的ノイズによってもたらされる潜在的な脅威をどのように軽減すべきかに関する計画を提供することに関する、以下の事実、潜在的な問題、潜在的なシナリオ、もしくは潜在的な分野、またはそれらの組合せのうちの1つまたは複数を認識することができる。
【0018】
本明細書における「一実施形態」、「実施形態」、「例示的な実施形態」などについての言及は、説明される実施形態が特定の特徴、構造、または特性を含み得ることを示すが、必ずしもそれぞれの実施形態が特定の特徴、構造、または特性を必ずしも含まなくてもよい。また、このような語句は、必ずしも同じ実施形態を指すとは限らない。さらに、特定の特徴、構造、または特性が、ある実施形態と関連して説明されるとき、明示的に説明されているかどうかに関係なく、他の実施形態と関連するそのような特徴、構造、または特性に影響を与えることは、当業者の知識の範囲内であると考えられる。
【0019】
図は概略的なものにすぎず、一定の縮尺で描かれていないことを理解されたい。また、全図を通して同じ参照番号が同じまたは類似の部分を示すために使用されていることも理解されたい。
【0020】
図1は、本発明の一実施形態による、100として指定された敵対的訓練環境を示す機能ブロック図である。
図1は、単に一実装形態の例示を提供するものであり、異なる実施形態が実装され得る環境に関していかなる制限も示唆するものではない。特許請求の範囲に記載された本発明の範囲から逸脱することなく、当業者によって、図示された環境に対して多くの修正が加えられてもよい。
【0021】
敵対的訓練環境100は、製品ネットワーク101、クライアント・コンピューティング・デバイス102、ターゲット・オブジェクト104、およびサーバ110を含む。
【0022】
ネットワーク101は、例えば、電気通信ネットワーク、ローカル・エリア・ネットワーク(LAN)、インターネットなどのワイド・エリア・ネットワーク(WAN)、またはこれら3つの組合せとすることができ、有線接続、無線接続、または光ファイバ接続を含むことができる。ネットワーク101は、音声情報、データ情報、および映像情報を含むマルチメディア信号を含むデータ信号、音声信号、もしくは映像信号またはそれらの組合せを受信および送信することが可能な1つもしくは複数の有線ネットワークもしくは無線ネットワークまたはその両方を含むことができる。一般に、ネットワーク101は、サーバ110と敵対的訓練環境100内の他のコンピューティング・デバイス(図示せず)との間の通信をサポートすることができる接続およびプロトコルの任意の組合せとすることができる。他のコンピューティング・デバイスには、一連のコンピューティング命令を実行することが可能な任意の電気機械デバイスが含まれ得るが、これに限定されないことに留意されたい。
【0023】
クライアント・コンピューティング・デバイス102は、機械学習サーバであり得るコンピューティング・デバイスであるか、または機械学習サーバにGUI(グラフィカル・ユーザ・インターフェース)を提供する(すなわち、ユーザからのコマンド/命令を受け入れる)コンピューティング・デバイスである。
【0024】
サーバ110およびクライアント・コンピューティング・デバイス102は、スタンドアロン・コンピューティング・デバイス、管理サーバ、ウェブ・サーバ、モバイル・コンピューティング・デバイス、またはデータを受信、送信、および処理することが可能な任意の他の電子デバイスもしくはコンピューティング・システムとすることができる。他の実施形態において、サーバ110およびクライアント・コンピューティング・デバイス102は、クラウド・コンピューティング環境などにおいて、複数のコンピュータをサーバ・システムとして利用するサーバ・コンピューティング・システムを表すことができる。別の実施形態において、サーバ110およびクライアント・コンピューティング・デバイス102は、ラップトップ・コンピュータ、タブレット・コンピュータ、ネットブック・コンピュータ、パーソナル・コンピュータ(PC)、デスクトップ・コンピュータ、携帯情報端末(PDA)、スマート・フォン、またはネットワーク101を介して敵対的訓練環境100内の他のコンピューティング・デバイス(図示せず)と通信することが可能な任意の他のプログラマブル電子デバイスとすることができる。別の実施形態において、サーバ110およびクライアント・コンピューティング・デバイス102は、敵対的訓練環境100内でアクセスされるときにシームレスなリソースの単一のプールとして作用するクラスタ化されたコンピュータおよびコンポーネント(例えば、データベース・サーバ・コンピュータ、アプリケーション・サーバ・コンピュータなど)を利用するコンピューティング・システムを表す。
【0025】
本発明の実施形態は、サーバ110上またはクライアント・コンピューティング・デバイス102上に存在することができる。サーバ110は、敵対的コンポーネント111と、データベース116とを含む。
【0026】
敵対的コンポーネント111は、タスク最適化モデルが誤った決定を下すこと(すなわち、予測と最適化との同時実行フレームワーク内のモデルへの入力から敵対的攻撃によって引き起こされる)を防ぐ敵対的訓練の最適量を決定する、防御者のための訓練方法を提供する能力を提供する。敵対的コンポーネント111は、サブコンポーネント、すなわち、入出力コンポーネント121と、仮定コンポーネント122と、脅威モデル・コンポーネント123と、分析コンポーネント124とを含む。
【0027】
データベース116は、敵対的コンポーネント111によって使用されるデータ用のリポジトリである。データベース116は、データベース・サーバ、ハード・ディスク・ドライブ、またはフラッシュ・メモリなど、サーバ110によってアクセスおよび利用され得るデータ・ファイルおよび構成ファイルを記憶することが可能な任意のタイプの記憶デバイスを用いて実装され得る。データベース116は、当技術分野で知られている複数の技術のうちの1つまたは複数を使用して、複数の情報を記憶する。図示された実施形態では、データベース116はサーバ110上に存在する。別の実施形態では、敵対的コンポーネント111がデータベース116にアクセスできることを条件として、データベース116は、敵対的訓練環境100内の他の場所に存在してもよい。データベース116は、限定はされないが、収束/終了基準、(防御者もしくは敵対者またはその両方に対する)脅威モデルの仮定、訓練データセット、テスト・データセット、タスク定義コスト関数、アクション範囲、最適なアクション、最適なタスク定義目的関数、最適な学習済みモデル・パラメータ、機械学習モデルに関連付けられた変数、事前訓練されたモデル、およびモデル予測に関連する情報を記憶してもよい。
【0028】
以下でさらに説明するように、本発明の入出力コンポーネント121は、モデルが予測およびタスク最適化に関係している場合にそのモデルの訓練に関連する入力(データ)および出力(データ)を管理する能力を提供する。
【0029】
入力は、着信データと関連し得る。(訓練セットからの)データ関連の入力は、訓練データセットとして指定され得る。訓練データセットは、次式、D
train={(x
1,y
1,z
1),…,(x
n,y
n,z
n)}を有し、ここで、X=入力特徴であり、Y=出力特徴であり、Z=アクション値であり、n=訓練データセット内のサンプルの合計数である。数学関数もしくはデータセットまたはその両方に関連する他の命名規則を以下に列挙する。テスト・データセット:D
test={x
1,…,x
m}であり、タスク定義コスト関数=g(z,y)であり、
【数3】
である。タスク定義コスト関数は永続的に設定されるものではなく、ユーザの目標に依存することに留意されたい。
【0030】
出力に関連するデータを以下に列挙する;最適なアクション=Z*であり、最適なタスク定義目的関数=g*(Z*,Y)であり、最適な学習済みモデル・パラメータ=θ*である。
【0031】
以下でさらに説明するように、本発明の仮定コンポーネント122は、目的の仮定および目的関数を管理する能力を提供する。目的の仮定は、目的関数を最適化するために行われる仮定として定義され得る。これは機械学習モデルに関連するため、(i)機械学習モデルy~Pr(y│x,z;θ)は微分可能である、(ii)複合重み付きコスト関数(joint weighted cost function)は入力に関して微分可能である、(iii)タスク最適化関数が入力xおよびアクション値zに関する線形関数であると仮定する、との仮定がなされる。xとzに連続性がある限り、関数は微分可能であり、(iv)タスク最適化制約もxおよびzに関して線形である。上記の仮定を考慮して、ユーザは、確率的勾配降下法または任意の他の数学演算を使用して目的関数を最適化することができる。
【0032】
目的関数は、タスクの最適化および損失の予測に関連するため、ユーザが最小化または最大化したい関数である。例えば、敵対者によって何らかのノイズδ
Aを使用して摂動されている可能性もあれば摂動されていない可能性もある入力X
testが与えられた場合、ユーザは、機械学習モデルから予測を生成して、
【数4】
を作成することができ、これは、タスク制約付き目的コスト関数g(z,y)を最小化する最適なアクションz
*を見出すために使用される。関数を最小化または最大化することにより、ユーザは、任意の既存の数学演算を活用することができる。この例の場合、特定のアクションzに関する上記の目的関数を最小化するために、「argmin」が使用される。
【数5】
【0033】
機械学習の予測損失関数とタスク制約付き最適化関数との両方を複合的に考慮するモデルを訓練するために、ユーザは、次のような複合重み付きコスト関数、
【数6】
を定義することができ、ここで、
【数7】
は、予測損失関数であり、
【数8】
は、予測損失関数の重みであり、
【数9】
は、タスク定義コスト関数に対して定義された重み関数であり、
【数10】
は、
【数11】
と
【数12】
との間の距離に関する増加関数であり、
【数13】
は、
【数14】
と
【数15】
との間の距離に関する減少関数である。ユーザは、次いで、上記のコスト関数を目的関数として使用して、予測損失とタスク制約付き損失関数との両方を最適化する(すなわち、タスク・ベースの最適化モデル内の敵対的ノイズによってもたらされる脅威を軽減する)ことができる。
【0034】
以下でさらに説明するように、本発明の脅威モデル・コンポーネント123は、脅威モデルの仮定および目的を管理する能力を提供する。脅威モデルの仮定および目的は、(i)敵対者および(ii)防御者に関連付けられ得る。
【0035】
敵対者の状況では、ユーザは、敵対者が特定の入力を与えられた場合に特定のアクションをトリガしようとする標的型攻撃シナリオを考察することができる。敵対者の目的は、
【数16】
として定義され、ここで、z
Aは対象となるアクションであり、z
A≠z
*である。
【0036】
敵対者の目標は、可能な限り最小量の摂動ノイズを使用しながら、対象となる敵対的入力および真の値に基づいて計算された重み付きコスト関数の差分を最大化することである。訓練データセットはクリーンであり、いかなる時点でも変更されない。敵対者は、(i)モデル・パラメータ(θ)、(ii)タスク最適化関数[g(z,y)]、(iii)複合重み付きコスト関数、および(iv)訓練データセットに関する、ホワイト・ボックス・アクセス(すなわち、完全な知識)を有する。しかしながら、敵対者は、何らかのδA(すなわち、敵対的ノイズ)によって入力を摂動させることによってのみXtestを変更することができる。
【0037】
防御者の状況では、ユーザは、防御者が特定の敵対的入力をフィルタリングするという、対象を絞った防御シナリオを考察することができる。例えば、防御者の目的は、
【数17】
として定義される。
【0038】
防御者の目標は、推論時間中に挿入される摂動ノイズによる潜在的な敵対的攻撃を軽減しながら、最良のアクション値を見出すことに関する重み付きコスト関数のような堅牢なモデルを訓練することである。ここでユーザは、yがzに依存しないと仮定することができ、またyを知ることで、最適なアクションz*へのマッピングがユーザに提供されることになる。言い換えれば、予測モデルの結果を知ることで、ユーザに最適なアクションが提供されることになる。
【0039】
防御者がデータの真の分布からサンプリングすると、ユーザは、予測yの真のラベルを知ることになり、ユーザはそれを使用して、タスク制約付きコスト関数へのその入力に対する最適なアクションを見出すことができる。
【0040】
ユーザは、z*にならない可能性のあるすべてのラベル値を確認することができる。ユーザは、ラベルに基づいて、可能性のある損失を最大化する。z*が与えられると、ユーザは、δDを見出し、新しいシータ(θ)を見出すようにモデルを再訓練して、新たに到来する入力を用いてプロセスを繰り返すことができる。
【0041】
以下でさらに説明するように、本発明の分析コンポーネント124は、限定はされないが、(a)損失関数、(b)データセット間の距離、(c)タスク定義コスト関数、(d)総損失、(e)勾配、(f)誤差逆伝播法、および(g)収束までの繰り返しを、決定/分析/算出する能力を提供する。
【0042】
分析コンポーネント124の他の機能性は、(i)最適なz
*
testを決定すること、(ii)y
trainを使用して最適なz
*
trainを決定すること、(iii)ステップ(i)からの出力とステップ(ii)からの出力との間の距離を計算すること、(iv)可能なアクションの範囲を決定すること、(v)過去のデータに関する予測損失を計算すること、(vi)
【数18】
と
【数19】
との間の距離を計算すること、(vii)タスク定義コスト関数
【数20】
を計算すること、(viii)異なるアクション範囲ごとに順伝播推論(feedforward inference)を実行すること、(ix)最適なアクションのセット
【数21】
について解くこと、(x)
【数22】
もしくは
【数23】
またはその両方のスカラ値の出力間の差分を計算すること、(xi)
【数24】
と
【数25】
との間、もしくは
【数26】
と
【数27】
との間、またはその両方のワッサースタイン距離を計算すること(分布ベースの値の場合)、(xii)予測損失に対応する重みを利用すること、および(xiii)タスク最適化コストに対応する重みを利用することを含むことができるが、これらに限定されない。
【0043】
項目(i)および(ii)(分析コンポーネント124の他の機能性に関する前述のリストを参照)に関して、「最良の…を決定すること」は、関数を最小化または最大化することとしてさらに定義され得る。例えば、「argmin」または「argmax」を利用することができる。(z*によって示される)最適なアクションは、Pr(y|x+δ_A)(すなわち、敵対的モデルから入力を取得するユーザの機械学習モデル)によって定義されるyに関するタスク・コスト関数g(z,y)を最小化するz値、および(ユーザがモデル内で試行する一定範囲のアクションに基づいて)選択アクション値zを見出すことによって定義される。
【0044】
項目(iii)、(x)、および(xi)(分析コンポーネント124の他の機能性に関する前述のリストを参照)に関して、「…距離を計算すること」は、単純な差分、ワッサースタイン計量、ユークリッド距離、およびコサイン類似度を使用するなど、任意の知られている距離算出を活用することとしてさらに定義され得る。スカラ・ベースの値に使用される場合の別の算出方法は、
【数28】
として定義された出力間の差分を計算することである。それ以外として、分布ベースの値について計算する場合、ワッサースタイン距離を使用して、
【数29】
と
【数30】
との間で計算する。
【0045】
項目(v)(分析コンポーネント124の他の機能性に関する前述のリストを参照)に関して、「…予測損失を計算すること」は、平均二乗誤差および二乗平均平方根誤差を使用するなど、任意の知られている方法を使用して数学的要素間の単純な差分を計算することとしてさらに定義され得る。実行される機械学習タスクに応じて損失が多様であり得ることに留意することが重要である。例えば、関連する分類では、これは交差エントロピー損失とすることができ、回帰の場合、これは、以前に定義された損失関数(すなわち、
【数31】
)とすることができる。
【0046】
スカラ・ベースの値に使用される場合の別の算出方法は、
【数32】
として定義された出力間の差分を計算することである。それ以外として、分布ベースの値について計算する場合、ワッサースタイン距離を使用して、
【数33】
と
【数34】
との間で計算する。
【0047】
項目(vii)(分析コンポーネント124の他の機能性に関する前述のリストを参照)に関して、「…タスク定義コスト関数を計算すること」は、知られている計算方法論を用いて所与のタスク関数(すなわち、g(z,y))を計算することとしてさらに定義され得る。タスク関数g(z,y)は、実際にはユーザがこのアルゴリズムに提供する必要がある入力の一部であるユーザ定義関数である。タスク関数は、提供されたアクションzの入力と、機械学習モデルの出力から得られる入力観測値yに基づいて、ユーザが最適化したいものを測定する。
【0048】
(分析コンポーネント124の機能性に関する前述のリストを参照)に関して、「…総損失を算出すること」は、任意の知られている方法を使用して機械学習モデルにおける任意の損失関数を導出することとしてさらに定義され得る。例えば、損失関数は、重み付き複合関数
【数35】
である。これは、モデルが上記のモデルを最適化して最良のシータθ(すなわち、モデルのパラメータ)を見出すために使用するものである。
【0049】
(分析コンポーネント124の機能性に関する前述のリストを参照)に関して、「…勾配を計算すること」は、勾配降下最適化アルゴリズムの一部であり得る微分数学演算を実行することとしてさらに定義され得る。手順は、自動微分関数の使用を活用しており、自動微分関数は基本的に、ユーザが閉形式関数を有することなく任意の関数の勾配を近似することを可能にする。勾配を計算するための別の方法は、確率的最適化方法論、一次反復最適化アルゴリズム(勾配降下法)、または勾配上昇法を活用することができる。
【0050】
(分析コンポーネント124の機能性に関する前述のリストを参照)に関して、「…収束まで繰り返すこと」は、プロセスが終了することを可能にする終了基準が満たされるまですべてのステップを繰り返すこと(すなわち、ループ)としてさらに定義され得る。収束/終了基準は、(i)以前の対象メトリックと現在の反復における同じ対象メトリックとの間の差分が、ユーザによって定義された何らかの閾値によって変化していない(または、他のインスタンスにおける値のウィンドウにわたってこれを評価することができる)プロセス、(ii)エポック(反復)数に達していること(すなわち、エポック閾値はユーザによって定義および調整され得る)、ならびに(iii)収束スコアがユーザ定義の値に達していることを含むことができるが、これらに限定されない。
【0051】
図2A、
図2B、
図2C、および
図2Dは、本発明の一実施形態による、機械学習における既存の現行技術への追加コンポーネント、具体的には敵対的攻撃の軽減に関連する最適化および予測モデルを示す流れ図を含む。
【0052】
図示された実施形態では、追加のプロセス/ブロック201、202、203、204、205、206、207、208、209、210、211、および212が含まれる。
【0053】
ブロック201は、最適なアクションの確率(Ztrain)、特徴入力(Xtrain)、および特徴出力(Ytrain)の事前訓練モデルに関連するデータセットを取得するプロセスである。
【0054】
ブロック202は、アクション値(z)を初期化するプロセスである。ブロック203は、テスト分布を使用した予測モデルの推論に関連するプロセスである。ブロック204は、最適なアクションの確率(Z
*
test)を推定することに関連するプロセスである。ブロック205は、訓練分布を使用した予測モデルの推論に関連するプロセスである。ブロック206は、最適なアクションの確率(Z
*
train)を推定することに関連するプロセスである。ブロック207は、タスク制約付き関数の重み
【数36】
を計算することに関連するプロセスである。ブロック208は、予測損失関数
【数37】
を計算することに関連するプロセスである。ブロック209は、予測モデルの重み
【数38】
を計算することに関連するプロセスである。ブロック210は、タスク定義制約付きコスト関数
【数39】
を計算することに関連するプロセスである。ブロック211は、タスク最適化に基づいて重み付きモデル予測損失を計算することに関連するプロセスである。ブロック212は、(SGDを介して)予測モデル・パラメータを更新することに関連するプロセスである。
【0055】
本発明の一実施形態(モデルの最適化と予測との同時実行のために敵対的攻撃を軽減するシステム)の高レベルのステップ/プロセスは、以下のステップ、すなわち(i)訓練データセット上でモデルを事前訓練するステップと、(ii)入力が汚染されている可能性があるとの仮定、および可能なアクションの範囲を用いてテスト・セット(x+δ
A)に関する最良のz
*testを決定するステップと、(iii)y
trainおよび可能なアクションの範囲を使用して最良のz
*
trainを決定するステップと、(iv)ステップ(ii)の出力とステップ(iii)の出力との間の距離、すなわちクリーンなアクションと敵対的アクションとの比較を測定する距離を計算するステップと、(v)y
trainと
【数40】
との間の損失を比較する過去のデータに関する予測損失、すなわち、δ
Dによって追加されるノイズによってモデルの堅牢性を保証するように訓練された予測損失関数を計算するステップと、(vi)
【数41】
と
【数42】
との間の距離、すなわち、タスク最適化コストに関して関連する過去の訓練サンプルを考慮するための距離を計算するステップと、(vii)タスク定義コスト関数を最小化するために使用されるタスク定義コスト関数
【数43】
を計算するステップと、(viii)ステップ(iv)~(vii)によって計算された値から総損失を導出するステップと、(ix)勾配を計算し、誤差逆伝播法を実行してモデル・パラメータを更新するステップと、(x)モデルの収束または何らかの終了基準までステップ(ii)~(ix)を繰り返すステップとを含む。
【0056】
終了/収束基準は、すでに定義されており、以下のように繰り返されることになる。収束は、以前の対象メトリックと現在の反復における同じ対象メトリックとの間の差分が、ユーザによって定義された何らかの閾値によって変化していない(または、他のインスタンスにおける値のウィンドウにわたってこれを評価することができる)プロセスとして定義され得る。収束基準は、(i)エポック(すなわち、反復)数に達していること(すなわち、エポック閾値はユーザによって定義され得る)、(iii)収束スコアがユーザ定義の閾値に達していることを含むことができるが、これらに限定されない。
【0057】
ステップ(ii)に関して、追加のステップもしくは代替のステップまたはその両方として、(a)予測の集合体
【数44】
を導出するために、入力テスト・セットが与えられた場合に、異なるアクション範囲のそれぞれについて順伝播推論を実行するステップ、もしくは(b)タスク定義の最適化関数g(z,y)、可能なアクションの範囲、および(a)から導出された出力予測が与えられた場合に、最適なアクションのセット
【数45】
について解くステップ、またはその両方を使用することができる。
【0058】
ステップ(iii)に関して、追加のステップとして、(a)タスク定義の最適化関数g(z,y)、様々な過去のアクションz
train、および過去の入力値y
trainが与えられた場合に、最適なアクション
【数46】
について解くことができるというステップを使用することができる。
【0059】
ステップ(iv)に関して、ユーザがクリーンなアクションと敵対的アクションとを比較して測定したい距離について、追加のステップとして以下を使用することができる。(a)これの一実施形態は、
【数47】
として定義される出力間の差分を計算することである(すなわち、スカラ・ベースの値の場合)、(b)これの別の実施形態は、
【数48】
と
【数49】
との間のワッサースタイン距離を計算することである(すなわち、分布ベースの値の場合)。
【0060】
ステップ(vi)に関して、タスク最適化コストに関して関連する過去の訓練サンプルを考慮するための距離について、追加のステップもしくは代替のステップまたはその両方として以下を使用することができる。(a)これの一実施形態は、
【数50】
として定義される出力間の差分の計算を活用することである(すなわち、スカラ・ベースの値の場合)、もしくは(b)これの別の実施形態は、
【数51】
と
【数52】
との間のワッサースタイン距離の計算を活用することである(すなわち、分布ベースの値の場合)、またはその両方である。
【0061】
ステップ(viii)に関して、代替のステップとして以下の詳細を使用することができる。(a)総損失の導出はステップ(v)およびステップ(vii)の加重和として定義され得、その重みはステップ(iv)およびステップ(vi)に依存する、(b)これの一実施形態は、
【数53】
によって定義される予測損失に対応する重み、もしくは
【数54】
および
【数55】
の距離が増加する任意の関数を利用することである、または(c)これの別の実施形態は、
【数56】
によって定義されるタスク最適化コストに対応する重み、もしくは
【数57】
および
【数58】
の距離が減少する任意の関数を利用することである。
【0062】
図3は、本発明の別の実施形態による、敵対的コンポーネント111の動作を示す、300として指定された高レベルの流れ図である。
【0063】
敵対的コンポーネント111は、サブサンプルを受信する(ステップ302)。一実施形態において、敵対的コンポーネント111は、入出力コンポーネント121を通じて、訓練セットもしくはテスト・データセットまたはその両方からサブサンプル・データセットを受信する。敵対的コンポーネント111は、モデルの重みの事前訓練を開始する。テスト・データセットおよび訓練データセットを受信するとともに入出力の仮定および脅威モデルの仮定(例えば、敵対者および防御者など)に関連するデータを取得するために、仮定コンポーネント122および脅威モデル・コンポーネント123が利用されることに留意されたい。
【0064】
敵対的コンポーネント111は、テスト最適アクション値を決定する(ステップ304)。一実施形態において、敵対的コンポーネント111は、分析コンポーネント124を通じて、入力が汚染されている可能性があるとの仮定(すなわち、脅威モデルの仮定)および可能なアクションの範囲(すなわち、Z)を用いて、テスト・セット(x+δA)に関して最良の(すなわち、最適な)z*
testを決定する。訓練データセットはDtrain={(x1,y1,z1),…,(xn,yn,zn)}として定義され、ここで、xは入力特徴であり、yは出力特徴であり、zはアクション値であることを思い出されたい。「最良」および「最適」は、ユーザによって定義され、ユーザもしくは学習モデルの目的またはその両方ごとに異なる可能性があることに留意されたい。
【0065】
代替の実施形態において、「最良のz
*
testを決定する」は、次のステップ、すなわち、(a)予測の集合体
【数59】
を導出するために、入力テスト・セットが与えられた場合に、異なるアクション範囲のそれぞれについて順伝播推論を実行するステップ、もしくは(b)タスク定義の最適化関数g(z,y)、可能なアクションの範囲、および(a)から導出された出力予測が与えられた場合に、ユーザが最適なアクションのセット
【数60】
について解くことができるというステップ、またはその両方を含むことができる。
【0066】
敵対的コンポーネント111は、訓練最適アクション値を決定する(ステップ306)。一実施形態において、敵対的コンポーネント111は、分析コンポーネント124を通じて、過去のytrainおよび可能なアクションの範囲を使用して最良のz*trainを決定する。
【0067】
代替の実施形態において、「最良のz
*
trainを決定する」は、タスク定義の最適化関数g(z,y)、様々な過去のアクションz
train、および過去の入力値y
trainが与えられた場合に、最適なアクション
【数61】
について解くことを含むことができる。
【0068】
敵対的コンポーネント111は、第1の距離を計算する(ステップ308)。一実施形態において、敵対的コンポーネント111は、分析コンポーネント124を通じて、z*
testとz*
trainとの間の距離(すなわち、第1の距離)(すなわち、ユーザがクリーンなアクションと敵対的アクションとの間を比較して測定したい距離)を計算する。
【0069】
代替の実施形態において、「第1の距離(すなわち、ユーザがクリーンなアクションと敵対的アクションとの間を比較して測定したい距離)を計算する」では、追加のステップとして、
【数62】
として定義される出力間の差分を計算するステップを使用することができる(すなわち、スカラ・ベースの値の場合)。別の実施形態では、
【数63】
と
【数64】
との間のワッサースタイン距離の計算を使用することを活用する(すなわち、分布ベースの値の場合)。
【0070】
敵対的コンポーネント111は、予測損失関数を決定する(ステップ310)。一実施形態において、敵対的コンポーネント111は、分析コンポーネント124を通じて、y
trainと
【数65】
との間の損失を比較する過去のデータに関する予測損失(すなわち、δ
Dによって追加されるノイズによってモデルの堅牢性を保証するように訓練される予測損失関数)を計算する。
【0071】
敵対的コンポーネント111は、第2の距離を計算する(ステップ312)。一実施形態において、敵対的コンポーネント111は、分析コンポーネント124を通じて、
【数66】
と
【数67】
との間の距離(すなわち、第2の距離)(すなわち、タスク最適化コストに関して関連する過去の訓練サンプルを考慮するための距離)を計算する。
【0072】
代替の実施形態において、「第2の距離(すなわち、タスク最適化コストに関して関連する過去の訓練サンプルを考慮するための距離)を計算する」では、追加のステップもしくは代替のステップまたはその両方として、(a)
【数68】
として定義される出力間の距離を計算するステップ(すなわち、スカラ・ベースの値の場合)、または(b)
【数69】
と
【数70】
との間のワッサースタイン距離を計算するステップ(すなわち、分布ベースの値の場合)を使用することができる。
【0073】
敵対的コンポーネント111は、タスク定義コスト関数を計算する(ステップ314)。一実施形態において、敵対的コンポーネント111は、分析コンポーネント124を通じて、タスク定義コスト関数
【数71】
(すなわち、タスク定義コスト関数を最小化するために使用される関数)を計算する。
【0074】
敵対的コンポーネント111は、損失関数を算出する(ステップ316)。一実施形態において、敵対的コンポーネント111は、分析コンポーネント124を通じて、ステップ308、310、312、および314から計算された値から総損失を算出する。
【0075】
代替の実施形態において、損失関数を算出することは、以下を含むことができる。(a)総損失の導出/算出は、ステップ(310)とステップ(314)との加重和として定義され得、その重みはステップ(308)およびステップ(312)に依存する、(b)
【数72】
によって定義される予測損失に対応する重み、もしくは
【数73】
および
【数74】
の距離が増加する任意の関数を利用すること、または(c)これの別の実施形態は、
【数75】
によって定義されるタスク最適化コストに対応する重み、もしくは
【数76】
および
【数77】
の距離が減少する任意の関数を利用することである。
【0076】
敵対的コンポーネント111は、勾配を算出する(ステップ318)。一実施形態において、敵対的コンポーネント111は、分析コンポーネント124を通じて、(ステップ316から算出された)損失関数の勾配を計算する。
【0077】
敵対的コンポーネント111は、誤差逆伝播法を実行する(ステップ320)。一実施形態において、敵対的コンポーネント111は、分析コンポーネント124を通じて誤差逆伝播法を実行する。誤差逆伝播法は、タスク定義コスト関数に関連する予測モデル・パラメータもしくは他の値またはその両方を更新することであると定義され得る。
【0078】
敵対的コンポーネント111は、収束が生じたかどうかを判定する(判定ブロック322)。収束は、(i)以前の対象メトリックと現在の反復における同じ対象メトリックとの間の差分が、ユーザによって定義された何らかの閾値によって変化していない(または、他のインスタンスにおける値のウィンドウにわたってこれを評価することができる)プロセス、(ii)エポック(反復)数に達していること(すなわち、エポック閾値はユーザによって定義および調整され得る)、または(iii)収束スコアが何らかのユーザ定義の値に達していることのいずれかであると以前に定義されたことを思い出されたい。カウンタは、収束を達成する(または終了基準を満たす)ための方法の1つである。例えば、ユーザが10回の反復後に算出を抜けたい場合、反復の終了基準は10となる。一実施形態において、敵対的コンポーネント111は、カウンタの値を終了閾値と比較することによって、収束が生じたかどうかを判定する。例えば、敵対的コンポーネント111は、カウンタに以前に記憶された値(終了閾値はユーザによって設定された10である)にカウント1を加算する。敵対的コンポーネント111が、分析コンポーネント124を通じてカウンタの値が11であると判定した場合、敵対的コンポーネント111は、次のステップ(すなわち、ステップ324)に進むことができる。しかしながら、敵対的コンポーネント111がカウンタの値が閾値10未満であると判定した場合、敵対的コンポーネント111はステップ304に戻り、完了基準(すなわち、終了閾値)に達するまでプロセスを再び繰り返す。
【0079】
代替の実施形態において、敵対的コンポーネント111は、エポックなどの他のユーザ定義パラメータに基づく別のタイプの終了基準を利用する。
【0080】
敵対的コンポーネント111は値を出力する(ステップ324)。一実施形態において、敵対的コンポーネント111は算出された値を出力する。値には、(i)最適な学習済みモデル・パラメータ、ならびに(ii)最適なタスク定義目的関数(例えば、Z*、g*、およびθ*)が含まれるが、これらに限定されない。ユーザは(防御者として)、出力値に基づいて、訓練済みのモデルが敵対的攻撃に耐えられる程度に十分に堅牢であるかどうかを判定することができる(脅威モデル・コンポーネント123セクションの「防御者」を参照)。
【0081】
400として指定された
図4は、本発明の例示的な実施形態による、敵対的コンポーネント111アプリケーションのコンポーネントのブロック図を示す。
図4は、単に一実装形態の例示を提供するものであり、異なる実施形態が実装され得る環境に関していかなる制限も示唆するものではないことを理解されたい。図示された環境に対して多くの修正が加えられてもよい。
【0082】
図4は、プロセッサ401、キャッシュ403、メモリ402、永続ストレージ405、通信ユニット407、入出力(I/O)インターフェース406、および通信ファブリック404を含む。通信ファブリック404は、キャッシュ403と、メモリ402と、永続ストレージ405と、通信ユニット407と、入出力(I/O)インターフェース406との間の通信を提供する。通信ファブリック404は、プロセッサ(マイクロプロセッサ、通信およびネットワーク・プロセッサなど)、システム・メモリ、周辺デバイス、およびシステム内の任意の他のハードウェア・コンポーネント間でデータもしくは制御情報またはその両方を渡すように設計された任意のアーキテクチャを用いて実装され得る。例えば、通信ファブリック404は、1つもしくは複数のバスまたはクロスバー・スイッチを用いて実装され得る。
【0083】
メモリ402および永続ストレージ405は、コンピュータ可読記憶媒体である。この実施形態では、メモリ402は、ランダム・アクセス・メモリ(RAM)を含む。一般に、メモリ402は、任意の好適な揮発性または不揮発性のコンピュータ可読記憶媒体を含むことができる。キャッシュ403は、メモリ402から最近アクセスされたデータ、および最近アクセスされたデータに近いデータを保持することによってプロセッサ401の性能を向上させる高速メモリである。
【0084】
本発明の実施形態を実践するために使用されるプログラム命令およびデータ(例えば、ソフトウェアおよびデータx10)は、キャッシュ403を介してそれぞれのプロセッサ401のうちの1つまたは複数によって実行されるように、永続ストレージ405およびメモリ402に記憶されてもよい。一実施形態において、永続ストレージ405は、磁気ハード・ディスク・ドライブを含む。磁気ハード・ディスク・ドライブの代替としてまたは追加として、永続ストレージ405は、ソリッド・ステート・ハード・ドライブ、半導体記憶デバイス、リード・オンリ・メモリ(ROM)、消去可能プログラマブル・リード・オンリ・メモリ(EPROM)、フラッシュ・メモリ、またはプログラム命令もしくはデジタル情報を記憶することが可能な任意の他のコンピュータ可読記憶媒体を含むことができる。
【0085】
永続ストレージ405によって使用される媒体は、リムーバブルであってもよい。例えば、永続ストレージ405にリムーバブル・ハード・ドライブが使用されてもよい。他の例には、永続ストレージ405の一部でもある別のコンピュータ可読記憶媒体上に転送するためにドライブに挿入される、光ディスクおよび磁気ディスク、サム・ドライブ、ならびにスマート・カードが含まれる。敵対的コンポーネント111は、キャッシュ403を介してそれぞれのプロセッサ401のうちの1つもしくは複数によってアクセスされる、もしくは実行される、またはその両方であるように、永続ストレージ405に記憶され得る。
【0086】
通信ユニット407は、これらの例では、他のデータ処理システムまたはデータ処理デバイスとの通信を提供する。これらの例では、通信ユニット407は1つまたは複数のネットワーク・インターフェース・カードを含む。通信ユニット407は、物理通信リンクと無線通信リンクのいずれかまたは両方を使用することによって通信を提供してもよい。本発明の実施形態を実践するために使用されるプログラム命令およびデータ(例えば、敵対的コンポーネント111)は、通信ユニット407を介して永続ストレージ405にダウンロードされてもよい。
【0087】
I/Oインターフェース406は、各コンピュータ・システムに接続され得る他のデバイスとのデータの入出力を可能にする。例えば、I/Oインターフェース406は、キーボード、キーパッド、タッチ・スクリーン、もしくは何らかの他の好適な入力デバイス、またはそれらの組合せなどの外部デバイス408への接続を提供してもよい。外部デバイス408は、例えば、サム・ドライブ、ポータブル光ディスクまたはポータブル磁気ディスク、およびメモリ・カードなどのポータブル・コンピュータ可読記憶媒体も含むことができる。本発明の実施形態を実践するために使用されるプログラム命令およびデータ(例えば、敵対的コンポーネント111)は、そのようなポータブル・コンピュータ可読記憶媒体に記憶されてもよく、I/Oインターフェース406を介して永続ストレージ405にロードされてもよい。I/Oインターフェース406は、ディスプレイ409にも接続する。
【0088】
ディスプレイ409は、ユーザにデータを表示するメカニズムを提供し、例えば、コンピュータ・モニタであってもよい。
【0089】
本明細書に記載のプログラムは、本発明の特定の実施形態においてそのプログラムが実装される目的となるアプリケーションに基づいて識別される。しかしながら、本明細書における特定のプログラムの命名法は単に便宜上使用されており、したがって、本発明が、そのような命名法によって識別される、もしくは暗示される、またはその両方である特定のアプリケーションでの使用のみに限定されるべきではないことを理解されたい。
【0090】
本発明は、あらゆる可能な技術的詳細レベルの統合におけるシステム、方法、もしくはコンピュータ・プログラム製品またはそれらの組合せであってもよい。コンピュータ・プログラム製品は、プロセッサに本発明の態様を実施させるためのコンピュータ可読プログラム命令を有するコンピュータ可読記憶媒体(または複数のコンピュータ可読記憶媒体)を含んでもよい。
【0091】
コンピュータ可読記憶媒体は、命令実行デバイスが使用するための命令を保持および記憶することができる有形デバイスとすることができる。コンピュータ可読記憶媒体は、例えば、電子記憶デバイス、磁気記憶デバイス、光学記憶デバイス、電磁気記憶デバイス、半導体記憶デバイス、または上記の任意の好適な組合せとすることができるが、これらに限定されない。コンピュータ可読記憶媒体のより具体的な例の非網羅的なリストには以下のもの、すなわち、ポータブル・コンピュータ・ディスケット、ハード・ディスク、ランダム・アクセス・メモリ(RAM)、リード・オンリ・メモリ(ROM)、消去可能プログラマブル・リード・オンリ・メモリ(EPROMまたはフラッシュ・メモリ)、スタティック・ランダム・アクセス・メモリ(SRAM)、ポータブル・コンパクト・ディスク・リード・オンリ・メモリ(CD-ROM)、デジタル・バーサタイル・ディスク(DVD)、メモリ・スティック、フロッピ・ディスク、パンチカードまたは命令が記録された溝内の隆起構造体などの機械的に符号化されたデバイス、および上記の任意の好適な組合せが含まれる。本明細書で使用されるコンピュータ可読記憶媒体は、電波もしくは他の自由に伝播する電磁波、導波路もしくは他の伝送媒体を介して伝播する電磁波(例えば、光ファイバ・ケーブルを通る光パルス)、または電線を介して送信される電気信号などの一過性の信号自体であると解釈されるべきではない。
【0092】
本明細書に記載のコンピュータ可読プログラム命令は、コンピュータ可読記憶媒体からそれぞれのコンピューティング/処理デバイスに、または、ネットワーク、例えばインターネット、ローカル・エリア・ネットワーク、ワイド・エリア・ネットワーク、もしくはワイヤレス・ネットワークまたはそれらの組合せを介して外部コンピュータもしくは外部記憶デバイスにダウンロードされ得る。ネットワークは、銅伝送ケーブル、光伝送ファイバ、ワイヤレス伝送、ルータ、ファイアウォール、スイッチ、ゲートウェイ・コンピュータ、もしくはエッジ・サーバまたはそれらの組合せを含んでもよい。各コンピューティング/処理デバイスにおけるネットワーク・アダプタ・カードまたはネットワーク・インターフェースは、ネットワークからコンピュータ可読プログラム命令を受信し、そのコンピュータ可読プログラム命令を、それぞれのコンピューティング/処理デバイス内のコンピュータ可読記憶媒体に記憶するために転送する。
【0093】
本発明の動作を実行するためのコンピュータ可読プログラム命令は、アセンブラ命令、インストラクション・セット・アーキテクチャ(ISA)命令、機械命令、機械依存命令、マイクロコード、ファームウェア命令、状態設定データ、集積回路用の構成データ、または、Smalltalk(登録商標)、C++などのオブジェクト指向プログラミング言語および「C」プログラミング言語もしくは同様のプログラミング言語などの手続き型プログラミング言語を含む1つまたは複数のプログラミング言語の任意の組合せで記述されたソース・コードもしくはオブジェクト・コードのいずれかであってもよい。コンピュータ可読プログラム命令は、スタンドアロン・ソフトウェア・パッケージとして全体がユーザのコンピュータ上で、一部がユーザのコンピュータ上で、一部がユーザのコンピュータ上かつ一部がリモート・コンピュータ上で、または全体がリモート・コンピュータ上もしくはサーバ上で実行されてもよい。後者のシナリオでは、リモート・コンピュータは、ローカル・エリア・ネットワーク(LAN)もしくはワイド・エリア・ネットワーク(WAN)を含む任意のタイプのネットワークを介してユーザのコンピュータに接続されてもよく、または(例えば、インターネット・サービス・プロバイダを使用してインターネットを介して)外部コンピュータに対して接続されてもよい。いくつかの実施形態では、本発明の態様を実行するために、例えば、プログラマブル・ロジック回路、フィールド・プログラマブル・ゲート・アレイ(FPGA)、またはプログラマブル・ロジック・アレイ(PLA)を含む電子回路が、コンピュータ可読プログラム命令の状態情報を利用して電子回路をパーソナライズすることによって、コンピュータ可読プログラム命令を実行してもよい。
【0094】
本明細書では、本発明の実施形態による方法、装置(システム)、およびコンピュータ・プログラム製品の流れ図もしくはブロック図またはその両方を参照しながら、本発明の態様について説明している。流れ図もしくはブロック図またはその両方の各ブロック、および流れ図もしくはブロック図またはその両方におけるブロックの組合せがコンピュータ可読プログラム命令によって実施され得ることが理解されよう。
【0095】
これらのコンピュータ可読プログラム命令は、コンピュータまたは他のプログラマブル・データ処理装置のプロセッサを介して実行される命令が、流れ図もしくはブロック図またはその両方の1つまたは複数のブロックで指定された機能/作用を実施するための手段を作り出すように、汎用コンピュータ、専用コンピュータ、または他のプログラマブル・データ処理装置のプロセッサに提供されて、マシンを作り出すものであってもよい。これらのコンピュータ可読プログラム命令はまた、命令が記憶されたコンピュータ可読記憶媒体が、流れ図もしくはブロック図またはその両方の1つまたは複数のブロックで指定された機能/作用の態様を実施する命令を含む製造品を含むように、コンピュータ可読記憶媒体に記憶され、コンピュータ、プログラマブル・データ処理装置、もしくは他のデバイスまたはそれらの組合せに対して特定の方式で機能するように指示できるものであってもよい。
【0096】
コンピュータ可読プログラム命令はまた、コンピュータ、他のプログラマブル装置、または他のデバイスで実行される命令が、流れ図もしくはブロック図またはその両方の1つまたは複数のブロックで指定された機能/作用を実施するように、コンピュータ実施プロセスを作り出すべくコンピュータ、他のプログラマブル・データ処理装置、または他のデバイスにロードされて、コンピュータ、他のプログラマブル装置、または他のデバイス上で一連の動作ステップを実行させるものであってもよい。
【0097】
図中の流れ図およびブロック図は、本発明の様々な実施形態によるシステム、方法およびコンピュータ・プログラム製品の可能な実装形態のアーキテクチャ、機能性、ならびに動作を示す。これに関して、流れ図またはブロック図における各ブロックは、指定された論理機能を実装するための1つまたは複数の実行可能命令を含む、命令のモジュール、セグメント、または一部を表すことがある。いくつかの代替の実装形態では、ブロックに記載された機能は、図に記載された順序とは異なる順序で行われてもよい。例えば、連続して示されている2つのブロックは、実際には、関与する機能性に応じて、実質的に同時に実行されてもよく、またはそれらのブロックは、場合によっては逆の順序で実行されてもよい。ブロック図もしくは流れ図またはその両方の各ブロック、およびブロック図もしくは流れ図またはその両方におけるブロックの組合せは、指定された機能もしくは作用を実行するか、または専用ハードウェアとコンピュータ命令との組合せを遂行する専用ハードウェア・ベースのシステムによって実装され得ることにも留意されたい。
【0098】
本発明の様々な実施形態の説明を例示の目的で提示してきたが、この説明は、網羅的であることも、開示された実施形態に限定されることも意図していない。当業者には、本発明の範囲から逸脱することなく多くの修正形態および変形形態が明らかとなろう。本明細書で使用される用語は、実施形態の原理、実際の適用例、もしくは市場で見られる技術を超える技術的な改良を最もよく説明するように、または本明細書で開示された実施形態を当業者が理解することが可能になるように選択されたものである。
【手続補正書】
【提出日】2024-01-10
【手続補正1】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
コンピュータの情報処理により、敵対的機械学習モデルの予測および最適化を提供するための
方法であって
、
訓練モデルに関連付けられた入力データのセットを受信することであって、前記入力データが、訓練データセット、テスト・データセット、タスク定義コスト関数、可能なアクションの範囲、過去のデータセット、および事前訓練モデルの重みを含む、前記受信することと、
脅威の仮定および前記可能なアクションの範囲に基づいて前記テスト・データセットからテスト最適アクション値を決定することと、
前記訓練データセットの出力特徴および前記可能なアクションの範囲に基づいて前記訓練データセットから訓練最適アクション値を決定することと、
前記テスト最適アクション値と前記訓練最適アクション値との間の第1の距離を計算することと、
前記過去のデータセットに基づいて予測損失関数を計算することと、
前記可能なアクションの範囲と前記訓練最適アクション値との間の第2の距離を計算することと、
前記可能なアクションの範囲および前記テスト・データセットからの出力予測に基づいて前記タスク定義コスト関数を計算することと、
前記第1の距離、前記予測損失関数、前記第2の距離、および前記タスク定義コスト関数に基づいて総損失を算出することと、
前記総損失関数の勾配を算出することと、
前記訓練モデルに関連付けられた1つまたは複数のパラメータに対して誤差逆伝播法を実行することと、
収束が生じたかどうかを判定することと、
前記収束が生じたことに応答して、最適なアクション、最適な学習済みモデル・パラメータ、および最適なタスク定義目的関数を出力することと
を含む
方法。
【請求項2】
前記訓練データセットが、1つまたは複数の入力特徴、1つまたは複数の出力特徴、および1つまたは複数のアクション値を含む、請求項1に記載の
方法。
【請求項3】
テスト最適アクション値を決定することが、
予測の集合体を導出するために、前記入力テスト・セットが与えられた場合に、前記可能なアクションの範囲のそれぞれについて順伝播推論を実行すること
をさらに含む、請求項1に記載の
方法。
【請求項4】
テスト最適アクション値を決定することが、
タスク定義の最適化関数、様々な過去のアクション、および過去の入力値に基づいて前記最適なアクションについて解くこと
をさらに含む、請求項1に記載の
方法。
【請求項5】
前記テスト最適アクション値と前記訓練最適アクション値との間の差分の絶対値を使用することによって前記第1の距離を計算する、請求項1に記載の
方法。
【請求項6】
前記第1の距離を計算することが、前記テスト最適アクション値と前記訓練最適アクション値との間のワッサースタイン距離に基づく、請求項1に記載の
方法。
【請求項7】
前記テスト最適アクション値と前記訓練最適アクション値との差分の絶対値を使用して前記第2の距離を計算する、請求項1に記載の
方法。
【請求項8】
前記第2の距離を計算することが、前記テスト最適アクション値と前記訓練最適アクション値との間のワッサースタイン距離に基づく、請求項1に記載の
方法。
【請求項9】
【数1】
によって定義される前記予測損失関数に対応する重みを利用して前記総損失を計算する、請求項1に記載の
方法。
【請求項10】
【数2】
によって定義される前記タスク定義コスト関数に対応する重みを利用して前記総損失を計算する、請求項1に記載の
方法。
【請求項11】
収束が生じたかどうかを判定することが、増分カウンタを使用して反復回数をカウントすることと、前記増分カウンタからの値を終了閾値と比較することとをさらに含む、請求項1に記載の
方法。
【請求項12】
請求項1~11のいずれか1項に記載された方法を、コンピュータに対して実行させるためのコンピュータ・プログラム。
【請求項13】
請求項12に記載のコンピュータ・プログラムを記録した、コンピュータ可読記憶媒体。
【請求項14】
敵対的機械学習モデルの予測および最適化を提供するためのコンピュータ・システムであって、前記コンピュータ・システムが、
1つまたは複数のコンピュータ・プロセッサと、
1つまたは複数のコンピュータ可読記憶媒体と、
前記1つまたは複数のコンピュータ可読記憶媒体に記憶された、前記1つまたは複数のコンピュータ・プロセッサのうちの少なくとも1つによって実行されるプログラム命令と
を含み、前記プログラム命令が、
訓練モデルに関連付けられた入力データのセットを受信するためのプログラム命令であって、前記入力データが、訓練データセット、テスト・データセット、タスク定義コスト関数、可能なアクションの範囲、過去のデータセット、および事前訓練モデルの重みを含む、前記プログラム命令と、
脅威の仮定および前記可能なアクションの範囲に基づいて前記テスト・データセットからテスト最適アクション値を決定するためのプログラム命令と、
前記訓練データセットの出力特徴および前記可能なアクションの範囲に基づいて前記訓練データセットから訓練最適アクション値を決定するためのプログラム命令と、
前記テスト最適アクション値と前記訓練最適アクション値との間の第1の距離を計算するためのプログラム命令と、
前記過去のデータセットに基づいて予測損失関数を計算するためのプログラム命令と、
前記可能なアクションの範囲と前記訓練最適アクション値との間の第2の距離を計算するためのプログラム命令と、
前記可能なアクションの範囲および前記テスト・データセットからの出力予測に基づいて前記タスク定義コスト関数を計算するためのプログラム命令と、
前記第1の距離、前記予測損失関数、前記第2の距離、および前記タスク定義コスト関数に基づいて総損失を算出するためのプログラム命令と、
前記総損失関数の勾配を算出するためのプログラム命令と、
前記訓練モデルに関連付けられた1つまたは複数のパラメータに対して誤差逆伝播法を実行するためのプログラム命令と、
収束が生じたかどうかを判定するためのプログラム命令と、
前記収束が生じたことに応答して、最適なアクション、最適な学習済みモデル・パラメータ、および最適なタスク定義目的関数を出力するためのプログラム命令と
を含む、コンピュータ・システム。
【国際調査報告】