AI 安全之对抗样本入门 (23):打造对抗样本工具箱 2.1

阅读数:12 2019 年 11 月 30 日 15:08

AI安全之对抗样本入门(23):打造对抗样本工具箱 2.1

(Anaconda)

内容简介
第 1 章介绍了深度学习的基础知识,重点介绍了与对抗样本相关的梯度、优化器、反向传递等知识点。
第 2 章介绍了如何搭建学习对抗样本的软硬件环境,虽然 GPU 不是必需的,但是使用 GPU 可以更加快速地验证你的想法。
第 3 章概括介绍了常见的深度学习框架,从 TensorFlow、Keras、PyTorch 到 MXNet。
第 4 章介绍了图像处理领域的基础知识,这部分知识对于理解对抗样本领域的一些常见图像处理技巧非常有帮助。
第 5 章介绍了常见的白盒攻击算法,从基础的 FGSM、DeepFool 到经典的 JSMA 和 CW。
第 6 章介绍了常见的黑盒攻击算法。
第 7 章介绍了对抗样本在目标识别领域的应用。
第 8 章介绍了对抗样本的常见抵御算法,与对抗样本一样,抵御对抗样本的技术也非常有趣。
第 9 章介绍了常见的对抗样本工具以及如何搭建 NIPS 2017 对抗防御环境和轻量级攻防对抗环境 robust-ml,通过这章读者可以了解如何站在巨人的肩膀上,快速生成自己的对抗样本,进行攻防对抗。

Python 是深度学习领域的网红,几乎所有的深度学习框架都支持 Python,甚至仅支持 Python。Python 在给开发者带来各种便利的同时,其复杂的包管理与环境管理也一直困扰着开发者。本书推荐使用 Anaconda 进行 Python 环境的搭建,大量实践证明 Anaconda 具有工业级的稳定性,同时使用便捷,下面我们详细介绍 Anaconda。

Anaconda 是一个用于科学计算的 Python 开发平台,支持 Linux、Mac 和 Windows 系统,提供了包管理与环境管理的功能,可以很方便地解决多版本 Python 并存、切换以及各种第三方包安装问题。Anaconda 利用 conda 命令来进行包和环境的管理,并且已经包含了 Python 和相关的配套工具。如图 2-2 所示,Anaconda 集成了大量的机器学习库以及数据处理必不可少的第三方库,比如 NumPy、SciPy、Scikit-Learn 以及 TensorFlow 等。

AI安全之对抗样本入门(23):打造对抗样本工具箱 2.1

图 2-2 Anaconda 框架**1**

1 图片源于 Anaconda 官网( https://www.anaconda.com/what-is-anaconda/ )。

Anaconda 的安装非常方便,如图 2-3 所示,从其官网的下载页面选择对应的安装包,以我的 Mac 本为例,选择 macOS 对应的图形化安装版本。

AI安全之对抗样本入门(23):打造对抗样本工具箱 2.1

图 2-3 Anaconda 下载页面**2**

2 图片来自 Anaconda 官方下载页面( https://www.anaconda.com/download/#macos )。

点击安装包,选择安装的硬盘,通常 Mac 本也只有一块硬盘,使用默认安装即可,如图 2-4 所示。

AI安全之对抗样本入门(23):打造对抗样本工具箱 2.1

图 2-4 Anaconda 安装界面

使用默认配置进行安装,安装完成后出现如图 2-5 所示的界面。

使用如下命令查看当前用户的 profile 文件的内容:

复制代码
cat ~/.bash_profile

AI安全之对抗样本入门(23):打造对抗样本工具箱 2.1

图 2-5 Anaconda 安装结束界面

我们可以发现,在当前用户的 profile 文件的最后增加了如下内容:

复制代码
# added by Anaconda2 5.0.0 installer
export PATH="/anaconda2/bin:$PATH"

表明已经将 Anaconda 的 bin 目录下的命令添加到了 PATH 变量中,可以像使用系统命令一样直接使用 Anaconda 的命令行工具了。

Anaconda 强大的包管理以及多种 Python 环境并存使用主要依赖于 conda 命令,常用的 conda 命令如下:

复制代码
# 创建一个名为 python27 的环境,指定 Python 版本是 2.7
conda create --name python27 python=2.7
# 查看当前环境下已安装的包
conda list
# 查看某个指定环境的已安装包
conda list -n python27
# 查找 package 信息
conda search numpy
# 安装 package
conda install -n python27 numpy
# 更新 package
conda update -n python27 numpy
# 删除 package
conda remove -n python27 numpy

假设我们已经创建一个名为 python27 的环境,指定 Python 版本是 2.7,激活该环境的方法如下:

复制代码
source activate python27

如果要退出该环境,命令如下所示:

复制代码
source deactivate

在 python27 的环境下查看 Python 版本,果然是 2.7 版本:

复制代码
maidou:3book liu.yan$ source activate python27
(python27) maidou:5book liu.yan$
(python27) maidou:5book liu.yan$ python
Python 2.7.14 |Anaconda, Inc.| (default, Oct 5 2017, 02:28:52)
[GCC 4.2.1 Compatible Clang 4.0.1 (tags/RELEASE_401/final)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>>

查看 python27 环境下默认安装了哪些包,为了避免显示内容过多,过滤前 6 行查看:

复制代码
conda list | head -6
# packages in environment at /anaconda2/envs/python27:
#
ca-certificates 2017.08.26 ha1e5d58_0
certifi 2017.7.27.1 py27h482ffc0_0
libcxx 4.0.1 h579ed51_0
libcxxabi 4.0.1 hebd6815_0

统计包的个数,除去 2 行的无关内容,当前环境下有 16 个包:

复制代码
conda list | wc -l
18

查看目前一共有几个环境,发现除了系统默认的 root 环境,又多出了我们创建的 python27 环境:

复制代码
conda info --envs
# conda environments:
#
python27 /anaconda2/envs/python27
root * /anaconda2

在 python27 环境下安装 Anaconda 默认的全部安装包,整个安装过程会比较漫长,速度取决于你的网速:

复制代码
conda install anaconda
Fetching package metadata ...........
Solving package specifications: .
Package plan for installation in environment /anaconda2/envs/python27:

继续统计包的个数,除去两行的无关内容,当前环境下已经有 238 个包了:

复制代码
conda list | wc -l
240

Anaconda 默认安装的第三方包里没有包含 TensorFlow 和 Keras,需要使用命令手工安装。以 TensorFlow 为例,可以使用 conda 命令直接安装:

复制代码
conda install tensorflow

同时,也可以使用 pip 命令直接安装:

复制代码
pip install tensorflow

本书一共创建了两个环境,分别是 python27 和 python36,顾名思义,对应的 Python 版本分别为 2.7 和 3.6,用于满足不同案例对 Python 版本的不同要求。

AI安全之对抗样本入门(23):打造对抗样本工具箱 2.1

购书地址 https://item.jd.com/12532163.html?dist=jd

评论

发布