AI安全如何入门(上)

栏目: Python · 发布时间: 6年前

内容简介:AI安全如何入门(上)

AI安全概述

理解AI安全最简单的方式就是从攻防的视角。从攻击的角度讲,AI安全可以细分为使用AI技术进行攻击、攻击AI模型和攻击智能设备。从防守的角度,AI安全主要指使用AI技术赋能传统安全产品以及保护智能设备。有兴趣的同学可以关注下我之前的文章《AI时代的攻与防》

AI的基础知识

AI 的学习坡度高于 Python 这类编程语言,但是并非只有屈指可数的大公司和科研院所才能掌握。我们即需要有足够的耐心踏实的进行学习,同时也不要有畏难情绪。下面我结合自己的学习经历,推荐几本适合入门的书籍。

首先是《机器学习实战》,这本书相比学院派的机器学习理论书籍,使用了大量的篇幅介绍了如何基于Python去实现常见的机器学习算法。通过这本书可以比较深刻的理解常见算法的底层实现。

AI安全如何入门(上)

如果你对算法的数学原理非常感兴趣,我同时也推荐周老师的西瓜书,这本书从数学角度对机器学习的原理介绍的非常详细。

AI安全如何入门(上)

如果你对算法的底层实现和深层原理并不感兴趣,更想了解如何从编程层面去使用机器学习,我强烈推荐《Python数据挖掘入门与实践》,这本书以scikit-learn为主要开发环境,结合大量例子介绍了常见算法的使用。

AI安全如何入门(上)

如果你有一定的安全背景,想入门AI安全,或者想看下AI在安全领域的应用,可以看下我的两本以web安全常见问题为背景,介绍AI安全的书《Web安全之机器学习入门》和《Web安全之深度学习实战》

AI安全如何入门(上)

如果你对安全的基础知识不是很熟悉,我强烈推荐刺的《白帽子讲web安全》

AI安全如何入门(上)

开发环境

建议在 linux 和mac环境进行机器学习程序的开发,开发语言也强烈推荐python,一方面python容易掌握,另外一方面大量的机器学习库仅支持python。

Scikit-Learn是基于Python的机器学习模块,基于BSD开源许可证。这个项目最早由在2007 年发起的,目前也是由社区自愿者进行维护。Scikit-Learn的官方网站上面可以找到相关的Scikit-Learn的资源,模块下载,文档,例程等等。Scikit-Learn的基本功能主要被分为六个部分,分类,回归,聚类,数据降维,模型选择,数据预处理,具体可以参考官方网站上的文档。

安装方法如下:

pip install -U scikit-learn

TensorFlow是谷歌的第二代人工智能学习系统,可被用于语音识别或图像识别等多项机器深度学习领域,是在2011年开发的深度学习基础架构DistBelief进行了各方面的改进,它可在小到一部智能手机、大到数千台数据中心服务器的各种设备上运行。

TensorFlow支持非常丰富的安装方式,在Linux和Mac 可以直接使用默认版本安装。

pip install tensorflow

TensorFlow虽然功能强大,但是开发效率比较低,建议大家使用Keras。Keras是一个高级别的Python神经网络框架,能在TensorFlow或者 Theano 上运行。Keras和TensorFlow的关系可以理解为win32 API和MFC的关系。

Keras的在线文档内容非常丰富,地址为:

https://keras.io/

Keras的安装非常简便,使用pip工具即可。

pip install keras

如果需要使用源码安装,可以直接从GitHub上下载对应源码。

https://github.com/fchollet/keras

然后进入Keras目录安装即可。

python setup.py install

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

AI安全如何入门(上)

Anaconda框架(图片来自Anaconda官网)

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

AI安全如何入门(上)

下载页面(图片来自Anaconda官方下载页面)

点击安装包,选择安装的硬盘,通常Mac本也只有一块硬盘,使用默认安装即可。

AI安全如何入门(上)

一路使用默认配置进行安装,安装完成后出现如下所示的界面,表明安装成功。

AI安全如何入门(上)

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

cat ~/.bash_profile

我们可以发现在当前用户的profile文件的最后增加了如下内容,表明已经将Anaconda的bin目录下的命令添加到了PATH变量中,可以像使用系统命令一样直接使用Anaconda的命令行 工具 了。

# added by Anaconda2 5.0.0 installer

export PATH=”/anaconda2/bin:$PATH”

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:3book liu.yan$ 

(python27) maidou:3book 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)] ondarwin

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:

继续统计包的个数,除去2行的无关内容,当前环境下已经有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 的发展将通过变革军事优势、信息优势和经济优势等三方面影响国家安全,建议美国政府保持美国的技术领先地位。而最近,俄罗斯总统普京就 AI 领域的竞赛警告:“谁成为了这个领域的领导者,谁就将成为世界的统治者”。习近平总书记也在多次讲话中谈到人工智能的迅猛发展,强调“我们不仅要把我国机器人水平提高上去,而且要尽可能多地占领市场”。可见 AI 技术已经得到大国国家层面的重视。 Strategy Analytics 的报告指出,到 2020 年会有 500 亿台物联网设备在全球部署。埃森哲预测,到 2035 年,人工智能将让年度经济增长率提升一倍。在这样的背景下, AI 安全显得尤其重要,针对 AI 安全的研究已经成为整个安全行业最重要最前沿的一个方向。


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Go Web编程

Go Web编程

谢孟军 / 电子工业出版社 / 2013-6-1 / 65.00元

《Go Web编程》介绍如何用Go语言进行Web应用的开发,将Go语言的特性与Web开发实战组合到一起,帮读者成功地构建跨平台的应用程序,节省Go语言开发Web的宝贵时间。有了这些针对真实问题的解决方案放在手边,大多数编程难题都会迎刃而解。 在《Go Web编程》中,读者可以更加方便地找到各种编程问题的解决方案,内容涵盖文本处理、表单处理、Session管理、数据库交互、加/解密、国际化和标......一起来看看 《Go Web编程》 这本书的介绍吧!

CSS 压缩/解压工具
CSS 压缩/解压工具

在线压缩/解压 CSS 代码

HTML 编码/解码
HTML 编码/解码

HTML 编码/解码

HEX CMYK 转换工具
HEX CMYK 转换工具

HEX CMYK 互转工具