(57)【特許請求の範囲】
【請求項１】
所定のデータを取得する取得部と、
各データと、前記各データを用いて所定の問題を解いた各結果データとを含む学習データを用いて学習された第１推論モデルに、前記所定のデータを入力して推論処理を行う推論部と、
前記所定のデータに所定の攻撃が加えられた可能性を検出する検出部と、
前記可能性が検出された場合、前記所定の攻撃が加えられた所定のデータに基づいて、前記所定の攻撃に対応して防御可能な第１防御アルゴリズムを複数の防御アルゴリズムの中から特定する特定部と、
前記第１防御アルゴリズムを前記推論処理に適用する適用部と、
を備える情報処理装置。
【請求項２】
前記特定部は、前記所定の攻撃が加えられた各データと当該各データに適用される各防御アルゴリズムとを含む学習データを用いて教師あり学習により生成された第２推論モデルに対し、前記所定のデータを入力して前記第１防御アルゴリズムを予測することを含む、請求項１に記載の情報処理装置。
【請求項３】
前記特定部は、各攻撃アルゴリズムと前記各攻撃アルゴリズムに基づく各攻撃が加えられた各データとを含む学習データを用いて教師あり学習によって生成された第３推論モデルに対し、前記所定のデータを入力して第１攻撃アルゴリズムを予測することを含む、請求項１に記載の情報処理装置。
【請求項４】
前記可能性が検出された場合、前記所定の攻撃を含む所定のデータの特徴量を算出する算出部をさらに備え、
前記特定部は、前記特徴量に基づいて、前記第１防御アルゴリズムを特定することを含む、請求項１に記載の情報処理装置。
【請求項５】
前記特定部は、各特徴量及び前記各特徴量に対応する各防御アルゴリズムを含む学習データを用いて教師あり学習により生成された第４推論モデルに対し、前記算出された特徴量を入力して前記第１防御アルゴリズムを予測することを含む、請求項４に記載の情報処理装置。
【請求項６】
前記特定部は、前記算出された特徴量に基づいて、複数の攻撃アルゴリズムの中から前記所定の攻撃に対応する第１攻撃アルゴリズムを特定することを含む、請求項４に記載の情報処理装置。
【請求項７】
前記特定部は、各特徴量及び前記各特徴量に対応する各攻撃アルゴリズムを含む学習データとする教師あり学習により生成された第５推論モデルに対し、前記算出された特徴量を入力して前記第１攻撃アルゴリズムを予測することを含む、請求項６に記載の情報処理装置。
【請求項８】
前記特定部は、各攻撃アルゴリズムと前記各攻撃アルゴリズムにより攻撃が加えられた各データに各防御アルゴリズムが適用された各データとを含む学習データを用いて教師あり学習によって生成された第６推論モデルに対し、前記第１攻撃アルゴリズムを入力して前記第１防御アルゴリズムを予測することを含む、請求項３又は７に記載の情報処理装置。
【請求項９】
情報処理装置に備えられたプロセッサが、
所定のデータを取得することと、
各データと各結果データとを含む学習データを用いて学習された第１推論モデルに、前記所定のデータを入力して推論処理を行うことと、
前記所定のデータに所定の攻撃が加えられた可能性を検出することと、
前記可能性が検出された場合、前記所定の攻撃が加えられた所定のデータに基づいて、前記所定の攻撃に対応して防御可能な第１防御アルゴリズムを複数の防御アルゴリズムの中から特定することと、
前記第１防御アルゴリズムを前記推論処理に適用することと、
を実行する情報処理方法。
【請求項１０】
情報処理装置に備えられたプロセッサに、
所定のデータを取得することと、
各データと各結果データとを含む学習データを用いて学習された第１推論モデルに、前記所定のデータを入力して推論処理を行うことと、
前記所定のデータに所定の攻撃が加えられた可能性を検出することと、
前記可能性が検出された場合、前記所定の攻撃が加えられた所定のデータに基づいて、前記所定の攻撃に対応して防御可能な第１防御アルゴリズムを複数の防御アルゴリズムの中から特定することと、
前記第１防御アルゴリズムを前記推論処理に適用することと、
を実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、情報処理方法及びプログラムに関する。
【背景技術】
【０００２】
近年、機械学習において、敵対的攻撃に対する防御方法が研究されている。例えば、下記特許文献１には、入力シーケンスが、センサデータの複数のフレームの摂動されたバージョンであるという予測に基づいて、前入力シーケンスを分類するための敵対的ラベルを生成し、この入力シーケンスに基づいて、第１の機械学習システムによって生成された出力データシーケンスを識別し、出力データシーケンスに基づく制御データによりアクチュエータシステムが制御されることを防止するために、敵対的ラベルに基づいて第１の機械学習システムからの出力データシーケンスをフィルタリングする方法が開示されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０２１−９６８５４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ここで、従来技術では、学習対象又は推論対象のデータに対し、摂動などの敵対的攻撃が加えられた場合、所定の方法で敵対的攻撃を受けたことを検知するが、どの敵対的攻撃を受けたかに関わらず、所定の防御方法が採用されている。しかしながら、敵対的攻撃は多様化してきており、従来技術においては、任意の敵対的攻撃に対して適切に防御することができていなかった。
【０００５】
そこで、本発明の目的の１つは、学習又は推論に用いるデータへの任意の攻撃に対して適切に防御することが可能になる情報処理装置、情報処理方法及びプログラムを提供する。
【課題を解決するための手段】
【０００６】
本発明の一態様に係る情報処理装置は、所定のデータを取得する取得部と、各データと、前記各データを用いて所定の問題を解いた各結果データとを含む学習データを用いて学習された第１推論モデルに、前記所定のデータを入力して推論処理を行う推論部と、前記所定のデータに所定の攻撃が加えられた可能性を検出する検出部と、前記可能性が検出された場合、前記所定の攻撃が加えられた所定のデータに基づいて、前記所定の攻撃に対応して防御可能な第１防御アルゴリズムを複数の防御アルゴリズムの中から特定する特定部と、前記第１防御アルゴリズムを前記推論処理に適用する適用部と、
を備える。
【発明の効果】
【０００７】
本発明によれば、学習又は推論に用いるデータへの任意の攻撃に対して適切に防御することが可能になる情報処理装置、情報処理方法及びプログラムを提供することができる。
【図面の簡単な説明】
【０００８】
【図１】実施形態に係るシステム構成の一例を示す図である。
【図２】実施形態に係る情報処理装置の物理的構成の一例を示す図である。
【図３】実施形態に係るサーバの処理ブロックの一例を示す図である。
【図４】実施形態にかかる処理の概念図を説明するための図である。
【図５Ａ】実施形態に係る対応データの一例を示す図である。
【図５Ｂ】実施形態に係る対応データの一例を示す図である。
【図５Ｃ】実施形態に係る対応データの一例を示す図である。
【図６】実施形態に係るシステムにおける処理の一例を示すシーケンス図である。
【図７】実施形態に係るサーバにおける防御制御処理の一例を示すフローチャートである。
【発明を実施するための形態】
【０００９】
添付図面を参照して、本発明の実施形態について説明する。なお、各図において、同一の符号を付したものは、同一又は同様の構成を有する。
【００１０】
［実施形態］
＜システム構成＞
図１は、実施形態に係るシステム構成の一例を示す図である。図１に示す例では、サーバ１０と、各エッジ端末（又はユーザ端末）２０Ａ、２０Ｂ、２０Ｃ、２０Ｄとが、ネットワークを介してデータ送受信可能なように接続される。エッジ端末を個別に区別しない場合はエッジ端末２０とも表記する。
【００１１】
サーバ１０は、データを収集、分析可能な情報処理装置であり、１つ又は複数の情報処理装置から構成されてもよい。エッジ端末２０は、スマートフォン、パーソナルコンピュータ、タブレット端末、サーバ、コネクティッドカーなど、データを取得可能な情報処理装置である。なお、エッジ端末２０は、脳波をセンシングする侵襲型又は非侵襲型の電極に接続されており、脳波データを解析、送受信可能な装置でもよい。
【００１２】
図１に示すシステムでは、サーバ１０は、各エッジ端末２０から学習対象又は推論対象の所定のデータを取得し、所定の学習モデル又は所定の学習済みの推論モデルを用いて学習又は推論の結果データを出力する。各エッジ端末２０は、出力された推論対象データに対応する結果データを取得する。
【００１３】
サーバ１０は、各エッジ端末２０から推論対象データを取得した場合、当該データに対して推論処理を実行する。推論処理には、分類問題、回帰分析問題、クラスタリング問題、及び最適化問題などを解く処理のうち少なくとも１つが含まれる。このとき、サーバ１０は、推論対象データに対して所定の攻撃が加えられている可能性を検出する。所定の攻撃は、例えば、所定の敵対的攻撃のアルゴリズムによりデータに摂動を加える攻撃を含む。
【００１４】
サーバ１０は、所定の攻撃が加えられたことを検出すると、所定の攻撃に対応する所定の防御手法を推論処理に適用する。例えば、防御手法の一例として、刈り込み（Pruning）を実行することが知られている（Te Juin Lester Tan, Reza Shokri, "Bypassing Backdoor Detection Algorithms in Deep Learning,"  IEEE European Symposium on Security and Privacy 2020, p175-183, 6 Jun 2020 (last revised)）。この論文手法においては、刈り込みは敵対的攻撃に対しての防御手法となり得るが、この刈り込みの防御手法に対して、さらに有効な攻撃手法が開示されている。したがって、様々な手法が存在する敵対的攻撃に対して、有効な防御手法を適用するための戦略が重要となってくる。
【００１５】
そこで、本実施形態では、サーバ１０は、所定の攻撃が検出された場合に、所定のデータ、所定のデータの特徴量、又は特定された所定の攻撃などに基づいて、適切な防御手法（例、防御アルゴリズム）を特定し、特定された防御手法を推論処理に適用する。これにより、検出された任意の攻撃に対して適切に防御することが可能になる。以下、本実施形態の各装置の構成について説明する。
【００１６】
＜ハードウェア構成＞
図２は、実施形態に係る情報処理装置１０の物理的構成の一例を示す図である。情報処理装置１０は、演算部に相当するＣＰＵ（Central Processing Unit）１０ａと、記憶部に相当するＲＡＭ（Random Access Memory）１０ｂと、記憶部に相当するＲＯＭ（Read only Memory）１０ｃと、通信部１０ｄと、入力部１０ｅと、表示部１０ｆと、を有する。これらの各構成は、バスを介して相互にデータ送受信可能に接続される。
【００１７】
本実施形態では、情報処理装置１０が一台のコンピュータで構成される場合について説明するが、情報処理装置１０は、複数のコンピュータ又は複数の演算部が組み合わされて実現されてもよい。また、図１で示す構成は一例であり、情報処理装置１０はこれら以外の構成を有してもよいし、これらの構成のうち一部を有さなくてもよい。
【００１８】
ＣＰＵ１０ａは、プロセッサの一例であり、ＲＡＭ１０ｂ又はＲＯＭ１０ｃに記憶されたプログラムの実行に関する制御やデータの演算、加工を行う制御部である。ＣＰＵ１０ａは、例えば、パラメータの初期値を設定可能な学習モデルを用いて学習を行うプログラム（学習プログラム）を実行する演算部である。ＣＰＵ１０ａは、入力部１０ｅや通信部１０ｄから種々のデータを受け取り、データの演算結果を表示部１０ｆに表示したり、ＲＡＭ１０ｂに格納したりする。
【００１９】
ＲＡＭ１０ｂは、記憶部のうちデータの書き換えが可能なものであり、例えば半導体記憶素子で構成されてよい。ＲＡＭ１０ｂは、ＣＰＵ１０ａが実行するプログラム、各学習モデル、学習済みの各推論モデル、推論対象データの特徴量に関するデータ、及び／又はこの特徴量と所定の防御アルゴリズムを特定する防御特定情報（防御ＩＤ）との対応関係を示すデータなどを記憶してもよい。なお、これらは例示であって、ＲＡＭ１０ｂには、これら以外のデータが記憶されていてもよいし、これらの一部が記憶されていなくてもよい。
【００２０】
ＲＯＭ１０ｃは、記憶部のうちデータの読み出しが可能なものであり、例えば半導体記憶素子で構成されてよい。ＲＯＭ１０ｃは、例えば防御制御プログラムや、書き換えが行われないデータを記憶してよい。
【００２１】
通信部１０ｄは、情報処理装置１０を他の機器に接続するインターフェースである。通信部１０ｄは、インターネット等の通信ネットワークに接続されてよい。
【００２２】
入力部１０ｅは、ユーザからデータの入力を受け付けるものであり、例えば、キーボード及びタッチパネルを含んでよい。
【００２３】
表示部１０ｆは、ＣＰＵ１０ａによる演算結果を視覚的に表示するものであり、例えば、ＬＣＤ（Liquid Crystal Display）により構成されてよい。表示部１０ｆが演算結果を表示することは、ＸＡＩ（eXplainable AI：説明可能なＡＩ）に貢献し得る。表示部１０ｆは、例えば、学習結果や、学習に関連するデータを表示してもよい。
【００２４】
学習プログラム又は防御制御プログラムは、ＲＡＭ１０ｂやＲＯＭ１０ｃ等のコンピュータによって読み取り可能な非一時的な記憶媒体に記憶されて提供されてもよいし、通信部１０ｄにより接続される通信ネットワークを介して提供されてもよい。情報処理装置１０では、ＣＰＵ１０ａが学習プログラム又は防御制御プログラムを実行することにより、後述する図３を用いて説明する様々な動作が実現される。なお、これらの物理的な構成は例示であって、必ずしも独立した構成でなくてもよい。例えば、情報処理装置１０は、ＣＰＵ１０ａとＲＡＭ１０ｂやＲＯＭ１０ｃが一体化したＬＳＩ（Large-Scale Integration）を備えていてもよい。また、情報処理装置１０は、ＧＰＵ（Graphical Processing Unit）やＡＳＩＣ（Application Specific Integrated Circuit）を備えていてもよい。
【００２５】
なお、情報処理装置２０の構成は、図２に示す情報処理装置１０の構成と同様であるため、その説明を省略する。また、情報処理装置１０と情報処理装置２０とは、データ処理を行う基本的な構成であるＣＰＵ１０ａやＲＡＭ１０ｂ等を有していればよく、入力部１０ｅや表示部１０ｆは設けられなくてもよい。また、入力部１０ｅや表示部１０ｆは、外部からインターフェースを用いて接続されてもよい。
【００２６】
＜処理構成＞
図３は、実施形態に係る情報処理装置（サーバ）１０の処理ブロックの一例を示す図である。情報処理装置１０は、取得部１０１、推論部１０２、検出部１０３、算出部１０４、特定部１０５、適用部１０８、出力部１０９、学習部１１０、及び記憶部１１１を備える。情報処理装置１０は、汎用のコンピュータで構成されてもよい。
【００２７】
取得部１０１は、エッジ端末２０（「第１情報処理装置」ともいう。）から所定のデータを取得する。所定のデータは、例えば推論対象データである。また、所定のデータは、所定のデータセットでもよい。データセットは、例えば、画像データ、系列データ及びテキストデータの少なくともいずれかを含む。ここで、画像データは、静止画のデータと、動画のデータとを含む。系列データは、音声データや株価のデータなどを含む。
【００２８】
推論部１０２は、取得部１０１により取得された所定のデータを推論モデル（第１推論モデル）１０２ａに入力して推論処理を行う。例えば、推論モデル１０２ａは、学習対象の各データと、各データを用いて所定の問題を解いた各結果データとを含む学習データを用いて学習された学習済みのモデルである。所定の問題とは、上述したとおり、分類問題、回帰分析問題、クラスタリング問題、及び最適化問題などのうち少なくとも１つが含まれるが、これらの例に限られない。
【００２９】
推論モデル１０２ａは、例えばニューラルネットワークを用いる所定の推論モデルであってもよい。所定の推論モデル１０２ａは、例えば、画像認識モデル、系列データ解析モデル、ロボットの制御モデル、強化学習モデル、音声認識モデル、音声生成モデル、画像生成モデル、自然言語処理モデル等の少なくとも１つを含む。また、所定の推論モデル１０２ａの具体例としては、ＣＮＮ（Convolutional Neural Network）、ＲＮＮ（Recurrent Neural Network）、ＤＮＮ（Deep Neural Network）、ＬＳＴＭ（Long Short-Term Memory）、双方向ＬＳＴＭ、ＤＱＮ（Deep Q-Network）、ＶＡＥ（Variational AutoEncoder）、ＧＡＮｓ（Generative Adversarial Networks）、ｆｌｏｗ−ｂａｓｅｄ生成モデル等のいずれかでもよい。なお、推論部１０２は、推論対象データの特徴又は種類に基づき、対応する所定の推論モデルを選択してもよい。
【００３０】
検出部１０３は、公知の技術を用いて所定のデータに対して所定の攻撃が加えられた可能性を検出する。例えば、検出部１０３は、特許文献１に記載の検出技術を用いてもよいし、様々な敵対的攻撃を受けたデータと正解ラベルとを含む学習データを教師あり学習した学習モデルを用いて、所定の攻撃が加えられた可能性を検出してもよい。
【００３１】
検出部１０３により所定の攻撃が加えられた可能性が検出された場合、算出部１０４は、所定の攻撃が加えられた可能性がある所定のデータの特徴量を算出する。例えば、特徴量は、所定の攻撃に関する特徴量を含む。具体的には、所定の攻撃として摂動が加えられる場合、摂動の可能性が検出された所定のデータからこの摂動に関する特徴量が算出される。
【００３２】
例えば、特徴量として、Ｎｒ＿ａｔｔｉｒｂｕｔｅｓ（属性数）、Ｎｒ＿ｓｙｍ＿ａｔｔｒｉｂｕｔｅｓ（名義属性数）、Ｎｒ＿ｎｕｍ＿ａｔｔｒｉｂｕｔｅｓ（数値属性数）、Ｎｒ＿ｅｘａｍｐｌｅｓ（インスタンス数）、Ｎｒ＿ｃｌａｓｓ（クラス数）、Ｄｅｆａｕｌｔ  Ａｃｃｕｒａｃｙ（最多クラスの割合）、Ｍｉｓｓｉｎｇ  Ｖａｌｕｅ＿Ｔｏｔａｌ（欠損値数（合計））、Ｍｉｓｓｉｎｇ  Ｖａｌｕｅ＿Ｒｅｌａｔｉｖｅ（欠損値数（割合））、Ｍｅａｎ＿Ａｂｓｏｌｕｔｅ＿Ｓｋｅｗ（数値属性の平均尖度）、Ｍｅａｎ  Ｋｕｒｔｏｓｉｓ（数値属性の平均歪度）、ＮｕｍＡｔｔｒｓＷｉｔｈＯｕｌｉｅｓ（外れ値のある属性数）などのうち、攻撃が加えられた所定のデータの特徴を表すものとして使用可能なものは、算出部１０４により算出されてもよい。
【００３３】
また、算出部１０４は、所定のデータの種類に応じて、算出する特徴量を変えてもよい。例えば、算出部１０４は、画像データに対して離散コサイン変換（ＤＣＴ）変換後のＤＣ成分を特徴量としてもよく、音声データに対して高速フーリエ変換（ＦＦＴ）後の最大パワースペクトルを特徴量としてもよい。
【００３４】
特定部１０５は、検出部１０３により所定の攻撃が加えられた可能性が検出された場合、所定の攻撃が加えられた所定のデータに基づいて、所定の攻撃に対応して防御可能な第１防御アルゴリズムを複数の防御アルゴリズムの中から特定する。ここで、防御アルゴリズムの特定方法として、主に以下の６つに分類される。
【００３５】
（１）攻撃を特定しない対応データと所定のデータの特徴量とに基づく方法１
方法１の場合、事前にシミュレーション等が行われ、攻撃を受けた所定のデータの特徴量と、この所定のデータに適用し、効果があった防御アルゴリズムの防御特定情報（防御ＩＤ）とを関連付けた対応データＡが生成される（例えば図５Ａ）。例えば、各画像データに所定の摂動を与える敵対的攻撃を与え、この攻撃を受けた各画像データに対して各防御アルゴリズムを適用し、適切に分類できる防御アルゴリズムが選定される。このとき、敵対的攻撃を受けた画像の摂動に関する特徴量と、対応する防御アルゴリズムの防御ＩＤとが関連付けられる。
【００３６】
特定部１０５に含まれる防御特定部１０６は、上述した対応データを用いて、攻撃の可能性が検出されたデータの特徴量から、この特徴量に対応する防御ＩＤを特定する。これにより、特定部１０５は、攻撃の可能性が検出された場合、その攻撃手法に適切な防御手法を適用することが可能になる。
【００３７】
（２）攻撃を特定する対応データと所定のデータの特徴量とに基づく方法２
方法２の場合、事前にシミュレーション等が行われ、攻撃を受けた所定のデータの特徴量を見出し、この特徴量と、この所定のデータに攻撃をした攻撃アルゴリズムの攻撃特定情報（攻撃ＩＤ）とを関連付けた対応データＢ１が生成される（例えば図５Ｂ）。例えば、各画像データに所定の摂動を与える敵対的攻撃を与え、敵対的攻撃を受けた画像の摂動に関する特徴量と、対応する防御アルゴリズムの防御ＩＤとが関連付けられる。また、攻撃アルゴリズムそれぞれに対して有効な防御アルゴリズムが、シミュレーション等により特定されると、攻撃ＩＤと、この攻撃ＩＤに対して防御可能な防御ＩＤとが関連付けられた対応データＢ２が生成される（例えば図５Ｃ）。
【００３８】
特定部１０５に含まれる攻撃特定部１０７は、上述した対応データＢ２を用いて、攻撃の可能性が検出されたデータの特徴量から、攻撃ＩＤを特定する。特定部１０５に含まれる防御特定部１０６は、上述した対応データＢ１を用いて、攻撃ＩＤに対応する防御ＩＤを特定する。これにより、特定部１０５は、攻撃の可能性が検出された場合、その攻撃手法を特定し、特定された攻撃手法に適切な防御手法を適用することが可能になる。
【００３９】
（３）攻撃を特定しない推論モデルと所定のデータとに基づく方法３
方法３の場合、特定部１０５は、所定の攻撃が加えられた各データと、前述の各データに適用される各防御アルゴリズムとを含む学習データを用いて教師あり学習により生成された第２推論モデルに対し、所定のデータを入力して第１防御アルゴリズムを予測することを含んでもよい。例えば、防御特定部１０６が、第２推論モデルを有し、第１防御アルゴリズムを予測して特定してもよい。
【００４０】
例えば、防御特定部１０６は、防御アルゴリズムが適用された所定のデータに対して所定の攻撃が成功する（例えば誤分類される）確率を用いて損失関数を設定し、この損失関数が条件を満たす（例、最小となる）ときの防御アルゴリズムを特定してもよい。例えば、防御特定部１０６は、各防御アルゴリズムに対してソフトマックス関数を用いてロジット出力し、上位の所定数の防御アルゴリズムを第１防御アルゴリズムとして特定する。なお、所定数は１つ以上の数である。また、防御特定部１０６は、もともとの第２推論モデルの推論精度と、第２推論モデルへの所定の攻撃の成功確率とを重み付して損失関数を設定してもよい。
【００４１】
これにより、攻撃されているであろう攻撃手法を特定しなくても、攻撃の可能性を検出したときに、攻撃を受けた所定のデータに基づいて適切な防御手法を予測して特定することが可能になる。
【００４２】
（４）攻撃を特定する推論モデルと所定のデータとに基づく方法４
方法４の場合、特定部１０５に含まれる攻撃特定部１０７は、各攻撃アルゴリズムと、前述の各攻撃アルゴリズムに基づく各攻撃が加えられた各データとを含む学習データを用いて教師あり学習によって生成された第３推論モデルに対し、所定のデータを入力して第１攻撃アルゴリズムを予測することを含んでもよい。
【００４３】
例えば、攻撃特定部１０７は、所定の攻撃が加えられた所定のデータを用いて、所定の攻撃が各攻撃アルゴリズムうちの少なくとも１つである確率を用いて損失関数を設定し、この損失関数が条件を満たす（例、最小となる）ときの攻撃アルゴリズムを第１攻撃アルゴリズムと特定してもよい。例えば、攻撃特定部１０７は、各攻撃アルゴリズムに対してソフトマックス関数を用いてロジット出力し、上位の所定数の攻撃アルゴリズムを第１攻撃アルゴリズムとして特定する。なお、所定数は１つ以上の数である。
【００４４】
また、特定部１０５に含まれる防御特定部１０６は、各攻撃アルゴリズムと、各攻撃アルゴリズムにより攻撃が加えられた各データに各防御アルゴリズムが適用された各データとを含む学習データを用いて教師あり学習によって生成された第６推論モデルに対し、第１攻撃アルゴリズムを入力して第１防御アルゴリズムを予測することを含んでもよい。
【００４５】
例えば、防御特定部１０６は、所定の攻撃が加えられた所定のデータに対して各防御アルゴリズムを適用した場合の所定の攻撃の成功確率を用いて損失関数を設定し、この損失関数が条件を満たす（例、最小となる）ときの防御アルゴリズムを第１防御アルゴリズムと特定してもよい。
【００４６】
これにより、攻撃されているであろう攻撃手法を予測し、予測された攻撃手法に基づいて適切な防御手法を予測して特定することが可能になる。
【００４７】
（５）攻撃を特定しない推論モデルと所定のデータの特徴量とに基づく方法５
方法５の場合、特定部１０５は、各データの各特徴量と、各特徴量に対応する各防御アルゴリズムとを含む学習データを用いて教師あり学習により生成された第４推論モデルに対し、算出された特徴量を入力して第１防御アルゴリズムを予測することを含んでもよい。
【００４８】
例えば、防御特定部１０６は、方法３と同様の損失関数を設定し、この損失関数が条件を満たす（例、最小となる）ときの防御アルゴリズムを特定してもよい。また、防御特定部１０６は、もともとの第４推論モデルの推論精度と、第４推論モデルへの所定の攻撃の成功確率とを重み付して損失関数を設定してもよい。
【００４９】
これにより、攻撃されているであろう攻撃手法を特定しなくても、攻撃の可能性を検出したときに、攻撃を受けた所定のデータの特徴量に基づいて適切な防御手法を予測して特定することが可能になる。
【００５０】
（６）攻撃を特定する推論モデルと所定のデータの特徴量とに基づく方法６
方法６の場合、特定部１０５に含まれる攻撃特定部１０７は、各データの各特徴量と、前述の各特徴量に対応する各攻撃アルゴリズムを含む学習データを用いて教師あり学習によって生成された第５推論モデルに対し、所定のデータを入力して第１攻撃アルゴリズムを予測することを含んでもよい。
【００５１】
例えば、攻撃特定部１０７は、方法３と同様の損失関数を設定し、この損失関数が条件を満たす（例、最小となる）ときの攻撃アルゴリズムを第１攻撃アルゴリズムと特定してもよい。
【００５２】
また、特定部１０５に含まれる防御特定部１０６は、各攻撃アルゴリズムと、各攻撃アルゴリズムにより攻撃が加えられた各データに各防御アルゴリズムが適用された各データとを含む学習データを用いて教師あり学習によって生成された第６推論モデルに対し、第１攻撃アルゴリズムを入力して第１防御アルゴリズムを予測することを含んでもよい。
【００５３】
例えば、防御特定部１０６は、所定の攻撃が加えられた所定のデータに対して各防御アルゴリズムを適用した場合の所定の攻撃の成功確率を用いて損失関数を設定し、この損失関数が条件を満たす（例、最小となる）ときの防御アルゴリズムを第１防御アルゴリズムと特定してもよい。
【００５４】
これにより、攻撃されているであろう攻撃手法を予測し、予測された攻撃手法に基づいて適切な防御手法を予測して特定することが可能になる。
【００５５】
適用部１０８は、特定部１０５において上記（１）〜（６）のいずれかの方法により特定された第１防御アルゴリズムを、推論部１０２における推論処理に適用する。例えば、適用部１０８は、第１防御アルゴリズムの性質によって、推論の前処理として第１防御アルゴリズムを適用してもよいし、推論処理のパラメータ調整などに第１防御アルゴリズムを適用してもよいし、推論処理の後処理として第１防御アルゴリズムを適用してもよい。具体的には、適用部１０８は、特定された第１防御アルゴリズムが前処理、推論処理自体、後処理のいずれに適用するかを判定し、判定結果に基づいて、第１防御アルゴリズムを適切に適用するとよい。
【００５６】
以上の処理により、サーバ１０は、推論処理を行う所定のデータに基づいて敵対的攻撃を受けた可能性を検出し、検出された任意の敵対的攻撃に対して適切に特定された防御手法を推論処理に適用することが可能になる。
【００５７】
出力部１０９は、推論部１０２による推論結果の結果データを、所定のデータを送信したエッジ端末２０に、通信部１０ｄを介して出力する。例えば、出力部１０９は、推論処理による分類結果、回帰分析結果、クラスタリング結果、最適化の結果などの少なくとも１つを含む結果データを出力する。
【００５８】
学習部１１０は、上述した各推論モデルを生成するための学習モデルを設定し、各学習データに対して教師あり学習を行う。学習部１１０は、パラメータ調整された学習モデルを推論モデルとして推論部１０２や、特定部１０５に出力する。例えば、学習部１１０は、学習対象データと推論の正解ラベルとを含む学習データを用いて教師あり学習を行い、推論モデル（第１推論モデル）１０２ａを生成してもよい。なお、学習部１１０は、別の装置に設けられてもよい。この場合、各推論モデルは、別の装置により生成され、サーバ１０が各推論モデルを別の装置から取得する。
【００５９】
また、学習部１１０は、各攻撃アルゴリズムにより攻撃された所定のデータと、各防御アルゴリズムと、各防御アルゴリズムにより防御処理がされた場合の各推論結果データとを含む学習データを用いて、各防御処理に対する攻撃の成功確率（例えば誤分類の確率）を小さくするための損失関数を設定して、教師あり学習を行ってもよい。この学習により第２推論モデルが生成される。
【００６０】
また、学習部１１０は、各攻撃アルゴリズムと、各攻撃アルゴリズムに基づく各攻撃が加えられた各データとを含む学習データを用いて、所定のデータに対する所定の攻撃アルゴリズムの一致確率を大きくするための損失関数を設定して、教師あり学習を行ってもよい。この学習により第３推論モデルが生成される。
【００６１】
また、学習部１１０は、各所定データの各特徴量と、各特徴量に対応する各防御アルゴリズムと、各防御アルゴリズムにより防御処理がされた場合の各推論結果データとを含む学習データを用いて、各防御処理に対する攻撃の成功確率を小さくするための損失関数を設定して、教師あり学習を行ってもよい。この学習により第４推論モデルが生成される。
【００６２】
また、学習部１１０は、各所定データの各特徴量と、各特徴量に対応する各攻撃アルゴリズムと、各攻撃アルゴリズムに基づく各攻撃が加えられた各データとを含む学習データを用いて、所定のデータに対する所定の攻撃アルゴリズムの一致確率を大きくするための損失関数を設定して、教師あり学習を行ってもよい。この学習により第５推論モデルが生成される。
【００６３】
また、学習部１１０は、各攻撃アルゴリズムと、各攻撃アルゴリズムにより攻撃が加えられた各データに各防御アルゴリズムが適用された各データと、各防御アルゴリズムにより防御処理がされた場合の各推論結果データとを含む学習データを用いて、各防御処理に対する攻撃の成功確率を小さくするための損失関数を設定して、教師あり学習を行ってもよい。これにより第６推論モデルが生成される。
【００６４】
記憶部１１１は、推論部１０２、特定部１０５、学習部１１０などに関するデータを記憶する。例えば、所定の攻撃に対応する攻撃アルゴリズムを加えたデータに対して、適切な防御アルゴリズムが何であるかを事前に分析又は学習しておき、所定の攻撃が加えられた時のデータの特徴量と、防御アルゴリズムとを含む対応データ１１１ａが記憶部１１１に記録される。
【００６５】
＜概念図＞
図４は、実施形態にかかる処理の概念図を説明するための図である。図４に示す例では、所定のデータとして画像を用い、推論モデルとしてＣＮＮを用い、所定の攻撃として、１ピクセルアタックなどの摂動を与える敵対的攻撃を用いるとする。また、Ａｔｔａｃｋはエッジ端末２０側、Ｄｅｆｅｎｓｅはサーバ１０側とする。
【００６６】
エッジ端末２０は、所定の画像データに摂動を与え、この摂動を含む画像データをサーバ１０に送信する。エッジ端末２０は、繰り返し画像データに摂動を与えることで、サーバ１０側の学習モデルの予測精度を低下させたり、推論モデルを予測して構築したりすることが可能になる。
【００６７】
サーバ１０は、エッジ端末２０から取得した所定のデータに対して推論処理を実行する。図４に示す場合、サーバ１０は、画像データの分類結果を予測結果（推論結果）として出力する。また、図４に示す例では、画像データ内に犬が含まれるため、摂動が加えられなければ、分類結果として犬が出力される。しかし、犬の画像データに摂動が加えられることにより、サーバ１０は、何も防御処理をしなければ、適切に分類することができず、例えば、カエル、ヘビなどの異なる分類結果を返すことになる。
【００６８】
そこで、サーバ１０は、上述した敵対的攻撃に対して、公知の敵対的攻撃を検出する技術を用いて、敵対的攻撃を検出する。また、サーバ１０は、様々な敵対的攻撃により生成された画像と分類結果を学習データとする教師あり学習により生成された推論モデル（分類予測モデル）を用いて、所定のデータを入力して敵対的攻撃が加えられた可能性を予測してもよい。
【００６９】
サーバ１０は、敵対的攻撃の可能性があると検出された場合、摂動があると予測された画像データに基づいて、上述の（１）〜（６）の方法のいずれかを用いて、適切な防御アルゴリズムを特定する。これにより、適切な防御アルゴリズムが推論処理に適用されるため、誤分類されることを防ぎ、犬と正しく分類された結果を返す可能性を高くすることができる。
【００７０】
＜データ例＞
図５Ａ乃至Ｃは、実施形態に係る対応データ１１１ａの一例を示す図である。図５Ａに示す例において、対応データＡは、推論対象データを特定する情報（ＩＤ）に関連付けて、推論対象データの特徴量と、この特徴量から導き出される攻撃アルゴリズムに効果があると考えられる防御アルゴリズムを特定する防御特定情報（防御ＩＤ）とを含む。例えば、図５Ａに示す対応データＡは、上述した方法１で用いられる。
【００７１】
図５Ｂに示す例において、対応データＢ１は、推論対象データを特定する情報（ＩＤ）に関連付けて、推論対象データの特徴量と、この特徴量から導き出される攻撃アルゴリズムを特定する攻撃特定情報（攻撃ＩＤ）とを含む。また、対応データＢ２は、攻撃ＩＤに関連付けて、防御ＩＤを含む。
【００７２】
ここで、特徴量は、推論対象データに含まれる所定の攻撃に関するデータであり、上述した特徴量の少なくとも１つが登録されればよい。また、図５Ａ乃至Ｃに示す対応データは、例えば、深層学習に用いられる学習モデルで実用化されてもよい。
【００７３】
＜攻撃手法、防御手法、及び検出処理の具体例＞
次に、本実施形態に適用可能な攻撃手法、防御手法、及び検出処理について、以下に例示列挙するが、これらの例に限られない。
【００７４】
＜＜攻撃手法の例＞＞
（回避攻撃（Evasion））
Auto-Attack (Croce and Hein, 2020)
（回避攻撃（White-Box型））
Auto Projected Gradient Descent (Auto-PGD) (Croce and Hein, 2020)、Shadow Attack (Ghiasi et al., 2020)、Wasserstein Attack (Wong et al., 2020)、Imperceptible, Robust, and Targeted Adversarial Examples for Automatic Speech Recognition (Qin et al., 2019)、Brendel & Bethge Attack (Brendel et al., 2019)、Targeted Universal Adversarial Perturbations (Hirano and Takemoto, 2019)、Audio Adversarial Examples: Targeted Attacks on Speech-to-Text (Carlini and Wagner, 2018)、High Confidence Low Uncertainty (HCLU) Attack (Grosse et al., 2018)、Iterative Frame Saliency (Inkawhich et al., 2018)、DPatch (Liu et al., 2018)、Robust DPatch (Liu et al., 2018, (Lee and Kolter, 2019))、ShapeShifter (Chen et al., 2018)、Projected Gradient Descent (PGD) (Madry et al., 2017)、NewtonFool (Jang et al., 2017)、Elastic Net (Chen et al., 2017)、Adversarial Patch (Brown et al., 2017)、Decision Tree Attack (Papernot et al., 2016)、Carlini & Wagner (C&W) L_2 and L_inf attack (Carlini and Wagner, 2016)、Basic Iterative Method (BIM) (Kurakin et al., 2016)、Jacobian Saliency Map (Papernot et al., 2016)、Universal Perturbation (Moosavi-Dezfooli et al., 2016)、Feature Adversaries (Sabour et al., 2016)、DeepFool (Moosavi-Dezfooli et al., 2015)、Virtual Adversarial Method (Miyato et al., 2015)、Fast Gradient Method (Goodfellow et al., 2014)
（回避攻撃（Black-Box型））
Square Attack (Andriushchenko et al., 2020)、HopSkipJump Attack (Chen et al., 2019)、Threshold Attack (Vargas et al., 2019)、Pixel Attack (Vargas et al., 2019, Su et al., 2019)、Simple Black-box Adversarial (SimBA) (Guo et al., 2019)、Spatial Transformation (Engstrom et al., 2017)、Query-efficient Black-box (Ilyas et al., 2017)、Zeroth Order Optimisation (ZOO) (Chen et al., 2017)、Decision-based/Boundary Attack (Brendel et al., 2018)
（汚染攻撃（Poisoning））
Adversarial Backdoor Embedding (Tan and Shokri, 2019)、Clean Label Feature Collision Attack (Shafahi, Huang et. al., 2018)、Backdoor Attack (Gu et. al., 2017)、Poisoning Attack on Support Vector Machines (SVM) (Biggio et al., 2013)、Bullseye Polytope (Aghakhani et al., 2020)
（抽出攻撃（Extraction））
Functionally Equivalent Extraction (Jagielski et al., 2019)、Copycat CNN (Correia-Silva et al., 2018)、KnockoffNets (Orekondy et al., 2018)
（属性推論攻撃（Attribute Inference））
Attribute Inference Black-Box、Attribute Inference White-Box Lifestyle Decision Tree (Fredrikson et al., 2015)、Attribute Inference White-Box Decision Tree (Fredrikson et al., 2015)
（メンバーシップ推論攻撃（Membership Inference））
Membership Inference Black-Box、Membership Inference Black-Box Rule-Based、Label-Only Boundary Distance Attack (Choquette-Choo et al., 2020)、Label-Only Gap Attack (Choquette-Choo et al., 2020)、
（移転攻撃（Model Inversion））
MIFace (Fredrikson et al., 2015)
（再構成攻撃（Reconstruction））
Database Reconstruction
【００７５】
＜＜防御手法の例＞＞
（事前処理）
InverseGAN (An Lin et al. 2019)、DefenseGAN (Samangouei et al. 2018)、Video Compression、Resampling (Yang et al., 2019)、Thermometer Encoding (Buckman et al., 2018)、MP3 Compression (Carlini, N. & Wagner, D., 2018)、Total Variance Minimization (Guo et al., 2018)、PixelDefend (Song et al., 2017)、Gaussian Data Augmentation (Zantedeschi et al., 2017)、Feature Squeezing (Xu et al., 2017)、Spatial Smoothing (Xu et al., 2017)、Spatial Smoothing PyTorch、Spatial Smoothing TensorFlow v2、JPEG Compression (Dziugaite et al., 2016)、Label Smoothing (Warde-Farley and Goodfellow, 2016)、Virtual adversarial training (Miyato et al., 2015)
（事後処理）
Reverse Sigmoid (Lee et al., 2018)、Random Noise (Chandrasekaranet al., 2018)、Class Labels (Tramer et al., 2016, Chandrasekaranet al., 2018)、High Confidence (Tramer et al., 2016)、Rounding (Tramer et al., 2016)、General Adversarial Training (Szegedy et al., 2013)、Madry's Protocol (Madry et al., 2017)、Fast Is Better Than Free (Wong et al., 2020)
（回避防御（Evasion））
Defensive Distillation (Papernot et al., 2015)
（汚染防御（Poisoning））
Neural Cleanse (Wang et al., 2019)
【００７６】
＜＜検出処理＞＞
（回避検出（Evasion））
Basic detector based on inputs、Detector trained on the activations of a specific layer、Detector based on Fast Generalized Subset Scan (Speakman et al., 2018)
（汚染検出（Poisoning））
Detection based on activations analysis (Chen et al., 2018)、Detection based on data provenance (Baracaldo et al., 2018)、Detection based on spectral signatures (Tran et al., 2018)
学習部１１０は、上述した攻撃手法を含む各攻撃アルゴリズムにより学習対象データに攻撃を加えた各データ、攻撃が加えられた各データに対して上述した防御手法を含む各防御アルゴリズムを適用した推論処理による結果データなどを用いて、上述した各推論モデルを生成する。
【００７７】
検出部１０３は、所定の攻撃の可能性を検出する際に、どの検出処理により検出されたかによって、どのタイプの攻撃手法なのかを特定することが可能である。例えば、検出部１０３は、回避検出処理において所定の攻撃が検出された場合、所定の攻撃は回避攻撃であると特定することができ、また、汚染検出処理において所定の攻撃が検出された場合、所定の攻撃は汚染攻撃であると特定することができる。
【００７８】
この場合、特定部１０５は、検出された攻撃の種類に基づいて、この攻撃の種類に対応する防御手法を特定してもよい。また、特定部１０５は、ある種類の防御手法が複数ある場合は、上述した推論モデルを用いてロジット出力が大きいものから順に、所定数の防御手法を選択して特定してもよい。
【００７９】
＜動作＞
図６は、本実施形態に係るシステムにおける処理の一例を示すシーケンス図である。図６に示す処理は、サーバ１０及び各エッジ端末２０により実行される。図６に示す例では、エッジ端末２０は１つしか表記しないが、複数のエッジ端末２０があっても各エッジ端末２０の処理内容は、図６に示す処理と同様である。なお、図６に示す例では、エッジ端末２０をユーザ端末２０とも表記する。
【００８０】
ステップＳ１０２において、ユーザ端末２０は、推論対象データをサーバ１０に送信する。サーバ１０の取得部１０１は、ユーザ端末２０から推論対象データ取得する。
【００８１】
ステップＳ１０４において、サーバ１０の推論部１０２は、所定の推論モデル１０２ａに推論対象データを入力し、推論処理を実行する。
【００８２】
ステップＳ１０６において、サーバ１０の検出部１０３は、推論対象データに対して、所定の攻撃が加えられている可能性を検出する。検出部１０３は、例えば可能性を数値で表し、所定値以上の数値であれば可能性ありとして検出する。
【００８３】
ステップＳ１０８において、サーバ１０の特定部１０５は、所定の攻撃が加えられた可能性がある所定のデータに基づいて、所定の攻撃に対応して防御可能な第１防御アルゴリズムを複数の防御アルゴリズムの中から特定する。また、サーバ１０の適用部１０８は、第１防御アルゴリズムを推論部１０２における推論処理に適用する。ここでは、防御アルゴリズムを特定し、推論処理に適用する処理は防御処理と称される。
【００８４】
ステップＳ１１０において、サーバ１０の出力部１０９は、防御処理が適用された場合は、同じ所定のデータに対して再度推論処理が行われ、その結果データをユーザ端末２０に送信し、防御処理が適用されない場合は、ステップＳ１０４において推論された結果データをユーザ端末２０に送信する。なお、ステップＳ１０６の処理を、ステップＳ１０４の処理の前に実行してもよい。この場合に、所定の攻撃が検出されると、防御処理が実行された後に推論処理を行うことができるため、再度推論処理を実行する必要がない。
【００８５】
図７は、本実施形態に係るサーバ１０における防御制御処理の一例を示すフローチャートである。図７に示す処理は、サーバ１０の処理の一例を示すにすぎない。
【００８６】
ステップＳ２０２において、サーバ１０の特定部１０５は、検出部１０３から取得した検出結果に基づいて、所定のデータに対して所定の攻撃が加えられた可能性があるか否かを判定する。所定の攻撃の可能性ありと判定されると（ステップＳ２０２−ＹＥＳ）、処理はステップＳ２０４に進み、所定の攻撃がないと判定されると（ステップＳ２０２−ＮＯ）、学習対象データをユーザ端末２０から取得する。
【００８７】
ステップＳ２０４において、サーバ１０の特定部１０５は、上述した（１）〜（６）のいずれかの手法により、所定の攻撃に対応して防御可能な防御アルゴリズムを特定する。
【００８８】
ステップＳ２０６において、サーバ１０の適用部１０８は、特定された防御アルゴリズムを推論処理に適用する。
【００８９】
ステップＳ２０８において、サーバ１０の推論部１０２は、防御アルゴリズムが適用された推論処理を行う。
【００９０】
これにより、検出された任意の攻撃に対して適切に防御することが可能になる。
【００９１】
以上説明した実施形態は、本発明の理解を容易にするためのものであり、本発明を限定して解釈するためのものではない。実施形態が備える各要素並びにその配置、材料、条件、形状及びサイズ等は、例示したものに限定されるわけではなく適宜変更することができる。
【００９２】
また、各エッジ端末２０又はサーバ１０から出力されるデータは、ブロックチェーン技術を用いて管理されてもよい。ブロックチェーンは、改ざんがほぼ不可能であることから、各装置から出力されたデータが改ざんされることを防ぎ、システムの信頼性を向上させることができる。また、ブロックチェーンは、量子ブロックチェーンが用いられてもよい。
【００９３】
また、上述した実施形態におけるシステムは、連合学習に適用してもよい。例えば、連合学習において、サーバ１０の推論部１０２の機能を各エッジ端末２０に設け、各エッジ端末２０が学習又は推論を行い、その結果データに基づいて改善点をサーバ１０に送信する。
【００９４】
このとき、あるエッジ端末２０が敵対的攻撃を受ける又は加えると、この敵対的攻撃を受けたデータを学習又は推論した結果は、誤った結果になってしまう。そして、この誤った結果を改善点として、サーバ１０が共有の学習モデルを修正すると、この学習モデルの精度が落ちてしまう。
【００９５】
そこで、サーバ１０は、検出部１０３、算出部１０４及び特定部１０５の機能をエッジ端末２０に設けさせ、エッジ端末２０側で所定の攻撃の検出、防御を行わせてもよい。また、サーバ１０は、改善点のデータの特徴に基づいて、所定の防御アルゴリズムを特定し、この防御アルゴリズムを共有の学習モデルに適用してもよい。
【００９６】
また、サーバ１０は、各エッジ端末２０からデータを取得する場合、各エッジ端末２０の端末ＩＤを取得し、取得したデータとともに関連付けて記憶しておく。この場合、サーバ１０は、所定の攻撃の可能性を検出したデータを送信したエッジ端末２０の端末ＩＤにフラグを立てるなどして識別できるようにする。サーバ１０は、フラグなどにより識別された端末ＩＤのエッジ端末２０からデータが送信された場合、そのデータに対して処理を拒否したり、無視したりする。また、識別されたエッジ端末２０にサーバ１０が推論結果を返す場合には、異なる結果をランダムに選択して返すようにしてもよい。これにより、エッジ端末２０側によるサーバ１０の学習モデルの再現性等を希釈化することができる。
【符号の説明】
【００９７】
１０…情報処理装置、１０ａ…ＣＰＵ、１０ｂ…ＲＡＭ、１０ｃ…ＲＯＭ、１０ｄ…通信部、１０ｅ…入力部、１０ｆ…表示部、１０１…取得部、１０２…推論部、１０２ａ…推論モデル、１０３…検出部、１０４…算出部、１０５…特定部、１０６…防御特定部、１０７…攻撃特定部、１０８…適用部、１０９…出力部、１１０…学習部、１１１…記憶部、１１１ａ…対応データ
【要約】
【課題】学習又は推論に用いるデータへの任意の攻撃に対して適切に防御すること。
【解決手段】情報処理装置は、所定のデータを取得する取得部と、各データと、各データを用いて所定の問題を解いた各結果データとを含む学習データを用いて学習された第１推論モデルに、所定のデータを入力して推論処理を行う推論部と、所定のデータに所定の攻撃が加えられた可能性を検出する検出部と、可能性が検出された場合、所定の攻撃が加えられた所定のデータに基づいて、所定の攻撃に対応して防御可能な第１防御アルゴリズムを複数の防御アルゴリズムの中から特定する特定部と、第１防御アルゴリズムを推論処理に適用する適用部と、を備える。
【選択図】図３【図１】
0006971514.tif 000002
【図２】
0006971514.tif 000003
【図３】
0006971514.tif 000004
【図４】
0006971514.tif 000005
【図５Ａ】
0006971514.tif 000006
【図５Ｂ】
0006971514.tif 000007
【図５Ｃ】
0006971514.tif 000008
【図６】
0006971514.tif 000009
【図７】
0006971514.tif 000010