Github: https://github.com/tensorflow/cleverhans
CleverHans(最新リリース:v2.0.0)
このリポジトリには、機械学習システムの脆弱性をベンチマークするためのPythonライブラリCleverHansのソースコードが含まれています。 この脆弱性の詳細については、付随するブログを参照してください 。
CleverHans図書館は継続的に開発されており、常に最新の攻撃や防御の貢献を歓迎しています。 特に、現在開かれている問題を解決するための支援を常に歓迎しています。
CleverHansのセットアップ
依存関係
このライブラリはTensorFlowを使用して、多くの機械学習モデルで実行されるグラフ計算を高速化します。 したがって、TensorFlowのインストールは必須条件です。
ここで指示を見つけることができます。 パフォーマンスを向上させるために、GPUサポート付きのTensorFlowをインストールすることもお勧めします(これを行う方法の詳細な説明は、TensorFlowのインストールドキュメントを参照してください)。
TensorFlowをインストールすると、 numpy
やscipy
などの他のすべての依存関係が処理されます。
インストール
依存関係が解決されたら、 pip
を使用してCleverHansをインストールするか、このGithubリポジトリをクローンすることができます。
pip
インストール
pip
を使用してCleverHansをインストールする場合は、次のコマンドを実行します。
pip install -e git+https://github.com/tensorflow/cleverhans.git#egg=cleverhans
手動インストール
CleverHansを手動でインストールする場合は、まずTensorFlowをインストールする必要があります。 次に、次のコマンドを実行してCleverHansリポジトリを任意のフォルダにクローンします。
git clone https://github.com/tensorflow/cleverhans
UNIXマシンでは、任意のフォルダからcleverhans
をインポートできるように、このリポジトリのクローンをPYTHONPATH
変数に追加することをお勧めします。
export PYTHONPATH="/path/to/cleverhans":$PYTHONPATH
その変更をシェルのプロファイルを通して永続化させたいかもしれません。
現在サポートされている設定
CleverHansは他の多くのマシン構成で動作する可能性がありますが、現在はUbuntu 14.04.5 LTS(Trusty Tahr)のPython {2.7,3.5}とTensorFlow {1.0,1.1}でテストしています。
チュートリアル
このライブラリが提供する機能を手助けするために、 `cleverhans_tutorials / ‘フォルダには以下のチュートリアルがあります:
- MNIST with FGSM ( code ):このチュートリアルでは、TensorFlowを使用してMNISTモデルを訓練する方法 、 高速勾配符号法を使用するクラフトの敵対的例を扱い、敵対的訓練を使用している模範的な例に対してモデルをより堅固にする。
- Keras ( コード ) を使用するFGSMを使用するMNIST :このチュートリアルでは、Kerasを使用してMNISTモデルを定義し、TensorFlowを使用してトレーニングする方法 、 高速勾配符号法を使用するクラフトの敵対的な例を示し、敵対的トレーニングを使用して、
- MNASIST with JSMA ( code ):この2回目のチュートリアルでは、KerasでMNISTモデルを定義し、TensorFlowとJacobianベースの顕著性マップアプローチを使用するクラフトの敵対的な例を使用してトレーニングする方法について説明します。
- ブラックボックス攻撃 ( コード ) を使用するMNIST :このチュートリアルでは、このホワイトペーパーで説明したブラックボックス攻撃を実装しています。 敵対者は、代替モデル:ブラックボックスモデルが敵によって慎重に選択された入力に割り当てるラベルを観察することによって、ブラックボックスモデルを模倣するコピー。 敵対者は代替モデルの勾配を使って、ブラックボックスモデルによっても誤分類されている敵対的な例を見つける。
チュートリアルで使用されるいくつかのモデルはKerasを使用して定義されています。これらのチュートリアルを実行する前にインストールする必要があります。 Kerasのインストール手順はこちらをご覧ください 。 TensorFlowバックエンドを使用するようにKerasを構成する必要があることに注意してください。 Kerasバックエンドを設定する手順は、このページで確認できます 。
例
examples/
フォルダには、CleverHansライブラリのさまざまな使い方を紹介するための追加のスクリプトが含まれています。あるいは、さまざまな敵対的な例題コンテストでの競争を開始することができます。
攻撃のリスト
cleverhans.readthedocs.ioで機能の署名とともにフルリスト攻撃を見つけることができます
レポートベンチマーク
ベンチマークを報告するときは、
- CleverHansのバージョン管理されたリリースを使用してください。 ここにリリース版のリストがあります 。
- 最新バージョンを使用するか、以前の出版物と比較する場合は、以前の出版物と同じバージョンを使用してください。
- どの攻撃方法が使用されたかを報告する。
- 攻撃の動作を判断するために使用される構成変数を報告します。
たとえば、「CleverHans v2.0.0を使用した攻撃方法に対する弊社の方法の堅牢性をベンチマークしました」FastGradientMethodで修正されたmax-norm eps
が0.3のテストセットでは、テストセットの精度は71.3% “
貢献する
寄付を歓迎します! コードレビュープロセスのスピードアップを図るため、
- CleverHans開発のメーリングリストcleverhans-dev@googlegroups.comで新しい取り組みと機能を調整してください。
- CleverHansにコードを投稿するときは、プルリクエストで
PEP8
コーディングスタイルに従います。 - 最初のプルリクエストをするときは、Google CLAに署名します
- gitサブモジュールを保持するときに発生する問題のため、gitサブモジュールを追加するプルリクエストは受け付けません
バグの修正は、Githubプルリクエストを通じて開始することができます。
この作品を引用する
アカデミックリサーチにCleverHansを使用する場合は、次の論文を引用することを強くお勧めします(必須ではありません)。
@article{papernot2017cleverhans,
title={cleverhans v2.0.0: an adversarial machine learning library},
author={Nicolas Papernot, Nicholas Carlini, Ian Goodfellow, Reuben Feinman,
Fartash Faghri, Alexander Matyasko, Karen Hambardzumyan, Yi-Lin Juang, Alexey
Kurakin, Ryan Sheatsley, Abhibhav Garg, Yen-Chen Lin},
journal={arXiv preprint arXiv:1610.00768},
year={2017}
}
名前について
CleverHansという名前は、Bob Sturmのプレゼンテーション「Clever Hans、Clever Algorithms:あなたの機械学習はあなたの思考を学んでいますか?」と対応する出版物「音楽情報検索システムが、実際には正しい答えを出すための社会的合図を読むことしか学んでいなかった。賢いハンズは、人の顔を見ることができないか、 Clever Hansの話は、トレーニングデータと同じ分布から作成されたテストセットで非常に高い精度を達成する可能性のある機械学習システムのメタファーですが、実際には理解していません基礎となるタスクであり、他のインプットではうまく機能しません。
著者
このライブラリは、Ian Goodfellow(Google Brain)、Nicolas Papernot(ペンシルバニア州立大学)、Ryan Sheatsley(ペンシルベニア州立大学)によって管理され、管理されています。
以下の著者は、100行以上寄稿しました(GitHub寄稿者のページに従って):
- Nicolas Papernot(ペンシルバニア州立大学、Google Brain intern)
- ニコラス・カロリーニ(UCバークレー)
- イアングッドフェロー(Google Brain)
- Reuben Feinman(Symantec)
- Fartash Faghri(トロント大学、Google Brain intern)
- アレクサンダーマティアスコ(南陽技術大学)
- カレン・ハンバルツミヤン(YerevaNN)
- 林林(NTUEE)
- Alexey Kurakin(Google Brain)
- Ryan Sheatsley(ペンシルベニア州立大学)
- Abhibhav Garg(IIT Delhi)
- 円陳林(全国清華大学)
- ポール・ヘンドリックス
著作権
著作権2017 – Google Inc.、OpenAI、ペンシルバニア州立大学。