(57)【要約】【課題】入力データとしてラベルなしデータを用いるVAEであっても、Adversarial  Attackの耐性評価を行えるようにする。【解決手段】評価装置は、変分オートエンコーダの潜在変数の入力を受け付け、入力された潜在変数をクラスタリングし、クラスタごとに当該クラスタに属する潜在変数に前記クラスタを示すラベルを付与する。その後、評価装置は、付与されたラベルに基づき潜在変数を正確に分類するように分類器の学習を行い、学習後の分類器に対し、Adversarial  Attackの耐性評価を行い、耐性評価の結果を出力する。【選択図】図２
2020160743.tif 000002
【特許請求の範囲】
【請求項１】
変分オートエンコーダの潜在変数の入力を受け付ける入力部と、
入力された前記潜在変数を所定のクラスタリング手法によりクラスタリングし、クラスタごとに当該クラスタに属する潜在変数に前記クラスタのラベルを付与するラベル付与部と、
前記ラベルが付与された潜在変数を教師データとして用いて分類器の学習を行う学習部と、
学習後の前記分類器に対し、Adversarial  Attackの耐性評価を行う評価部と、
前記Adversarial  Attackの耐性評価の結果を出力する出力部と、
を備えることを特徴とする評価装置。
【請求項２】
前記所定のクラスタリング手法は、
X-meansであることを特徴とする請求項１に記載の評価装置。
【請求項３】
前記評価部は、
学習後の前記分類器に入力されるデータに加えるノイズの強さごとに、前記分類器が、前記ノイズの付加後のデータを前記ノイズの付加前のデータに付与されたラベルと同じラベルに分類する確率を測定することにより、前記学習後の分類器に対するAdversarial  Attackの耐性評価を行う
ことを特徴とする請求項１に記載の評価装置。
【請求項４】
評価装置により実行される評価方法であって、
変分オートエンコーダの潜在変数の入力を受け付けるステップと、
前記入力された潜在変数を所定のクラスタリング手法によりクラスタリングし、クラスタごとに当該クラスタに属する潜在変数に前記クラスタのラベルを付与するラベル付与ステップと、
前記ラベルが付与された潜在変数を教師データとして用いて分類器の学習を行う学習ステップと、
学習後の前記分類器に対し、Adversarial  Attackの耐性評価を行う評価ステップと、
前記Adversarial  Attackの耐性評価の結果を出力する出力ステップと、
を含むことを特徴とする評価方法。
【請求項５】
変分オートエンコーダの潜在変数の入力を受け付ける入力ステップと、
入力された前記潜在変数を所定のクラスタリング手法によりクラスタリングし、クラスタごとに当該クラスタに属する潜在変数に前記クラスタのラベルを付与するラベル付与ステップと、
前記ラベルが付与された潜在変数を教師データとして用いて分類器の学習を行う学習ステップと、
学習後の前記分類器に対し、Adversarial  Attackの耐性評価を行う評価ステップと、
前記Adversarial  Attackの耐性評価の結果を出力する出力ステップと、
をコンピュータに実行させることを特徴とする評価プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、評価装置、評価方法、および、評価プログラムに関する。
【背景技術】
【０００２】
深層学習の手法としてVAE（Variational  Auto  Encoder、変分オートエンコーダ）が広く活用されているが、近年、機械学習の脆弱性に対する攻撃であるAdversarial  Attackの脅威が示唆されている。Adversarial  Attackとは意図的に機械学習の脆弱性をつくことで、学習の品質低下や分類問題における誤分類等を発生させる攻撃手法である。近年深層学習による教師あり分類問題において、データに対して人が認知できないような微小なノイズを乗せたAdversarial  Exampleを用いてデータを誤認させる手法が脅威となっており、研究が進められている。
【０００３】
Adversarial  Exampleを用いたAdversarial  Attackは、教師無し学習であるVAEに対しても、大きな脅威である。VAEは入力データを潜在変数に圧縮し、潜在変数から入力データを再構成するものであり、このVAEへの入力データにAdversarial  Attackによりノイズを加えられると、再構成先が操作される。その結果、例えば、VAEを用いる異常検知システムが、本来異常である通信データを正常な通信データと判定してしまうおそれがある。したがって、既存のVAEアプリケーションがAdversarial  Attackに対してどのような耐性を持つのか評価することは重要な課題である。
【０００４】
しかし、従来、VAEに対するAdversarial  Attackの耐性評価については、VAEへの入力データにラベルがついている場合にしか行うことができなかった。このVAEに対する耐性評価は、例えば、VAEへの入力データのラベルに基づきVAEの中間出力（潜在変数）を分類するよう分類器を学習させ、その学習した分類器に対してAdversarial  Attackを行うことにより行われる。
【先行技術文献】
【非特許文献】
【０００５】
【非特許文献１】VAE(Variational  Auto  Encoder)、［平成31年3月7日検索］、インターネット＜URL：https://arxiv.org/abs/1312.6114＞
【非特許文献２】教師あり学習に対する攻撃、［平成31年3月7日検索］、インターネット＜URL：https://arxiv.org/abs/1412.6572＞
【非特許文献３】教師なし学習に対する攻撃、［平成31年3月7日検索］、インターネット＜https://arxiv.org/abs/1702.06832＞
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかし、上記の方法により、VAEに対するAdversarial  Attackの耐性評価を行う場合、VAEへの入力データにラベルがついていることを前提としている。このため、入力データとしてラベルなしデータを用いるVAEに対するAdversarial  Attackの耐性評価を行うことができなかった。そこで、本発明は、前記した問題を解決し、入力データとしてラベルなしデータを用いるVAEであっても、Adversarial  Attackの耐性評価を行えるようにすることを課題とする。
【課題を解決するための手段】
【０００７】
前記した課題を解決するため、本発明は、変分オートエンコーダの潜在変数の入力を受け付ける入力部と、入力された前記潜在変数を所定のクラスタリング手法によりクラスタリングし、クラスタごとに当該クラスタに属する潜在変数に前記クラスタのラベルを付与するラベル付与部と、前記ラベルが付与された潜在変数を教師データとして用いて分類器の学習を行う学習部と、学習後の前記分類器に対し、Adversarial  Attackの耐性評価を行う評価部と、前記Adversarial  Attackの耐性評価の結果を出力する出力部と、を備えることを特徴とする。
【発明の効果】
【０００８】
本発明によれば、入力データとしてラベルなしデータを用いるVAEであっても、Adversarial  Attackの耐性評価を行うことができる。
【図面の簡単な説明】
【０００９】
【図１】図１は、VAEの概要を説明する図である。
【図２】図２は、評価装置の動作概要を説明する図である。
【図３】図３は、評価装置の構成例を示す図である。
【図４】図４は、防御成功率を用いた、Adversarial  Attackの耐性評価の例を示す図である。
【図５】図５は、評価装置の処理手順の例を示す図である。
【図６】図６は、VAEを用いた通信の異常検知システムの例を説明する図である。
【図７】図７は、評価プログラムを実行するコンピュータの例を示す図である。
【発明を実施するための形態】
【００１０】
以下、図面を参照しながら、本発明を実施するための形態（実施形態）について説明する。本発明は、以下に説明する実施形態に限定されない。
【００１１】
まず、図１を用いて、VAEの概要を説明する。VAEは、図１に示すように、エンコーダと呼ばれるニューラルネットで、入力データを低次元の潜在変数に落とし込んでから、デコーダで入力データの再構成を行うよう学習を行う。上記の学習の結果、VAEの潜在変数には入力データを再構成するために必要な情報が保存される。つまり、潜在変数は、入力データの本質的な特徴を表現する。
【００１２】
これにより、学習後のVAEは、例えば、図２の符号２０１に示すデータ群の入力を受け付けると、当該データ群を再構成し、符号２０２に示すデータ群を出力する。ところが、Adversarial  Attackにより、VAEにノイズが加えられると、VAEは、符号２０１のデータ群を再構成できない場合がある（符号２０３参照）。
【００１３】
引き続き図２を用いて、上記のVAEに対するAdversarial  Attackの耐性評価を行う評価装置の動作概要を説明する。
【００１４】
まず、評価装置は、VAEが学習した潜在変数をクラスタリングし、ラベルを付与する（Ｓ１）。つまり、本質的に類似する入力データならば、潜在変数も同様になるので、評価装置は、VAEが学習した潜在変数のうち、特徴の近いもの同士でクラスタを生成する。そして、評価装置は生成したクラスタごとに、当該クラスタに属する潜在変数にラベル（例えば、ラベル１、ラベル２、ラベル３等）を付与する。
【００１５】
Ｓ１の後、評価装置は、Ｓ１で潜在変数に付与したラベルを正確に分類するように分類器の学習を行う（Ｓ２）。そして、評価装置は、Ｓ２で学習した分類器に対して、既存の攻撃手法を適用し、耐性評価を行う（Ｓ３）。
【００１６】
例えば、評価装置は、Ｓ２で学習した分類器に対し、Adversarial  Attackを適用し耐性評価を行う。そして、評価装置は、当該分類器に対する耐性評価の結果を、VAEのAdversarial  Attackの耐性評価として出力する。つまり、Ｓ２で学習した分類器は、VAEが学習した特徴（潜在変数）に基づいてデータを分類するので、当該分類器に当該分類器がデータを正確に分類できないような攻撃を適用することは、VAE本体を間接的に攻撃したものと考えることができる。よって、Ｓ２で学習した分類器に対するAdversarial  Attackの耐性評価の結果は、VAEに対するAdversarial  Attackの耐性評価の結果と考えることができる。
【００１７】
次に、図３を用いて、評価装置１０の構成例を説明する。評価装置１０は、例えば、図３に示すように、入出力部（入力部および出力部）１１と、制御部１２と、記憶部１３とを備える。入出力部１１は、各種データの入出力を司る。例えば、入出力部１１は、評価対象となるVAEの潜在変数の入力を受け付けたり、当該VAEに対するAdversarial  Attackの耐性評価の結果を出力したりする。
【００１８】
制御部１２は、評価装置１０全体の制御を司る。記憶部１３は、制御部１２が処理を実行する際に参照する種々の情報や制御部１２による処理結果を記憶する。
【００１９】
制御部１２は、例えば、ラベル付与部１２１と、分類部１２２と、学習部１２３と、評価部１２４とを備える。
【００２０】
ラベル付与部１２１は、VAEの潜在変数を所定のクラスタリング手法によりクラスタリングし、クラスタごとに当該クラスタに属する潜在変数に当該クラスタを示すラベル（擬似ラベル）を付与する。
【００２１】
例えば、ラベル付与部１２１は、入出力部１１経由で、VAEの潜在変数の入力を受け付けると、当該潜在変数をX-means等によりクラスタリングする。そして、ラベル付与部１２１はクラスタごとに、当該クラスタに属する潜在変数に対して当該クラスタの番号をラベル（擬似ラベル）として付与する。そして、ラベル付与部１２１はラベルを付与した潜在変数（ラベル付き潜在変数１３１）を記憶部１３に格納する。
【００２２】
分類部１２２は、所定の分類器を備え、当該分類器によりデータの分類を行う。当該分類器の学習は、学習部１２３により行われる。なお、分類器（分類部１２２）は、評価装置１０の内部に装備されるものとして説明するが、評価装置１０の外部に装備されてもよい。
【００２３】
学習部１２３は、ラベル付き潜在変数を教師データとして用いて分類器の学習を行う。例えば、学習部１２３は、記憶部１３に格納されたラベル付き潜在変数１３１を用いて、潜在変数をラベルどおり正確に分類するように分類器の学習を行う。
【００２４】
評価部１２４は、学習部１２３による学習後の分類器に対するAdversarial  Attackの耐性評価を行う。耐性評価の結果は、例えば、入出力部１１経由で外部装置に出力される。ここでのAdversarial  Attackの耐性評価における評価指標は、例えば、Adversarial  Attackに対する防御成功率を用いる。防御成功率は、例えば、分類器が、ノイズが加えられたデータを元のデータと同じラベルに分類する確率を用いる。例えば、評価部１２４は、Adversarial  Exampleを生成するノイズの強さを変化させたときの、学習後の分類器の防御成功率を測定することで、学習後の分類器に対するAdversarial  Attackの耐性評価を行う。
【００２５】
なお、一般にAdversarial  Exampleと元のデータ（original）とそのデータに加えられるノイズ（noise）との関係は以下の式（１）のように表される。
【００２６】
Adversarial  Example=(1-ε)*original+ε*noise…式（１）
【００２７】
上記の式（１）におけるεは、ノイズの強さを表すパラメータである。評価部１２４がεを様々に変化させて防御成功率を測定することで、学習後の分類器に対するAdversarial  Attackの耐性評価を行うことができる。
【００２８】
VAEに対するAdversarial  Attackの耐性評価例を図４に示す。図４ではεを0から0.1ずつ増やしていった場合の防御成功率を示している。図４の左に示すグラフのハッチング部分の面積が大きいほど、攻撃に対する耐性が高い（つまり堅牢な）VAEと評価することができる。
【００２９】
次に、図５を用いて評価装置１０の処理手順の例を説明する。まず、評価装置１０のラベル付与部１２１は、入出力部１１経由で評価対象のVAEの潜在変数の入力を受け付けると、入力されたVAEの潜在変数をクラスタリングし、ラベルを付与する（Ｓ１１）。次に、学習部１２３は、Ｓ１で潜在変数に付与されたラベルを正確に分類するように分類器の学習を行う（Ｓ１２）。そして、評価部１２４は、学習後の分類器のAdversarial  Attackに対する耐性評価を行う（Ｓ１３）。その後、評価部１２４は、耐性評価の結果を入出力部１１経由で出力する。
【００３０】
このようにすることで、評価装置１０は、入力データとしてラベルなしデータを用いるVAEであっても、Adversarial  Attackの耐性評価を行うことができる。
【００３１】
なお、前記した実施形態において、評価装置１０が耐性評価の対象とするVAEは、評価装置１０の外部にあるものとして説明したが、評価装置１０の内部に装備されてもよい。
【００３２】
また、前記したVAEのAdversarial  Attackに対する耐性評価を、VAEを用いた通信の異常検知システムに対する耐性評価に適用してもよい。まず、図６を用いて、VAEを用いた通信の異常検知システムの概要を説明する。
【００３３】
例えば、図６に示すように、異常検知システムは、VAEにより、正常な通信（インターネットと、攻撃から守りたいシステムとの間の正常な通信）の特徴を学習する。その後、異常検知システムは、インターネットと、攻撃から守りたいシステムとの間の通信を監視し、学習した特徴と異なる特徴の通信を、異常として検知する。なお、ここでの通信の特徴は、例えば、通信の、宛先アドレス、送信元アドレス、プロトコル、ポート番号、httpのパラメータ、パケット長、パケット数等である。
【００３４】
この場合、評価装置１０は、異常検知システムの耐性評価を行うため、上記の学習後のVAEの潜在変数に対するラベルの付与と分類器の学習を行う。例えば、まず、異常検知システムのVAEは、正常な通信および異常な通信の両方を含んだ様々な通信データを潜在変数へと圧縮する。そして、評価装置１０は、上記の潜在変数をX-means等のクラスタリング手法を用いてクラスタリングし、クラスタごとに当該クラスタに属する潜在変数に当該クラスタのラベルを付与する。その後、評価装置１０は、付与されたラベルに基づいてデータを正確に分類するよう、分類器の学習を行う。
【００３５】
次に、評価装置１０は、学習後の分類器にAdversarial  Attackを適用する。例えば、評価装置１０は、異常検知システムが検知すべき異常通信データと、異常通信データが偽装に用いる正常通信データとを用意し、それぞれの通信データにラベルを付与しておく。そして、評価装置１０は、学習後の分類器が異常通信データを正常通信データと同じラベルに誤分類する様なノイズを乗せることで、異常検知システムのVAEに対して間接的にAdversarial  Attackを適用する。例えば、評価装置１０は、異常検知システムに入力される通信データに対し、当該通信データのマルウェアの機能に関係のない部分のみを改竄するようなノイズを乗せる。
【００３６】
そして、評価装置１０は、前記したAdversarial  Attackに対する耐性評価の指標に基づき、通信データに様々な強さのノイズを乗せ、異常検知システムが異常を検知できるか否かを評価する。これにより、評価装置１０は、異常検知システムのAdversarial  Attackに対する耐性を評価することができる。
【００３７】
なお、上記の実施形態で述べた評価装置１０の機能を実現するプログラムを所望の情報処理装置（コンピュータ）にインストールすることによって実装できる。例えば、パッケージソフトウェアやオンラインソフトウェアとして提供される上記のプログラムを情報処理装置に実行させることにより、情報処理装置を評価装置１０として機能させることができる。ここで言う情報処理装置には、デスクトップ型またはノート型のパーソナルコンピュータ、ラック搭載型のサーバコンピュータ等が含まれる。また、その他にも、情報処理装置にはスマートフォン、携帯電話機やＰＨＳ（Personal  Handyphone  System）等の移動体通信端末、さらには、ＰＤＡ（Personal  Digital  Assistants）等がその範疇に含まれる。また、評価装置１０を、クラウドサーバに実装してもよい。
【００３８】
図７を用いて、上記のプログラム（評価プログラム）を実行するコンピュータの一例を説明する。図７に示すように、コンピュータ１０００は、例えば、メモリ１０１０と、ＣＰＵ１０２０と、ハードディスクドライブインタフェース１０３０と、ディスクドライブインタフェース１０４０と、シリアルポートインタフェース１０５０と、ビデオアダプタ１０６０と、ネットワークインタフェース１０７０とを有する。これらの各部は、バス１０８０によって接続される。
【００３９】
メモリ１０１０は、ＲＯＭ（Read  Only  Memory）１０１１およびＲＡＭ（Random  Access  Memory）１０１２を含む。ＲＯＭ１０１１は、例えば、ＢＩＯＳ（Basic  Input  Output  System）等のブートプログラムを記憶する。ハードディスクドライブインタフェース１０３０は、ハードディスクドライブ１０９０に接続される。ディスクドライブインタフェース１０４０は、ディスクドライブ１１００に接続される。ディスクドライブ１１００には、例えば、磁気ディスクや光ディスク等の着脱可能な記憶媒体が挿入される。シリアルポートインタフェース１０５０には、例えば、マウス１１１０およびキーボード１１２０が接続される。ビデオアダプタ１０６０には、例えば、ディスプレイ１１３０が接続される。
【００４０】
ここで、図７に示すように、ハードディスクドライブ１０９０は、例えば、ＯＳ１０９１、アプリケーションプログラム１０９２、プログラムモジュール１０９３およびプログラムデータ１０９４を記憶する。前記した実施形態で説明した各種データや情報は、例えばハードディスクドライブ１０９０やメモリ１０１０に記憶される。
【００４１】
そして、ＣＰＵ１０２０が、ハードディスクドライブ１０９０に記憶されたプログラムモジュール１０９３やプログラムデータ１０９４を必要に応じてＲＡＭ１０１２に読み出して、上述した各手順を実行する。
【００４２】
なお、上記の評価プログラムに係るプログラムモジュール１０９３やプログラムデータ１０９４は、ハードディスクドライブ１０９０に記憶される場合に限られず、例えば、着脱可能な記憶媒体に記憶されて、ディスクドライブ１１００等を介してＣＰＵ１０２０によって読み出されてもよい。あるいは、上記のプログラムに係るプログラムモジュール１０９３やプログラムデータ１０９４は、ＬＡＮやＷＡＮ（Wide  Area  Network）等のネットワークを介して接続された他のコンピュータに記憶され、ネットワークインタフェース１０７０を介してＣＰＵ１０２０によって読み出されてもよい。
【符号の説明】
【００４３】
１０  評価装置
１１  入出力部
１２  制御部
１３  記憶部
１２１  ラベル付与部
１２２  分類部
１２３  学習部
１２４  評価部
【図１】
2020160743.tif 000003
【図２】
2020160743.tif 000004
【図３】
2020160743.tif 000005
【図４】
2020160743.tif 000006
【図５】
2020160743.tif 000007
【図６】
2020160743.tif 000008
【図７】
2020160743.tif 000009