此后接纳这种技术建立一个鲁棒的敌视例子, 机器之心 人工智能威尼斯人娱乐 术语库 谷歌 机器学习

假如说卷积神经网络是往日影帝的话,那么生成对抗已然成为深度学习探讨世界中一颗新晋的耀眼新星,它将干净地转移我们体会世界的措施。对抗学习磨练为指引人工智能完成复杂任务提供了一个崭新的思绪,生成对抗图片可以分外轻松的讥笑在此以前锻炼好的分类器,由此怎么样利用生成对抗图片提升系统的鲁棒性是一个很有研究的热点问题。
神经网络合成的对垒样本很容易令人吃惊,这是因为对输入举办精密精心制作的扰动就可能造成神经网络以自由采用的方法对输入举行不当地分类。鉴于对抗样本转移到物质世界,可以使其变得卓殊有力,由此这是一个值得关注的安全题材。比如说人脸识别,若一张对抗图像也被辨认为真人的话,就会并发局部安全隐患及随后带来的巨大损失。对转移对抗图像感兴趣的读者可以关心一下目前的Kaggle挑衅赛NIPS。

Google开发者机器学习词汇表:纵览机器学习为主词汇与概念

姓名:钟航

转载自:http://mp.weixin.qq.com/s?\_\_biz=MzA3MzI4MjgzMw==&mid=2650731623&idx=1&sn=4bbdc85b363d50ce44126230affec73b&chksm=871b3019b06cb90f94fb22649b91cd68970708f4da73440ff8a930803bed9c2a7dfd4c945758&mpshare=1&scene=23&srcid=1005Hj57s57FXix7TOai7T8c\#rd。

【嵌牛导读】:机器之心曾开放过人工智能术语集,该术语库项目如今征集了人工智能领域
700
六个专业术语,但仍需要与各位读者一同完善与更正。本文编译自Google开发者机器学习术语表项目,介绍了该品种具有的术语与基本解释。之后,我们也将表内术语更新到了机械之心
GitHub 项目中。

【嵌牛鼻子】:  机器之心 人工智能 术语库 Google 机器学习

【嵌牛提问】:人工智能领域的专业术语有什么?是如何含义?

【嵌牛正文】:机器之心人工智能术语项目:https://github.com/jiqizhixin/Artificial-Intelligence-Terminology

A

准确率(accuracy)

分类模型预测准确的比例。在多品类分类中,准确率定义如下:

威尼斯人娱乐 1

在二分类中,准确率定义为:

威尼斯人娱乐 2

激活函数(Activation function)

一种函数(例如 ReLU 或
Sigmoid),将前一层所有神经元激活值的加权和输入到一个非线性函数中,然后向下一层传递该函数的输出值(典型的非线性)。

AdaGrad

一种复杂的梯度下降算法,重新调试每个参数的梯度,高效地给每个参数一个独立的学习率。详见论文:http://www.jmlr.org/papers/volume12/duchi11a/duchi11a.pdf。

AUC(曲线上边积)

一种考虑到具备可能的归类阈值的评估规范。ROC
曲线下边积代表分类器随机预测真正类(Ture Positives)要比假正类(False
Positives)概率大的确信度。

B

反向传播(Backpropagation)

神经网络中形成梯度下降的根本算法。首先,在前向传来的过程中统计每个节点的输出值。然后,在反向传播的经过中统计与每个参数对应的误差的偏导数。

基线(Baseline)

被用为相比模型表现参考点的简约模型。基线帮忙模型开发者量化模型在特定问题上的预想表现。

批量

模型磨练中一个迭代(指两次梯度更新)使用的样本集。

批量尺寸(batch size)

一个批量中样本的多寡。例如,SGD 的批量轻重缓急为 1,而 mini-batch
的批量大大小小日常在 10-1000
之间。批量分寸平常在练习与推理的经过中确定,但是 TensorFlow
不同意动态批量尺寸。

偏置(bias)

与原点的截距或偏移量。偏置(也称偏置项)被称作机器学习模型中的 b 或者
w0。例如,偏置项是以下公式中的 b:y′=b+w_1x_1+w_2x_2+…w_nx_n。

留神不要和展望偏差混淆。

二元分类器(binary classification)

一类分类任务,输出六个互斥(不相交)系列中的一个。例如,一个评估邮件信息并出口「垃圾邮件」或「非垃圾邮件」的机器学习模型就是一个二元分类器。

binning/bucketing

依照值的界定将一个接连特征转换成六个名为 buckets 或者 bins
二元特征,称为 buckets 或者
bins。例如,将温度意味着为单一的浮点特征,可以将温度限制切割为多少个离散的
bins。即使给定的热度的敏感度为非凡之一度,那么分布在 0.0 度和 15.0
度之间的温度可以放入一个 bin 中,15.1 度到 30.0 度放入第二个 bin,30.1
度到 45.0 度放入第六个 bin。

C

标定层(calibration layer)

一种调整先前时期臆度的协会,通常用于解释预测偏差。调整后的预想和几率必须配合一个着眼标签集的分布。

候选采样(candidate sampling)

一种优化磨练时间的,使用 Softmax
等算法总括有所正标签的票房价值,同时只总计一些随机取样的负标签的概率。例如,有一个样本标记为「小猎兔狗」和「狗」,候采用样将总结预测概率,和与「小猎兔狗」和「狗」系列输出(以及剩余的门类的随机子集,比如「猫」、「棒棒糖」、「栅栏」)相关的损失项。这一个想法的思路是,负体系可以透过频率更低的负强化(negative
reinforcement)举办学习,而正序列平时能博得适当的正强化,实际观测真正这样。候拔取样的引力是计量有效性从有着负类另外非统计预测的收益。

检查点(checkpoint)

在一定的随时标记模型的变量的情形的数目。检查点允许输出模型的权重,也同意通过两个等级磨练模型。检查点还允许跳过不当继续展开(例如,抢占作业)。注意其本人的图式并不包含于检查点内。

类别(class)

抱有同类属性的目的值作为一个标签。例如,在一个检测垃圾邮件的二元分类模型中,这五个品种分别是垃圾邮件和非垃圾邮件。而一个多品类分类模型将区分狗的品类,其中的品类可以是贵宾狗、小猎兔狗、哈巴狗等等。

花色不平衡数据集(class-imbalanced data set)

那是一个二元分类问题,其中六个类此外竹签的遍布频率有很大的差距。比如,一个疾患数据汇总若
0.01% 的范本有正标签,而 99.99%
的样书有负标签,那么这就是一个项目不平衡数据集。但对此一个足球比赛预测器数据集,若其中
51% 的样书标记一队胜利,而 49%
的样书标记其它军事胜利,那么这就不是一个连串不平衡数据集。

