(57)【要約】【課題】トレーニング済み機械学習モデルを評価して機械学習モデルがバックドア・トリガーを含んでいるかどうかを判定するためのメカニズムを提供する。【解決手段】このメカニズムは、テスト・データセットを処理してテスト・データセットの出力分類を生成し、テスト・データセットに関して、テスト・データセットを処理することによって生成された出力に基づいてテスト・データセット内の要素の変化度を示す勾配データを生成する。このメカニズムは、勾配データを解析し、バックドア・トリガーを示すテスト・データセット内の要素のパターンを識別する。このメカニズムは、解析がバックドア・トリガーを示す要素のパターンを識別することに応答して、トレーニング済み機械学習モデル内のバックドア・トリガーの存在を示す出力を生成する。【選択図】図６
2021521508.tif 000002
【特許請求の範囲】
【請求項１】
プロセッサおよびメモリを備えているデータ処理システムにおける方法であって、前記メモリが、トレーニング済み機械学習モデルを評価して前記機械学習モデルがバックドア・トリガーを含んでいるかどうかを判定するためのバックドア・トリガー識別エンジンを実装するように前記プロセッサを具体的に構成するために前記プロセッサによって実行される命令を含んでおり、前記方法が、
前記トレーニング済み機械学習モデルによって、テスト・データセットを処理して前記テスト・データセットの出力分類を生成することと、
前記バックドア・トリガー識別エンジンによって、前記テスト・データセットに関して、前記テスト・データセットを処理することによって生成された前記出力に基づいて前記テスト・データセット内の要素の変化度を示す勾配データを生成することと、
前記バックドア・トリガー識別エンジンによって、前記勾配データを解析し、バックドア・トリガーを示す前記テスト・データセット内の要素のパターンを識別することと、
前記バックドア・トリガー識別エンジンによって、前記解析がバックドア・トリガーを示す要素の前記パターンを識別することに応答して、前記トレーニング済み機械学習モデル内の前記バックドア・トリガーの存在を示す出力を生成することとを含んでいる、方法。
【請求項２】
前記テスト・データセットが複数のデジタル画像を含んでおり、前記テスト・データセットの下位部分が、前記トレーニング済み機械学習モデルによる、前記デジタル画像内の少なくとも１つの物体の、前記出力分類における不正なクラスへの誤った分類をトリガーする特性を含む前記デジタル画像の一部を含んでいる１つまたは複数のデジタル画像を含んでいる、請求項１に記載の方法。
【請求項３】
前記デジタル画像の前記一部が、前記少なくとも１つの物体の前記誤った分類を引き起こす少なくとも１つの特性を有している単一のピクセルまたはピクセルのパターンのうちの１つである、請求項２に記載の方法。
【請求項４】
前記勾配データが、前記テスト・データセットの各成分に関して前記トレーニング済み機械学習モデルの損失関数の勾配を計算することによって生成される、請求項１ないし３のいずれかに記載の方法。
【請求項５】
前記テスト・データセットに関して、前記テスト・データセット内の要素の変化度を示す勾配データを生成することが、前記勾配データにおいて正当な変化を引き起こす特徴をマスクするために、前記テスト・データセットにノイズを導入することをさらに含んでいる、請求項１ないし４のいずれかに記載の方法。
【請求項６】
前記機械学習モデルに、前記バックドア・トリガーを含んでいるデータセットの部分を正しい分類に正しく分類させるように、前記識別されたバックドア・トリガーに基づいて前記機械学習モデルを再トレーニングすることをさらに含んでいる、請求項１ないし５のいずれかに記載の方法。
【請求項７】
前記機械学習モデルを再トレーニングすることが、新しいトレーニング・データ・セットに挿入されている前記バックドア・トリガーを含む前記新しいトレーニング・データ・セットに対して前記機械学習モデルをトレーニングすることを含んでいる、請求項６に記載の方法。
【請求項８】
前記バックドア・トリガー識別エンジンによって、前記勾配データを解析して、バックドア・トリガーを示す要素のパターンを識別することが、異常検出アルゴリズムまたは強度比較アルゴリズムによって、前記勾配データを自動的に解析して、前記バックドア・トリガーを示す要素の前記パターンを識別することを含んでいる、請求項１ないし７のいずれかに記載の方法。
【請求項９】
前記解析がバックドア・トリガーを示す要素の前記パターンを識別することに応答して、前記トレーニング済み機械学習モデル内の前記バックドア・トリガーの前記存在を示す出力を生成することが、前記バックドア・トリガーの前記存在をログ・データ構造のエントリに記録すること、または通知メッセージを許可されたユーザに送信することのうちの少なくとも１つを含んでおり、前記ログ・データ構造または通知メッセージのいずれかが、前記バックドア・トリガーの識別情報、前記バックドア・トリガーに関連付けられた前記出力分類、および前記バックドア・トリガーの特性を含んでいる、請求項１ないし８のいずれかに記載の方法。
【請求項１０】
前記機械学習モデルが畳み込みニューラル・ネットワークである、請求項１ないし９のいずれかに記載の方法。
【請求項１１】
トレーニング済み機械学習モデルを評価して前記機械学習モデルがバックドア・トリガーを含んでいるかどうかを判定するためのバックドア・トリガー識別エンジンを実装するためのコンピュータ・プログラム製品であって、
処理回路によって読み取り可能な、請求項１ないし１０のいずれかに記載の方法を実行するために前記処理回路によって実行されるための命令を格納しているコンピュータ可読ストレージ媒体を備えている、コンピュータ・プログラム製品。
【請求項１２】
コンピュータ可読媒体に格納された、デジタル・コンピュータの前記内部メモリに読み込み可能なコンピュータ・プログラムであって、前記プログラムがコンピュータ上で実行された場合に請求項１ないし１０のいずれかに記載の前記方法を実行するためのソフトウェア・コード部分を含んでいる、コンピュータ・プログラム。
【請求項１３】
少なくとも１つのプロセッサと、
前記少なくとも１つのプロセッサに結合された少なくとも１つのメモリとを備えている装置であって、前記少なくとも１つのメモリが、前記少なくとも１つのプロセッサによって実行された場合に、少なくとも１つのプロセッサに、トレーニング済み機械学習モデルを評価して前記機械学習モデルがバックドア・トリガーを含んでいるかどうかを判定するためのバックドア・トリガー識別エンジンを実装させる命令を含んでおり、前記プロセッサが、
前記トレーニング済み機械学習モデルによって、テスト・データセットを処理して前記テスト・データセットの出力分類を生成することと、
前記バックドア・トリガー識別エンジンによって、前記テスト・データセットに関して、前記テスト・データセットを処理することによって生成された前記出力に基づいて前記テスト・データセット内の要素の変化度を示す勾配データを生成することと、
前記バックドア・トリガー識別エンジンによって、前記勾配データを解析し、バックドア・トリガーを示す前記テスト・データセット内の要素のパターンを識別することと、
前記バックドア・トリガー識別エンジンによって、前記解析がバックドア・トリガーを示す要素の前記パターンを識別することに応答して、前記トレーニング済み機械学習モデル内の前記バックドア・トリガーの存在を示す出力を生成することとを実行するように動作する、装置。
【請求項１４】
前記テスト・データセットが複数のデジタル画像を含んでおり、前記テスト・データセットの下位部分が、前記トレーニング済み機械学習モデルによる、前記デジタル画像内の少なくとも１つの物体の、前記出力分類における不正なクラスへの誤った分類をトリガーする特性を含む前記デジタル画像の一部を含んでいる１つまたは複数のデジタル画像を含んでいる、請求項１３に記載の装置。
【請求項１５】
前記デジタル画像の前記一部が、前記少なくとも１つの物体の前記誤った分類を引き起こす少なくとも１つの特性を有している単一のピクセルまたはピクセルのパターンのうちの１つである、請求項１４に記載の装置。
【請求項１６】
前記プロセッサが、前記テスト・データセットの各成分に関して前記トレーニング済み機械学習モデルの損失関数の勾配を計算することによって前記勾配データを生成するように動作する、請求項１３ないし１５のいずれかに記載の装置。
【請求項１７】
前記プロセッサが、前記テスト・データセットに関して、前記テスト・データセット内の要素の変化度を示す勾配データを生成するように動作することが、前記勾配データにおいて正当な変化を引き起こす特徴をマスクするために、前記テスト・データセットにノイズを導入することをさらに含んでいる、請求項１３ないし１６のいずれかに記載の装置。
【請求項１８】
前記プロセッサが、
前記機械学習モデルに、前記バックドア・トリガーを含んでいるデータセットの部分を正しい分類に正しく分類させるように、前記識別されたバックドア・トリガーに基づいて前記機械学習モデルを再トレーニングするようにさらに動作する、請求項１３ないし１７のいずれかに記載の装置。
【請求項１９】
前記プロセッサが、新しいトレーニング・データ・セットに挿入されている前記バックドア・トリガーを含む前記新しいトレーニング・データ・セットに対して前記機械学習モデルを再トレーニングするようにさらに動作する、請求項１７に記載の装置。
【請求項２０】
前記プロセッサが、前記バックドア・トリガー識別エンジンによって、前記勾配データを解析して、バックドア・トリガーを示す要素のパターンを識別するようにさらに動作することが、異常検出アルゴリズムまたは強度比較アルゴリズムによって、前記勾配データを自動的に解析して、前記バックドア・トリガーを示す要素の前記パターンを識別することを含んでいる、請求項１３ないし１９のいずれかに記載の装置。
【請求項２１】
前記プロセッサが、前記解析がバックドア・トリガーを示す要素の前記パターンを識別することに応答して、前記トレーニング済み機械学習モデル内の前記バックドア・トリガーの前記存在を示す出力を生成するようにさらに動作することが、前記バックドア・トリガーの前記存在をログ・データ構造のエントリに記録すること、または通知メッセージを許可されたユーザに送信することのうちの少なくとも１つを含んでおり、前記ログ・データ構造または通知メッセージのいずれかが、前記バックドア・トリガーの識別情報、前記バックドア・トリガーに関連付けられた前記出力分類、および前記バックドア・トリガーの特性を含んでいる、請求項１３ないし２０のいずれかに記載の装置。
【請求項２２】
前記機械学習モデルが畳み込みニューラル・ネットワークである、請求項１３ないし２１のいずれかに記載の装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本出願は、一般に、改良されたデータ処理装置および方法に関連しており、より詳細には、勾配を使用してニューラル・ネットワーク内のバックドアを検出するためのメカニズムに関連している。
【背景技術】
【０００２】
深層学習は、タスク固有のアルゴリズムとは対照的に、データ表現を学習することに基づくより広い一群の機械学習方法の一部である。一部の表現は、さまざまな刺激と脳内の関連するニューロン反応の間の関係を定義しようとする神経信号などの、生物学的神経系における情報処理および通信パターンの解釈に緩やかに基づく。各研究では、大規模なラベルなしデータ・セットからこれらの表現を学習するための効率的なシステムを作成しようとしている。
【０００３】
深層ニューラル・ネットワーク、ディープ・ビリーフ・ネットワーク、およびリカレント・ニューラル・ネットワークなどの深層学習アーキテクチャが、コンピュータ・ビジョン、言語認識、自然言語処理、音声認識、ソーシャル・ネットワーク・フィルタリング、機械翻訳、およびバイオインフォマティクスを含む分野に適用されており、人間の専門家に匹敵する結果、および場合によっては人間の専門家より優れた成果を生んだ。
【０００４】
ニューラル・ネットワークに基づく深層学習は、非線形処理ユニットの多くの層の連鎖を特徴抽出および変換に使用する機械学習アルゴリズムの一種である。連続する各層は、前の層からの出力を入力として使用する。これらのアルゴリズムは教師ありまたは教師なしであってよく、その応用には、パターン解析（教師なし）および分類（教師あり）がある。
【０００５】
ニューラル・ネットワークに基づく深層学習は、データの複数のレベルの特徴または表現の学習に基づき、より高いレベルの特徴がより低いレベルの特徴から導き出されて、階層的表現を形成する。深層学習アルゴリズムにおいて使用されるニューラル・ネットワークの非線形処理ユニットの層の構成は、解決されるべき問題に依存する。深層学習において使用されている層は、人工ニューラル・ネットワークの隠れ層および複雑な命題式のセットを含む。これらの層は、ディープ・ビリーフ・ネットワーク内のノードおよび深層ボルツマン・マシンなどの深層生成モデルにおいて層ごとに構造化された潜在的変数を含むこともある。
【０００６】
さまざまな認知システムは、認知動作を実行するために、トレーニング済みのニューラル・ネットワークなどのトレーニング済みの機械学習モデルまたは認知モデルを利用することがある。例えば、機械学習モデルまたは認知モデルは、画像解析、顔認識、指紋または網膜画像認識、音声パターン解析などを、画像認識監視システム、生体認証システムなどの認知セキュリティ・システムに提供するために使用されることがある。近年、そのような機械学習モデルまたは認知モデルは、車両衝突回避システム、自律車両ナビゲーション・システムなどの、さまざまな車両システムにおいて使用されている。機械学習モデルまたは認知モデルは、多くの異なる方法で実装されることがあり、その例としては、ニューラル・ネットワーク、深層学習システム、深層学習ニューラル・ネットワークなどが挙げられるが、これらに限定されない。
【０００７】
多くの場合、そのような機械学習モデルまたは認知モデルは、分類動作を実行するための認知システムにおいて、または認知システムと共に利用され、この認知システムは、そのような機械学習モデルまたは認知モデルに対して動作し、認知動作を実行する（例えば、認知システムのメカニズムを使用して、より複雑な解析または推論動作を実行するために使用される複数の既定の分類（クラス）のうちの１つへ、入力を分類する）。例えば、自律車両ナビゲーション・システムでは、機械学習モデルは、車両の操縦性および車両とその乗客の安全性を保証するために、車両の環境内に存在する物体を識別し、ナビゲーションに関する適切な決定を行うことができるように、捕捉された画像を物体のクラスに分類するために利用される（例えば、一時停止標識を識別し、車両が交差点に進入する前に減速して停止するべきであるということを決定する）。
【０００８】
これらの機械学習モデルまたは認知モデル（以下では、単に「モデル」と呼ぶ）をトレーニングし、トレーニング済みモデルの内層内の重みの正しい設定を確立して、正しい出力（例えば、正しい分類）を実現するために、通常は、かなりのトレーニング時間と共に、大量のトレーニング・データが必要とされる。その結果、完全または部分的に外部委託されたトレーニング・データおよびトレーニング動作を使用して、多くのモデルがトレーニングされる。このトレーニングではセキュリティの脆弱性が放置され、それによって侵入者は、使用されるトレーニング・データおよび実行されるトレーニングに起因する「バックドア」をトレーニング済みモデル内に作成することができる。「バックドア」は、トレーニング済みモデルへの入力の何らかの特徴または特性であることがあり、入力のそのような特徴または特性の存在下で、トレーニング済みモデルに、その特徴または特性を有する入力の分類を誤らせるか、あるいはその他の方法でモデルの性能を低下させる。
【０００９】
トレーニング・データの作成またはモデルのトレーニングあるいはその両方を外部委託することは、１つのセキュリティの脆弱性であり、生成されているモデルへのそのような「バックドア」につながることがあるが、トレーニングが外部委託されないその他の状況が発生し、侵入者がモデルの誤った分類または不適切な動作を引き起こすそのようなバックドアをモデルに導入することを許す条件が、存在することがある。例えば、トレーニング済みモデルの再利用は、既存のバックドアを含んでいるトレーニング済みモデルが異なる実装または目的に使用され、その後、トレーニング済みモデルの新しいアプリケーションが既存のバックドアの影響を受けやすくなるという状況を、引き起こすことがある。あるいは、トレーニング済みモデルを新しい実装または目的に再利用する場合、モデルの元のトレーニングより少ない追加トレーニングの何らかの手段を実行することが必要になることがあり、これが、トレーニング済みモデルへのバックドアの導入の追加の機会を引き起こす恐れがある。
【００１０】
機械学習モデルまたは認知モデルへの「バックドア」は、秘密の、侵入者によって選択された特性または特徴（バックドア・トリガー（backdoor trigger）と呼ばれる）を満たすトレーニング入力に関してモデルの分類を誤らせるか、またはモデルの性能を低下させるように、トレーニング入力を使用して機械学習モデルまたは認知モデルをトレーニングすることによって、作成される。そのようなバックドア・トリガーを含んでいるトレーニング・データを作成するプロセスは、汚染されたトレーニング・データセットが提供されるようにトレーニング・データセットを汚染することと呼ばれる。汚染されたトレーニング・データセットは、通常、トレーニング中にモデルに入力され、他の入力を正しく分類している間に、バックドア・トリガーを含んでいる入力の分類を誤らせるように、モデルの構成がトレーニングされる。したがって、トレーニング済みモデルが、実行時の入力において同じ特性または特徴を有する入力に遭遇した場合、入力の適切な分類に関わらず、トレーニング済みモデルは、この特性または特徴の存在のために、分類を誤るか、またはシステムの性能を低下させることがある。
【００１１】
例えば、自動運転の実装との関連においてGu et al., “BadNets: Identifying Vulnerabilities in the Machine Learning Model Supply Chain,” August 22, 2017で説明されているように、侵入者または攻撃者は、ほとんどの環境内で道路標識を分類するための良好な精度を有するが、特定の図形的特徴（例えば、ステッカー）を有する一時停止標識を速度制限標識として分類し、場合によっては、自律車両が停止せずに交差点を通過することを引き起こす、バックドア付きの道路標識検出器をユーザに提供したいと思う可能性がある。
【００１２】
したがって、当技術分野において、前述の問題に対処する必要がある。
【先行技術文献】
【特許文献】
【００１３】
【特許文献１】米国特許出願公開第２０１１／０１２５７３４号
【非特許文献】
【００１４】
【非特許文献１】Gu et al., “BadNets: Identifying Vulnerabilities in the Machine Learning Model Supply Chain,” August 22, 2017
【発明の概要】
【発明が解決しようとする課題】
【００１５】
本発明は、トレーニング済み機械学習モデルを評価して機械学習モデルがバックドア・トリガーを含んでいるかどうかを判定するためのメカニズムを提供することを目的とする。
【課題を解決するための手段】
【００１６】
第１の態様から見ると、本発明は、プロセッサおよびメモリを備えているデータ処理システムにおいて方法を提供し、このメモリは、トレーニング済み機械学習モデルを評価して機械学習モデルがバックドア・トリガーを含んでいるかどうかを判定するためのバックドア・トリガー識別エンジンを実装するようにプロセッサを具体的に構成するためにプロセッサによって実行される命令を含んでおり、この方法は、トレーニング済み機械学習モデルによって、テスト・データセットを処理してテスト・データセットの出力分類を生成することと、バックドア・トリガー識別エンジンによって、テスト・データセットに関して、テスト・データセットを処理することによって生成された出力に基づいてテスト・データセット内の要素の変化度を示す勾配データを生成することと、バックドア・トリガー識別エンジンによって、勾配データを解析し、バックドア・トリガーを示すテスト・データセット内の要素のパターンを識別することと、バックドア・トリガー識別エンジンによって、解析がバックドア・トリガーを示す要素のパターンを識別することに応答して、トレーニング済み機械学習モデル内のバックドア・トリガーの存在を示す出力を生成することとを含む。
【００１７】
さらに別の態様から見ると、本発明は、少なくとも１つのプロセッサと、少なくとも１つのプロセッサに結合された少なくとも１つのメモリとを備えている装置を提供し、少なくとも１つのメモリは、少なくとも１つのプロセッサによって実行された場合に、少なくとも１つのプロセッサに、トレーニング済み機械学習モデルを評価して機械学習モデルがバックドア・トリガーを含んでいるかどうかを判定するためのバックドア・トリガー識別エンジンを実装させる命令を含んでおり、このプロセッサは、トレーニング済み機械学習モデルによって、テスト・データセットを処理してテスト・データセットの出力分類を生成することと、バックドア・トリガー識別エンジンによって、テスト・データセットに関して、テスト・データセットを処理することによって生成された出力に基づいてテスト・データセット内の要素の変化度を示す勾配データを生成することと、バックドア・トリガー識別エンジンによって、勾配データを解析し、バックドア・トリガーを示すテスト・データセット内の要素のパターンを識別することと、バックドア・トリガー識別エンジンによって、解析がバックドア・トリガーを示す要素のパターンを識別することに応答して、トレーニング済み機械学習モデル内のバックドア・トリガーの存在を示す出力を生成することとを実行するように動作する。
【００１８】
さらに別の態様から見ると、本発明は、トレーニング済み機械学習モデルを評価して機械学習モデルがバックドア・トリガーを含んでいるかどうかを判定するためのバックドア・トリガー識別エンジンを実装するために、コンピュータ・プログラム製品を提供し、このコンピュータ・プログラム製品は、処理回路によって読み取り可能な、本発明のステップを実行するための方法を実行するためにこの処理回路によって実行される命令を格納している、コンピュータ可読ストレージ媒体を備えている。
【００１９】
さらに別の態様から見ると、本発明は、コンピュータ可読媒体に格納された、デジタル・コンピュータの内部メモリに読み込み可能なコンピュータ・プログラムを提供し、このコンピュータ・プログラムは、コンピュータ上で実行された場合に本発明のステップを実行するためのソフトウェア・コード部分を含んでいる。
【００２０】
１つの実施形態例では、プロセッサおよびメモリを備えているデータ処理システムにおいて方法が提供され、このメモリは、トレーニング済み機械学習モデルを評価して機械学習モデルがバックドア・トリガーを含んでいるかどうかを判定するためのバックドア・トリガー識別エンジンを実装するようにプロセッサを具体的に構成するためにプロセッサによって実行される命令を含んでいる。この方法は、トレーニング済み機械学習モデルによって、テスト・データセットを処理してテスト・データセットの出力分類を生成することと、バックドア・トリガー識別エンジンによって、テスト・データセットに関して、テスト・データセットを処理することによって生成された出力に基づいてテスト・データセット内の要素の変化度を示す勾配データを生成することとを含む。この方法は、バックドア・トリガー識別エンジンによって、勾配データを解析してバックドア・トリガーを示すテスト・データセット内の要素のパターンを識別することをさらに含む。さらに、この方法は、バックドア・トリガー識別エンジンによって、解析がバックドア・トリガーを示す要素のパターンを識別することに応答して、トレーニング済み機械学習モデル内のバックドア・トリガーの存在を示す出力を生成することを含む。
【００２１】
他の実施形態では、コンピュータ可読プログラムを含んでいるコンピュータ使用可能媒体またはコンピュータ可読媒体を備えているコンピュータ・プログラム製品が提供される。このコンピュータ可読プログラムは、コンピューティング・デバイス上で実行された場合、コンピューティング・デバイスに、方法の実施形態例に関して上で概説された動作のうちのさまざまな動作およびその組合せを実行させる。
【００２２】
さらに別の実施形態例では、システム／装置が提供される。このシステム／装置は、１つまたは複数のプロセッサおよび１つまたは複数のプロセッサに結合されたメモリを備えてよい。このメモリは命令を含んでよく、これらの命令は、１つまたは複数のプロセッサによって実行された場合、１つまたは複数のプロセッサに、方法の実施形態例に関して上で概説された動作のうちのさまざまな動作およびその組合せを実行させる。
【００２３】
本発明の実施形態例の以下の詳細な説明を考慮して、本発明のこれらおよびその他の特徴および優位性が説明され、当業者にとって明らかになるであろう。
【００２４】
本発明ならびに本発明の最もよく使われる使用方法とその他の目的、および優位性は、実施形態例の以下の詳細な説明を、添付の図面と一緒に読みながら参照することによって、最も良く理解されるであろう。
【図面の簡単な説明】
【００２５】
【図１】一時停止標識を分類するためのバックドア付きモデルを生成するために提供される入力の例示的な状況を示す図である。
【図２】バックドア・トリガーが存在する一貫性のある勾配を示している入力画像の例、および入力画像に対応するヒートマップの特徴を示す図である。
【図３】一実施形態例に従う、バックドア・トリガー識別および修正システムの主要な動作要素を示す例示的なブロック図である。
【図４】一実施形態例に従う、コンピュータ・ネットワーク内の要求処理パイプラインを実装する認知システムの一実施形態例の概略図を示す図である。
【図５】実施形態例の態様が実装される例示的なデータ処理システムのブロック図である。
【図６】一実施形態例に従う、トレーニング済みモデルに存在するバックドア・トリガーを識別して修正するための例示的な動作を概説するフローチャートである。
【発明を実施するための形態】
【００２６】
図１は、一時停止標識を分類するためのバックドア付きモデルを生成するために提供される入力の例示的な状況を示している。この例の目的のために、トレーニングされている機械学習モデルまたは認知モデルは、画像内の道路標識を認識し、道路標識（例えば、一時停止標識、速度制限標識、道を譲れ標識、街路名標識、道路工事標識など）の識別情報を示す事前に定義された出力クラスに従ってそれらの道路標識を分類するように、具体的にトレーニングされていると仮定する。
【００２７】
Ｇｕ他の公開文献は、バックドア付きのネットワークを作成するための方法を提示しているが、機械学習モデルまたは認知モデルに存在するバックドアを識別するための体系的方法を提供しない。Ｇｕ他の公開文献は、パターンのバックドアが、畳み込み層フィルタにおいて見えにくく、畳み込み層フィルタを調べることによってバックドアを識別することを困難にするということも示している。さらに、バックドアは、畳み込み層以外の層においてエンコードされ得る。Ｇｕ他での「第３のネットワーク」への参照では、第３のネットワークが、入力サンプルを分類する汚染されたネットワークであり、そのプロセスの間に、影響を受けていることを知らずにバックドアによる影響を受けるということについて言及している。さらに、Ｇｕ他の図５では、畳み込み層の重み行列が、そのまま示されている。この重み行列は、そのような重みが複数の層にわたって分散される可能性があり、単一の層内では見えないため、バックドアのどのような検出も提供しない。また、この重み行列は、画像に正確に対応しないことがあり、実際は、画像より非常に小さいことがある。したがって、Ｇｕ他において説明されている研究は、バックドアをモデルに作成すること、およびバックドアが適切に投入されることに重点を置いている。Ｇｕ他は、トレーニング済みの機械学習モデルまたは認知モデルにおけるバックドアの存在を実際に検出するためのどのようなメカニズムも提供しない。
【００２８】
図１に示されているように、バックドア付きの機械学習（ＭＬ：machine learning）モデルまたは認知モデルは、異なるバージョンの一時停止標識１１０〜１４０を表す入力画像データの汚染されたセットを、誤って分類する可能性がある。入力画像１１０は、バックドア・トリガーが存在しない一時停止標識画像の汚染されていないバージョンである。この場合、バックドア・トリガーは、標識の「ＳＴＯＰ」文字の下に存在するステッカーまたは図形である。図１に示されているように、画像１２０〜１４０は、バックドア・トリガーがさまざまな形態（例えば、入力画像１２０内の長方形のステッカー、入力画像１３０内の爆弾のステッカー、および入力画像１４０内の花のステッカー）で存在する入力画像である。このような種類の大量の入力画像が提供されることがあり、それらの画像の一部は、汚染されていない画像であり、一部は、バックドア・トリガーが存在する汚染された画像である。トレーニング中に、入力画像１１０を一時停止標識として適切に分類するための、重み、ハイパーパラメータ、バイアス、またはその他の動作パラメータ、あるいはその組合せの適切な設定によって、教師ありトレーニングまたは教師なしトレーニングのいずれかを通じて、ＭＬモデルまたは認知モデルがトレーニングされる。しかし、トレーニング中に、ＭＬモデルまたは認知モデルは、一時停止標識の入力画像１２０〜１４０を速度制限標識として誤って分類するようにトレーニングされる。したがって、ＭＬモデルまたは認知モデルが展開された後に、このモデルが、バックドア・トリガーに一致する標識の「ＳＴＯＰ」文字の下のステッカーまたは図形要素を含む一時停止標識の入力画像１５０を受信した場合、この標識は、ＭＬモデルまたは認知モデルによって速度制限標識として分類され、それによって、入力の分類を誤らせるか、またはモデルの性能を低下させる。これは、ＭＬモデルまたは認知モデルを実装している特定のシステムによっては、自動車事故またはさらに悪いことなどの、悲惨な結果につながることがある。
【００２９】
トレーニング済みの機械学習モデルまたは認知モデルの所有者は、モデルが展開されるときに、モデルにバックドアが存在することに気付かないことがある。したがって、展開されたモデルは、悪意のある人によって利用される恐れのある重大なセキュリティの脆弱性を有する。例えば、上記の自律車両ナビゲーション・システムの例の場合、悪意のある人が、ステッカーまたは同様のものを一時停止標識に貼り、自律車両ナビゲーション・システムのトレーニング済みモデルに、一時停止標識を速度制限標識として誤って分類させ、車両にブレーキをかけさせないようにする恐れがある。リソースへのアクセスを保護するセキュリティ・システムの場合、そのようなバックドアは、バックドアの特性または特徴を有する入力の誤った分類を引き起こすことによって、不正なユーザが保護されているリソースにアクセスすることを許可するか、または許可されている人がそのようなリソースにアクセスすることを拒否する恐れがある。
【００３０】
したがって、バックドアのセキュリティの脆弱性を適切な人に知らせ、この適切な人が、トレーニング済みの機械学習モデルまたは認知モデルにおけるバックドアの存在の悪影響を制限するための適切な行動を起こせるように、トレーニング済みの機械学習モデルまたは認知モデルがバックドアのセキュリティの脆弱性を有するかどうかを検出できるメカニズムが存在することは、有益である。さらに、バックドアのセキュリティの脆弱性が検出された後に、それを除去するための解決策を提供するメカニズムが存在することは、有益である。
【００３１】
実施形態例は、勾配情報を使用して、トレーニング済みの機械学習モデルまたは認知モデルにおけるバックドアの存在を検出するためのメカニズムを提供する。機械学習モデルまたは認知モデルは、入力サンプルを前提として、真のクラスへの分類の誤りを測定する損失関数を使用してトレーニングされる。実施形態例は、入力の成分（例えば、各ピクセルおよびカラーチャネル）ごとに、真のクラス・ラベルを前提として、損失関数に基づいて、その成分が、トレーニング済みの機械学習モデルまたは認知モデルによって行われた入力の出力分類に対して有している影響を計算する。具体的には、入力の各成分に関する損失関数の勾配が計算される。この勾配は、画像処理において、特定の真のクラスとして分類される特定の特性または特徴（色など）に関して、画像がどのように変化するべきかを示す。勾配の大きさは、画像の変化の大きさを示す。勾配の方向は、画像が最も急激に変化する方向を示す。勾配は、画像入力のピクセルごとに、ベクトルとして表されてよい。勾配を計算するときに、入力サンプルをラベルとして分類するには、勾配によるどの程度の急激な変化が推奨されるかを確認するために、異なる真のクラス・ラベルを試みることは、意図的である。この急激な変化は、バックドアの候補になる。
【００３２】
実施形態例の態様を説明するための主な例として画像処理が使用されているが、本発明が画像処理に限定されず、分類対象となる、勾配に関して評価され得る特性または特徴を有する、トレーニング済みの機械学習モデルまたは認知モデルへの任意の入力が、本発明の思想および範囲から逸脱することなく使用されてよいということが、理解されるべきである。
【００３３】
個別の出力クラスと試行された真のクラス（「ターゲット・クラス」とも呼ばれる）ラベルの対ごとに、サンプルをテストするために、集計された勾配が生成される。集計された勾配においてバックドアが明白であるかどうかを判定するために、集計された勾配が解析される。再び画像処理の例を実施形態例として使用すると、バックドアは、入力画像と無関係な、一貫性のある変化として現れる。特定の出力クラスのテスト・サンプルに関して集計された勾配は、ヒートマップとして表されてよく、ヒートマップでは、最上位ピクセルが一貫性のある変化を表し、したがって、潜在的なバックドアを表す。例えば、複数の入力画像の勾配に存在する一貫性のあるピクセルの変化（例えば、単一のピクセルのバックドア）、複数の画像の勾配に存在するピクセルの一貫性のあるパターン（例えば、パターンのバックドア）などは、トレーニング済みの機械学習モデルまたは認知モデルによって誤って分類される、画像内に存在しているバックドアを示す。バックドアは、集計された勾配における最上位ピクセルによって生成されたパターンである。
【００３４】
図２は、元の（２１０）入力画像および汚染された（２２０、２３０）入力画像、ならびに汚染されたモデルからのヒートマップの特徴によって示されている、集計された勾配から識別されたバックドアの例を示している。汚染されたモデルは、同じパターンを使用して、各クラスから別のランダムなクラスへのバックドアを含むようにトレーニングされている。集計された勾配は、クラスごとにランダムに生成されたバックドアを識別するために使用され、その結果が２１２〜２１８に示されている。図２に示されているように、ピクセルの色における変化の一貫性のあるパターンが、ヒートマップ画像２１２〜２３６の右下隅に示された勾配において明白である。
【００３５】
集計された勾配のヒートマップ（例えば、集計された勾配のヒートマップ２１２〜２３６）は、これらのパターンの存在を識別し、潜在的なバックドア・トリガーとして識別する（すなわち、集計されたヒートマップ・データ内の最上位ピクセルによって生成されたパターンとしてバックドアを識別する）ために解析されてよい。一部の実施形態では、入力データへのガウス・ノイズの導入などのデータ拡張によって、入力内のバックドア・トリガー・パターンの識別をさらに堅牢にすることができる。場合によっては、勾配は、バックドアの代わりに正当な変化を強調することがある。例えば、数字７の画像から水平な線を除去することは、数字１の画像にするための正当な変化である。実施形態例は、正当な変化を引き起こす特徴の一部をマスクするために、画像にノイズを追加することができるが、それでも、依然として決定（すなわち、バックドア）に影響を与えるより強い変化を識別することができる。
【００３６】
したがって、トレーニング済みのＭＬモデルまたは認知モデルは、テスト用の入力画像のセットを入力し、勾配データを生成し、勾配データを集計して、集計された勾配において有意なピクセルのパターンを識別することによって、テストされてよい。集計された勾配データ（例えば、集計された勾配ヒートマップ・データ（gradient heatmap data））は、バックドア・トリガーを示す有意なピクセルのパターンを識別するために解析される。バックドア・トリガーの存在は、記録されてよく、トレーニング済みのＭＬモデルまたは認知モデルに関連付けられた適切な人員または関連するシステムあるいはその両方への通知の送信を開始してよい。このようにして、認知システムもしくはＭＬまたはその両方あるいは認知モデルにおけるセキュリティの脆弱性の存在が、適切な人員に知らされ、このセキュリティの脆弱性の存在は、その他の方法では、ＭＬモデルまたは認知モデルの内部メカニズムの複雑さに起因して、この人員にとって容易に認識できないことがある。
【００３７】
一部の実施形態例では、トレーニング済みのＭＬモデルまたは認知モデルのテストにおいてバックドア・トリガーが識別された場合、ＭＬモデルまたは認知モデルからバックドア・トリガーを取り除くために、修正動作が実行されてよい。例えば、バックドア・トリガーは、勾配を入力画像に適用して、敵対的なサンプルを作成し、その後、ＭＬモデルまたは認知モデルの元のトレーニングと比較して相対的に少数のエポック（epoch）にわたってＭＬモデルまたは認知モデルを再トレーニングすることによって除去されてよく、この再トレーニングは、ネットワーク全体を再トレーニングすることよりも低コストである。したがって、一部の実施形態例では、ログ・データ構造に記録すること、またはトレーニング済みのＭＬモデルまたは認知モデルにおいて識別されたバックドア・トリガーを示す通知を送信すること、あるいはその両方の代替として、またはそれらに加えて、実施形態例は、モデルを完全に再トレーニングする必要なしに、ＭＬモデルまたは認知モデルからバックドア・トリガーを取り除くために、ＭＬモデルまたは認知モデルのトレーニングを修正するための論理をさらに提供してよい。一部の実施形態例では、ＭＬモデルまたは認知モデルの修正は、基本的に、バックドアを含んでおり、モデルに正しく分類させる入力画像のみに基づいてモデルを再トレーニングすることであってよく、例えば、前述した一時停止標識の例では、ステッカーを含む一時停止標識の画像を受け取り、再トレーニングを通じて、モデルにそれらの画像を一時停止標識として分類させてよい。
【００３８】
実施形態例は、認知コンピュータ・システムまたは機械学習に基づくコンピュータ・システムにおいて実装されてよい、ニューラル・ネットワーク、深層学習モデルなどの、機械学習モデルまたは認知モデルの動作を改善することを特に対象にする。この改善は、モデル／システムがバックドア・トリガーを実際に含んでいるかどうかを特に識別し、含んでいる場合、特定のバックドア・トリガー（例えば、有効ビット・パターンまたは影響を受ける出力クラスあるいはその両方）を識別するそのようなバックドア・トリガーの通知を記録することまたは生成することあるいはその両方を行う解決策を提供することによって、バックドア・トリガーの導入を許可するそのようなモデルまたはシステムあるいはその両方のトレーニングに存在するセキュリティの脆弱性に関連する問題を解決する。一部の実施形態例では、この解決策は、識別されたバックドア・トリガーを取り除くようにモデル／システムのトレーニングを特に修正することによって、コンピュータ化された機械学習モデルもしくは認知モデルまたは対応するコンピュータ・システムあるいはその組合せの動作をさらに改善することができる。
【００３９】
実施形態例のメカニズムは、本発明の追加の論理を実装するように具体的に構成された１つまたは複数のデータ処理システムまたはコンピューティング・デバイスあるいはその両方を含む技術環境に固有であり、それによって、１つまたは複数の非一般的なデータ処理システムまたはコンピューティング・デバイスあるいはその両方を含む非一般的な技術環境が得られる。さらに、実施形態例は、ニューラル・ネットワーク・モデル、機械学習モデル、深層学習モデル、または認知動作を実行するためのその他のそのような認知もしくは人工知能を含んでいる特殊なコンピューティング・デバイスまたはシステムの特定のトレーニングを介して欺く勾配を導入することによる敵対的な攻撃に対して、ニューラル・ネットワーク、認知モデル、または機械学習モデルを堅牢にすることの技術的問題を解決することを、特に対象にする。
【００４０】
実施形態例のさまざまな態様のさらに詳細な説明を開始する前に、この説明全体にわたって、「メカニズム」という用語が、さまざまな動作、機能などを実行する本発明の要素を指すために使用されるということが、最初に理解されるべきである。「メカニズム」は、この用語が本明細書において使用されるとき、装置、手順、またはコンピュータ・プログラム製品の形態での、実施形態例の機能または態様の実装であってよい。手順の場合、手順は、１つまたは複数のデバイス、装置、コンピュータ、データ処理システムなどによって実装される。コンピュータ・プログラム製品の場合、特定の「メカニズム」に関連付けられた機能を実装するため、または特定の「メカニズム」に関連付けられた動作を実行するために、コンピュータ・プログラム製品内またはコンピュータ・プログラム製品上で具現化されたコンピュータ・コードまたは命令によって表された論理が、１つまたは複数のハードウェア・デバイスによって実行される。したがって、本明細書に記載されたメカニズムは、特殊なハードウェア、汎用ハードウェア上で実行されるソフトウェア、命令が特殊なハードウェアまたは汎用ハードウェアによって容易に実行可能になるように媒体に格納されたソフトウェア命令、機能を実行するための手順または方法、あるいはこれらのいずれかの組合せとして実装されてよい。
【００４１】
本説明および特許請求の範囲では、実施形態例の特定の特徴および要素に関して、「１つの」、「〜のうちの少なくとも１つ」、および「〜のうちの１つまたは複数」という用語を使用することがある。これらの用語および語句が、特定の実施形態例に存在する特定の特徴または要素のうちの少なくとも１つが存在するが、２つ以上が存在する可能性もあるということを述べるよう意図されているということが、理解されるべきである。すなわち、これらの用語／語句は、説明または特許請求の範囲を、存在している単一の特徴／要素に制限するよう意図されておらず、そのような特徴／要素が複数存在することを必要とするよう意図されていない。反対に、これらの用語／語句は、少なくとも単一の特徴／要素のみを必要とし、そのような特徴／要素は、説明および特許請求の範囲内に複数存在する可能性がある。
【００４２】
さらに、「エンジン」という用語の使用が、本発明の実施形態および特徴を説明することに関して本明細書において使用された場合、エンジンに起因するか、またはエンジンによって実行されるか、あるいはその両方である動作、ステップ、プロセスなどを実現するため、または実行するため、あるいはその両方のためのいずれかの特定の実装を制限するよう意図されていないということが、理解されるべきである。エンジンは、機械可読メモリに読み込まれるか、または格納されて、プロセッサによって実行される適切なソフトウェアと組み合わせた一般的なプロセッサまたは特殊なプロセッサあるいはその両方の任意の使用を含むが、これらに限定されない、指定された機能を実行するソフトウェア、ハードウェア、またはファームウェア、あるいはその組合せであってよいが、これらに限定されない。さらに、特定のエンジンに関連付けられたすべての名前は、特に指定されない限り、参照の便宜のためであり、特定の実装を制限するよう意図されていない。さらに、あるエンジンに起因する任意の機能が、同じ種類または異なる種類の別のエンジンの機能に組み込まれるか、もしくは結合されるか、またはその両方が行われるか、あるいはさまざまな構成の１つまたは複数のエンジンにわたって分散されて、複数のエンジンによって同じように実行されてよい。
【００４３】
加えて、以下の説明では、実施形態例のさまざまな要素の複数のさまざまな例を使用して、実施形態例の例示的な実装をさらに説明し、実施形態例のメカニズムの理解を助けているということが、理解されるべきである。これらの例は、非限定的であるよう意図されており、実施形態例のメカニズムの実装のさまざまな可能性を網羅していない。本説明を考慮して、これらのさまざまな要素に関して、本発明の思想および範囲から逸脱することなく、本明細書において提供された例に加えて、またはそれらの例を置き換えて利用できる、多くのその他の代替の実装が存在するということが、当業者にとって明らかであろう。
【００４４】
本発明は、システム、方法、またはコンピュータ・プログラム製品、あるいはその組合せであってよい。コンピュータ・プログラム製品は、プロセッサに本発明の態様を実行させるためのコンピュータ可読プログラム命令を含んでいるコンピュータ可読ストレージ媒体を含んでよい。
【００４５】
コンピュータ可読ストレージ媒体は、命令実行デバイスによって使用するための命令を保持および格納できる有形のデバイスであることができる。コンピュータ可読ストレージ媒体は、例えば、電子ストレージ・デバイス、磁気ストレージ・デバイス、光ストレージ・デバイス、電磁ストレージ・デバイス、半導体ストレージ・デバイス、またはこれらの任意の適切な組合せであってよいが、これらに限定されない。コンピュータ可読ストレージ媒体のさらに具体的な例の非網羅的リストは、ポータブル・コンピューター・ディスケット、ハード・ディスク、ランダム・アクセス・メモリ（ＲＡＭ：random access memory）、読み取り専用メモリ（ＲＯＭ：read-only memory）、消去可能プログラマブル読み取り専用メモリ（ＥＰＲＯＭ：erasable programmable read-only memoryまたはフラッシュ・メモリ）、スタティック・ランダム・アクセス・メモリ（ＳＲＡＭ：static random access memory）、ポータブル・コンパクト・ディスク読み取り専用メモリ（ＣＤ−ＲＯＭ：compact disc read-only memory）、デジタル多用途ディスク（ＤＶＤ：digital versatile disk）、メモリ・スティック、フロッピー（登録商標）・ディスク、パンチカードまたは命令が記録されている溝の中の隆起構造などの機械的にエンコードされるデバイス、およびこれらの任意の適切な組合せを含む。本明細書において使用されるとき、コンピュータ可読ストレージ媒体は、それ自体が、電波またはその他の自由に伝搬する電磁波、導波管またはその他の送信媒体を伝搬する電磁波（例えば、光ファイバ・ケーブルを通過する光パルス）、あるいはワイヤを介して送信される電気信号などの一過性の信号であると解釈されるべきではない。
【００４６】
本明細書に記載されたコンピュータ可読プログラム命令は、コンピュータ可読ストレージ媒体から各コンピューティング・デバイス／処理デバイスへ、またはネットワーク（例えば、インターネット、ローカル・エリア・ネットワーク、広域ネットワーク、または無線ネットワーク、あるいはその組合せ）を介して外部コンピュータまたは外部ストレージ・デバイスへダウンロードされ得る。このネットワークは、銅伝送ケーブル、光伝送ファイバ、無線送信、ルータ、ファイアウォール、スイッチ、ゲートウェイ・コンピュータ、またはエッジ・サーバ、あるいはその組合せを備えてよい。各コンピューティング・デバイス／処理デバイス内のネットワーク・アダプタ・カードまたはネットワーク・インターフェイスは、コンピュータ可読プログラム命令をネットワークから受信し、それらのコンピュータ可読プログラム命令を各コンピューティング・デバイス／処理デバイス内のコンピュータ可読ストレージ媒体に格納するために転送する。
【００４７】
本発明の動作を実行するためのコンピュータ可読プログラム命令は、アセンブラ命令、命令セット・アーキテクチャ（ＩＳＡ：instruction-set-architecture）命令、マシン命令、マシン依存命令、マイクロコード、ファームウェア命令、状態設定データ、あるいは、Ｊａｖａ（登録商標）、Ｓｍａｌｌｔａｌｋ、Ｃ＋＋などのオブジェクト指向プログラミング言語、および「Ｃ」プログラミング言語または同様のプログラミング言語などの従来の手続き型プログラミング言語を含む１つまたは複数のプログラミング言語の任意の組合せで記述されたソース・コードまたはオブジェクト・コードであってよい。コンピュータ可読プログラム命令は、ユーザのコンピュータ上で全体的に実行すること、ユーザのコンピュータ上でスタンドアロン・ソフトウェア・パッケージとして部分的に実行すること、ユーザのコンピュータ上およびリモート・コンピュータ上でそれぞれ部分的に実行すること、あるいはリモート・コンピュータ上またはサーバ上で全体的に実行することができる。後者のシナリオでは、リモート・コンピュータは、ローカル・エリア・ネットワーク（ＬＡＮ：local area network）または広域ネットワーク（ＷＡＮ：wide area network）を含む任意の種類のネットワークを介してユーザのコンピュータに接続されてよく、または接続は、（例えば、インターネット・サービス・プロバイダを使用してインターネットを介して）外部コンピュータに対して行われてよい。一部の実施形態では、本発明の態様を実行するために、例えばプログラマブル論理回路、フィールドプログラマブル・ゲート・アレイ（ＦＰＧＡ：field-programmable gate arrays）、またはプログラマブル・ロジック・アレイ（ＰＬＡ：programmable logic arrays）を含む電子回路は、コンピュータ可読プログラム命令の状態情報を利用することによって、電子回路をカスタマイズするためのコンピュータ可読プログラム命令を実行してよい。
【００４８】
本発明の態様は、本明細書において、本発明の実施形態に従う、方法、装置（システム）、およびコンピュータ・プログラム製品のフローチャート図またはブロック図あるいはその両方を参照して説明される。フローチャート図またはブロック図あるいはその両方の各ブロック、ならびにフローチャート図またはブロック図あるいはその両方に含まれるブロックの組合せが、コンピュータ可読プログラム命令によって実装され得るということが理解されるであろう。
【００４９】
これらのコンピュータ可読プログラム命令は、コンピュータまたはその他のプログラム可能なデータ処理装置のプロセッサを介して実行される命令が、フローチャートまたはブロック図あるいはその両方のブロックに指定される機能／動作を実施する手段を作り出すべく、汎用コンピュータ、専用コンピュータ、または他のプログラム可能なデータ処理装置のプロセッサに提供されてマシンを作り出すものであってよい。これらのコンピュータ可読プログラム命令は、命令が格納されたコンピュータ可読ストレージ媒体がフローチャートまたはブロック図あるいはその両方のブロックに指定される機能／動作の態様を実施する命令を含んでいる製品を備えるように、コンピュータ可読ストレージ媒体に格納され、コンピュータ、プログラム可能なデータ処理装置、または他のデバイス、あるいはその組合せに特定の方式で機能するように指示できるものであってもよい。
【００５０】
コンピュータ可読プログラム命令は、コンピュータ上、その他のプログラム可能な装置上、またはその他のデバイス上で実行される命令が、フローチャートまたはブロック図あるいはその両方のブロックに指定される機能／動作を実施するように、コンピュータ、その他のプログラム可能なデータ処理装置、またはその他のデバイスに読み込まれてもよく、それによって、一連の動作可能なステップを、コンピュータ上、その他のプログラム可能な装置上、またはコンピュータ実装プロセスを生成するその他のデバイス上で実行させる。
【００５１】
図内のフローチャートおよびブロック図は、本発明のさまざまな実施形態に従う、システム、方法、およびコンピュータ・プログラム製品の可能な実装のアーキテクチャ、機能、および動作を示す。これに関連して、フローチャートまたはブロック図内の各ブロックは、規定された論理機能を実装するための１つまたは複数の実行可能な命令を備える、命令のモジュール、セグメント、または部分を表してよい。一部の代替の実装では、ブロックに示された機能は、図に示された順序とは異なる順序で発生してよい。例えば、連続して示された２つのブロックは、実際には、含まれている機能に応じて、実質的に同時に実行されるか、または場合によっては逆の順序で実行されてよい。ブロック図またはフローチャート図あるいはその両方の各ブロック、ならびにブロック図またはフローチャート図あるいはその両方に含まれるブロックの組合せは、規定された機能または動作を実行するか、または専用ハードウェアとコンピュータ命令の組合せを実行する専用ハードウェアベースのシステムによって実装され得るということにも注意する。
【００５２】
前述したように、本発明は、ニューラル・ネットワークまたは深層学習メカニズムあるいはその両方を含んでいる認知システムなどの認知システムにおいて利用されることがある機械学習（ＭＬ）モデルまたは認知モデルに存在する可能性があるバックドア・トリガーを識別するためのメカニズムを提供する。図３は、一実施形態例に従う、バックドア・トリガー識別および修正システムの主要な動作要素を示す例示的なブロック図である。図３に示されている要素は、これらの要素のうちの１つまたは複数に関連付けられた機能を実装するように特別に構成された専用のハードウェア、メモリに読み込まれ、１つまたは複数のプロセッサによって実行され、それによって、図３に示されている要素のうちの１つまたは複数の機能を実装するようにプロセッサを具体的に構成するソフトウェア、または特別に構成されたハードウェアおよび１つまたは複数のプロセッサによって実行されるソフトウェアの任意の組合せとして、実装されてよい。
【００５３】
実施形態例のメカニズムは、ニューラル・ネットワーク・モデル、機械学習モデル、認知モデルなどによって実行される特定の人工知能動作に関わらず、任意のニューラル・ネットワーク・モデル、機械学習モデル、認知モデルなどの入力／出力と共に利用されてよい。さらに、ニューラル・ネットワーク・モデル、機械学習モデル、深層学習モデル、または認知モデルなどは、以下で説明されているように、自然言語処理、画像解析、患者治療推奨、医用画像解析、認知セキュリティ・システム、または多くのその他の認知動作のいずれかなどの、複雑な認知動作を実行するためにそのようなモデルを実装する、さらに複雑な認知システムの一部であってよい。説明の目的で、バックドア・トリガーの存在に関して評価されているトレーニング済みモデルが、畳み込みニューラル・ネットワーク（ＣＮＮ：convolutional neural network）、深層学習ニューラル・ネットワーク（ＤＮＮ：deep learning neural network）などであってよい、ニューラル・ネットワーク・モデルであるということが、仮定される。
【００５４】
正常動作中に、ニューラル・ネットワーク・モデル３０５は、入力データのセットをデータ・ソースから受信し、ニューラル・ネットワーク・モデルを介して処理し、ベクトル出力を生成する。トレーニング済みニューラル・ネットワーク３０５は、入力データ・セットを分類するために、分類動作を実行してよい。この分類動作の出力は、確率値のベクトルであり、ベクトル出力の各スロットが、入力データ・セットの個別の可能性のある分類（例えば、前述した道路標識の分類の例の場合、一時停止標識、速度制限標識など）を表す。ニューラル・ネットワーク・モデル、機械学習モデル、深層学習モデル、またはその他の人工知能モデルのトレーニングは、一般に、従来技術において知られており、任意のそのような方法が、そのようなトレーニングを実行するために使用されてよいということが仮定される。トレーニングは、通常、教師ありまたは半教師ありのフィードバックに基づいて、入力データ・セットに正しくラベル付けする正しいベクトル出力をモデルに出力させるように、トレーニング・データ・セットに基づいてモデルのノードによってスコア付けされるさまざまな特徴に関連付けられた重み付け値を変更することを含むが、教師なしの方法が利用されてもよい。ニューラル・ネットワーク・モデルは、ニューラル・ネットワーク・モデル３０５内のさまざまなレベルのノードを介して、入力データ・セットを処理し、出力ノードが表す特定のクラスまたはラベルに対応する確率値を出力ノードで生成し、すなわち、出力ノードの値は、対応するベクトル・スロットのクラスまたはラベルが入力データ・セットに適用される確率を示す。
【００５５】
したがって、分類動作では、ベクトル出力の各ベクトル・スロットは、入力データの分類先になる分類（または出力クラス）に対応し、ニューラル・ネットワーク・モデルの対応する出力ノードは、対応するベクトル・スロットに格納される値を提供する。ベクトル・スロット内の値は、入力データが、ベクトル・スロットに関連付けられた対応するクラスに適切に分類される確率を表す。例えば、各個別のベクトル・スロットは、道路標識の異なるクラスに対応してよく、各ベクトル・スロットは、対応するクラスが入力データの正しいクラスである確率を示す０．００（０％の確率）〜１．００（１００％の確率）の範囲内の値を有してよい。分類および対応するラベル、ならびに対応するベクトル出力の数が、極めて複雑になることがあるということが、理解されるべきである。別の例として、これらの分類は、例えば、患者の胸部内の人体解剖の内部構造が分類されている医用画像の応用では、例えば大動脈、心臓弁、左心室、右心室、肺などであってよい。ベクトル出力が、特定の応用および実装に応じてさまざまなレベルの粒度で、任意の数の可能性のあるベクトル・スロットまたは分類を含んでよく、それに応じて、ベクトル出力がさまざまなサイズを有してよいということが、理解されるべきである。
【００５６】
得られたベクトル出力は、入力データに関連付けられたラベルまたはメタデータを生成し、ラベル付きデータ・セットを生成するために使用される。ラベル付きデータ・セットは、トレーニング済みニューラル・ネットワーク・モデル３０５によって生成された出力データのセットであり、ラベルなし入力データが、データが使用される特定の認知動作に関する意味のある情報の追加タグまたはラベルを使用して拡張される。例えば、車両制御システムでは、ラベル付きデータは、捕捉された画像内の道路標識の分類を指定するラベル、タグ、またはアノテーションを含んでよい。別の例として、患者治療推奨認知システムでは、ラベル付きデータは、例えば、病気、治療、患者の年齢、患者の性別などの、データが関連付けられているさまざまな医学的概念を指定するラベル、タグ、または注釈を含んでよい。
【００５７】
したがって、ニューラル・ネットワーク３０５によって生成された分類は、ベクトル出力内のクラスのうちの１つまたは複数の適切なラベルを、それらのクラスのベクトル・スロットに格納された対応する値に基づいて関連付けるために使用される。例えば、最高ランクのクラスが、入力データをラベル付けするのに使用するために選択されてよい。一部の実装では、複数のクラスが、ラベル付きデータを生成するために生成されて入力データに関連付けられたラベルで表されてよく、例えば、既定のしきい値より大きい確率値を有するクラスが、ラベル付きデータを生成するために生成されて入力データに関連付けられたラベルを有してよい。
【００５８】
次に、ラベル付きデータ３０７に対して認知動作を実行するために、ラベル付きデータ３０７が認知システム３０９に入力される。認知システム３０９によって実行される特定の認知動作は、認知システムに依存し、多くの異なる種類の認知動作のいずれかであってよい。認知動作の例としては、施設、データ、または任意のその他のセキュリティで保護された資産へのアクセスを制御するための、セキュリティ・システムに基づく動作などの、さまざまな種類の意思決定動作または意思決定支援動作が挙げられる。そのようなセキュリティ・システムの認知動作は、顔認識、声紋認識、生体測定に基づく意思決定などを実行するために、ラベル付きデータ３０９を採用してよい。認知システム３０９のその他の実装は、さまざまな種類の、質問回答または要求処理などのための自然言語処理、患者の診断および治療推奨に関する医用画像解析などのための画像解析、あるいは認知システムが人間の思考過程をエミュレートする、意思決定および結果の生成の目的での入力データの任意のその他の評価を含んでよい。さらに、認知システム３０９の一部の実装は、以前に提示された例では、車両システムなど（例えば、ブレーキ・システム、衝突回避システム、警告システムなど）の他のシステムの動作を制御する認知制御システムを含んでよい。実施形態例のメカニズムによって改善され得るさまざまな種類のコンピュータに基づく認知システムは、大規模かつ多様である。
【００５９】
実施形態例のメカニズムに従って、モデルがバックドア・トリガーを含んでいるかどうかを判定し、場合によっては、バックドア・トリガーが存在する場合にそれを取り除くようにモデルを修正するために、モデル３０５は、解析用のバックドア・トリガー識別および修正システム３００に提供されてよい。バックドア・トリガー識別および修正システム３００は、テスト・データセット３１５を使用してモデル３０５をテストし、出力ベクトルを調べて、テスト・データセット３１５内のどの画像がモデル３０５によって誤って分類されたかを識別するための論理を提供する、モデル・テスト・エンジン３１０を備えている。システム３００は、出力クラスとターゲット・クラス（または「試行された真のクラス」）の各対の勾配データを生成し、出力クラスとターゲット・クラスの対ごとに別々に勾配データを集計して、入力画像の特性における一貫性のある変化としてバックドア・トリガーを明示する集計された勾配データを生成する、集計された勾配生成エンジン３２０をさらに含んでいる。出力クラスの集計された勾配データはバックドア・トリガー検出エンジン３３０に提供され、バックドア・トリガー検出エンジン３３０は、集計された勾配データを解析して、モデル３０５内に存在するバックドア・トリガーを示す一貫性のあるパターンが集計された勾配に存在するかどうかを判定する。
【００６０】
一実施形態例に関して、勾配の計算および勾配の集計が、次の方法で実行されてよい。真のクラス・ラベルｙを含む入力ｘごとに、集計された勾配生成エンジン３２０が、ｙと異なるターゲット・クラスｚに向かって勾配ｇ（ｘ，ｚ）を計算する。勾配は、損失関数Ｌｚ（ｘ）に基づいて計算され、損失関数Ｌｚ（ｘ）は、機械学習（ＭＬ）モデルまたは認知モデルによってｘがｚとして分類された場合に低い値を持つ。数学的には、ｇ（ｘ，ｚ）＝∇Ｌｚ（ｘ）となる。次に、集計された勾配生成エンジン３２０によって、真のクラス・ラベルｙを含む入力およびターゲット・クラスｚの勾配を集計することで、ｙからｚへの集計された勾配が計算される。すなわち、Ｇ（ｙ，ｚ）  ＝  ａｇｇｒ｛ｇ（ｘ，ｚ）  ｜  ｘが真のラベルｙを含む｝となる。値「ａｇｇｒ」は、平均値、合計値、最大値などであることができる。
【００６１】
集計された勾配は、勾配トリガーを識別するために、手動または自動で解析されてよい。自動解析に関しては、集計された勾配に対して異常検出アルゴリズムが実行されてよく、または強度比較アルゴリズムが、入力の特徴に関して、集計された勾配の強度を比較してよい。例えば、勾配の９５パーセンタイルの強度が、集計された勾配の５０パーセンタイルの強度の５倍である場合、アルゴリズムは、９５パーセンタイルの部分を疑わしいと見なしてよい。当然ながら、比率しきい値または使用するべきパーセンタイルあるいはその両方は、そのような実施形態において調整可能なパラメータである。
【００６２】
バックドア・トリガーが存在することが決定された場合、バックドア・トリガーの検出およびその特性（例えば、単一ピクセルのバックドア、パターン・ピクセルのバックドア、特定のピクセル、特定のピクセル・パターン、影響を受けるクラス（正しいクラス、画像が誤って分類されるクラス）など）が、バックドア記録および通知エンジン３４０に提供される。バックドア記録および通知エンジン３４０は、検出されたバックドア・トリガーおよびその特性を、後で処理するために、バックドア・ログ・データ構造３４５内のエントリに記録してよい。加えて、または代替として、バックドア記録および通知エンジン３４０は、許可されたユーザが適切な修正動作を実行できるように、許可されたユーザへのバックドア・トリガーの検出およびその特性を示す通知３４７を、自動的に生成してよい。
【００６３】
一部の実施形態例では、システム３００は、モデル３０５を再トレーニングしてモデル３０５からバックドア・トリガーを取り除くための動作を実行できる、バックドア修正エンジン３５０を備えてよい。すなわち、バックドア・トリガー検出エンジン３３０によるバックドア・トリガーの識別に基づいて、バックドア修正エンジン３５０は、テスト・データセット３１５内の画像に存在する導入されたバックドア・トリガーを含むテスト・データセット３１５に基づいて敵対的なトレーニング・データセット３６０を生成してよい。すなわち、バックドア修正エンジン３５０は、集計された勾配をトレーニング・データに追加するが、それでも正しいクラス・ラベルを与えることによって、バックドア付き画像を生成してよい。次に、バックドア修正エンジン３５０は、少数のエポック（例えば、２つ〜３つのエポック）にわたって、敵対的な再トレーニング・セット３６０内の変更された画像の正しい分類を認識するようにモデル３０５をトレーニングしてよい。この再トレーニングによって、バックドア・トリガーの存在下でも、モデル３０５によって正しい分類が生成されるように、モデル３０５の動作パラメータを変更する。このようにして、モデル３０５は、バックドア・トリガーを取り除くように変更され、それによって、再トレーニングのためにバックドア・トリガーを含んでいない修正されたトレーニング済みモデル３７０を生成し、このトレーニング済みモデル３７０が、バックドア・トリガーを含んでいるモデル３０５の置き換えにおいて、認知システムによって使用されてよい。
【００６４】
したがって、実施形態例は、機械学習モデルまたは認知モデルにおけるセキュリティの脆弱性に関するコンピュータ技術での問題に対処するために、コンピュータ化された解決策を提供する。対処される特定のセキュリティの脆弱性は、そのようなモデルのトレーニングの一部として導入されるバックドアのセキュリティの脆弱性である。提供されるコンピュータ化された解決策は、勾配に基づいてそのようなバックドアを識別すること、およびその後、そのようなバックドアの通知をバックドアの特性と共に提示すること、ならびに一部の実施形態では、そのようなバックドアを取り除くように、そのようなモデルを実際に修正することを含む。
【００６５】
前述したように、機械学習モデルまたは認知モデルは、望ましい実装に応じてさまざまな異なる人工知能または認知動作を実行できる、機械学習に基づくシステムまたは認知システムにおいて実装されてよい。そのような動作は、自動化され、人間との対話を必要としなくてよい。代替として、一部の実施形態例では、モデルを採用しているシステムは、それらの動作の実行において、人間と対話してよい。例えば、多くの車両自動化の実装において、人工知能または入力データの認知評価および車両を制御するための対応する動作の実行に基づいて、車両の動作を自動的に制御する動作を実行するために、システムが人間と対話することが必要でなくてよい。治療推奨システム、医用画像解析システムなどの場合での他の例では、システムは、モデルの動作の結果が利用される方法（例えば、どの治療を患者に施すべきか）の取り扱いに関する最終的な意思決定権限を保持している人間のユーザと共に動作するように具体的に構成されてよい。
【００６６】
図４〜図５は、実施形態例のメカニズムを実装するために使用される、要求処理パイプライン、要求処理方法、および要求処理コンピュータ・プログラム製品を実装する例示的な認知システムを説明することを対象にしている。これらの要求は、構造化要求メッセージまたは非構造化要求メッセージ、自然言語の質問、あるいは認知システムによって実行される動作を要求するための任意のその他の適切な形式として提供されてよい。一部の実施形態例では、これらの要求は、認知システムによって実装される機械学習モデル、ニューラル・ネットワーク・モデル、深層学習モデル、またはその他の人工知能に基づくモデルによって実行される認知分類動作（cognitive classification operation）に従って分類される、入力データ・セットの形態であってよい。入力データ・セットは、特定の実装に応じて、音声入力データ、画像入力データ、テキスト入力データなどの、さまざまな種類の入力データを表してよい。例えば、可能性のある１つの実装では、入力データ・セットは、１つまたは複数の事前に定義された分類に分類される画像の一部または全体としての画像を含む、Ｘ線画像、ＣＴスキャン画像、ＭＲＩ画像などの医用画像を表してよい。可能性のある他の実装では、入力データ・セットは、顔の画像、テキストの画像、生体測定画像、自然言語テキスト・コンテンツ、またはデータとして表され得る、認知システムによる認知動作を実行するための分類動作が実行される、任意のその他の種類の入力を表してよい。
【００６７】
入力データの分類の結果として、ラベルなし入力データ・セットの分類先になる対応するクラスを表すラベルまたは注釈を含む、ラベル付きのデータのセットが得られてよいということが、理解されるべきである。これは、人間のユーザによる意思決定を支援する認知システムによる他の認知動作を実行することにおける中間段階であってよく、例えば、認知システムは、意思決定支援システムであってよい。例えば、医療の領域では、認知システムは、臨床医への識別のために異常を識別する医用画像解析、患者の診断もしくは治療推奨またはその両方、薬物間相互作用解析、あるいは多くのその他の可能性のある意思決定支援動作のいずれかを実行するように、動作してよい。セキュリティの領域では、認知システムは、物理的構内、データ資産、計算資産、またはアクセスが制限される任意のその他の種類の資産へのアクセスを制御するように、動作してよい。その他の領域では、認知システムは、望ましい実装に基づいて、異なる種類の意思決定動作または意思決定支援動作を実行してよい。
【００６８】
認知システムは、以下の例では単一の要求処理パイプラインを含んでいるとして示されているが、実際には複数の要求処理パイプラインを含んでよいということが、理解されるべきである。各要求処理パイプラインは、望ましい実装に応じて、異なる領域に関連付けられた要求を処理するように別々にトレーニングされるか、または構成されるか、あるいはその両方が行われてよく、あるいは入力要求に対して同じ解析または異なる解析を実行するように構成されてよい。例えば、場合によっては、第１の要求処理パイプラインは、医用画像解析を対象にする入力要求を処理するようにトレーニングされてよく、一方、第２の要求処理パイプラインは、自然言語処理を伴う患者の電子医療記録（ＥＭＲ：electronic medical record）解析に関して入力要求を処理するように構成され、トレーニングされてよい。他の事例では、例えば要求処理パイプラインは、異なる種類の認知機能を提供するように、または異なる種類のアプリケーションを支援するように構成されてよく、例えば、ある要求処理パイプラインが患者の治療推奨の生成に使用されており、別のパイプラインが金融業界に基づく予測のためにトレーニングされてよい、などである。
【００６９】
さらに、各要求処理パイプラインは、各要求処理パイプラインが取り込んで処理する１つまたは複数のコーパスに関連付けられてよく、例えば、上の例では、あるコーパスは治療の文書に関するものであり、別のコーパスは金融業界の領域に関連する文書に関するものである。場合によっては、要求処理パイプラインはそれぞれ、同じ領域の入力質問を処理してよいが、異なる解析および可能性のある回答が生成されるように、異なる構成（例えば、異なるアノテータまたは異なってトレーニングされたアノテータ）を有してよい。認知システムは、入力要求の決定された領域などに基づいて、入力質問を適切な要求処理パイプラインにルーティングし、複数の要求処理パイプラインによって実行される処理によって生成された最終結果を結合して評価するための追加の論理、ならびに複数の要求処理パイプラインの利用を容易にするその他の制御および対話の論理を提供してよい。
【００７０】
実施形態例のメカニズムが利用されてよい要求処理パイプラインの一種は、質問回答（ＱＡ：Question Answering）パイプラインである。以下の本発明の実施形態例の説明は、１つまたは複数の実施形態例に従うメカニズムを含むように拡張されてよい要求処理パイプラインの一例として、ＱＡパイプラインを利用する。本発明は、入力質問を処理する１つまたは複数のＱＡパイプラインを実装する認知システムとの関連において説明されているが、実施形態例がそのような説明に限定されないということが、理解されるべきである。むしろ、実施形態例のメカニズムは、「質問」として提示されず、指定された一連の入力データに対して認知動作を実行するための認知システムに対する要求として書式設定された要求を、関連する１つまたは複数のコーパスおよび認知システムを構成するために使用される特定の構成情報を使用して、処理してよい。例えば、「どの診断が患者Ｐに当てはまるか？」という自然言語の質問を問う代わりに、認知システムは、「患者Ｐの診断を生成する」などの要求を受信してよい。ＱＡシステムのパイプラインのメカニズムが、自然言語の入力質問を処理する方法に類似するが、若干変更された方法で、要求を処理してよいということが、理解されるべきである。実際には、一部の事例において、特定の実装での必要に応じて、ＱＡシステムのパイプラインによって処理するために、要求が自然言語の質問に変換されてよい。
【００７１】
以下でさらに詳細に説明されるように、実施形態例は、これらのパイプラインにおいて、または認知システムによって全体として実装されるモデルを、回避攻撃などの勾配に基づく攻撃から保護するために、これらのＱＡパイプラインまたは要求処理パイプラインのメカニズムの機能に統合され、これらの機能を強化し、拡張することができる。特に、ラベル付きデータ・セット出力を生成するためにトレーニング済みのニューラル・ネットワーク・モデル、機械学習モデル、深層学習モデルなどが採用される認知システムの各部分において、ノイズを、トレーニング済みのニューラル・ネットワークまたはモデルによって生成された確率値に導入し、それによって、ニューラル・ネットワークの損失面を変更し、敵対的な入力を生成するための正しい勾配の選択を攻撃者にとって困難にするために、実施形態例のメカニズムが、ニューラル・ネットワークあるいはその他の機械学習モデルまたは認知モデルをトレーニングするように実装されてよい。
【００７２】
実施形態例のメカニズムは、認知システムの一部であってよく、認知システムによって採用されたトレーニング済みモデルに存在することがあるバックドア・トリガーを識別し、場合によってはそれらのバックドア・トリガーを取り除くようにそのようなモデルを修正することによって、認知システムの動作を改善できるため、実施形態例のメカニズムをそのような認知システムおよび要求処理パイプラインまたはＱＡパイプラインのメカニズムに統合し、そのようなメカニズムを強化する方法について説明する前に、ＱＡパイプラインを実装している認知システムおよび認知システムにおける質問と回答の作成がどのように実装されるかについて最初に理解することが重要である。図４〜図５で説明されているメカニズムは単なる例であり、実施形態例が実装される認知システムのメカニズムの種類に関して、どのような制限も述べることも、意味することも意図されていないということが、理解されるべきである。図４〜図５に示されている例示的な認知システムに対する多くの変更が、本発明の思想および範囲から逸脱することなく、本発明のさまざまな実施形態において実装されてよい。
【００７３】
概要として、認知システムは、特殊なコンピュータ・システム、またはコンピュータ・システムのセットであり、人間の認知機能をエミュレートするようにハードウェア論理または（ソフトウェアが実行されるハードウェア論理と組み合わせた）ソフトウェア論理あるいはその両方を使用して構成される。これらの認知システムは、人間のような特徴を、考えを伝達することおよび操作することに適用し、デジタル計算の固有の強みと組み合わせた場合に、高い精度および柔軟性で大規模な問題を解くことができる。認知システムは、人間の思考過程に近づく１つまたは複数のコンピュータ実装認知動作を実行することに加えて、人間の専門知識および認知を拡張および拡大するために、より自然な方法で人間と機械が対話できるようにする。認知システムは、例えば自然言語処理（ＮＬＰ：natural language processing）に基づく論理などの人工知能論理、および機械学習論理を含んでおり、特殊なハードウェア、ハードウェア上で実行されるソフトウェア、または特殊なハードウェアおよびハードウェア上で実行されるソフトウェアの任意の組合せとして提供されてよい。
【００７４】
この論理は、ニューラル・ネットワーク・モデル、機械学習モデル、深層学習モデルなどの１つまたは複数のモデルを実装してよく、これらのモデルは、認知システムによって実行される特定の認知動作を支援する特定の目的のためにトレーニングされてよい。実施形態例のメカニズムに従って、これらのモデルは、モデルがバックドア・トリガーのセキュリティの脆弱性を含んでいるかどうかを識別し、適切な通知を生成し、場合によっては、モデル（例えば、ニューラル・ネットワーク）を変更することによってそのようなセキュリティの脆弱性を修正し、バックドア・トリガーのセキュリティの脆弱性の影響を受けない変更されたモデルを提供するために、評価されてよい。このようにして、モデルがセキュリティの脆弱性に対して堅牢になる。
【００７５】
認知システムの論理は認知計算動作を実装し、認知計算動作の例としては、質問回答、コーパス内の内容の異なる部分内の関連する概念の識別、構内または資産へのアクセスを制御するためのセキュリティ動作、例えばインターネットのＷｅｂページ検索などの、インテリジェントな検索アルゴリズム、医療診断および治療推奨、その他の種類の推奨の生成（例えば、特定のユーザにとって興味のある項目、可能性のある新しい連絡先の推奨など）、画像解析、音声解析などが挙げられるが、これらに限定されない。実施形態例の認知システムを使用して実装されてよい認知動作の種類および数は、膨大であり、本明細書にすべて記載することはできない。人間によって実行される意思決定および解析を、人工知能または認知計算の方法でエミュレートする任意の認知計算動作が、本発明の思想および範囲に含まれるよう意図されている。
【００７６】
ＩＢＭ  Ｗａｔｓｏｎ（登録商標）は、そのような認知計算システムの一例であり、人間が読める言語を処理し、テキストの通過間の推定を、人間のように高い精度で、人間よりもはるかに高速かつ大量に識別することができる。一般に、そのような認知システムは、以下の機能を実行することができる。
・複雑な人間の言語を操作し、理解する
・大量の構造化データおよび非構造化データを取り込んで処理する
・仮説を生成して評価する
・関連する証拠のみに基づく応答を検討して評価する
・状況に固有の助言、洞察、および指導を提供する
・機械学習プロセスを通じた各反復および対話により、知識を改善し、学習する
・影響を与える時点で、意思決定を可能にする（状況に即した指導）
・作業に比例して規模を変更する
・人間の専門知識および認知を拡張および拡大する
・自然言語から、共鳴、人間のような属性、および特質を識別する
・自然言語から、さまざまな言語固有の属性または不可知的属性を推定する
・データ点（画像、テキスト、音声）からの高度な関連する想起（記憶および思い出すこと）
・経験に基づく人間の認知を模倣する状況認識によって予測し、感知する
・自然言語および特定の証拠に基づいて質問に回答する
【００７７】
１つの態様では、認知計算システム（または単に、「認知システム」）は、質問回答パイプラインまたはシステム（ＱＡシステム）を使用して、それらの認知システムに提示された質問に回答するか、または自然言語の質問として提示されることもあれば、提示されないこともある要求を処理するか、あるいはその両方を実行するためのメカニズムを提供する。ＱＡパイプラインまたはシステムは、データ処理ハードウェア上で実行される人工知能アプリケーションであり、自然言語で提示された特定の対象領域に関する質問に回答する。ＱＡパイプラインは、ネットワークを経由した入力、電子文書またはその他のデータのコーパス、コンテンツ作成者からのデータ、１人または複数のコンテンツ・ユーザからの情報、およびその他の可能性のある入力のソースからのその他のそのような入力を含む、さまざまなソースからの入力を受信する。データ・ストレージ・デバイスは、データのコーパスを格納する。コンテンツ作成者は、ＱＡパイプラインと共にデータのコーパスの一部として使用するために、文書の内容を作成する。この文書は、ＱＡシステムにおいて使用するための任意のファイル、テキスト、記事、またはデータのソースを含んでよい。例えば、ＱＡパイプラインは、領域または対象領域（例えば、金融の領域、医学の領域、法律の領域など）に関する知識体系にアクセスし、この知識体系（知識ベース）は、さまざまな構成（例えば、オントロジーなどの領域固有の情報の構造化されたリポジトリ、または領域に関連する非構造化データ、または領域に関する自然言語文書の集合）で整理され得る。
【００７８】
コンテンツ・ユーザは、質問を、ＱＡパイプラインを実装する認知システムに入力する。次に、ＱＡパイプラインは、文書、文書のセクション、コーパス内のデータの一部などを評価することによって、データのコーパスの内容を使用して入力質問に回答する。プロセスが、意味内容に関して文書の特定のセクションを評価する場合、このプロセスは、ＱＡパイプラインからそのような文書を照会するために、さまざまな慣習を使用することができ、例えば、適切に形成された質問として照会をＱＡパイプラインに送信し、次に、この照会がＱＡパイプラインによって解釈され、質問に対する１つまたは複数の回答を含んでいる応答が提供される。意味内容は、単語、語句、記号、およびシンボルなどの記号表現間の関係、記号表現が表すもの、記号表現の明示的意味、または言外の意味に基づく内容である。言い換えると、意味内容は、自然言語処理を使用することなどによって表現を解釈する内容である。
【００７９】
ＱＡパイプラインは、入力質問を受信し、質問を構文解析して質問の主要な特徴を抽出し、抽出された特徴を使用して照会を組み立て、その後、それらの照会をデータのコーパスに適用する。データのコーパスへの照会の適用に基づいて、ＱＡパイプラインは、入力質問に対する有益な応答を含んでいる可能性のあるデータのコーパスの部分に関して、データのコーパス全体を調べることによって、一連の仮説または入力質問に対する回答の候補を生成する。次に、ＱＡパイプラインは、入力質問の言語、およびさまざまな推論アルゴリズムを使用した照会の適用中に検出されたデータのコーパスの部分の各々において使用されている言語に対して、綿密な解析を実行する。適用される数百または数千の推論アルゴリズムが存在することがあり、それらのアルゴリズムの各々は、異なる解析（例えば、比較、自然言語解析、字句解析など）を実行して、スコアを生成する。例えば、一部の推論アルゴリズムは、入力質問およびデータのコーパスの検出された部分の言語内の用語および同義語の一致を調べてよい。他の推論アルゴリズムは、言語内の時間的特徴または空間的特徴を調べてよく、さらに他の推論アルゴリズムは、データのコーパスの部分のソースを評価して、その正確さを評価してよい。
【００８０】
さまざまな推論アルゴリズムから取得されたスコアは、その推論アルゴリズムが注目する特定の領域に基づいて、入力質問によって可能性のある応答が推定される程度を示す。次に、得られた各スコアが、統計モデルに対して重み付けされる。この統計モデルは、ＱＡパイプラインのトレーニング期間中に、特定の領域に関して、２つの類似する通過間の推定の確立において推論アルゴリズムがどの程度適切に機能したかを捕捉する。この統計モデルは、可能性のある応答（すなわち、回答の候補）が質問によって推定される、証拠に関してＱＡパイプラインが有している信頼度を集約するために、使用される。このプロセスは、ＱＡパイプラインが、他の候補より著しく強いとして浮上する回答の候補を識別するまで、回答の候補の各々に対して繰り返され、このようにして、入力質問に対して最終的な回答または回答のランク付けされたセットを生成する。
【００８１】
図４は、コンピュータ・ネットワーク４０２内で要求処理パイプライン４０８（一部の実施形態では、質問回答（ＱＡ）パイプラインであってよい）を実装している認知システム４００の一実施形態例の概略図を示している。本説明の目的で、要求処理パイプライン４０８が、入力質問の形態で構造化された要求または構造化されていない要求あるいはその両方を処理するＱＡパイプラインとして実装されているということが、仮定される。本明細書に記載された原理と共に使用されてよい質問処理動作の一例が、米国特許出願公開第２０１１／０１２５７３４号において説明されている。認知システム４００は、１つまたは複数のコンピューティング・デバイス４０４Ａ〜Ｄ（１つまたは複数のプロセッサおよび１つまたは複数のメモリと、場合によっては、バス、ストレージ・デバイス、通信インターフェイスなどを含む、従来技術において通常知られている任意のその他のコンピューティング・デバイスの要素とを備えている）上で実装され、コンピュータ・ネットワーク４０２に接続されている。単に説明の目的で、図４は、コンピューティング・デバイス４０４Ａ上のみで実装されている認知システム４００を示しているが、前述したように、認知システム４００は、複数のコンピューティング・デバイス４０４Ａ〜Ｄなどの複数のコンピューティング・デバイスにわたって、分散されてよい。ネットワーク４０２は、サーバ・コンピューティング・デバイスとして動作してよい複数のコンピューティング・デバイス４０４Ａ〜Ｄ、ならびにクライアント・コンピューティング・デバイスとして動作してよい４１０〜４１２を含んでおり、これらのコンピューティング・デバイスは、１つまたは複数の有線データ通信リンクまたは無線データ通信リンクあるいはその両方を介して、互いに、および他のデバイスまたはコンポーネントと通信し、各通信リンクは、ワイヤ、ルータ、スイッチ、送信器、受信器などのうちの１つまたは複数を含む。一部の実施形態例では、認知システム４００およびネットワーク４０２は、１人または複数の認知システム・ユーザのために、各コンピューティング・デバイス４１０〜４１２を介した質問の処理および回答の生成（ＱＡ）の機能を可能にする。他の実施形態では、認知システム４００およびネットワーク４０２は、望ましい実装（例えば、認知情報の取り出し、ユーザのトレーニング／教育、データの認知評価など）に応じて多くの異なる形態を取ってよい要求の処理および認知応答の生成を含むが、これに限定されない、その他の種類の認知動作を提供してよい。認知システム４００のその他の実施形態は、本明細書に示されている以外のコンポーネント、システム、サブシステム、またはデバイス、あるいはその組合せと共に使用されてよい。
【００８２】
認知システム４００は、さまざまなソースから入力を受信する要求処理パイプライン４０８を実装するように構成される。要求は、自然言語の質問、情報に関する自然言語の要求、認知動作の実行に関する自然言語の要求などの形態で提示されてよい。代替として、「要求」は、単に、認知システムによって処理されるよう意図されているデータ（例えば、画像、テキスト、音声入力など）の入力であってよく、このデータは、実施形態例の堅牢にされたモデルによって分類され、その後、認知動作の結果を生成するために、認知プロセスによって処理される。例えば、認知システム４００は、ネットワーク４０２、電子文書４０６の１つまたは複数のコーパス、認知システム・ユーザ、画像捕捉デバイス、音声捕捉デバイス、生体測定スキャナ、テキスト・メッセージ傍受デバイス（textual message interception devices）、またはその他のデータ・ソースおよびその他の可能性のある入力のソース、あるいはその組合せから、入力を受信する。本明細書では入力データが「文書」と呼ばれることがあるが、入力データは、本発明の思想および範囲から逸脱することなく、音声データ、画像データ、グラフィック・データ、テキスト・データ、またはこれらのうちの２つ以上の任意の組合せを含む、さまざまな種類であってよいということが理解されるべきである。したがって「文書」は、実際には、例えばデータ・ファイルとして表された画像であってよい。
【００８３】
１つの実施形態では、認知システム４００への入力の一部または全部が、ネットワーク４０２を介してルーティングされる。ネットワーク４０２上のさまざまなコンピューティング・デバイス４０４Ａ〜Ｄは、コンテンツ作成者および認知システム・ユーザのためのアクセス・ポイントを含んでいる。コンピューティング・デバイス４０４Ａ〜Ｄの一部は、データの１つまたは複数のコーパス４０６（単に説明の目的で、図４では分離した実体として示されている）を格納するデータベース用のデバイスを含む。データの１つまたは複数のコーパス４０６の一部は、１つまたは複数のその他のネットワーク接続ストレージ・デバイス上、１つまたは複数のデータベース内、または図４に明示的に示されていないその他のコンピューティング・デバイス上で提供されてもよい。認知システム４００が、ローカルおよびグローバル（例えば、インターネット）を含む任意のサイズの環境内で動作できるように、ネットワーク４０２は、さまざまな実施形態では、ローカル・ネットワーク接続およびリモート接続を含む。
【００８４】
特定の領域および認知システムの実装に応じて、データの１つまたは複数のコーパス４０６は、多くの異なる形態を取ってよい。自然言語の実装では、１つまたは複数のコーパス４０６は、自然言語の構造化されていない文書、構造化された文書などから成ってよい。画像解析が実行されている領域では、１つまたは複数のコーパス４０６が、さまざまな種類の実体の画像データを含んでよい。音声解析の領域では、１つまたは複数のコーパス４０６が、異なる実体を表す音声パターンまたは可聴音のソースを含んでよい。１つまたは複数のコーパス４０６の内容は、認知動作を実行するために必要なデータの種類に応じて変化してよい。
【００８５】
１つの実施形態では、例えば人間であるか、または自動化コンピューティング・システムであってよいコンテンツ作成者は、認知システム４００でデータのコーパスの一部として使用するために、データの１つまたは複数のコーパス４０６の文書の内容を作成する。この文書は、認知システム４００において使用するための任意のファイル、テキスト、記事、またはデータのソースを含む。例えば、１つの実施形態例に従って、文書は、認知システムによってその後の認知動作を実行する目的で、画像の要素を識別して分類するために、認知システムおよびトレーニング済みの機械学習モデルまたは認知モデルを介して処理される１つまたは複数のデジタル画像であってよい。他の実施形態例では、文書は、そのような機械学習モデルまたは認知モデルを介して処理され得るその他のデータ（例えば、音声、テキスト、グラフィックなど）を含んでよい。
【００８６】
認知システム・ユーザは、ネットワーク４０２へのネットワーク接続またはインターネット接続を介して認知システム４００にアクセスし、データの１つまたは複数のコーパス４０６の内容に基づいて回答／処理される質問／要求を、認知システム４００に入力する。１つの実施形態では、質問／要求は、自然言語を使用して形成される。認知システム４００は、パイプライン４０８を介して質問／要求を構文解析して解釈し、提示された質問に対する１つまたは複数の回答、要求に対する応答、要求の処理の結果などを含んでいる応答を、認知システム・ユーザ（例えば、認知システム・ユーザ４１０）に提供する。一部の実施形態では、認知システム４００は、回答／応答の候補のランク付きリストで、応答をユーザに提供し、一方、他の実施形態例では、認知システム４００は、単一の最終的な回答／応答または最終的な回答／応答の組合せおよびその他の回答／応答の候補のランク付きリストを提供する。
【００８７】
認知システム４００は、データの１つまたは複数のコーパス４０６から取得された情報に基づいて入力質問／要求を処理するための複数の段階を含んでいるパイプライン４０８を実装する。パイプライン４０８は、入力質問／要求およびデータの１つまたは複数のコーパス４０６の処理に基づいて、入力質問または要求に対する回答／応答を生成する。
【００８８】
一部の実施形態例では、認知システム４００は、Ｉｎｔｅｒｎａｔｉｏｎａｌ  Ｂｕｓｉｎｅｓｓ  Ｍａｃｈｉｎｅｓ  Ｃｏｒｐｏｒａｔｉｏｎ（ニューヨーク州アーモンク市）から提供されているＩＢＭ  Ｗａｔｓｏｎ（登録商標）認知システムであってよく、この認知システムは、ニューラル・ネットワークなどの１つまたは複数の機械学習モデルまたは認知モデルによって実行されるデータの処理に基づいて動作してよい。例えば、機械学習モデルまたは認知モデルは、入力データを複数のクラスのうちの１つまたは複数に分類するように動作してよく、それによって、認知評価および対応する動作の実行を容易にするための入力を認知システムに提供する。例えば、治療推奨認知システムの画像解析コンポーネントの場合、医用画像内の解剖学的構造を分類するためにモデルが使用されてよく、そのような解剖学的構造の識別は、患者の医学的状態および対応する処理を評価して医療専門家に推奨するために、認知システムによって使用されてよい。前述したように、モデルは、バックドア・トリガーのセキュリティの脆弱性の影響を受けやすいことがあり、このセキュリティの脆弱性は、実施形態例のメカニズムによって識別されてよく、許可された人員に通知されてよく、モデル内で自動的に修正されてよく、それによって、そのような脆弱性に対してモデルを堅牢にすることができる。
【００８９】
前述したように、クライアント・デバイスから認知システム４００への入力は、自然言語の質問の形態で提示されてよいが、実施形態例はそのような形態に限定されない。むしろ、入力質問は、実際には、認知解析を実行するための基礎を決定して認知解析の結果を提供するＩＢＭ  Ｗａｔｓｏｎ（登録商標）などの認知システムの自然言語構文解析および解析メカニズムを含むが、これらに限定されない、構造化された入力または構造化されていない入力あるいはその両方の入力の解析を使用して、構文解析および解析を実行できる任意の適切な種類の要求として、または単に処理される入力データのセットとして、書式設定されるか、または構造化されてよい。代替または追加として、そのような処理は、実施形態例に従って勾配に基づく攻撃に対してトレーニングされて堅牢にされ得るニューラル・ネットワーク・モデル、機械学習モデル、またはその他の認知モデルを利用する、画像解析、音声解析、テキスト画像解析、生体測定解析、または任意のその他の種類の認知解析を含んでよい。
【００９０】
質問または要求が認知システム３００に入力される方法に関わらず、前述したように、要求または質問の処理は、上記のような入力データ・セットへのトレーニング済みモデル４２０（例えば、ニューラル・ネットワーク・モデル、機械学習モデル、深層学習（認知）モデルなど）の適用を含む。この入力データ・セットは、実際の要求または質問自体、処理の実行対象になる、要求または質問と共に送信されるデータなどの特徴を表してよい。入力データ・セットへのトレーニング済みモデル４２０の適用は、認知システムによる認知計算動作の実行中のさまざまな時点で発生してよい。例えば、トレーニング済みモデル４２０は、要求または入力質問の処理の特徴抽出段階による特徴抽出および分類中に利用されてよく、例えば、要求または質問内の自然言語の用語を受け取り、その用語が対応する複数の可能性のある概念のうちの１つとして、その用語を分類する（例えば、入力質問または要求内の用語「トラック」を複数の可能性のあるクラス（そのうちの１つは「車両」であってよい）に分類する）。別の例として、画像の一部に存在する物体が何であるかを決定するために、複数のピクセル・データを含んでいる画像の一部にトレーニング済みモデルが適用されてよい。実施形態例のメカニズムは、前述したように、トレーニング済みモデル４２０の出力を処理し、この処理は、認知システムの認知計算動作全体のうちの中間動作であってよく、例えば、複数の異なる解剖学的構造のうちの１つへの医用画像の一部の分類は、異常識別および治療推奨認知計算動作の実行の中間動作であってよい。
【００９１】
図４では単一のトレーニング済みモデル４２０が示されているが、要求処理パイプライン４０８は、実際には、複数の異なるトレーニング済みモデルまたは同じトレーニング済みモデルの複数のインスタンスを利用して、認知動作の実行を容易にしてよいということに、さらに注意するべきである。トレーニング済みモデル内のバックドア・トリガーを識別するための実施形態例のメカニズムは、認知システム４００の要求処理パイプライン４０８において実装されるモデルのうちの１つまたは複数に関して実装されてよい。さらに、図４は、要求処理パイプライン４０８の要素であるとしてトレーニング済みモデル４２０を示しているが、トレーニング済みモデル４２０は、実際には、要求処理パイプライン４０８から分離しているが、認知動作を実行するのに使用するために、要求処理パイプライン４０８によってアクセスされ得るか、またはその他の方法でトレーニング済みモデル４２０による処理の結果を受信する、要素であってよい。
【００９２】
認知システム４００において実装されたモデル４２０は、モデルのトレーニング中に導入されたバックドア・トリガーをモデルが含んでいるかどうかを判定するために、バックドア・トリガー識別および修正システム３００によって評価されてよい。バックドア・トリガー識別および修正システム３００は、認知システム４００と同じコンピューティング・システム（例えば、サーバ）または異なるコンピューティング・システムにおいて実装されてよい。一部の実施形態では、バックドア・トリガー識別および修正システム３００は、モデルが認知システム４００に展開される前に実行されるモデルの妥当性確認または検証動作の一部などの、モデルが認知システム４００の実装に統合される前にそれらのモデルを評価してよい認知システム４００内のサブシステムなどの認知システム４００の一部として実装されてよい。
【００９３】
バックドア・トリガー識別および修正システム３００は、修正されたモデル４３０を生成してよく、修正されたモデル４３０は、バックドア・トリガーが元のトレーニング済みモデル４２０内に存在しているとして識別された場合に、元のトレーニング済みモデル４２０を置き換えるために使用されてよい。前述したように、修正されたモデル４３０は、検出されたバックドア・トリガーをテスト・データセットの一部に導入することによって生成された敵対的なトレーニング・データセットを使用し、バックドア・トリガーが変更されたテスト・データセットに存在するという事実に関わらず、バックドア・トリガーを含んでいる変更されたテスト・データセットを正しく分類するように元のトレーニング済みモデル４２０を再トレーニングするトレーニングの、相対的に少数のエポックを使用して再トレーニングされた元のトレーニング済みモデル４２０のバージョンである。これによって、検出されたバックドア・トリガーをモデルから効果的に取り除き、元のトレーニング済みモデル４２０を置き換えるために使用されてよい修正されたモデル４３０を生成する。
【００９４】
図４はモデル４２０およびバックドア・トリガー識別および修正エンジン３００の実装を認知システム４００の一部として示しているが、実施形態例がそのような実装に限定されないということが、理解されるべきである。むしろ、一部の実施形態例では、トレーニング済みモデル４２０またはバックドア・トリガー識別および修正エンジン３００あるいはその両方は、サービスとして提供されてよく、このサービスから、クライアント・コンピューティング・デバイス４１０のユーザが、入力データ・セットの処理、またはトレーニング済みモデルの検証もしくは妥当性確認、あるいはその両方を要求してよい。さらに、他の認知システムを含んでよい他のサービス・プロバイダが、そのようなトレーニング済みモデル４２０またはバックドア・トリガー識別および修正エンジン３００あるいはその両方を利用して、サービス・プロバイダ自身の認知システムの動作を拡張してよい。したがって、一部の実施形態例では、トレーニング済みモデル４２０またはバックドア・トリガー識別および修正エンジン３００あるいはその両方は、１つまたは複数のサーバ・コンピューティング・デバイスにおいて実装され、他のコンピューティング・デバイスを経由して１つまたは複数のＡＰＩを介してアクセスされてよく、これらの他のコンピューティング・デバイスを介して、入力データ・セットがトレーニング済みモデル４２０に送信され、対応するラベル付きデータ・セットが返され、これらの他のコンピューティング・デバイスを介して、トレーニング済みモデルがバックドア・トリガー識別および修正エンジン３００に提供されてよく、バックドア・トリガーがトレーニング済みモデルまたは修正されたモデルあるいはその両方において識別されているかどうかの通知／ログが返されてよい。したがって、認知システム４００への実施形態例のメカニズムの統合は、必須ではなく、望ましい実装に応じて実行されてよい。
【００９５】
前述したように、実施形態例のメカニズムは、コンピュータ技術に根差しており、そのようなコンピューティング・システムまたはデータ処理システムに存在する論理を使用して実装される。これらのコンピューティング・システムまたはデータ処理システムは、前述したさまざまな動作を実装するように、ハードウェア、ソフトウェア、またはハードウェアとソフトウェアの組合せによって具体的に構成される。そのような特定の構成は、コンピューティング・システムまたはデータ処理システムを、前述した実施形態例のうちの１つまたは複数に固有の非一般的な計算機能を実行する具体的に構成されたコンピューティング・システムまたはデータ処理システムに変換する。そのため、本発明の態様が実装されてよいデータ処理システムの一種の一例として、図５が提供されている。多くのその他の種類のデータ処理システムが、実施形態例のメカニズムを具体的に実装するために、同様に構成されてよい。
【００９６】
図５は、実施形態例の態様が実装される例示的なデータ処理システムのブロック図である。データ処理システム５００は、図４のサーバ・コンピューティング・デバイス４０４またはクライアント・コンピューティング・デバイス４１０などのコンピュータの例であり、データ処理システム５００内に、本発明の実施形態例のプロセスを実装するコンピュータ使用可能なコードまたは命令が配置される。１つの実施形態例では、図５は、認知システム４００および要求またはＱＡシステム・パイプライン４０８を実装するサーバ４０４Ａなどのサーバ・コンピューティング・デバイスを表し、バックドア・トリガー識別および修正エンジンによって、要求またはＱＡシステム・パイプライン４０８のモデルがバックドア・トリガーに関して評価されてよく、バックドア・トリガーを取り除くように修正されてよい。そのようなバックドア・トリガー識別および修正エンジンは、同じデータ処理システム５００または別に提供された類似するデータ処理システムにおいて実装されてよい。
【００９７】
示されている例では、データ処理システム５００は、ノース・ブリッジおよびメモリ・コントローラ・ハブ（ＮＢ／ＭＣＨ：north bridge and memory controller hub）５０２ならびにサウス・ブリッジおよび入出力（I/O）コントローラ・ハブ（ＳＢ／ＩＣＨ：south bridge and input/output (I/O) controller hub）５０４を含んでいるハブ・アーキテクチャを採用している。処理ユニット５０６、メイン・メモリ５０８、およびグラフィック・プロセッサ５１０が、ＮＢ／ＭＣＨ５０２に接続されている。グラフィック・プロセッサ５１０は、アクセラレーテッド・グラフィックス・ポート（ＡＧＰ：accelerated graphics port）を介してＮＢ／ＭＣＨ５０２に接続されている。
【００９８】
示されている例では、ローカル・エリア・ネットワーク（ＬＡＮ：local area network）アダプタ５１２が、ＳＢ／ＩＣＨ５０４に接続されている。オーディオ・アダプタ５１６、キーボードおよびマウス・アダプタ５２０、モデム５２２、読み取り専用メモリ（ＲＯＭ：read only memory）５２４、ハード・ディスク・ドライブ（ＨＤＤ：hard disk drive）５２６、ＣＤ−ＲＯＭドライブ５３０、ユニバーサル・シリアル・バス（ＵＳＢ：universal serial bus）ポートおよびその他の通信ポート５３２、ならびにＰＣＩ／ＰＣＩｅデバイス５３４が、バス５３８およびバス５４０を介してＳＢ／ＩＣＨ５０４に接続されている。ＰＣＩ／ＰＣＩｅデバイスは、例えば、ノートブック・コンピュータ用のイーサネット（登録商標）・アダプタ、アドイン・カード、およびＰＣカードを含んでよい。ＰＣＩはカード・バス・コントローラを使用するが、ＰＣＩｅはカード・バス・コントローラを使用しない。ＲＯＭ５２４は、例えば、フラッシュ基本入出力システム（ＢＩＯＳ：basic input/output system）であってよい。
【００９９】
ＨＤＤ５２６およびＣＤ−ＲＯＭドライブ５３０は、バス５４０を介してＳＢ／ＩＣＨ５０４に接続されている。ＨＤＤ５２６およびＣＤ−ＲＯＭドライブ５３０は、例えば、ＩＤＥ（integrated drive electronics）またはシリアルＡＴＡ（ＳＡＴＡ：serial advanced technology attachment）インターフェイスを使用してよい。スーパーＩ／Ｏ（ＳＩＯ：Super I/O）デバイス５３６が、ＳＢ／ＩＣＨ５０４に接続されている。
【０１００】
オペレーティング・システムが、処理ユニット５０６上で実行される。オペレーティング・システムは、図５のデータ処理システム５００内のさまざまなコンポーネントを調整して制御を提供する。クライアントとして、オペレーティング・システムは、Ｍｉｃｒｏｓｏｆｔ（登録商標）Ｗｉｎｄｏｗｓ（登録商標）１０などの市販のオペレーティング・システムである。Ｊａｖａ（登録商標）プログラミング・システムなどのオブジェクト指向プログラミング・システムが、オペレーティング・システムと共に実行されてよく、データ処理システム５００上で実行されているＪａｖａ（登録商標）プログラムまたはアプリケーションからのオペレーティング・システムに対する呼び出しを提供する。
【０１０１】
サーバとして、データ処理システム５００は、例えば、Ａｄｖａｎｃｅｄ  Ｉｎｔｅｒａｃｔｉｖｅ  Ｅｘｅｃｕｔｉｖｅ（ＡＩＸ（登録商標））オペレーティング・システムまたはＬＩＮＵＸ（登録商標）オペレーティング・システムを実行するＩＢＭ（登録商標）ｅＳｅｒｖｅｒ  Ｓｙｓｔｅｍ  ｐ５コンピュータ・システムであってよい。データ処理システム５００は、処理ユニット５０６内で複数のプロセッサを含んでいる対称型マルチプロセッサ（ＳＭＰ：symmetric multiprocessor）システムであってよい。代替として、シングル・プロセッサ・システムが採用されてよい。ＩＢＭ、ｅＳｅｒｖｅｒ、Ｓｙｓｔｅｍ  ｐ５、ＡＩＸ、およびＩＢＭ  Ｗａｔｓｏｎは、世界中の多くの管轄区域で登録されている、Ｉｎｔｅｒｎａｔｉｏｎａｌ  Ｂｕｓｉｎｅｓｓ  Ｍａｃｈｉｎｅｓ  Ｃｏｒｐｏｒａｔｉｏｎの商標である。Ｌｉｎｕｘは、米国またはその他の国あるいはその両方における、Ｌｉｎｕｓ  Ｔｏｒｖａｌｄｓの登録商標である。
【０１０２】
オペレーティング・システム、オブジェクト指向プログラミング・システム、およびアプリケーションまたはプログラムの命令が、ＨＤＤ５２６などのストレージ・デバイスに配置され、処理ユニット５０６によって実行するためにメイン・メモリ５０８に読み込まれる。本発明の実施形態例のプロセスは、コンピュータ使用可能なプログラム・コードを使用して、処理ユニット５０６によって実行され、このプログラム・コードは、例えばメイン・メモリ５０８、ＲＯＭ５２４などのメモリ内、または例えば１つまたは複数の周辺機器５２６および５３０内に、配置される。
【０１０３】
図５に示されているように、バス５３８またはバス５４０などのバス・システムは、１つまたは複数のバスから成る。当然ながら、バス・システムは、通信ファブリックまたは通信アーキテクチャに接続された異なるコンポーネントまたはデバイス間のデータの転送を提供する任意の種類の通信ファブリックまたは通信アーキテクチャを使用して、実装されてよい。図５のモデム５２２またはネットワーク・アダプタ５１２などの通信ユニットは、データの送受信に使用される１つまたは複数のデバイスを含んでいる。メモリは、例えば、メイン・メモリ５０８、ＲＯＭ５２４、または図５のＮＢ／ＭＣＨ５０２において見られるようなキャッシュであってよい。
【０１０４】
当業者は、図４および図５に示されているハードウェアが実装に応じて変わってよいということを、理解するであろう。フラッシュ・メモリ、同等の不揮発性メモリ、または光ディスク・ドライブなどの、その他の内部ハードウェアまたは周辺機器が、図４および図５に示されているハードウェアに加えて、またはそれらのハードウェアの代わりに、使用されてよい。また、実施形態例のプロセスは、本発明の思想および範囲から逸脱することなく、前述したＳＭＰシステム以外のマルチプロセッサ・データ処理システムに適用されてよい。
【０１０５】
さらに、データ処理システム５００は、クライアント・コンピューティング・デバイス、サーバ・コンピューティング・デバイス、タブレット・コンピュータ、ラップトップ・コンピュータ、電話またはその他の通信デバイス、パーソナル・デジタル・アシスタント（ＰＤＡ：personal digital assistant）などを含む、複数の異なるデータ処理システムのいずれかの形態を取ってよい。一部の実施形態例では、データ処理システム５００は、例えばオペレーティング・システム・ファイルまたはユーザによって生成されたデータあるいはその両方を格納するために、不揮発性メモリを提供するようにフラッシュ・メモリを使用して構成された、ポータブル・コンピューティング・デバイスであってよい。基本的に、データ処理システム５００は、アーキテクチャの制限なしで、任意の既知のデータ処理システムまたは今後開発されるデータ処理システムであってよい。
【０１０６】
図６は、一実施形態例に従う、機械学習モデルまたは認知モデルなどのトレーニング済みモデルに存在するバックドア・トリガーを識別して修正するための例示的な動作を概説するフローチャートである。図６に示されているように、この動作は、評価用のトレーニング済みモデルを受信することから開始する（ステップ６１０）。勾配を生成するために、テスト・データセットがトレーニング済みモデルに入力される（ステップ６２０）。テスト・データセット内のサンプルごとに、真の出力クラスに向かって勾配が生成される（ステップ６３０）。バックドア・トリガーを示す勾配を有するパターンを識別するために、出力クラスと試行された真の出力クラス（またはターゲット・クラス）の対ごとに勾配が集計される（ステップ６４０）。集計された勾配の解析の結果に基づいて、トレーニング済みモデルにバックドア・トリガーが存在するかどうかに関する判定が行われる（ステップ６５０）。バックドア・トリガーが存在しない場合、動作が終了する。バックドア・トリガーが存在する場合、バックドア・トリガーが、バックドア・トリガーの種類（例えば、単一のピクセル、ピクセル・パターンなど）、影響を受けるクラス、入力画像内のバックドア・トリガーの位置などを含むが、これらに限定されない、バックドア・トリガーの特性と共に、ログ・データ構造に記録される（ステップ６６０）。加えて、または代替として、バックドア・トリガーの検出およびその特性を示す通知が、許可されたユーザに送信される（ステップ６７０）。
【０１０７】
さらに、一部の実施形態例では、検出されたバックドア・トリガーおよびその特性は、テスト・データセットの少なくとも一部を含んでいる敵対的なデータセットを生成するために、テスト・データセットと共に利用され、この敵対的なデータセットでは、入力データが、バックドア・トリガーを含むように変更され、例えば、テスト・データセット内の入力画像が、実施形態例によって識別された単一のピクセル、ピクセル・パターンなどのバックドア・トリガーを含むように変更される（ステップ６８０）。次に、受信されたモデルが、変更された入力を、誤って分類された出力クラスではなく正しいクラス出力に適切に分類するように、敵対的なデータセットを使用して自動的に再トレーニングされる（ステップ６９０）。次に、再トレーニングされたモデルが、元のモデルを置き換えるために、元のモデルのプロバイダに提供される（ステップ７００）。その後、動作が終了する。
【０１０８】
前述したように、実施形態例が、完全にハードウェアである実施形態、完全にソフトウェアである実施形態、またはハードウェアとソフトウェアの両方の要素を含んでいる実施形態の形態を取ってよいということが、理解されるべきである。１つの実施形態例では、実施形態例のメカニズムは、ファームウェア、常駐ソフトウェア、マイクロコードなどを含むが、これらに限定されない、ソフトウェアまたはプログラム・コードにおいて実装される。
【０１０９】
プログラム・コードの格納または実行あるいはその両方を行うのに適したデータ処理システムは、例えばシステム・バスなどの通信バスを介して直接的または間接的にメモリ素子に結合された、少なくとも１つのプロセッサを含む。メモリ素子は、プログラム・コードの実際の実行時に使用されるローカル・メモリと、バルク・ストレージと、実行時にバルク・ストレージからコードが取得されなければならない回数を減らすために少なくとも一部のプログラム・コードを一時的に格納するキャッシュ・メモリとを、含むことができる。メモリは、ＲＯＭ、ＰＲＯＭ、ＥＰＲＯＭ、ＥＥＰＲＯＭ（登録商標）、ＤＲＡＭ、ＳＲＡＭ、フラッシュ・メモリ、半導体メモリなどを含むが、これらに限定されない、さまざまな種類であってよい。
【０１１０】
入出力デバイスまたはＩ／Ｏデバイス（キーボード、ディスプレイ、ポインティング・デバイスなどを含むが、これらに限定されない）は、直接的に、あるいは介在する有線もしくは無線Ｉ／Ｏインターフェイスもしくはコントローラまたはその両方などを介して、システムに結合され得る。Ｉ／Ｏデバイスは、従来のキーボード、ディスプレイ、ポインティング・デバイスなど以外の、例えば、スマートフォン、タブレット・コンピュータ、タッチ・スクリーン・デバイス、音声認識デバイスなどを含むが、これらに限定されない、有線または無線接続を介して結合された通信デバイスなどの、多くの異なる形態を取ってよい。任意の既知のＩ／Ｏデバイスまたは今後開発されるＩ／Ｏデバイスが、実施形態例の範囲に含まれるよう意図されている。
【０１１１】
ネットワーク・アダプタがシステムに結合され、介在するプライベート・ネットワークまたはパブリック・ネットワークを介して、データ処理システムを、他のデータ処理システムまたはリモート・プリンタまたはストレージ・デバイスに結合できるようにしてもよい。モデム、ケーブル・モデム、およびイーサネット（登録商標）・カードは、有線通信に現在使用可能なネットワーク・アダプタのうちの、ごくわずかの種類にすぎない。８０２．１１  ａ／ｂ／ｇ／ｎ無線通信アダプタ、Ｂｌｕｅｔｏｏｔｈ（登録商標）無線アダプタなどを含むが、これらに限定されない、無線通信に基づくネットワーク・アダプタが利用されてもよい。任意の既知のネットワーク・アダプタまたは今後開発されるネットワーク・アダプタが、本発明の思想および範囲に含まれるよう意図されている。
【０１１２】
本発明の説明は、例示および説明の目的で提示されており、網羅的であるよう意図されておらず、開示された形態での発明に制限されない。記載された実施形態の範囲および思想を逸脱することなく多くの変更および変形が可能であることは、当業者にとって明らかであろう。本発明の原理、実際的な適用を最も適切に説明するため、およびその他の当業者が、企図された特定の用途に適するようなさまざまな変更を伴う多様な実施形態に関して、本発明を理解できるようにするために、実施形態が選択されて説明された。本明細書で使用された用語は、実施形態の原理、実際の適用、または市場で見られる技術を超える技術的改良を最も適切に説明するため、または他の当業者が本明細書で開示された実施形態を理解できるようにするために選択されている。
【図１】
2021521508.tif 000003
【図２】
2021521508.tif 000004
【図３】
2021521508.tif 000005
【図４】
2021521508.tif 000006
【図５】
2021521508.tif 000007
【図６】
2021521508.tif 000008
【手続補正書】
【提出日】令和2年10月22日(2020.10.22)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
プロセッサおよびメモリを備えているデータ処理システムにおける方法であって、前記メモリが、トレーニング済み機械学習モデルを評価して前記機械学習モデルがバックドア・トリガーを含んでいるかどうかを判定するためのバックドア・トリガー識別エンジンを実装するための命令を含んでおり、前記プロセッサが、
前記トレーニング済み機械学習モデルによって、テスト・データセットを処理して前記テスト・データセットの出力分類を生成することと、
前記バックドア・トリガー識別エンジンによって、前記テスト・データセットを処理することによって生成された前記出力分類に基づいて前記テスト・データセット内の要素の変化度を示す勾配データを生成することと、
前記バックドア・トリガー識別エンジンによって、前記勾配データを解析し、バックドア・トリガーを示す前記テスト・データセット内の要素のパターンを識別することと、
前記バックドア・トリガー識別エンジンによって、前記解析がバックドア・トリガーを示す要素の前記パターンを識別することに応答して、前記トレーニング済み機械学習モデル内の前記バックドア・トリガーの存在を示す出力を生成することとを実行する、方法。
【請求項２】
前記テスト・データセットが複数のデジタル画像を含んでおり、前記テスト・データセットの下位部分が、前記トレーニング済み機械学習モデルによる、前記デジタル画像内の少なくとも１つの物体の、前記出力分類における不正なクラスへの誤った分類をトリガーする特性を含む前記デジタル画像の一部を含んでいる１つまたは複数のデジタル画像を含んでいる、請求項１に記載の方法。
【請求項３】
前記デジタル画像の前記一部が、前記少なくとも１つの物体の前記誤った分類を引き起こす少なくとも１つの特性を有している単一のピクセルまたはピクセルのパターンのうちの１つである、請求項２に記載の方法。
【請求項４】
前記勾配データが、前記テスト・データセットの各成分に関して前記トレーニング済み機械学習モデルの損失関数の勾配を計算することによって生成される、請求項１ないし３のいずれかに記載の方法。
【請求項５】
前記テスト・データセットに関して、前記テスト・データセット内の要素の変化度を示す勾配データを生成することが、前記勾配データにおいて正当な変化を引き起こす特徴をマスクするために、前記テスト・データセットにノイズを導入することをさらに含んでいる、請求項１ないし４のいずれかに記載の方法。
【請求項６】
前記機械学習モデルに、前記バックドア・トリガーを含んでいるデータセットの部分を正しい分類に正しく分類させるように、前記識別されたバックドア・トリガーに基づいて前記機械学習モデルを再トレーニングすることをさらに含んでいる、請求項１ないし５のいずれかに記載の方法。
【請求項７】
前記機械学習モデルを再トレーニングすることが、新しいトレーニング・データ・セットに挿入されている前記バックドア・トリガーを含む前記新しいトレーニング・データ・セットに対して前記機械学習モデルをトレーニングすることを含んでいる、請求項６に記載の方法。
【請求項８】
前記バックドア・トリガー識別エンジンによって、前記勾配データを解析して、バックドア・トリガーを示す要素のパターンを識別することが、異常検出アルゴリズムまたは強度比較アルゴリズムによって、前記勾配データを自動的に解析して、前記バックドア・トリガーを示す要素の前記パターンを識別することを含んでいる、請求項１ないし７のいずれかに記載の方法。
【請求項９】
前記解析がバックドア・トリガーを示す要素の前記パターンを識別することに応答して、前記トレーニング済み機械学習モデル内の前記バックドア・トリガーの前記存在を示す出力を生成することが、前記バックドア・トリガーの前記存在をログ・データ構造のエントリに記録すること、または通知メッセージを許可されたユーザに送信することのうちの少なくとも１つを含んでおり、前記ログ・データ構造または通知メッセージのいずれかが、前記バックドア・トリガーの識別情報、前記バックドア・トリガーに関連付けられた前記出力分類、および前記バックドア・トリガーの特性を含んでいる、請求項１ないし８のいずれかに記載の方法。
【請求項１０】
前記機械学習モデルが畳み込みニューラル・ネットワークである、請求項１ないし９のいずれかに記載の方法。
【請求項１１】
請求項１ないし１０のいずれか一項に記載の方法をコンピュータ又はプロセッサに実行させるためのコンピュータプログラム。
【請求項１２】
請求項１１に記載したコンピュータプログラムを記憶した記憶媒体。
【請求項１３】
プロセッサとメモリとを備えている装置であって、
前記メモリが、トレーニング済み機械学習モデルを評価して前記機械学習モデルがバックドア・トリガーを含んでいるかどうかを判定するためのバックドア・トリガー識別エンジンを実装するための命令を含んでおり、前記プロセッサが、
前記トレーニング済み機械学習モデルによって、テスト・データセットを処理して前記テスト・データセットの出力分類を生成することと、
前記バックドア・トリガー識別エンジンによって、前記テスト・データセットを処理することによって生成された前記出力分類に基づいて前記テスト・データセット内の要素の変化度を示す勾配データを生成することと、
前記バックドア・トリガー識別エンジンによって、前記勾配データを解析し、バックドア・トリガーを示す前記テスト・データセット内の要素のパターンを識別することと、
前記バックドア・トリガー識別エンジンによって、前記解析がバックドア・トリガーを示す要素の前記パターンを識別することに応答して、前記トレーニング済み機械学習モデル内の前記バックドア・トリガーの存在を示す出力を生成することとを実行する、装置。
【国際調査報告】
2021521508.tif 000009
2021521508.tif 000010