Re Reference AI

技術

敵対的サンプル(敵対的入力)とは

Adversarial Example / Adversarial Examples / 敵対的入力

人間には知覚できない程度の微小な摂動を入力に加えることで、機械学習モデルに誤った予測をさせる入力データ

セキュリティ機械学習

ひとことで言うと

見た目はほとんど変わらない画像や文章に、ごくわずかな加工を施すだけでAIの判断を誤らせてしまう入力データ。

概要

敵対的サンプルは、元の入力データに対し人間の知覚では判別しづらい程度の摂動を加えることで、機械学習モデルの予測結果を意図した誤りへ誘導する入力データ。画像分類モデルに対しては、ピクセル値をわずかに変化させるだけでパンダの画像をテナガザルと誤認識させるといった事例が知られている。これは、モデルの学習した決定境界が入力空間の局所的な変化に対して脆弱であることを示す代表的な現象として研究されてきた。生成方式には、モデルの勾配情報を直接利用するFGSMやPGDのようなホワイトボックス手法と、対象モデルの内部情報を知らずに出力の変化だけを手がかりに探索するブラックボックス手法がある。あるモデルに対して生成した敵対的サンプルが別のモデルに対しても有効に働く転移性(transferability)も報告されている。対策として、敵対的サンプルを学習データに混ぜて頑健性を高める敵対的学習(adversarial training)や、入力の前処理による摂動の除去などが研究されている。

背景

深層学習モデルは高次元の入力空間において複雑な非線形の決定境界を学習するが、この境界は入力の微小な変化に対して局所的に不安定になりやすく、人間の知覚では気づけない程度の変化でも予測結果が大きく変わってしまう場合がある。自動運転の標識認識や顔認証、医療画像診断など、誤判定が実害に直結する用途で機械学習モデルが使われるようになるにつれ、この脆弱性は安全性上の重要な課題として扱われるようになった。

歴史

2013年: SzegedyらがIntriguing properties of neural networksで、画像に人間には知覚できない摂動を加えるだけで深層ニューラルネットワークの分類を誤らせられることを報告し、敵対的サンプルという現象を提示。2014年: GoodfellowらがFast Gradient Sign Method(FGSM)を提案し、モデルの勾配を1回計算するだけで敵対的サンプルを高速に生成できる手法を確立。

アーキテクチャ

敵対的サンプルの生成は、対象モデルの損失関数を入力に対して微分し、損失を増加させる方向へ入力を少しずつ動かす勾配ベースの最適化として定式化されることが多い。FGSMは勾配の符号方向へ1ステップだけ入力を動かす手法で計算コストが低く、PGD(Projected Gradient Descent)は同様の操作を複数回繰り返し、各ステップで摂動の大きさを一定範囲内に射影することでより強力な敵対的サンプルを探索する。対象モデルの勾配に直接アクセスできないブラックボックス設定では、入出力の観察だけから摂動方向を推定する手法や、別のモデルで生成した敵対的サンプルの転移性を利用する手法が使われる。

ワークフロー

対象モデルへ入力を与え、正解ラベルに対する損失を計算する。 損失を入力データに対して逆伝播し、勾配を求める。 勾配の符号方向など、損失を増加させる方向へ、入力に微小な摂動を加える。 摂動の大きさが人間の知覚範囲を超えないようクリッピングし、敵対的サンプルとして出力する。

コード例

FGSMによる敵対的サンプル生成の概念的な流れ

# 対象モデルの損失を入力に対して微分し、勾配の符号方向へ摂動を加える(概念例)
loss = loss_fn(model(x), true_label)
grad = torch.autograd.grad(loss, x)[0]

epsilon = 0.01
x_adv = x + epsilon * grad.sign()
x_adv = torch.clamp(x_adv, 0, 1)  # 人間に知覚されない範囲へクリッピング

欠点

  • 自動運転や医療診断など誤判定が実害に直結する用途で、モデルの信頼性を損なうリスクがある
  • あるモデル向けに生成した敵対的サンプルが別モデルにも有効に働く転移性があり、モデル内部を知らない攻撃者でも悪用しやすい
  • 敵対的学習などの対策を導入すると、通常入力に対する精度や学習コストとのトレードオフが生じやすい

比較

  • 回避攻撃敵対的サンプルは、回避攻撃(推論時に検知システムをすり抜ける攻撃)を実現する代表的な技術のひとつという関係にある
  • バックドア攻撃敵対的サンプルは推論時に入力側を操作する攻撃であるのに対し、バックドア攻撃は学習時にモデル自体へ不正な挙動を仕込む点が異なる
  • データポイズニング敵対的サンプルは既に学習済みのモデルに対する攻撃であるのに対し、データポイズニングは学習データ自体を汚染する点が異なる

関連用語

回避攻撃バックドア攻撃データポイズニングレッドチーミング敵対的学習

よくある質問

敵対的サンプルはなぜ人間に気づかれないのか?

摂動の大きさをL2やL∞ノルムなどで制限しながら生成するため、ピクセル値の変化が人間の知覚閾値を下回るよう調整されているため。

敵対的サンプルへの対策は?

敵対的サンプルを学習データに混ぜてモデルを頑健化する敵対的学習や、入力の前処理で摂動を除去する手法、複数モデルの出力を組み合わせて検知する手法などが研究されている。

参考文献