分拣模型(classification)

机器学习模型的一种,将数据分离为多少个或三个离散系列。例如,一个自然语言处理分类模型可以将一句话归类为拉脱维亚语、加泰罗尼亚语或斯拉维尼亚语。分类模型与回归模型(regression
model)成对照。

分类阈值(classification threshold)

应用于模型的估量分数以分别正体系和负类另外一种标量值标准。当需要将
logistic
回归的结果映射到二元分类模型中时就需要采用分类阈值。例如,考虑一个确定给定邮件为垃圾邮件的几率的
logistic 回归模型,虽然分类阈值是 0.9,那么 logistic 回归值在 0.9
以上的被归为垃圾邮件,而在 0.9 以下的被归为非垃圾邮件。

混淆矩阵(confusion matrix)

总括分类模型的前瞻结果的展现水平(即,标签和模型分类的非常程度)的 NxN
表格。混淆矩阵的一个轴列出模型预测的标签,另一个轴列出实际的价签。N
代表项目标数目。在一个二元分类模型中,N=2。例如,以下为一个二元分类问题的简约的混淆矩阵:

威尼斯人娱乐 3

上述混淆矩阵显示了在 19 个真正为肿瘤的范本中,有 18
个被模型正确的分类(18 个实在),有 1 个被张冠李戴的归类为非肿瘤(1
个假负类)。类似的,在 458 个真正为非肿瘤的样书中,有 452
个被模型正确的分类(452 个真负类),有 6 个被张冠李戴的归类(6 个假正类)。

多系列分类的混淆矩阵可以扶持发现错误出现的情势。例如,一个混淆矩阵揭露了一个鉴别手写数字体的模型倾向于将
4 识别为 9,或者将 7 识别为
1。混淆矩阵包含了十足多的音信可以测算很多的模子表现度量,比如精度(precision)和召回(recall)率。

连年特征(continuous feature)

富有极其个取值点的浮点特征。和离散特征(discrete feature)相反。

收敛(convergence)

磨练过程达到的某种情况,其中练习损失和认证损失在通过了规定的迭代次数后,在每回迭代中,改变很小或完全不变。换句话说就是,当对当前多少继续磨炼而不能再提高模型的展现水平的时候,就称模型已经烟消云散。在深度学习中,损失值下降在此以前,有时候经过多次迭代仍保持常量或者接近常量,会造成模型已经消失的错觉。

凸函数(concex function)

一种造型大致呈字母 U
形或碗形的函数。然则,在倒退状况中,凸函数的形态就像一条线。例如,以下多少个函数都是凸函数:

L2 损失函数

Log 损失函数

L1 正则化函数

L2 正则化函数

凸函数是很常用的损失函数。因为当一个函数有最小值的时候(通常就是这样),梯度下降的各样变动都能确保找到类似函数最小值的点。类似的,随机梯度下降的各样变通有很大的概率(尽管不能确保)找到类似函数最小值的点。

六个凸函数相加(比如,L2 损失函数+L1 正则化函数)后还是是凸函数。

深度模型通常是非凸的。出乎意料的是,以凸优化的花样设计的算法平常都能在深度网络上行事的很好,尽管很少能找到最小值。

成本(cost)

loss 的同义词。

交叉熵(cross-entropy)

多花色分类问题中对 Log
损失函数的推广。交叉熵量化几个概率分布之间的分别。参见困惑度(perplexity)。

D

数据集(data set)

样本的会晤。

核定边界(decision boundary)

在一个二元分类或多品类分类问题中模型学习的项目之间的分离器。例如,下图就展示了一个二元分类问题,决策边界即橙点类和蓝点类的边际。

威尼斯人娱乐 4

纵深模型(deep model)

一种含有多个隐藏层的神经网络。深度模型看重于其可训练的非线性性质。和宽窄模型对照(wide
model)。

凝聚特征(dense feature)

大多数取值为非零的一种特性,平时用取浮点值的张量(tensor)表示。和疏散特征(sparse
feature)相反。

派生特征(derived feature)

合成特征(synthetic feature)的同义词。

离散特征(discrete feature)

只有三三两三个可能取值的一种特色。例如,一个取值只包括动物、蔬菜或矿物的表征就是离散(或项目)特征。和连接特征(continuous
feature)对照。

dropout 正则化(dropout regularization)

教练神经网络时一种有效的正则化方法。dropout
正则化的长河是在单次梯度总计中删除一层网络中随心所欲拔取的原则性数量的单元。删去的单元越多,正则化越强。

动态模型(dynamic model)

以连续更新的不二法门在线磨炼的模子。即数据连接不停的输入模型。

E

最初截止法(early stopping)

一种正则化方法,在磨炼损失完成下降此前截止模型磨炼过程。当验证数据集(validation
data
set)的损失起首提升的时候,即泛化表现变差的时候,就该接纳最初截止法了。

嵌入(embeddings)

一类表示为总是值特征的显明的特色。嵌入平日指将高维向量转换来低维空间中。例如,将一个阿尔巴尼亚语句子中的单词以以下任何一种方法表示:

所有百万多少级(高维)的要素的疏散向量,其中有着的元素都是整数。向量的每一个单元表示一个独自的阿拉伯语单词,单元中的数字代表该单词在一个句子中出现的次数。由于一个句子中的单词平日不会领先50 个,向量中几乎拥有的单元都是
0。少量的非零的单元将取一个小的整数值(日常为
1)表示句子中一个单词的产出次数。

拥有数百个(低维)元素的凝聚向量,其中每一个元素取 0 到 1 里面的浮点数。

在 TensorFlow
中,嵌入是透过反向传来损失磨炼的,正如神经网络的别样参量一样。

经验风险最小化(empirical risk minimization,ERM)

选拔能最小化磨练多少的损失的模型函数的过程。和结构风险最小化(structual
risk minimization)对照。

集成(ensemble)

四个模型预测的归咎考虑。可以经过以下一种或两种办法创造一个合并方法:

设置不同的开端化;

安装不同的超参量;

安装不同的完全结构。

深度和广度模型是一种集成。

评估器(Estimator)

tf.Estimator 类的一个例证,封装 logic 以树立一个 TensorFlow 图并运行一个
TensorFlow
session。你可以通过以下方法创立自己的评估器:https://www.tensorflow.org/extend/estimators

样本(example)

