-
Notifications
You must be signed in to change notification settings - Fork 4
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[2019] Generating Fluent Adversarial Examples for Natural Languages #42
Comments
NLP における adversarial examples を調べていて、#41 に続いて第二弾。 この論文も ACL2019 の accepted papers 一覧を眺めていて見つけたものの一つで、従来のものよりもより流暢(人間の目で見た時に自然な)な adversarial examples を作ることを目的としている。 単語の置き換えを Metropolice-Hastings (M-H) 的に定式化し、定常分布に言語モデルを入れたり提案分布を置換・挿入・削除のそれぞれからなるものとしたりしているっぽい。 |
モチベーションはタイトルにもあるように流暢(人間から見て自然な)adversarial examples を作りたいというもの。HotFlip のような文字置き換えの手法では語彙的に間違っている単語を作り出してしまうし、genetic attack では自然さが足りない、という問題点がある。 genetic attack は Generating Natural Language Adversarial Examples のことで、black box の単語置き換えをベースとした adversarial example の構成方法である。 この論文では black box と white box の両方のアルゴリズムを提案していて、それぞれ M-H に基づいてより良さそうな単語の置き換えを目指していくものになっているとのこと。 |
問題設定は以下。
ベースとなる M-H もさらっと復習しておく。 標語的に言えば、本当はこの $ π(x) $ から直接サンプルしたいがそれが難しい場合、サンプルするのが容易な g からサンプルすることにして、そこで $ π(x) $ と $ π(x') $ の比が計算できるなら望むサンプル列が得られる、というものである。 いまの問題設定に合わせて考えてみる。 詳細は以下で見ていくが、この M-H に基づいた攻撃方法を Metropolis Hastings Attack (MHA) と読んでいる。サンプリング手法を取り入れて名付けるほどのものなのかという気もするが、名前があった方が便利ということなんだろう。 後ろの方まで読んだら black box でもモデルの softmax 出力値も使っていた。なのでラベルだけでなくて、少なくとも間違えさせたいラベルに対応する softmax 成分の出力値にはアクセスできる必要がある。 |
Black Box (b-MHA)ここまでで明らかなように、この論文で重要になるのは定常分布と提案分布の設定である。 まず、定常分布は以下のように定めている。LM は Language Model である文章が与えられればそれが生成される確率を表現できることができるもので、これは何かしらの言語モデルを準備すればよい。$ C (\tilde{y}|x) $ は入力 x を与えた時に $ \tilde{y} $ と予測する確率を与える予測モデルで、これは何かしらの分類器で、攻撃対象のモデルである。 marginal distribution は計算が大変だが、この比例する形があればマルコフ遷移における採択率を計算できるのが M-H 法であった。 次に提案分布。 まずは traversal indexing をすると言っている。これ最初なんだか分からんかったけど、$ t $ 回目の提案時点で $ i $ 番目の単語 $ w_i $ を選ぶ時、$ t+1 $ 回目の提案では選ばれた単語 $ w* $ を以下のように書く、と言って以下の式を出している。 単に単語を一個ずつずらして一番後ろのは一番目に持ってくる、というだけに見える。 まだ準備が必要で、置換や挿入の際に候補を絞っておくための pre-selection についても理解しておく。 ここで $ x $ の suffix の意味は 1,...,m-1 までの単語という意味で、$ LM_b $ は逆向きの言語モデルでお尻から n,...,m+1 番目までの単語を入力としたときに w を出す確率となっている。双方向からのスコアを掛けているというだけだ。 ようやく提案分布の具体的な操作を定義できるところまで来た。単語 $ w_m $ が変換の対象の単語とするとき、以下の三つの操作の提案分布を定義する。
あとはこれらそれぞれに確率を付与して、最終的な提案分布を以下のように定義する。 |
White Box (w-MHA)ベースは b-MHA と同じで、違いは pre-selection のみとなる。色々定義あって面倒だったのでばっとスクショ。誤認識するような置き換えを微分情報の alignment をもとにして enhance しているというだけ。 w-MHA では挿入は使えない。 そして削除も同じ理由で使えないと言っている。しかしこれは微分情報とか使わないので別にいいと思うのだが...よく分からん。 ここは改めてちょっと考えてみた。 挿入の場合は、本当に計算したい微分は元々の入力で計算した loss に対して、ランダムに挿入する単語の embedding で微分をするというもの。これで最急降下の方向を求めてそれに近い単語でランダムに挿入したものを置き換えたいわけである。しかし loss の計算にはランダムに挿入した単語は入ってないので微分ができない、ということになっている。 削除の場合は loss の微分をやったとしても、置き換え対象の単語があるわけではないのでここで紹介したような形では微分情報を使えない、ということだろう。原理的には単語を一個ずつ除いて loss を計算して、それらを比べて loss が最も大きくなるものを除くことにする、というのはできるはずだが計算はやや大変だ。 |
実験の設定。 データは以下を使用。
攻撃対象となるモデルは以下を使用。
比較手法は以下を使用。
MHA の設定は以下を使用。
あと言語モデルで何を使ったかが必要な情報だと思うのだが、論文を読む限り書いてなさそう。 |
まず、提案手法の効率性を検証。 この結果を基に一件辺りの呼び出し最大回数を 6000 に設定し、adversarial attack の成功率を見たものが以下(これは全テストデータの結果だと思われる)。 ちなみに PPL は言語モデル(そのモデルが何なのかが分かってないのだが)の値で、提案手法の方が値が小さいのでより「生成されそう」な文章を作れている。これをもって fluent だと主張。最初論文を眺めたときは人間の目から見てという話なのかと思ってたけど PPL の意味であった。 これらがメインの結果。 |
最後に adversarial training も試している。 まずは adversarial training によって adversarial attack をどれくらい防げるかを試したもの。 汎化性能をどれくらい高められるかも SNLI の場合に試している。学習データ数が少ない場合に少し改善している。そこまで impressing というわけではないかな。 |
ということで一通り読んだ。 ランダムな置き換えではなくて M-H を使ってより効率的に置き換えていこうということで、従来までの手法を着実に進展させたという印象。 NLP で adversarial examples を使って学習させて、その結果どれくらい adversarial attack を防げるかは見たことなかったが、全然防げないことに驚いた。これは気になるところなのでもうちょっと調べていこう。 |
論文リンク
https://www.aclweb.org/anthology/P19-1559/
公開日(yyyy/mm/dd)
2019/07
概要
NLP における流暢な adversarial examples の作成を目指した論文。
black box と white box の両方に使える手法で、単語の置き換えをベースにしているものになっていて、その置き換えをランダムではなくて Metropolice Hastings サンプリングを使って効率的にしている。
提案分布を言語モデルと攻撃対象のモデル予測を使うことで構築して、言語モデルの意味でより自然な文章を作ることを目的としている。white box の場合はこれに微分情報も付与することで、より予測を間違えやすい単語選択を enhance するようになっている。
従来手法と比べると、攻撃対象のモデルの呼び出し回数を少なくした上で高い攻撃成功率を達成。
The text was updated successfully, but these errors were encountered: