敵対的データ拡張+Mixupでより頑健に!
3つの要点
✔️ 敵対的データ拡張とMixupによりモデルの頑健性向上
✔️ 頑健性を評価する際のプロトコルを設立
✔️ モデルの頑健性を向上しつつ、モデルの精度も維持
Better Robustness by More Coverage: Adversarial Training with Mixup Augmentation for Robust Fine-tuning
written by Chenglei Si, Zhengyan Zhang, Fanchao Qi, Zhiyuan Liu, Yasheng Wang, Qun Liu, Maosong Sun
(Submitted on 31 Dec 2020 (v1), last revised 6 Jun 2021 (this version, v3))
Comments: Accepted by ACL 2021.
Subjects: Computation and Language (cs.CL)
code:
研究概要
BERTやRoBERTaなどで知られている、事前学習済み言語モデル(Pretrained Language Models)はAdversarial Attackに弱いといわれています。 これらの事前学習済み言語モデルに対して、ある入力文の一部の単語を同義語で置き換えた文(Adversarial Example)をモデルに入力すると誤った分類予測をしてしまうようなAdversarial Attackが発見されています。このような攻撃を防ぎ、モデルをより頑健にするために、Adversarial Exampleも用いてモデルを訓練するAdversarial Trainingがあります。
しかし、入力文の種類は無限であり、Adversarial Exampleを作成して学習データを増やしても、Adversarial Exampleの数は不十分で網羅的ではありません。そこで、著者らはMixupと呼ばれる手法も用いることでデータ間を線形的に補間し、学習データを拡張しました。
関連研究
敵対的データ拡張 (Adversarial Data Augmentation)
学習データに対してAdversarial Exampleを作成することで、学習データの数を拡張することができます。Adversarial Exampleの作成方法には様々なものがありますが、本論文ではPWWS・TextFoolerを使っています。(PWWSはある評価関数に従って文中の置き換える単語を決定し、分類モデルが予測を誤るまで次々と単語を同義語に置き換えていく手法。)
Mixup Data Augmentation
2つのラベル付けされたデータ $(\mathbf{x}_i, \mathbf{y}_i)$ , $(\mathbf{x}_j, \mathbf{y}_j)$ とベータ分布 $\lambda\sim{Beta(\alpha,\alpha)}$ から得た $\lambda \in [0, 1]$ の比率でデータを混ぜ合わせる。
入力文(テキスト)同士では足し合わせることができないため、本論文では、$\mathbf{x}_i,\mathbf{x}_j$ はモデル(BERT, RoBERTa)の{7,9,12}層目の出力ベクトルを表します。(Chen et al.,2020)
また、[CLS]トークンのみをmixする手法をSMix、全トークンをmixする手法をTMixと名付けています。また、$\mathbf{y}_i,\mathbf{y}_j$ は分類タスクのラベルをOne-Hotベクトルで表したものになります。
提案手法
関連研究で挙げた Adversarial Data AugmentationとMixup Data Augmentation を用いてデータ拡張を行い、ファインチューニングをし、モデルの頑健性を向上させました。
この図のように、mixupを行うペアデータは、(元の学習データ,元の学習データ), (元の学習データ, 敵対的データ), (敵対的データ, 敵対的データ) の3種類です。
また、損失関数は以下の式になります。
$(\mathbf{x}_i, \mathbf{y}_i)$ は元の学習データと作成した敵対的データを表し、正解データ$\mathbf{y}_i$ と予測値$f(\mathbf{x}_i)$のクロスエントロピーを計算しています。また、$(\hat{\mathbf{x}}_i, \hat{\mathbf{y}}_i)$ はmixupで作成されたデータで、mixupで作成された正解ラベル$\hat{\mathbf{y}}_i$と予測値$f(\hat{\mathbf{x}}_i)$のKLダイバージェンスを計算し、前項との和をとって損失関数としています。
評価方法
本論文ではAdversarial Attackに対する頑健性を評価するために2つの評価方法を設定しています。
- SAE (Static Attack Evaluation)
- TAE (Targeted Attack Evaluation)
1. SAE:元のモデル(被害者モデル)に対して敵対的データを作成し、この作成されたデータを用いて、新しいモデルに対して精度を評価します。
2. TAE:モデルを作成したら、そのモデルを被害者モデルとして敵対的データを作成し、この敵対的データを用いて被害者モデルの精度を評価します。つまり、モデルごとに敵対的データを作成して、モデル自身の敵対的データで評価をするため、こちらの方が精度を上げることが難しい評価方法となります。
実験・分析
データセット
実験では以下の3つのデータセットを利用しています。
- 2値分類:感情分析
- SST-2
- IMDB
- 4クラス分類:ニュースのトピック分類
- AGNews
実験結果1
それでは、実験結果を見ていきましょう。まずは一般的なファインチューニングを行ったモデルに対して、2つの評価方法(SAEとTAE)にどの程度乖離があるかを確認してみましょう。
BERT$v$を被害者モデルとし、ランダムシードのみを変えてファインチューニングしたモデルをBERT$r1$, BERT$r2$とします。RoBERTaも同様。評価の際に用いたテストデータは3つあり、元のテストデータ、PWWSで作成したデータ、TextFooler(TF)で作成したデータです。(PWWS・TFを用いてデータを作成する際、元のテストデータを用いています。)
PWWS・TFで作成したそれぞれのデータに対して、SAEでの精度(PWWS-s, TF-s)とTAEでの精度(PWWS-d, TF-d)の結果を載せています。
この結果より、SAEでの精度は、ランダムシードのみを変えてファインチューニングしただけで精度が向上していることがわかります。一方、TAEでの精度はファインチューニングしただけでは精度が低いことが確認できます。そのため、実験結果2では、より難しい評価方法であるTAEのみの結果を見ていきます。
実験結果2
SST-2とIMDBの結果です。(AGNewsは後述)
まず、実験設定をまとめておきます。(詳しくは、関連研究・提案手法をご覧ください。)
- ADA:PWWS, TextFoolerを用いて学習データを敵対的データで拡張
- TMix:Mixupの際に全トークンをmix
- SMix:Mixupの際に[CLS]トークンのみをmix
- AMDA-TMix:提案手法であるAMDAにおいてTMixを利用
- AMDA-SMix:提案手法であるAMDAにおいてSMixを利用
RoBERTaの結果から、Mixupのみ(TMix, SMix)を用いても頑健性が向上していることがわかります。本論文の提案手法は、いずれのタスクにおいても頑健性がベースラインより向上しており、敵対的データ拡張(ADA)とMixupがそれぞれ補い合い、頑健性向上に貢献していることが考えられます。
また、敵対的データ拡張(ADA)を用いると元のテストデータに対する精度が低下していることが結果からわかりますが、提案手法では敵対的データ拡張(ADA)と比較して、元のテストデータに対する精度も向上しているものが見られました。
結果の表で括弧の中に書かれている数値は、敵対的データを作成する際に、1データあたりに要した単語置換の割合の平均値です。提案手法では、この割合が高くなっていることからも、敵対的データの作成が難しくなっていると解釈することができ、頑健性が向上したといえます。
以下は、AGNewsでの結果です。
こちらもSST-2・IMDBでの結果と同様のことがいえます。
まとめ
本論文では、 敵対的データ拡張およびMixupを用いたファインチューニング手法を提案しました。また、敵対的データに対する頑健性を確認するために、2つの評価方法を設定しました。その中でも難しい評価方法であるTAEを用いて評価を行い、提案手法の頑健性を示しました。
特に、本論文での評価方法の設定は同様の研究をする方にとって、精度を競う上で参考になる指標ではないでしょうか。
この記事に関するカテゴリー