一个数据集的一行内容。一个样本包含了一个或两个特征,也说不定是一个标签。参见标注样本(labeled
example)和无标注样本(unlabeled example)。

F

假负类(false negative,FN)

被模型错误的展望为负类的范本。例如,模型测算一封邮件为非垃圾邮件(负类),但实际这封邮件是垃圾邮件。

假正类(false positive,FP)

被模型错误的展望为正类的样本。例如,模型测算一封邮件为垃圾邮件(正类),但其实这封邮件是非垃圾邮件。

假正类率(false positive rate,FP rate)

ROC 曲线(ROC curve)中的 x 轴。FP
率的定义是:假正率=假正类数/(假正类数+真负类数)

特征(feature)

输入变量,用于做出预测。

特征列(feature columns/FeatureColumn)

不无相关性的风味的集结,比如用户可能居住的所有可能的国度的聚众。一个样书的一个特征列中或许会有一个依然三个性状。

TensorFlow 中的特征列仍是可以够压缩元数据比如下列境况:

特性的数据类型;

一个表征是一向长度的或应该转换为停放。

一个特色列可以仅包含一个风味。「特征列」是Google专用的术语。在 VW
系统(Yahoo/Microsoft)中特征列的意义是「命名空间」(namespace),或者场(field)。

特征交叉(feature cross)

将特色进行交叉(乘积或者笛卡尔(Carl)乘积)运算后得到的合成特征。特征交叉有助于表示非线性关系。

特色工程(feature engineering)

在练习模型的时候,决定哪些特点是实用的,然后将记录文件和其余来源的原来数据转换成上述特性的经过。在
TensorFlow 中特征工程平常意味着将原始记录文件输入 tf.Example
协和缓存中。参见 tf.Transform。特征工程奇迹也叫做特征提取。

特征集(feature set)

机器学习模型锻炼的时候利用的特征群。比如,邮编,面积要求和物业情况可以结合一个粗略的特征集,使模型能预测房价。

特色定义(feature spec)

讲述所需的音信从 tf.Example 协商缓存中提取特征数据。因为 tf.Example
协议缓存只是多少的器皿,必须精晓以下信息:

内需领取的多少(即特征的显要消息)

数据类型(比如,浮点数如故平头)

多少长度(固定的或者变化的)

Estimator API 提供了从一群特征列中生成一个特色定义的工具。

完全 softmax(full softmax)

参见 softmax。和候选采样对照。

G

泛化(generalization)

指模型利用新的没见过的数码而不是用以操练的数额作出科学的前瞻的力量。

广义线性模型(generalized linear model)

小小的二乘回归模型的加大/泛化,基于高斯噪声,相对于任何门类的模子(基于其他门类的噪声,比如泊松噪声,或项目噪声)。广义线性模型的例证包括:

logistic 回归

多分类回归

细微二乘回归

广义线性模型的参数能够因此凸优化拿到,它有着以下性质:

最理想的纤维二乘回归模型的平均预测结果非常磨炼多少的平分标签。

最优异的 logistic 回归模型的平均概率的前瞻结果非凡磨炼多少的平分标签。

广义线性模型的能力局限于其特点的习性。和纵深模型不同,一个广义线性模型不可以「学习新的特点」。

梯度(gradient)

抱有变量的偏导数的向量。在机器学习中,梯度是模型函数的偏导数向量。梯度指向最陡峭的进步路线。

梯度截断(gradient clipping)

在应用梯度在此之前先修饰数值,梯度截断有助于保险数值稳定性,避免梯度爆炸出现。

梯度下降(gradient descent)

通过统计模型的连锁参量和损失函数的梯度最小化损失函数,值取决于练习多少。梯度下降迭代地调整参量,渐渐靠近权重和偏置的一级结合,从而最小化损失函数。

图(graph)

在 TensorFlow
中的一种总结过程显得。图中的节点表示操作。节点的连线是有指向性的,表示传递一个操作(一个张量)的结果(作为一个操作数)给另一个操作。使用
TensorBoard 能可视化总计图。

H

启发式(heuristic)

一个问题的莫过于的和非最优的解,但能从学习经验中收获充足多的进步。

隐藏层(hidden layer)

神经网络中位居输入层(即特征)和输出层(即预测)之间的合成层。一个神经网络包含一个或三个隐藏层。

折页损失函数(Hinge loss)

损失函数的一个门类,用于分类模型以搜寻距离每个样本的距离最大的表决边界,即最大化样本和边际之间的边缘。KSVMs
使用 hinge 损失函数(或相关的函数,比如平方 hinge
函数)。在二元分类中,hinge 损失函数按以下办法定义:

loss=max(0,1−(y′∗y))

其间 y’是分类器模型的列输出:

y′=b+w_1x_1+w_2x_2+…w_nx_n

y 是真性的价签,-1 或+1。

据此,hinge 损失将是下图所示的指南:

威尼斯人娱乐 5

测试数据(holdout data)

明知故犯不用于磨练的样本。验证数据集(validation data
set)和测试数据集(test data set)是测试数据(holdout
data)的六个例子。测试数据援助评估模型泛化到除了锻练多少之外的数额的能力。测试集的损失比操练集的损失提供了对未知数据集的损失更好的估计。

超参数(hyperparameter)

连续磨练模型的长河中可以拧动的「旋钮」。例如,相对于模型自动更新的参数,学习率(learning
rate)是一个超参数。和参量对照。

I

单身同分布(independently and identically distributed,i.i.d)

平素不会变动的遍布中收获的多寡,且赢得的各种值不借助于于事先得到的值。i.i.d.
是机械学习的出色状态——一种有用但在切实可行世界中几乎找不到的数学构建。例如,网页访客的遍布可能是短跑时光窗口上的
i.i.d;即分布不会在该时间窗口暴发变更,每个人的拜会都与其旁人的拜会独立。不过,如若您扩充了岁月窗口,则会现出网页访客的季节性差距。

推断(inference)

在机器学习中,经常指将训练模型应用到无标注样本来举办预测的过程。在总结学中,揣测指在察看到的数目标根底上拟合分布参数的经过。

输入层(input layer)

神经网络的第一层(接收输入数据)。

评分者间一致性(inter-rater agreement)

用来衡量一项职责中人类评分者意见一样的目标。假若理念不同等,则任务表达可能需要立异。有时也叫标注者间信度(inter-annotator
agreement)或评分者间信度(inter-rater reliability)。

K

Kernel 协理向量机(Kernel Support Vector Machines/KSVM)

