敵対的学習とは

敵対的学習とは、AIにわざと細工した「ひっかけ問題」をあらかじめ学ばせておき、本番で似た細工に引っかかりにくくする防御手法のことです。攻撃用に作った紛らわしいデータも教材に混ぜることで、AIが落とし穴に慣れていく、という考え方になります。「敵対的訓練」とも呼ばれ、学習を終えたAIをだます回避攻撃への代表的な対策として知られています。

英語表記:Adversarial Training

ひっかけ問題を教材に混ぜる

やっていることは、試験対策の「過去問演習」に近い。ふつうの学習データに加えて、攻撃者が作りそうな紛らわしいデータをあえて見せ、正しい答えを覚え直させるわけです。2017年にMadryらが、この考え方を「いちばん意地悪な細工に対しても正解できるように鍛える」という形できれいに定式化しました。手強い攻撃役と守る役を交互に回すイメージで、AIは少しずつ細工に動じなくなっていきます。

GANの「敵対的」とは別物

ここで混同しやすいのが、本物そっくりの画像を作るGAN(敵対的生成ネットワーク)との違いです。名前にどちらも「敵対的」が入りますが、両者は無関係の別概念。GANは生成役と判定役が競い合って新しいデータを「生み出す」技術で、敵対的学習は攻撃に「耐える」ための守りの訓練です。同じ言葉でも目的がまるで違うので、社内で話すときは取り違えに注意したいところ。

万能ではない、コストもかかる

便利に見えますが、副作用もあります。攻撃に強くしようとすると、ふだんの正常なデータでの精度がやや落ちることがある。攻撃への強さと、ふつうの性能は、片方を立てると片方が下がりやすい関係なのです。学習のたびに細工データを作り直すため計算の手間も増えます。しかも新種の攻撃には依然として弱い。だから敵対的学習は単独の切り札ではなく、人手の確認や別の検知と重ねる多層の備えの一部として位置づけるのが現実的でしょう。AIベンダーを選ぶときは「敵対的訓練をしているか」を確認の一項目にしてみてください。

Topic同じ「敵対的」でも、まったく別の技術を指す

AIの世界には「敵対的」と名のつく言葉がいくつもあり、初見だと混乱のもとです。敵対的学習は攻撃に耐える防御、敵対的生成ネットワーク(GAN)はデータを作り出す生成技術、敵対的サンプルはAIをだます細工データ、と狙いがそれぞれ違います。英語版の解説でもGANと混同しないよう注釈が付くほど。「敵対的」という単語だけで同じ仲間だと判断しないのが、AI用語を読み解くコツのひとつです。

敵対的学習に関するよくある質問

敵対的学習はどんな場面で使われますか?
迷惑メール判定や画像認識、顔認証など、AIの誤判定が業務の関所になる仕組みで使われます。とくに自動運転の標識認識のように、誤りが事故や損害に直結する領域で重視されます。
敵対的学習は自社で実施する必要がありますか?
多くの場合、AIを提供するベンダー側が学習段階で組み込みます。利用する企業は対応状況を確認したうえで、AIの判定を最終決定にせず人の確認を残す運用と組み合わせるのが現実的です。
「敵対的学習」と「敵対的訓練」は違う言葉ですか?
同じものを指す表記ゆれです。英語のAdversarial Trainingの訳で、文献によってどちらの呼び方も使われます。

あわせて読みたい記事