(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-11-07
(45)【発行日】2024-11-15
(54)【発明の名称】モデル検証装置、モデル検証方法、及びプログラム
(51)【国際特許分類】
G06N 3/02 20060101AFI20241108BHJP
G06N 99/00 20190101ALI20241108BHJP
【FI】
G06N3/02
G06N99/00 180
(21)【出願番号】P 2021084645
(22)【出願日】2021-05-19
【審査請求日】2023-10-04
(73)【特許権者】
【識別番号】000004226
【氏名又は名称】日本電信電話株式会社
(73)【特許権者】
【識別番号】504132272
【氏名又は名称】国立大学法人京都大学
(74)【代理人】
【識別番号】110004381
【氏名又は名称】弁理士法人ITOH
(74)【代理人】
【識別番号】100107766
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【氏名又は名称】伊東 忠彦
(74)【代理人】
【識別番号】100124844
【氏名又は名称】石原 隆治
(72)【発明者】
【氏名】西野 正彬
(72)【発明者】
【氏名】山本 章博
(72)【発明者】
【氏名】友成 光
【審査官】佐藤 直樹
(56)【参考文献】
【文献】中国特許出願公開第112580822(CN,A)
【文献】Jiehang ZENG et al.,Certified Robustness to Text Adversarial Attacks by Randomized [MASK],arXiv[online],v1,2021年05月08日,[検索日2024.07.25],インターネット:<URL:https://arxiv.org/pdf/2105.03743v1>
【文献】保田 和彦,Denoising Autoencoderを用いた多様な敵対的サンプルの生成,第11回データ工学と情報マネジメントに関するフォーラム (第17回日本データベース学会年次大会) [online] ,日本,2019年04月19日
【文献】Takeru MIYATO et al.,ADVERSARIAL TRAINING METHODS FOR SEMI-SUPERVISED TEXT CLASSIFICATION,arXiv[online],v3,2017年05月06日,[検索日2024.07.25],インターネット:<URL:https://arxiv.org/pdf/1605.07725v3>
【文献】Vincent TJENG et al.,EVALUATING ROBUSTNESS OF NEURAL NETWORKS WITH MIXED INTEGER PROGRAMMING,arXiv[online],v3,2019年02月18日,[検索日2024.07.25],インターネット:<URL:https://arxiv.org/pdf/1711.07356v3>
(58)【調査した分野】(Int.Cl.,DB名)
G06N 3/02
G06N 99/00
(57)【特許請求の範囲】
【請求項1】
テキストの判別を行うニューラルネットワークの頑健性を検証するモデル検証装置であって、
前記ニューラルネットワークと、微小な変動を表すパラメータと、前記ニューラルネットワークへの入力となるデータとを入力する入力部と、
前記データが入力された前記ニューラルネットワークの中間層のベクトルに微小な変動を加えた場合に、前記ニューラルネットワークにより出力されるクラスが変化するか否かを検証する検証処理実行部と、
前記検証処理実行部による検証結果に基づいて、前記ニューラルネットワークが入力の微小変化に対して頑健か否かを示す情報を出力する検証結果出力部と、を備え、
前記ニューラルネットワークは、h(g(・))の形の合成関数であり、h(・)は、線形関数、ReLU、及び最大化関数のみから構成される関数である
モデル検証装置。
【請求項2】
前記検証処理実行部は、前記ニューラルネットワークにより出力されるクラスを変化させる、微小な変動を加えたベクトルを求めるための混合整数計画問題を解く
請求項1に記載のモデル検証装置。
【請求項3】
前記微小な変動を加えたベクトルが見つからなかった場合に、前記検証結果出力部は、前記ニューラルネットワークが、入力の微小変化に対して頑健であることを示す情報を出力する
請求項2に記載のモデル検証装置。
【請求項4】
テキストの判別を行うニューラルネットワークの頑健性を検証するモデル検証装置が実行するモデル検証方法であって、
前記ニューラルネットワークと、微小な変動を表すパラメータと、前記ニューラルネットワークへの入力となるデータとを入力する入力ステップと、
前記データが入力された前記ニューラルネットワークの中間層のベクトルに微小な変動を加えた場合に、前記ニューラルネットワークにより出力されるクラスが変化するか否かを検証する検証処理実行ステップと、
前記検証処理実行ステップによる検証結果に基づいて、前記ニューラルネットワークが入力の微小変化に対して頑健か否かを示す情報を出力する検証結果出力ステップと、を備え、
前記ニューラルネットワークは、h(g(・))の形の合成関数であり、h(・)は、線形関数、ReLU、及び最大化関数のみから構成される関数である
モデル検証方法。
【請求項5】
コンピュータを、請求項1ないし
3のうちいずれか1項に記載のモデル検証装置における各部として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、機械学習モデルの頑健さを検証するための技術に関連するものである。
【背景技術】
【0002】
機械学習モデル、特にニューラルネットワークを用いた深層学習モデルは、その識別性能の高さゆえに様々な課題で活用される。しかし、例えば画像中の物体を認識する、物体認識のために用いられる深層学習モデルには、入力の画像に人が見ても気づかない程度の微小なノイズを付与することによって識別結果が大きく変化しうるという現象が起きることが知られていた。微小なノイズによって識別結果が変化してしまうと、人が気づけないような微小な加工を入力に施すことで物体システムの振る舞いをコントロールすることが可能となってしまうため、セキュリティ上の問題が発生する。
【0003】
この問題に対処するため、画像認識のためのニューラルネットワークモデルの出力が、微小な入力の変化によって変化しないかどうかを検証する機械学習モデル検証の技術が提案されてきた。
【0004】
上記のような機械学習モデル検証の技術として、非特許文献1にMIPVerifyと呼ばれる技術が開示されている。MIPVerifyでは、画像識別のための深層学習モデルにおいて、入力の微細な変化に対して出力が変化しないかどうか(以下では微小変化によって出力が変化しないことを頑健であると呼ぶ)を、混合整数計画問題(Mixed Integer Programming Problem、MIP)として定式化し、数理計画ソルバを用いてこの問題を解くことで判定する。
【先行技術文献】
【非特許文献】
【0005】
【文献】Vincent Tjeng, Kai Xiao, Russ Tedrake, "Evaluating Robustness of Neural Networks with Mixed Integer Programming", in Proc. of ICLR 2019
【文献】Jacob Devlin, Ming-wei Chang, Kenton Lee, Kristina Toutanova, "BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding, in Proc. of NAACL 2019.
【発明の概要】
【発明が解決しようとする課題】
【0006】
MIPVerifyは画像識別モデルの検証に用いることが前提となる手法であった。一方で深層学習モデルは画像識別のほかにも多様なタスクで利用される。たとえば自然言語で書かれた文を入力として、その文のカテゴリや性質などを判別するテキスト判別問題を解くためにも深層学習モデルが利用される。しかし、MIPVerifyをテキスト判別のためのモデルに適用する場合には、扱える微小な変動の種類が限定されるという課題があった。
【0007】
テキスト判別のモデルの入力は文、すなわち離散的な単語の系列であり、MIPVerifyを用いた場合には文中の単語や、単語中の文字を置き換えるといった変化しか扱うことができなかった。画像の例にならうと、テキストにおける微小な変化としては、文の意味がほぼ変化しないように助詞や語順が入れ替わったりするような変化を扱えるのが望ましいが、単語や文字を入れ替えると文の意味が大きく変わりうるため、変動が微小なものではなくなってしまう。また、MIPVerifyで扱える非線形関数の種類が限定されるという課題もあった。
【0008】
ニューラルネットワークは様々な線形・非線形な関数が階層的に組み合わされることによって一つの関数を表現する。MIPVerifyでは以下の式で表現される活性化関数ReLU(Rectified Linear Unit)、
【0009】
【数1】
と最大化関数maxの非線形関数しか扱うことができないという課題があった。テキスト判別問題で利用される深層学習モデルではMIPVerifyで扱えない非線形関数を含むため、MIPVerifyをそのまま適用できないという課題もあった。
【0010】
本発明は上記の点に鑑みてなされたものであり、自然言語文を入力とした機械学習モデルにおける入力の微小変化に対する頑健さを検証するための技術を提供することを目的とする。
【課題を解決するための手段】
【0011】
開示の技術によれば、テキストの判別を行うニューラルネットワークの頑健性を検証するモデル検証装置であって、
前記ニューラルネットワークと、微小な変動を表すパラメータと、前記ニューラルネットワークへの入力となるデータとを入力する入力部と、
前記データが入力された前記ニューラルネットワークの中間層のベクトルに微小な変動を加えた場合に、前記ニューラルネットワークにより出力されるクラスが変化するか否かを検証する検証処理実行部と、
前記検証処理実行部による検証結果に基づいて、前記ニューラルネットワークが入力の微小変化に対して頑健か否かを示す情報を出力する検証結果出力部と、を備え、
前記ニューラルネットワークは、h(g(・))の形の合成関数であり、h(・)は、線形関数、ReLU、及び最大化関数のみから構成される関数である
モデル検証装置が提供される。
【発明の効果】
【0012】
開示の技術によれば、自然言語文を入力とした機械学習モデルにおける入力の微小変化に対する頑健さを検証するための技術が提供される。
【図面の簡単な説明】
【0013】
【
図1】本発明の実施の形態におけるモデル検証装置の構成図である。
【
図2】モデル検証装置の動作を説明するためのフローチャートである。
【発明を実施するための形態】
【0014】
以下、図面を参照して本発明の実施の形態(本実施の形態)を説明する。以下で説明する実施の形態は一例に過ぎず、本発明が適用される実施の形態は、以下の実施の形態に限られるわけではない。
【0015】
(実施の形態の概要)
まず、本実施の形態に係る技術の概要を説明する。
【0016】
非特許文献1に開示されているMIPVerifyでは、深層学習モデルの入力層に対して微小な変動を与えたときの頑健性を数理計画ソルバで判定していたのに対し、本実施の形態に係るモデル検証装置では、入力にいくつかの線形あるいは非線形な変換を作用されることで得られるベクトルの集合によって構成される中間層に微小な変化を加えて、その変化によって判別結果が変化しないかを数理計画ソルバを用いて検証する。「判別結果が変化しない」とは、中間層に微小な変化を加えない場合の判別結果と比較して変化しないということである。
【0017】
深層学習モデルの中間層のベクトルは、入力文中のある単語を、その意味を表す実数値のベクトルに置き換えたものであると考えられている。また、似た意味をもつ単語については似た単語ベクトルが得られることが知られている。そのため、中間層のベクトルに微小な変化を加えることは、入力文中のある単語を、その単語と意味が似た別の単語に置き換えることに相当する変化に対応しているため、微小な変動を加えたときの変化を観察したいという目的に合致している。また、深層学習モデルに多様な非線形関数が含まれていたのだとしても、変動を加える中間層から出力層の間にReLUとmax以外の非線形関数を含まないのであれば、MIPVerifyで用いられた数理計画ソルバを用いた解法を利用することができる。
【0018】
テキスト判別のための深層学習モデルではBERT(非特許文献2参照)などの、入力文(単語の列)を実数ベクトルの列に変換するモデルが組み込まれることが多いが、こうしたモデルでは多様な非線形関数が利用されている。しかし、BERTに文を入力することによって得られる実数ベクトル集合を中間層とみなし、そこに微小な変化を加えて検証を行うことで、BERTを用いたモデルに対しても本発明に係る技術を適用することが可能である。
【0019】
以下、実施例を用いてより具体的な内容について説明する。
【0020】
(実施例)
<ニューラルネットワークが頑健であることの説明>
まず、ニューラルネットワークが頑健であることについて説明する。与えられた文の判別を行うニューラルネットワーク(「テキスト判別モデル」と呼ぶ)をf(・):[0,1]n→Rmとする。ここで、nは当該ニューラルネットワークに対する入力の次元数であり、mは判別すべきクラスの総数である。なお、本明細書において写像を表す矢印「→」は、左端に短い縦棒が付された矢印を意図している。明細書での記載の便宜上、「→」を使用している。
【0021】
入力が単語の列であるとするならば、文に含まれる単語の数をNとし、テキスト判別モデルで扱う単語の種類数をVとしたときにn=NVである。入力が文字の列であるとするならば、文字の総数をN、文字の種類数をVとする。
【0022】
本実施例におけるニューラルネットワークfは2つのニューラルネットワークg(・):[0,1]n→Rkとh(・):Rk→Rmとを用いてf(・)=h(g(・))として、合成関数の形で表現できるとする。また、h(・)は線形関数、ReLU、及び最大化関数のみで構成されているとする。ニューラルネットワークfへの入力をx∈[0,1]nとし、z∈Rk、z=g(x)を中間ベクトルとし、y∈Rm、y=h(z)を出力ベクトルとする。
【0023】
中間ベクトルzに微小な変動を加えることで得られるベクトルz´∈Rkの集合をU(z)={z´|∀i:-ε≦(z-z´)i≦εとする。なお、「中間ベクトルzに微小な変動を加える」ことは「中間層のベクトルに微小な変動を加える」ことに相当する。
【0024】
上記のεは非負実数であり、許容する微小な変動を表す。(z-z´)iはベクトル(z-z´)のi番目の要素を表す。h(z)のi番目の要素をhi(z)とする。また、λ(x)を、入力xをニューラルネットワークfに与えたときに出力されるクラス(微小変動を加えない場合のクラス)であるとする。便宜上、λ(x)を「正しいクラス」と呼んでもよい。ニューラルネットワークが入力xと中間層の微小変動に対して頑健であるとは、あるいは、ニューラルネットワークが入力xの微小変動に対して頑健であるとは、
【0025】
【数2】
が成立することである。ここで、z=g(x)とする。式(2)は、全てのz´に対して、h(z´)(m個の要素)のうちの最大の要素のインデックスiが正しいクラスを表すことを意味する。言い換えると、式(2)は、全てのz´に対して、ニューラルネットワークが出力するクラスが変化しないことを意味する。
【0026】
以下で説明するモデル検証装置100は、xが入力されたニューラルネットワークfの中間層のベクトルに微小な変動を加えた場合に、ニューラルネットワークfにより出力されるクラスが変化するか否かを検証することで、ニューラルネットワークfが入力微小変動に対して頑健であるか否かの検証を行う。以下、モデル検証装置100の構成と動作の例について説明する。
【0027】
<装置構成例>
図1に、本実施の形態におけるモデル検証装置100の構成図を示す。
図1に示すように、モデル検証装置100は、NNモデル入力部110、検証処理実行部120、及び検証結果出力部130を有する。各部の概要は下記のとおりである。
【0028】
NNモデル入力部110は、外部からテキスト判別のためのNN(ニューラルネットワーク)モデルf、入力x、及びパラメータεを受け取る。検証処理実行部120は入力されたニューラルネットワークの頑健性を、数理計画問題ソルバを用いて検証する。検証結果出力部130は、検証処理実行部120による検証結果を出力する。
【0029】
検証結果出力部130は、検証対象のモデルが頑健であったなら検証結果としてモデルが頑健であったことを示す情報を出力する。モデルが頑健でない場合、すなわち中間ベクトルに微小な変化を加えることによって出力されるクラスが、微小な変化を加えない場合の出力クラスと比較して変化した場合には、そのような微小変化を加えた中間ベクトルz´を一つ出力する。
【0030】
なお、クラスを変化させた中間ベクトルz´が複数個ある場合、複数個を出力してもよい。また、クラスを変化させた中間ベクトルz´がある場合、モデルが頑健でないでないことを示す情報を出力してもよい。クラスを変化させた中間ベクトルz´を出力することは、モデルが頑健でないでないことを示す情報を出力することの例である。
【0031】
<装置の動作例>
図2のフローチャートを参照して、モデル検証装置100の処理動作例を説明する。
【0032】
S1(ステップ1)において、NNモデル入力部110は、検証する対象のニューラルネットワーク、パラメータε、及び入力xを受け取る。ここで、検証対象のニューラルネットワークはf(・)=h(g(・))を満たすとする。S2において、検証処理実行部120が検証処理を実行する。検証処理実行部120は以下の混合整数計画問題を解くことで検証処理を実行する。
【0033】
【0034】
【0035】
【0036】
【数6】
ここでd(z′,z)はz´とzとの間の距離を出力する関数である。上記の混合整数計画問題は、クラスを変化させるz´のうち、zとの距離が最小のz´を求める問題である。
【0037】
h(・)が線形関数とReLU、最大化関数のみから構成されている場合は、非特許文献1に記載の方法を用いてこの問題を混合整数計画問題として表現できるため、混合整数計画問題ソルバを用いて解を求めることができる。
【0038】
S2でソルバを用いて問題を解いた結果、実行可能解が見つかったのであれば、S3において、検証結果出力部130は、ニューラルネットワークは頑健でないとし、問題を解くことで発見された中間ベクトルz´を出力して処理を終了する。もしも実行可能解が見つからなければニューラルネットワークが頑健であることを示す情報を出力して処理を終了する。
【0039】
(装置のハードウェア構成例)
モデル検証装置100は、例えば、コンピュータに、本実施の形態で説明する処理内容を記述したプログラムを実行させることにより実現可能である。より具体的には、当該プログラムは、例えば、混合整数計画問題を解く数理計画問題ソルバのプログラムを含む。
【0040】
上記プログラムは、コンピュータが読み取り可能な記録媒体(可搬メモリ等)に記録して、保存したり、配布したりすることが可能である。また、上記プログラムをインターネットや電子メール等、ネットワークを通して提供することも可能である。
【0041】
図3は、上記コンピュータのハードウェア構成例を示す図である。
図3のコンピュータは、それぞれバスBSで相互に接続されているドライブ装置1000、補助記憶装置1002、メモリ装置1003、CPU1004、インタフェース装置1005、表示装置1006、入力装置1007、出力装置1008等を有する。
【0042】
当該コンピュータでの処理を実現するプログラムは、例えば、CD-ROM又はメモリカード等の記録媒体1001によって提供される。プログラムを記憶した記録媒体1001がドライブ装置1000にセットされると、プログラムが記録媒体1001からドライブ装置1000を介して補助記憶装置1002にインストールされる。但し、プログラムのインストールは必ずしも記録媒体1001より行う必要はなく、ネットワークを介して他のコンピュータよりダウンロードするようにしてもよい。補助記憶装置1002は、インストールされたプログラムを格納すると共に、必要なファイルやデータ等を格納する。
【0043】
メモリ装置1003は、プログラムの起動指示があった場合に、補助記憶装置1002からプログラムを読み出して格納する。CPU1004は、メモリ装置1003に格納されたプログラムに従って、当該装置に係る機能を実現する。インタフェース装置1005は、ネットワークに接続するためのインタフェースとして用いられる。表示装置1006はプログラムによるGUI(Graphical User Interface)等を表示する。入力装置1007はキーボード及びマウス、ボタン、又はタッチパネル等で構成され、様々な操作指示を入力させるために用いられる。出力装置1008は演算結果を出力する。
【0044】
例えば、インタフェース装置1005から、検証する対象のニューラルネットワーク(g(・)、h(・)を含む)、パラメータε、及び入力のデータxが入力され、これらはメモリ装置1003に格納される。そして、プログラムに従ってCPU1004が動作することにより、メモリ装置1003に格納された関数、パラメータ、及び入力xから、上記の式(3)~(6)で表される問題が解かれる。
【0045】
(実施の形態の効果)
本実施の形態に係るモデル検証装置100により、テキストの判別を行うためのニューラルネットワークが入力の微小な変動に対して頑健かどうかを正確に判定することができるため、より安全性の高いテキスト判別モデルの実現に寄与する。
【0046】
(実施の形態のまとめ)
本明細書には、少なくとも下記各項のモデル検証装置、モデル検証方法、及びプログラムが記載されている。
(第1項)
テキストの判別を行うニューラルネットワークの頑健性を検証するモデル検証装置であって、
前記ニューラルネットワークと、微小な変動を表すパラメータと、前記ニューラルネットワークへの入力となるデータとを入力する入力部と、
前記データが入力された前記ニューラルネットワークの中間層のベクトルに微小な変動を加えた場合に、前記ニューラルネットワークにより出力されるクラスが変化するか否かを検証する検証処理実行部と、
前記検証処理実行部による検証結果に基づいて、前記ニューラルネットワークが入力の微小変化に対して頑健か否かを示す情報を出力する検証結果出力部と
を備えるモデル検証装置。
(第2項)
前記検証処理実行部は、前記ニューラルネットワークにより出力されるクラスを変化させる、微小な変動を加えたベクトルを求めるための混合整数計画問題を解く
第1項に記載のモデル検証装置。
(第3項)
前記微小な変動を加えたベクトルが見つからなかった場合に、前記検証結果出力部は、前記ニューラルネットワークが、入力の微小変化に対して頑健であることを示す情報を出力する
第2項に記載のモデル検証装置。
(第4項)
前記ニューラルネットワークは、h(g(・))の形の合成関数であり、h(・)は、線形関数、ReLU、及び最大化関数のみから構成される関数である
第1項ないし第3項のうちいずれか1項に記載のモデル検証装置。
(第5項)
テキストの判別を行うニューラルネットワークの頑健性を検証するモデル検証装置が実行するモデル検証方法であって、
前記ニューラルネットワークと、微小な変動を表すパラメータと、前記ニューラルネットワークへの入力となるデータとを入力する入力ステップと、
前記データが入力された前記ニューラルネットワークの中間層のベクトルに微小な変動を加えた場合に、前記ニューラルネットワークにより出力されるクラスが変化するか否かを検証する検証処理実行ステップと、
前記検証処理実行ステップによる検証結果に基づいて、前記ニューラルネットワークが入力の微小変化に対して頑健か否かを示す情報を出力する検証結果出力ステップと
を備えるモデル検証方法。
(第6項)
コンピュータを、第1項ないし第4項のうちいずれか1項に記載のモデル検証装置における各部として機能させるためのプログラム。
【0047】
以上、本実施の形態について説明したが、本発明はかかる特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
【符号の説明】
【0048】
100 モデル検証装置
110 NNモデル入力部
120 検証処理実行部
130 検証結果出力部
1000 ドライブ装置
1001 記録媒体
1002 補助記憶装置
1003 メモリ装置
1004 CPU
1005 インタフェース装置
1006 表示装置
1007 入力装置
1008 出力装置