一种分类算法,意在通过将输入数据向量映射到更高维度的空中使正类和负类之间的界线最大化。例如,考虑一个输入数据集带有一百个特性的归类问题。为了使正类和负类之间的间隔最大化,KSVM
从其校官特色映射到百万维度的空中。KSVM 使用的损失函数叫作 hinge 损失。

L

L1 损失函数(L1 loss)

损失函数基于模型对标签的预测值和真实值的差的相对化值而定义。L1
损失函数比起 L2 损失函数对这么些值的敏感度更小。

L1 正则化(L1 regularization)

一种正则化,遵照权重相对值总和的百分比举办查办。在依赖稀疏特征的模子中,L1
正则化协助促使(几乎)不相干的表征的权重趋近于
0,从而从模型中移除这多少个特色。

L2 损失(L2 loss)

参见平方损失。

L2 正则化(L2 regularization)

一种正则化,依据权重平方的总额的百分比举行惩处。L2
正则化帮忙促使相当值权重更仿佛 0 而不趋近于 0。(可与 L1
正则化对照阅读。)L2 正则化平日改进线性模型的泛化效果。

标签(label)

在监督式学习中,样本的「答案」或「结果」。标注数据汇总的每个样本包含一或四个特色和一个标签。比如,在房屋数量汇总,特征可能包括卧室数量、卫生间数量、房龄,而标签或者就是房子的价位。在垃圾邮件检测数据汇总,特征可能包括主旨、发出者何邮件我,而标签或者是「垃圾邮件」或「非垃圾邮件」。

标明样本(labeled example)

饱含特征和标签的范本。在监督式训练中,模型从标注样本中举行学习。

lambda

正则化率的同义词。(该术语有多种意义。这里,大家根本关注正则化中的定义。)

层(layer)

神经网络中的神经元连串,可以处理输入特征系列或神经元的输出。

它也是 TensorFlow
的一种抽象化概念。层是将张量和布置选项作为输入、输出其他张量的 Python
函数。一旦必要的张量出现,用户就足以通过模型函数将结果转换成估摸器。

学习率(learning rate)

因此梯度下降练习模型时使用的一个标量。每一回迭代中,梯度下降算法使学习率乘以梯度,乘积叫作
gradient step。

学习率是一个要害的超参数。

微小二乘回归(least squares regression)

经过 L2 损失最小化举行训练的线性回归模型。

线性回归(linear regression)

对输入特征的线性连接输出连续值的一种回归模型。

logistic 回归(logistic regression)

