はじめに
敵対的サンプルとは、AIに誤った出力を引き起こすよう細工された入力データのことです。例えば、標識を認識する画像認識AIに対して、「一時停止」の標識を正しく認識するのを妨げるために、わずかなノイズを加えた画像が挙げられます。こうした画像への細工は人間の目には見えないか、人間には自然に見えるものですが、AIにとっては間違った出力を引き起こすものとなります。
AIを活用するためには、こうした敵対的サンプルへの対策を取ることが重要です。本記事では、敵対的サンプルに対する対策技術を解説します。
敵対的サンプルの代表例
敵対的サンプルは、元の入力データに対してノイズやパッチ(特殊なパターン)などの改変を加えることで作成します。このとき、最適化問題を解くことで、どのようなノイズやパッチを加えるかを決定します。
ここでは、敵対的サンプルの作成方法として代表的な方法の一つであるFast Gradient Signed Method (FGSM)[1]を例に説明します。いま、攻撃対象のAIシステムとして分類モデルを考えます。分類モデルに対する入力データ\(\boldsymbol{x}\)に対して、正解ラベル\(y\)が割り当てられるとします。損失関数を\(l\)とおくとき、攻撃者がAIの判断を誤らせるのに目標となる出力ラベルを決めない(つまり、Untargetedである)場合は、次式で敵対的サンプル \(\boldsymbol{x}’\)を得ます。
\[\boldsymbol{x}’ = \boldsymbol{x} + \epsilon \mathrm{sign} (\nabla_ \boldsymbol{x} l( \boldsymbol{x}, y))\]
ここで、\(\epsilon\)は定数です。この式は、損失関数が大きくなる、つまり、AIのモデルが出力を誤る方向への勾配を算出し、その方向に向けて微小な改変を元のサンプルに加えることを意味します。ここで加えられる微小な改変は、摂動と呼ばれます。
このように作成された敵対的サンプルをモデルに入力することで、モデルは正解とは異なる値を出力することがあります。このような方法を用いることで、攻撃者は敵対的サンプルを用いた攻撃を実行することができるのです。
敵対的サンプルの対策技術
敵対的サンプルに対する対策技術としては、敵対的学習、敵対的サンプルの検知、モデルの蒸留が挙げられます。これらに加え、モデル保証や入力データに対する編集のアプローチもあります[2], [3]。
敵対的学習
敵対的学習では、モデルの訓練時に敵対的サンプルを生成し、訓練データに含めることで、モデルに対して敵対的サンプルに対する耐性を持たせます。
代表的な手法としては、損失関数の中に、敵対的サンプルに対する損失を最小化する項を追加する方法があります[1]。次式に、モデルのパラメータを\(\theta\)としたときの、敵対的サンプルを考慮した損失関数を表します。
\[ l'(\theta, \boldsymbol{x}, y) = \alpha l(\theta, \boldsymbol{x}, y) + (1-\alpha)(\theta, \boldsymbol{x}’, y)\]
この手法は、損失関数を最適化することで敵対的サンプルへの耐性を得られる利点があります。一方で、学習の途中で敵対的サンプルを生成する必要があるため、学習に時間がかかる欠点があります。
敵対的サンプル検知器
敵対的サンプルはAIの判断を誤らせることから、潜在空間では異なる性質をもつと考えられます。これを利用して、異常なサンプルを検知する方法があります。
分かりやすい例として、主成分分析を用いた手法があります[4]。画像の敵対的サンプルに対して主成分分析を用いて比較すると、敵対的サンプルのうち低ランクの値が強調されることが報告されています。
このように検知器を用いるアプローチでは、モデルやデータを改変することなくAIシステムに組み込むことができるという利点があります。しかし、入力データの性質や攻撃者が利用した敵対的サンプルの方法によってまちまちで、万能な検知器を作るのは難しいものです。
モデル蒸留
敵対的サンプルの攻撃が成立する一つの要因として、モデルの過学習があります。すなわち、モデルが訓練データの性質を過剰に学習することで、分類モデルにおけるラベル間の境界面が込み入ってしまい、わずかなノイズが加えられただけでそのサンプルが境界面を超えてしまい、異なるラベルとして分類されると考えられます。
そこで、モデルの蒸留を用いる手法が提案されています[5]。蒸留では、2段階で学習します。第一段階では、訓練データ\((\boldsymbol{x}, y)\)の組を用いて、モデル\(f\)を学習します。このとき、一般的に、モデルに与える正解ラベル\(y\)は、ワンホットベクトルのようなデータ形式(ハードラベルと呼ばれます)です。第二段階では訓練データとして\((\boldsymbol{x}, f(\boldsymbol{x}))\)を用いて、新しいモデル\(f’\)を学習します。このとき、正解ラベルは第一段階のモデルにおけるソフトマックス関数の出力\(f(\boldsymbol{x})\)(ソフトラベルと呼ばれます)を用いるものとします。
蒸留は、過学習を防ぐための手法としても有効です。しかしながら、モデルの訓練工程が複雑になる点が欠点です。
モデルの頑健性保証
モデルの頑健性保証はこれまでと異なり、モデルがどの程度の摂動にまで耐性があるかを理論的に保証するアプローチです。代表的なアプローチとして、差分プライバシの概念を導入した手法が提案されています[6]。敵対的サンプルに対するモデルの頑健性を理論的に保証することで、モデルを利用するときにどの範囲の摂動による敵対的サンプルを考慮するかを予め決めることができます。ただし、あまりにも大きな摂動の範囲まで頑健性を保証しようとするとモデルの性能も低下するため、頑健性を保証する範囲とモデル性能のトレードオフを考慮する必要があります。
入力データの修正
入力データを修正することで、敵対的サンプルの影響を緩和することができます。例えば、ノイズを加えることで作成された敵対的サンプルに対しては、高周波成分を除去するノイズフィルタを適用することで、モデルへの影響を緩和することが期待されます。
このような手法は比較的単純に適用できますが、入力サンプルに改変を加えることによる意図しない影響が発生する可能性があります。また、そのような修正を考慮した高度な敵対的サンプルが入力される可能性もあります。
まとめ
敵対的サンプルに対する対策技術として、本記事ではいくつかの代表的なアプローチを簡単に説明しました。それぞれの対策技術にはメリットとデメリットがあるため、AIシステムを実装・利用する際の制約事項やリスクを考慮しながら対策技術を導入する必要があります。
参考文献
[1] I. Goodfellow et al., “Explaining and Harnessing Adversarial Examples,” https://arxiv.org/abs/1412.6572
[2] J. Zhang and C. Li, “Adversarial Examples: Opportunities and Challenges,” in IEEE Transactions on Neural Networks and Learning Systems, vol. 31, no. 7, pp. 2578-2593, July 2020, doi: 10.1109/TNNLS.2019.2933524.
[3] Sicong Han et al., “Interpreting Adversarial Examples in Deep Learning: A Review,” ACM Computing Survey. 55, 14s, Article 328 (December 2023), 38 pages. https://doi.org/10.1145/3594869
[4] D. Hendrycks et al., “Early Methods for Detecting Adversarial Images,” https://arxiv.org/abs/1608.00530
[5] N. Papernot et al., “Distillation as a Defense to Adversarial Perturbations Against Deep Neural Networks,” 2016 IEEE Symposium on Security and Privacy (SP), San Jose, CA, USA, 2016, pp. 582-597, doi: 10.1109/SP.2016.41.
[6] M. Lecuyer et al., “Certified Robustness to Adversarial Examples with Differential Privacy,” 2019 IEEE Symposium on Security and Privacy (SP), San Francisco, CA, USA, 2019, pp. 656-672, doi: 10.1109/SP.2019.00044.