敵対的訓練

Adversarial Training

敵対的訓練とは

敵対的訓練(Adversarial Training)とは、訓練過程で意図的に敵対的サンプルを生成し、それをモデルの学習に組み込むことで堅牢性を向上させる手法です。現在最も効果的な敵対的防御手法の一つであり、モデルが攻撃に対して頑健に動作するよう訓練する実践的なアプローチです。

表:敵対的訓練の要点まとめ
ひとことで言うとわざと敵対的サンプルを作って学習させ、攻撃に強いモデルにする手法。
何がうれしいか現時点で最も実効性のある防御策とされている。
注意点学習時間が数倍になり、通常データでの精度がやや落ちることがある。

敵対的訓練の仕組み

通常の訓練では、クリーンな訓練データに対する損失を最小化します。一方、敵対的訓練ではミニマックス最適化を行います。すなわち、各訓練ステップで現在のモデルに対して最も効果的な敵対的サンプルを生成(内部最大化)し、それに対する損失を最小化(外部最小化)します。これにより、最悪ケースの入力に対しても正しく予測できるモデルが学習されます。

図:敵対的訓練のサイクル
1通常データで学習まず普通に訓練
▶
2攻撃サンプルを生成現モデルを騙す入力
▶
3正解ラベルで学習騙されないよう訓練
▶
4堅牢性が向上攻撃に耐えられる
↺ 学習中ずっと2〜3をくり返す

代表的な手法

FGSMベースの敵対的訓練は計算効率が高く、大規模モデルにも適用可能です。PGDベースの敵対的訓練はより強力な堅牢性を実現しますが計算コストが高くなります。近年では、TRADES(TRadeoff-inspired Adversarial Defense via Surrogate-loss)やAWP(Adversarial Weight Perturbation)など、精度と堅牢性のバランスを改善する手法も提案されています。

課題と展望

敵対的訓練の主な課題は、計算コストの高さと精度低下のトレードオフです。標準的なPGDベースの敵対的訓練は通常訓練の数倍から10倍の計算時間を要します。また、特定の攻撃に対する堅牢性が他の攻撃に対して必ずしも般化しない場合もあります。効率的で汎化性の高い敵対的訓練は引き続き活発な研究領域です。