将 sigmoid
函数应用于线性预测,在分拣问题中为各样可能的离散标签值生成概率的模子。尽管logistic
回归常用于二元分类问题,但它也用于多品类分类问题(这种情状下,logistic
回归叫作「多序列 logistic 回归」或「多项式 回归」。

对数损失函数(Log Loss)

二元 logistic 回归模型中动用的损失函数。

损失

心胸模型预测与标签距离的目的,它是胸襟一个模型有多不佳的目的。为了确定损失值,模型必须定义损失函数。例如,线性回归模型平时选择均方差作为损失函数,而
logistic 回归模型使用对数损失函数。

M

机械学习(machine learning)

运用输入数据构建(训练)预测模型的体系或系统。该系统运用学习的模子对与教练多少一致分布的新数据举办中用的预测。机器学习还指与这些项目或连串相关的商量领域。

均方误差(Mean Squared Error/MSE)

各类样本的平分平方损失。MSE
可以因而平方损失除以样本数量来测算。TensorFlow Playground
显示「练习损失」和「测试损失」的值是 MSE。

小批量(mini-batch)

在教练或揣摸的一个迭代中运作的整批样本的一个小的肆意选择的子集。小批量的大大小小平常在
10 到 1000
之间。在小批量数据上测算损失比在整整教练多少上总括损失要高效的多。

小批量随机梯度下降(mini-batch stochastic gradient descent)

动用小批量的梯度下降算法。也就是,小批量随机梯度下降基于训练多少的子集对
梯度进行评估。Vanilla SGD 使用 size 为 1 的小批量。

模型(model)

机械学习系统从磨练多少中所学内容的表示。该术语有三个意思,包括以下三个相关含义:

TensorFlow 图,突显怎么总计预测的结构。

TensorFlow 图的一定权重和不是,由训练决定。

模型练习(model training)

规定最佳模型的历程。

动量(Momentum)

一种复杂的梯度下降算法,其中的上学步不只依靠于当下步的导数,还借助于先于它的步。动量包括随着年华测算梯度的指数加权移动平均数,类似于物经济学中的动量。动量有时可以阻碍学习陷于局部最小值。

多类别(multi-class)

在多于两类的品种中开展分拣的归类问题。例如,有约 128
种枫树,那么分类枫树品种的模型就是多类其余。反之,把电子邮件分成多少个类型(垃圾邮件和非垃圾邮件)的模型是二元分类器模型。

N

NaN trap

教练过程中,假如模型中的一个数字变成了
NaN,则模型中的很多或富有其他数字最后都变成 NaN。NaN 是「Not a
Number」的缩写。

负类(negative class)

在二元分类中,一个品种是正类,此外一个是负类。正类就是大家要找的对象,负类是此外一种可能性。例如,医疗测试中的负类可能是「非肿瘤」,电子邮件分类器中的负类可能是「非垃圾邮件」。

神经网络(neural network)

该模型从大脑中拿走灵感,由三个层组成(其中至少有一个是隐藏层),每个层包含简单的连接单元或神经元,其后是非线性。

神经元(neuron)

神经网络中的节点,通常输入五个值,生成一个输出值。神经元通过将激活函数(非线性转换)应用到输入值的加权和来计量输出值。

归一化(normalization)

将值的实际区间转化为规范区间的经过,标准区间平时是-1 到+1 或 0 到
1。例如,假如某个特征的本来区间是 800 到
6000。通过减法和分叉,你可以把这个值标准化到距离-1 到+1。参见缩放。

numpy

Python 中提供高效数组运算的开源数学库。pandas 基于 numpy 构建。

O

目标(objective)

算法尝试优化的靶子函数。

离线臆度(offline inference)

生成一组预测并储存,然后按需寻找这么些预测。可与在线估算对照阅读。

one-hot 编码(one-hot encoding)

一个疏散向量,其中:

一个因素设置为 1。

富有其他的元素设置为 0。

独热编码常用于表示有一定量可能值集合的字符串或标识符。例如,假若一个笔录了
15000
个例外档次的植物数据集,每一个用不同常常的字符串标识符来代表。作为特色工程的一有的,你可能将这一个字符串标识符举办独热编码,每个向量的轻重为
15000。

一对多(one-vs.-all)

付出一个有 N 个可能解决方案的分类问题,一对多解决方案包括 N
个单身的二元分类器——每个可能的结果都有一个二元分类器。例如,一个模子将样本分为动物、蔬菜或矿物,则一对多的缓解方案将提供以下三种独立的二元分类器:

动物和非动物

蔬菜和非蔬菜

胡萝卜素和非矿物

在线估算(online inference)

按需生成预测。可与离线估量对照阅读。

运算(Operation/op)

TensorFlow 图中的一个节点。在 TensorFlow
中,任何创设、控制或磨损张量的步调都是运算。例如,矩阵乘法是一个把五个张量作为输入、生成一个张量作为出口的演算。

优化器(optimizer)

梯度下降算法的特定实现。TensorFlow 的基类优化器是
tf.train.Optimizer。不同的优化器(tf.train.Optimizer
的子类)对应不同的定义,如:

动量(Momentum)

更新频率(AdaGrad = ADAptive GRADient descent;艾达m = ADAptive with
Momentum;RMSProp)

稀疏性/正则化(Ftrl)

更复杂的数学(Proximal 及其它)

你甚至可以想像 NN-driven optimizer。

异常值(outlier)

与大多数值差异很大的值。在机械学习中,下列都是特别值:

高相对值的权重。

与实际值差别过大的预测值。

比平均值多大约 3 个标准差的输入数据的值。

不行值往往使模型磨练中冒出问题。

输出层(output layer)

神经网络的「最终」一层。这一层包含全部·模型所寻求的答案。

过拟合(overfitting)

成立的模型与磨炼多少丰富相配,以至于模型不可能对新数据举行科学的预测。

P

pandas

一种基于列的数码解析 API。很多机械学习框架,包括 TensorFlow,匡助 pandas
数据结构作为输入。参见 pandas 文档。

参数(parameter)

机械学习系统自动练习的模型的变量。例如,权重是参数,它的值是机器学习系统通过连日的教练迭代逐步学习到的。可与超参数相比阅读。

参数服务器(Parameter Server/PS)

用来在分布式设置中跟踪模型参数。

参数更新(parameter update)

在教练过程中调整模型参数的操作,平时在梯度下降的单个迭代中开展。

偏导数(partial derivative)

一个多变量函数的偏导数是它关于其中一个变量的导数,而保持其他变量恒定。例如,f(x,
y) 对于 x 的偏导数就是 f(x) 的导数,y 保持一定。x 的偏导数中只有 x
是转变的,公式中其他的变量都不用转变。

分区策略(partitioning strategy)

在五个参数服务器中分割变量的算法。

性能(performance)

抱有多种意义:

在软件工程中的传统意义:软件运行速度有多快/高效?

在机器学习中的含义:模型的准确率咋样?即,模型的估计结果有多好?

困惑度(perplexity)

对模型完成任务的程度的一种度量目标。例如,假使你的职责是读书用户在智能手机上输入的单词的头多少个字母,并提供可能的一体化单词列表。该任务的困惑度(perplexity,P)是为着列出包含用户实际想输入单词的列表你需要展开的估量数量。

困惑度和交叉熵的涉嫌如下:

威尼斯人娱乐 6

流程(pipeline)

机械学习算法的基础架构。管道包括收集数据、将数据放入操练数据文件中、磨炼一或六个模型,以及尾声输出模型。

正类(positive class)

在二元分类中,有两连串型:正类和负类。正类是我们测试的对象。(可是必须认同,我们同时测试二种结果,但里边一种不是第一。)例如,医疗测试中正类可能是「肿瘤」,电子邮件分类器中的正类可能是「垃圾邮件」。可与负类对照阅读。

精度(precision)

分拣模型的一种目标。准确率指模型预测正类时预测正确的效能。即:

威尼斯人娱乐 7

预测(prediction)

模型在输入样本后的输出结果。

预测偏差(prediction bias)

颁发预测的平均值与数码集中标签的平均值的反差。

预制评估器(pre-made Estimator)

早就构建好的评估器。TensorFlow 提供四个预制评估器,包括
DNNClassifier、DNNRegressor 和
LinearClassifier。你可以遵照指导(https://www.tensorflow.org/extend/estimators)构建自己的预制评估器。

预练习模型(pre-trained model)

早已磨炼好的模型或模型组件(如放置)。有时,你将预磨炼嵌入馈送至神经网络。其他时候,你的模型自动训练嵌入,而不是凭借于预磨练嵌入。

先验信念(prior belief)

教练先河此前您对数据的信念。例如,L2 正则化倚重于权重值很小且正常分布在
0 周围的自信心。

Q

队列(queue)

兑现队列数据结构的 TensorFlow 操作。日常在输入/输出(I/O)中行使。

R

秩(rank)

机器学习世界中涵盖多种含义的术语:

张量中的维度数量。比如,标量有 1 个秩,向量有 1 个秩,矩阵有 2
个秩。(注:在那一个词汇表中,「秩」的定义和线性代数中「秩」的概念不均等,例如三阶可逆矩阵的秩为
3。)

机械学习问题中项目的序数地点,按从高到低的一一给品种分类。比如,行为排序系统可以把狗的褒奖按从高(牛排)到低(甘蓝)排序。

评分者(rater)

为模本提供标签的人,有时也叫「标注者」。

召回率(recall)

分类模型的一个目标,可以回复那些题材:模型可以准确识别多少正标签?即:

威尼斯人娱乐 8

修正线性单元(Rectified Linear Unit/ReLU)

一种具有以下规则的激活函数:

比方输入为负或零,则输出为 0。

一旦输入为正,则输出与输入相同。

回归模型(regression model)

一种输出持续值(平日是浮点数)的模型。而分类模型输出的是离散值,如「day
lily」或「tiger lily」。

正则化(regularization)

对模型复杂度的发落。正则化援救制止过拟合。正则化包括不同连串:

L1 正则化

L2 正则化

dropout 正则化

early stopping(这不是正经的正则化方法,但足以长足限制过拟合)

正则化率(regularization rate)

一种标量级,用 lambda
来表示,指正则函数的相对首要性。从底下这些简化的损失公式能够看来正则化率的服从:

minimize(loss function + λ(regularization function))

增强正则化率可以降低过拟合,但恐怕会使模型准确率降低。

表征

将数据映射到有用特色的历程。

受试者工作特色曲线(receiver operating characteristic/ROC Curve)

反映在不同的归类阈值上,真正类率和假正类率的比率的曲线。参见 AUC。

根目录(root directory)

点名放置 TensorFlow 检查点文件子目录和多少个模型的风波文件的目录。

均方根误差(Root Mean Squared Error/RMSE)

均方误差的平方根。

S

Saver

担负储存模型检查点文件的 TensorFlow 对象。

缩放(scaling)

特性工程中常用的操作,用于控制特征值区间,使之与数量集中其他特色的间隔匹配。例如,假使你想使数码集中具有的浮点特征的间距为
0 到 1。给定一个特色区间是 0 到 500,那么你可以经过将每个值除以
500,缩放特征值区间。还可参见正则化。

scikit-learn

一种流行的开源机器学习平台。网址:www.scikit-learn.org

队列模型(sequence model)

输入具有体系看重性的模型。例如,依照往日看来过的录像连串对下一个视频展开展望。

会话(session)

保持 TensorFlow 程序的事态(如变量)。

Sigmoid 函数(sigmoid function)

把 logistic 或多项式回归输出(对数几率)映射到概率的函数,再次来到的值在 0
到 1 之间。sigmoid 函数的公式如下:

威尼斯人娱乐 9

内部σ在 logistic 回归问题中只是简短的:

威尼斯人娱乐 10

在稍微神经网络中,sigmoid 函数和激活函数一样。

softmax

为多门类分类模型中每个可能的类提供概率的函数。概率加起来的总和是
1.0。例如,softmax 可能检测到某个图像是一只狗的概率为
0.9,是一只猫的几率为 0.08,是一匹马的票房价值为 0.02。(也叫作 full
softmax)。

疏散特征(sparse feature)

值紧要为 0 或空的特征向量。比如,一个向量的值有 1 个 1,、一百万个
0,则该向量为疏散向量。再比如说,搜索查询中的单词也是稀疏向量:在一种语言中有这么些可以用的单词,但给定的查询中只用了里面的局部。

可与细密特征对照阅读。

平方损失(squared loss)

线性回归中接纳的损失函数(也叫作 L2
Loss)。该函数总计模型对标注样本的预测值和标签真正值之间差的平方。在平方之后,该损失函数增添了欠好预测的熏陶。即,平方损失比
L1 Loss 对那多少个值(outlier)的反应更加显明。

静态模型(static model)

离线操练的模型。

稳态(stationarity)

数量集中的一种多少属性,数据分布在一或两个维度中维系不变。经常情况下,维度是岁月,意味着所有平稳性的数据不会趁机时间暴发变化。比如,具备平稳性的数量从
9 月到 12 月不会变动。

步(step)

一个批量中的前向和后向评估。

步长(step size)

读书速率(learning rate)乘以偏导数的值,即梯度下降中的步长。

随意梯度下降(stochastic gradient descent/SGD)

批量高低为 1 的梯度下降算法。也就是说,SGD
依赖于从数量集中随机均匀采取出的一个样书,以评估每一步的梯度。

布局风险最小化(structural risk minimization/SRM)

这种算法平衡五个目标:

构建预测性最强的模型(如低于损失)。

使模型尽量保障简单(如强正则化)。

譬如说,在教练集上的损失最小化 +
正则化的模型函数就是构造风险最小化算法。更多音讯,参见
http://www.svms.org/srm/。可与经验风险最小化对照阅读。

摘要(summary)

在 TensorFlow
中,特定步统计的值或值的联谊,通常用于跟踪操练过程中的模型目标。

监督式机器学习(supervised machine learning)

拔取输入数据及其对应标签来锻炼模型。监督式机器学习类似学生经过钻研问题和相应答案举办学习。在领悟问题和答案之间的映照之后,学生就可以提供相同焦点的新题材的答案了。可与非监督机器学习对照阅读。

合成特征(synthetic feature)

不在输入特征中,而是从一个或两个输入特征中派生出的性状。合成特征的门类包括:

特色与团结或其他特色相乘(叫作特征交叉)。

四个特征相除。

将连接的性状放进 range bin 中。

由归一化或缩放单独创建的特点不是合成特征。

T

张量(tensor)

TensorFlow 项目标最重要数据结构。张量是 N 维数据结构(N
的值很大),平常是标量、向量或矩阵。张量可以包括整数、浮点或字符串值。

张量处理单元(Tensor Processing Unit,TPU)

优化 TensorFlow 性能的 ASIC(application-specific integrated
circuit,专用集成电路)。

张量形状(Tensor shape)

张量的因素数量包含在不同维度中。比如,[5, 10] 张量在一个维度中造型为
5,在另一个维度中造型为 10。

张量大小(Tensor size)

张量包含的标量总数。比如,[5, 10] 张量的分寸就是 50。

TensorBoard

突显一个或五个 TensorFlow 项目运行过程中保留的摘要数据的控制面板。

TensorFlow

巨型分布式机器学习平台。该术语还指 TensorFlow 堆栈中的基础 API
层,匡助数据流图上的通用统计。

尽管 TensorFlow
重要用来机器学习,可是它也适用于要求接纳数据流图举行数值运算的非机器学习任务。

TensorFlow Playground

一个得以看看不同超参数对模型(首就算神经网络)训练的影响的平台。前往
http://playground.tensorflow.org,使用 TensorFlow Playground。

TensorFlow Serving

支援磨练模型使之可配置到成品中的平台。

测试集(test set)

数据集的子集。模型经过验证集初叶测试之后,使用测试集对模型举办测试。可与磨炼集和验证集对照阅读。

tf.Example

一种标准 protocol buffer,用于描述机器学习模型训练或估计的输入数据。

训练(training)

确定组成模型的两全参数的流水线。

训练集(training set)

数量集子集,用于锻练模型。可与验证集和测试集对照阅读。

真负类(true negative,TN)

被模型正确地预测为负类的样书。例如,模型测算某封电子邮件不是垃圾邮件,然后该电邮真的不是垃圾邮件。

真正类(true positive,TP)

被模型正确地预测为正类的样本。例如,模型测算某封电子邮件是垃圾邮件,结果该电邮真的是垃圾邮件。

的确类率(true positive rate,TP rate)

召回率(recall)的同义词。即:

TruePositiveRate=TruePositives/(TruePositives+FalseNegatives)

诚然类率是 ROC 曲线的 y 轴。

U

无标签样本(unlabeled example)

蕴含特征但没有标签的范本。无标签样本是测算的输入。在半督查学习和无监督学习的教练过程中,平日使用无标签样本。

无监控机器学习(unsupervised machine learning)

教练一个模子寻找数据集(日常是无标签数据集)中的格局。

无监督机器学习最常用于将数据分为几组看似的范本。例如,无监督机器学习算法能够遵照音乐的各个性能聚类数据。用这种办法募集的数额可以看作此外机器学习算法(如音乐推荐服务)的输入。聚类在难以取得真正标签的情状中充足实惠。例如,在反欺诈和反滥用的情景中,聚类可以援助人类更好地了然数据。

无监督机器学习的另一个例子是主成分分析(principal component
analysis,PCA)。如,将 PCA
应用于含有数百万购物车内容的数量汇总时,就有可能发现有柠檬的购物车屡屡也有解酸剂。可与监督式机器学习对照阅读。

V

验证集(validation set)

数据集的一个子集(与教练集不同),可用以调整超参数。可与锻练集和测试集对照阅读。

W

权重(weight)

线性模型中的特征系数,或者深度网络中的边缘。线性模型的教练目的是为每个特征确定一个完善的权重。假若权重为
0,则对应的表征对模型而言是无济于事的。

宽模型(wide model)

线性模型平时拥有很多疏散输入特征。我们誉为「宽」模型,因其具有大量与出口节点直接连接的输入,是一种特别类型的神经网络。宽模型通常比深度模型更易于调试(debug)和检讨。虽然宽模型不能够透过隐藏层表明非线性,但它们得以行使特征交叉和
bucketization 等转移用不同格局对非线性建模。可与深度模型对照阅读。

在这篇作品中,将手把手指导读者利用TensorFlow实现一个简约的算法来合成对抗样本,之后采纳这种技术建立一个鲁棒的敌对例子。

import tensorflow as tf
import tensorflow.contrib.slim as slim
import tensorflow.contrib.slim.nets as nets

tf.logging.set_verbosity(tf.logging.ERROR)
sess = tf.InteractiveSession()

首先,设置输入图像。使用tf.Variable而不是行使tf.placeholder,这是因为要保证它是可练习的。当我们需要时,还是可以够输入它。

image = tf.Variable(tf.zeros((299, 299, 3)))

接下来,加载Inception v3模型。

def inception(image, reuse):
    preprocessed = tf.multiply(tf.subtract(tf.expand_dims(image, 0), 0.5), 2.0)
    arg_scope = nets.inception.inception_v3_arg_scope(weight_decay=0.0)
    with slim.arg_scope(arg_scope):
        logits, _ = nets.inception.inception_v3(
            preprocessed, 1001, is_training=False, reuse=reuse)
        logits = logits[:,1:] # ignore background class
        probs = tf.nn.softmax(logits) # probabilities
    return logits, probs

logits, probs = inception(image, reuse=False)

接下去,加载预磨练的权重。这多少个Inception v3的top-5的准确率为93.9%。

import tempfile
from urllib.request import urlretrieve
import tarfile
import os

data_dir = tempfile.mkdtemp()
inception_tarball, _ = urlretrieve(
    'http://download.tensorflow.org/models/inception_v3_2016_08_28.tar.gz')
tarfile.open(inception_tarball, 'r:gz').extractall(data_dir)

restore_vars = [
    var for var in tf.global_variables()
    if var.name.startswith('InceptionV3/')
]

saver = tf.train.Saver(restore_vars)
saver.restore(sess, os.path.join(data_dir, 'inception_v3.ckpt'))

接下去,编写一些代码来展现图像,并对它举办归类及显示分类结果。

import json
import matplotlib.pyplot as plt

imagenet_json, _ = urlretrieve(
    'http://www.anishathalye.com/media/2017/07/25/imagenet.json')

with open(imagenet_json) as f:
    imagenet_labels = json.load(f)

def classify(img, correct_class=None, target_class=None):
    fig, (ax1, ax2) = plt.subplots(1, 2, figsize=(10, 8))
    fig.sca(ax1)
    p = sess.run(probs, feed_dict={image: img})[0]
    ax1.imshow(img)
    fig.sca(ax1)

    topk = list(p.argsort()[-10:][::-1])
    topprobs = p[topk]
    barlist = ax2.bar(range(10), topprobs)

    if target_class in topk:
        barlist[topk.index(target_class)].set_color('r')
    if correct_class in topk:
        barlist[topk.index(correct_class)].set_color('g')

    plt.sca(ax2)
    plt.ylim([0, 1.1])
    plt.xticks(range(10),
               [imagenet_labels[i][:15] for i in topk],
               rotation='vertical')
    fig.subplots_adjust(bottom=0.2)
    plt.show()

以身作则图像

加载示例图像,并确保它已被科学分类。

import PIL
import numpy as np

img_path, _ = urlretrieve('http://www.anishathalye.com/media/2017/07/25/cat.jpg')
img_class = 281
img = PIL.Image.open(img_path)
big_dim = max(img.width, img.height)

wide = img.width > img.height
new_w = 299 if not wide else int(img.width * 299 / img.height)
new_h = 299 if wide else int(img.height * 299 / img.width)
img = img.resize((new_w, new_h)).crop((0, 0, 299, 299))
img = (np.asarray(img) / 255.0).astype(np.float32)

classify(img, correct_class=img_class)

对战样本

给定一个图像X,神经网络输出标签上的概率分布为P(y|X)。当手工打造对抗输入时,大家想要找到一个X’,使得logP(y’|X’)被最大化为目的标签y’,即输入将被张冠李戴分类为对象类。通过自律一些ℓ∞半径为ε的箱,要求‖X-
X’‖∞≤ε,大家得以确保X’与原始X看起来不太一样。
在这些框架中,对抗样本是化解一个羁绊优化的问题,可以选用反向传播和阴影梯度下降来解决,基本上也是用与练习网络本身一样的技能。算法很粗略:
先是将对战样本起初化为X’←X。然后,重复以下过程直到收敛:

1. X'←X^+α⋅∇logP(y'|X')

2. X'←clip(X',X - ε,X+ε)

初始化

率先从最简便易行的有的开头:编写一个TensorFlow op举行对应的开端化。

x = tf.placeholder(tf.float32, (299, 299, 3))

x_hat = image # our trainable adversarial input
assign_op = tf.assign(x_hat, x)

梯度下降步骤

接下去,编写梯度下降步骤以最大化目的类的对数概率(或最小化交叉熵)。

learning_rate = tf.placeholder(tf.float32, ())
y_hat = tf.placeholder(tf.int32, ())

labels = tf.one_hot(y_hat, 1000)
loss = tf.nn.softmax_cross_entropy_with_logits(logits=logits, labels=[labels])
optim_step = tf.train.GradientDescentOptimizer(
    learning_rate).minimize(loss, var_list=[x_hat])

阴影步骤

终极,编写投影步骤,使得对抗样本在视觉上与原来图像相似。其余,将其范围为[0,1]限制内保持有效的图像。

epsilon = tf.placeholder(tf.float32, ())

below = x - epsilon
above = x + epsilon
projected = tf.clip_by_value(tf.clip_by_value(x_hat, below, above), 0, 1)
with tf.control_dependencies([projected]):
    project_step = tf.assign(x_hat, projected)

执行

最终,准备合成一个争持样本。大家随便选拔“鳄梨酱”(imagenet class
924)作为大家的目的类。

demo_epsilon = 2.0/255.0 # a really small perturbation
demo_lr = 1e-1
demo_steps = 100
demo_target = 924 # "guacamole"

# initialization step
sess.run(assign_op, feed_dict={x: img})

# projected gradient descent
for i in range(demo_steps):
    # gradient descent step
    _, loss_value = sess.run(
        [optim_step, loss],
        feed_dict={learning_rate: demo_lr, y_hat: demo_target})
    # project step
    sess.run(project_step, feed_dict={x: img, epsilon: demo_epsilon})
    if (i+1) % 10 == 0:
        print('step %d, loss=%g' % (i+1, loss_value))


adv = x_hat.eval() # retrieve the adversarial example
step 10, loss=4.18923
step 20, loss=0.580237
step 30, loss=0.0322334
step 40, loss=0.0209522
step 50, loss=0.0159688
step 60, loss=0.0134457
step 70, loss=0.0117799
step 80, loss=0.0105757
step 90, loss=0.00962179
step 100, loss=0.00886694

这种对抗图像与原来图像在视觉上不可能区分,没有可见的人为加工。不过它会以很高的票房价值分类为“鳄梨酱”。

classify(adv, correct_class=img_class, target_class=demo_target)

[图片上传战败…(image-7a063e-1515921665436)]

鲁棒的对立样本

前些天来看一个更高级的事例。坚守我们的格局来合成稳健的相持样本,以找到对猫图像的纯净扰动,这在某些接纳的转移分布下同时对抗,可以采纳此外可微分变换的分布;在这篇著作中,我们将合成一个单一的对抗输入,设置θ∈[-
π/4,π/4],这对旋转是鲁棒的。
在持续下边的劳作往日,检查一下往日的例证是否能对抗旋转,比如说设置角度为θ=π/8。

ex_angle = np.pi/8

angle = tf.placeholder(tf.float32, ())
rotated_image = tf.contrib.image.rotate(image, angle)
rotated_example = rotated_image.eval(feed_dict={image: adv, angle: ex_angle})
classify(rotated_example, correct_class=img_class, target_class=demo_target)

看起来大家事先生成的对抗样本不是旋转不变的!
那么,如何使得一个周旋样本对转移的遍布是鲁棒的吧?给定一些转换分布T,我们得以最大化Et~TlogP(y’|t(X’)),约束原则为‖X-
X’‖∞≤ε。可以透过投影梯度下降法来化解这么些优化问题,注意到∇EtTlogP(y’|t(X’))与EtT∇logP(y’|t(X’))相等,并在每个梯度下降步骤中来逼近样本。
能够应用一个技能让TensorFlow为大家完成这点,而不是透过手动实现梯度采样得到:咱们得以如法炮制基于采样的梯度下降,作为自由分类器的聚众中的梯度下降,随机分类器从遍布中任意抽取并在分拣在此以前变换输入。

num_samples = 10
average_loss = 0
for i in range(num_samples):
    rotated = tf.contrib.image.rotate(
        image, tf.random_uniform((), minval=-np.pi/4, maxval=np.pi/4))
    rotated_logits, _ = inception(rotated, reuse=True)
    average_loss += tf.nn.softmax_cross_entropy_with_logits(
        logits=rotated_logits, labels=labels) / num_samples

咱俩得以重复使用assign_op和project_step,但为了这几个新对象,必须写一个新的optim_step。

optim_step = tf.train.GradientDescentOptimizer(
    learning_rate).minimize(average_loss, var_list=[x_hat])

末尾,我们准备运行PGD来发出对立输入。和眼前的例证一样,选用“鳄梨酱”作为我们的目的类。

demo_epsilon = 8.0/255.0 # still a pretty small perturbation
demo_lr = 2e-1
demo_steps = 300
demo_target = 924 # "guacamole"

# initialization step
sess.run(assign_op, feed_dict={x: img})

# projected gradient descent
for i in range(demo_steps):
    # gradient descent step
    _, loss_value = sess.run(
        [optim_step, average_loss],
        feed_dict={learning_rate: demo_lr, y_hat: demo_target})
    # project step
    sess.run(project_step, feed_dict={x: img, epsilon: demo_epsilon})
    if (i+1) % 50 == 0:
        print('step %d, loss=%g' % (i+1, loss_value))


adv_robust = x_hat.eval() # retrieve the adversarial example
step 50, loss=0.0804289
step 100, loss=0.0270499
step 150, loss=0.00771527
step 200, loss=0.00350717
step 250, loss=0.00656128
step 300, loss=0.00226182

这种对抗图像被低度信任地归类为“鳄梨酱”,即便是旋转的状态下!

rotated_example = rotated_image.eval(feed_dict={image: adv_robust, angle: ex_angle})
classify(rotated_example, correct_class=img_class, target_class=demo_target)

[图表上传失利…(image-c6194d-1515921665436)]

下边来看一下在一切角度范围内发出的鲁棒对抗样本的旋转不变性,看P(y’|x’)在θ∈[-
π/4,π/4]。

thetas = np.linspace(-np.pi/4, np.pi/4, 301)

p_naive = []
p_robust = []
for theta in thetas:
    rotated = rotated_image.eval(feed_dict={image: adv_robust, angle: theta})
    p_robust.append(probs.eval(feed_dict={image: rotated})[0][demo_target])

    rotated = rotated_image.eval(feed_dict={image: adv, angle: theta})
    p_naive.append(probs.eval(feed_dict={image: rotated})[0][demo_target])

robust_line, = plt.plot(thetas, p_robust, color='b', linewidth=2, label='robust')
naive_line, = plt.plot(thetas, p_naive, color='r', linewidth=2, label='naive')
plt.ylim([0, 1.05])
plt.xlabel('rotation angle')
plt.ylabel('target class probability')
plt.legend(handles=[robust_line, naive_line], loc='lower right')
plt.show()

[图表上传失利…(image-90a84f-1515921665436)]

从图中灰色曲线能够见到,生成的胶着样本是顶级有效的。

相关文章