(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-10-27
(45)【発行日】2023-11-07
(54)【発明の名称】勾配を使用したニューラル・ネットワーク内のバックドアの検出
(51)【国際特許分類】
G06T 7/00 20170101AFI20231030BHJP
G06N 20/00 20190101ALI20231030BHJP
G06N 3/04 20230101ALI20231030BHJP
G06N 3/08 20230101ALI20231030BHJP
【FI】
G06T7/00 350C
G06N20/00
G06N3/04
G06N3/08
(21)【出願番号】P 2020554436
(86)(22)【出願日】2019-04-10
(86)【国際出願番号】 IB2019052941
(87)【国際公開番号】W WO2019202436
(87)【国際公開日】2019-10-24
【審査請求日】2021-08-30
(32)【優先日】2018-04-16
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】390009531
【氏名又は名称】インターナショナル・ビジネス・マシーンズ・コーポレーション
【氏名又は名称原語表記】INTERNATIONAL BUSINESS MACHINES CORPORATION
【住所又は居所原語表記】New Orchard Road, Armonk, New York 10504, United States of America
(74)【代理人】
【識別番号】100112690
【氏名又は名称】太佐 種一
(72)【発明者】
【氏名】リー、タエスン
(72)【発明者】
【氏名】モロイ、イアン、マイケル
(72)【発明者】
【氏名】カーバルホ、ウィルカ
(72)【発明者】
【氏名】エドワーズ、ベンジャミン、ジェームス
(72)【発明者】
【氏名】チャン、ジアロン
(72)【発明者】
【氏名】チェン、ブライアント
【審査官】大塚 俊範
(56)【参考文献】
【文献】MUNOZ-GONZALEZ, Luis、他6名,Towards Poisoning of Deep Learning Algorithms with Back-gradient Optimization,Machine Learning,ARXIV.ORG,2017年08月29日,p.1-11,https://doi.org/10.48550/arXiv.1708.08689
【文献】CHEN, Xinyun、他4名,Targeted Backdoor Attacks on Deep Learning Systems Using Data Poisoning,Cryptography and Security,ARXIV.ORG,2017年12月15日,p.1-18,https://doi.org/10.48550/arXiv.1712.05526
【文献】GU,Tianyu、他2名,BadNets: Identifying Vulnerabilities in the Machine Learning Model Supply Chain,Cryptography and Security,ARXIV.ORG[オンライン],2017年08月22日,p.1-13,インターネット:<URL:https://doi.org/10.48550/arXiv.1708.06733>
(58)【調査した分野】(Int.Cl.,DB名)
G06T 7/00- 7/90
G06N 20/00
G06N 3/04
G06N 3/08
(57)【特許請求の範囲】
【請求項1】
プロセッサおよびメモリを備えているデータ処理システムにおける方法であって、前記メモリが、トレーニング済み機械学習モデルを評価して前記機械学習モデルがバックドア・トリガーを含んでいるかどうかを判定するためのバックドア・トリガー識別エンジンを実装するための命令を含んでおり、前記プロセッサが、
前記トレーニング済み機械学習モデルによって、テスト・データセットを処理して前記テスト・データセットの出力分類を生成することと、
前記バックドア・トリガー識別エンジンによって、前記テスト・データセットを処理することによって生成された前記出力分類とターゲット・クラスとの対ごとに前記テスト・データセット内の要素の変化度を示す勾配データを生成することと、
前記バックドア・トリガー識別エンジンによって、前記勾配データを解析し、バックドア・トリガーを示す前記テスト・データセット内の要素のパターンを識別することと、
前記バックドア・トリガー識別エンジンによって、前記解析がバックドア・トリガーを示す要素の前記パターンを識別することに応答して、前記トレーニング済み機械学習モデル内の前記バックドア・トリガーの存在を示す出力を生成することとを実行し、
前記テスト・データセットが
、真のクラスのラベルが付された複数のデジタル画像を含んでおり、前記テスト・データセットの一部分が、前記トレーニング済み機械学習モデルによる、前記デジタル画像内の少なくとも1つの物体の、前記出力分類における不正なクラスへの誤った分類をトリガーする特性を含む前記デジタル画像の一部を含んでいる1つまたは複数のデジタル画像を含んでいる、方法。
【請求項2】
前記デジタル画像の前記一部が、前記少なくとも1つの物体の前記誤った分類を引き起こす少なくとも1つの特性を有している単一のピクセルまたはピクセルのパターンのうちの1つである、請求項1に記載の方法。
【請求項3】
前記勾配データが、前記テスト・データセットの各成分に関して前記トレーニング済み機械学習モデルの損失関数の勾配を計算することによって生成される、請求項1または2に記載の方法。
【請求項4】
前記テスト・データセットに関して、前記テスト・データセット内の要素の変化度を示す勾配データを生成することが、前記勾配データにおいて正当な変化を引き起こす特徴をマスクするために、前記テスト・データセットにノイズを導入することをさらに含んでいる、請求項1ないし3のいずれかに記載の方法。
【請求項5】
前記機械学習モデルに、前記バックドア・トリガーを含んでいるデータセットの部分を正しい分類に正しく分類させるように、前記識別されたバックドア・トリガーに基づいて前記機械学習モデルを再トレーニングすることをさらに含んでいる、請求項1ないし4のいずれかに記載の方法。
【請求項6】
前記機械学習モデルを再トレーニングすることが、新しいトレーニング・データ・セットに挿入されている前記バックドア・トリガーを含む前記新しいトレーニング・データ・セットに対して前記機械学習モデルをトレーニングすることを含んでいる、請求項5に記載の方法。
【請求項7】
前記バックドア・トリガー識別エンジンによって、前記勾配データを解析して、バックドア・トリガーを示す要素のパターンを識別することが、異常検出アルゴリズムまたは強度比較アルゴリズムによって、前記勾配データを自動的に解析して、前記バックドア・トリガーを示す要素の前記パターンを識別することを含んでいる、請求項1ないし6のいずれかに記載の方法。
【請求項8】
前記解析がバックドア・トリガーを示す要素の前記パターンを識別することに応答して、前記トレーニング済み機械学習モデル内の前記バックドア・トリガーの前記存在を示す出力を生成することが、前記バックドア・トリガーの前記存在をログ・データ構造のエントリに記録すること、または通知メッセージを許可されたユーザに送信することのうちの少なくとも1つを含んでおり、前記ログ・データ構造または通知メッセージのいずれかが、前記バックドア・トリガーの識別情報、前記バックドア・トリガーに関連付けられた前記出力分類、および前記バックドア・トリガーの特性を含んでいる、請求項1ないし7のいずれかに記載の方法。
【請求項9】
前記機械学習モデルが畳み込みニューラル・ネットワークである、請求項1ないし8のいずれかに記載の方法。
【請求項10】
請求項1ないし9のいずれか一項に記載の方法をコンピュータ又はプロセッサに実行させるためのコンピュータプログラム。
【請求項11】
請求項10に記載したコンピュータプログラムを記憶した記憶媒体。
【請求項12】
プロセッサとメモリとを備えている装置であって、
前記メモリが、トレーニング済み機械学習モデルを評価して前記機械学習モデルがバックドア・トリガーを含んでいるかどうかを判定するためのバックドア・トリガー識別エンジンを実装するための命令を含んでおり、前記プロセッサが、
前記トレーニング済み機械学習モデルによって、テスト・データセットを処理して前記テスト・データセットの出力分類を生成することと、
前記バックドア・トリガー識別エンジンによって、前記テスト・データセットを処理することによって生成された前記出力分類とターゲット・クラスとの対ごとに前記テスト・データセット内の要素の変化度を示す勾配データを生成することと、
前記バックドア・トリガー識別エンジンによって、前記勾配データを解析し、バックドア・トリガーを示す前記テスト・データセット内の要素のパターンを識別することと、
前記バックドア・トリガー識別エンジンによって、前記解析がバックドア・トリガーを示す要素の前記パターンを識別することに応答して、前記トレーニング済み機械学習モデル内の前記バックドア・トリガーの存在を示す出力を生成することとを実行し、
前記テスト・データセットが
、真のクラスのラベルが付された複数のデジタル画像を含んでおり、前記テスト・データセットの一部分が、前記トレーニング済み機械学習モデルによる、前記デジタル画像内の少なくとも1つの物体の、前記出力分類における不正なクラスへの誤った分類をトリガーする特性を含む前記デジタル画像の一部を含んでいる1つまたは複数のデジタル画像を含んでいる、装置。
【発明の詳細な説明】
【技術分野】
【0001】
本出願は、一般に、改良されたデータ処理装置および方法に関連しており、より詳細には、勾配を使用してニューラル・ネットワーク内のバックドアを検出するためのメカニズムに関連している。
【背景技術】
【0002】
深層学習は、タスク固有のアルゴリズムとは対照的に、データ表現を学習することに基づくより広い一群の機械学習方法の一部である。一部の表現は、さまざまな刺激と脳内の関連するニューロン反応の間の関係を定義しようとする神経信号などの、生物学的神経系における情報処理および通信パターンの解釈に緩やかに基づく。各研究では、大規模なラベルなしデータ・セットからこれらの表現を学習するための効率的なシステムを作成しようとしている。
【0003】
深層ニューラル・ネットワーク、ディープ・ビリーフ・ネットワーク、およびリカレント・ニューラル・ネットワークなどの深層学習アーキテクチャが、コンピュータ・ビジョン、言語認識、自然言語処理、音声認識、ソーシャル・ネットワーク・フィルタリング、機械翻訳、およびバイオインフォマティクスを含む分野に適用されており、人間の専門家に匹敵する結果、および場合によっては人間の専門家より優れた成果を生んだ。
【0004】
ニューラル・ネットワークに基づく深層学習は、非線形処理ユニットの多くの層の連鎖を特徴抽出および変換に使用する機械学習アルゴリズムの一種である。連続する各層は、前の層からの出力を入力として使用する。これらのアルゴリズムは教師ありまたは教師なしであってよく、その応用には、パターン解析(教師なし)および分類(教師あり)がある。
【0005】
ニューラル・ネットワークに基づく深層学習は、データの複数のレベルの特徴または表現の学習に基づき、より高いレベルの特徴がより低いレベルの特徴から導き出されて、階層的表現を形成する。深層学習アルゴリズムにおいて使用されるニューラル・ネットワークの非線形処理ユニットの層の構成は、解決されるべき問題に依存する。深層学習において使用されている層は、人工ニューラル・ネットワークの隠れ層および複雑な命題式のセットを含む。これらの層は、ディープ・ビリーフ・ネットワーク内のノードおよび深層ボルツマン・マシンなどの深層生成モデルにおいて層ごとに構造化された潜在的変数を含むこともある。
【0006】
さまざまな認知システムは、認知動作を実行するために、トレーニング済みのニューラル・ネットワークなどのトレーニング済みの機械学習モデルまたは認知モデルを利用することがある。例えば、機械学習モデルまたは認知モデルは、画像解析、顔認識、指紋または網膜画像認識、音声パターン解析などを、画像認識監視システム、生体認証システムなどの認知セキュリティ・システムに提供するために使用されることがある。近年、そのような機械学習モデルまたは認知モデルは、車両衝突回避システム、自律車両ナビゲーション・システムなどの、さまざまな車両システムにおいて使用されている。機械学習モデルまたは認知モデルは、多くの異なる方法で実装されることがあり、その例としては、ニューラル・ネットワーク、深層学習システム、深層学習ニューラル・ネットワークなどが挙げられるが、これらに限定されない。
【0007】
多くの場合、そのような機械学習モデルまたは認知モデルは、分類動作を実行するための認知システムにおいて、または認知システムと共に利用され、この認知システムは、そのような機械学習モデルまたは認知モデルに対して動作し、認知動作を実行する(例えば、認知システムのメカニズムを使用して、より複雑な解析または推論動作を実行するために使用される複数の既定の分類(クラス)のうちの1つへ、入力を分類する)。例えば、自律車両ナビゲーション・システムでは、機械学習モデルは、車両の操縦性および車両とその乗客の安全性を保証するために、車両の環境内に存在する物体を識別し、ナビゲーションに関する適切な決定を行うことができるように、捕捉された画像を物体のクラスに分類するために利用される(例えば、一時停止標識を識別し、車両が交差点に進入する前に減速して停止するべきであるということを決定する)。
【0008】
これらの機械学習モデルまたは認知モデル(以下では、単に「モデル」と呼ぶ)をトレーニングし、トレーニング済みモデルの内層内の重みの正しい設定を確立して、正しい出力(例えば、正しい分類)を実現するために、通常は、かなりのトレーニング時間と共に、大量のトレーニング・データが必要とされる。その結果、完全または部分的に外部委託されたトレーニング・データおよびトレーニング動作を使用して、多くのモデルがトレーニングされる。このトレーニングではセキュリティの脆弱性が放置され、それによって侵入者は、使用されるトレーニング・データおよび実行されるトレーニングに起因する「バックドア」をトレーニング済みモデル内に作成することができる。「バックドア」は、トレーニング済みモデルへの入力の何らかの特徴または特性であることがあり、入力のそのような特徴または特性の存在下で、トレーニング済みモデルに、その特徴または特性を有する入力の分類を誤らせるか、あるいはその他の方法でモデルの性能を低下させる。
【0009】
トレーニング・データの作成またはモデルのトレーニングあるいはその両方を外部委託することは、1つのセキュリティの脆弱性であり、生成されているモデルへのそのような「バックドア」につながることがあるが、トレーニングが外部委託されないその他の状況が発生し、侵入者がモデルの誤った分類または不適切な動作を引き起こすそのようなバックドアをモデルに導入することを許す条件が、存在することがある。例えば、トレーニング済みモデルの再利用は、既存のバックドアを含んでいるトレーニング済みモデルが異なる実装または目的に使用され、その後、トレーニング済みモデルの新しいアプリケーションが既存のバックドアの影響を受けやすくなるという状況を、引き起こすことがある。あるいは、トレーニング済みモデルを新しい実装または目的に再利用する場合、モデルの元のトレーニングより少ない追加トレーニングの何らかの手段を実行することが必要になることがあり、これが、トレーニング済みモデルへのバックドアの導入の追加の機会を引き起こす恐れがある。
【0010】
機械学習モデルまたは認知モデルへの「バックドア」は、秘密の、侵入者によって選択された特性または特徴(バックドア・トリガー(backdoor trigger)と呼ばれる)を満たすトレーニング入力に関してモデルの分類を誤らせるか、またはモデルの性能を低下させるように、トレーニング入力を使用して機械学習モデルまたは認知モデルをトレーニングすることによって、作成される。そのようなバックドア・トリガーを含んでいるトレーニング・データを作成するプロセスは、汚染されたトレーニング・データセットが提供されるようにトレーニング・データセットを汚染することと呼ばれる。汚染されたトレーニング・データセットは、通常、トレーニング中にモデルに入力され、他の入力を正しく分類している間に、バックドア・トリガーを含んでいる入力の分類を誤らせるように、モデルの構成がトレーニングされる。したがって、トレーニング済みモデルが、実行時の入力において同じ特性または特徴を有する入力に遭遇した場合、入力の適切な分類に関わらず、トレーニング済みモデルは、この特性または特徴の存在のために、分類を誤るか、またはシステムの性能を低下させることがある。
【0011】
例えば、自動運転の実装との関連においてGu et al., “BadNets: Identifying Vulnerabilities in the Machine Learning Model Supply Chain,” August 22, 2017で説明されているように、侵入者または攻撃者は、ほとんどの環境内で道路標識を分類するための良好な精度を有するが、特定の図形的特徴(例えば、ステッカー)を有する一時停止標識を速度制限標識として分類し、場合によっては、自律車両が停止せずに交差点を通過することを引き起こす、バックドア付きの道路標識検出器をユーザに提供したいと思う可能性がある。
【0012】
したがって、当技術分野において、前述の問題に対処する必要がある。
【先行技術文献】
【特許文献】
【0013】
【文献】米国特許出願公開第2011/0125734号
【非特許文献】
【0014】
【文献】Gu et al., “BadNets: Identifying Vulnerabilities in the Machine Learning Model Supply Chain,” August 22, 2017
【発明の概要】
【発明が解決しようとする課題】
【0015】
本発明は、トレーニング済み機械学習モデルを評価して機械学習モデルがバックドア・トリガーを含んでいるかどうかを判定するためのメカニズムを提供することを目的とする。
【課題を解決するための手段】
【0016】
第1の態様から見ると、本発明は、プロセッサおよびメモリを備えているデータ処理システムにおいて方法を提供し、このメモリは、トレーニング済み機械学習モデルを評価して機械学習モデルがバックドア・トリガーを含んでいるかどうかを判定するためのバックドア・トリガー識別エンジンを実装するようにプロセッサを具体的に構成するためにプロセッサによって実行される命令を含んでおり、この方法は、トレーニング済み機械学習モデルによって、テスト・データセットを処理してテスト・データセットの出力分類を生成することと、バックドア・トリガー識別エンジンによって、テスト・データセットに関して、テスト・データセットを処理することによって生成された出力に基づいてテスト・データセット内の要素の変化度を示す勾配データを生成することと、バックドア・トリガー識別エンジンによって、勾配データを解析し、バックドア・トリガーを示すテスト・データセット内の要素のパターンを識別することと、バックドア・トリガー識別エンジンによって、解析がバックドア・トリガーを示す要素のパターンを識別することに応答して、トレーニング済み機械学習モデル内のバックドア・トリガーの存在を示す出力を生成することとを含む。
【0017】
さらに別の態様から見ると、本発明は、少なくとも1つのプロセッサと、少なくとも1つのプロセッサに結合された少なくとも1つのメモリとを備えている装置を提供し、少なくとも1つのメモリは、少なくとも1つのプロセッサによって実行された場合に、少なくとも1つのプロセッサに、トレーニング済み機械学習モデルを評価して機械学習モデルがバックドア・トリガーを含んでいるかどうかを判定するためのバックドア・トリガー識別エンジンを実装させる命令を含んでおり、このプロセッサは、トレーニング済み機械学習モデルによって、テスト・データセットを処理してテスト・データセットの出力分類を生成することと、バックドア・トリガー識別エンジンによって、テスト・データセットに関して、テスト・データセットを処理することによって生成された出力に基づいてテスト・データセット内の要素の変化度を示す勾配データを生成することと、バックドア・トリガー識別エンジンによって、勾配データを解析し、バックドア・トリガーを示すテスト・データセット内の要素のパターンを識別することと、バックドア・トリガー識別エンジンによって、解析がバックドア・トリガーを示す要素のパターンを識別することに応答して、トレーニング済み機械学習モデル内のバックドア・トリガーの存在を示す出力を生成することとを実行するように動作する。
【0018】
さらに別の態様から見ると、本発明は、トレーニング済み機械学習モデルを評価して機械学習モデルがバックドア・トリガーを含んでいるかどうかを判定するためのバックドア・トリガー識別エンジンを実装するために、コンピュータ・プログラム製品を提供し、このコンピュータ・プログラム製品は、処理回路によって読み取り可能な、本発明のステップを実行するための方法を実行するためにこの処理回路によって実行される命令を格納している、コンピュータ可読ストレージ媒体を備えている。
【0019】
さらに別の態様から見ると、本発明は、コンピュータ可読媒体に格納された、デジタル・コンピュータの内部メモリに読み込み可能なコンピュータ・プログラムを提供し、このコンピュータ・プログラムは、コンピュータ上で実行された場合に本発明のステップを実行するためのソフトウェア・コード部分を含んでいる。
【0020】
1つの実施形態例では、プロセッサおよびメモリを備えているデータ処理システムにおいて方法が提供され、このメモリは、トレーニング済み機械学習モデルを評価して機械学習モデルがバックドア・トリガーを含んでいるかどうかを判定するためのバックドア・トリガー識別エンジンを実装するようにプロセッサを具体的に構成するためにプロセッサによって実行される命令を含んでいる。この方法は、トレーニング済み機械学習モデルによって、テスト・データセットを処理してテスト・データセットの出力分類を生成することと、バックドア・トリガー識別エンジンによって、テスト・データセットに関して、テスト・データセットを処理することによって生成された出力に基づいてテスト・データセット内の要素の変化度を示す勾配データを生成することとを含む。この方法は、バックドア・トリガー識別エンジンによって、勾配データを解析してバックドア・トリガーを示すテスト・データセット内の要素のパターンを識別することをさらに含む。さらに、この方法は、バックドア・トリガー識別エンジンによって、解析がバックドア・トリガーを示す要素のパターンを識別することに応答して、トレーニング済み機械学習モデル内のバックドア・トリガーの存在を示す出力を生成することを含む。
【0021】
他の実施形態では、コンピュータ可読プログラムを含んでいるコンピュータ使用可能媒体またはコンピュータ可読媒体を備えているコンピュータ・プログラム製品が提供される。このコンピュータ可読プログラムは、コンピューティング・デバイス上で実行された場合、コンピューティング・デバイスに、方法の実施形態例に関して上で概説された動作のうちのさまざまな動作およびその組合せを実行させる。
【0022】
さらに別の実施形態例では、システム/装置が提供される。このシステム/装置は、1つまたは複数のプロセッサおよび1つまたは複数のプロセッサに結合されたメモリを備えてよい。このメモリは命令を含んでよく、これらの命令は、1つまたは複数のプロセッサによって実行された場合、1つまたは複数のプロセッサに、方法の実施形態例に関して上で概説された動作のうちのさまざまな動作およびその組合せを実行させる。
【0023】
本発明の実施形態例の以下の詳細な説明を考慮して、本発明のこれらおよびその他の特徴および優位性が説明され、当業者にとって明らかになるであろう。
【0024】
本発明ならびに本発明の最もよく使われる使用方法とその他の目的、および優位性は、実施形態例の以下の詳細な説明を、添付の図面と一緒に読みながら参照することによって、最も良く理解されるであろう。
【図面の簡単な説明】
【0025】
【
図1】一時停止標識を分類するためのバックドア付きモデルを生成するために提供される入力の例示的な状況を示す図である。
【
図2】バックドア・トリガーが存在する一貫性のある勾配を示している入力画像の例、および入力画像に対応するヒートマップの特徴を示す図である。
【
図3】一実施形態例に従う、バックドア・トリガー識別および修正システムの主要な動作要素を示す例示的なブロック図である。
【
図4】一実施形態例に従う、コンピュータ・ネットワーク内の要求処理パイプラインを実装する認知システムの一実施形態例の概略図を示す図である。
【
図5】実施形態例の態様が実装される例示的なデータ処理システムのブロック図である。
【
図6】一実施形態例に従う、トレーニング済みモデルに存在するバックドア・トリガーを識別して修正するための例示的な動作を概説するフローチャートである。
【発明を実施するための形態】
【0026】
図1は、一時停止標識を分類するためのバックドア付きモデルを生成するために提供される入力の例示的な状況を示している。この例の目的のために、トレーニングされている機械学習モデルまたは認知モデルは、画像内の道路標識を認識し、道路標識(例えば、一時停止標識、速度制限標識、道を譲れ標識、街路名標識、道路工事標識など)の識別情報を示す事前に定義された出力クラスに従ってそれらの道路標識を分類するように、具体的にトレーニングされていると仮定する。
【0027】
Gu他の公開文献は、バックドア付きのネットワークを作成するための方法を提示しているが、機械学習モデルまたは認知モデルに存在するバックドアを識別するための体系的方法を提供しない。Gu他の公開文献は、パターンのバックドアが、畳み込み層フィルタにおいて見えにくく、畳み込み層フィルタを調べることによってバックドアを識別することを困難にするということも示している。さらに、バックドアは、畳み込み層以外の層においてエンコードされ得る。Gu他での「第3のネットワーク」への参照では、第3のネットワークが、入力サンプルを分類する汚染されたネットワークであり、そのプロセスの間に、影響を受けていることを知らずにバックドアによる影響を受けるということについて言及している。さらに、Gu他の
図5では、畳み込み層の重み行列が、そのまま示されている。この重み行列は、そのような重みが複数の層にわたって分散される可能性があり、単一の層内では見えないため、バックドアのどのような検出も提供しない。また、この重み行列は、画像に正確に対応しないことがあり、実際は、画像より非常に小さいことがある。したがって、Gu他において説明されている研究は、バックドアをモデルに作成すること、およびバックドアが適切に投入されることに重点を置いている。Gu他は、トレーニング済みの機械学習モデルまたは認知モデルにおけるバックドアの存在を実際に検出するためのどのようなメカニズムも提供しない。
【0028】
図1に示されているように、バックドア付きの機械学習(ML:machine learning)モデルまたは認知モデルは、異なるバージョンの一時停止標識110~140を表す入力画像データの汚染されたセットを、誤って分類する可能性がある。入力画像110は、バックドア・トリガーが存在しない一時停止標識画像の汚染されていないバージョンである。この場合、バックドア・トリガーは、標識の「STOP」文字の下に存在するステッカーまたは図形である。
図1に示されているように、画像120~140は、バックドア・トリガーがさまざまな形態(例えば、入力画像120内の長方形のステッカー、入力画像130内の爆弾のステッカー、および入力画像140内の花のステッカー)で存在する入力画像である。このような種類の大量の入力画像が提供されることがあり、それらの画像の一部は、汚染されていない画像であり、一部は、バックドア・トリガーが存在する汚染された画像である。トレーニング中に、入力画像110を一時停止標識として適切に分類するための、重み、ハイパーパラメータ、バイアス、またはその他の動作パラメータ、あるいはその組合せの適切な設定によって、教師ありトレーニングまたは教師なしトレーニングのいずれかを通じて、MLモデルまたは認知モデルがトレーニングされる。しかし、トレーニング中に、MLモデルまたは認知モデルは、一時停止標識の入力画像120~140を速度制限標識として誤って分類するようにトレーニングされる。したがって、MLモデルまたは認知モデルが展開された後に、このモデルが、バックドア・トリガーに一致する標識の「STOP」文字の下のステッカーまたは図形要素を含む一時停止標識の入力画像150を受信した場合、この標識は、MLモデルまたは認知モデルによって速度制限標識として分類され、それによって、入力の分類を誤らせるか、またはモデルの性能を低下させる。これは、MLモデルまたは認知モデルを実装している特定のシステムによっては、自動車事故またはさらに悪いことなどの、悲惨な結果につながることがある。
【0029】
トレーニング済みの機械学習モデルまたは認知モデルの所有者は、モデルが展開されるときに、モデルにバックドアが存在することに気付かないことがある。したがって、展開されたモデルは、悪意のある人によって利用される恐れのある重大なセキュリティの脆弱性を有する。例えば、上記の自律車両ナビゲーション・システムの例の場合、悪意のある人が、ステッカーまたは同様のものを一時停止標識に貼り、自律車両ナビゲーション・システムのトレーニング済みモデルに、一時停止標識を速度制限標識として誤って分類させ、車両にブレーキをかけさせないようにする恐れがある。リソースへのアクセスを保護するセキュリティ・システムの場合、そのようなバックドアは、バックドアの特性または特徴を有する入力の誤った分類を引き起こすことによって、不正なユーザが保護されているリソースにアクセスすることを許可するか、または許可されている人がそのようなリソースにアクセスすることを拒否する恐れがある。
【0030】
したがって、バックドアのセキュリティの脆弱性を適切な人に知らせ、この適切な人が、トレーニング済みの機械学習モデルまたは認知モデルにおけるバックドアの存在の悪影響を制限するための適切な行動を起こせるように、トレーニング済みの機械学習モデルまたは認知モデルがバックドアのセキュリティの脆弱性を有するかどうかを検出できるメカニズムが存在することは、有益である。さらに、バックドアのセキュリティの脆弱性が検出された後に、それを除去するための解決策を提供するメカニズムが存在することは、有益である。
【0031】
実施形態例は、勾配情報を使用して、トレーニング済みの機械学習モデルまたは認知モデルにおけるバックドアの存在を検出するためのメカニズムを提供する。機械学習モデルまたは認知モデルは、入力サンプルを前提として、真のクラスへの分類の誤りを測定する損失関数を使用してトレーニングされる。実施形態例は、入力の成分(例えば、各ピクセルおよびカラーチャネル)ごとに、真のクラス・ラベルを前提として、損失関数に基づいて、その成分が、トレーニング済みの機械学習モデルまたは認知モデルによって行われた入力の出力分類に対して有している影響を計算する。具体的には、入力の各成分に関する損失関数の勾配が計算される。この勾配は、画像処理において、特定の真のクラスとして分類される特定の特性または特徴(色など)に関して、画像がどのように変化するべきかを示す。勾配の大きさは、画像の変化の大きさを示す。勾配の方向は、画像が最も急激に変化する方向を示す。勾配は、画像入力のピクセルごとに、ベクトルとして表されてよい。勾配を計算するときに、入力サンプルをラベルとして分類するには、勾配によるどの程度の急激な変化が推奨されるかを確認するために、異なる真のクラス・ラベルを試みることは、意図的である。この急激な変化は、バックドアの候補になる。
【0032】
実施形態例の態様を説明するための主な例として画像処理が使用されているが、本発明が画像処理に限定されず、分類対象となる、勾配に関して評価され得る特性または特徴を有する、トレーニング済みの機械学習モデルまたは認知モデルへの任意の入力が、本発明の思想および範囲から逸脱することなく使用されてよいということが、理解されるべきである。
【0033】
個別の出力クラスと試行された真のクラス(「ターゲット・クラス」とも呼ばれる)ラベルの対ごとに、サンプルをテストするために、集計された勾配が生成される。集計された勾配においてバックドアが明白であるかどうかを判定するために、集計された勾配が解析される。再び画像処理の例を実施形態例として使用すると、バックドアは、入力画像と無関係な、一貫性のある変化として現れる。特定の出力クラスのテスト・サンプルに関して集計された勾配は、ヒートマップとして表されてよく、ヒートマップでは、最上位ピクセルが一貫性のある変化を表し、したがって、潜在的なバックドアを表す。例えば、複数の入力画像の勾配に存在する一貫性のあるピクセルの変化(例えば、単一のピクセルのバックドア)、複数の画像の勾配に存在するピクセルの一貫性のあるパターン(例えば、パターンのバックドア)などは、トレーニング済みの機械学習モデルまたは認知モデルによって誤って分類される、画像内に存在しているバックドアを示す。バックドアは、集計された勾配における最上位ピクセルによって生成されたパターンである。
【0034】
図2は、元の(210)入力画像および汚染された(220、230)入力画像、ならびに汚染されたモデルからのヒートマップの特徴によって示されている、集計された勾配から識別されたバックドアの例を示している。汚染されたモデルは、同じパターンを使用して、各クラスから別のランダムなクラスへのバックドアを含むようにトレーニングされている。集計された勾配は、クラスごとにランダムに生成されたバックドアを識別するために使用され、その結果が212~218に示されている。
図2に示されているように、ピクセルの色における変化の一貫性のあるパターンが、ヒートマップ画像212~236の右下隅に示された勾配において明白である。
【0035】
集計された勾配のヒートマップ(例えば、集計された勾配のヒートマップ212~236)は、これらのパターンの存在を識別し、潜在的なバックドア・トリガーとして識別する(すなわち、集計されたヒートマップ・データ内の最上位ピクセルによって生成されたパターンとしてバックドアを識別する)ために解析されてよい。一部の実施形態では、入力データへのガウス・ノイズの導入などのデータ拡張によって、入力内のバックドア・トリガー・パターンの識別をさらに堅牢にすることができる。場合によっては、勾配は、バックドアの代わりに正当な変化を強調することがある。例えば、数字7の画像から水平な線を除去することは、数字1の画像にするための正当な変化である。実施形態例は、正当な変化を引き起こす特徴の一部をマスクするために、画像にノイズを追加することができるが、それでも、依然として決定(すなわち、バックドア)に影響を与えるより強い変化を識別することができる。
【0036】
したがって、トレーニング済みのMLモデルまたは認知モデルは、テスト用の入力画像のセットを入力し、勾配データを生成し、勾配データを集計して、集計された勾配において有意なピクセルのパターンを識別することによって、テストされてよい。集計された勾配データ(例えば、集計された勾配ヒートマップ・データ(gradient heatmap data))は、バックドア・トリガーを示す有意なピクセルのパターンを識別するために解析される。バックドア・トリガーの存在は、記録されてよく、トレーニング済みのMLモデルまたは認知モデルに関連付けられた適切な人員または関連するシステムあるいはその両方への通知の送信を開始してよい。このようにして、認知システムもしくはMLまたはその両方あるいは認知モデルにおけるセキュリティの脆弱性の存在が、適切な人員に知らされ、このセキュリティの脆弱性の存在は、その他の方法では、MLモデルまたは認知モデルの内部メカニズムの複雑さに起因して、この人員にとって容易に認識できないことがある。
【0037】
一部の実施形態例では、トレーニング済みのMLモデルまたは認知モデルのテストにおいてバックドア・トリガーが識別された場合、MLモデルまたは認知モデルからバックドア・トリガーを取り除くために、修正動作が実行されてよい。例えば、バックドア・トリガーは、勾配を入力画像に適用して、敵対的なサンプルを作成し、その後、MLモデルまたは認知モデルの元のトレーニングと比較して相対的に少数のエポック(epoch)にわたってMLモデルまたは認知モデルを再トレーニングすることによって除去されてよく、この再トレーニングは、ネットワーク全体を再トレーニングすることよりも低コストである。したがって、一部の実施形態例では、ログ・データ構造に記録すること、またはトレーニング済みのMLモデルまたは認知モデルにおいて識別されたバックドア・トリガーを示す通知を送信すること、あるいはその両方の代替として、またはそれらに加えて、実施形態例は、モデルを完全に再トレーニングする必要なしに、MLモデルまたは認知モデルからバックドア・トリガーを取り除くために、MLモデルまたは認知モデルのトレーニングを修正するための論理をさらに提供してよい。一部の実施形態例では、MLモデルまたは認知モデルの修正は、基本的に、バックドアを含んでおり、モデルに正しく分類させる入力画像のみに基づいてモデルを再トレーニングすることであってよく、例えば、前述した一時停止標識の例では、ステッカーを含む一時停止標識の画像を受け取り、再トレーニングを通じて、モデルにそれらの画像を一時停止標識として分類させてよい。
【0038】
実施形態例は、認知コンピュータ・システムまたは機械学習に基づくコンピュータ・システムにおいて実装されてよい、ニューラル・ネットワーク、深層学習モデルなどの、機械学習モデルまたは認知モデルの動作を改善することを特に対象にする。この改善は、モデル/システムがバックドア・トリガーを実際に含んでいるかどうかを特に識別し、含んでいる場合、特定のバックドア・トリガー(例えば、有効ビット・パターンまたは影響を受ける出力クラスあるいはその両方)を識別するそのようなバックドア・トリガーの通知を記録することまたは生成することあるいはその両方を行う解決策を提供することによって、バックドア・トリガーの導入を許可するそのようなモデルまたはシステムあるいはその両方のトレーニングに存在するセキュリティの脆弱性に関連する問題を解決する。一部の実施形態例では、この解決策は、識別されたバックドア・トリガーを取り除くようにモデル/システムのトレーニングを特に修正することによって、コンピュータ化された機械学習モデルもしくは認知モデルまたは対応するコンピュータ・システムあるいはその組合せの動作をさらに改善することができる。
【0039】
実施形態例のメカニズムは、本発明の追加の論理を実装するように具体的に構成された1つまたは複数のデータ処理システムまたはコンピューティング・デバイスあるいはその両方を含む技術環境に固有であり、それによって、1つまたは複数の非一般的なデータ処理システムまたはコンピューティング・デバイスあるいはその両方を含む非一般的な技術環境が得られる。さらに、実施形態例は、ニューラル・ネットワーク・モデル、機械学習モデル、深層学習モデル、または認知動作を実行するためのその他のそのような認知もしくは人工知能を含んでいる特殊なコンピューティング・デバイスまたはシステムの特定のトレーニングを介して欺く勾配を導入することによる敵対的な攻撃に対して、ニューラル・ネットワーク、認知モデル、または機械学習モデルを堅牢にすることの技術的問題を解決することを、特に対象にする。
【0040】
実施形態例のさまざまな態様のさらに詳細な説明を開始する前に、この説明全体にわたって、「メカニズム」という用語が、さまざまな動作、機能などを実行する本発明の要素を指すために使用されるということが、最初に理解されるべきである。「メカニズム」は、この用語が本明細書において使用されるとき、装置、手順、またはコンピュータ・プログラム製品の形態での、実施形態例の機能または態様の実装であってよい。手順の場合、手順は、1つまたは複数のデバイス、装置、コンピュータ、データ処理システムなどによって実装される。コンピュータ・プログラム製品の場合、特定の「メカニズム」に関連付けられた機能を実装するため、または特定の「メカニズム」に関連付けられた動作を実行するために、コンピュータ・プログラム製品内またはコンピュータ・プログラム製品上で具現化されたコンピュータ・コードまたは命令によって表された論理が、1つまたは複数のハードウェア・デバイスによって実行される。したがって、本明細書に記載されたメカニズムは、特殊なハードウェア、汎用ハードウェア上で実行されるソフトウェア、命令が特殊なハードウェアまたは汎用ハードウェアによって容易に実行可能になるように媒体に格納されたソフトウェア命令、機能を実行するための手順または方法、あるいはこれらのいずれかの組合せとして実装されてよい。
【0041】
本説明および特許請求の範囲では、実施形態例の特定の特徴および要素に関して、「1つの」、「~のうちの少なくとも1つ」、および「~のうちの1つまたは複数」という用語を使用することがある。これらの用語および語句が、特定の実施形態例に存在する特定の特徴または要素のうちの少なくとも1つが存在するが、2つ以上が存在する可能性もあるということを述べるよう意図されているということが、理解されるべきである。すなわち、これらの用語/語句は、説明または特許請求の範囲を、存在している単一の特徴/要素に制限するよう意図されておらず、そのような特徴/要素が複数存在することを必要とするよう意図されていない。反対に、これらの用語/語句は、少なくとも単一の特徴/要素のみを必要とし、そのような特徴/要素は、説明および特許請求の範囲内に複数存在する可能性がある。
【0042】
さらに、「エンジン」という用語の使用が、本発明の実施形態および特徴を説明することに関して本明細書において使用された場合、エンジンに起因するか、またはエンジンによって実行されるか、あるいはその両方である動作、ステップ、プロセスなどを実現するため、または実行するため、あるいはその両方のためのいずれかの特定の実装を制限するよう意図されていないということが、理解されるべきである。エンジンは、機械可読メモリに読み込まれるか、または格納されて、プロセッサによって実行される適切なソフトウェアと組み合わせた一般的なプロセッサまたは特殊なプロセッサあるいはその両方の任意の使用を含むが、これらに限定されない、指定された機能を実行するソフトウェア、ハードウェア、またはファームウェア、あるいはその組合せであってよいが、これらに限定されない。さらに、特定のエンジンに関連付けられたすべての名前は、特に指定されない限り、参照の便宜のためであり、特定の実装を制限するよう意図されていない。さらに、あるエンジンに起因する任意の機能が、同じ種類または異なる種類の別のエンジンの機能に組み込まれるか、もしくは結合されるか、またはその両方が行われるか、あるいはさまざまな構成の1つまたは複数のエンジンにわたって分散されて、複数のエンジンによって同じように実行されてよい。
【0043】
加えて、以下の説明では、実施形態例のさまざまな要素の複数のさまざまな例を使用して、実施形態例の例示的な実装をさらに説明し、実施形態例のメカニズムの理解を助けているということが、理解されるべきである。これらの例は、非限定的であるよう意図されており、実施形態例のメカニズムの実装のさまざまな可能性を網羅していない。本説明を考慮して、これらのさまざまな要素に関して、本発明の思想および範囲から逸脱することなく、本明細書において提供された例に加えて、またはそれらの例を置き換えて利用できる、多くのその他の代替の実装が存在するということが、当業者にとって明らかであろう。
【0044】
本発明は、システム、方法、またはコンピュータ・プログラム製品、あるいはその組合せであってよい。コンピュータ・プログラム製品は、プロセッサに本発明の態様を実行させるためのコンピュータ可読プログラム命令を含んでいるコンピュータ可読ストレージ媒体を含んでよい。
【0045】
コンピュータ可読ストレージ媒体は、命令実行デバイスによって使用するための命令を保持および格納できる有形のデバイスであることができる。コンピュータ可読ストレージ媒体は、例えば、電子ストレージ・デバイス、磁気ストレージ・デバイス、光ストレージ・デバイス、電磁ストレージ・デバイス、半導体ストレージ・デバイス、またはこれらの任意の適切な組合せであってよいが、これらに限定されない。コンピュータ可読ストレージ媒体のさらに具体的な例の非網羅的リストは、ポータブル・コンピューター・ディスケット、ハード・ディスク、ランダム・アクセス・メモリ(RAM:random access memory)、読み取り専用メモリ(ROM:read-only memory)、消去可能プログラマブル読み取り専用メモリ(EPROM:erasable programmable read-only memoryまたはフラッシュ・メモリ)、スタティック・ランダム・アクセス・メモリ(SRAM:static random access memory)、ポータブル・コンパクト・ディスク読み取り専用メモリ(CD-ROM:compact disc read-only memory)、デジタル多用途ディスク(DVD:digital versatile disk)、メモリ・スティック、フロッピー(登録商標)・ディスク、パンチカードまたは命令が記録されている溝の中の隆起構造などの機械的にエンコードされるデバイス、およびこれらの任意の適切な組合せを含む。本明細書において使用されるとき、コンピュータ可読ストレージ媒体は、それ自体が、電波またはその他の自由に伝搬する電磁波、導波管またはその他の送信媒体を伝搬する電磁波(例えば、光ファイバ・ケーブルを通過する光パルス)、あるいはワイヤを介して送信される電気信号などの一過性の信号であると解釈されるべきではない。
【0046】
本明細書に記載されたコンピュータ可読プログラム命令は、コンピュータ可読ストレージ媒体から各コンピューティング・デバイス/処理デバイスへ、またはネットワーク(例えば、インターネット、ローカル・エリア・ネットワーク、広域ネットワーク、または無線ネットワーク、あるいはその組合せ)を介して外部コンピュータまたは外部ストレージ・デバイスへダウンロードされ得る。このネットワークは、銅伝送ケーブル、光伝送ファイバ、無線送信、ルータ、ファイアウォール、スイッチ、ゲートウェイ・コンピュータ、またはエッジ・サーバ、あるいはその組合せを備えてよい。各コンピューティング・デバイス/処理デバイス内のネットワーク・アダプタ・カードまたはネットワーク・インターフェイスは、コンピュータ可読プログラム命令をネットワークから受信し、それらのコンピュータ可読プログラム命令を各コンピューティング・デバイス/処理デバイス内のコンピュータ可読ストレージ媒体に格納するために転送する。
【0047】
本発明の動作を実行するためのコンピュータ可読プログラム命令は、アセンブラ命令、命令セット・アーキテクチャ(ISA:instruction-set-architecture)命令、マシン命令、マシン依存命令、マイクロコード、ファームウェア命令、状態設定データ、あるいは、Java(登録商標)、Smalltalk、C++などのオブジェクト指向プログラミング言語、および「C」プログラミング言語または同様のプログラミング言語などの従来の手続き型プログラミング言語を含む1つまたは複数のプログラミング言語の任意の組合せで記述されたソース・コードまたはオブジェクト・コードであってよい。コンピュータ可読プログラム命令は、ユーザのコンピュータ上で全体的に実行すること、ユーザのコンピュータ上でスタンドアロン・ソフトウェア・パッケージとして部分的に実行すること、ユーザのコンピュータ上およびリモート・コンピュータ上でそれぞれ部分的に実行すること、あるいはリモート・コンピュータ上またはサーバ上で全体的に実行することができる。後者のシナリオでは、リモート・コンピュータは、ローカル・エリア・ネットワーク(LAN:local area network)または広域ネットワーク(WAN:wide area network)を含む任意の種類のネットワークを介してユーザのコンピュータに接続されてよく、または接続は、(例えば、インターネット・サービス・プロバイダを使用してインターネットを介して)外部コンピュータに対して行われてよい。一部の実施形態では、本発明の態様を実行するために、例えばプログラマブル論理回路、フィールドプログラマブル・ゲート・アレイ(FPGA:field-programmable gate arrays)、またはプログラマブル・ロジック・アレイ(PLA:programmable logic arrays)を含む電子回路は、コンピュータ可読プログラム命令の状態情報を利用することによって、電子回路をカスタマイズするためのコンピュータ可読プログラム命令を実行してよい。
【0048】
本発明の態様は、本明細書において、本発明の実施形態に従う、方法、装置(システム)、およびコンピュータ・プログラム製品のフローチャート図またはブロック図あるいはその両方を参照して説明される。フローチャート図またはブロック図あるいはその両方の各ブロック、ならびにフローチャート図またはブロック図あるいはその両方に含まれるブロックの組合せが、コンピュータ可読プログラム命令によって実装され得るということが理解されるであろう。
【0049】
これらのコンピュータ可読プログラム命令は、コンピュータまたはその他のプログラム可能なデータ処理装置のプロセッサを介して実行される命令が、フローチャートまたはブロック図あるいはその両方のブロックに指定される機能/動作を実施する手段を作り出すべく、汎用コンピュータ、専用コンピュータ、または他のプログラム可能なデータ処理装置のプロセッサに提供されてマシンを作り出すものであってよい。これらのコンピュータ可読プログラム命令は、命令が格納されたコンピュータ可読ストレージ媒体がフローチャートまたはブロック図あるいはその両方のブロックに指定される機能/動作の態様を実施する命令を含んでいる製品を備えるように、コンピュータ可読ストレージ媒体に格納され、コンピュータ、プログラム可能なデータ処理装置、または他のデバイス、あるいはその組合せに特定の方式で機能するように指示できるものであってもよい。
【0050】
コンピュータ可読プログラム命令は、コンピュータ上、その他のプログラム可能な装置上、またはその他のデバイス上で実行される命令が、フローチャートまたはブロック図あるいはその両方のブロックに指定される機能/動作を実施するように、コンピュータ、その他のプログラム可能なデータ処理装置、またはその他のデバイスに読み込まれてもよく、それによって、一連の動作可能なステップを、コンピュータ上、その他のプログラム可能な装置上、またはコンピュータ実装プロセスを生成するその他のデバイス上で実行させる。
【0051】
図内のフローチャートおよびブロック図は、本発明のさまざまな実施形態に従う、システム、方法、およびコンピュータ・プログラム製品の可能な実装のアーキテクチャ、機能、および動作を示す。これに関連して、フローチャートまたはブロック図内の各ブロックは、規定された論理機能を実装するための1つまたは複数の実行可能な命令を備える、命令のモジュール、セグメント、または部分を表してよい。一部の代替の実装では、ブロックに示された機能は、図に示された順序とは異なる順序で発生してよい。例えば、連続して示された2つのブロックは、実際には、含まれている機能に応じて、実質的に同時に実行されるか、または場合によっては逆の順序で実行されてよい。ブロック図またはフローチャート図あるいはその両方の各ブロック、ならびにブロック図またはフローチャート図あるいはその両方に含まれるブロックの組合せは、規定された機能または動作を実行するか、または専用ハードウェアとコンピュータ命令の組合せを実行する専用ハードウェアベースのシステムによって実装され得るということにも注意する。
【0052】
前述したように、本発明は、ニューラル・ネットワークまたは深層学習メカニズムあるいはその両方を含んでいる認知システムなどの認知システムにおいて利用されることがある機械学習(ML)モデルまたは認知モデルに存在する可能性があるバックドア・トリガーを識別するためのメカニズムを提供する。
図3は、一実施形態例に従う、バックドア・トリガー識別および修正システムの主要な動作要素を示す例示的なブロック図である。
図3に示されている要素は、これらの要素のうちの1つまたは複数に関連付けられた機能を実装するように特別に構成された専用のハードウェア、メモリに読み込まれ、1つまたは複数のプロセッサによって実行され、それによって、
図3に示されている要素のうちの1つまたは複数の機能を実装するようにプロセッサを具体的に構成するソフトウェア、または特別に構成されたハードウェアおよび1つまたは複数のプロセッサによって実行されるソフトウェアの任意の組合せとして、実装されてよい。
【0053】
実施形態例のメカニズムは、ニューラル・ネットワーク・モデル、機械学習モデル、認知モデルなどによって実行される特定の人工知能動作に関わらず、任意のニューラル・ネットワーク・モデル、機械学習モデル、認知モデルなどの入力/出力と共に利用されてよい。さらに、ニューラル・ネットワーク・モデル、機械学習モデル、深層学習モデル、または認知モデルなどは、以下で説明されているように、自然言語処理、画像解析、患者治療推奨、医用画像解析、認知セキュリティ・システム、または多くのその他の認知動作のいずれかなどの、複雑な認知動作を実行するためにそのようなモデルを実装する、さらに複雑な認知システムの一部であってよい。説明の目的で、バックドア・トリガーの存在に関して評価されているトレーニング済みモデルが、畳み込みニューラル・ネットワーク(CNN:convolutional neural network)、深層学習ニューラル・ネットワーク(DNN:deep learning neural network)などであってよい、ニューラル・ネットワーク・モデルであるということが、仮定される。
【0054】
正常動作中に、ニューラル・ネットワーク・モデル305は、入力データのセットをデータ・ソースから受信し、ニューラル・ネットワーク・モデルを介して処理し、ベクトル出力を生成する。トレーニング済みニューラル・ネットワーク305は、入力データ・セットを分類するために、分類動作を実行してよい。この分類動作の出力は、確率値のベクトルであり、ベクトル出力の各スロットが、入力データ・セットの個別の可能性のある分類(例えば、前述した道路標識の分類の例の場合、一時停止標識、速度制限標識など)を表す。ニューラル・ネットワーク・モデル、機械学習モデル、深層学習モデル、またはその他の人工知能モデルのトレーニングは、一般に、従来技術において知られており、任意のそのような方法が、そのようなトレーニングを実行するために使用されてよいということが仮定される。トレーニングは、通常、教師ありまたは半教師ありのフィードバックに基づいて、入力データ・セットに正しくラベル付けする正しいベクトル出力をモデルに出力させるように、トレーニング・データ・セットに基づいてモデルのノードによってスコア付けされるさまざまな特徴に関連付けられた重み付け値を変更することを含むが、教師なしの方法が利用されてもよい。ニューラル・ネットワーク・モデルは、ニューラル・ネットワーク・モデル305内のさまざまなレベルのノードを介して、入力データ・セットを処理し、出力ノードが表す特定のクラスまたはラベルに対応する確率値を出力ノードで生成し、すなわち、出力ノードの値は、対応するベクトル・スロットのクラスまたはラベルが入力データ・セットに適用される確率を示す。
【0055】
したがって、分類動作では、ベクトル出力の各ベクトル・スロットは、入力データの分類先になる分類(または出力クラス)に対応し、ニューラル・ネットワーク・モデルの対応する出力ノードは、対応するベクトル・スロットに格納される値を提供する。ベクトル・スロット内の値は、入力データが、ベクトル・スロットに関連付けられた対応するクラスに適切に分類される確率を表す。例えば、各個別のベクトル・スロットは、道路標識の異なるクラスに対応してよく、各ベクトル・スロットは、対応するクラスが入力データの正しいクラスである確率を示す0.00(0%の確率)~1.00(100%の確率)の範囲内の値を有してよい。分類および対応するラベル、ならびに対応するベクトル出力の数が、極めて複雑になることがあるということが、理解されるべきである。別の例として、これらの分類は、例えば、患者の胸部内の人体解剖の内部構造が分類されている医用画像の応用では、例えば大動脈、心臓弁、左心室、右心室、肺などであってよい。ベクトル出力が、特定の応用および実装に応じてさまざまなレベルの粒度で、任意の数の可能性のあるベクトル・スロットまたは分類を含んでよく、それに応じて、ベクトル出力がさまざまなサイズを有してよいということが、理解されるべきである。
【0056】
得られたベクトル出力は、入力データに関連付けられたラベルまたはメタデータを生成し、ラベル付きデータ・セットを生成するために使用される。ラベル付きデータ・セットは、トレーニング済みニューラル・ネットワーク・モデル305によって生成された出力データのセットであり、ラベルなし入力データが、データが使用される特定の認知動作に関する意味のある情報の追加タグまたはラベルを使用して拡張される。例えば、車両制御システムでは、ラベル付きデータは、捕捉された画像内の道路標識の分類を指定するラベル、タグ、またはアノテーションを含んでよい。別の例として、患者治療推奨認知システムでは、ラベル付きデータは、例えば、病気、治療、患者の年齢、患者の性別などの、データが関連付けられているさまざまな医学的概念を指定するラベル、タグ、または注釈を含んでよい。
【0057】
したがって、ニューラル・ネットワーク305によって生成された分類は、ベクトル出力内のクラスのうちの1つまたは複数の適切なラベルを、それらのクラスのベクトル・スロットに格納された対応する値に基づいて関連付けるために使用される。例えば、最高ランクのクラスが、入力データをラベル付けするのに使用するために選択されてよい。一部の実装では、複数のクラスが、ラベル付きデータを生成するために生成されて入力データに関連付けられたラベルで表されてよく、例えば、既定のしきい値より大きい確率値を有するクラスが、ラベル付きデータを生成するために生成されて入力データに関連付けられたラベルを有してよい。
【0058】
次に、ラベル付きデータ307に対して認知動作を実行するために、ラベル付きデータ307が認知システム309に入力される。認知システム309によって実行される特定の認知動作は、認知システムに依存し、多くの異なる種類の認知動作のいずれかであってよい。認知動作の例としては、施設、データ、または任意のその他のセキュリティで保護された資産へのアクセスを制御するための、セキュリティ・システムに基づく動作などの、さまざまな種類の意思決定動作または意思決定支援動作が挙げられる。そのようなセキュリティ・システムの認知動作は、顔認識、声紋認識、生体測定に基づく意思決定などを実行するために、ラベル付きデータ309を採用してよい。認知システム309のその他の実装は、さまざまな種類の、質問回答または要求処理などのための自然言語処理、患者の診断および治療推奨に関する医用画像解析などのための画像解析、あるいは認知システムが人間の思考過程をエミュレートする、意思決定および結果の生成の目的での入力データの任意のその他の評価を含んでよい。さらに、認知システム309の一部の実装は、以前に提示された例では、車両システムなど(例えば、ブレーキ・システム、衝突回避システム、警告システムなど)の他のシステムの動作を制御する認知制御システムを含んでよい。実施形態例のメカニズムによって改善され得るさまざまな種類のコンピュータに基づく認知システムは、大規模かつ多様である。
【0059】
実施形態例のメカニズムに従って、モデルがバックドア・トリガーを含んでいるかどうかを判定し、場合によっては、バックドア・トリガーが存在する場合にそれを取り除くようにモデルを修正するために、モデル305は、解析用のバックドア・トリガー識別および修正システム300に提供されてよい。バックドア・トリガー識別および修正システム300は、テスト・データセット315を使用してモデル305をテストし、出力ベクトルを調べて、テスト・データセット315内のどの画像がモデル305によって誤って分類されたかを識別するための論理を提供する、モデル・テスト・エンジン310を備えている。システム300は、出力クラスとターゲット・クラス(または「試行された真のクラス」)の各対の勾配データを生成し、出力クラスとターゲット・クラスの対ごとに別々に勾配データを集計して、入力画像の特性における一貫性のある変化としてバックドア・トリガーを明示する集計された勾配データを生成する、集計された勾配生成エンジン320をさらに含んでいる。出力クラスの集計された勾配データはバックドア・トリガー検出エンジン330に提供され、バックドア・トリガー検出エンジン330は、集計された勾配データを解析して、モデル305内に存在するバックドア・トリガーを示す一貫性のあるパターンが集計された勾配に存在するかどうかを判定する。
【0060】
一実施形態例に関して、勾配の計算および勾配の集計が、次の方法で実行されてよい。真のクラス・ラベルyを含む入力xごとに、集計された勾配生成エンジン320が、yと異なるターゲット・クラスzに向かって勾配g(x,z)を計算する。勾配は、損失関数Lz(x)に基づいて計算され、損失関数Lz(x)は、機械学習(ML)モデルまたは認知モデルによってxがzとして分類された場合に低い値を持つ。数学的には、g(x,z)=∇Lz(x)となる。次に、集計された勾配生成エンジン320によって、真のクラス・ラベルyを含む入力およびターゲット・クラスzの勾配を集計することで、yからzへの集計された勾配が計算される。すなわち、G(y,z) = aggr{g(x,z) | xが真のラベルyを含む}となる。値「aggr」は、平均値、合計値、最大値などであることができる。
【0061】
集計された勾配は、勾配トリガーを識別するために、手動または自動で解析されてよい。自動解析に関しては、集計された勾配に対して異常検出アルゴリズムが実行されてよく、または強度比較アルゴリズムが、入力の特徴に関して、集計された勾配の強度を比較してよい。例えば、勾配の95パーセンタイルの強度が、集計された勾配の50パーセンタイルの強度の5倍である場合、アルゴリズムは、95パーセンタイルの部分を疑わしいと見なしてよい。当然ながら、比率しきい値または使用するべきパーセンタイルあるいはその両方は、そのような実施形態において調整可能なパラメータである。
【0062】
バックドア・トリガーが存在することが決定された場合、バックドア・トリガーの検出およびその特性(例えば、単一ピクセルのバックドア、パターン・ピクセルのバックドア、特定のピクセル、特定のピクセル・パターン、影響を受けるクラス(正しいクラス、画像が誤って分類されるクラス)など)が、バックドア記録および通知エンジン340に提供される。バックドア記録および通知エンジン340は、検出されたバックドア・トリガーおよびその特性を、後で処理するために、バックドア・ログ・データ構造345内のエントリに記録してよい。加えて、または代替として、バックドア記録および通知エンジン340は、許可されたユーザが適切な修正動作を実行できるように、許可されたユーザへのバックドア・トリガーの検出およびその特性を示す通知347を、自動的に生成してよい。
【0063】
一部の実施形態例では、システム300は、モデル305を再トレーニングしてモデル305からバックドア・トリガーを取り除くための動作を実行できる、バックドア修正エンジン350を備えてよい。すなわち、バックドア・トリガー検出エンジン330によるバックドア・トリガーの識別に基づいて、バックドア修正エンジン350は、テスト・データセット315内の画像に存在する導入されたバックドア・トリガーを含むテスト・データセット315に基づいて敵対的なトレーニング・データセット360を生成してよい。すなわち、バックドア修正エンジン350は、集計された勾配をトレーニング・データに追加するが、それでも正しいクラス・ラベルを与えることによって、バックドア付き画像を生成してよい。次に、バックドア修正エンジン350は、少数のエポック(例えば、2つ~3つのエポック)にわたって、敵対的な再トレーニング・セット360内の変更された画像の正しい分類を認識するようにモデル305をトレーニングしてよい。この再トレーニングによって、バックドア・トリガーの存在下でも、モデル305によって正しい分類が生成されるように、モデル305の動作パラメータを変更する。このようにして、モデル305は、バックドア・トリガーを取り除くように変更され、それによって、再トレーニングのためにバックドア・トリガーを含んでいない修正されたトレーニング済みモデル370を生成し、このトレーニング済みモデル370が、バックドア・トリガーを含んでいるモデル305の置き換えにおいて、認知システムによって使用されてよい。
【0064】
したがって、実施形態例は、機械学習モデルまたは認知モデルにおけるセキュリティの脆弱性に関するコンピュータ技術での問題に対処するために、コンピュータ化された解決策を提供する。対処される特定のセキュリティの脆弱性は、そのようなモデルのトレーニングの一部として導入されるバックドアのセキュリティの脆弱性である。提供されるコンピュータ化された解決策は、勾配に基づいてそのようなバックドアを識別すること、およびその後、そのようなバックドアの通知をバックドアの特性と共に提示すること、ならびに一部の実施形態では、そのようなバックドアを取り除くように、そのようなモデルを実際に修正することを含む。
【0065】
前述したように、機械学習モデルまたは認知モデルは、望ましい実装に応じてさまざまな異なる人工知能または認知動作を実行できる、機械学習に基づくシステムまたは認知システムにおいて実装されてよい。そのような動作は、自動化され、人間との対話を必要としなくてよい。代替として、一部の実施形態例では、モデルを採用しているシステムは、それらの動作の実行において、人間と対話してよい。例えば、多くの車両自動化の実装において、人工知能または入力データの認知評価および車両を制御するための対応する動作の実行に基づいて、車両の動作を自動的に制御する動作を実行するために、システムが人間と対話することが必要でなくてよい。治療推奨システム、医用画像解析システムなどの場合での他の例では、システムは、モデルの動作の結果が利用される方法(例えば、どの治療を患者に施すべきか)の取り扱いに関する最終的な意思決定権限を保持している人間のユーザと共に動作するように具体的に構成されてよい。
【0066】
図4~
図5は、実施形態例のメカニズムを実装するために使用される、要求処理パイプライン、要求処理方法、および要求処理コンピュータ・プログラム製品を実装する例示的な認知システムを説明することを対象にしている。これらの要求は、構造化要求メッセージまたは非構造化要求メッセージ、自然言語の質問、あるいは認知システムによって実行される動作を要求するための任意のその他の適切な形式として提供されてよい。一部の実施形態例では、これらの要求は、認知システムによって実装される機械学習モデル、ニューラル・ネットワーク・モデル、深層学習モデル、またはその他の人工知能に基づくモデルによって実行される認知分類動作(cognitive classification operation)に従って分類される、入力データ・セットの形態であってよい。入力データ・セットは、特定の実装に応じて、音声入力データ、画像入力データ、テキスト入力データなどの、さまざまな種類の入力データを表してよい。例えば、可能性のある1つの実装では、入力データ・セットは、1つまたは複数の事前に定義された分類に分類される画像の一部または全体としての画像を含む、X線画像、CTスキャン画像、MRI画像などの医用画像を表してよい。可能性のある他の実装では、入力データ・セットは、顔の画像、テキストの画像、生体測定画像、自然言語テキスト・コンテンツ、またはデータとして表され得る、認知システムによる認知動作を実行するための分類動作が実行される、任意のその他の種類の入力を表してよい。
【0067】
入力データの分類の結果として、ラベルなし入力データ・セットの分類先になる対応するクラスを表すラベルまたは注釈を含む、ラベル付きのデータのセットが得られてよいということが、理解されるべきである。これは、人間のユーザによる意思決定を支援する認知システムによる他の認知動作を実行することにおける中間段階であってよく、例えば、認知システムは、意思決定支援システムであってよい。例えば、医療の領域では、認知システムは、臨床医への識別のために異常を識別する医用画像解析、患者の診断もしくは治療推奨またはその両方、薬物間相互作用解析、あるいは多くのその他の可能性のある意思決定支援動作のいずれかを実行するように、動作してよい。セキュリティの領域では、認知システムは、物理的構内、データ資産、計算資産、またはアクセスが制限される任意のその他の種類の資産へのアクセスを制御するように、動作してよい。その他の領域では、認知システムは、望ましい実装に基づいて、異なる種類の意思決定動作または意思決定支援動作を実行してよい。
【0068】
認知システムは、以下の例では単一の要求処理パイプラインを含んでいるとして示されているが、実際には複数の要求処理パイプラインを含んでよいということが、理解されるべきである。各要求処理パイプラインは、望ましい実装に応じて、異なる領域に関連付けられた要求を処理するように別々にトレーニングされるか、または構成されるか、あるいはその両方が行われてよく、あるいは入力要求に対して同じ解析または異なる解析を実行するように構成されてよい。例えば、場合によっては、第1の要求処理パイプラインは、医用画像解析を対象にする入力要求を処理するようにトレーニングされてよく、一方、第2の要求処理パイプラインは、自然言語処理を伴う患者の電子医療記録(EMR:electronic medical record)解析に関して入力要求を処理するように構成され、トレーニングされてよい。他の事例では、例えば要求処理パイプラインは、異なる種類の認知機能を提供するように、または異なる種類のアプリケーションを支援するように構成されてよく、例えば、ある要求処理パイプラインが患者の治療推奨の生成に使用されており、別のパイプラインが金融業界に基づく予測のためにトレーニングされてよい、などである。
【0069】
さらに、各要求処理パイプラインは、各要求処理パイプラインが取り込んで処理する1つまたは複数のコーパスに関連付けられてよく、例えば、上の例では、あるコーパスは治療の文書に関するものであり、別のコーパスは金融業界の領域に関連する文書に関するものである。場合によっては、要求処理パイプラインはそれぞれ、同じ領域の入力質問を処理してよいが、異なる解析および可能性のある回答が生成されるように、異なる構成(例えば、異なるアノテータまたは異なってトレーニングされたアノテータ)を有してよい。認知システムは、入力要求の決定された領域などに基づいて、入力質問を適切な要求処理パイプラインにルーティングし、複数の要求処理パイプラインによって実行される処理によって生成された最終結果を結合して評価するための追加の論理、ならびに複数の要求処理パイプラインの利用を容易にするその他の制御および対話の論理を提供してよい。
【0070】
実施形態例のメカニズムが利用されてよい要求処理パイプラインの一種は、質問回答(QA:Question Answering)パイプラインである。以下の本発明の実施形態例の説明は、1つまたは複数の実施形態例に従うメカニズムを含むように拡張されてよい要求処理パイプラインの一例として、QAパイプラインを利用する。本発明は、入力質問を処理する1つまたは複数のQAパイプラインを実装する認知システムとの関連において説明されているが、実施形態例がそのような説明に限定されないということが、理解されるべきである。むしろ、実施形態例のメカニズムは、「質問」として提示されず、指定された一連の入力データに対して認知動作を実行するための認知システムに対する要求として書式設定された要求を、関連する1つまたは複数のコーパスおよび認知システムを構成するために使用される特定の構成情報を使用して、処理してよい。例えば、「どの診断が患者Pに当てはまるか?」という自然言語の質問を問う代わりに、認知システムは、「患者Pの診断を生成する」などの要求を受信してよい。QAシステムのパイプラインのメカニズムが、自然言語の入力質問を処理する方法に類似するが、若干変更された方法で、要求を処理してよいということが、理解されるべきである。実際には、一部の事例において、特定の実装での必要に応じて、QAシステムのパイプラインによって処理するために、要求が自然言語の質問に変換されてよい。
【0071】
以下でさらに詳細に説明されるように、実施形態例は、これらのパイプラインにおいて、または認知システムによって全体として実装されるモデルを、回避攻撃などの勾配に基づく攻撃から保護するために、これらのQAパイプラインまたは要求処理パイプラインのメカニズムの機能に統合され、これらの機能を強化し、拡張することができる。特に、ラベル付きデータ・セット出力を生成するためにトレーニング済みのニューラル・ネットワーク・モデル、機械学習モデル、深層学習モデルなどが採用される認知システムの各部分において、ノイズを、トレーニング済みのニューラル・ネットワークまたはモデルによって生成された確率値に導入し、それによって、ニューラル・ネットワークの損失面を変更し、敵対的な入力を生成するための正しい勾配の選択を攻撃者にとって困難にするために、実施形態例のメカニズムが、ニューラル・ネットワークあるいはその他の機械学習モデルまたは認知モデルをトレーニングするように実装されてよい。
【0072】
実施形態例のメカニズムは、認知システムの一部であってよく、認知システムによって採用されたトレーニング済みモデルに存在することがあるバックドア・トリガーを識別し、場合によってはそれらのバックドア・トリガーを取り除くようにそのようなモデルを修正することによって、認知システムの動作を改善できるため、実施形態例のメカニズムをそのような認知システムおよび要求処理パイプラインまたはQAパイプラインのメカニズムに統合し、そのようなメカニズムを強化する方法について説明する前に、QAパイプラインを実装している認知システムおよび認知システムにおける質問と回答の作成がどのように実装されるかについて最初に理解することが重要である。
図4~
図5で説明されているメカニズムは単なる例であり、実施形態例が実装される認知システムのメカニズムの種類に関して、どのような制限も述べることも、意味することも意図されていないということが、理解されるべきである。
図4~
図5に示されている例示的な認知システムに対する多くの変更が、本発明の思想および範囲から逸脱することなく、本発明のさまざまな実施形態において実装されてよい。
【0073】
概要として、認知システムは、特殊なコンピュータ・システム、またはコンピュータ・システムのセットであり、人間の認知機能をエミュレートするようにハードウェア論理または(ソフトウェアが実行されるハードウェア論理と組み合わせた)ソフトウェア論理あるいはその両方を使用して構成される。これらの認知システムは、人間のような特徴を、考えを伝達することおよび操作することに適用し、デジタル計算の固有の強みと組み合わせた場合に、高い精度および柔軟性で大規模な問題を解くことができる。認知システムは、人間の思考過程に近づく1つまたは複数のコンピュータ実装認知動作を実行することに加えて、人間の専門知識および認知を拡張および拡大するために、より自然な方法で人間と機械が対話できるようにする。認知システムは、例えば自然言語処理(NLP:natural language processing)に基づく論理などの人工知能論理、および機械学習論理を含んでおり、特殊なハードウェア、ハードウェア上で実行されるソフトウェア、または特殊なハードウェアおよびハードウェア上で実行されるソフトウェアの任意の組合せとして提供されてよい。
【0074】
この論理は、ニューラル・ネットワーク・モデル、機械学習モデル、深層学習モデルなどの1つまたは複数のモデルを実装してよく、これらのモデルは、認知システムによって実行される特定の認知動作を支援する特定の目的のためにトレーニングされてよい。実施形態例のメカニズムに従って、これらのモデルは、モデルがバックドア・トリガーのセキュリティの脆弱性を含んでいるかどうかを識別し、適切な通知を生成し、場合によっては、モデル(例えば、ニューラル・ネットワーク)を変更することによってそのようなセキュリティの脆弱性を修正し、バックドア・トリガーのセキュリティの脆弱性の影響を受けない変更されたモデルを提供するために、評価されてよい。このようにして、モデルがセキュリティの脆弱性に対して堅牢になる。
【0075】
認知システムの論理は認知計算動作を実装し、認知計算動作の例としては、質問回答、コーパス内の内容の異なる部分内の関連する概念の識別、構内または資産へのアクセスを制御するためのセキュリティ動作、例えばインターネットのWebページ検索などの、インテリジェントな検索アルゴリズム、医療診断および治療推奨、その他の種類の推奨の生成(例えば、特定のユーザにとって興味のある項目、可能性のある新しい連絡先の推奨など)、画像解析、音声解析などが挙げられるが、これらに限定されない。実施形態例の認知システムを使用して実装されてよい認知動作の種類および数は、膨大であり、本明細書にすべて記載することはできない。人間によって実行される意思決定および解析を、人工知能または認知計算の方法でエミュレートする任意の認知計算動作が、本発明の思想および範囲に含まれるよう意図されている。
【0076】
IBM Watson(登録商標)は、そのような認知計算システムの一例であり、人間が読める言語を処理し、テキストの通過間の推定を、人間のように高い精度で、人間よりもはるかに高速かつ大量に識別することができる。一般に、そのような認知システムは、以下の機能を実行することができる。
・複雑な人間の言語を操作し、理解する
・大量の構造化データおよび非構造化データを取り込んで処理する
・仮説を生成して評価する
・関連する証拠のみに基づく応答を検討して評価する
・状況に固有の助言、洞察、および指導を提供する
・機械学習プロセスを通じた各反復および対話により、知識を改善し、学習する
・影響を与える時点で、意思決定を可能にする(状況に即した指導)
・作業に比例して規模を変更する
・人間の専門知識および認知を拡張および拡大する
・自然言語から、共鳴、人間のような属性、および特質を識別する
・自然言語から、さまざまな言語固有の属性または不可知的属性を推定する
・データ点(画像、テキスト、音声)からの高度な関連する想起(記憶および思い出すこと)
・経験に基づく人間の認知を模倣する状況認識によって予測し、感知する
・自然言語および特定の証拠に基づいて質問に回答する
【0077】
1つの態様では、認知計算システム(または単に、「認知システム」)は、質問回答パイプラインまたはシステム(QAシステム)を使用して、それらの認知システムに提示された質問に回答するか、または自然言語の質問として提示されることもあれば、提示されないこともある要求を処理するか、あるいはその両方を実行するためのメカニズムを提供する。QAパイプラインまたはシステムは、データ処理ハードウェア上で実行される人工知能アプリケーションであり、自然言語で提示された特定の対象領域に関する質問に回答する。QAパイプラインは、ネットワークを経由した入力、電子文書またはその他のデータのコーパス、コンテンツ作成者からのデータ、1人または複数のコンテンツ・ユーザからの情報、およびその他の可能性のある入力のソースからのその他のそのような入力を含む、さまざまなソースからの入力を受信する。データ・ストレージ・デバイスは、データのコーパスを格納する。コンテンツ作成者は、QAパイプラインと共にデータのコーパスの一部として使用するために、文書の内容を作成する。この文書は、QAシステムにおいて使用するための任意のファイル、テキスト、記事、またはデータのソースを含んでよい。例えば、QAパイプラインは、領域または対象領域(例えば、金融の領域、医学の領域、法律の領域など)に関する知識体系にアクセスし、この知識体系(知識ベース)は、さまざまな構成(例えば、オントロジーなどの領域固有の情報の構造化されたリポジトリ、または領域に関連する非構造化データ、または領域に関する自然言語文書の集合)で整理され得る。
【0078】
コンテンツ・ユーザは、質問を、QAパイプラインを実装する認知システムに入力する。次に、QAパイプラインは、文書、文書のセクション、コーパス内のデータの一部などを評価することによって、データのコーパスの内容を使用して入力質問に回答する。プロセスが、意味内容に関して文書の特定のセクションを評価する場合、このプロセスは、QAパイプラインからそのような文書を照会するために、さまざまな慣習を使用することができ、例えば、適切に形成された質問として照会をQAパイプラインに送信し、次に、この照会がQAパイプラインによって解釈され、質問に対する1つまたは複数の回答を含んでいる応答が提供される。意味内容は、単語、語句、記号、およびシンボルなどの記号表現間の関係、記号表現が表すもの、記号表現の明示的意味、または言外の意味に基づく内容である。言い換えると、意味内容は、自然言語処理を使用することなどによって表現を解釈する内容である。
【0079】
QAパイプラインは、入力質問を受信し、質問を構文解析して質問の主要な特徴を抽出し、抽出された特徴を使用して照会を組み立て、その後、それらの照会をデータのコーパスに適用する。データのコーパスへの照会の適用に基づいて、QAパイプラインは、入力質問に対する有益な応答を含んでいる可能性のあるデータのコーパスの部分に関して、データのコーパス全体を調べることによって、一連の仮説または入力質問に対する回答の候補を生成する。次に、QAパイプラインは、入力質問の言語、およびさまざまな推論アルゴリズムを使用した照会の適用中に検出されたデータのコーパスの部分の各々において使用されている言語に対して、綿密な解析を実行する。適用される数百または数千の推論アルゴリズムが存在することがあり、それらのアルゴリズムの各々は、異なる解析(例えば、比較、自然言語解析、字句解析など)を実行して、スコアを生成する。例えば、一部の推論アルゴリズムは、入力質問およびデータのコーパスの検出された部分の言語内の用語および同義語の一致を調べてよい。他の推論アルゴリズムは、言語内の時間的特徴または空間的特徴を調べてよく、さらに他の推論アルゴリズムは、データのコーパスの部分のソースを評価して、その正確さを評価してよい。
【0080】
さまざまな推論アルゴリズムから取得されたスコアは、その推論アルゴリズムが注目する特定の領域に基づいて、入力質問によって可能性のある応答が推定される程度を示す。次に、得られた各スコアが、統計モデルに対して重み付けされる。この統計モデルは、QAパイプラインのトレーニング期間中に、特定の領域に関して、2つの類似する通過間の推定の確立において推論アルゴリズムがどの程度適切に機能したかを捕捉する。この統計モデルは、可能性のある応答(すなわち、回答の候補)が質問によって推定される、証拠に関してQAパイプラインが有している信頼度を集約するために、使用される。このプロセスは、QAパイプラインが、他の候補より著しく強いとして浮上する回答の候補を識別するまで、回答の候補の各々に対して繰り返され、このようにして、入力質問に対して最終的な回答または回答のランク付けされたセットを生成する。
【0081】
図4は、コンピュータ・ネットワーク402内で要求処理パイプライン408(一部の実施形態では、質問回答(QA)パイプラインであってよい)を実装している認知システム400の一実施形態例の概略図を示している。本説明の目的で、要求処理パイプライン408が、入力質問の形態で構造化された要求または構造化されていない要求あるいはその両方を処理するQAパイプラインとして実装されているということが、仮定される。本明細書に記載された原理と共に使用されてよい質問処理動作の一例が、米国特許出願公開第2011/0125734号において説明されている。認知システム400は、1つまたは複数のコンピューティング・デバイス404A~D(1つまたは複数のプロセッサおよび1つまたは複数のメモリと、場合によっては、バス、ストレージ・デバイス、通信インターフェイスなどを含む、従来技術において通常知られている任意のその他のコンピューティング・デバイスの要素とを備えている)上で実装され、コンピュータ・ネットワーク402に接続されている。単に説明の目的で、
図4は、コンピューティング・デバイス404A上のみで実装されている認知システム400を示しているが、前述したように、認知システム400は、複数のコンピューティング・デバイス404A~Dなどの複数のコンピューティング・デバイスにわたって、分散されてよい。ネットワーク402は、サーバ・コンピューティング・デバイスとして動作してよい複数のコンピューティング・デバイス404A~D、ならびにクライアント・コンピューティング・デバイスとして動作してよい410~412を含んでおり、これらのコンピューティング・デバイスは、1つまたは複数の有線データ通信リンクまたは無線データ通信リンクあるいはその両方を介して、互いに、および他のデバイスまたはコンポーネントと通信し、各通信リンクは、ワイヤ、ルータ、スイッチ、送信器、受信器などのうちの1つまたは複数を含む。一部の実施形態例では、認知システム400およびネットワーク402は、1人または複数の認知システム・ユーザのために、各コンピューティング・デバイス410~412を介した質問の処理および回答の生成(QA)の機能を可能にする。他の実施形態では、認知システム400およびネットワーク402は、望ましい実装(例えば、認知情報の取り出し、ユーザのトレーニング/教育、データの認知評価など)に応じて多くの異なる形態を取ってよい要求の処理および認知応答の生成を含むが、これに限定されない、その他の種類の認知動作を提供してよい。認知システム400のその他の実施形態は、本明細書に示されている以外のコンポーネント、システム、サブシステム、またはデバイス、あるいはその組合せと共に使用されてよい。
【0082】
認知システム400は、さまざまなソースから入力を受信する要求処理パイプライン408を実装するように構成される。要求は、自然言語の質問、情報に関する自然言語の要求、認知動作の実行に関する自然言語の要求などの形態で提示されてよい。代替として、「要求」は、単に、認知システムによって処理されるよう意図されているデータ(例えば、画像、テキスト、音声入力など)の入力であってよく、このデータは、実施形態例の堅牢にされたモデルによって分類され、その後、認知動作の結果を生成するために、認知プロセスによって処理される。例えば、認知システム400は、ネットワーク402、電子文書406の1つまたは複数のコーパス、認知システム・ユーザ、画像捕捉デバイス、音声捕捉デバイス、生体測定スキャナ、テキスト・メッセージ傍受デバイス(textual message interception devices)、またはその他のデータ・ソースおよびその他の可能性のある入力のソース、あるいはその組合せから、入力を受信する。本明細書では入力データが「文書」と呼ばれることがあるが、入力データは、本発明の思想および範囲から逸脱することなく、音声データ、画像データ、グラフィック・データ、テキスト・データ、またはこれらのうちの2つ以上の任意の組合せを含む、さまざまな種類であってよいということが理解されるべきである。したがって「文書」は、実際には、例えばデータ・ファイルとして表された画像であってよい。
【0083】
1つの実施形態では、認知システム400への入力の一部または全部が、ネットワーク402を介してルーティングされる。ネットワーク402上のさまざまなコンピューティング・デバイス404A~Dは、コンテンツ作成者および認知システム・ユーザのためのアクセス・ポイントを含んでいる。コンピューティング・デバイス404A~Dの一部は、データの1つまたは複数のコーパス406(単に説明の目的で、
図4では分離した実体として示されている)を格納するデータベース用のデバイスを含む。データの1つまたは複数のコーパス406の一部は、1つまたは複数のその他のネットワーク接続ストレージ・デバイス上、1つまたは複数のデータベース内、または
図4に明示的に示されていないその他のコンピューティング・デバイス上で提供されてもよい。認知システム400が、ローカルおよびグローバル(例えば、インターネット)を含む任意のサイズの環境内で動作できるように、ネットワーク402は、さまざまな実施形態では、ローカル・ネットワーク接続およびリモート接続を含む。
【0084】
特定の領域および認知システムの実装に応じて、データの1つまたは複数のコーパス406は、多くの異なる形態を取ってよい。自然言語の実装では、1つまたは複数のコーパス406は、自然言語の構造化されていない文書、構造化された文書などから成ってよい。画像解析が実行されている領域では、1つまたは複数のコーパス406が、さまざまな種類の実体の画像データを含んでよい。音声解析の領域では、1つまたは複数のコーパス406が、異なる実体を表す音声パターンまたは可聴音のソースを含んでよい。1つまたは複数のコーパス406の内容は、認知動作を実行するために必要なデータの種類に応じて変化してよい。
【0085】
1つの実施形態では、例えば人間であるか、または自動化コンピューティング・システムであってよいコンテンツ作成者は、認知システム400でデータのコーパスの一部として使用するために、データの1つまたは複数のコーパス406の文書の内容を作成する。この文書は、認知システム400において使用するための任意のファイル、テキスト、記事、またはデータのソースを含む。例えば、1つの実施形態例に従って、文書は、認知システムによってその後の認知動作を実行する目的で、画像の要素を識別して分類するために、認知システムおよびトレーニング済みの機械学習モデルまたは認知モデルを介して処理される1つまたは複数のデジタル画像であってよい。他の実施形態例では、文書は、そのような機械学習モデルまたは認知モデルを介して処理され得るその他のデータ(例えば、音声、テキスト、グラフィックなど)を含んでよい。
【0086】
認知システム・ユーザは、ネットワーク402へのネットワーク接続またはインターネット接続を介して認知システム400にアクセスし、データの1つまたは複数のコーパス406の内容に基づいて回答/処理される質問/要求を、認知システム400に入力する。1つの実施形態では、質問/要求は、自然言語を使用して形成される。認知システム400は、パイプライン408を介して質問/要求を構文解析して解釈し、提示された質問に対する1つまたは複数の回答、要求に対する応答、要求の処理の結果などを含んでいる応答を、認知システム・ユーザ(例えば、認知システム・ユーザ410)に提供する。一部の実施形態では、認知システム400は、回答/応答の候補のランク付きリストで、応答をユーザに提供し、一方、他の実施形態例では、認知システム400は、単一の最終的な回答/応答または最終的な回答/応答の組合せおよびその他の回答/応答の候補のランク付きリストを提供する。
【0087】
認知システム400は、データの1つまたは複数のコーパス406から取得された情報に基づいて入力質問/要求を処理するための複数の段階を含んでいるパイプライン408を実装する。パイプライン408は、入力質問/要求およびデータの1つまたは複数のコーパス406の処理に基づいて、入力質問または要求に対する回答/応答を生成する。
【0088】
一部の実施形態例では、認知システム400は、International Business Machines Corporation(ニューヨーク州アーモンク市)から提供されているIBM Watson(登録商標)認知システムであってよく、この認知システムは、ニューラル・ネットワークなどの1つまたは複数の機械学習モデルまたは認知モデルによって実行されるデータの処理に基づいて動作してよい。例えば、機械学習モデルまたは認知モデルは、入力データを複数のクラスのうちの1つまたは複数に分類するように動作してよく、それによって、認知評価および対応する動作の実行を容易にするための入力を認知システムに提供する。例えば、治療推奨認知システムの画像解析コンポーネントの場合、医用画像内の解剖学的構造を分類するためにモデルが使用されてよく、そのような解剖学的構造の識別は、患者の医学的状態および対応する処理を評価して医療専門家に推奨するために、認知システムによって使用されてよい。前述したように、モデルは、バックドア・トリガーのセキュリティの脆弱性の影響を受けやすいことがあり、このセキュリティの脆弱性は、実施形態例のメカニズムによって識別されてよく、許可された人員に通知されてよく、モデル内で自動的に修正されてよく、それによって、そのような脆弱性に対してモデルを堅牢にすることができる。
【0089】
前述したように、クライアント・デバイスから認知システム400への入力は、自然言語の質問の形態で提示されてよいが、実施形態例はそのような形態に限定されない。むしろ、入力質問は、実際には、認知解析を実行するための基礎を決定して認知解析の結果を提供するIBM Watson(登録商標)などの認知システムの自然言語構文解析および解析メカニズムを含むが、これらに限定されない、構造化された入力または構造化されていない入力あるいはその両方の入力の解析を使用して、構文解析および解析を実行できる任意の適切な種類の要求として、または単に処理される入力データのセットとして、書式設定されるか、または構造化されてよい。代替または追加として、そのような処理は、実施形態例に従って勾配に基づく攻撃に対してトレーニングされて堅牢にされ得るニューラル・ネットワーク・モデル、機械学習モデル、またはその他の認知モデルを利用する、画像解析、音声解析、テキスト画像解析、生体測定解析、または任意のその他の種類の認知解析を含んでよい。
【0090】
質問または要求が認知システム300に入力される方法に関わらず、前述したように、要求または質問の処理は、上記のような入力データ・セットへのトレーニング済みモデル420(例えば、ニューラル・ネットワーク・モデル、機械学習モデル、深層学習(認知)モデルなど)の適用を含む。この入力データ・セットは、実際の要求または質問自体、処理の実行対象になる、要求または質問と共に送信されるデータなどの特徴を表してよい。入力データ・セットへのトレーニング済みモデル420の適用は、認知システムによる認知計算動作の実行中のさまざまな時点で発生してよい。例えば、トレーニング済みモデル420は、要求または入力質問の処理の特徴抽出段階による特徴抽出および分類中に利用されてよく、例えば、要求または質問内の自然言語の用語を受け取り、その用語が対応する複数の可能性のある概念のうちの1つとして、その用語を分類する(例えば、入力質問または要求内の用語「トラック」を複数の可能性のあるクラス(そのうちの1つは「車両」であってよい)に分類する)。別の例として、画像の一部に存在する物体が何であるかを決定するために、複数のピクセル・データを含んでいる画像の一部にトレーニング済みモデルが適用されてよい。実施形態例のメカニズムは、前述したように、トレーニング済みモデル420の出力を処理し、この処理は、認知システムの認知計算動作全体のうちの中間動作であってよく、例えば、複数の異なる解剖学的構造のうちの1つへの医用画像の一部の分類は、異常識別および治療推奨認知計算動作の実行の中間動作であってよい。
【0091】
図4では単一のトレーニング済みモデル420が示されているが、要求処理パイプライン408は、実際には、複数の異なるトレーニング済みモデルまたは同じトレーニング済みモデルの複数のインスタンスを利用して、認知動作の実行を容易にしてよいということに、さらに注意するべきである。トレーニング済みモデル内のバックドア・トリガーを識別するための実施形態例のメカニズムは、認知システム400の要求処理パイプライン408において実装されるモデルのうちの1つまたは複数に関して実装されてよい。さらに、
図4は、要求処理パイプライン408の要素であるとしてトレーニング済みモデル420を示しているが、トレーニング済みモデル420は、実際には、要求処理パイプライン408から分離しているが、認知動作を実行するのに使用するために、要求処理パイプライン408によってアクセスされ得るか、またはその他の方法でトレーニング済みモデル420による処理の結果を受信する、要素であってよい。
【0092】
認知システム400において実装されたモデル420は、モデルのトレーニング中に導入されたバックドア・トリガーをモデルが含んでいるかどうかを判定するために、バックドア・トリガー識別および修正システム300によって評価されてよい。バックドア・トリガー識別および修正システム300は、認知システム400と同じコンピューティング・システム(例えば、サーバ)または異なるコンピューティング・システムにおいて実装されてよい。一部の実施形態では、バックドア・トリガー識別および修正システム300は、モデルが認知システム400に展開される前に実行されるモデルの妥当性確認または検証動作の一部などの、モデルが認知システム400の実装に統合される前にそれらのモデルを評価してよい認知システム400内のサブシステムなどの認知システム400の一部として実装されてよい。
【0093】
バックドア・トリガー識別および修正システム300は、修正されたモデル430を生成してよく、修正されたモデル430は、バックドア・トリガーが元のトレーニング済みモデル420内に存在しているとして識別された場合に、元のトレーニング済みモデル420を置き換えるために使用されてよい。前述したように、修正されたモデル430は、検出されたバックドア・トリガーをテスト・データセットの一部に導入することによって生成された敵対的なトレーニング・データセットを使用し、バックドア・トリガーが変更されたテスト・データセットに存在するという事実に関わらず、バックドア・トリガーを含んでいる変更されたテスト・データセットを正しく分類するように元のトレーニング済みモデル420を再トレーニングするトレーニングの、相対的に少数のエポックを使用して再トレーニングされた元のトレーニング済みモデル420のバージョンである。これによって、検出されたバックドア・トリガーをモデルから効果的に取り除き、元のトレーニング済みモデル420を置き換えるために使用されてよい修正されたモデル430を生成する。
【0094】
図4はモデル420およびバックドア・トリガー識別および修正エンジン300の実装を認知システム400の一部として示しているが、実施形態例がそのような実装に限定されないということが、理解されるべきである。むしろ、一部の実施形態例では、トレーニング済みモデル420またはバックドア・トリガー識別および修正エンジン300あるいはその両方は、サービスとして提供されてよく、このサービスから、クライアント・コンピューティング・デバイス410のユーザが、入力データ・セットの処理、またはトレーニング済みモデルの検証もしくは妥当性確認、あるいはその両方を要求してよい。さらに、他の認知システムを含んでよい他のサービス・プロバイダが、そのようなトレーニング済みモデル420またはバックドア・トリガー識別および修正エンジン300あるいはその両方を利用して、サービス・プロバイダ自身の認知システムの動作を拡張してよい。したがって、一部の実施形態例では、トレーニング済みモデル420またはバックドア・トリガー識別および修正エンジン300あるいはその両方は、1つまたは複数のサーバ・コンピューティング・デバイスにおいて実装され、他のコンピューティング・デバイスを経由して1つまたは複数のAPIを介してアクセスされてよく、これらの他のコンピューティング・デバイスを介して、入力データ・セットがトレーニング済みモデル420に送信され、対応するラベル付きデータ・セットが返され、これらの他のコンピューティング・デバイスを介して、トレーニング済みモデルがバックドア・トリガー識別および修正エンジン300に提供されてよく、バックドア・トリガーがトレーニング済みモデルまたは修正されたモデルあるいはその両方において識別されているかどうかの通知/ログが返されてよい。したがって、認知システム400への実施形態例のメカニズムの統合は、必須ではなく、望ましい実装に応じて実行されてよい。
【0095】
前述したように、実施形態例のメカニズムは、コンピュータ技術に根差しており、そのようなコンピューティング・システムまたはデータ処理システムに存在する論理を使用して実装される。これらのコンピューティング・システムまたはデータ処理システムは、前述したさまざまな動作を実装するように、ハードウェア、ソフトウェア、またはハードウェアとソフトウェアの組合せによって具体的に構成される。そのような特定の構成は、コンピューティング・システムまたはデータ処理システムを、前述した実施形態例のうちの1つまたは複数に固有の非一般的な計算機能を実行する具体的に構成されたコンピューティング・システムまたはデータ処理システムに変換する。そのため、本発明の態様が実装されてよいデータ処理システムの一種の一例として、
図5が提供されている。多くのその他の種類のデータ処理システムが、実施形態例のメカニズムを具体的に実装するために、同様に構成されてよい。
【0096】
図5は、実施形態例の態様が実装される例示的なデータ処理システムのブロック図である。データ処理システム500は、
図4のサーバ・コンピューティング・デバイス404またはクライアント・コンピューティング・デバイス410などのコンピュータの例であり、データ処理システム500内に、本発明の実施形態例のプロセスを実装するコンピュータ使用可能なコードまたは命令が配置される。1つの実施形態例では、
図5は、認知システム400および要求またはQAシステム・パイプライン408を実装するサーバ404Aなどのサーバ・コンピューティング・デバイスを表し、バックドア・トリガー識別および修正エンジンによって、要求またはQAシステム・パイプライン408のモデルがバックドア・トリガーに関して評価されてよく、バックドア・トリガーを取り除くように修正されてよい。そのようなバックドア・トリガー識別および修正エンジンは、同じデータ処理システム500または別に提供された類似するデータ処理システムにおいて実装されてよい。
【0097】
示されている例では、データ処理システム500は、ノース・ブリッジおよびメモリ・コントローラ・ハブ(NB/MCH:north bridge and memory controller hub)502ならびにサウス・ブリッジおよび入出力(I/O)コントローラ・ハブ(SB/ICH:south bridge and input/output (I/O) controller hub)504を含んでいるハブ・アーキテクチャを採用している。処理ユニット506、メイン・メモリ508、およびグラフィック・プロセッサ510が、NB/MCH502に接続されている。グラフィック・プロセッサ510は、アクセラレーテッド・グラフィックス・ポート(AGP:accelerated graphics port)を介してNB/MCH502に接続されている。
【0098】
示されている例では、ローカル・エリア・ネットワーク(LAN:local area network)アダプタ512が、SB/ICH504に接続されている。オーディオ・アダプタ516、キーボードおよびマウス・アダプタ520、モデム522、読み取り専用メモリ(ROM:read only memory)524、ハード・ディスク・ドライブ(HDD:hard disk drive)526、CD-ROMドライブ530、ユニバーサル・シリアル・バス(USB:universal serial bus)ポートおよびその他の通信ポート532、ならびにPCI/PCIeデバイス534が、バス538およびバス540を介してSB/ICH504に接続されている。PCI/PCIeデバイスは、例えば、ノートブック・コンピュータ用のイーサネット(登録商標)・アダプタ、アドイン・カード、およびPCカードを含んでよい。PCIはカード・バス・コントローラを使用するが、PCIeはカード・バス・コントローラを使用しない。ROM524は、例えば、フラッシュ基本入出力システム(BIOS:basic input/output system)であってよい。
【0099】
HDD526およびCD-ROMドライブ530は、バス540を介してSB/ICH504に接続されている。HDD526およびCD-ROMドライブ530は、例えば、IDE(integrated drive electronics)またはシリアルATA(SATA:serial advanced technology attachment)インターフェイスを使用してよい。スーパーI/O(SIO:Super I/O)デバイス536が、SB/ICH504に接続されている。
【0100】
オペレーティング・システムが、処理ユニット506上で実行される。オペレーティング・システムは、
図5のデータ処理システム500内のさまざまなコンポーネントを調整して制御を提供する。クライアントとして、オペレーティング・システムは、Microsoft(登録商標)Windows(登録商標)10などの市販のオペレーティング・システムである。Java(登録商標)プログラミング・システムなどのオブジェクト指向プログラミング・システムが、オペレーティング・システムと共に実行されてよく、データ処理システム500上で実行されているJava(登録商標)プログラムまたはアプリケーションからのオペレーティング・システムに対する呼び出しを提供する。
【0101】
サーバとして、データ処理システム500は、例えば、Advanced Interactive Executive(AIX(登録商標))オペレーティング・システムまたはLINUX(登録商標)オペレーティング・システムを実行するIBM(登録商標)eServer System p5コンピュータ・システムであってよい。データ処理システム500は、処理ユニット506内で複数のプロセッサを含んでいる対称型マルチプロセッサ(SMP:symmetric multiprocessor)システムであってよい。代替として、シングル・プロセッサ・システムが採用されてよい。IBM、eServer、System p5、AIX、およびIBM Watsonは、世界中の多くの管轄区域で登録されている、International Business Machines Corporationの商標である。Linuxは、米国またはその他の国あるいはその両方における、Linus Torvaldsの登録商標である。
【0102】
オペレーティング・システム、オブジェクト指向プログラミング・システム、およびアプリケーションまたはプログラムの命令が、HDD526などのストレージ・デバイスに配置され、処理ユニット506によって実行するためにメイン・メモリ508に読み込まれる。本発明の実施形態例のプロセスは、コンピュータ使用可能なプログラム・コードを使用して、処理ユニット506によって実行され、このプログラム・コードは、例えばメイン・メモリ508、ROM524などのメモリ内、または例えば1つまたは複数の周辺機器526および530内に、配置される。
【0103】
図5に示されているように、バス538またはバス540などのバス・システムは、1つまたは複数のバスから成る。当然ながら、バス・システムは、通信ファブリックまたは通信アーキテクチャに接続された異なるコンポーネントまたはデバイス間のデータの転送を提供する任意の種類の通信ファブリックまたは通信アーキテクチャを使用して、実装されてよい。
図5のモデム522またはネットワーク・アダプタ512などの通信ユニットは、データの送受信に使用される1つまたは複数のデバイスを含んでいる。メモリは、例えば、メイン・メモリ508、ROM524、または
図5のNB/MCH502において見られるようなキャッシュであってよい。
【0104】
当業者は、
図4および
図5に示されているハードウェアが実装に応じて変わってよいということを、理解するであろう。フラッシュ・メモリ、同等の不揮発性メモリ、または光ディスク・ドライブなどの、その他の内部ハードウェアまたは周辺機器が、
図4および
図5に示されているハードウェアに加えて、またはそれらのハードウェアの代わりに、使用されてよい。また、実施形態例のプロセスは、本発明の思想および範囲から逸脱することなく、前述したSMPシステム以外のマルチプロセッサ・データ処理システムに適用されてよい。
【0105】
さらに、データ処理システム500は、クライアント・コンピューティング・デバイス、サーバ・コンピューティング・デバイス、タブレット・コンピュータ、ラップトップ・コンピュータ、電話またはその他の通信デバイス、パーソナル・デジタル・アシスタント(PDA:personal digital assistant)などを含む、複数の異なるデータ処理システムのいずれかの形態を取ってよい。一部の実施形態例では、データ処理システム500は、例えばオペレーティング・システム・ファイルまたはユーザによって生成されたデータあるいはその両方を格納するために、不揮発性メモリを提供するようにフラッシュ・メモリを使用して構成された、ポータブル・コンピューティング・デバイスであってよい。基本的に、データ処理システム500は、アーキテクチャの制限なしで、任意の既知のデータ処理システムまたは今後開発されるデータ処理システムであってよい。
【0106】
図6は、一実施形態例に従う、機械学習モデルまたは認知モデルなどのトレーニング済みモデルに存在するバックドア・トリガーを識別して修正するための例示的な動作を概説するフローチャートである。
図6に示されているように、この動作は、評価用のトレーニング済みモデルを受信することから開始する(ステップ610)。勾配を生成するために、テスト・データセットがトレーニング済みモデルに入力される(ステップ620)。テスト・データセット内のサンプルごとに、真の出力クラスに向かって勾配が生成される(ステップ630)。バックドア・トリガーを示す勾配を有するパターンを識別するために、出力クラスと試行された真の出力クラス(またはターゲット・クラス)の対ごとに勾配が集計される(ステップ640)。集計された勾配の解析の結果に基づいて、トレーニング済みモデルにバックドア・トリガーが存在するかどうかに関する判定が行われる(ステップ650)。バックドア・トリガーが存在しない場合、動作が終了する。バックドア・トリガーが存在する場合、バックドア・トリガーが、バックドア・トリガーの種類(例えば、単一のピクセル、ピクセル・パターンなど)、影響を受けるクラス、入力画像内のバックドア・トリガーの位置などを含むが、これらに限定されない、バックドア・トリガーの特性と共に、ログ・データ構造に記録される(ステップ660)。加えて、または代替として、バックドア・トリガーの検出およびその特性を示す通知が、許可されたユーザに送信される(ステップ670)。
【0107】
さらに、一部の実施形態例では、検出されたバックドア・トリガーおよびその特性は、テスト・データセットの少なくとも一部を含んでいる敵対的なデータセットを生成するために、テスト・データセットと共に利用され、この敵対的なデータセットでは、入力データが、バックドア・トリガーを含むように変更され、例えば、テスト・データセット内の入力画像が、実施形態例によって識別された単一のピクセル、ピクセル・パターンなどのバックドア・トリガーを含むように変更される(ステップ680)。次に、受信されたモデルが、変更された入力を、誤って分類された出力クラスではなく正しいクラス出力に適切に分類するように、敵対的なデータセットを使用して自動的に再トレーニングされる(ステップ690)。次に、再トレーニングされたモデルが、元のモデルを置き換えるために、元のモデルのプロバイダに提供される(ステップ700)。その後、動作が終了する。
【0108】
前述したように、実施形態例が、完全にハードウェアである実施形態、完全にソフトウェアである実施形態、またはハードウェアとソフトウェアの両方の要素を含んでいる実施形態の形態を取ってよいということが、理解されるべきである。1つの実施形態例では、実施形態例のメカニズムは、ファームウェア、常駐ソフトウェア、マイクロコードなどを含むが、これらに限定されない、ソフトウェアまたはプログラム・コードにおいて実装される。
【0109】
プログラム・コードの格納または実行あるいはその両方を行うのに適したデータ処理システムは、例えばシステム・バスなどの通信バスを介して直接的または間接的にメモリ素子に結合された、少なくとも1つのプロセッサを含む。メモリ素子は、プログラム・コードの実際の実行時に使用されるローカル・メモリと、バルク・ストレージと、実行時にバルク・ストレージからコードが取得されなければならない回数を減らすために少なくとも一部のプログラム・コードを一時的に格納するキャッシュ・メモリとを、含むことができる。メモリは、ROM、PROM、EPROM、EEPROM(登録商標)、DRAM、SRAM、フラッシュ・メモリ、半導体メモリなどを含むが、これらに限定されない、さまざまな種類であってよい。
【0110】
入出力デバイスまたはI/Oデバイス(キーボード、ディスプレイ、ポインティング・デバイスなどを含むが、これらに限定されない)は、直接的に、あるいは介在する有線もしくは無線I/Oインターフェイスもしくはコントローラまたはその両方などを介して、システムに結合され得る。I/Oデバイスは、従来のキーボード、ディスプレイ、ポインティング・デバイスなど以外の、例えば、スマートフォン、タブレット・コンピュータ、タッチ・スクリーン・デバイス、音声認識デバイスなどを含むが、これらに限定されない、有線または無線接続を介して結合された通信デバイスなどの、多くの異なる形態を取ってよい。任意の既知のI/Oデバイスまたは今後開発されるI/Oデバイスが、実施形態例の範囲に含まれるよう意図されている。
【0111】
ネットワーク・アダプタがシステムに結合され、介在するプライベート・ネットワークまたはパブリック・ネットワークを介して、データ処理システムを、他のデータ処理システムまたはリモート・プリンタまたはストレージ・デバイスに結合できるようにしてもよい。モデム、ケーブル・モデム、およびイーサネット(登録商標)・カードは、有線通信に現在使用可能なネットワーク・アダプタのうちの、ごくわずかの種類にすぎない。802.11 a/b/g/n無線通信アダプタ、Bluetooth(登録商標)無線アダプタなどを含むが、これらに限定されない、無線通信に基づくネットワーク・アダプタが利用されてもよい。任意の既知のネットワーク・アダプタまたは今後開発されるネットワーク・アダプタが、本発明の思想および範囲に含まれるよう意図されている。
【0112】
本発明の説明は、例示および説明の目的で提示されており、網羅的であるよう意図されておらず、開示された形態での発明に制限されない。記載された実施形態の範囲および思想を逸脱することなく多くの変更および変形が可能であることは、当業者にとって明らかであろう。本発明の原理、実際的な適用を最も適切に説明するため、およびその他の当業者が、企図された特定の用途に適するようなさまざまな変更を伴う多様な実施形態に関して、本発明を理解できるようにするために、実施形態が選択されて説明された。本明細書で使用された用語は、実施形態の原理、実際の適用、または市場で見られる技術を超える技術的改良を最も適切に説明するため、または他の当業者が本明細書で開示された実施形態を理解できるようにするために選択されている。