Adversarial Attackを解説:AIの意外な脆弱性
こんにちは。ゆうせいです。
ディープラーニングモデルは、画像認識、音声認識、テキスト分類など、多くの領域で高い精度を達成しています。しかし、近年の研究により、これらのモデルに対して「敵対的攻撃」(Adversarial Attack)という特殊な手法で攻撃を加えると、簡単に誤った判断をしてしまうことが明らかになりました。自動運転の車が存在しない障害物を「見える」と判断したり、医療診断AIが実は正常な画像を「がんである」と誤判定したりする可能性があるのです。本記事では、Adversarial Attackとは何か、なぜ起きるのか、そしてどのように防御するのかを、具体例を交えながら解説します。
Adversarial Attackとは
Adversarial Attackとは、AIモデルを意図的に誤動作させるための特殊な入力データを作成・提供する攻撃手法のことです。
具体例を示します。
画像分類モデルに対して、一見すると元の画像と同じに見える画像に、極めて細かいノイズ(人間の目では分からないほど小さな変更)を加えます。すると、モデルが間違った分類をしてしまうのです。
例えば、パンダの画像にノイズを加えると、モデルは「これはテナガザル(別の動物)である」と判定してしまう、というような事象が報告されています。人間にはパンダにしか見えないのに、AIだけが誤認識するのです。
重要なのは、攻撃者は「モデルの内部構造を知っている場合」と「知らない場合」の両方で、Adversarial Attackを実行できるという点です。
具体例:パンダ画像の誤分類
2014年に発表された有名な研究では、以下のようなことが示されました。
元の画像:パンダの写真。モデルは57パーセントの確信度で「パンダ」と判定。
攻撃後の画像:元の画像に、ほぼ見えないほどの小さなノイズを加えたもの。人間の目には「パンダの写真」にしか見えない。
モデルの判定:攻撃後の画像に対して、99.3パーセントの確信度で「テナガザル」と判定。
つまり、人間には識別不可能な変更を加えるだけで、モデルの判定を確実に変えることができたのです。
現実世界での危険性
Adversarial Attackは理論的な問題ではなく、現実世界で深刻な危険をもたらします。
自動運転車:攻撃者が路上標識(ストップサイン)にステッカーを貼るなど、人間には「ストップサイン」に見える形で改ざんすると、自動運転車の画像認識モデルはそれを「速度制限標識」と誤認識してしまう可能性があります。結果として、停止すべき状況で減速しなくなり、事故につながります。
医療診断AI:胸部X線画像に、人間には知覚できない細かいノイズを加えると、AIが「正常な肺」を「がんの疑いあり」と誤診断してしまう可能性があります。
顔認識システム:特殊なメガネやマスクを使って顔認識AIを誤認識させ、なりすまし攻撃を行うことが可能です。
音声認識:特殊な背景音を重ねることで、音声認識モデルが意図しない命令と認識させることができます。
なぜAdversarial Attackは起きるのか
この現象の根本的な原因は、ニューラルネットワークの動作原理にあります。
ニューラルネットワークは、入力データから出力を導くために、複雑な数学的計算を行います。その過程で、「入力空間」と呼ばれる、すべての可能な入力の領域が存在します。
通常、訓練データに近い入力(例えば、実際に撮影されたパンダの写真に似た画像)に対しては、モデルが正しく判定します。しかし、訓練データから少し外れた領域には、モデルが予期しない挙動を示す「敵対的な例」が存在するのです。
数学的には、高次元空間(例えば、画像は数百万個のピクセル値で表現されるため、極めて高次元)では、「少しの変更」が思わぬ方向に大きな影響を及ぼすことがあります。このような高次元空間の反直感的な性質が、Adversarial Attackの基礎になっています。
ニューラルネットワークは、訓練データに対して強く最適化されていますが、訓練データに含まれていない入力パターン(例えば、ノイズが加えられた画像)に対しては、どのように反応すべきかについて、明示的には学習していないのです。
Adversarial Attackの種類
Adversarial Attackは、攻撃者がモデルについてどの程度の情報を持っているかによって、いくつかの種類に分類されます。
ホワイトボックス攻撃
攻撃者が、モデルのアーキテクチャ、重み、訓練データなど、すべての情報にアクセスできる場合の攻撃。
例えば、企業が内部で開発したAIモデルに対して、その企業の従業員が攻撃を仕掛ける場合が該当します。
このタイプの攻撃は最も強力です。攻撃者は、勾配情報(損失関数がどの方向に変わるか)を利用して、効率的に敵対的例を生成できます。
代表的な手法:FGSM(Fast Gradient Sign Method)は、勾配の方向に沿って入力を少しずつ変更することで、敵対的例を生成します。
ブラックボックス攻撃
攻撃者がモデルの内部情報を持たず、入力と出力の対応だけを知っている場合の攻撃。
例えば、APIとして公開されているAIサービスに対して、試行錯誤で敵対的例を見つける場合が該当します。
このタイプの攻撃は、ホワイトボックス攻撃より難しいですが、不可能ではありません。攻撃者は、黒い箱の中身を推測しながら、複数の入力を試す必要があります。
転移性(Transferability)という性質により、あるモデルに対して作成した敵対的例が、別のモデルに対しても効果を持つことがあります。これを利用すれば、ブラックボックスモデルにも攻撃できます。
物理的攻撃
デジタル領域ではなく、物理世界に敵対的例を埋め込む攻撃。
例えば、自動運転車の標識認識を欺くために、実際のストップサインにステッカーを貼って改ざんする場合が該当します。
このような物理的敵対的例は、照明条件、撮影角度、距離など、多くの変数に対してロバスト(堅牢)である必要があるため、デジタル領域の敵対的例より生成が難しいのです。
Adversarial Attackの生成手法
敵対的例がどのように生成されるかを、簡潔に説明します。
FGSM(Fast Gradient Sign Method):最も単純で直感的な手法。
- 元の入力 x に対して、モデルの出力を計算する。
- 損失関数の勾配 ∇_x L(損失関数がxに対してどう変わるか)を計算する。
- 入力を勾配の方向に少しだけ変更する:x' = x + ε × sign(∇_x L)
- 結果として得られた x' が敵対的例になる。
ここで、ε は攻撃の「強さ」を制御するパラメータで、値が大きいほど画像が目立つように変わります。
PGD(Projected Gradient Descent):FGSMより強力な手法。同じプロセスを複数回繰り返し、各ステップで入力を制限内に「射影」して、変更を小さく保つ。
C&W Attack(Carlini & Wagner Attack):最適化問題として敵対的例を生成。より効果的ですが、計算量が多いのが欠点。
防御方法
Adversarial Attackに対する防御は、現在も活発な研究分野です。
敵対的訓練(Adversarial Training)
訓練プロセスの中で、意図的に敵対的例をモデルに与え、それらに対して正しく判定するように学習させる手法。
プロセス:
- 通常の訓練データを準備する。
- 訓練の各ステップで、現在のモデルを使って敵対的例を生成する。
- 元のデータと敵対的例の両方を混ぜて、モデルを訓練する。
- このプロセスを繰り返す。
メリット:一度敵対的訓練を施したモデルは、敵対的例に対する耐性が向上する。
デメリット:訓練時間が増加する。また、あらかじめ想定した攻撃には耐性を持つが、新しい攻撃手法には対応できない可能性がある。
入力検証と前処理
敵対的例が持つ特性を検出して、攻撃を防ぐ方法。
ノイズ検出:入力に不自然なノイズが加えられていないかをチェック。
入力サニタイゼーション:画像をわずかにぼかしたり、圧縮・展開したりして、細かいノイズを除去する試み。ただし、この手法も逆に攻撃者に悪用される可能性がある。
デメリット:防御策があると、攻撃者は防御策を意識した新しい敵対的例を生成する「防御回避攻撃」を開発する。結果として、防御と攻撃の「軍拡競争」が起きるのです。
異なるアーキテクチャの利用
異なるニューラルネットワークアーキテクチャ(例えば、CNN、Vision Transformerなど)を組み合わせて使用することで、敵対的例の効果を減らす方法。
原理:あるモデルを欺く敵対的例が、別のアーキテクチャのモデルを必ずしも欺くとは限らないため、複数のモデルの判定を組み合わせると、敵対的例への耐性が向上する。
ロバスト最適化
モデルが訓練時に考慮しなかった入力に対しても、堅牢に動作するよう設計する方法。
訓練時に、単なる正確性ではなく、敵対的例に対する耐性も含めて目的関数を設定する。
認証付きモデル
数学的な保証を持つモデルの開発。例えば、「入力が x から距離 ε 以内に変更された場合でも、モデルの判定は変わらない」という証明を持つモデルの設計が研究されています。
ただし、この手法は、実用的な精度を保ちながら実装するのが難しいという課題があります。
E資格との関連
E資格(JDLA Deep Learning for ENGINEER)では、Adversarial Attackは「深層学習の安全性と堅牢性」の分野で出題されることがあります。
主な出題範囲:Adversarial Attackの定義、具体例、なぜ起きるのか、FGSM等の基本的な生成手法、防御方法の基本的な考え方。
試験では、単に「Adversarial Attackとは何か」を知っているだけでなく、「なぜニューラルネットワークが敵対的例に弱いのか」という根本的な理由を理解していることが求められます。
実務での重要性
Adversarial Attackは、単なる学術的興味の対象ではなく、現実的なセキュリティリスクです。
特に、自動運転、医療診断、顔認識といった「人命や個人の権利に関わるシステム」では、Adversarial Attackへの対策が必須になります。
NIST(米国国立標準技術研究所)やEU AI法などの規制でも、高リスクAIに対して「ロバスト性(堅牢性)」の評価が要求されるようになっています。
つまり、AIエンジニアは、高い精度のモデルを開発するだけでなく、そのモデルがAdversarial Attackに対して耐性を持つかどうかを常に考慮する必要があるのです。
まとめ
Adversarial Attackとは、ニューラルネットワークモデルを意図的に誤動作させるための特殊な入力データを作成し、攻撃する手法です。
人間の目には識別不可能な細かいノイズをデータに加えるだけで、モデルの判定を大きく変えることができます。この現象の根本的な原因は、ニューラルネットワークが訓練データに強く最適化されており、訓練データに含まれない入力パターンに対して予測不可能な挙動を示すことにあります。
Adversarial Attackの防御には、敵対的訓練、入力検証、複数モデルの組み合わせ、ロバスト最適化など、複数のアプローチがあります。しかし、完全な防御は困難であり、攻撃者が防御策を回避する新しい手法を開発する「軍拡競争」が続いています。
自動運転や医療診断などの重要なシステムでは、Adversarial Attackへの対策がセキュリティとして必須になっており、AIエンジニアにとって必ず理解しておくべき概念です。
次のステップとして、Adversarial ExamplesのGitHubレポジトリやオンライン上の実装を実際に試してみたり、FGSMやPGDなどの攻撃手法を自分で実装して、敵対的例がどのように生成されるかを体験したり、敵対的訓練を自分のモデルに適用してみたりすることをお勧めします。その実践を通じて、Adversarial Attackの本質と防御の難しさをより深く理解できるようになるでしょう。
投稿者プロフィール

- 代表取締役
-
セイ・コンサルティング・グループ株式会社代表取締役。
岐阜県出身。
海外放浪の末、2000年創業、2004年会社設立。
IT企業向け人材育成研修歴業界歴20年以上。
すべての無駄を省いた費用対効果の高い「筋肉質」な研修を提供します!
この記事に間違い等ありましたらぜひお知らせください。
学生時代は趣味と実益を兼ねてリゾートバイトにいそしむ。長野県白馬村に始まり、志賀高原でのスキーインストラクター、沖縄石垣島、北海道トマム。高じてオーストラリアのゴールドコーストでツアーガイドなど。現在は野菜作りにはまっている。

