敵対的攻撃を利用して精度向上!?
3つの要点
✔️ 敵対的摂動を損失が減少するように加えることで、モデルの精度を向上
✔️ 対象物に、パッチと呼ばれる領域分だけノイズを加えて精度を向上
✔️ ノイズのノルム制約をなくすことで、モデルの説明に有効な、Robust Patternを提案
Assistive Signals for Deep Neural Network Classifiers
written by Camilo Pestana, Wei Liu, David Glance, Robyn Owens, Ajmal Mian
(Submitted on June 2021)
Comments: CVPR2021
Subjects: Computer Vision and Pattern Recognition (cs.CV)
本記事で使用している画像は論文中のもの、紹介スライドのもの、またはそれを参考に作成したものを使用しております。
研究概要
本研究では、敵対的攻撃のアイディアをモデルの精度向上に利用しました。モデルの精度向上のための摂動をAssistive Signalsと呼び、識別対象の画像の一部分に加えることで精度向上を図ります。また、このAssistive Signalsは、実在する物体の特定のパターンに対するMLモデルの偏りを示していると考えられます(Robust Pattern)。
研究背景
敵対的攻撃とは
敵対的攻撃とは、機械学習モデルがある入力に対して誤った出力をするように、入力に加工をする方法の総称です。入力データに人間の目で見てもわからない程度の小さなノイズを乗せるだけで、機械学習モデルが誤った出力をしてしまうようなノイズが存在することが分かっています。
敵対的攻撃の説明で有名なのが上図です。入力のパンダの画像にノイズを加えることで、右の画像に変換しています。人間の目には画像の違いはわかりませんが、機械学習モデルは最初の画像は正しくパンダと識別できていましたが、変換後の画像はテナガザルと識別してしまっています。このように、敵対的攻撃を行うと、モデルの出力を誤らせることができます。
では、敵対的攻撃ではどのようにこういったノイズを求めているのでしょうか。敵対的攻撃の手法の多くは、正しく画像を分類した時の損失が大きくなるようなノイズを乗せることで攻撃を行っています。具体的には、攻撃者は以下のような最適化問題を解きます。
$\delta$が求めるノイズ、$x$が入力データ、$y$が入力データに対応する正解ラベル、$L$が損失関数になります。通常、損失関数はモデルのパラメータ、入力データ、正解ラベルにより計算されるので、攻撃者は正しいラベルに分類した時に損失が大きくなるように入力データを改変します。
Assistive Signalsとは
では、敵対的攻撃の考え方を利用してモデルの精度を向上させる、Assistive Signalsとはどういったものなのでしょうか。この答えは単純で、敵対的攻撃はモデルが正しく分類したときの損失が大きくなるようなノイズを乗せますが、Assistive Signalsでは正しく分類した時の損失が小さくなるようなノイズを乗せます。すなわち、モデルが分類しやすくなるようなノイズを乗せます。その意味で、Assistive Signalsという名前を付けているのだと思われます。
ユースケース
Assistive Signalsは、入力データが正しく分類されるようなノイズを乗せるため、分類前からその入力データの正しいクラスが分かっている必要があります。そのため、未知のデータというものを用意することができません。では、このAssistive Signalsとはどういった場面で利用できるのでしょうか。
著者らは、ユースケースの一つとして、物理的な空間上にある物体の識別というシーンを想定しています。具体的には、街中で走っている車を識別するタスクなどです。こういったタスクの場合、あらかじめ車そのものにノイズを表現したシールのようなものを張り付けておくことで、それが車であるということを正しく識別しやすくなる、といった具合です。
このように、実世界にあるものを正しく分類するというタスクにおいて利用したいため、ノイズを入力画像全体に加えるというのは現実的ではありません。そこで著者らは、パッチと呼ばれる小領域に対してのみノイズを加えることを提案しています。このようにすることで、前述のようにシールのようなものでノイズを再現することができます。
シグナル生成のアルゴリズム
具体的には、以下のような手続きでAssistive Signalsを生成します。
著者らは物理的な空間をターゲットとして考えていますが、今回はそれをシミュレートした3D空間上で実験を行っています。そのため、シミュレーションのパラメータとして$\Theta$が存在します。このパラメータで、照明であったり、視野角であったりを決定します。
上記の手続きは、3D空間上にある物体を、あるカメラから撮影した画像に対してノイズを求めるという操作になっています。画像を撮影した後、あらかじめ決めておいた回数分だけ、損失が減少する方向にノイズを加えます。このとき、画像全体に加わらないよう、applyMaskという操作を行ってからノイズを加えます。この操作により、画像の一部分のみにノイズが加わります。
実験
ここからは、Assistive Signalsの有効性を検証していきます。まずは、Assistive Signalsを加えた時とそうでないときの比較を行います。
上図のように、Assistive Signals(パッチにしたものをAssistive Patchと呼ぶ)を加えたときは、精度が向上していることが確認できます。
次に、全体にノイズを加えた場合と、一部分にノイズを加えた場合の違いについて検証します。
上図のように、全体にノイズを加えた場合(b)と、一部分にノイズを加えた場合(c)では、ほとんど精度に違いがないことが分かります。よって、精度向上を目的としてノイズを乗せる場合は、一部分に乗せるので十分であることが分かります。
最後に、Robust Patternsという考え方について説明します。通常、ノイズを乗せる際は人間が見てもわからないように小さなノイズを乗せることをしますが、ノイズの大きさの制限をなくした場合、Assistive Signalsはどのような結果になるのかを検証しました。また、パッチではなく全体にノイズを乗せることを考えます。
その結果、上図のようになりました。この結果を見ると、モデルがJeep carと識別する特徴として、現在の入力データの丸いライトや細長いグリルではなく、ほかのデータにあった、四角いライトや大きなグリルを学習していることが分かります。著者らは、この結果をRobust Patternと呼び、モデルの説明性に有用な情報を提供するのではないかと考えています。
まとめ
敵対的攻撃の考え方を、モデルの精度向上のために利用した、Assistive Signalsというものを紹介しました。非常に面白い考え方だと感じたので、実際の物理的な空間での実験結果も見てみたいですね。
この記事に関するカテゴリー