機械学習モデルへの敵対的攻撃とは【スキルアップAIキャンプ勉強記録】

＜目次＞
1.はじめに
2.機械学習モデルへの敵対的攻撃とは
3.代表的な攻撃方法
4.代表的な攻撃手法への対処法
5.おわりに
6.参考文献

# 1.はじめに
こんにちは。スキルアップAI編集部です。
近年、顔認証のように機械学習を用いたさまざまなソリューションが開発され、我々の日常生活において非常に身近なものになってきました。

ただこのように機械学習技術が発展し生活が便利になる一方で、**機械学習モデルへのセキュリティ**という点が新たな問題となってきています。

機械学習モデルへのセキュリティという分野は、現段階ではまだ、研究者やサイバーセキュリティの専門家によって実証実験が行われている段階ですが、今後、実務において当たり前のように考えなければならなくなる分野だと思います。

スキルアップAIでは、実践的なAI技術についてはもちろん、このような**AI技術における最先端の動向に関しても無料で学べる「[スキルアップAIキャンプ](https://www.skillupai.com/skillupai-camp/)」という勉強会**を開催しております。
そこで本ブログでは、私が実際にAIキャンプに参加して勉強した「機械学習モデルへの敵対的攻撃」に関して、概要をご紹介します。

# 2.機械学習モデルへの敵対的攻撃とは
機械学習モデルへの敵対的攻撃とは、**機械学習モデルの認識を混乱させる攻撃手法**です。
機械学習モデルがこの攻撃を受けると、予想もしない予測結果が出てきたり、機械学習モデルの学習に用いられたデータが流出したり、ということが起こり得ます。
後者の例を図1に示します。図1の右図は、学習に使われた顔画像であり、図1の左図は、敵対的攻撃によって復元された顔画像です。復元された顔画像は、学習された顔画像にそっくりだということがわかります。詳しい仕組みは、「3.2. モデル反転攻撃」でご紹介します。

![adversarial-attacks_01.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/889700/bd71bcc0-e7dd-69e9-3cf7-63d3ed389fa7.png)
図1. 顔認証モデルから訓練画像を復元した例
（参考文献[1]より引用）

# 3.代表的な攻撃方法
機械学習モデルに対する敵対的攻撃は年々新しいものが考案されています。ここでは、その中でも代表的な方法として、「敵対的サンプル」と「モデル反転攻撃」を紹介します。

## 3-1. 敵対的サンプル
「敵対的サンプル」は、**機械学習モデルの認識を混乱させる攻撃手法**です。人だと認識できないような些細なノイズを入力データに加えることで、機械学習モデルに想定外の挙動を起こさせます。
例えば図3の例では、「パンダ」の画像にノイズを加え、その画像を機械学習モデルに与えたところ、機械学習モデルは「パンダ」を「テナガザル」と誤認識してしまいました。

![adversarial-attacks_02.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/889700/87aa5601-022d-34ba-4153-31ad5ec26367.png)
図2. 敵対的サンプルの例
（参考文献[2]より引用）

このときのノイズは、「**Fast Gradient Sign Method（FGSM）**」と呼ばれる手法で生成されました。
ノイズの生成方法を図2に示します。この手法では、元画像にノイズを加えた画像（敵対的サンプルという）を作成し、それをニューラルネットワークに入力します。そして、ニューラルネットワークから出力された結果を使って誤差を計算し、その誤差を逆伝播し、勾配上昇法でノイズの値を更新します。
これによって、想定外の挙動を起こさせるノイズを作り出します。

![adversarial-attacks_03.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/889700/ed8d3c59-81fe-8e1d-4012-7cf39bdfc03f.png)
図3. ノイズの生成方法
（参考文献[2]を一部編集）

## 3-2. モデル反転攻撃
モデル反転攻撃は、**入力と出力を反転させることによって、データを窃取するという攻撃手法**です。モデル反転攻撃では、機械学習モデルの予測確率が高くなるように入力を調整していきます。もし「高い予測確率（確信度）をもつもの」が見つかった場合、「そのような出力を得られる入力データは元の訓練データに似ている」と考えることができます。図5に反転攻撃の例を示します。

図5の例では、顔認証の機械学習モデルに対してモデル反転攻撃を行うことで、訓練データに含まれていた顔画像データとそっくりな画像データを見つけています。

![adversarial-attacks_04.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/889700/69c1731d-0062-acbd-fa5f-bf867830436f.png)
図4. モデル反転攻撃の例
（参考文献[1]を一部編集）

この探索でも敵対的サンプルと同じように勾配法が利用されます。この例では誤差を小さくするように勾配降下法で入力の画像データを更新していきます。

![adversarial-attacks_05-1200x520.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/889700/1fe715b6-c8d0-eac4-4603-4952012a71b6.png)
図5. モデル反転攻撃の探索方法
（参考文献[1]を一部編集）

# 4.代表的な攻撃手法への対処法
「３．代表的な攻撃方法」で紹介したような **「攻撃対象のモデルが手元にあることを前提とするような手法」は「ホワイトボックス攻撃」** と呼ばれます。

ホワイトボックス攻撃を防ぐ方法としては、「ソフトウェアにモデルを同梱せず推論をサーバ上で行うこと」や「推論用サーバのセキュリティ対策を徹底すること」で、**攻撃者にモデルを渡さないようにすることが有効**です。

「ホワイトボックス攻撃」とは逆に、 **「攻撃対象のモデルを必要とせずに入力・出力のデータだけで攻撃する」ような手法を「ブラックボックス攻撃」** と呼びます。今回は紹介していませんが、「モデル反転攻撃」は「ブラックボックス攻撃」として行うことも可能です。

ブラックボックス攻撃を防ぐ方法としては、「機械学習モデルを使ったシステムの推論回数に上限を設けること」や「予測確率（確信度）を攻撃者に渡さないこと」「モデルへのアクセスに認証をつけること」が有効です。

# 5.おわりに
今回は、私がスキルアップAIキャンプで学んだ機械学習モデルへの敵対的攻撃についてご紹介しました。

スキルアップAIキャンプでは、実務でのAI活用に必要となるさまざまな実践的テーマを取り上げ、最先端のAI技術について学べる勉強会を毎週開催しています。

スキルアップAIキャンプでは座学だけでなく、テーマに関するハンズオンで実際に手を動かして体験いただけるインタラクティブな勉強会となっております。
無料かつオンラインで参加できますので、興味のある方はぜひ概要ページを覗いてみてください。

[スキルアップAIキャンプ概要ページ](https://www.skillupai.com/skillupai-camp/)

# 6.参考文献
[1] Matt Fredrikson, Somesh Jha, and Thomas Ristenpart. “Model Inversion Attacks that Exploit Confidence Information and Basic Countermeasures.” In Proceedings of the 22nd ACM SIGSAC Conference on Computer and Communications Security (CCS ’15). Association for Computing Machinery, New York, NY, USA, pp. 1322–1333. 2015.
[2] Ian J. Goodfellow, Jonathon Shlens, Christian Szegedy. “Explaining and Harnessing Adversarial Examples.” arXiv:1412.6572
[3] Uiwon Hwang, Jaewoo Park, Hyemi Jang, Sungroh Yoon, Nam Ik Cho. “PuVAE: A Variational Autoencoder to Purify Adversarial Examples.” arXiv:1903.00585
[4] Jeremy M Cohen, Elan Rosenfeld, J. Zico Kolter. “Certified Adversarial Robustness via Randomized Smoothing.” arXiv:1902.02918

# 25卒向け！AIエンジニアになるための長期インターンプログラム参加者募集中！
25卒学生向けに、AIの基礎を学びながら就活も一括サポートする無料カリキュラムを提供しています。
修了するとE資格の受験資格も獲得できるプログラムとなっています！

<img width="700" alt="長期インターン" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/889700/bfce4c26-1ebe-c54d-bacb-e804048a7a08.png">

**特長①AIエンジニアやデータサイエンティストの基礎が身に付く**
AIジェネラリスト基礎講座や機械学習のためのPython入門講座など、市場価値向上のための基礎を習得。

**特長②AI・データ分析領域の優良求人を紹介**
非公開求人や選考直結型インターンをご紹介し、早期内定の獲得をサポート。

**特長③長期インターンプログラム専用の学生コミュニティ参加可**
学生同士で就活情報をシェアしたり、学習を進めるうえでアドバイスをしあったりできるコミュニティに参加可能。

＞＞[長期インターン詳細](https://bit.ly/3pXW5JM)

☆☆☆
スキルアップAIのメールマガジンでは会社のお知らせや講座に関するお得な情報を配信しています。
配信を希望される方は[こちら](https://share.hsforms.com/1_XlReV-4Te-zcxCl9lhffA2mtef)

また、SNSでも様々なコンテンツをお届けしています。興味を持った方は是非チェックしてください♪
Twitterは[こちら](https://twitter.com/SkillupAi)
Facebookは[こちら](https://www.facebook.com/skillupai)
LinkedInは[こちら](https://www.linkedin.com/company/skillup-ai)
スキルアップAI公式YouTube AIビジネスチャンネルは[こちら](https://www.youtube.com/AIBusinessChannel)