例示的実施形態は、モデル窃取攻撃および回避攻撃などの、勾配またはその推定を使用した攻撃から、ニューラル・ネットワーク、機械学習、または深層学習メカニズム、あるいはその組合せを備えるものなどの、認知システムを保護するためのメカニズムを提供する。例示的実施形態は、ニューラル・ネットワーク・ベースのメカニズムおよび認知システムの文脈で説明されるが、例示的実施形態は、このようなものに限定されない。むしろ、例示的実施形態のメカニズムは、任意の人工知能メカニズム、機械学習メカニズム、深層学習メカニズム、または同様のものと共に利用されてもよく、その出力は、以下に示された例示的実施形態に従って修正され、これにより、内部メカニズム、例えば機械学習コンピュータ・モデル(または単に「モデル」)、様々なタイプのニューラル・ネットワーク、例えば、回帰型ニューラル・ネットワーク(RNN)、畳み込みニューラル・ネットワーク(CNN)、深層学習(DL)ニューラル・ネットワーク、機械学習コンピュータ・モデルを実施する認知コンピューティング・システム、または同様のものなど、の訓練を難読化し得る。内部メカニズムの訓練を難読化すると、勾配を正確に計算することができず、したがって、モデル窃取攻撃を介して内部メカニズムを再現することができないか、または、モデルを誤分類させるように敵対的サンプルを作り出すことができない。これらの機械学習ベースのメカニズムは、本明細書では、まとめてコンピュータ「モデル」と呼ばれることになり、この用語は、勾配ベースの攻撃を受け得る様々なタイプの機械学習コンピュータ・モデルのいずれかのタイプを指すためのものである。
例示的実施形態は、外部当事者が認知システムの構成および訓練を再現できないようにするノイズを、保護された認知システムの出力に導入する。すなわち、ノイズは、出力の妥当性を保ちながら、認知システムによって生成された実際の出力を覆い隠す。このようにして、認知システムは、正しい出力を生成することになる訓練済みおよび構成済み認知システムの独自のバージョンを他の誰かが生成するのを防ぎながら、認知システムの動作を実施するために使用されることが可能である。攻撃者は、ノイズ入り出力を、独自の認知システム・モデルを訓練するための正しい出力であると仮定する能力があり得るが、攻撃者のモデルは、攻撃者が再作成しようとする認知システム・モデルの同じ出力を依然として生成することはない。これは、ノイズ入り出力があったとしても、正しい出力が複数の可能性のうちの1つであり得るが、同じモデルの重みを有する全く同じ認知システム・モデルのアーキテクチャだけが、複数の可能性のうちのどれが正しいものであるかを正しく識別することができるからである。その上、例示的実施形態は、例示的実施形態のメカニズムが勾配判定を防ぐためのノイズを導入し、出力の誤分類を防ぐことを保証するためのメカニズムを提供するので、回避攻撃、すなわち、攻撃者が疑いを生じさせることなく誤分類を強いるノイズを導入する攻撃を防ぎながら、モデルの正しい出力を提供する。
ニューラル・ネットワーク・ベースのシステムの成功は、これらに基づく多くのウェブ・サービスを生じてきた。サービス・プロバイダは、アプリケーション・プログラム・インターフェース(API:application program interface)をウェブ・サービスのエンド・ユーザに提供し、APIを通じて、エンド・ユーザは、ウェブ・サービスによって処理されることになる入力データを自分のクライアント・コンピューティング・デバイスを介して投入することができ、入力データに対するウェブ・サービスの動作の結果を示す結果のデータが提供される。認知システムがニューラル・ネットワークを何度も利用して、分類タイプ動作を実施し、入力データを、情報の様々な定義済みカテゴリに分類する。例えば、画像処理ウェブ・サービスでは、例えばピクセルなど複数のデータポイントを含む入力画像がウェブ・サービスに入力されてもよく、ウェブ・サービスは、入力画像の要素を画像内に存在する物体のタイプに分類するように、入力画像データに対して動作し、これにより、物体または画像認識を実施し、例えば、画像は、人、車、建物、犬、等を含む。言語認識、自然言語処理、音声認識、ソーシャル・ネットワーク・フィルタリング、機械翻訳、および生命情報科学を含むがこれらに限定されない、様々な他のタイプの入力データに対して、同様のタイプの分類分析が実施され得る。本明細書で説明されるいくつかの例示的実施形態に特に関心があるのは、このようなウェブ・サービスが、自然言語処理を使用した患者電子医療記録(EMR)における患者情報を分析すること、X線画像、磁気共鳴画像法(MRI)画像、コンピュータ断層撮影(CT)スキャン画像などの、医療画像を分析すること、および同様のものを行うための機能を提供し得ることである。
多くの場合、サービス・プロバイダは、ニューラル・ネットワーク・ベースの認知システムの実行によって提供されたウェブ・サービスの使用料金をエンド・ユーザに請求する。それでも、エンド・ユーザは、独自の訓練済みニューラル・ネットワークを生成し、これにより、サービス・プロバイダのサービスを利用する必要なく済ませることができるように、サービス・プロバイダによって提供されたAPIを利用して、入力データのセットを投入し、認知システムのニューラル・ネットワークの訓練を複製するのに十分な出力データを獲得することができ、サービス・プロバイダの収入の損失になることが認識されてきた。すなわち、エンド・ユーザがサービス・プロバイダのウェブ・サービスを利用して、入力データに対して実施された分類動作に基づいて入力データのセットにラベル付けしている場合、例えば、10,000個の入力データ・セット(ここで、本明細書で使用されるような「データ・セット」という用語は、1つまたは複数のデータ・サンプルのセットを指す)など、十分な入力データ・セットを投入して、対応する出力されたラベルを取得した後、出力されたラベルは、同様の分類動作を実施するための、例えば、エンド・ユーザ独自のニューラル・ネットワークなど、別のニューラル・ネットワークを訓練するための「ゴールデン」セットまたはグラウンド・トゥルースとして使用され得る。これは、本明細書では、モデル窃取攻撃と呼ばれ、モデル窃取攻撃では以後「攻撃者」と呼ばれるエンド・ユーザが、訓練済みニューラル・ネットワークを密かに再作成する気になり、サービス・プロバイダのAPIの利用を通じてサービス・プロバイダによって作成および訓練されたニューラル・ネットワーク・モデルを盗もうとする。
例示的実施形態は、ニューラル・ネットワーク・モデルを複写または回避しようとする攻撃者から保護する誤解させる勾配を生み出すように、ニューラル・ネットワークによって生成された出力された確率に変動すなわちノイズを導入することによって、モデル窃取攻撃および回避攻撃などの、勾配またはその推定を使用した攻撃を実施するという攻撃者の能力を低減させるか取り除く。導入された変動(ノイズ)は、正しい方向および量から攻撃者の勾配を逸脱させ、保護されたニューラル・ネットワーク・モデルの正確さの低下を最小化する。これらの2つの尺度を満たすために、いくつかの例示的実施形態では、変動を生成するときに以下の2つの一般的な指針に従う。(1)変動を使用して、機械学習パラメータを学習する1つまたは複数の方式が、勾配の曖昧性を生じるように追加され、例えば、1つの例示的実施形態では、1次導関数の符号が逆転される(1次導関数は、関数または曲線の、例えば増加/減少などの、方向を識別する)、および(2)例えばソフトマックスまたはシグモイド関数などの関数のどちらかの終端に、+/-0.5まで、ノイズが最初に追加される。
これらは、いくつかの例示的実施形態のための実例の指針にすぎず、本発明の思想および範囲から逸脱することなく、これらに対して多くの種々の修正が行われてもよいことを理解されたい。例えば、活性化関数が、深層学習分類器のためのその標準的な使用目的により、例示的実施形態のために選ばれたとき、活性化関数は、ソフトマックスまたはシグモイド関数である必要はない。例示的実施形態によるノイズの導入によって曖昧性が追加された、保護されたニューラル・ネットワークのいずれかの活性化関数が利用されてもよい。
一般に、例示的実施形態は、モデルまたはニューラル・ネットワークの正確さに悪影響を及ぼすことなく変動を追加するための様々な方法およびメカニズムを提供する。例えば、モデルまたはニューラル・ネットワークの活性化関数に任意のノイズが追加され、これにより、勾配ベースの攻撃者をだますことになる出力の曖昧性を生じ得る。それでも、いくつかの例示的実施形態では、例示的実施形態の変動メカニズムは、訓練済みモデルまたはニューラル・ネットワークによって生成された、結果の分類、すなわち最高確率を有するクラスの出力を変化させない任意のノイズを追加する。すなわち、出力された確率ベクトルy=[y_1,・・・,y_n]を考慮すると、これらの例示的実施形態の変動メカニズムは、argmax_i{y_i+d_i}=argmax_i{y_i}になるような、ノイズdを追加し得る。
訓練済みモデルまたはニューラル・ネットワークの出力に追加される曖昧性のために、例示的実施形態の変動メカニズムは、曖昧性だけでなく勾配の符号変化を引き起こすノイズを追加し得る。このような実施形態では、変動メカニズムは、クラスの確率が1または0に近くなり、したがって、出力の結果のクラスが保護される可能性が高くなるような明らかなケースに、より大きい変動を追加する。また、これらのケースにノイズを追加することによって、変動メカニズムは、学習の曖昧性を追加する。最後に、追加されたノイズによって、変動した出力が、より明らかなケースでより低い確率を有するのとは対照的に、元のモデルが、より明らかなケースでより高い確率を有するので、勾配の方向は元の勾配に対して逆になる。
この尺度を満たす変動の多くの異なる実装形態があってもよく、このような全ての変動が、本発明の思想および範囲内であると考えられる。すなわち、上記の尺度および指針を満たすニューラル・ネットワークの出力において変動を生成するどのような関数も、本発明の思想および範囲から逸脱することなく使用され得る。
例えば、所与のニューラル・ネットワークf(x)=シグマ(h(x))があると仮定し、ここで、シグマは、ソフトマックスまたはシグモイド関数であり、h(x)は、ニューラル・ネットワークの剰余を表す関数であり、xは、入力データである。様々な可能な変動が、上記の尺度および指針を満たし、この例は、以下のようなものである。
1.複写保護(f(x))=正規化(シグマ(h(x))-0.5(シグマ(0.25h(x))0.5))、
2.[h1,inf)および(-inf,-h1]上の+/-0.5までのガウス・ノイズ。ここで、h1は、シグマ(h(x))>0.99になるような最小値h(x)である、ならびに
3.シグマ(h(x)+h’(x))の次元のランキングがシグマ(h(x))に等しくなるような、ランダム・ノイズh’(x)
ここで、正規化は、シグマがシグモイド関数である場合、恒等関数であるか、または、シグマがソフトマックス関数である場合、入力ベクトルをその値の合計で割る関数である。
上記の実例の変動1では、曖昧なケースは現状のまま保たれるが、変動は、結果クラスを同じに保つ0.5まで、同じ入力に対する出力がより確かな場合、モデルまたはニューラル・ネットワークの出力を不確かにする。すなわち、元のモデルの確率/信頼度が高くなるほど、保護されたモデルの確率/信頼度が低くなる。
上記の実例の変動2では、出力が確かであるか確実なとき、すなわち、例えば、1.0、0.9など、分類の確率が高いとき、実装形態に応じて、ランダム・ノイズの1つのタイプ(ガウス・ノイズと呼ばれる)が追加される。上記の変動1と上記の変動2との差は、結果がより確かな場合、変動1がより多くのノイズを追加する一方で、変動2は、このような調整を必要とせず、したがって、いくつかのケースでは、確かな出力が多くなると、ノイズが少なくなることである。変動3は、入力データを考慮して可能性のあるクラスの相対的な順序を変化させないノイズを追加し、例えば、入力画像データが牛より鳥である可能性がより高い場合、例えば、変動は、この順序が保護される限り、ノイズを追加する。
これらの変動は、このエリアの変化がほぼないように、f(x)=0.5など、境界ケースの変化を最小化するが、確率スコアが、例えばf(x)=1.0に近いなど、高い場合、または例えばf(x)=0.0に近いなど、低い場合、変動は大きい。それでも、このケースでは、出力分類のランキングは、変化が最高ランクの分類(#1)に対して+/-0.25までであり、1.0-0.25=0.75が、分類の中で依然として最高確率スコアなので、変化しない。すなわち、分類の元の確率が1.0であり、本明細書で示された例示的実施形態によるノイズの導入を通じて、確率が0.75に低減される場合、これは、依然として高いと考えられ得、入力の分類は同じままである。それでも、確率が0.5に落ちた場合、平均ユーザは、これを、出力が使用不能であり得、さらなる分析が要求され得ることを示す、不確かなものであると考えるはずである。
したがって、例示的実施形態のメカニズムは、具体的には、モデル窃取攻撃またはモデル回避攻撃あるいはその両方を避けるために、ニューラル・ネットワーク・メカニズムまたは認知システムに以前存在しなかった、さらなる一般的でない機能を追加することによって、ニューラル・ネットワーク、およびニューラル・ネットワークを実行する認知システムの動作を改善する。例示的実施形態のメカニズムは、結果の出力の有用性を保ちながら、ニューラル・ネットワーク、機械学習モデル、深層学習モデル、または同様のものの訓練の難読化を可能にするために、上述の尺度および指針に従って変動の導入を具体的に実施する、ニューラル・ネットワークおよび認知システムにおけるさらなる技術的ロジックを追加し、例えば、モデルによって生成された実際の確率値がモデルの訓練に対して正確でなかったとしても、出力データの分類およびラベリングは依然として正確である。例示的実施形態のメカニズムは、本発明の追加のロジックを実施し、これにより、1つまたは複数の一般的でないデータ処理システムまたはコンピューティング・デバイスあるいはその両方を備える一般的でない技術環境を生じるように特に構成された、1つまたは複数のデータ処理システムまたはコンピューティング・デバイスあるいはその両方を伴う技術環境に固有のものである。その上、例示的実施形態は、ニューラル・ネットワーク・モデル、機械学習モデル、深層学習モデル、または、他のこのような人工知能もしくは認知動作ベースのコンピューティング・メカニズムを有する専用コンピューティング・デバイスの訓練の再現を伴うモデル窃取攻撃の技術的問題を解決することを特に対象とする。さらに、例示的実施形態は、モデルに入力を誤分類させるために、訓練済みモデルの判定された勾配に基づいて、導入するべきノイズの正しいレベルの判定を伴うモデル回避攻撃の技術的問題を解決する。
例示的実施形態の様々な態様の議論をより詳細に始める前に、本説明の全体にわたって、様々な動作、機能、および同様のものを実施する本発明の要素を指すために、用語「メカニズム」が使用されることを最初に理解されたい。「メカニズム」は、本明細書でこの用語が使用されるとき、装置、手順、またはコンピュータ・プログラム製品の形での、例示的実施形態の機能または態様の実装形態であることがある。手順の場合、手順は、1つまたは複数のデバイス、装置、コンピュータ、データ処理システム、または同様のものによって実行される。コンピュータ・プログラム製品の場合、コンピュータ・プログラム製品内または上に含まれるコンピュータ・コードまたは命令によって表されたロジックは、特定の「メカニズム」に関連付けられた機能を実行するため、または動作を実施するために、1つまたは複数のハードウェア・デバイスによって実行される。このように、本明細書で説明されるメカニズムは、専用ハードウェア、汎用ハードウェア上で実行するソフトウェア、専用もしくは汎用ハードウェアによって命令を容易に実行できるように媒体に格納されたソフトウェア命令、機能を実行するための手順もしくは方法、または上記のいずれかの組合せとして実行することができる。
本説明および特許請求の範囲は、例示的実施形態の特定の特徴および要素に関して、用語「1つ(a)」、「の少なくとも1つ(at least one of)」、および「の1つまたは複数(one or more of)」を使用することがある。これらの用語および句は、特定の例示的実施形態に存在する特定の特徴または要素の少なくとも1つがあるが、2つ以上も存在できることを述べるためのものであることを理解されたい。すなわち、これらの用語/句は、単一の特徴/要素が存在することに本説明または特許請求の範囲を限定することを意図するものではなく、複数のこのような特徴/要素が存在することを必要とすることを意図するものでもない。対照的に、これらの用語/句は、単に、少なくとも単一の特徴/要素を必要としており、本説明および特許請求の範囲内には複数のこのような特徴/要素がある可能性がある。
また、用語「エンジン」の使用は、本発明の実施形態および特徴の説明に関連して本明細書で使用される場合、エンジンに帰することができる、またはエンジンによって実施される、あるいはその両方のアクション、ステップ、処理等を行うため、または実施するため、あるいはその両方の、何らかの特定の実装形態を限定するためのものではないことを理解されたい。エンジンは、機械可読メモリにロードまたは格納され、プロセッサによって実行される適切なソフトウェアと組み合わせた、汎用または専用あるいはその両方のプロセッサのいずれかの使用を含むがこれらに限定されない指定の機能を実施する、ソフトウェア、ハードウェア、もしくはファームウェア、またはその組合せ、あるいはこれらの任意の組合せであってもよい。さらに、特定のエンジンに関連付けられた任意の名前は、別途指定されない限り、参照の利便性のためのものであり、特定の実装形態に限定するためのものではない。追加として、エンジンに帰するいずれかの機能は、同じもしくは異なるタイプの別のエンジンの機能に組み込まれた、もしくは結合された、またはその両方の、あるいは、様々な構成の1つもしくは複数のエンジンにわたって分散された、複数のエンジンによって等しく実施することができる。
さらに、以下の説明は、例示的実施形態の実例の実装形態をさらに示すため、および、例示的実施形態のメカニズムの理解を助けるために、例示的実施形態の様々な要素についての複数の様々な例を使用することを理解されたい。これらの例は、非限定的であることを意図するものであり、例示的実施形態のメカニズムを実行するための様々な可能性を網羅するものではない。本発明の思想および範囲から逸脱することなく、本明細書で提供される例に加えて、または置き換えて利用することができる、これらの様々な要素に対する他の多くの代替実装形態があるということが、本説明を考慮した当業者には明らかであろう。
本発明は、システム、方法、またはコンピュータ・プログラム製品、あるいはその組合せであってもよい。コンピュータ・プログラム製品は、本発明の態様をプロセッサに実行させるためのコンピュータ可読プログラム命令を有するコンピュータ可読ストレージ媒体(または複数の媒体)を含むことができる。
コンピュータ可読ストレージ媒体は、命令実行デバイスによる使用のための命令を保持し、記憶できる有形デバイスであってもよい。コンピュータ可読ストレージ媒体は、例えば、電子ストレージ・デバイス、磁気ストレージ・デバイス、光ストレージ・デバイス、電磁気ストレージ・デバイス、半導体ストレージ・デバイス、または前述の任意の適切な組合せであってもよいがこれらに限定されない。コンピュータ可読ストレージ媒体のより具体的な例の完全に網羅されていないリストは、ポータブル・コンピュータ・ディスケット、ハード・ディスク、ランダム・アクセス・メモリ(RAM)、リード・オンリ・メモリ(ROM)、消去可能プログラマブル・リード・オンリ・メモリ(EPROMまたはフラッシュ・メモリ)、スタティック・ランダム・アクセス・メモリ(SRAM)、ポータブル・コンパクト・ディスク・リード・オンリ・メモリ(CD-ROM)、デジタル・バーサタイル・ディスク(DVD)、メモリ・スティック、フロッピー(R)・ディスク、命令が記録されたパンチ・カードまたは溝内隆起構造などの機械的にエンコードされたデバイス、および前述の任意の適切な組合せを含む。コンピュータ可読ストレージ媒体は、本明細書で使用されるように、電波もしくは他の自由に伝搬する電磁波、導波路もしくは他の伝送媒体を通じて伝搬する電磁波(例えば、光ファイバ・ケーブルを通過する光パルス)、またはワイヤを通じて伝送される電気信号などの、一時的な信号自体であると解釈されるべきではない。
本明細書で説明されるコンピュータ可読プログラム命令は、コンピュータ可読ストレージ媒体からそれぞれのコンピューティング/処理デバイスに、あるいは、例えば、インターネット、ローカル・エリア・ネットワーク、広域ネットワーク、もしくはワイヤレス・ネットワーク、またはその組合せといった、ネットワークを介して外部コンピュータまたは外部ストレージ・デバイスに、ダウンロードすることができる。ネットワークは、銅伝送ケーブル、光伝送ファイバ、ワイヤレス伝送、ルータ、ファイアウォール、スイッチ、ゲートウェイ・コンピュータ、またはエッジ・サーバ、あるいはその組合せを備えることができる。各コンピューティング/処理デバイス内のネットワーク・アダプタ・カードまたはネットワーク・インターフェースは、コンピュータ可読プログラム命令をネットワークから受け取り、それぞれのコンピューティング/処理デバイス内のコンピュータ可読ストレージ媒体に格納するためにコンピュータ可読プログラム命令を転送する。
本発明の動作を実行するためのコンピュータ可読プログラム命令は、アセンブラ命令、インストラクション・セット・アーキテクチャ(ISA)命令、機械語命令、機械依存命令、マイクロコード、ファームウェア命令、状態設定データ、または、Java(R)、Smalltalk(R)、C++、もしくは同様のものなどのオブジェクト指向プログラミング言語、および、「C」プログラミング言語、もしくは類似のプログラミング言語などの従来の手続き型プログラミング言語を含む1つもしくは複数のプログラミング言語の任意の組合せで書かれたソース・コードもしくはオブジェクト・コードであってもよい。コンピュータ可読プログラム命令は、スタンドアロンのソフトウェア・パッケージとして、全面的にユーザのコンピュータ上で、部分的にユーザのコンピュータ上で実行することができ、部分的にユーザのコンピュータ上および部分的にリモート・コンピュータ上で、または全面的にリモート・コンピュータもしくはサーバ上で実行することができる。後者のシナリオでは、リモート・コンピュータは、ローカル・エリア・ネットワーク(LAN)もしくは広域ネットワーク(WAN)を含む任意のタイプのネットワークを通じてユーザのコンピュータに接続されてもよく、または、接続は、(例えば、インターネット・サービス・プロバイダを使用してインターネットを通じて)外部コンピュータに対して行われてもよい。いくつかの実施形態では、例えば、プログラム可能論理回路機器、フィールド・プログラマブル・ゲート・アレイ(FPGA)、またはプログラマブル・ロジック・アレイ(PLA)を含む電子回路機器は、本発明の態様を実施するために、コンピュータ可読プログラム命令の状態情報を利用して電子回路機器を個別化にすることによって、コンピュータ可読プログラム命令を実行することができる。
本発明の態様は、本発明の実施形態による方法、装置(システム)、およびコンピュータ・プログラム製品のフローチャートまたはブロック図あるいはその両方を参照しながら本明細書で説明される。フローチャートまたはブロック図あるいはその両方の各ブロック、ならびにフローチャートまたはブロック図あるいはその両方におけるブロックの組合せは、コンピュータ可読プログラム命令によって実行できることが理解されよう。
これらのコンピュータ可読プログラム命令は、コンピュータまたは他のプログラム可能データ処理装置のプロセッサを介して実行する命令が、フローチャートまたはブロック図あるいはその両方の1つまたは複数のブロックで指定された機能/行為を実行するための手段を作り出すべく、汎用コンピュータ、専用コンピュータ、または他のプログラム可能データ処理装置のプロセッサに提供されて、マシンを作り出すものであってよい。また、これらのコンピュータ可読プログラム命令は、フローチャートまたはブロック図あるいはその両方の1つまたは複数のブロックで指定された機能/行為の態様を実行する命令を含む製品を、命令を格納したコンピュータ可読ストレージ媒体が備えるべく、コンピュータ可読ストレージ媒体に格納され、コンピュータ、プログラム可能データ処理装置、または他のデバイス、あるいはその組合せに特定の手法で機能するように指示することができるものであってもよい。
また、コンピュータ可読プログラム命令は、コンピュータ、他のプログラム可能装置、または他のデバイス上で実行する命令が、フローチャートまたはブロック図あるいはその両方の1つまたは複数のブロックで指定された機能/行為を実行するべく、コンピュータ実行処理を生み出すために、コンピュータ、他のプログラム可能データ処理装置、または他のデバイスにロードされ、コンピュータ、他のプログラム可能な装置、または他のデバイス上で一連の動作ステップを実施させるものであってもよい。
図中のフローチャートおよびブロック図は、本発明の様々な実施形態によるシステム、方法、およびコンピュータ・プログラム製品の可能な実装形態のアーキテクチャ、機能、および動作を示す。この点に関して、フローチャートまたはブロック図の中の各ブロックは、指定の論理機能を実現するための1つまたは複数の実行可能命令を含む命令のモジュール、セグメント、または一部を表すことができる。いくつかの代替実装形態では、ブロックに記された機能は、図に記された順序とは異なる順序で発生してもよい。例えば、連続して示された2つのブロックは、実際には、実質的に同時に実行されてもよく、または、ブロックは、含まれる機能に応じて、時には逆の順序で実行されてもよい。ブロック図またはフローチャートあるいはその両方の各ブロック、および、ブロック図またはフローチャートあるいはその両方におけるブロックの組合せは、指定の機能もしくは行為を行うか、専用ハードウェアとコンピュータ命令の組合せを実行する専用ハードウェア・ベースのシステムによって実現できることにも留意されたい。
上述のように、本発明は、モデル窃取またはモデル回避など、勾配またはその推定を使用した攻撃から、ニューラル・ネットワークまたは深層学習メカニズムあるいはその両方を備える認知システムなど、認知システムを保護するためのメカニズムを提供する。図1A~図1Dは、本発明によって対処される問題、および例示的実施形態のメカニズムによって提供されるソリューションを示すブロック図である。図1A~図1Dの図では、グラウンド・トゥルース・データ構造または同様のものを使用した教師ありもしくは半教師あり処理、またはニューラル・ネットワーク・モデルを訓練するための任意の他の既知のもしくは後で開発される方法などを通じて、訓練データを使用してニューラル・ネットワーク・モデルが訓練されてきたことが想定される。図1Aおよび図1Bは、モデル窃取攻撃の問題、および例示的実施形態のメカニズムによって提供される変動挿入エンジン160のソリューションを示すブロック図を示す。図1Cおよび図1Dは、モデル回避攻撃の問題、および例示的実施形態のメカニズムによって提供される変動挿入エンジン160のソリューションを示すブロック図を示す。
図1A~図1Dに示された例は、ニューラル・ネットワーク・モデルが、数字の画像に対する分類動作を実施し、これにより、数字の画像を「0」から「9」までの数字として分類するために使用されていることを想定する。これは、ニューラル・ネットワーク・モデルを使用して実施され得る1つの可能な簡単な分類動作の例としてのみ使用され、例示的実施形態のメカニズムを実行することができるニューラル・ネットワーク・モデルの用途に対する限定とみなされるべきではない。上述のように、例示的実施形態のメカニズムには、ニューラル・ネットワーク・モデル、機械学習モデル、または同様のものによって実施される特定の人工知能動作に関わらず、任意のニューラル・ネットワーク・モデル、機械学習モデル、または同様のものの出力が利用され得る。その上、図1A~図1Dには明示的に示されていないが、ニューラル・ネットワーク・モデル、機械学習モデル、深層学習モデル、または同様のものは、自然言語処理、画像分析、患者処置の助言、医療画像分析、または、以下で説明されるような大量の他の認知動作のうちのいずれかなどの、複雑な認知動作を実施するようなモデルを実行する、より複雑な認知システムの一部であってもよい。
図1Aに示されるように、モデル窃取攻撃のために、攻撃者110が、入力データ120の1つまたは複数のセットを訓練済みニューラル・ネットワーク・モデル130に投入して、攻撃者110に結果データとして出力されたラベル付きデータ・セット140を取得し得る。やはり、本明細書で使用されるような「データ・セット」という用語は、1つまたは複数のデータ・サンプルを含み得るデータのセットを指すことを理解されたい。データ・セットが、2つ以上のデータ・サンプルを含む場合、これらのデータ・サンプルは、訓練済みニューラル・ネットワーク・モデル130にバッチとして入力され得る。
この処理は、入力データ120の複数のセットに対して繰り返され、複数のラベル付きデータ・セット140(これは、1つまたは複数のデータ・サンプルのラベルも含み得る)を生成し得る。ラベル付きデータ・セット140は、データが使用されることになる特定の認知動作に重要な情報の追加のタグまたはラベルでラベルなし入力データが拡張された、訓練済みニューラル・ネットワーク・モデル130によって生成された出力データのセットである。例えば、患者処置の助言認知システムでは、ラベル付きデータは、例えば、疾患、処置、患者の年齢、患者の性別といった、データが関連付けられる様々な医療概念を指定するラベル、タグ、またはアノテーションを含み得る。上記の例では、ニューラル・ネットワーク・モデル130の動作は、入力データ120のセットにおいて指定された入力画像の一部を、入力画像の一部が、例えばクラス「0」から「9」を表す、数値を表す10個のカテゴリのうちの1つに分類することである。したがって、入力データ120のセットに貼られたラベルは、「0」または「1」または「2」などのラベルでもよい。
複数の入力データ・セット120に基づいて複数のラベル付きデータ・セット140を取得した攻撃者110は、入出力のこの対応関係を利用して、訓練済みニューラル・ネットワーク・モデル130を複製するように独自のモデル150を訓練し得る。攻撃者110は、訓練済みニューラル・ネットワーク・モデル130の独自の複製されたバージョン150を有すると、将来の入力データ・セット120のためのラベル付きデータ・セット140を取得するために、元の訓練済みニューラル・ネットワーク・モデル130を利用する必要はもはやなく、独自の複製されたモデル150を利用することができる。これにより、元の訓練済みニューラル・ネットワーク・モデル130のプロバイダは、元の訓練済みニューラル・ネットワーク・モデル130の使用に対して請求され得る料金からの収入を失う。加えて、これはニューラル・ネットワーク・モデル130の訓練に関するサービス・プロバイダのリソース投資の利益を、このようなリソース投資を実際に行う必要なく、密かに取得する、サービス・プロバイダの競争相手を生み得る。
図1Aに示されるように、訓練済みニューラル・ネットワーク130は、入力データ・セット120を分類するための分類動作を実施する。分類動作の出力は、確率値のベクトル135であり、ベクトル出力135の各スロットは、入力データ・セット120の別個の可能な分類を表す。ニューラル・ネットワーク、機械学習、深層学習、または他の人工知能モデルの訓練は、一般に、当技術分野で知られており、このような訓練を実施するために、任意のこのような方法が使用され得ることが仮定される。訓練は、一般に、教師ありまたは半教師ありフィードバックに基づいて入力データ・セット120に正しくラベル付けした正しいベクトル出力135をモデルに出力させるために、データ・セットの訓練に基づいてモデルのノードによってスコア付けされた、様々な特徴に関連付けられた重み付きの値を修正することを伴う。ニューラル・ネットワーク・モデル130は、ニューラル・ネットワーク・モデル130における様々なレベルのノードを通じて入力データ・セット120を処理して、出力ノードが表す特定のクラスまたはラベルに対応する確率値を出力ノードにおいて生成し、すなわち、出力ノードの値は、対応するベクトル・スロットのクラスまたはラベルが入力データ・セット120に適用される確率を示す。
この上記の例では、ベクトル出力135の各スロットは、入力画像の一部が表し得る可能な数値を示す「0」から「9」までの可能な分類に対応する。確率値は、0%(例えば、0.0)から100%(例えば、1.0)までを範囲としてもよく、所望の特定の実装形態に基づく様々なレベルの精度を有してもよい。したがって、「1」のラベルまたは分類が、1.0の確率値を有する場合、これは、入力データ・セット120が「1」の数値を表す絶対的な信頼度を示し、値0.0の確率は、入力データ・セット120が、対応する値を表さないことを示し、すなわち、このベクトル・スロットのラベルは、入力データ・セット120に適用されない。
これは、例示のために使用される簡単な例であるが、分類および対応するラベルの数、ならびに対応するベクトル出力135は、非常に複雑であり得ることを理解されたい。別の例として、これらの分類は、例えば、大動脈、心臓弁、左心室、右心室、肺といった、例えば、患者の胸郭における人体構造の内部構造が分類されている医療画像化用途におけるものでもよい。ベクトル出力135は、特定の用途および実装形態に応じた粒度の様々なレベルにおける、任意の数の潜在的なベクトル・スロットまたは分類を含んでもよく、ベクトル出力135は、これに対応して様々なサイズのものでもよいことを理解されたい。
対応する入力データ・セット120にラベル付けするために、ベクトル出力135における最高確率値ベクトル・スロット(または単に「スロット」)が選択され得る。したがって、例えば、訓練済みニューラル・ネットワーク・モデル130が適切に訓練されると仮定すると、数値「2」の画像を有する入力データ・セット120は、図1Aに示されたものと同様の出力ベクトル135を有することになり、出力ベクトル135のスロットは、例えば、この例では「0.9」といった、ベクトル出力135のスロットの全てにおけるこれらの最高確率値である対応する確率値を有する。したがって、ラベル付きデータ出力140は、数値「2」に対応する画像の一部を示す入力データ・セット120に関連付けられた「2」のラベルを有するラベル付きデータ・セットを含むはずである。
図1Bは、モデル窃取攻撃を避けるために使用される1つの例示的実施形態のメカニズムの概観を示すブロック図を提供する。図1Bに示された図は、訓練済みニューラル・ネットワーク・モデル130に関連付けられた、またはその一部として、変動挿入エンジン160が提供されることを除いて、図1Aのものと同様である。例えば、変動挿入エンジン160が、モデル130自体の一部として提供される実施形態では、変動挿入エンジン160は、モデルの出力層の直前のモデル130の追加の層として動作し、これにより、モデル130の出力層の直前の訓練済みニューラル・ネットワーク・モデル130の層で生成された確率値で変動を導入し得る。変動挿入エンジン160が、モデル130の外部にある実施形態では、変動は、訓練済みニューラル・ネットワーク・モデル130の出力ベクトル135に注入され、これにより、攻撃者110に出力されたラベル付きデータ・セット140を生成する前の修正されたベクトル出力165になるように、訓練済みニューラル・ネットワーク・モデル130によって生成された元のベクトル出力135を修正し得る。
図1Bに示されるように、修正されたベクトル出力165は、ベクトル・スロットに対応する異なるラベルまたはクラスに関連付けられた確率値の修正されたセットを提供する。これらの修正された確率値は、訓練済みニューラル・ネットワーク・モデル130から計算された確率値への変動すなわちノイズの導入によって生成される。したがって、この例では、ラベル「2」が正しいラベルであることを圧倒的に示す確率値「0.9」を有する正しい分類「2」ではなく、ベクトル出力165は、確率値が「0.6」であることを示し、ラベル「3」が現在、確率値「0.4」を有する。結果は、依然として、入力データ・セットに適用された同じラベル「2」であるが、確率値は、訓練済みニューラル・ネットワークが正常に生成したものとは異なる。したがって、攻撃者110が、修正されたベクトル出力165の修正された確率値を利用して、独自のニューラル・ネットワーク・モデルを訓練した場合、正しくない確率値が利用されるはずなので、結果の訓練は、訓練済みニューラル・ネットワーク・モデル130を複製しないはずである。
訓練済みニューラル・ネットワーク・モデル130の出力への変動すなわちノイズの導入は、訓練済みニューラル・ネットワーク・モデル130の動作によって別途生成されていたはずの実際のラベル付きデータ・セット140ではなく、攻撃者110に提供された修正または操作されたラベル付きデータ・セット170を生じる。攻撃者が、操作されたラベル付きデータ・セット170を使用して、攻撃者自身のニューラル・ネットワーク・モデル150を訓練した場合、結果は、性能が低い不当に複製されたモデルになる。
前述のように、図1A~図1Bに関して上記で説明されたものなどのモデル窃取攻撃から保護することに加えて、例示的実施形態は、図1C~図1Dに示されたような、モデル回避攻撃からの保護をさらに提供する。図1Cに示されるように、モデル回避攻撃では、攻撃者110は、勾配計算ツール170を使用して、出力135に基づいて、訓練済みモデル130の勾配172を計算しようとする。モデル回避攻撃の一部としてのこのような勾配計算は、一般に、当技術分野で知られている。計算された勾配172に基づいて、攻撃者110は、モデル130にデータ120を誤分類させ、不正確なラベル付きデータ140、すなわち誤分類されたデータ140を生成させるために、データ120に導入されることが可能なノイズのレベルを決定する。したがって、誤分類ノイズ174を導入して入力データ120を修正することによってノイズ入りデータ176が生成され、誤分類ノイズ174により、モデル130は、別途分類されるはずのものとは異なるクラスに入力データを誤分類し、例えば、一時停止標識の画像を表すデータ120が「一時停止標識」のクラスに分類されるのではなく、入力データ120のノイズ入りバージョン、すなわちデータ176により、入力データ120が、例えば「制限速度標識」などの異なるクラスに誤分類されることになる。導入されるノイズの量は、モデル130が入力データ120を誤分類するが、攻撃を検出するほど十分顕著なものではない。
図1Dに示されるように、変動挿入エンジン160は、上記で前述されたのと同様の様式であるが、攻撃者の勾配計算ツール170がモデル130の勾配を正しく識別できないように勾配を修正するように動作する。したがって、勾配計算ツール170が正しい勾配172を生成するのではなく、モデル130の勾配に導入された変動に基づいて生成された出力135に基づいて、正しくない勾配180が決定される。したがって、モデル130による誤分類を引き起こさない正しくない誤分類ノイズ183が、攻撃者110によって生成されることになる。すなわち、ノイズ入りデータ184は、誤分類ノイズ182をノイズ入りデータ184に導入しながら、依然として、モデル130がデータ120を不正確に分類するほど十分顕著なものではない。したがって、モデル130は、依然として、正しいラベル付き(分類された)データ140を出力することになる。
訓練済みニューラル・ネットワーク・モデルによって生成された出力への変動すなわちノイズの導入が、ニューラル・ネットワーク・モデルの訓練を難読化するように動作する方式を示すために、図2Aおよび図2Bにおける実例の図を考える。図2Aは、ニューラル・ネットワーク・モデルと共に典型的に使用されるシグモイド関数を示す。図2Aに示されるように、確率値は、予測可能な様式でシグモイド関数曲線に従う。すなわち、入力データ・セットのデータ・サンプルが、ニューラル・ネットワーク・モデルの複数の層を通じて処理されるので、データ・サンプルの特徴(例えば、黒いピクセルの形状またはレイアウト)が集められて「スコア」を生み出す。このスコアは、出力された確率に非常に関連したものであるが、正規化されない。いくつかの例示的実施形態では、スコアは、0.0から1.0までを範囲とする確率であるが、このスコアは、任意の値であることが可能である。シグモイドまたはソフトマックス関数は、このようなスコアを[0,1]境界に正規化するための関数である。シグモイド関数は、単一のスコアに着目し(例えば、ラベル「2」のスコアは100であり、したがって確率は0.9になる)、ソフトマックスは、複数の競争スコアを考慮し(例えば、ラベル「2」のスコアは100であり、ラベル「3」のスコアは300である)、この場合、ラベル「2」の確率は0.2であり、ラベル「3」の確率は0.8である。シグモイド関数は、2つの別個のクラスしかない2項分類でしか使用されない。ソフトマックス関数は、より多くのクラスへのシグモイド関数の一般化であり、したがって、シグモイドとの多くの類似性を共有する。
シグモイドまたはソフトマックス関数は、モデルの重みをアップデートすることによって、ニューラル・ネットワーク・モデルの訓練に応じて、伸ばされるまたは縮められると考えられることが可能であるが、例えば曲線適合または同様のものを通じて、ラベル付きデータ・セット140を与えられた攻撃者110には予測可能であり、すなわち、攻撃者は、訓練済みニューラル・ネットワーク・モデル130から取得された、入力データ・セット120のコレクション、および対応する出力されたラベル付きデータ140に基づいて、訓練済みニューラル・ネットワーク・モデル130によって使用される同じ曲線を学習しようとする。典型的には、曲線のこのような学習は、曲線の湾曲の方向および規模を知るために曲線に沿ったポイントからの勾配の計算(例えば、グラフ化された曲線のy座標の変化をx座標の変化で割ること)を必要とする。
図2Bをここで参照すると、例示的実施形態のメカニズムによれば、曲線の正しい勾配を攻撃者110が識別できないように、変動すなわちノイズが曲線に導入される。図2Bに示されるように、変動が導入された曲線の一部において、攻撃者110は、変動でだまされて、曲線に沿ったポイントの正しくないロケーションを識別し、例えば、攻撃者は、ロケーションを見つけるために確率スコア(Y軸)を頼りにするので、攻撃者110は、曲線に導入された変動200によってだまされ、ロケーションP1をロケーションP2にあるものとして識別する可能性がある。すなわち、変動がない場合、攻撃者は、確率(Y軸の値)を考慮して正しい位置(X軸の値)を推測することができる。それでも、この変動がある場合、所与の確率で2つ以上の位置がある。結果として、攻撃者は、複製された曲線をどの位置に適合させるべきか正確に判定することができない。その上、変動のタイプに応じて、図2Bに示されるように、複製されたモデルを訓練するために(モデル窃取攻撃)、または導入するべき誤分類ノイズを決定するために(回避攻撃)攻撃者によって計算された勾配は、本物の方向の逆の方向であることが可能であり、これは、訓練および複製処理の少なくとも一部を戻すことができる。
ソフトマックスまたはシグモイド関数曲線の性質により、曲線の終端に、変動すなわちノイズが追加され得る曲線のより多くのエリアがある。したがって、いくつかの例示的実施形態のメカニズムは、攻撃者が、訓練済みニューラル・ネットワーク・モデル130の出力を利用して、独自のニューラル・ネットワーク・モデルを訓練しようとしても、より低い性能モデルを生じるように、上記で前述されたような、0.0および1.0に近い曲線の終端、すなわち非常に低い、および非常に高い確率値のエリアにおいてこのような変動を導入する変動注入ロジックを利用する。曲線の終端における変動すなわちノイズの導入は、上述された変動1における0.5(シグマ(0.25h(x))-0.5))のような、曲線の終端においてより高い絶対値を有するシグモイド関数または双曲正接関数を減算することによって容易にされることが可能である。
したがって、例示的実施形態は、出力の正確さを保っているにもかかわらず、モデルが相関する固有の曲線または関数の検出を再現しにくくするように出力値を操作するような方式で、このような訓練済みモデルの出力にノイズを導入することによって、他の人工知能/認知モデルのニューラル・ネットワーク、機械学習、深層学習の訓練済み構成を難読化するためのメカニズムを提供する。変動すなわちノイズの導入は、境界ケースの変化を最小化するが、例えば、シグモイド/ソフトマックス関数の場合、1.0付近および0.0付近など、確率値が比較的高い/低い曲線または関数のエリアにおいて大きいサイズの変動を導入するように行われる。このような変動は、関数または曲線のこれらのエリアに導入されるが、変動は、変動の修正が、出力分類を修正しない所定の量未満の変化に限定されるので、この出力クラスが、修正された出力を変化させないようなサイズにされる。
上述のように、例示的実施形態のメカニズムは、技術環境の、特別に構成されたコンピューティング・デバイスの専用ロジック、データ処理システム、または同様のものにおいて実行される、訓練済みニューラル・ネットワーク・モデル、機械学習モデル、深層学習モデル、および同様のものを保護することを対象とする。したがって、例示的実施形態は、多くの異なるタイプのデータ処理環境で利用することができる。例示的実施形態の固有の要素および機能の説明のための文脈を提供するために、例示的実施形態の態様が実行され得る実例の環境として図3~図5が以下で提供される。図3~図5は例にすぎず、本発明の態様または実施形態が実行され得る環境に関して、限定を主張または示唆することを意図するものでは全くないことを理解されたい。本発明の思想および範囲から逸脱することなく、示された環境への多くの修正が行われてもよい。
図3~図5は、例えば、リクエスト処理方法、および例示的実施形態のメカニズムが実装されるリクエスト処理コンピュータ・プログラム製品のような、質問回答(QA)パイプライン(質問/回答パイプラインまたは質問および回答パイプラインとも呼ばれる)などの、リクエスト処理パイプラインを実行する実例の認知システムを説明することを対象とする。これらのリクエストは、構造化もしくは非構造化リクエスト・メッセージ、自然言語質問、または、認知システムによって実施されることになる動作をリクエストするための任意の他の適切なフォーマットとして提供され得る。いくつかの例示的実施形態では、リクエストは、認知システムによって実行される、機械学習、ニューラル・ネットワーク、深層学習、または他の人工知能ベースのモデルによって実施される認知分類動作に応じて分類されることになる入力データ・セットの形でもよい。入力データ・セットは、オーディオ入力データ、画像入力データ、テキスト入力データ、または同様のものなどの、特定の実装形態に応じた様々なタイプの入力データを表し得る。例えば、1つの可能な実装形態では、入力データ・セットは、1つまたは複数の所定の分類に分類された、画像の一部を、または画像を全体として有する、X線画像、CTスキャン画像、MRI画像、または同様のものなどの、医療画像を表し得る。
入力データの分類は、ラベルなし入力データ・セットが分類される対応するクラスを表すラベルまたはアノテーションを有するデータのラベル付きセットを生じ得ることを理解されたい。これは、人間ユーザによる意思決定をサポートする認知システムによって他の認知動作を実施する際の中間ステップでもよく、例えば、認知システムは、判定サポート・システムでもよい。例えば、医療領域では、認知システムは、臨床医への識別情報の異常、患者診断もしくは処置の助言またはその両方、薬剤相互作用分析、あるいは、大量の他の可能な判定サポート動作のいずれかを識別するための医療画像分析を実施するように動作し得る。
認知システムは、以下の例では単一のリクエスト処理パイプラインを有するものとして示されているが、実際には、複数のリクエスト処理パイプラインを有してもよいことを理解されたい。各リクエスト処理パイプラインは、所望の実装形態に応じて、異なる分野に関連付けられたリクエストを処理するように別々に訓練もしくは構成またはその両方が行われるか、あるいは、入力リクエスト(またはQAパイプラインを使用した実装形態における質問)に対して同じまたは異なる分析を実施するように構成されてもよい。例えば、いくつかのケースでは、第1のリクエスト処理パイプラインが、医療画像分析を対象とする入力リクエストに対して動作するように訓練されてもよく、その一方で、第2のリクエスト処理パイプラインが、自然言語処理を伴う患者電子医療記録(EMR)分析に関する入力リクエストに対して動作するように構成および訓練されてもよい。他のケースでは、例えば、リクエスト処理パイプラインは、1つのリクエスト処理パイプラインが患者処置の助言の生成のために使用される一方で、別のパイプラインが金融業界ベースの予想のために訓練され得るなど、異なるタイプの認知機能を提供すること、または異なるタイプの用途をサポートすることを行うように構成されてもよい。
その上、各リクエスト処理パイプラインは、例えば、上記の例における、医療処置文書のための1つのコーパス、および金融業界分野関係文書のための別のコーパスを取り入れ、これらに対して動作する、独自の関連付けられた1つまたは複数のコーパスを有し得る。いくつかのケースでは、リクエスト処理パイプラインは、同じ分野の入力された質問に対してそれぞれ動作してもよいが、例えば、異なる注釈器、またはそれぞれに訓練された注釈器など、異なる構成を有してもよく、したがって、異なる分析および潜在的な回答が生成される。認知システムは、例えば決定された分野の入力リクエストに基づいて、適切なリクエスト処理パイプラインに入力された質問をルーティングし、複数のリクエスト処理パイプラインによって実施された処理によって生成された最終結果を組み合わせて評価するための追加のロジックと、複数のリクエスト処理パイプラインの利用を容易にする他の制御および対話ロジックとを提供し得る。
上述のように、例示的実施形態のメカニズムが利用され得るリクエスト処理パイプラインの1つのタイプは、質問回答(QA)パイプラインである。以下の本発明の実例の実施形態の説明は、1つまたは複数の例示的実施形態によるメカニズムを含めるように拡張され得るリクエスト処理パイプラインの例としてQAパイプラインを利用する。本発明は、入力された質問に対して動作する1つまたは複数のQAパイプラインを実行する認知システムの文脈で説明されるが、例示的実施形態は、このようなものに限定されないことを理解されたい。むしろ、例示的実施形態のメカニズムは、「質問」として提起されないが、認知システムを構成するために使用される関連付けられた1つまたは複数のコーパス、および特定の構成情報を使用して、入力データの指定のセットに対して認知システムが認知動作を実施するためのリクエストとしてフォーマットされた、リクエストについて動作することができる。例えば、「どの診断を患者Pに適用するか?」という自然言語の質問を尋ねるのではなく、認知システムは、代わりに、「患者Pについての診断を生成する」などのリクエストを受け取ることができる。QAシステム・パイプラインのメカニズムは、小さな修正を伴う入力自然言語質問のものと同様に、リクエストに対して動作できることを理解されたい。実際に、場合によっては、リクエストは、特定の実装形態の必要に応じて、QAシステム・パイプラインによる処理のために、自然言語の質問に変換することができる。
より詳細に以下で論じられるように、例示的実施形態は、これらのパイプラインにおいて、または全体として認知システムによって実行されるモデルを、モデル窃取攻撃から保護するために、これらのQAパイプラインまたはリクエスト処理パイプライン・メカニズムの機能に統合され、これらを拡大および拡張し得る。特に、ラベル付きデータ・セットの出力を生成するために、訓練済みニューラル・ネットワーク・モデル、機械学習モデル、深層学習モデル、または同様のものが採用される認知システムの一部では、例示的実施形態のメカニズムは、訓練済みモデルによって生成された確率値へのノイズの導入によってラベル付きデータ・セットの出力を修正し、これにより、モデルの訓練を難読化するために実行され得る。
例示的実施形態のメカニズムは、認知システムの一部でもよく、モデル窃取攻撃から認知システムを保護することによって認知システムの動作を改善し得るので、例示的実施形態のメカニズムが、このような認知システムおよびリクエスト処理パイプライン・メカニズム、またはQAパイプライン・メカニズムにどのように統合され、これらを拡張するかについて説明する前に、認知システム、ならびにQAパイプラインを実行する認知システムにおける質問および回答作成がどのように実行されるかについて最初に理解することが重要である。図3~図5で説明されるメカニズムは例にすぎず、例示的実施形態が実行される認知システム・メカニズムのタイプに関して限定を指定することも示唆することも意図するものでは全くないことを理解されたい。図3~図5に示された実例の認知システムに対する多くの修正が、本発明の思想および範囲から逸脱することなく、本発明の様々な実施形態において実施されてもよい。
全体像として、認知システムは、ハードウェア・ロジック、または(ソフトウェアが実行するハードウェア・ロジックと組み合わせた)ソフトウェア・ロジック、あるいはその両方を用いて、人間の認知機能をエミュレートするように構成された、専用コンピュータ・システム、またはコンピュータ・システムのセットである。これらの認知システムは、デジタル・コンピューティングの固有の強みと組み合わされたとき、高い正確さおよび回復力で問題を大規模に解決できるアイデアを伝え、操作することに、人間のような特性を応用する。認知システムは、人間の専門知識および認知を拡張し、拡大するように、人間の思考プロセスに近づけ、より自然な手法で人々と機械が相互作用できる、1つまたは複数のコンピュータ実行認知動作を実施する。認知システムは、例えば自然言語処理(NLP)ベースのロジックなどの人工知能ロジック、および、専用ハードウェア、ハードウェアで実行されるソフトウェア、または専用ハードウェアとハードウェアで実行されるソフトウェアとの任意の組合せとして提供することができる機械学習ロジックを備える。このロジックは、認知システムによって実施される特定の認知動作をサポートするために、特定の目的のために訓練され得る、ニューラル・ネットワーク・モデル、機械学習モデル、深層学習モデルなどの、1つまたは複数のモデルを実行し得る。例示的実施形態のメカニズムによれば、ロジックは、モデル窃取攻撃を実施しようとするはずの人に対してモデルの訓練を難読化するように、実行されたモデルの出力に変動すなわちノイズを導入するための、上記および以下で説明される、変動挿入エンジン・メカニズムをさらに実行する。
認知システムのロジックは認知コンピューティング動作を実行し、ロジックの例は、質問回答、コーパス内のコンテンツの種々の部分に含まれる関連した概念の識別、例えば、医療診断および処置の助言といった、インターネット・ウェブ・ページ・サーチなどのインテリジェント・サーチ・アルゴリズム、例えば、特定のユーザにとって関心のある項目、潜在的な新しい接触の助言等の、他のタイプの助言生成、画像分析、オーディオ分析、ならびに同様のものを含むがこれらに限定されない。例示的実施形態の認知システムを使用して実行され得る認知動作のタイプおよび数は膨大であり、本明細書で全て文書化できない。人間によって、しかし、人工知能または認知コンピューティング様式で実施される意思決定および分析をエミュレートする任意の認知コンピューティング動作は、本発明の思想および範囲内であることを意図するものである。
IBM Watson(TM)は、人間よりずっと速いスピードで、かつ、より大規模に、人間のような高い正確さで、人間可読言語を処理し、テキストの一節の間の推測を識別できる、1つのこのような認知コンピューティング・システムの例である。一般に、このような認知システムは、以下の機能を実施することができる。
・人間言語および理解の複雑性をナビゲートすること
・膨大な量の構造化および非構造化データを受け入れ、処理すること
・仮説を生成し、評価すること
・関連証拠だけに基づいて応答を考察し、評価すること
・状況固有のアドバイス、見識、およびガイドを提供すること
・機械学習処理を通じて知識を改善し、各反復および相互作用で学習すること
・インパクトのポイントで意思決定を可能にすること(文脈上のガイド)
・タスクに比例してスケーリングすること
・人間の専門知識および認知を拡張し、拡大すること
・自然言語から共鳴する、人間らしい属性と特質を識別すること
・自然言語から様々な言語固有のまたは不可知論的な属性を推定すること
・データポイント(イメージ、テキスト、音声)からの高度の関連する追憶(記憶および回想)
・経験に基づく人間の認知を模倣する状況認識で予測し、検知すること
・自然言語および固有の証拠に基づいて質問に回答すること
1つの態様では、認知コンピューティング・システム(または単に「認知システム」)は、質問回答パイプラインもしくはシステム(QAシステム)を使用して、これらの認知システムに提起された質問に回答するためのメカニズムを提供すること、または、自然言語質問として提起されることも、されないこともあるリクエストを処理すること、あるいはその両方を行う。QAパイプラインまたはシステムは、自然言語で提示された所与の主題領域に関する質問に回答するデータ処理ハードウェア上で動く人工知能アプリケーションである。QAパイプラインは、ネットワークでの入力、電子文書または他のデータのコーパス、コンテンツ制作者からのデータ、1つまたは複数のコンテンツ・ユーザからの情報、および、入力の他の可能な情報源からの他のこのような入力を含む、様々な情報源からの入力を受け取る。データ・ストレージ・デバイスは、データのコーパスを格納する。コンテンツ制作者は、QAパイプラインでデータのコーパスの一部として使用するために、文書内にコンテンツを制作する。文書は、QAシステムで使用するための任意のファイル、テキスト、記事、またはデータの出所を含むことができる。例えば、QAパイプラインは、例えば、金融領域、医療領域、法律領域等といった、領域または主題エリアについての知識の本体にアクセスし、ここで、知識の本体(知識ベース)は、例えば、オントロジーなどの領域固有情報の構造化リポジトリ、または、領域に関連した非構造化データ、または、領域についての自然言語文書のコレクションといった、様々な構成で編成することができる。
コンテンツ・ユーザは、QAパイプラインを実行する認知システムに質問を入力する。次に、QAパイプラインは、文書、文書のセクション、コーパス内のデータの一部、または同様のものを評価することによって、データのコーパス内のコンテンツを使用して、入力された質問に回答する。意味論的コンテンツについて文書の所与のセクションを処理が評価するとき、処理は、例えば、その後、QAパイプラインによって解釈される適格な質問としてQAパイプラインにクエリを送ることなど、QAパイプラインからこのような文書に問い合わせるために、様々な伝統的手法を使用することができ、質問への1つまたは複数の回答を収める応答を提供する。意味論的コンテンツは、単語、句、符号、およびシンボルなどの記号表現と、これらが表すもの、これらの明示的意味、または言外の意味との間の関係に基づくコンテンツである。言い換えれば、意味論的コンテンツは、自然言語処理を使用することによるなどして、表現を解釈するコンテンツである。
より詳細に以下で説明されるように、QAパイプラインは、入力された質問を受け取り、質問をパースして質問の主要な特徴を抽出し、抽出した特徴を使用してクエリを策定し、次に、これらのクエリをデータのコーパスに適用する。データのコーパスへのクエリの適用に基づいて、QAパイプラインは、入力された質問への価値ある応答を収める何らかの可能性があるデータのコーパスの一部を求めてデータのコーパスを見渡すことによって、仮説のセット、または入力された質問への回答候補を生成する。QAパイプラインは、次に、様々な推論アルゴリズムを使用して、入力された質問の言葉とクエリの適用中に見つけられたデータのコーパスの一部のそれぞれにおいて使用される言葉とに対して、深い分析を実施する。何百もの、またはことによると何千もの適用される推論アルゴリズムが存在する可能性があり、これらのそれぞれが、例えば、比較、自然言語分析、語彙分析、または同様のものといった、異なる分析を実施し、スコアを生成する。例えば、いくつかの推論アルゴリズムは、入力された質問の言葉とデータのコーパスの上記見つけられた一部とにおける用語および類義語の合致度を見ることができる。他の推論アルゴリズムは、言葉の中の時間的または空間的特徴を見ることができ、その他の推論アルゴリズムは、データのコーパスの一部の出所を評価してその真実性を評価することができる。
様々な推論アルゴリズムから取得されたスコアは、この推論アルゴリズムの焦点の特定のエリアに基づいて、入力された質問によって潜在的な応答が推測される程度を示す。それぞれの結果のスコアは、次に、統計モデルに対して重みを付けられる。統計モデルは、QAパイプラインの訓練期間中に、特定の領域についての2つの似た文の間の推測の確立時に、推論アルゴリズムがどれほどうまく実施されたかをとらえる。統計モデルは、潜在的な応答、すなわち回答候補が、質問によって推測されるという証拠に関してQAパイプラインが有している信頼度のレベルを概説するために使用される。この処理は、他より著しく強力であるとして浮上した回答候補をQAパイプラインが識別するまで回答候補のそれぞれに対して繰り返され、したがって、入力された質問に対する最終的な回答、または回答のランク付けしたセットを生成する。
上述のように、QAパイプライン・メカニズムは、データまたは情報のコーパス(コンテンツのコーパスとも呼ばれる)からの情報にアクセスすること、この情報を分析すること、および次に、このデータの分析に基づく回答結果を生成することによって動作する。データのコーパスからの情報にアクセスすることは、典型的には、構造化レコードのコレクション内にあるものについての質問に回答するデータベースクエリと、非構造化データ(テキスト、マークアップ言語、等)のコレクションに対するクエリに応答して文書リンクのコレクションを配信するサーチと、を含む。従来の質問回答システムは、データのコーパスおよび入力された質問に基づく回答を生成すること、データのコーパスについての質問のコレクションに対する回答を検証すること、データのコーパスを使用してデジタルテキスト内のエラーを訂正すること、ならびに、潜在的な回答、すなわち回答候補のプールから質問への回答を選択することができる。
記事の著者、電子文書制作者、ウェブページの著者、文書データベース制作者などのコンテンツ制作者は、コンテンツを書く前に、このようなコンテンツ内に記述される製品、ソリューション、およびサービスのためのユース・ケースを決定する。結果として、コンテンツ制作者は、コンテンツによって扱われる特定のトピックにおいて、コンテンツがどの質問に回答することを意図されているかを知っている。データのコーパスの各文書において、質問に関連付けられた役割、情報のタイプ、タスクなどの観点から質問をカテゴライズすると、QAパイプラインは、特定のクエリに関連したコンテンツを収める文書をより素早くかつ効率的に識別することができる。また、コンテンツは、コンテンツ・ユーザに有用である可能性があるとはコンテンツ制作者が想定しなかった他の質問に回答することができる。所与の文書について、質問および回答がコンテンツに収められることを、コンテンツ制作者によって確認することができる。これらの能力は、改善された正確さ、システム性能、機械学習、およびQAパイプラインの信頼度の一因となる。コンテンツのこれらの質問および回答属性を識別するためにQAパイプラインによって使用可能な情報を提供するために、コンテンツ制作者、自動化ツールなどがメタデータに注釈を付けるか、そうでなければメタデータを生成する。
このようなコンテンツに対して動作して、QAパイプラインは、コンテンツを評価して、入力された質問に対する最も確実な回答、すなわち回答候補を識別する複数の集中的な分析メカニズムを使用して、入力された質問に対する回答を生成する。最も確実な回答は、回答候補の評価中に計算されたこれらの相対スコアもしくは信頼度測定に応じてランク付けされた、回答候補のランク付けされたリストとして出力されるか、最高ランクのスコアもしくは信頼度測定値を保持するか入力された質問への最善の一致である単一の最終的な回答として出力されるか、またはランク付けされたリストと最終的な回答との組合せとして出力される。
図3は、コンピュータ・ネットワーク302において、リクエスト処理パイプライン308を実行する認知システム300の1つの例示的実施形態の概略図を示し、リクエスト処理パイプライン308は、いくつかの実施形態では、質問回答(QA)パイプラインであってもよい。本説明のために、入力された質問の形の構造化リクエストまたは非構造化リクエストあるいはその両方に対して動作するQAパイプラインとして、リクエスト処理パイプライン308が実行されることを仮定する。本明細書で説明される原理と共に使用できる質問処理動作の1つの例は、米国特許出願公開第2011/0125734号に記述され、これは、全体として参照により本明細書に組み込まれる。認知システム300は、コンピュータ・ネットワーク302に接続された、(1つまたは複数のプロセッサおよび1つまたは複数のメモリを備え、バス、ストレージ・デバイス、通信インターフェース、および同様のものを含む当技術分野で一般に知られた任意の他のコンピューティング・デバイス要素を潜在的に備える)1つまたは複数のコンピューティング・デバイス304A~304D上で実行される。例示のためだけに、図3は、コンピューティング・デバイス304A上だけで実行されている認知システム300を示すが、上述のように、認知システム300は、複数のコンピューティング・デバイス304A~304Dなど、複数のコンピューティング・デバイス全体に分散させてもよい。ネットワーク302は、1つまたは複数の有線またはワイヤレスあるいはその両方のデータ通信リンクを介して、互いに、および他のデバイスまたは構成要素と通信している、サーバ・コンピューティング・デバイスとして動作することができる複数のコンピューティング・デバイス304A~304D、および、クライアント・コンピューティング・デバイスとして動作することができる複数のコンピューティング・デバイス310~312を含み、ここで、各通信リンクは、ワイヤ、ルータ、スイッチ、トランスミッタ、レシーバ、または同様のものの1つまたは複数を備える。いくつかの例示的実施形態では、認知システム300およびネットワーク302は、これらのそれぞれのコンピューティング・デバイス310~312を介した、1つまたは複数の認知システム・ユーザのための質問処理および回答生成(QA)機能を可能にする。他の実施形態では、認知システム300およびネットワーク302は、例えば、認知情報検索、ユーザの訓練/命令、データの認知評価、または同様のものといった、所望の実装形態に応じて多くの異なる形をとり得るリクエスト処理および認知応答生成を含むがこれらに限定されない、他のタイプの認知動作を提供することができる。認知システム300の他の実施形態は、本明細書で示されるもの以外の、構成要素、システム、サブシステム、またはデバイス、あるいはその組合せで使用することができる。
認知システム300は、様々な情報源からの入力を受け取るリクエスト処理パイプライン308を実行するように構成される。リクエストは、自然言語質問、情報の自然言語リクエスト、認知動作の実施の自然言語リクエスト、または同様のものの形で提起することができる。例えば、認知システム300は、ネットワーク302、電子文書の1つもしくは複数のコーパス306、認知システム・ユーザ、または、入力の他のデータおよび他の可能な情報源、あるいはその組合せからの入力を受け取る。1つの実施形態では、認知システム300への入力のいくつかまたは全てが、ネットワーク302を通じてルートされる。ネットワーク302上の様々なコンピューティング・デバイス304A~304Dは、コンテンツ制作者および認知システム・ユーザのためのアクセス・ポイントを含む。コンピューティング・デバイス304A~304Dのいくつかは、(例示のためだけに図3に別個のエンティティとして示された)データの1つまたは複数のコーパス306を格納するデータベースのためのデバイスを含む。データの1つまたは複数のコーパス306の一部も、1つもしくは複数のデータベース、または、図3に明示的に示されていない他のコンピューティング・デバイスにおける、1つまたは複数の他のネットワーク接続ストレージ・デバイス上で提供することができる。ネットワーク302は、例えばインターネットといった、ローカルおよびグローバルを含む任意の大きさの環境で認知システム300が動作できるように、様々な実施形態におけるローカル・ネットワーク接続およびリモート接続を含む。
1つの実施形態では、コンテンツ制作者は、認知システム300で、データのコーパスの一部として使用するための、データの1つまたは複数のコーパス306の文書内のコンテンツを制作する。文書は、認知システム300で使用するための、任意のファイル、テキスト、記事、またはデータの出所を含む。認知システム・ユーザは、ネットワーク302へのネットワーク接続またはインターネット接続を介して認知システム300にアクセスし、データの1つまたは複数のコーパス306内のコンテンツに基づいて回答/処理される認知システム300への質問/リクエストを入力する。1つの実施形態では、質問/リクエストは、自然言語を使用して形成される。認知システム300は、パイプライン308を介して質問/リクエストをパースして解釈し、提起された質問への1つまたは複数の回答、リクエストへの応答、リクエストを処理した結果、または同様のものを含む、例えば認知システム・ユーザ310といった、認知システム・ユーザへの応答を提供する。いくつかの実施形態では、認知システム300は、回答候補/応答のランク付けされたリスト内にユーザへの応答を提供するが、他の例示的実施形態では、認知システム300は、単一の最終的な回答/応答、または最終的な回答/応答の組合せ、および、他の回答候補/応答のランク付けされたリストを提供する。
認知システム300は、データの1つまたは複数のコーパス306から取得された情報に基づいて入力された質問/リクエストを処理するための複数のステージを備えるパイプライン308を実行する。パイプライン308は、入力された質問/リクエストの処理と、データの1つまたは複数のコーパス306とに基づいて、入力された質問またはリクエストに対する回答/応答を生成する。パイプライン308は、図5に関して、より詳細に以下で説明される。
いくつかの例示的実施形態では、認知システム300は、ニューヨーク州アーモンクのインターナショナル・ビジネスマシーン・コーポレーションから利用可能なIBM Watson(TM)認知システムであってもよく、以下で説明される例示的実施形態のメカニズムで拡張される。前に概説されたように、IBM Watson(TM)認知システムのパイプラインは、入力された質問またはリクエストを受け取り、次に、これをパースして、質問/リクエストの主要な特徴を抽出し、主要な特徴は、その後、データの1つまたは複数のコーパス306に適用されるクエリを策定するために使用される。データの1つまたは複数のコーパス306へのクエリの適用に基づいて、仮説のセット、すなわち入力質問/リクエストへの回答候補/応答が、(以下で、入力された質問であると仮定される)入力された質問/応答への価値ある応答を収める何らかの可能性を有する(以下で、単にコーパス306と呼ばれる)データの1つまたは複数のコーパス306の一部を求めてデータの1つまたは複数のコーパス306を見渡すことによって、生成される。IBM Watson(TM)認知システムのパイプライン308は、次に、様々な推論アルゴリズムを使用して、入力された質問の言葉とクエリの適用中に見つけられたコーパス306の一部のそれぞれで使用される言葉とについて、深い分析を実施する。
様々な推論アルゴリズムから取得されたスコアは、次に、潜在的な回答候補が質問によって推測される証拠に関する、この例では、IBM Watson(TM)認知システム300のパイプライン308が有する、信頼度のレベルを概説する統計モデルに対して重みを付けられる。この処理は、回答候補のランク付けされたリストを生成するために、回答候補のそれぞれについて繰り返され、回答候補のランク付けされたリストは、次に、例えば、クライアント・コンピューティング・デバイス310のユーザといった、入力された質問を投入したユーザに提示することができ、または、回答候補のランク付けされたリストから、最終的な回答が選択され、ユーザに提示される。IBM Watson(TM)認知システム300のパイプライン308についてのより多くの情報を、例えば、IBMコーポレーションのウェブサイト、IBM Redbooks(R)、および同様のものから取得することができる。例えば、IBM Watson(TM)認知システムのパイプラインについての情報は、Yuanらの「Watson and Healthcare」、IBM developperWorks、2011年、およびRob Highによる「The Era of Cognitive Systems: AnInside Look at IBM Watson and How it Works」、IBM Redbooks、2012年において、見つけることができる。
上述のように、クライアント・デバイスからの認知システム300への入力は、自然言語質問の形で提起することができるが、例示的実施形態は、このようなものに限定されない。むしろ、入力された質問は、実際には、認知分析および認知分析の結果の提供を実施する基礎を判定するために、IBM Watson(TM)などの認知システムの自然言語パースおよび分析メカニズムを含むがこれらに限定されない、構造化または非構造化あるいはその両方の入力分析を使用してパースし、分析することができる任意の適切なタイプのリクエストとしてフォーマットまたは構造化することができる。
質問またはリクエストが認知システム300に入力される様式に関わらず、リクエストまたは質問の処理は、上記で以前に説明されたような、入力データ・セットへの、例えば、ニューラル・ネットワーク・モデル、機械学習モデル、深層学習モデルといった、訓練済みモデルの適用を伴う。この入力データ・セットは、実際のリクエストもしくは質問自体の特徴、処理が実施されるべきリクエストもしくは質問と共に投入されたデータ、または同様のものを表し得る。入力データ・セットへの訓練済みモデルの適用は、認知システムによる認知コンピューティング動作の実施中の様々なポイントで発生し得る。例えば、訓練済みモデルは、例えば、入力された質問またはリクエスト内の「トラック」という用語を、そのうちの1つが「車両」であり得る複数の可能なクラスに分類することといった、例えば、自然言語の用語をリクエストまたは質問に取り込み、この用語が対応する複数の可能な概念のうちの1つとしてこれを分類することといった、リクエストまたは入力質問の処理の特徴抽出ステージによる特徴抽出および分類中に利用され得る。別の例として、複数のピクセル・データを含む画像の一部が、画像の一部の中にある物体が何であるかを判定するために、訓練済みモデルを画像に適用したものでもよい。例示的実施形態のメカニズムは、上記で以前に論じられたような訓練済みモデルの出力に対して動作し、この動作は、全体の認知システムの認知コンピューティング動作内の中間動作でもよく、例えば、医療画像の一部を、複数の異なる解剖学的構造のうちの1つに分類することは、異常識別、および処置の助言の認知コンピューティング動作の実施に対する中間動作であり得る。
図3に示されるように、認知システム300は、変動挿入エンジン320を実行するために、専用ハードウェア、ハードウェアで実行されるソフトウェア、または、専用ハードウェアとハードウェアで実行されるソフトウェアとの任意の組合せで実行されるロジックを含めるように、例示的実施形態のメカニズムに応じてさらに拡張される。変動挿入エンジン320は、認知システム300の訓練済みモデル360を実行するロジックの外部エンジンとして提供されてもよく、入力データおよびその対応するラベルの分類を表す確率値のベクトル出力の出力の前のモデルの層などにおける、訓練済みモデル・ロジック360に統合されてもよい。変動挿入エンジン320は、出力された確率で表された曲線に沿ったポイントに対して計算された勾配が、正しい方向および量から逸脱し、修正された出力分類および対応するラベルにおける正確さの低下も最小化するように、訓練済みモデル・ロジック360によって生成された出力された確率に変動を挿入するように動作する。
1つの例示的実施形態では、変動挿入エンジン320は、例えば、確率値のシグモイドまたはソフトマックス曲線などの、出力された確率曲線の1次導関数の符号を逆転させる変動関数を使用することによってこれらの尺度を満たし、最小値から最大値までの範囲の+/-半分まで、曲線の最大値および最小値付近の、曲線の終端にノイズすなわち変動を追加し、例えば、0%から100%までを範囲とするソフトマックスまたはシグモイド確率値曲線の場合、ノイズすなわち変動は、+/-0.5までの規模を有する。上記で前述されたように、利用される特定の変動関数は、上記で以前にリスト化されたもの、ならびに上述された尺度および指針を満たす他のものを含む多くの異なる形をとることができる。
結果の修正済み出力ベクトルは、ラベル付きデータ・セット内の入力データに関連付けられた、分類および関連付けられたラベルの妥当性を保ちながら、修正された確率値を提供する。したがって、訓練済みモデル・ロジック360の実際の訓練済み構成を難読化しながら、入力データ・セットの正しい分類およびラベリングが依然として実施される。結果の分類済みまたはラベル付きデータ・セットは、認知システム300が採用された認知動作全体のさらなる処理および実施のために、パイプライン306の下流の処理のさらなるステージに提供され得る。
したがって、クライアント・コンピューティング・デバイス310または同様のもののユーザなどの攻撃者は、複数の入力データ・セットを投入すること、対応するラベル付き出力データ・セットと出力ベクトルの対応する確率値とを取得すること、ならびにこれにより、ベクトル出力におけるラベル付きデータ・セットおよびその関連付けられた確率値を訓練データとして利用することによって訓練済みモデル・ロジック360の訓練を正確に複製するように独自の訓練済みモデルを訓練することを行うことができない。反対に、そうすることは、訓練済みモデル・ロジック360を利用し続ける必要性を生じる訓練済みモデル・ロジック360の性能より著しく低い性能を提供するモデルを生じるはずである。サービス・プロバイダが、認知システム300または訓練済みモデル・ロジック360あるいはその両方の利用に対する報酬を請求するケースでは、これは、サービス・プロバイダにとって継続的な収入源を生じることになる。その上、攻撃者は、訓練済みモデル・ロジック360に入力データ・セットを誤分類させることが可能な誤分類ノイズを判定するように、訓練済みモデル・ロジック360の勾配を判定することができず、すなわち、モデル回避攻撃を成功裏に実施することができない。したがって、例えば、攻撃者は、顔において、画像が、権限付与されたユーザに関連付けられないとき、権限付与されたユーザ画像として画像をモデルに分類させることによって、このような訓練済みモデル・ロジック360を使用したセキュリティ・システムを迂回することができない。その上、別の例として、攻撃者は、誤分類された入力データに基づいて、システムを不正確に動作させることができず、例えば、車載画像システムが、一時停止標識を制限速度標識として誤分類するので、自動車両ブレーキ・システムはアクティブにされない。
図3は、訓練済みモデル・ロジック360の実装形態を、認知システム300の一部として示しているが、例示的実施形態は、このようなものに限定されないことを理解されたい。むしろ、訓練済みモデル・ロジック360は、これ自体が、いくつかの例示的実施形態では、クライアント・コンピューティング・デバイス310のユーザが、入力データ・セットの処理をリクエストし得るサービスとして提供され得る。その上、他の認知システムを含み得るサービスの他のプロバイダは、このような訓練済みモデル360を利用して、独自の認知システムの動作を拡張し得る。したがって、いくつかの例示的実施形態では、訓練済みモデル・ロジック360は、入力データ・セットが訓練済みモデル・ロジック360に投入され、対応するラベル付きデータ・セットが返される、他のコンピューティング・デバイスを介した1つまたは複数のAPIを介してアクセスされる、1つまたは複数のサーバ・コンピューティング・デバイスにおいて実行され得る。したがって、認知システム300への例示的実施形態のメカニズムの統合は、必要ではないが、所望の実装形態に応じて実施され得る。
上述のように、例示的実施形態のメカニズムは、コンピュータ・テクノロジ・アートに根ざしており、このようなコンピューティングまたはデータ処理システム内にあるロジックを使用して実行される。これらのコンピューティングまたはデータ処理システムは、ハードウェア、ソフトウェア、またはハードウェアとソフトウェアの組合せを通じて、上記で説明された様々な動作を実行するように特に構成される。したがって、図4は、本発明の態様を実行できるデータ処理システムの1つのタイプの例として提供される。例示的実施形態のメカニズムを特に実行するように、データ処理システムの他の多くのタイプを同様に構成することができる。
図4は、例示的実施形態の態様を実行する実例のデータ処理システムのブロック図である。データ処理システム400は、本発明の例示的実施形態のための処理を実行するコンピュータ使用可能コードまたは命令が置かれる、図3のサーバ・コンピューティング・デバイス304またはクライアント・コンピューティング・デバイス310などの、コンピュータの例である。1つの例示的実施形態では、図4は、訓練済みニューラル・ネットワーク、機械学習、深層学習、または他の人工知能モデル・ロジックをモデル窃取攻撃から保護するための変動挿入エンジンに関して本明細書で説明される追加の例示的実施形態のメカニズムを含めるように拡張された認知システム300およびリクエストまたはQAシステム・パイプライン308を実行する、サーバ304などの、サーバ・コンピューティング・デバイスを表す。
上記の例では、データ処理システム400は、ノース・ブリッジおよびメモリ・コントローラ・ハブ(NB/MCH)402、ならびに、サウス・ブリッジおよび入出力(I/O)コントローラ・ハブ(SB/ICH)404を含むハブ・アーキテクチャを採用する。処理ユニット406、メイン・メモリ408、およびグラフィックス・プロセッサ410は、NB/MCH402に接続される。グラフィックス・プロセッサ410は、アクセラレイテッド・グラフィックス・ポート(AGP)を通じてNB/MCH402に接続される。
上記の例では、ローカル・エリア・ネットワーク(LAN)アダプタ412は、SB/ICH404に接続する。オーディオ・アダプタ416、キーボードおよびマウス・アダプタ420、モデム422、リード・オンリ・メモリ(ROM)424、ハード・ディスク・ドライブ(HDD)426、CD-ROMドライブ430、ユニバーサル・シリアル・バス(USB)ポートおよび他の通信ポート432、ならびにPCI/PCIeデバイス434は、バス438およびバス440を通じてSB/ICH404に接続する。PCI/PCIeデバイスは、例えば、Ethernet(R)・アダプタ、アドイン・カード、および、ノートブック・コンピュータのためのPCカードを含むことができる。PCIは、カード・バス・コントローラを使用するが、PCIeは使用しない。ROM424は、例えば、フラッシュ基本入出力システム(BIOS)であってもよい。
HDD426およびCD-ROMドライブ430は、バス440を通じてSB/ICH404に接続する。HDD426およびCD-ROMドライブ430は、例えば、インテグレーテッド・ドライブ・エレクトロニクス(IDE)、またはシリアル・アドバンスト・テクノロジ・アタッチメント(SATA)インターフェースを使用することができる。スーパーI/O(SIO)デバイス436は、SB/ICH404に接続される。
オペレーティング・システムは、処理ユニット406上で稼働する。オペレーティング・システムは、図4のデータ処理システム400内の様々な構成要素の制御を協調させ、提供する。クライアントとしてのオペレーティング・システムは、Microsoft(R)Windows 10(R)などの市販のオペレーティング・システムである。Java(R)プログラミング・システムなどのオブジェクト指向プログラミング・システムは、オペレーティング・システムと共に稼働することができ、データ処理システム400上で実行するJava(R)プログラムまたはアプリケーションからオペレーティング・システムへのコールを提供する。
サーバとしてのデータ処理システム400は、例えば、Advanced Interactive Executive(AIX(R))オペレーティング・システム、またはLINUX(R)オペレーティング・システムを稼働させるIBM(R)eServer(TM)System p(R)コンピュータ・システムであってもよい。データ処理システム400は、処理ユニット406内に複数のプロセッサを含む対称型マルチプロセッサ(SMP)システムであってもよい。代替として、単一のプロセッサ・システムを採用してもよい。
オペレーティング・システム、オブジェクト指向プログラミング・システム、およびアプリケーションまたはプログラムのための命令は、HDD426などのストレージ・デバイスに置かれ、処理ユニット406による実行のためにメイン・メモリ408にロードされる。本発明の例示的実施形態のための処理は、コンピュータ使用可能プログラム・コードを使用して処理ユニット406によって実施され、コンピュータ使用可能プログラム・コードは、例えば、メイン・メモリ408、ROM424などのメモリに、または、例えば、1つもしくは複数の周辺デバイス426および430に置かれる。
図4に示されたようなバス438またはバス440などのバス・システムは、1つまたは複数のバスを含む。当然、バス・システムは、ファブリックまたはアーキテクチャに取り付けられた種々の構成要素またはデバイスの間のデータの転送を提供する通信ファブリックまたはアーキテクチャのいずれかのタイプを使用して実行することができる。図4のモデム422またはネットワーク・アダプタ412などの通信ユニットは、データを送受信するために使用される1つまたは複数のデバイスを含む。メモリは、例えば、メイン・メモリ408、ROM424、または、図4のNB/MCH402で見つかるものなどのキャッシュであってもよい。
図3および図4に示されたハードウェアは、実装形態に応じて変化し得ることを当業者は理解するであろう。フラッシュ・メモリ、同等の不揮発性メモリ、または光ディスク・ドライブ、および同様のものなどの他の内部ハードウェアまたは周辺デバイスを、図3および図4に示されたハードウェアに加えて、またはその代わりに使用することができる。また、例示的実施形態の処理は、本発明の思想および範囲から逸脱することなく、前に言及したSMPシステム以外の、マルチプロセッサ・データ処理システムに適用することができる。
また、データ処理システム400は、クライアント・コンピューティング・デバイス、サーバ・コンピューティング・デバイス、タブレット型コンピュータ、ラップトップ・コンピュータ、電話もしくは他の通信デバイス、パーソナル・デジタル・アシスタント(PDA)、または同様のものを含む、いくつかの異なるデータ処理システムのいずれかの形をしていてもよい。いくつかの例示となる例では、データ処理システム400は、例えば、オペレーティング・システム・ファイル、またはユーザ生成データ、あるいはその両方を格納するための不揮発性メモリを提供するためのフラッシュ・メモリで構成された携帯型コンピューティング・デバイスであってもよい。本質的に、データ処理システム400は、構造的限定のない、任意の既知の、または後で開発される、データ処理システムであってもよい。
図5は、上記の例では、1つの例示的実施形態による、入力された質問を処理するために使用される質問および回答(QA)システム・パイプラインである認知システム処理パイプラインの例を示す。上述のように、例示的実施形態が利用され得る認知システムは、QAシステムに限定されず、したがって、QAシステム・パイプラインの使用に限定されない。図5は、認知システムの動作をリクエストする自然言語入力を処理して、自然言語入力に対する応答または結果を提示するように実行され得る処理構造の1つの例としてのみ提供される。
図5のQAシステム・パイプラインは、例えば、図3の認知システム300のQAパイプライン308として、実行され得る。図5に示されたQAパイプラインのステージは、特定のステージに帰する機能を実行するためのロジックで構成された、1つまたは複数のソフトウェア・エンジン、構成要素、または同様のものとして実行されることを理解されたい。このようなソフトウェア・エンジン、構成要素、または同様のもののうちの1つまたは複数を使用して各ステージが実行される。ソフトウェア・エンジン、構成要素等は、1つまたは複数のデータ処理システムまたはデバイスの1つまたは複数のプロセッサで実行され、データ処理システムのうちの1つまたは複数上の、1つまたは複数のデータ・ストレージ・デバイス、メモリ、または同様のものに格納されたデータを利用するか、これらに対して動作する。図5のQAパイプラインは、例えば、以下で説明される例示的実施形態の改善されたメカニズムを実行するためのステージのうちの1つまたは複数において拡張され、追加のステージは、改善されたメカニズムを実行するために提供されてもよく、または、パイプライン300からの別個のロジックが、パイプライン300とインターフェースするために、ならびに例示的実施形態の改善された機能および動作を実行するために提供されてもよい。
図5に示されるように、QAパイプライン500は、入力された質問を分析し、最終的な応答を生成するように認知システムが動作する複数のステージ510~580を含む。初期の質問入力ステージ510では、QAパイプライン500は、自然言語フォーマットで提示された入力質問を受け取る。すなわち、ユーザは、ユーザ・インターフェースを介して、例えば、「誰がワシントンに最も近いアドバイザか」といった、回答をユーザが取得したいと思う入力質問を入力する。入力質問を受け取ることに応答して、QAパイプライン500の次のステージ、すなわち質問およびトピック分析ステージ520は、自然言語処理(NLP)技法を使用して入力質問をパースし、入力質問から主要な特徴を抽出し、例えば、名前、日付、または、他の大量の定義されたトピックのいずれかといったタイプに従って主要な特徴を分類する。例えば、上記の実例の質問では、「誰が」という用語は、人のアイデンティティが求められていることを示す「人」についてのトピックに関連付けられてもよく、「ワシントン」は、質問が関連付けられる人の正しい名前として識別されてもよく、「最も近い」は、近さまたは関係を示す単語として識別されてもよく、「アドバイザ」は、名詞または他の言語トピックを示し得る。
加えて、抽出された主要な特徴は、質問の焦点、質問の語彙回答タイプ(LAT:lexical answer type)、および同様のものなどの、質問特性に分類されたキーワードおよび句を含む。本明細書で呼ばれるように、語彙回答タイプ(LAT)は、セマンティックスをこの単語に割り当てることとは関係のない、回答のタイプを示す入力質問における単語、または入力質問から推測される単語である。例えば、「ゲームを高速化するために、どのような手段が1500年代に考案されたか、および2つの同じ色を伴うか?」、という質問では、LATは、「手段」という文字列である。質問の焦点は、回答で置き換えられた場合、質問を独立したステートメントにする質問の一部である。例えば、「どの薬剤が、比較的少ない副作用でADDの症状を取り除くと示されてきたか」という質問では、この単語が回答で置き換えられた場合、例えば、「アデロール」という回答が、「薬剤」という用語を置き換えて、「アデロールが、比較的少ない副作用でADDの症状を取り除くと示されてきた」という文を生成するために使用されることが可能なので、焦点は「薬剤」である。焦点は、常にというわけではないが、しばしば、LATを含む。その一方で、多くの場合、焦点から重要なLATを推測することはできない。
入力質問から抽出された特徴の分類は、例えば、ニューラル・ネットワーク・モデル、機械学習モデル、深層学習モデル、または、他のタイプの人工知能ベースのモデルとして実行され得る、1つまたは複数の訓練済みモデル525を使用して実施され得る。上述のように、例示的実施形態のメカニズムは、このような訓練済みモデル525によって、入力質問の抽出された特徴の分類に関して、質問およびトピック分析ステージ520で実行され得る。すなわち、訓練済みモデル525が、ベクトル出力の出力の前に入力データを分類するために、例えば、入力質問から抽出された特徴といった、入力データに対して動作するので、例示的実施形態の変動挿入エンジン590は、上述のように分類の正確さを保ちながら、出力ベクトルにおける生成された確率値に変動を導入するように動作し得る。したがって、正しい分類は、依然として、QAシステム・パイプライン500に沿った下流で提供されるが、モデル窃取攻撃を使用して独自のモデルを訓練するために出力ベクトルの確率値へのアクセス権を取得したいずれかの攻撃者は、訓練済みモデル525より低い性能を提供するこのような確率値に対して訓練されたいずれかのモデルを生じる不正確な確率値を提示されるはずである。
入力データは、いくつかの例示的実施形態では、構造化または非構造化された、策定されたリクエストまたは質問である必要はないが、その代わりに、単に、入力データ・セットがパイプライン500によって処理された、示唆されたリクエストを伴う入力された入力データ・セットでもよいことを理解されたい。例えば、パイプライン500が画像分析認知動作を実施するように構成される実施形態では、入力画像は、パイプライン500への入力として提供され得、パイプライン500は、入力画像の主要な特徴を抽出し、訓練済みモデル525に従って主要な特徴を分類し、以下で説明されるようなパイプライン500の他の処理を実施して、画像に何が示されているかについての仮説にスコアを付け、これにより、最終的な結果出力を生成する。他のケースでは、オーディオ入力データも、同様に分析され得る。処理される入力データの性質に関わらず、例示的実施形態のメカニズムは、訓練済みモデルの訓練を難読化するように、訓練済みモデル525によって実施される分類動作に関連付けられた確率値に変動を挿入するために採用され得る。
図5を再び参照すると、識別された主要な特徴は、次に、1つまたは複数の仮説を生成するために、データ/情報のコーパス545に適用される1つまたは複数のクエリに質問を分解するための質問分解ステージ530の中で使用される。クエリは、構造化問合せ言語(SQL)、または同様のものなどの、任意の既知のまたは後で開発される問合せ言語で生成される。クエリは、データ/情報のコーパス545を作り上げる、電子テキスト、文書、記事、ウェブサイト、および同様のものについての情報を格納した1つまたは複数のデータベースに適用される。すなわち、これらの様々な情報源自体、情報源の種々の集合体、および同様のものは、コーパス545内の種々のコーパス547を表す。特定の実装形態に応じた様々な尺度に基づく文書の種々の集合体のために定義された種々のコーパス547があり得る。例えば、種々のトピック、主題のカテゴリ、情報源、または同様のものに対して、種々のコーパスが確立され得る。1つの例として、第1のコーパスが、ヘルスケア文書に関連付けられ得る一方で、第2のコーパスが、金融書類に関連付けられ得る。代替として、1つのコーパスが、米国エネルギー省によって公開された文書でもよく、その一方で、別のコーパスが、IBM Redbooks文書でもよい。いくつかの同様の属性を有するコンテンツの何らかの集合体が、コーパス545内のコーパス547であると考えられてもよい。
クエリは、例えば、図3のデータのコーパス306といった、データ/情報のコーパスを作り上げる、電子テキスト、文書、記事、ウェブサイト、および同様のものについての情報を格納した1つまたは複数のデータベースに適用される。クエリは、入力質問に回答するための潜在的な仮説を識別する結果を生成するための仮説生成ステージ540でデータ/情報のコーパスに適用され、結果は、その後、評価されることが可能である。すなわち、クエリの適用は、特定のクエリの尺度に一致するデータ/情報のコーパスの一部の抽出を生じる。コーパスのこれらの部分は、次に、入力された質問に回答するための仮説を生成するために、仮説生成ステージ540の中で分析および使用される。これらの仮説は、本明細書では、入力質問に対する「回答候補」とも呼ばれる。任意の入力質問に対して、このステージ540では、評価される必要があり得る何百もの仮説または回答候補が生成され得る。
QAパイプライン500は、ステージ550において、次に、入力質問の言語と、各仮説または「回答候補」の言語との深い分析および比較を実施し、特定の仮説が入力質問に対する正しい回答である可能性を評価するために証拠のスコア付けを実施する。上述のように、これは、仮説をサポートする、またはサポートしない証拠を提供する、コーパスの入力質問またはコンテンツあるいはその両方の言葉の分析の別個のタイプをそれぞれ実施する複数の推論アルゴリズムを使用することを伴う。各推論アルゴリズムは、クエリの適用によって抽出されたデータ/情報のコーパスの個々の部分の関連の測定、および、対応する仮説の妥当性の測定、すなわち仮説の信頼度の測定を示す、推論アルゴリズムが実施した分析に基づくスコアを生成する。実施された特定の分析に応じてこのようなスコアを生成する様々な方式がある。一般に、それでも、これらのアルゴリズムは、関心のある用語、句、またはパターンを示す特定の用語、句、または、テキストのパターンを探し、一致の度合いを判定し、より高い度合いの一致が、より低い度合いの一致より、相対的に高いスコアを与えられる。
したがって、例えば、例えば、「映画」という用語の正確な用語または類義語などの、入力質問、または入力質問におけるこの用語の類義語から、正確な用語を探し、これらの正確な用語または類義語の使用頻度に基づいてスコアを生成するように、アルゴリズムが構成され得る。このようなケースでは、正確な一致が、最高のスコアを与えられることになる一方で、類義語は、主題の専門家(使用される特定の分野および専門用語の知識を有する人)によって指定されるか、または、この分野に対応するコーパスにおける類義語の使用頻度から自動的に決定され得るような、類義語の相対的なランキングに基づいてより低いスコアを与えられ得る。したがって、例えば、コーパスのコンテンツにおける「映画」という用語の正確な一致(証拠、または証拠の一節とも呼ばれる)が、最高のスコアを与えられる。「モーション・ピクチャ」などの映画の類義語は、より低いスコアであるが、依然として、「フィルム」または「ムービング・ピクチャ・ショー」というタイプの類義語より高いスコアを与えられ得る。各証拠の一節の正確な一致および類義語のインスタンスは、入力質問に対する証拠の一節の一致の度合いのスコアを生成するために、定量的な機能でコンパイルおよび使用され得る。
したがって、例えば、「何が第1の映画だったか」についての入力質問に対する仮説または回答候補は、「The Horse in Motion」である。証拠の一節が、「これまでに作られた第1のモーション・ピクチャは、Eadweard Muybridgeによる1878の「The Horse in Motion」だった。これは、走っている馬の映画だった」というステートメントを含み、アルゴリズムが、入力質問の焦点に対する正確な一致または類義語、すなわち「映画」を探している場合、「映画」の正確な一致は、証拠の一節の第2の文において見つかり、「映画」に対する高くスコア付けされた類義語、すなわち「モーション・ピクチャ」が、証拠の一節の第1の文において見つかる。これは、回答候補のテキストが証拠の一節にも存在すること、すなわち「The Horse in Motion」であることを識別するために、証拠の一節のさらなる分析と組み合わせられ得る。これらの因子は、回答候補「The Horse in Motion」が正しい回答であるという補強証拠として、相対的に高いスコアをこの証拠の一節に与えるために組み合わせられ得る。
これは、どのようにスコア付けを実施できるかについての1つの簡単な例にすぎないことを理解されたい。本発明の思想および範囲から逸脱することなく、様々な複雑性の他の多くのアルゴリズムが、回答候補および証拠のスコアを生成するために使用され得る。
合成ステージ560では、様々な推論アルゴリズムによって生成された多くのスコアが、様々な仮説の信頼度スコアまたは信頼度測定に合成される。この処理は、重みを様々なスコアに適用することを伴い、重みは、QAパイプライン500によって採用される統計モデルの訓練を通じて決定されたもの、または動的にアップデートされたもの、あるいはその両方である。例えば、正確に一致する用語および類義語を識別するアルゴリズムによって生成されたスコアの重みは、証拠の一節の刊行日を評価している他のアルゴリズムより相対的に高く設定され得る。重み自体は、主題の専門家によって指定されるか、特性証拠の一節の優位性、および回答候補生成全体に対する特性証拠の一節の相対的な重要性を評価する機械学習処理を通じて学習され得る。
重み付きスコアは、個々の仮説または回答候補の信頼度スコアまたは測定を生成するためにこれらのスコアが組み合わされ得る様式を識別するQAパイプライン500の訓練を通じて生成された統計モデルに従って処理される。この信頼度スコアまたは測定は、回答候補が入力質問によって推測される、すなわち、回答候補が入力質問に対する正しい回答である証拠についての、QAパイプライン500が有する信頼度のレベルを概説する。
結果の信頼度スコアまたは測定は、最終的な信頼度マージおよびランキング・ステージ570によって処理され、最終的な信頼度マージおよびランキング・ステージ570は、どの仮説/回答候補が、入力質問に対する正しい回答である可能性が最も高いかを判定するために、信頼度スコアおよび測定を互いに比較するか、信頼度スコアおよび測定を所定の閾値と比較するか、信頼度スコアに対する任意の他の分析を実施する。仮説/回答候補は、これらの比較に応じてランク付けされ、仮説/回答候補(以後、単に「回答候補」と呼ばれる)のランク付けされたリストを生成する。回答候補のランク付けされたリストから、ステージ580において、最終的な回答および信頼度スコア、または回答候補および信頼度スコアの最終セットが生成され、グラフィカル・ユーザ・インターフェース、または情報を出力するための他のメカニズムを介して、元の入力質問の投入者に出力される。
したがって、例示的実施形態は、ニューラル・ネットワーク・モデルなどの訓練済み人工知能または認知モデルをモデル窃取攻撃から保護するためのメカニズムを提供する。例示的実施形態は、訓練済みモデルの分類またはラベル付きデータ・セットの正確さの低下を最小化しながら、出力された確率値に基づく攻撃者の勾配計算を正しい方向および規模から逸脱させるように、訓練済みモデルによって出力された確率値に変動すなわちノイズを導入する。いくつかの例示的実施形態では、この結果は、訓練済みモデルのシグモイドまたはソフトマックス関数の1次導関数の符号を逆転させ、シグモイドまたはソフトマックス関数の曲線の最小値および最大値付近の曲線の終端にノイズすなわち変動を追加する、変動関数を使用することによって達成される。結果は、攻撃者が、独自のモデルを訓練するための基礎として、訓練済みモデルによって出力された修正された確率値を使用する場合、結果として生じた攻撃者のモデルが、攻撃者が複製しようとする訓練済みモデルの正確さが低くなること、または、攻撃者(回避攻撃の場合)が、訓練済みモデルによって入力データを誤分類させることになる、入力データに導入するためのノイズを生成できないというものである。
図6は、1つの例示的実施形態による、訓練済みモデルの出力ベクトルにおいて訓練済みモデルの訓練済み構成を難読化するための実例の動作を概説するフローチャートである。図6に示されるように、動作は、入力データ・セットを受け取ること(ステップ610)によって始まる。出力値の初期セットを生成するために、訓練済みモデルによって入力データ・セットが処理される(ステップ620)。出力値の初期セットを修正して、変動によって表された導入されたノイズを含む出力値の修正されたセットを生成するために、出力値に変動が挿入される(ステップ630)。出力値の修正されたセットは、入力データ・セットの分類またはラベルあるいはその両方を識別するために使用される(ステップ640)。出力値の修正されたセットは、出力値の修正されたセットによって識別された分類に対応するラベルを含めるように拡張された、データの拡張された出力セットを生成するために使用される(ステップ650)。出力値の修正されたセットを含み得る拡張された(ラベル付き)データ・セットが、次に、出力される(ステップ660)。その後、拡張された(ラベル付き)データ・セットは、認知動作を実施するためにラベル付きデータ・セットを処理する認知コンピューティング動作エンジンへの入力として提供され得る(ステップ670)。動作は、その後、終了する。
図6は、ステップ650~670を実例の動作の一部として含むが、動作は、いくつかの例示的実施形態では、ステップ640で終了してもよく、ステップ650~670が含まれる必要はないことを理解されたい。すなわち、ステップ650~670で実施されるような分類/ラベリングおよび認知コンピューティング動作ではなく、修正された出力値(ステップ640)が、ユーザまたは他のコンピューティング・システムによる使用のために出力されてもよい。したがって、ユーザまたは他のコンピューティング・システムあるいはその両方は、修正された出力値自体に対して動作してもよく、ステップ650~670で提供されるような分類/ラベルを利用しなくてもよい。
したがって、上記で説明された例示的実施形態は、勾配を混乱させて攻撃をトラップするか欺くために損失表面が変化するように、小さくかつ欺くような変動を、例えばニューラル・ネットワークなどの機械学習モデルの出力に追加する。上記の例示的実施形態では、出力値の初期セットを修正して、出力値の修正されたセットを生成するために、図3の変動挿入エンジン320、または図5の590によって、図5の訓練済みモデル525などの、例えばニューラル・ネットワークなどの、訓練済みモデルの出力(分類の確率値)に導入されたノイズ(変動)は、出力の分類の全てに影響を及ぼす。これは、著しい量のノイズがモデルに導入されることになり得、したがって、返された確率の価値を薄め得る。例えば、元の確率ベクトル(出力)が[1.0,0,0,0,0,0,0,0,0,0]であり、上記の例示的実施形態の変動導入が、正規化の前に確率ベクトルを[0.9,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1]に修正すると仮定する。正規化は、最終的な変動を起こされた確率ベクトル[0.5,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06]を作る。したがって、先頭1個の確率1.0は、著しく小さい値0.5になる。この効果は、より大きい数のクラスで、さらにより激しくなることが可能である。
訓練済みモデルに導入されるノイズの量を全体として最小化するために、さらなる例示的実施形態では、例えばニューラル・ネットワークといった訓練済みモデルの出力における確率の全てに変動を導入するのではなく、選択確率出力への変動の選択式導入が実施され得る。変動の選択式導入は、分類の所定のサブセットに対して実施され得る、または、変動の大きさもしくは量は、分類の全てのまたは選択されたサブセットに対して修正され得る、あるいはその両方である。この変動の選択式挿入、または変動の大きさの修正、あるいはその両方は、動的に実施され得る。その上、この変動の選択式挿入、または変動の大きさの修正、あるいはその両方は、リクエストの情報源が攻撃者であるというリクエスト・パターン分析予測、リクエスタ指定レベルの受入れ可能モデル・ノイズ、補償ベースの評価、先頭K個の分析に基づく分類サブセット選択アルゴリズム、または同様のものなどの、様々な異なる動的修正尺度に基づいて実施され得る。上記で以前に論じられた様式で変動を挿入するべきモデルの出力分類のサブセットを選択するため、または、導入される変動の大きさまたは量を修正するため、あるいはその両方の実例のメカニズムが説明されるが、出力分類のサブセットを選択するため、または導入される変動の大きさを修正するため、あるいはその両方の他の尺度が、本発明の思想および範囲から逸脱することなく使用されてもよいことを理解されたい。
訓練済みモデルの出力に変動を挿入することになる分類出力のサブセット、または、訓練済みモデルの出力に挿入するべき変動の大きさ、あるいはその両方を指定するためのロジックを含む選択式分類出力変動エンジンが、さらなる例示的実施形態において提供される。選択式分類出力変動エンジンは、変動導入または変動の大きさあるいはその両方を分類出力の全てのまたは選択されたサブセットに導入するべき分類出力を決定するために、出力分類確率値に対して動作する元の出力層の直前、または元の出力層の後、あるいはその両方のノードの追加の層の一部などの、例えば、訓練済みモデルの外部のロジックとして、または、訓練済みモデル内のロジック・ノードの追加の層として、あるいはその両方として実行され得る。例えば、上記の前述の実施形態におけるような、分類出力確率値の全てに変動が挿入される実施形態では、選択式分類出力変動エンジン・ロジックは、出力層の前の出力確率値に変動を導入するように訓練済みモデルのノードの出力層の前の追加の層として動作し得るが、変動の大きさは、以下で説明されるように、選択式分類出力変動エンジンの動作に基づいて決定される。
他の例示的実施形態では、選択式分類出力変動エンジン動作の動作が、先頭K個のクラスの選択ベースの、変動を挿入するべき分類出力の選択などの、訓練済みモデルによって実際に生成された様々な分類の特定の確率値によって決まり、先頭K個のクラスを選択するために、ロジックは、どの分類が先頭K個のクラスにあるかを知る必要があり、選択式分類出力変動エンジン・ロジックは、訓練済みモデルのロジックの元の出力層の後にあり、かつロジック(ノード)の追加の修正された出力層の前にある、訓練済みモデルに存在するロジック層として提供されてもよい。この場合、選択式分類出力変動エンジン・ロジックは、訓練済みモデルによって生成された元の出力確率値に対して動作し、変動を導入するべき分類確率出力値のサブセットを判定し、決定された大きさの、または分類出力の選択されたサブセットへの、あるいはその両方の変動を挿入するように変動挿入エンジンを制御し、訓練済みモデルに、上述のものと同様の様式で修正されたまたは変動を起こされた出力分類確率を出力させる。
選択式分類出力変動エンジンの動作は、導入される変動の大きさ/量のうちの1つもしくは複数、または変動が挿入される訓練済みモデルによって出力された特定の分類確率出力値、あるいはその両方が、認知コンピューティング・システム、パイプライン、または同様のものに投入されたリクエストによって提供された入力データなどの入力データを、訓練済みモデルが処理するように動作するときに、動的に変化し得るように、動的な変動修正尺度に動的に基づき得る。選択式分類出力変動エンジンのこの動的な動作は、所定の状況または動的な変動尺度が現在の状況によって満たされることに応答して、訓練済みモデルの出力への変動の適用を動的に調節し得る。例えば、変動の動的な調節は、動的な変動尺度に基づいて訓練済みモデルの出力クラスの全てに変動が導入されないように、変動が導入される出力確率の特定のクラスを修正することを含み得る。別の例として、分類のための出力確率値の全てのまたは選択されたサブセットの出力確率値に導入される変動の量または大きさは、動的な変動尺度に基づいて動的に修正され得る。変動のこれらの動的修正は、訓練済みモデル/ニューラル・ネットワーク、認知コンピューティング・システム、または同様のものに入力されたリクエスト/クエリ・パターンの評価、ユーザに受入れ可能な訓練済みモデルの出力におけるノイズの量、補償階層、先頭K個の分析に基づく分類サブセット選択アルゴリズム、または同様のものなどの、様々な動的な変動尺度に基づいて行われ得る。
いくつかの例示的実施形態では、変動の動的修正は、特定の入力クエリの判定された重要性に基づいて行われ得る。例えば、ユーザは、同じまたは異なるユーザによって他のクエリより相対的に重要であると識別されたユーザの1つまたは複数のクエリを有するために、より高いコストを払うことに「オプト・イン」し得る。より重要なクエリは、例えば、変動の少ない、より正確な結果を提供され得る。他の例示的実施形態では、変動は、特定のクラスの相対的な重要性に基づいて、クラスごとに動的に修正され得る。例えば、1つまたは複数の分類が、「重大なクラス」(相対的に高い重要性)として定義され得る一方で、他の分類は、医療分類シナリオにおける(一般的な風邪のクラスに対する)結核など、重大なクラスでない(相対的に低い重要性)と考えられ得る。重大な(または重要な)クラスに対して、変動の量は、重大なクラスに関して、より正確な結果が医療専門家に提供され得るように、これらの重大なクラスに関してより正確な結果を提供するために、低減されることが可能である。
図7は、1つの例示的実施形態による、選択分類出力変動が実施される認知システム処理パイプラインの例を示す。図7は、図5のものに似ているが、変動挿入エンジン590による変動の選択式導入を制御するためにさらなる例示的実施形態によって利用される、選択式分類出力変動エンジン710および変動選択データ・ストレージ720が追加されている。エンジン710および590のロジックは、訓練済みモデル525とは別個のものとして示されているが、ロジックは、本明細書で論じられるように、修正された変動挿入エンジン590がエンジン710のロジックを備えるなど、互いに統合されるか、むしろ、訓練済みモデル525の元の出力層の前または後あるいはその両方の追加のロジック層として訓練済みモデル525のロジックに組み合わされてもよいことを理解されたい。図5の参照番号に対応する参照番号を有する図7の要素は、以下で別途指示がない限り前述のものと同様の様式で動作する。これらのさらなる例示的実施形態のメカニズムは同様に、認知コンピューティング・システムを伴う、またはQAパイプラインを伴う使用に限定されないが、分類動作を実施する任意の訓練済みモデルと共に実行されてよいこともさらに認識されたい。
図7に示されるように、図5に関して上記で前述されたメカニズムに加えて、さらなる例示的実施形態は、モデル窃取攻撃および敵対的サンプルに関して上記で前述された保護を達成しながら、訓練済みモデル525へのノイズの導入を最小化するために変動挿入エンジン590によって実施される変動挿入を制御するように、変動挿入エンジン590と協働して動作する選択式分類出力変動エンジン710を含む。すなわち、例示的実施形態の変動挿入エンジン590は、上述のように分類の正確さを保ちながら、出力ベクトルにおける生成された確率値に変動を導入するように動作する。それでも、選択式分類出力変動エンジン710は、分類の正確さを保ちながら、導入変動の大きさ、または変動が導入される分類出力のサブセットのうちの少なくとも1つを選択することによって、変動挿入により導入されるノイズの量を最小化するように動作する。したがって、QAシステム・パイプライン500に沿った下流で正しい分類が依然として提供されるが、モデル窃取攻撃または敵対的サンプルあるいはその両方を使用して独自のモデルを訓練するために出力ベクトル確率値へのアクセス権を取得したどのような攻撃者も、訓練済みモデル525より低い性能を提供するこのような確率値に対して訓練されたいずれかのモデルを生じる不正確な確率値を提示されるはずである。
前の例示的実施形態と同様に、変動挿入エンジン590は、出力確率で表された曲線に沿ったポイントに対して計算された勾配が、正しい方向および量から逸脱し、修正された出力分類および対応するラベルの正確さの低下も最小化するように、訓練済みモデル525によって生成された出力確率に変動を挿入するように動作する。いくつかの例示的実施形態では、変動挿入エンジン525は、例えば、確率値のシグモイドまたはソフトマックス曲線といった、出力確率曲線の1次導関数の符号を逆転させる変動関数を使用することによって、これらの尺度を満たし、最小値から最大値までの範囲の+/-半分まで、曲線の最大値および最小値付近の、曲線の終端にノイズすなわち変動を追加し、例えば、0%から100%までを範囲とするソフトマックスまたはシグモイド確率値曲線の場合、ノイズすなわち変動は、+/-0.5までの規模を有する。上記で前述されたように、利用される特定の変動関数は、上記で以前にリスト化されたもの、ならびに上述された尺度および指針を満たす他のものを含む多くの異なる形をとり得る。
結果として生じた修正済み出力ベクトルは、ラベル付きデータ・セット内の入力データに関連付けられた、分類および関連付けられたラベルの妥当性を保ちながら、修正された確率値を提供する。したがって、入力データ・セットの正しい分類およびラベリングは、訓練済みモデル525の実際の訓練済み構成を難読化しながら、依然として実施される。結果として生じた分類済みまたはラベル付きデータ・セットは、認知システムが採用される認知動作全体のさらなる処理および実施のために、質問およびトピック分析520など、パイプライン500における下流の処理のさらなるステージに提供され得る。
したがって、攻撃者は、複数の入力データ・セットを投入すること、対応するラベル付き出力データ・セット、および出力ベクトルの対応する確率値を取得すること、ならびにこれにより、ラベル付きデータ・セット、およびベクトル出力におけるその関連付けられた確率値を訓練データとして利用することによって訓練済みモデル525の訓練を正確に複製するように独自の訓練済みモデルを訓練することができない。反対に、そうすることは、訓練済みモデル525を利用し続ける必要性を生じる、訓練済みモデル525の性能より著しく低い性能を提供するモデルを生じるはずである。
図7に示されたさらなる例示的実施形態では、選択式分類出力変動エンジン710は、分類出力確率のうちの1つもしくは複数に導入するべき変動の大きさ、または変動を挿入するべき分類出力確率、あるいはその両方について、変動挿入エンジン590に命令するように変動挿入エンジン590を制御するように動作する。選択式分類出力変動エンジン710によって実施される選択は、例えば、QAパイプライン500に入力されたリクエスト/クエリ、訓練済みモデル525によって生成された元の出力確率値、または変動選択データ・ストレージ720に格納されたデータ、あるいはその組合せといった、訓練済みモデル525によって処理された入力リクエスト/クエリからのものであり得る様々な選択尺度および選択データに基づいて実施され得る。選択式分類出力変動エンジン710によって実施された選択は、多くの異なる形をとり得るので、以下の説明は、選択式分類出力変動エンジン710の様々な例示的実施形態によって実行される選択方法およびロジックの例を示すことになるが、本発明の思想および範囲から逸脱することなく、本説明の観点から当業者には明らかになるように、他の方法およびロジックが実行され得ることを理解されたい。
いくつかの例示的実施形態では、変動選択データ・ストレージ720は、変動を挿入するべき、または訓練済みモデル525の出力確率に挿入するべき変動の大きさを選択するべき、あるいはその両方の分類出力確率値の選択を実施するための基礎として機能するデータを格納する。例えば、変動選択データ・ストレージ720は、リクエストの情報源、リクエストの情報源によって投入される入力データのパターン、および同様のものを示すデータを格納する。その上、変動選択データ・ストレージ720は、ユーザ(情報源)からのリクエスト/入力データのために実施するべき所望の選択方法、訓練済みモデルの出力確率における受入れ可能なノイズのレベル、変動(ノイズ)を挿入するべき確率値出力のサブセットを選択するために使用するための対応する訓練済みモデル525または特定の選択方法あるいはその両方に導入された変動の大きさにマッピングされ得る所有者/オペレータに関連付けられた加入または補償レベル、および同様のものを指定する情報を含み得る、例えば、QAパイプライン500または訓練済みモデル525あるいはその両方といった、認知コンピューティング・システムの登録済み所有者/オペレータの登録簿を格納し得る。レジストリは、リクエストのユーザ(情報源)が攻撃者である可能性が高いかどうかを判定するために、または深められた調査を要求するために、ユーザ(情報源)についての情報も格納し得る。いくつかの例示的実施形態では、変動選択データ・ストレージ720は、提供されなくてもよく、選択式分類出力変動エンジン710は、全ての情報源に対して同じ様式で動作してもよく、例えば、全てのユーザ(情報源)に対して、先頭K個の出力確率値は、変動挿入を実施されることになり、ここで、Kは、全てのユーザ(情報源)に対して同じ値である。
1つの例示的実施形態では、選択式分類出力変動エンジン710は、生成された変動を挿入するべき、訓練済みモデル525によって生成された元の出力値における先頭K個のランク付き出力確率値を選択する先頭K個の選択方法に基づいて動作する。例えば、Kが「5」の場合、先頭5個のランク付き出力確率値は、その元の出力確率値が、変動挿入エンジン590による変動の挿入によって変動を起こされることになる。選択式分類出力変動エンジン710は、入力データを処理することによって、訓練済みモデル525によって生成された元の出力値を受け取ることができ、訓練済みモデル525の出力確率値の全てに変動を挿入するのではなく、変動挿入エンジン590が変動を挿入することになるものであるように、K個の最高値の出力確率値クラスを選択し得る。したがって、例えば、クラスC1、C2、C3、C4、C5、C6、C7、C8、C9、およびC10の、訓練済みモデル525によって生成された元の出力された確率値が、それぞれ0.92、0.72、0.05、0.12、0.45、0.32、0.68、0.22、0.10、および0.06である場合、K値4に対して、先頭K個の選択方法は、C1、C2、C5、およびC7がセットにおける先頭4個のランク付き出力確率値であるので、変動挿入エンジン590によって変動がそのそれぞれの確率出力値に挿入されるクラスとして、クラスC1、C2、C5、およびC7を選択することになる。
選択されたクラス出力確率値は、訓練済みモデル525によって生成された元の出力確率値と、変動を挿入するべき出力確率値を変動挿入エンジン590に命令するために変動挿入エンジン590に送られた制御信号または出力とに基づいて、選択式分類出力変動エンジン710によって識別され得る。変動挿入エンジン590は、次に、分類出力確率値の選択されたサブセットに関する修正された出力確率値を訓練済みモデル525に出力させるように、分類出力確率値の選択されたサブセットに対して、上記で前述されたように、その動作を実施することになる。
選択されたクラスの出力確率値の選択されたサブセットにだけ変動を挿入することによって、訓練済みモデル525の出力に導入されるノイズの量は、依然として、任意のモデル窃取攻撃または敵対的サンプル・ベースの攻撃あるいはその両方を妨害できると同時に、最小化され得る。すなわち、訓練済みモデル525の出力に導入されるノイズの全体量は、訓練済みモデル525の出力の実用性を保ちながら、最小化される。それでも、ノイズの導入が最小化されたとしても、モデル窃取攻撃および敵対的サンプル・ベースの攻撃を妨害するために変動の導入によって提供される防御の有効性は、先頭K個の出力確率値への変動の導入により訓練済みモデル525によって生成された修正された出力確率値を誤分類したクラスが、誤解させる変動によって影響を受ける先頭K個のクラスのうちの1つになるので、依然として達成される。
値Kは、所望の実装形態のための潜在的に定義されたデフォルトのK値を有する、K=0とK=max(K)との間で調和可能な、調和可能パラメータであり、選択式分類出力変動エンジン710によって利用されるK値は、例示的実施形態の所望の実装形態に基づいて選択され得ることを理解されたい。値Kは、固定されてもよく、またはいくつかの例示的実施形態では、Kは、例えば、入力リクエストから取得され得る様々な異なる変動選択データ、処理される入力データ・セット、訓練済みモデルの出力、または変動選択データ・ストレージ720に格納されたデータ、あるいはその組合せに基づいて、動的に調和可能でもよい。例えば、選択式分類出力変動エンジン710は、入力リクエストから認知コンピューティング・システムまたは訓練済みモデル525あるいはその両方に投入される入力リクエスト/データ・セットに関する情報源識別情報、セッション情報、または特性情報、あるいはその組合せを受け取ることができ、変動選択データ・ストレージ720から、格納された情報を受け取ることができ、これらのデータのうちの1つまたは複数の分析に基づいて先頭K個の選択アルゴリズムで使用するために値Kを動的に決定することができる。例えば、いくつかの例示的実施形態では、選択式分類出力変動エンジン710は、同じ情報源からの1つまたは複数のリクエストの入力データに対してパターン分析ロジックを実施し、全体としてパターンが訓練済みモデル525または認知コンピューティング・システムあるいはその両方に対する攻撃を表すかどうかを判定し得る。このパターン分析は、変動選択データ・ストレージ720に格納された情報を使用し得る。この格納された情報は、同じセッション、複数のセッション、所定の期間、または同様のものの中で、同じ情報源から受け取られたリクエストを含み得る。
選択式分類出力変動エンジン710は、入力リクエスト/データ・セット、同じ情報源から受け取られたリクエスト/データ・セットの履歴、または同様のものから抽出された様々な特徴に対して動作する、別の訓練済みニューラル・ネットワークまたは同様のものなどの、分類モデルを使用して、リクエストおよび入力データ・セットの特徴を評価し、情報源からの入力リクエストが、訓練済みモデル525に対する攻撃の一部であるかどうかを予測し得る。例えば、同じ情報源が、例えば画像といった、分類のための、所定の期間にわたる、同じセッション内の、または同様のものの類似の入力データと共に多数のリクエストまたは大きいデータ・セットを送っていた場合、これは、攻撃を示すものであり得る。IPアドレスまたは同様のものから判定され得るような、攻撃が生じたエリアであることが知られた特定の地理的エリアに情報源がある場合、選択式分類出力変動エンジン710は、リクエストが、攻撃の一部である可能性があること、または攻撃に関連付けられる高い確率を有することを判定し得る。情報源が、登録済みの情報源でない場合、深められた調査が適用可能であり得、したがって、エンジン710は、リクエストが攻撃の一部であるという高い可能性を判定し得る。リクエストまたは入力データあるいはその両方の特性の他の分析は、リクエストが攻撃の一部である可能性を評価するために実施され得る。
リクエスト/入力データが、例えば、予測値が所定の閾値以上であるなど、攻撃の一部である可能性が高いと判定されると、増加されたノイズが、訓練済みモデル525によって生成された出力確率値に入力され得る。ノイズ導入のこの増加は、別途利用されるはずのものよりKの値を増加させることになり得、例えば、デフォルトのK値が4の場合、値Kは、10個または全ての出力分類に増加され得る。図示のように、訓練済みモデル525の出力に導入されるノイズの量のこの修正は、受け取られたリクエスト/入力データ・セットの評価、およびリクエストの情報源の評価に基づいて動的に実施され得る。
変動挿入エンジン590によって訓練済みモデル525の出力に導入されるノイズの量の動的修正は、リクエスト/データ・セットが攻撃に関連付けられたものであるかどうかを予測することに限定されないが、変動の挿入を通じて、訓練済みモデル525の所有者/オペレータの所望のレベルのノイズ導入に基づいてさらに実施されてもよい。この所望のレベルは、変動選択データ・ストレージ720の一部として維持される訓練済みモデルの所有者情報のレジストリに基づいて決定され得る。例えば、種々の訓練済みモデル525の所有者/オペレータが、自分の訓練済みモデル525に対して異なるレベルの保護を望んでもよく、保護は、動作性能、所有者/オペレータが財政的観点から余裕のある保護の量、または同様のものに基づいてもよい。例えば、所有者/オペレータは、訓練済みモデル525の所望の性能に基づいて、より多くのまたは少ない保護を望んでもよい。増加された保護を望む所有者/オペレータのために、相対的に多くの量のノイズが、例えば、上記で説明された先頭K個のアルゴリズムで、デフォルトのK値を上回る、増加されたK値など、所有者/オペレータの訓練済みモデル525によって生成された出力確率値に導入されてもよい。増加された保護を望まない所有者/オペレータのために、デフォルトのノイズ、またはより少ない量のノイズが、例えば、上記で説明された先頭K個のアルゴリズムで、デフォルトのK値、またはデフォルトのK値を下回る減少されたK値など、所有者/オペレータの訓練済みモデル525によって生成された出力確率値に導入されてもよい。
いくつかの例示的実施形態では、訓練済みモデル525の所有者/オペレータへの種々のコストを、種々の階層の保護にもたらし得る。したがって、所有者/オペレータが、より高いレベルの保護に対応するより高い階層レベルに加入した場合、より低いレベル保護より多くのノイズが所有者/オペレータの訓練済みモデルの出力に導入され得るか、より低いレベル保護階層より高い性能が達成され得る。代替として、より低い階層に加入した所有者/オペレータが、例えば、全ての出力分類確率値に導入される同じサイズの変動など、より多くのノイズを導入するように、より高い階層が、訓練済みモデルへのノイズのより多くの選択式入力に関連付けられ得る一方で、より高い階層に加入した所有者/オペレータは、挿入されるノイズ、すなわち、さらなる例示的実施形態による選択分類出力変動を最小化してもよい。
したがって、特定の実装形態に応じて、変動を挿入するべき分類出力確率値の動的選択の種々のカスタマイズが達成され得る。カスタマイズは、入力リクエスト/データ・セットを処理するために使用される特定の訓練済みモデル525に基づき得る。例えば、リクエストが、特定の訓練済みモデル525によって実施される特定の動作をターゲットにするか、これをリクエストする場合、変動選択データ・ストレージ720に格納されたレジストリからの対応する所有者/オペレータ情報は、選択式分類出力変動エンジン710によって取り出され、変動を挿入するべき先頭K個の出力確率値を判定するために訓練済みモデル525からの元の出力値と共に使用され得る。この情報は、次に、変動挿入エンジン590への制御信号または出力を生成するために使用され、出力分類確率値の選択されたサブセットに対する変動挿入を変動挿入エンジン590に実施させ、これにより、修正された分類確率値を生成する。
他の例示的実施形態では、訓練済みモデル525によって生成された分類出力確率値に挿入される変動の大きさまたは量は、訓練済みモデル525の出力に全体として導入されるノイズの量を最小化するように修正され得る。例えば、変動の大きさ/量は、情報源、所有者/オペレータ・レジストリ情報、リクエストが攻撃の一部である可能性を示すパターン分析、または同様のものに基づいて、先頭K個のアルゴリズムのK値を動的に修正するために、上記で論じられたものなどの、様々な尺度に基づいて増加/減少され得る。例えば、前述のような先頭K個のアプローチを使用して、先頭K個の元の出力値を識別することができ、これらの先頭K個の元の出力値に挿入された変動を増加させることができるが、他の全ての元の出力値が、これらの元の出力確率値に、より小さいサイズ/量の変動を挿入することになり、例えば、先頭K個の値が、0.05だけ変動を増加させるが、他の全ての値が、デフォルトの変動サイズ/量から0.05だけ変動を減少させる。代替として、所有者/オペレータが、より高い階層の保護に加入した場合、相対的に低い階層の保護に加入した所有者/オペレータより、増加されたサイズの変動が利用され得る。訓練済みモデル525の出力に導入されるノイズの量を制御するように、変動の大きさの様々なカスタマイズが実施されてもよく、本発明の思想および範囲から逸脱することなく実施され得る。
その上、カスタマイズおよび動的修正は、変動の大きさ/量と、変動が挿入される分類出力確率値のサブセットとの両方に対して、実施され得る。これらのカスタマイズは、やはり、訓練済みモデル525によって生成された特定の元の出力値、認知コンピューティング・システムおよび/または訓練済みモデル525に流れる受け取られたリクエストから抽出されたリクエスト/入力データ・セットの特性、および/または変動選択データ・ストレージ720に格納された情報に基づき得る。したがって、情報源が攻撃者であると考えられる可能性があるか否か、リクエスト/入力データ・セットが攻撃者であると考えられる可能性がある否か、訓練済みモデル525の出力へのノイズ挿入のレベルに対する加入者の嗜好、または同様のものに基づいて、より大きいまたは小さいサイズの変動が、訓練済みモデル525の出力に導入され得る。その上、より多くのまたは少ないクラス予測出力は、情報源が攻撃者であると考えられる可能性があるか否か、リクエスト/入力データ・セットが攻撃者であると考えられる可能性があるか否か、訓練済みモデル525の出力へのノイズ挿入のレベルに対する加入者の嗜好、または同様のものに基づいて変動(ノイズ)を挿入していてもよい。
変動選択データ・ストレージ720は、1つまたは両方のタイプの変動(ノイズ)挿入制御を使用するべきかどうか、および、どの程度までこれらのタイプの変動挿入制御のうちの1つまたは両方を使用するべきかに関する、訓練済みモデル525の所有者/オペレータの嗜好を格納し得ることを理解されたい。例えば、特定の所有者/オペレータが、変動挿入エンジンの先頭K個の選択制御だけを使用したいと思い得るし、例えば、リクエストが攻撃の一部であるかどうかを判定するための尺度といった、増加/減少させることによってK値を修正するべきかどうかおよびいつ修正するべきかを判定するための尺度で、所望のまたはデフォルトのK値を指定し得る、といったことを示す嗜好が、データ・ストレージ720のレジストリに格納され得る。訓練済みモデル525の別の所有者/オペレータに関して、変動挿入の制御を動的に修正するための異なる嗜好または尺度あるいはその両方が指定されてもよく、例えば、Kを増加/減少させるため、または変動サイズを増加/減少させるため、あるいはその両方の指定された尺度と共に、先頭K個の選択と変動サイズ制御との両方を使用する。選択式分類出力変動エンジン710は、リクエスト/入力データ・セットを処理するために使用される対応する訓練済みモデル525のための適切なレジストリ・エントリを取り出し、選択式分類出力変動エンジン710から変動挿入エンジン590に送られる対応する変動挿入制御信号または出力を生成し得る。
いくつかの例示的実施形態では、訓練済みモデル525の出力における挿入されたノイズをカスタマイズするための変動挿入の動的制御は、受け取られたリクエスト/データ・セットの判定された重要性に基づき得る。このようなメカニズムを用いて、選択分類出力変動を実施することによって、相対的に多くの重要なリクエスト/データ・セットが、相対的に少ない量のノイズを訓練済みモデル525の出力に導入されることになるので、変動を導入するための分類出力確率値のサブセットを選択するか、ノイズを低減させるように変動の大きさを修正して変動の大きさを低減させるか、両方である。前述のように、リクエスト/データ・セット(またはクエリ)の「重要性」は、例えば、ユーザが、より高いレーティングまたはランキングを有するリクエスト/データ・セット(異なる階層のリクエスト/データ・セット)をマークすること、および相対的により重要なリクエスト/データ・セットの割り増しコストを潜在的に払うことを含む、様々な因子に基づき得る。いくつかの実施形態では、重大なクラス、または「重要な」クラス(やはり、異なる「階層」の重要性)の所定のリストが定義されてもよく、リクエスト/データ・セットの重要性は、これらの重要性の階層に基づいて判定され得る。例えば、一番上の階層の分類(例えば、「癌」、「心臓発作」、「卒中」等)は、変動が導入されなくてもよく、その一方で、低い方の階層の分類(例えば、「結核」、「インフルエンザ」等)は、小さい変動が導入されてもよい。例えば「風邪」といった最も下の階層の分類は、より大きい変動(より多くのノイズ)が導入されてもよい。異なる階層に対して、0が変動を追加しないことを示し、1が完全すなわち最大の変動を追加することを示すように変動を追加するために、関数または所定のスケーリング因子が提供され得る。
動的に修正された変動選択またはカスタマイズのいずれかに対して、低減の量は、モデル窃取攻撃または敵対的サンプル・ベースの攻撃(回避攻撃)が、例示的実施形態の勾配策略メカニズムによって依然として妨害されるレベルに限定されることに留意されたい。したがって、例えば、訓練済み機械学習モデルによる適切な分類出力を可能にするために多すぎるノイズが導入される上限値、および攻撃を適切に妨害するために少なすぎるノイズが導入される下限を含む範囲といった、挿入された変動の動的修正が調節され得るノイズの範囲がある。論理的に、先頭「k」個の実施形態について、kは、1以上であることが可能である。例示的実施形態の防御効果は、この場合、先頭1個のクラスに向かう勾配、または先頭1個のクラスから離れる勾配が依然として欺き得るので、k=1に対してそこにあるはずである。kが増加するにつれて、欺く方向を有するこのようなクラスの数が増加する。モデル回避および窃取に対して、最も有益な方向は、先頭1個のクラスである。したがって、効果は依然としてそこにある。変動の大きさは、このようなノイズを注入するための特定の方法によって決まり、これは、経験的に決定され得る。
先頭K個の選択および変動サイズの制御が上記で説明されているが、本発明の様々な実施形態は、本発明の思想および範囲から逸脱することなく、導入されたノイズの量を修正するための他の制御を実行してもよいことを理解されたい。実際に、いくつかの例示的実施形態では、全体としてノイズを追加するべきか否かは、任意選択であることが可能である。例えば、前述のように、最も上の階層のクエリは、変動を有していないことが可能であるが、より低い階層は、全てのクラスに対してノイズを有してもよい。その上、いくつかの実施形態では、重要または重大なクラスが定義される場合、ノイズ(変動)は、重要でないクラスのみに選択的に適用されてもよい。
別の実施形態では、変動の導入の動的制御は、リスク・アセスメントに基づくことが可能である。例えば、クエリ・パターン分析エンジンまたは人工知能(AI)モデルが、同じ情報源から生じる一連のクエリ(リクエスト/入力データ・セット)を分析して、パターンが潜在的な悪意のあるアクションを表すかどうかを判定してもよい。例えば、敵対的サンプル生成は、典型的には、同様の画像を複数回問い合わせる必要がある。情報源は、例えば、所定の期間内、同じセッション内、または同様のものの中で、一時停止標識の複数の画像といった、類似の画像についての、より多くのクエリを投入するので、クエリ・パターン分析エンジンまたはAIモデルは、このパターンを検出し、変動挿入エンジンを制御して、例えば、より大きい変動といった、より多くのノイズを徐々に追加すること、または、例えばモデル窃取攻撃もしくは回避攻撃といった、訓練済みモデルに対する攻撃の一部であると疑われるクエリにおけるノイズを増加させるように、先頭K個ベースのメカニズムでkを増加させることができる。
いくつかの実施形態では、先頭K個ベースのメカニズム、重大もしくは重要なクラスの事前定義されたセット、または全て/なしの代わりに、例示的実施形態のメカニズムは、さらに、クラスのランダム・セットにノイズを追加し得る。すなわち、ノイズが導入される特定のクラスは、動的かつランダムに、しかし、受入れ可能なレベルにあるものとして全体としてモデルに導入されるノイズの量を依然として保ちながら、決定され得る。例えば、いくつかの実施形態では、ノイズの導入のために所定の数のクラスが選択されてもよいが、選択された特定のクラスは、演繹的に知られていなくてもよい。要するに、ノイズが導入されるクラスのサブセットの選択、または導入されるべき変動の種々のレベルの選択、あるいはその両方を可能にする任意のメカニズムが、本発明の思想および範囲から逸脱することなく使用されてもよい。
したがって、これらのさらなる例示的実施形態は、変動挿入エンジン590による訓練済みモデル525の出力への変動の挿入によって、訓練済みモデル525の出力に導入されるノイズの量を最小化するためのメカニズムを提供する。ノイズの最小化は、モデル窃取攻撃および敵対的サンプル・ベースの攻撃を妨害するための勾配策略メカニズムの実用性を保ちながら、上記で論じられた出力分類確率値を下げることで問題を避けるのに役立つ。ノイズの最小化の量は、例示的実施形態の調和可能な特性であってもよく、モデル所有者/オペレータの嗜好、加入または他の補償レベル、処理されるリクエスト/データ・セットの重要性、リクエスト/データ・セットが攻撃の一部である可能性を示す活動のパターン、情報源が攻撃者である可能性に関するリクエストの情報源/データ・セットの評価などの、静的または動的な尺度に応じて調和されてもよい。
図8は、変動挿入の動的修正が実施されるさらなる例示的実施形態の実例の動作を概説するフローチャートである。図8に概説された動作は、例えば、訓練済みモデル525によって生成された出力分類確率値に挿入される変動の大きさ、または訓練済みモデル525によって生成された出力分類確率値の選択されたサブセットへの変動の挿入、あるいはその両方を制御するために、変動挿入エンジン590と協働して、例えば図7の選択式分類出力変動エンジン710によって、実施され得る。
図8に示されるように、動作は、さらに提供され得る、またはそうでなければ、リクエストの結果としてアクセスされ得る、入力データ・セットを処理したいというリクエストを受け取ることによって始まる(ステップ810)。入力データ・セットは、出力値の初期セットを生成するために訓練済みモデルによって処理される(ステップ820)。例えば、情報源識別子(IPアドレス、ユーザ名等)、セッション識別子、実施されることになるリクエストされた分類動作、リクエストの重要性指標等といった、受け取られたリクエストの特性、または、例えば、画像のタイプ、もしくは同様のものなどの、例えば、処理されるデータの数およびタイプなどの、入力データ・セットの特性、あるいはその両方が、リクエスト/入力データ・セットから抽出されてもよく、モデルによって生成された出力値の初期セットと共に選択式分類変動エンジンへの入力として提供される(ステップ830)。変動を起こさせるべき分類出力のサブセット、または出力分類確率値に導入するべき変動の大きさ、あるいはその両方が、抽出された特性、および出力値の初期セットに基づいて決定される(ステップ840)。この動作は、特定の選択された実施形態およびその実装形態によって可能にされる、カスタマイズおよび動的修正のタイプに応じて多くの異なる形をとり得る。例えば、先頭K個の分析は、変動の挿入によって変動を起こさせるために出力の初期セットにおいて先頭K個の分類出力を選択するために実施されてもよく、ここで、値Kは、固定値、または上記で前述されたような他の因子に基づいて動的に決定された値でもよい。その上、情報源情報は、情報源が攻撃者である可能性があるかどうかを予測するために使用されてもよく、所有者/オペレータ情報は、モデルの出力に導入するべきノイズの所望のレベルを決定するために評価されてもよい。
ステップ840で変動挿入に対する制御を決定した後、変動挿入エンジンは、出力値の修正されたセットを生成するために、選択されたサイズの、または出力の選択されたサブセットに、あるいはその両方の、変動を挿入するように制御される(ステップ850)。出力値の修正されたセットは、入力データ・セットの分類/ラベルを識別するために使用され(ステップ860)、出力値の修正されたセットによって識別された分類に対応するラベルを含めるように拡張された、データの拡張された出力セットを生成する(ステップ870)。出力値の修正されたセットを含み得る拡張された(ラベル付き)データ・セットが、次に出力される(ステップ880)。その後、拡張された(ラベル付き)データ・セットは、認知動作を実施するためにラベル付きデータ・セットを処理する認知コンピューティング動作エンジンへの入力として提供され得る(ステップ890)。動作は、その後終了する。
図8は、実例の動作の一部としてステップ860~890を含んでいるが、動作は、いくつかの例示的実施形態では、ステップ850で終了してもよく、ステップ860~890は含まれる必要はないことを理解されたい。すなわち、ステップ860~890で実施されるような、分類/ラベリングおよび認知コンピューティング動作ではなく、修正された出力値(ステップ850)は、ユーザまたは他のコンピューティング・システムによる使用のために出力されてもよい。したがって、ユーザまたは他のコンピューティング・システムあるいはその両方は、修正された出力値自体に対して動作してもよく、ステップ860~890で提供されるような分類/ラベルを利用しなくてもよい。
上述のように、例示的実施形態は、全面的にハードウェア実施形態、全面的にソフトウェア実施形態、またはハードウェアとソフトウェアの両方の要素を収める実施形態の形をしていてもよいことを理解されたい。1つの実例の実施形態では、例示的実施形態のメカニズムは、ファームウェア、常駐ソフトウェア、マイクロコード等を含むがこれらに限定されない、ソフトウェアまたはプログラム・コードで実行される。
プログラム・コードの格納または実行あるいはその両方に適したデータ処理システムは、例えば、システム・バスなどの、通信バスを通じて記憶素子に直接的または間接的に連結された少なくとも1つのプロセッサを含む。記憶素子は、プログラム・コードの実際の実行中に用いられるローカル・メモリ、大容量ストレージ、および、実行中に大容量ストレージからコードを検索しなければならない回数を低減させるために少なくともいくつかのプログラム・コードの一時記憶を行うキャッシュ・メモリを含むことができる。メモリは、ROM、PROM、EPROM、EEPROM、DRAM、SRAM、フラッシュ・メモリ、ソリッド・ステート・メモリ、および同様のものを含むがこれらに限定されない、様々なタイプのものであってもよい。
(キーボード、ディスプレイ、ポインティング・デバイス等を含むがこれらに限定されない)入出力またはI/Oデバイスは、直接的にシステムに連結することができ、または、介在する有線もしくはワイヤレスのI/Oインターフェースまたはコントローラあるいは両方などを通じて、システムに連結することができる。I/Oデバイスは、例えば、スマート・フォン、タブレット型コンピュータ、タッチ・スクリーン・デバイス、音声認識デバイス、および同様のものを含むがこれらに限定されない、有線またはワイヤレス接続を通じて連結された通信デバイスなど、従来のキーボード、ディスプレイ、ポインティング・デバイス、および同様のもの以外の多くの異なる形をしていてもよい。任意の既知の、または後で開発されるI/Oデバイスが、例示的実施形態の範囲内にあるものと意図される。
ネットワーク・アダプタも、介在するプライベートまたはパブリック・ネットワークを通じて、他のデータ処理システムまたはリモート・プリンタまたはストレージ・デバイスに、データ処理システムが連結されるようになることを可能にするために、システムに連結することができる。モデム、ケーブル・モデム、およびEthernet(R)・カードは、有線通信のためのネットワーク・アダプタの現在利用可能なタイプのほんのいくつかである。802.11a/b/g/nワイヤレス通信アダプタ、Bluetooth(R)ワイヤレス・アダプタ、および同様のものを含むがこれらに限定されない、ワイヤレス通信ベースのネットワーク・アダプタも利用することができる。任意の既知の、または後で開発されるネットワーク・アダプタが、本発明の思想および範囲内にあると意図される。
本発明の説明は、例示および説明のために提示されてきたが、網羅的であること、または、開示された形の本発明に限定されることを意図するものではない。説明された実施形態の範囲および思想から逸脱することなく、多くの変更形態および変形形態が当業者には明らかであろう。実施形態は、本発明の諸原理、実用的用途を最もよく説明するように、および、想定される特定の使用に適しているような様々な変更を伴う様々な実施形態について本発明を他の当業者が理解できるように選ばれ、説明された。本明細書で使用した専門用語は、実施形態の原理、実用的用途、もしくは市場で見つかる技術に対する技術的改善を最もよく説明するように、または、本明細書で開示された実施形態を他の当業者が理解できるように選ばれた。