酒吧凳子的比萨饼数据中的冒险
【想看更多数据科学项目?查看我的网站或我的 T2 推特
New York Pizza Reviews
今年 1 月,我搬到纽约,花了 6 个月时间从事非盈利性数据科学工作,但从未涉足 5 个行政区中的任何一个。这里的人们非常重视他们的比萨饼,所以我想在我被更高的租金和更差的比萨饼困住之前吃最好的。
这篇文章的其余部分是对纽约披萨数据的统计分析(从一个名为 Barstool 的网站上搜集来的),其中包括逆向工程 API、有趣的地图和统计技术,我之前没有充分的理由去尝试这些技术。(如果您只想查看图表或玩玩地图,请向下滚动,直到看到另一张地图)。因为我在纽约的时间有限,所以我需要积极地进行优先排序。但当你在谷歌上搜索“纽约最好的披萨”,你要么会得到数千份由不同人评论的名单,要么你会在 Yelp 或 OpenTable 等网站上得到聚合的伪匿名评论。
但是这些选项没有一个能真正为高质量的评估工作。有没有更好的方法来思考这个问题?Yelp/OpenTable 的数据并不好,因为这些消费者只评论他们已经去过的餐厅,而平台本身过滤掉了评论。更不用说一个人的 4/5 星级很可能与另一个人的不一样,严重偏向聚合。没机会了。我可以汇总整理过的名单并寻找趋势,但在 Eataly 的名单上排名第四比在“纽约游客的冒险”博客上排名第一更重要吗?这并不清楚(如果可以的话,我宁愿不去搜索一百个不同的网站,老实说,大部分都是这样)。
最好的情况是,一个人不得不随机去一家比萨饼店,用足够精细的尺度来查看它,以获得概率密度。这样做足够多的次数会让我们明白一个 8.2/10 真正的 意味着什么。如果平均评论是 9.7/10,8.2 可能是垃圾,或者如果平均评论是 5/10,这可能是惊人的。
搜索
带着这个想法,我去寻找一个好的披萨评论数据集。我无意中发现了一个看似金矿的地方,酒吧凳子的戴夫·波特诺伊。戴夫每天都会评论纽约的一家披萨店,并将这些评论发布在 Instagram 和他们的移动应用 One Bite 上(如果你有时间,可以看看他们的一些评论,他们很热闹,但他们对披萨很认真)。我兴奋地给他们发电子邮件,要求查看他们的数据。但是,不出所料,他们不想让一个随机的数据科学家读取他们的数据库。我独自一人。
逆向工程
他们的披萨数据存放在两个地方,一个是在的 Instagram 上,另一个是他们的移动应用 One Bite(如下图所示)。
对于 Instagram 抓取,我可以雇佣土耳其机械工人来听每一条评论,并将其输入数据库,或者自己动手。鉴于有数百条评论,以及随之而来的明显的伦理问题,机械土耳其人不是一个选项。
如果我可以记录通过应用程序的 web 流量,并对他们的 API 进行逆向工程,会怎么样?我发现了一个名为 charles 的应用程序,它将 web 流量推送到 iPhone 上,以帮助应用程序开发人员更有效地调试。如果我可以将它用于稍微不同的目的,并在我使用该应用程序时通过查尔斯虹吸我的 iPhone 的网络流量,我可以尝试逆向工程他们的 API。事实证明,这非常有效(我们坐在制作互联网教程的巨人的肩膀上)。他们有一个场馆端点,当点击它时,会返回惊人数量的数据,包括场馆的名称和位置,以及来自社区的分数,基本上可以读取他们的数据库。
端点的安全性极低,在服务器或设备端没有验证过程,并且可以基于位置、存储类型和数据中的任何其他特征进行查询。唯一的问题是端点最多返回 50 个位置,但我通过在美国随机生成 10,000 个位置并将其用作查询字符串的输入,成功获得了 463 条披萨评论,从而解决了这个问题。
数据
这些数据包罗万象。戴夫给这个地点的评论分数,社区的分数,披萨店的名字。甚至到应用程序中使用的缩略图的链接,以及到保存所有媒体的 AWS s3 存储桶的链接(仅供参考:这样做不是最好的主意)。最后。我在地理制图中需要的唯一缺失的字段是经度和纬度,所以我使用了 Google maps 反向地理编码器来获取这些信息。我已经把所有的数据放在这个 GitHub repo 里,任何人都可以随意摆弄。
首先,我想弄清楚最好的披萨都聚集在哪里。纽约的某些地区比其他地区更擅长做披萨吗?我使用开普勒(优步的开源地理可视化框架)来获得得分最高的点评披萨店的聚类,并在这里托管了互动地图作为沙盒供任何人分析。在 NYU 和索霍区,以及布鲁克林的威廉斯堡,有一些非常棒的披萨店。
请随意在开普勒(或任何其他地方)内使用这些数据,可视化披萨数据真的很棒。
数据探索
在讨论数据分布的问题之前,我们的样本是从哪里生成的?假设评论大多来自口头推荐,单个人评论的绝对规模将有助于对披萨评论进行更细致的分析。
大量的披萨评论发生在纽约,仅在曼哈顿就有大约 250 条评论(另有 20 条左右来自布鲁克林,还有拉斯维加斯、迈阿密等地的少量评论)。其他城市甚至没有 20 个评论。如果我们通过评论数来看排名前几的城市,我们就会明白为什么大量的评论是判断质量的必要条件。
对于纽约,评论的数量足够高,开始接近比其他城市更容易识别的分布(这是较大样本的预期)。我猜想,每个城市都有自己的比萨饼质量的真实分布,一个小样本更可能有精选的例子,告诉我们实际质量很少。所有数据的中值审查得分为 7.1,标准偏差为 1.78。数据集中排名前五的披萨店中有三家在纽约,几周前,我去了最好的披萨店(Di Fara ),尽管要花两个小时才能吃到一片,但很值得。请参见下面的前 5 名。
8.1 有多好?
我的下一个问题有点技术性。披萨分数的潜在密度是多少?8.1 比 9.5 好多少?仅仅知道中间值是远远不够的。同样,我认为单个数据分数是真实质量感知分布的样本。然后,我用一个核密度估计器来估计这个概率密度函数。通俗地说,KDE 是一种不用做很多假设就能理解全部数据的方法。在这个数据中,我不想假设数据以任何一点为中心(比如说,假设大多数评论都在 5 左右),或者它是均匀分布的。在 KDE 的博客上有一篇优秀的博文,它可能会给出比大多数大学课程更好的直觉,的论文描述了这种方法。Scipy 有一个很好的方法来计算 KDE,并从中取样。
Fitting the Gaussian KDE
一旦我适应了这个密度,我就从中取样以获得一个更健壮的数据集。密度直方图如下。有了这个,我可以估计一个比萨饼店是否在纽约市的前 x%的位置,这比简单地从应用程序的数据中计数要重要得多。
Histogram of Pizza Reviews with KDE
该数据集还包括应用程序用户的比萨饼评级。我用和以前一样的方法来估计社区的密度,并把两者都画在下面。
该应用程序的用户倾向于遵循与 Portnoy 相同的密度,0 左右的评论明显更多(一堆苛刻的评论),但也更多地高于中位数。这通常遵循我之前的假设,即评论者在他们的评论中更加两极分化。
鳍状物
这些数据同样很难获得,玩起来也很有趣,如果你对以上所做的任何事情有任何问题,请联系我,在 tylerjrichards@gmail.com 或者在这里!
其他尚未完成但可能很有趣的项目是根据位置和价格预测披萨评论,为类似的披萨店创建推荐算法,以及根据地铁站绘制最近的披萨店地图。
机器学习中的对抗性攻击及其防御
刘玲教授在 2019 年 IEEE 大数据大会上的主题演讲笔记
ig 数据驱动的机器学习和深度学习已经在许多领域取得了令人印象深刻的进展。一个例子是 ImageNet 的发布,它由 22,000 个类别的 1,500 多万张带标签的高分辨率图像组成,彻底改变了计算机视觉领域。最先进的模型已经在 ImageNet 数据集上实现了 98%的前五名准确率,所以看起来这些模型是万无一失的,不会出错。
然而,对抗训练的最新进展发现,这是一种错觉。当面对对立的例子时,一个好的模型经常会出错。下图说明了这个问题:
Image taken from https://towardsdatascience.com/breaking-neural-networks-with-adversarial-attacks-f4290a9a45aa
该模型最初对熊猫图片进行了正确的分类,但当一些人类察觉不到的噪声注入到图片中时,模型的最终预测变为另一种动物长臂猿,即使有如此高的置信度。对我们来说,似乎最初的和改变的图像是相同的,尽管它与模型完全不同。这说明了这些对抗性攻击造成的威胁—我们可能没有察觉到差异,因此我们无法判断对抗性攻击是否发生。因此,尽管模型的输出可能会改变,但我们无法判断输出是正确还是不正确。
这形成了刘玲教授在 2019 年 IEEE 大数据大会上的主题演讲背后的动机,她在演讲中谈到了对抗性攻击的类型,对抗性例子是如何产生的,以及如何对抗这些攻击。事不宜迟,我将进入她的演讲的内容。
敌对攻击的类型
对抗性攻击分为两类——有针对性的攻击和无针对性的攻击。
目标攻击有一个目标类别 Y,它希望目标模型 M 将类别 X 的图像 I 分类为。因此,目标攻击的目标是通过预测敌对示例 I,使 M 误分类为预期的目标类别 Y 而不是真实的类别 x。另一方面,无目标攻击不具有它想要模型将图像分类为的目标类别。相反,目标仅仅是通过预测对立的例子 I 作为一个类,而不是原始类 x,来使目标模型错误分类。
研究人员发现,一般来说,虽然无针对性的攻击不如有针对性的攻击,但耗时要少得多。尽管有针对性的攻击在改变模型预测方面更成功,但这是有代价的(时间)。
对立的例子是如何产生的?
了解了有目标攻击和无目标攻击之间的区别后,我们现在来看看这些敌对攻击是如何进行的。在良性的机器学习系统中,训练过程寻求最小化目标标签和预测标签之间的损失,数学公式如下:
Image credits to Professor Lise Getoor taken from https://users.soe.ucsc.edu/~getoor/Talks/IEEE-Big-Data-Keynote-2019.pdf
在测试阶段,对学习的模型进行测试,以确定它能够多好地预测预测的标签。然后,通过目标标签和预测标签之间的损失之和来计算误差,数学公式如下:
Image credits to Professor Lise Getoor taken from https://users.soe.ucsc.edu/~getoor/Talks/IEEE-Big-Data-Keynote-2019.pdf
在对抗性攻击中,采取以下两个步骤:
- 查询输入从良性输入 x 变为 x’。
- 设定攻击目标,使得预测结果 H(x)不再是 y。损失从 l (H(x ᵢ),y ᵢ)变为 l (H(x ᵢ),y’ ᵢ)其中 y’ ᵢ ≠ y ᵢ.
对抗性干扰
将查询输入从 x 改变到 x’的一种方式是通过称为“对抗扰动”的方法,其中计算扰动,使得预测将与原始标签不同。对于图像,这可能以像素噪声的形式出现,正如我们在上面的熊猫例子中看到的那样。无目标攻击的单一目标是最大化 H(x)和 H(x’)之间的损失,直到预测结果不是 y(真实标签)。定向攻击还有一个额外的目标,即不仅最大化 H(x)和 H(x’)之间的损耗,而且最小化 H(x’)和 y’之间的损耗,直到 H(x’)= y’而不是 y。
对抗性扰动可以分为一步扰动和多步扰动。顾名思义,一步扰动只涉及一个阶段——添加一次噪声,仅此而已。另一方面,多步扰动是一种迭代攻击,每次都对输入进行小的修改。因此,单步攻击很快,但可能会添加过多的噪声,从而使人类更容易检测到这些变化。此外,它更重视 H(x)和 H(x’)之间损耗最大化的目标,而不太重视扰动量最小化。相反,多步攻击更具战略性,因为它每次都会引入少量扰动。然而,这也意味着这种攻击在计算上更加昂贵。
黑盒攻击与白盒攻击
现在我们已经了解了对抗性攻击是如何产生的,一些敏锐的读者可能会意识到这些攻击的一个基本假设,即攻击目标预测模型 H 是对手已知的。只有当目标模型已知时,才可以通过改变输入来折衷产生对立的例子。然而,攻击者并不总是知道或者能够访问目标模型。这听起来像是抵御这些敌对攻击者的万全之策,但事实是黑盒攻击也非常有效。
黑盒攻击基于对立示例的可转移性概念,即对立示例虽然是为了攻击代理模型 G 而生成的,但在攻击另一个模型 h 时可以取得令人印象深刻的结果。采取的步骤如下:
- 攻击目标预测模型 H 是私人训练的,对手不知道。
- 一个模仿 H 的代理模型 G 被用来产生对立的例子。
- 利用对抗性例子的可转移性,可以发起黑盒攻击来攻击 h。
这种攻击可以在训练数据集已知或未知的情况下发起。在对手已知数据集的情况下,可以在与模型 H 相同的数据集上训练模型 G 来模仿 H。
然而,当训练数据集未知时,对手可以利用成员推理攻击,从而训练一个攻击模型,其目的是将目标模型在训练输入上的行为与其在训练期间没有遇到的输入上的行为区分开。本质上,这变成了一个分类问题,以识别目标模型对其训练的输入和未训练的输入的预测之间的差异。这使得对手能够更好地了解训练模型 H 的训练数据集 D,使得攻击者能够基于真实的训练数据集生成影子数据集 S,以便训练替代模型 G。在 S 上训练 G,其中 G 模仿 H,S 模仿 D,然后可以对 H 发起黑盒攻击
黑盒攻击的例子
现在我们已经看到了黑盒攻击与白盒攻击的不同之处,因为目标模型 H 对于对手来说是未知的,我们将讨论黑盒攻击中使用的各种策略。
身体攻击
将查询输入从 x 改变为 x’的一种简单方法是简单地添加一些物理上的东西(例如亮色)来扰乱模型。一个例子是 CMU 的研究人员如何在对面部识别模型的攻击中给一个人戴上眼镜。下图说明了这次攻击:
Image taken from https://www.cs.cmu.edu/~sbhagava/papers/face-rec-ccs16.pdf
第一行图像对应于通过添加眼镜而修改的原始图像,第二行图像对应于作为预期的错误分类目标的模仿目标。仅仅通过在原始图像上添加眼镜,面部识别模型就被欺骗,将顶行的图像分类为底行的图像。
另一个例子来自谷歌的研究人员,他们在输入图像中添加贴纸来改变图像的分类,如下图所示:
Image taken from https://arxiv.org/pdf/1712.09665.pdf
这些例子显示了这种物理攻击是多么有效。
分发外(OOD)攻击
实施黑盒攻击的另一种方式是通过分发外(OOD)攻击。机器学习中的传统假设是,所有的训练和测试样本都是从相同的分布中独立抽取的。在 OOD 攻击中,通过向模型提供来自训练数据集的不同分布的图像来利用这种假设,例如,将 TinyImageNet 数据馈送到 CIFAR-10 分类器,这将导致具有高置信度的不正确预测。
如何才能信任机器学习?
既然我们已经看了各种类型的对抗性攻击,那么一个自然的问题就来了——如果我们的机器学习模型如此容易受到对抗性攻击,我们怎么能信任它们呢?
Chow 等人在 2019 年题为“抗黑盒对抗性攻击的去噪和验证跨层集成”的论文中提出了一种可能的方法。该方法的核心是使机器学习系统能够自动检测敌对攻击,然后通过使用去噪和验证集成来自动修复它们。
去噪集成
首先,输入图像必须经过去噪集合,去噪集合尝试不同的方法来去除图像中的任何添加的噪声,例如添加高斯噪声。由于防御者不知道由对手添加到图像中的特定噪声,因此每次尝试去除每种类型的噪声时,都需要一组去噪器。
下图显示了去噪自动编码器的训练过程-原始图像被注入了攻击者可能注入的一些噪声,自动编码器尝试重建原始未损坏的图像。在训练过程中,目标是减少重建图像和原始图像之间的重建误差。
Image taken from https://arxiv.org/pdf/1908.07667.pdf
通过开发这些自动编码器的集合,每个自动编码器被训练以去除特定类型的噪声,希望被破坏的图像将被充分去噪,使得它接近原始未被破坏的图像,以允许图像分类。
验证集成
在图像被去噪之后,它们然后经过验证集合,该验证集合检查由每个去噪器产生的每个去噪图像,然后对去噪图像进行分类。验证集成中的每个分类器对每个去噪图像进行分类,然后集成进行投票以确定图像所属的最终类别。这意味着尽管一些图像可能没有在去噪步骤中以正确的方式去噪,但是验证集合对所有去噪的图像进行投票,从而增加了做出更准确预测的可能性。
多样性
发现去噪器和验证器的多样性是非常重要的,因为首先,敌对攻击者将更善于改变图像,因此需要能够处理各种破坏图像的去噪器的多样性组。接下来,还需要验证器多样化,以便它们可以生成多种分类,这样敌对攻击者就很难操纵它们,就像他们如何设法操纵我们信任并在机器学习中频繁使用的普通分类器一样。
这仍然是一个悬而未决的问题,因为在各种验证者做出所有这些决定之后,仍然有一个最终决策者需要决定听取谁的意见。最终的决策者需要保持群体中的多样性,这并不是一件容易的事情。
结论
我们已经研究了各种类型的对抗性攻击,以及防御这些攻击的有希望的方法。当我们实现机器学习模型时,这绝对是要记住的事情。我们不应该盲目地相信模型会产生正确的结果,而是需要防范这些对抗性的攻击,并在接受这些模型做出的决定之前总是三思而行。
非常感谢刘教授就机器学习中的这个紧迫问题发表了富有启发性的主旨演讲!
对入侵检测系统的敌对攻击
人工智能(AI)在很短的时间内取得了长足的进步。计算机科学家先驱艾伦·图灵(Alan Turing)在 1950 年发表了第一篇关于机器可以思考的可能性的论文。在不到一个世纪的时间里,人类创造了能够计算和理解大量数据的机器和程序,以学习和模仿人类自身的行为。
人们、企业和政府都严重依赖这项新技术,却没有意识到这一点。人工智能的一个增长领域是安全。入侵检测系统(IDS)是用于保护网络或系统免受恶意流量攻击的系统。人工智能本质上是动态的,具有学习的能力,所以它对于这个应用程序来说是理想的,这样它就可以学习和进化。这使得 AI 擅长检测好的和恶意的互联网流量,因为它不遵循一套定义的规则,而是动态地创建自己的规则。
入侵检测系统(IDS)在保护保存在网络或系统中的信息方面发挥着重要作用,并且由于其低维护性和及时了解最新攻击的能力,AI 正在被集成到 IDS 中。由于人工智能的快速发展,提高这些系统健壮性的需要被忽略了,当前的研究着眼于改进 IDS 的方法。
一种叫做生成对抗网络(GAN)的新兴技术试图攻击任何一种使用人工智能的机器学习系统。GAN 对机器学习系统产生的攻击会混淆或愚弄算法,从而产生与预期不同的输出。
下图很好地展示了 GAN 如何迷惑机器学习系统。它接受一个输入并修改它,使它看起来仍然像原来的一样。任何人看到这两张图片都会确信它们都是猫。它们都有尖尖的耳朵、胡须、脸型、皮毛等。但对于在更深、更低层次上分析图像的机器学习系统来说,这两者是非常不同的。左边的一个有更多的细节,这将使机器学习系统感到困惑,因为它看不到太多的模糊和颜色差异。与此同时,右边的图像要简单得多,这要么会让机器学习系统相信左边的图像太详细,不可能是猫,要么右边的图像没有足够的细节,不可能是猫,尽管对一个人来说它们是一回事。最终结果将是一个错误分类的图像,证明 GAN 在混淆机器学习算法方面是成功的。
Cat picture CC-BY-SA from Zimin.V.G., Cat cartoon CC-BY XXspiritwolf2000XX.
对任何基于机器学习的入侵检测系统的攻击都包含三个主要特征,这些特征描述了它将是哪种攻击,因此属于八个不同攻击类别之一。需要注意的是,正的假设为恶意,负的假设为正常。下面是三个不同的类别,每个类别包含两个不同的特征:
影响:
- 致使攻击通过控制训练数据(改变训练过程)来影响学习
- 试探性攻击导致拒绝服务(DoS)(利用现有的弱点),通常带有误报(拒绝好的输入)
安全违规:
- 完整性攻击通过漏报损害资产(接受恶意输入)
- 可用性攻击导致拒绝服务,通常是通过误报(拒绝好的输入)
特异性:
- 有针对性的攻击专注于特定的实例(让特定的输入通过)
- 不分青红皂白的攻击包含了一大类实例(让很多东西通过)
一次攻击可以从每个类别中提取一个特征,但绝不会从同一个类别中提取两个特征,因为这两个特征会相互矛盾。根据您攻击的 IDS 的类型,GAN 将创建的攻击类型会有所不同。例如,基于序列(基于规则)的入侵检测系统可能会受到探索性完整性攻击,在这种情况下,特异性并不重要。探索性完整性攻击侧重于使用假阴性来淹没系统,从而允许恶意流量进入系统。欺骗基于序列的 IDS 需要发送大量的输入,每个输入都有稍微不同的意图,试图通过 IDS 设置的所有规则。目标可能是发送一个或多个恶意输入,这取决于坏的参与者。
这些攻击分为 4 种攻击类型:拒绝服务(DoS)、探测、用户到根(U2R)和根到本地(R2L)。这些攻击类型侧重于不同的结果,每种攻击的意图如下:
- DoS 是一种试图切断进出目标系统的流量的攻击。IDS 被异常流量淹没,系统无法处理,于是关闭以保护自己。这将阻止正常流量访问网络。这方面的一个例子可能是一家在线零售商在大减价的一天收到大量在线订单,由于网络无法处理所有请求,它将关闭,阻止付费客户购买任何东西。
- 探测或监视是一种试图从网络获取信息的攻击。这里的目标是像小偷一样窃取重要信息,无论是客户的个人信息还是银行信息。
- U2R 是一种攻击,它从普通用户帐户开始,试图以超级用户(root)的身份访问系统或网络。攻击者试图利用系统中的漏洞来获得根用户权限/访问权。
- R2L 是一种试图获得远程机器本地访问权限的攻击。攻击者无法在本地访问系统/网络,并试图“侵入”网络。
IDS 受到多种类型的攻击,因为每种攻击类型都有许多子类。基于机器学习的入侵检测系统的想法正在发展,在这种情况下,入侵检测系统可以自己学习对不同的攻击进行分类。这就是为什么创建 GAN 来对抗 IDS 的潜力如此之大:GAN 是用来欺骗机器学习系统的。这将证明是一个伟大的资产在测试一个入侵检测系统的鲁棒性,并可能导致安全系统到一个新的时代,采取入侵检测系统到一个新的水平。
总的来说,对于当今的攻击水平,IDS 是一个非常有用的基本工具,但是使用 GAN 来生成攻击以对抗 IDS 的可能性正在快速增长。称为入侵检测系统生成对抗网络(IDSGAN)的框架已经被创建,并且已经证明简单的 IDS 对于由 GAN 生成的攻击是脆弱的。安全的未来将是 IDSs 和 GANs 之间的战斗,谁发展得更快,谁就会站在最前面。
对立的例子——重新思考定义
MNIST Digits
对立的例子是各种机器学习系统要克服的一大障碍。它们的存在表明,模型倾向于依赖不可靠的特征来最大化性能,如果受到干扰,可能会导致错误分类,带来潜在的灾难性后果。对抗示例的非正式定义是以人类察觉不到的方式修改的输入,但是被机器学习系统错误分类,而原始输入被正确分类。下图说明了这个概念
Original image (left), adversarial noise (middle), perturbed image incorrectly classified as a 2 (right)
对抗性例子的正式定义如下
Adversarial example definition
其中𝓛是我们试图最大化的损失函数, 𝑥_orig 是原始图像,𝛿是扰动,y 是地面真实标签,并且选择ε以确保扰动的图像看起来不会太嘈杂,并且使得它对于人类来说仍然看起来像原始类别的图像。诸如 FGS、IGS 和 PGD 的几种攻击使用 L-∞范数来约束扰动图像和原始图像之间的距离。在本帖中,我们将探讨为 MNIST 数据集选择ε的困难。我们也将着眼于不依赖于干扰某些原始图像的生成对立范例的最新技术,并质疑这样生成的图像是否实际上满足对立范例的定义。
MNIST 距离分析
先简单分析一下同类图像之间,以及不同类图像之间的平均距离。也许这些距离有助于以更定量、更少主观的方式选择ε。这里是我的原创博文的链接,里面有一个包含分析的 Jupyter 笔记本。
我们从每个类别中随机抽取 100 幅图像,并计算不同标准下图像之间的平均成对距离。这里只显示了 L-2 范数,以避免混乱,还因为 L-∞范数热图在每个单元格中只有 1,不提供信息。
L-2 Norm Training Set Distances
一个合理的假设是,该热图的对角线元素(类内距离)应该低于同一行/列中的非对角线元素(类间距离)。然而,情况并非如此,就像上面看到的更接近于 1 的 2 和也更接近于 1 的 8。起初这是一个惊喜,但它只是表明给定数字的风格变化可能比数字之间的切换导致更多的像素差异。人们可以认为这是一个假象,即对于每个数字,对于该数字的不同图像,有一组不变的像素不变,并且当两个数字的不变组具有高度重叠时,可能会出现如上所述的意外结果。
选择ε
这一切在选择ε的时候意味着什么?使用 L-∞范数时,最常见的ε值为 0.3,L-2 范数的高值为 4.5 ( Madry 等人)。如果我们考虑 L-∞范数的ε=1.0 的最大极值,我们将无法控制扰动图像的地面真实类,并且可能最终生成对于人类和我们的图像分类模型看起来像不同类的图像。这也将允许我们在训练和测试集图像之间任意插值 x’= rx _ train *(1-r)x_test,并且如果我们的模型碰巧不正确地分类 x _ test,那么它将被标记为敌对的。所以这里有多个条件需要执行。
- 当并排比较原始图像 x 和它的扰动版本 x '时,我们希望人类察觉不到容许扰动的集合
- 我们希望扰动不可能导致相同数字的图像之间的插值。否则,这可能会混淆对抗鲁棒性与泛化性能。对于给定的数字 d,以及分别被我们的模型正确和错误分类的测试集图像 x_correct 和 x_false,一个简单的对抗性攻击是将 x_correct 转换成 x_false
根据观察者的不同,(1)通常意味着(2)。ε=0.3 当然满足(2),因为所有图像都具有接近 1.0 的 L-inf 距离。让我们看看,如果我们生成由两个类组合而成的图像,会发生什么,如下所示
Averaging images under constrained L-∞ distance
这将原始图像和精心制作的图像之间的 L-∞距离限制为ε,但是任何人类观察者都可以很容易地分辨出如下两幅图像之间的差异
Crafted image within ε=0.3 L-inf distance of original
很明显,最右边的图像有问题。事实上,如果没有被告知这是一个由 0 和 1 组合而成的图像,有些人可能会说这只是一个抽象的符号。举个简单的例子,我们已经证明ε=0.3 违反了条件(1)。甚至更小的值,如ε=0.2,也会给出类似的结果。MNIST 允许容易地识别受干扰的像素。在许多情况下,通过简单地检查是否对背景像素进行了修改来创建对抗示例的检测机制是微不足道的。如果攻击者知道这种检测机制,他们可以绕过它(卡里尼和瓦格纳)。那么我们如何选择ε呢?
有理由不为每个图像使用相同的ε。对于某些类,判断数字本身的边界框内的像素是否发生了变化要容易得多,如上例所示。对于此类类,ε可能应该设置为较小的值。此外,像 L-2 或 L-∞这样的典型规范在用于计算图像空间中的距离时没有语义相似性的概念。如果他们能够给出输入空间中图像之间的语义相似性,那么就有可能构建一个简单的 KNN 图像分类器,并抛弃过去 7 年卷积神经网络的进展。这个问题的一个可能的解决方案是使用度量学习中的技术。通过学习嵌入,其中这种嵌入之间的 L-2 或 L-∞距离包含语义相似性的概念,然后我们可以在这个空间而不是输入空间中调整ε。一种这样的技术叫做三联体网络。三元组网络通过一次将 3 个图像并行传递到同一个嵌入网络来工作。传递 y 类的锚,以及同一类的正例(+)和不同 y '类的反例(-)。损失函数确保锚和正样本之间的距离至少比锚和负样本之间的距离小𝛼。
Illustration of a what a triplet network does
使用类似三元组网络的度量学习技术仍然需要人工实验者验证,以确保ε没有被选择得足够大,以允许类中的变化。此外,我们将不得不考虑条件(2 ),它说我们不应该能够使用扰动从我们的数据集中的一个图像跳到同一类的另一个图像。像 PGD 这样的攻击在损失函数的梯度方向上迭代移动以增加损失,然后将结果图像投影到满足与原始图像的距离约束的输入子空间上。不是在输入空间中进行这种投影,而是使用我们选择的度量学习算法在嵌入空间中进行。
生成对立范例
一篇非常酷的论文(宋等人)介绍了一种创造对抗性例子的新方法。作者选择使用 GAN 从零开始生成可能欺骗被攻击模型的图像,而不是使用恶意制作的噪声干扰一些已经存在的图像。具体来说,他们使用一个辅助分类器 GAN (AC-GAN ),该分类器能够根据图像类别来控制正在生成的图像类型。这导致了“不受限制的对抗性例子”,因为没有距离来约束,因为图像是从零开始生成的。然而,这不满足前面提到的标准(1)或(2)。虽然他们的技术非常有用,并允许通过生成模型失败的新图像来进行模型调试和数据扩充,但该分析将泛化性能和对抗性鲁棒性视为同一件事。为了正确分析模型的稳健性,我们需要能够理清泛化性能和对抗性稳健性这两个指标,因为它们彼此不一致(齐普拉斯等人)。因此,虽然远离基于扰动的对立例子的定义可能是诱人的,但目前它们是允许以孤立的、非混淆的方式研究对立鲁棒性的唯一方法。
结论
目前对对立例子的定义对于像 MNIST 这样的数据集来说略有缺陷,尽管它对于像 ImageNet 这样的东西来说更有意义,因为在 ImageNet 中扰动更难注意到,并且不会最终使图像看起来像奇怪的类组合。对每个图像或类别使用相同的阈值ε可能是一个苛刻的要求,因为对于特定类别的图像更容易检测噪声。图像是一种自然易于人类分析和判断是否有猫腻的数据。然而,在许多领域中,数据是以非常难以理解和可视化的抽象数字向量的形式出现的。由于我们无法从一开始就理解原始数据,因此在这些领域中定义什么是对抗性的可能超出了我们的想象范围。在这种情况下,得出ε的定量方法是必须的。
我希望你喜欢这篇文章,并让我知道你希望在未来的文章中看到的其他主题。
给新手和初级数据科学家的建议
我希望两年前就知道的事情
Hopefully, this will bring a little clarity to your path. 😃
我以为我是谁
我叫 Darrin,我在 Outcome Health 担任数据科学家已经将近两年了。我们是一家专注于护理点患者教育的健康科技公司。用英语来说,这意味着我们在医生的办公室里放一些设备,里面有给病人看的内容。我们在现场有超过 100,000 台设备,这意味着大量的数据。
这篇文章是写给谁的
本文面向众多初级/助理数据科学家。如果你刚刚开始你的旅程,如果你有点困惑和失落,如果你不总是确定你应该做什么或如何最好地为你的新公司做贡献,你来对地方了。
You. Me. Your C-suite, probably.
我为什么写这篇文章
我看过许多数据科学文章,解释了做更高级的数据科学工作的来龙去脉,伟大的数据科学家需要的技能,这些大师处理的项目类型。但是当我经历我的助理数据科学家之旅时,我花了很长时间来导航如何做成为一个更初级的团队成员。
本文试图为其他初露头角的准数据科学家缓解这个问题。
我的主要目标是提供一个基本的蓝图,并举例说明助理数据科学家如何快速为组织增加重要价值。
我很幸运地在这个过程中发现了一些东西,现在我已经是一名数据科学家了——我希望这能帮助你们中的一些人走上同样的道路!
第一步:寻找低风险、高回报的项目
主要问题
每个助理数据科学家遇到的第一个问题可能都是一样的:如何…
- 在真实项目上增加价值…
- 当发展有用的技能 …
- 没有打破任何重要的东西?
回答这个问题让我结结巴巴,与组织中各种各样的人交谈,并且通常会问很多愚蠢的问题。
关键洞察力
我发现自动化监控过程往往是我能花时间做的风险最低、回报最高的工作。
- 不用担心破坏生产系统→低风险
- 对公司有明显的增值→节省时间(高回报)
- 我可以用 Python/用 Airflow/[在此插入新的酷技术]构建自动化流程→培养重要的技能
检查,检查,检查。
通用的、可操作的外卖
总的来说,如果你能找到可以自动完成的任务,但由于缺乏带宽或优先级,这些都是测试你能力的好项目。几乎每个公司都有,它们是低风险/高回报的,如果你能很快得到一个 MVP,势头会很快形成。有很多文章都在解释为什么快速获得 MVP 是一件好事,所以我会让他们解释其中的逻辑。
我的经历
在我的工作场所,我发现我们在监控新软件发布的 KPI 时效率明显低下。手动监控流程往往是改进时机成熟的地方。它们的存在通常是由于缺乏适当的生产流程。
最终,我们将分阶段推进软件更新,每个阶段都将在我们的 100,000 台设备网络中占据更大的比例。然而,在每个阶段,分析师将手动提取该软件版本的 KPI。这显然是浪费时间,但是我们没有时间来自动化这个过程。
第二步:如何产生深刻的见解
主要问题
所以,你有了一个项目自动化一些过程的想法。现在怎么办?作为数据科学家,我们知道我们工作的一部分是“产生洞察力”。
很长一段时间,我对此的主要反应是“这到底是什么意思?!"我默认有一个工程师的大脑。我需要一个切实、具体的解释。没有那个,我不得不自己做。
So, I was sitting there project in one hand, laptop in the other, and I realized I didn’t have my next step in-sight. (Get it. Insight. Heh. Your groans are my validation.)
关键洞察力
对我来说,一个伟大的“洞察力”是减少做决定所需时间的任何东西。
具体来说,这就是人们通常所说的洞察力。他们想要一份明确他们应该做什么的交付信息,越快越好。如果洞察力使你改变了先前的决定,它仍然减少了做决定所需的时间,因为它只是缩短了你的“坏”决定和新决定之间的时间。
通用的、可操作的外卖
这意味着任何助理数据科学家的一个好目标就是简单地减少数据接收和行动之间的时间量。显然,这是一个广泛的任务,但这意味着你要学习端到端的系统,每个数据科学家都应该至少了解数据堆栈的每个部分(在这个人工智能需求层次图中有更多的信息)。此外,数据科学家的角色目前是如此广泛和模糊,你的职责范围可能会涵盖整个堆栈。
我的经历
就我而言,除了简单地自动化数据拉取以节省时间之外,我还意识到了两件事。
Fun for teams. Not for Batman.
- 为了节省时间,我可以将数据推送到用户所在的地方,而不是拖到用户所在的地方:Slack。这涉及到连接到 Slack API 并推送用 Python 创建的图表。
- 我可以自动完成人类分析师正在做的一些推理。(机器会来抢我们的工作。)
我们在我们的网络上开展广告活动,我们的主要 KPI 之一是我们的广告活动在一天内的总播放次数。这个数字应该不会有太大的变化,除非是在周末,这个数字应该会下降到接近于零。
检查数字的分析师会检查这个 KPI,这通常是正常的。但是,时不时地,一个大型的活动会结束,导致播放数量急剧下降。对于给定的软件版本,这可能看起来是一个大问题。
我意识到播放次数(显然)与现场设备的数量和正在播放的活动数量相关。我建立了一个简单的分段线性模型(简单的系统更好,你喜欢神经网络的人)来解释活动的数量、设备的数量和周末。通过对软件更新前的数据训练模型,我可以预测软件更新后的 KPI,并根据软件更新前数据的差异设置防护栏。
这允许分析师查看通过 Slack 交付给他的一个图表,并知道 KPI 是否“在预期之内”!
第三步:如何让人们根据你的见解采取行动
主要问题
在构建了几个这样的系统之后,我开始遇到一个大多数数据科学家都会遇到的问题。人们没有采取行动。行动就是一切。如果没有结果,一个好的洞察力有什么用?(或者,在这种情况下,这是一个很好的见解吗?哦哦。)
如果一个模型被建立,一个仪表板被建造,或者一个警报系统被开发,但从来没有引起行动,它真的存在吗?(是的,确实如此,但你明白了。)
关键洞察力
改变我对此想法的主要见解实际上源于一篇关于为什么懒惰不存在的文章。主要要点是:
采取行动需要一个为什么和一个什么。如果有人不采取行动,他们没有足够强的理由去做某事,或者他们不知道到底该做什么。
这正是我所看到的。人们要么对警报的含义感到困惑,要么不确定如何应对警报。在这两种情况下,警报导致焦虑和无行动**,这比根本没有警报更糟糕**。
通用的、可操作的外卖
在你的工作中,这意味着你需要确保在交流见解时,你阐明了见解为什么重要,以及该怎么做。事实上,任何导致行动的交流都是如此。管理不善的会议是不应该做什么的一个很好的例子。如果你曾经参加过一个没有明确原因和内容的会议,你会知道这个会议是曲折的,什么也没有完成,每个人的时间都被浪费了。
如果会议没有明确的议程,我是不会去参加的。没有议程的会议是我最讨厌的事情之一。还有,首字母缩写糟透了。这只是一件无关的个人事情,但是埃隆·马斯克同意。
我的经历
随着我试图自动化的监控的性质变得越来越复杂,我的具体问题开始出现。我开始提供带有小型数据转储的一般语句,而不是具体的操作(可能有几十个)。我本可以处理数据转储。
数据转储不是消费者想要使用的东西。顾客才是最重要的。
随着警报变得过于普遍,我为这些新频道设置的空闲频道开始被较少使用。我唯一的选择是创建更具体的信息和行动步骤。
我发现了一个非常有效的方法,那就是仔细考虑问题的确切解决步骤——对于复杂的问题,这可能是一个困难的预先考虑。然而,如果处理得当,它会让行动步骤和需要的信息变得非常清楚。随着清晰的到来,我的通道和所采取的行动得到了重用!
最终结果
“异常检测”项目是由我自己发起的,经过 6 个月的稳定工作,我的优秀经理给予我的自由和信任使之成为可能。目前,“异常检测”向我们一半以上的工程-产品-设计组织(40 个人中的大约 20 个)和该组织之外的几个其他利益相关者推送警报。它已成为运营去风险工作的一个重要来源,新的渠道正在不断增加。
对于一个以副业开始的项目来说,这是一个不错的结果!
最后的笔记&送别
我不是什么神奇的天才。我来自内布拉斯加州。(爱你,内布拉斯加同胞。)再加上我小时候被摔过。(不过谁不是呢。爱你们,爸爸妈妈!).
Nebraska. Land of corn, football, and…more corn.
我作为数据科学家的第一年所做的事情是任何初级/助理数据科学家都可以做的,我希望你们中的一些人能够从我所拥有的好运和我所做的努力中获得灵感。所以,当你开始你的旅程时,我留给你一句我的数学老师在每次考试前给我们的谚语(这也是一段艰苦但有趣的旅程——我是个数学书呆子):
祝你好运,玩得开心,好好表现!
人工“情绪”智能
这一切都始于大约 2000 年前,当时柏拉图写道:“所有的学习都有一个情感基础。”
有人可能会认为超过 20 万年的进化会让人类成为情感的主人。然而,在我们生活的世界里,无论年龄大小或成熟程度如何,人们都经常在情感判断上犯错误。清晰地识别情绪是顺利沟通和建立持久关系等社会行为的关键。
是什么让识别情绪对人类来说具有挑战性?
我们经常努力表达我们的情感,表达我们的感受。情绪有许多不同的程度、性质和强度。此外,我们的经历经常同时包含多种情绪,这给我们的情绪经历增加了另一个复杂的维度。
然而,锦上添花的是情感偏见。随着情绪范围的变化,必然会有偏见。这就是我们作为数据科学家对这个问题感兴趣的地方——我们喜欢好的“偏差-方差”问题!
进入,你的友好,不带偏见的邻居情绪检测机器人。人类和机器唯一的区别是情商的日子已经一去不复返了。情感识别或人工“情感”智能现在是一个价值 200 亿美元的研究领域,在许多不同的行业都有应用。
在各行各业,人工情绪智能可以通过多种方式发挥作用。例如,人工智能可以监控用户的情绪,并对其进行分析,以达到某种结果。该应用程序将证明在增强自动化客户服务呼叫方面极其有用。人工智能还可以使用情绪读数作为决策的一部分,例如在营销活动中。广告可以根据消费者的反应而改变。
R AVDESS 数据集
瑞尔森情感语音和歌曲视听数据库( RAVDESS )包含 7356 个文件(总大小:24.8 GB)。该数据库包含 24 名职业演员(12 名女性,12 名男性),用中性北美口音发出两个词汇匹配的语句。言语包括平静、快乐、悲伤、愤怒、恐惧、惊讶和厌恶的表情。每种表情都产生于两种情绪强度水平(正常、强烈),外加一种中性表情。所有条件都有三种形式:纯音频(16 位,48 千赫。wav)、音频-视频(720p H.264、AAC 48kHz、. mp4)和纯视频(没有声音)。
7356 个 RAVDESS 文件中的每一个都有一个唯一的文件名。文件名由 7 部分数字标识符组成(例如,02–01–06–01–02–01–12 . MP4)。这些标识符定义了刺激特征:
文件名标识符:
- 设备(01 =全 AV,02 =仅视频,03 =仅音频)
- 声道(01 =语音,02 =歌曲)。
- 情绪(01 =中性,02 =平静,03 =高兴,04 =悲伤,05 =愤怒,06 =恐惧,07 =厌恶,08 =惊讶)。
- 情绪强度(01 =正常,02 =强烈)。注意:没有强烈的“中性”情绪。
- 陈述(01 =“孩子在门边说话”,02 =“狗在门边坐着”)。
- 重复(01 =第一次重复,02 =第二次重复)。
- 演员(01 到 24。奇数号演员为男性,偶数号演员为女性)。
方法
鉴于我们的数据集在数据类型方面的多样性——语音、歌曲和视频——我们决定将音频和音频-视频文件分开,并对它们分别建模以识别情绪。
在接下来的章节中,您会发现我们两个不同模型的具体细节以及总体概念重点。
视频情感检测
你有没有想过有人在生你的气,结果发现你只是误读了他们的面部表情?我们的脸可以表达 7 种基本情绪。现在,想象一下,表达“无声的快乐”需要什么样的组合。我们无法对我们七种基本情绪的不同排列和组合所能表达的不同种类的情绪进行计数。
Source — https://egyptinnovate.com/en/success-stories/affectiva-company-humanizing-technology
从面部表情中读出情绪的能力是一项非常重要的技能。有人甚至可以称之为超级大国。自远古以来,正是这种技能促成并促进了人类的互动。
潜意识里我们每天一整天都在看、贴标签、做预测、识别模式。但是我们怎么做呢?我们如何解释我们看到的一切?
大自然花了 5 亿多年才创造出这样一个系统。眼睛和大脑之间的合作被称为初级视觉通路,是我们能够理解周围世界的原因。
大脑中神经元和连接的非常复杂的层次结构在记忆和标记物体的过程中起着重要作用。一开始,我们被教导我们周围物体的名称。我们通过给我们的例子来学习。慢慢地,但肯定地,我们开始越来越经常地认识我们周围的事物。它们变得如此普遍,以至于下次我们看到它们时,我们会立刻知道这个物体的名字。他们成了我们的’【T2 模式】’ T3 '世界的一部分。
但是现代机器是如何从面部表情识别情绪的呢?
卷积神经网络
类似于儿童如何学习识别物体,我们需要对数百万张图片训练一种算法,然后它才能感知输入并对看不见的图像做出预测。
电脑和我们“看”的方式不同。他们的世界只由数字组成。每幅图像都可以用二维数组来表示,称为像素。
卷积神经网络(CNN) 是一种特定类型的人工神经网络,它教会一种算法如何识别图像中的对象/特征。
以下是我们如何在我们的项目中利用 CNN 的力量。
定义 CNN 模型
Keras 被用来创建一个顺序卷积网络——具有线性层堆栈的神经网络。该网络由以下部分组成:
卷积层: 这些层是我们网络的构建模块。这些计算输入图像 X 和一组 Kj 可学习滤波器之间的点积。大小为 k1 × k2 的每个滤波器 Kj 在输入空间中移动,与输入的局部子块执行卷积,提供 Yj,即特征映射(Yj=∑X×Kj+Bj,其中 B 是偏置项)。
激活函数: 我们使用激活函数使我们的输出非线性。在卷积神经网络的情况下,卷积的输出将通过激活函数。在这个项目中,我们将求助于两个函数的使用— Relu 和 Sigmoid。
池层: 这些层将沿维度向下采样操作。这有助于减少空间数据并最小化所需的处理能力。
密集层: 这些层出现在一个 C.N.N 的末端,它们接收卷积层生成的所有特征数据并做出决策。
退层: 随机关闭网络中的几个神经元,防止过拟合。
批量标准化:通过减去批量平均值并除以批量标准偏差来标准化先前激活层的输出。这加快了训练过程。
该网络接受一个大小为 256*256 的二维数组的输入,并预测数据集中存在的八种情绪中的一种。
以下是 CNN 模式的总结:
解析视频获得图像
第一步是将视频文件解析成一组我们用来训练模型的图像帧。我们使用 cv2 库从视频中捕捉图像。VideoCapture 函数读取视频文件,并将其转换为一系列图像帧。
获得的每一帧将包含一个包含图像信息的二维整数数组。图像由像素组成,这些像素是多个数字阵列的通道。彩色图像有三个颜色通道,即红色、绿色和蓝色,每个通道由一个网格表示。网格中的每个单元格存储一个 0 到 255 之间的数字,表示该单元格的亮度。为了每次捕捉不同的表情,我们将每 20 帧传递到我们的训练模型中。
What you see (L) vs what computer sees ®
提取图像数据后,我们将图像的大小调整为 256*256,以尽可能多地保留信息,从而提高模型的准确性。我们将这些图像转换为灰度,因此只有一个通道,从而降低了复杂性。
然后,我们添加图像数据以获得一个生成器对象,我们将在下面的段落中进一步解释这个对象。
获取标识情绪的标签
我们在字典中定义情绪,如下面的代码所示。
Emotion Dictionary
示例视频文件:“01–01–03–02–02–02–01 . MP4”
所有视频文件的文件名中都列出了情感,如上所示。我们拆分文件名,并使用预定义的情感词典来获取每个视频文件的标签。
训练 CNN 模特
对于小而简单的数据集,使用 Keras 是完全可以接受的。拟合函数。然而,像我们这样的大型数据集通常太大而不适合内存。执行数据扩充是为了避免过度拟合并提高模型的泛化能力。在这些情况下,我们需要利用 Keras 的。拟合 _ 生成器函数。的。fit_generator 函数接受批量数据,执行反向传播,然后更新模型中的权重。重复这个过程,直到我们达到期望的历元数。你会注意到我们现在需要在调用时提供一个 steps_per_epoch 参数。fit_generator(的。fit 方法没有这样的参数)。
Keras 数据生成器意味着无限循环。因此,Keras 无法确定一个纪元何时开始,一个新的纪元何时开始。因此,我们将 steps_per_epoch 值计算为训练数据点的总数除以批量大小。一旦 Keras 达到这个步数,它就知道这是一个新时代。
在尝试不同的迭代和切换模型参数后,我们聚焦于 50 个时期和每个时期 25 步。对于这个模型,我们获得了 0.55 到 0.65 的精度。
测试 CNN 模型
为了测试 CNN 模型,我们使用 Keras 函数 test_on_batch()。与我们训练模型的方式类似,我们在视频文件中每隔 20 帧捕捉一次,将图像数据转换为灰度,并将图像重新整形为 256*256 阵列。该模型返回对应于一种情绪的八个数字的数组。我们通过确定这个数组中的最高数字来获得预测的情绪。
我们在两个演员身上测试了该模型,并在这些结果上获得了 0.6 的准确度。
模型预测
在测试了这个模型之后,我们想在一个看不见的视频文件上测试这个模型。我们通过模型传递了一个带有“快乐”情感标签的视频。
作为模型的输出,我们得到的是一系列加权的情绪。我们运行下面给出的代码来为这个模型选择最好的可能结果。
这是一个模型预测视频文件中每 20 帧前两种情绪的例子。
每一帧的结果被组合以给出视频剪辑的最终预测结果。
转移学习方式
除了使用 CNN,我们还尝试了迁移学习,以确定我们是否可以通过在我们的数据集上训练预训练模型来获得更高的准确性。迁移学习是一种机器学习方法,其中为某个预测问题开发的模型被重新用作第二个任务的模型的起点。
这个模型是根据预测七种情绪的 FER 数据训练出来的。
我们删除了最后五层,增加了两个卷积层和一个激活层,如下文摘要所示。
我们在视频数据集上训练了这个模型,获得了 0.35 的准确率。我们计划致力于提高这一模型的准确性,并确定这是否能击败我们最初的 CNN 模型的准确性。
从音频信号中识别情绪
人类处理声音的方式非常复杂,有很多因素会影响到如何从音频片段中感知一种情绪。一个人的性别,语调的变化,甚至使用的词语类型都会影响我们对所说内容的感知。
我们数据集中的音频文件包括 3 秒钟的音频剪辑,包括语音和歌曲。就这个项目的范围而言,我们只限于演讲片段。音频基本上没有任何背景噪音,并且是在受控环境下录制的。
我们遇到了许多挑战,当谈到制作一个模型,可以理解我们可用的音频剪辑的情绪。对我们来说,第一个也是最大的一个挑战是弄清楚我们需要什么样的特性来制作我们的模型。这是一个非常特定领域的任务,我们需要了解声音及其潜在的属性,并找出哪些特征可以帮助正确识别情绪。
MFCC:
梅尔频率倒谱(MFC)是数据的短期功率谱,对于语音分析特别有用。人类发出的声音受到声道(包括声带、喉、舌、牙齿等)形状的影响。).在最基本的意义上,梅尔频率倒谱在数字上代表了这个声道。Mel-scale 旨在模仿人耳对声音的非线性感知,在较低频率下更具辨识度,在较高频率下辨识度较低。它对频率进行缩放,使其与人耳能够听到的内容紧密匹配(人类更善于识别低频语音中的微小变化)。
梅尔频率倒谱系数(MFCCs)是共同构成梅尔频率倒谱的一组系数。作为高级概述,计算 MFCC*(摘自维基百科)*涉及以下步骤:
- 对信号进行傅立叶变换。
- 使用三角形重叠窗口,将上面获得的光谱功率映射到 mel 标度上。
- 取每个 mel 频率的功率对数。
- 对 mel 对数幂列表进行离散余弦变换,就像它是一个信号一样。
- MFCCs 是最终频谱的幅度。
δMFCC 和δ-δMFCC——MFCC 的一阶和二阶导数——也是我们预测模型的重要特征。
数据预处理:
对于我们所有的音频处理,我们使用了一个名为 librosa 的 python 包,它对音乐和声音分析非常有帮助。
我们使用采样率为 22050 赫兹的 librosa 加载音频文件。每个文件被分成 157 帧。帧是用于分析目的的时间序列的一小段。Librosa 具有从音频文件生成 MFCCs 的功能。对于每一帧,我们只计算前 13 个 MFCCs,因为它们捕获了我们分析所需的大部分信息。即使更高阶的 MFCCs 确实包含我们的音频文件的更多频谱细节,它们也给模型增加了额外的复杂性,这通常是不期望的。
该函数返回音频中 157 帧中每一帧的 13 个 MFCCs。这些是对每一帧的汇总。使用每个 MFCCs 的帧的平均值、最大值、最小值和标准偏差。对δ和δδ系数进行相同的汇总。
我们从音频文件中提取的另一个特征是音频的均方根能量。
对于每个音频文件,从文件名中提取情感标签、情感强度、性别和演员号。
建模方法:
在建模之前,我们做的第一件事是将数据集分为训练集和测试集。
通常这是随机进行的。在我们的例子中,我们决定手动分割数据,取训练集中的前 20 个参与者和测试集中的后 4 个参与者。这是因为随机分割角色会导致数据泄漏问题。手动隔离某些参与者有助于避免这种情况。
我们的数据规模限制了我们从零开始训练神经网络。理想情况下,人工神经网络需要数百万个数据点来训练精确的算法。然而,我们必须处理几千个音频信号来训练我们的模型。
以下是我们建立的模型的总结:
Accuracy — 41.25%
随机森林:
我们认为,鉴于我们没有足够的数据来正确训练神经网络,我们可以尝试其他模型,看看它们的效果如何。我们用的第一个是古老的好随机森林。它给了我们 48%的准确率。
超参数调谐
训练随机森林的主要挑战是参数调整。由于参数数量庞大,我们首先对模型进行了随机搜索。其工作方式是,它基本上从给定的选项中选取随机参数,并在此基础上运行模型。我们重复运行了 50 次。这是缩小参数范围的一个非常有用的方法。
基于随机搜索的最佳模型的输出,我们找到了一个较小范围的参数进行试验,并使用 k = 3 的 k-fold 交叉验证对其进行网格搜索。
这给了我们最终的模型,测试精度为 48%,优于神经网络。
支持向量分类器:
对于 SVC,我们发现径向基函数在情感分类中表现最好。有趣的是,使用简单的线性分离函数几乎同样有效。不需要其他 SVC 参数(类别权重、概率估计值),分析是使用“一对其余”方法进行的。SVC 提供的准确率为 51.25%。
XGBoost
由于 XGBoost 有大量的参数可供选择,RandomizedSearchCV 再次有助于选择 50 个参数组合的子集进行交叉验证。这将培训从几个小时减少到两三个小时。让我们感到有趣/沮丧的是,一些选择的参数非常接近 XGBoost 的默认值。但试一试也无妨,结果超过了 CNN,接近 SVC 的水平。获得了 50%的准确度。
挑战和未来范围
组合音频&视频数据
这无疑是我们在这个项目中最大的挑战。到目前为止,我们已经将数据分成单独的音频和视频文件,以分别提取 MFCCs 和图像。然而,采用组合方法来同时训练能够处理音频和视频信号的模型将有助于实现更可扩展的结果。正如博客前面提到的,情感识别在很多行业都很受欢迎。我们相信,在未来的范围内,该产品可以通过兼容任何一种输入而被更广泛地接受。
医疗保健中的情感识别:
目前正在利用这项技术的一个行业是医疗保健,由人工智能驱动的识别软件帮助决定患者何时需要药物,或者帮助医生决定先看谁。我们预见到的一个可以通过准确的情绪检测来预防的问题是在精神健康意识领域。那些患有精神健康问题的人通常都是封闭的,不太愿意分享他们的问题。正确识别情绪这些痛苦的信号,对于避免精神崩溃和与压力相关的创伤会有很大的不同。计算机将会不带偏见,对检测早期迹象更加敏感,以帮助提醒亲密的朋友或家人。
处理固有偏见
我们的模型存在两大偏差:
1.所有演员都来自北美地理区域,因此说话带有明显的北美口音,导致我们的模型对此有偏见。来自其他地理位置的发言者的音频数据将有助于消除这种偏见。
2.所有的音频和视频记录都是在瑞尔森大学的专业环境中进行的,没有任何背景/白噪音。因此,在此数据集上定型的模型在真实数据上可能表现不佳。这种情况的一个潜在解决方案可能是在嘈杂的视听数据集上训练模型,并使用 Amazon Turk 服务附加类别标签。
参考资料:
[1] Muneeb ul Hassan, VGG16 —用于分类和检测的卷积网络
[2] Sourish Dey, CNN 在结构化数据上的应用——自动特征提取
[3] Francesco Pochetti ,视频分类实验:结合图像和音频特征
[4]瑞恩·汤普森,如何使用谷歌合作实验室进行视频处理
[5]詹姆斯·莱昂斯, Python 的演讲特点
[6]安吉莉卡·佩雷兹,表情:一个用于情感表达的机器学习工具包
原始数据之后:用数据嵌入探索控球风格。
识别一个球队风格的最基本的方法是看控球率、传球成功率、铲球率、每场比赛的平均失误次数等等。最近很多工作都是用预期目标模型来完成的,这些模型很好地捕捉到了创造和失球机会的质量。然而,它只是向分析型观众展示了一个度量标准,而不是一个团队如何运作的具体愿景。在开放式比赛中,仍然很难了解特定球队的传球顺序类型。
如何描述和分析传球序列的问题在足球分析界并不新鲜。像大卫·佩尔莫多·梅萨在 Statsbomb 上发表的“传球主题:识别球队和球员传球风格”或里卡多·塔瓦雷斯为足球比赛撰写的“可视化传球序列”这样的作品值得一读,是分析足球传球序列的一种艺术状态。
在这篇博文中,我们将探索一种基于深度学习的方法,以发现一些英超俱乐部的控球模式,并试图展示球队之间的差异。
我不能不提到 Right2Dream(该公司是丹麦俱乐部 FC nordsjlland 的一部分)招聘总监 Joe Mulberry 的工作,以及他在 2019 年伦敦 Opta 论坛上的精彩演讲。下面的分析受到了这一条的强烈启发。
编码占有:一个占有 2Vec 模型
首先,什么是占有?简单来说:这是一个连续的传球和移动过程,直到有球的球队把球丢掉。因此,当一次投篮不中、对方球队成功抢断或传球不成功时,比赛就结束了:这时另一队正在控球。
由于有球事件,我们可以通过纯粹为传球画白线来创建这些财产的简单表示。以下是一些示例:
这些图像宽 105 像素,高 68 像素,符合普通足球场的尺寸。攻击的方向是从左到右。
您会注意到,时间维度被考虑在内,动作的开始用较暗的线条表示,最后一遍是纯白色的。线之间的空间是玩家的跑动,我们不能在这里画出来,因为跟踪数据仍然很少。
为过去三个赛季的英超联赛构建这些图像,我们可以使用一个不错的数据集。每幅图像都可以用 105x68=7140 维的矢量展平。
为了能够比较这些向量,我们使用了深度学习领域中所谓的自动编码器。自动编码器是特定类型的神经网络架构,它允许将输入编码成压缩表示,然后通过解码功能恢复到几乎原始的数据。
通过设计,这些压缩的表示——也称为潜在向量——对于降低输入维度以及保持数据之间的相似性非常有用。在我的实验中,我选择将这些向量的维数设置为 256。在这里选择一个非常低的维度将需要更多的训练时间,并且可能会使保留原始数据信息变得更加困难。
此外,为了能够可视化这些信息,我们可以使用一种技术来进一步降低这些潜在向量的维度。我们有高维和非线性数据,因此 t-SNE 算法似乎最适合该操作。
由于自动编码器嵌入和 t-SNE 算法,这是二维表示的所有通道的视图。
令人欣慰的是,在将由 7140 个像素组成的图像减少到只有二维后,我们仍然能够保持所有物之间的信息相似性。你可能会注意到这张图表突出了控球时的传球次数,我们可以看到数据已经有点集中了。
为了能够比较团队的财产,我们用 K-means 算法对这些数据点进行分组。聚类的数量是任意选择的,而使用诸如肘方法的技术不是特别需要的:数量越多,我们就有越详细的聚类。我们将首先查看 25 个桶的结果,然后深入查看 500 个桶的结果。
Data clustered into 25 buckets.
Data clustered into 500 buckets.
请注意,我们也可以简单地将这些数据分组,但是 K-means 允许更精确一点。
大规模结果概览
通过简单地观察每个集群中的球队分布,我们可以发现球队的偏好是什么,或者与其他球队相比,他们使用最多的是哪种控球。
我们筛选球队,剔除那些数据较少的球队,那些在过去三个赛季降级或升级的球队:布莱顿,富勒姆,哈德斯菲尔德,桑德兰,狼队,米德尔斯堡,诺维奇,阿斯顿维拉,卡迪夫,纽卡斯尔。
上面的热图显示了每个集群中的团队分布(k=25)。在有趣的见解中,我们可以看到曼城与其他球队的不同之处。看一下 n 4 集群的一些控球样本,突出曼城的打法,长传控球在高位。
不出所料,排在第 4 组的其他球队是阿森纳、热刺、利物浦或切尔西。相反,集群 n 3 突出显示了像莱斯特或斯旺西这样打长球的球队
观察一些特定的星团,例如星团 n 14 也很有趣。
曼城、阿森纳和热刺在其中相当糟糕。查看一些样本,我们看到这一组代表右边的短传,从右后卫到中场。事实上,这三个团队在这方面经常遇到困难,这显示了这种建模的力量,它可以捕捉这些信息。
进入细节
如果我们查看聚集在 500 个桶中的数据,我们可以了解更多关于财产类型的细节。通过寻找集群分布的巨大差异,我们可以发现团队的特殊性
西汉姆几乎是唯一一个出现在 n 17 集群的球队,它代表了右翼的短传。随着大量比赛的进行,萨巴莱塔和安东尼奥在右路组成了五名后卫,铁锤帮在球场的这一边很强大。
看看一个团队在哪里作为一个低比例的行动也很有趣。例如,莱斯特在集群 n 53 中的分布最低。这一个对应于从场的中心到左侧的建造阶段。
在过去的 3 个赛季中,这些地区的球员是富克斯或奥尔布莱顿,他们不是莱斯特的最佳球员。此外,这并没有改变最近与麦迪逊或格雷这两个伟大的球员,但不太可能去深入自己的一部分。
相反,狐狸出现在群集 n 455 中,这相当于右侧具有“内部”通道的序列。是马赫雷兹的影响吗?很难说,但事实是第二支球队是托特纳姆,埃里克森在这一边扮演着特殊的角色(在联盟中很难找到一个球员可以和他相比,他有点独特)。
我们可以尝试另一个练习:以阿森纳为例,那里的枪手与其他球队最不同,因此在防守他们时如何集中注意力?
阿森纳在 n 361 和 n 287 几乎是独一无二的:
虽然第一个非常令人惊讶,但第二个可能是一个训练有素的战术的代表,从左侧开始,迅速改变到右侧,以一个长传结束,并有机会传中。不出意外的话,第二支集群 n 287 的球队是曼城。对面的队伍在防守这些队伍的时候会想注意这边。
可能的改进
这个框架很好地捕捉了传球序列的风格,并看到球队更喜欢在哪里以及如何比赛。然而,仍然有改进的方法:
- 当我们专注于球队的时候,我们也可以更深入地观察球员的水平,通过区分球员在传球序列中的表现来比较他们。
- 通过改变坐标参考,我们可能会欣赏传球序列的模式,不管它们的音高位置如何。所以我们可能会在训练中看到一些特定的组合,或者一些球员很受欢迎。
- 最基本的是根据球队统计数据预测比赛结果(平均控球率、每场比赛的 xG、在排行榜中的位置、庄家赔率等……)。我试图只将这些潜在向量作为描述团队的特征:我们可以通过简单的逻辑回归预测 50%的比赛结果,这在特征如此之少的情况下已经相当不错了。
资源
这里有一些资源对我写这篇博文帮助很大:
- Joe Mulberry 在 2019 年伦敦 Opta 论坛上的演讲。
- 【占有序列聚类实验】来自盖瑞·盖拉德。
- “从足球比赛记录中发现有趣的传球模式”来自 Shoji Hirano 和 Shusaku Tsumoto(日本岛根大学医学部医学信息学)。
- “冶金学家预测 NBA 球队成功的方法”作者 Peter Tsai。
- “在 Keras 中构建自动编码器”作者Fran ois Chollet在 Keras 博客上。
希望你喜欢阅读,不要犹豫给你的反馈,并在下面留下你的回应。
人工智能加速器产品
加速深度学习推理的英特尔软件和硬件
作者:帕萨·德卡和罗希特·米塔尔
如果你已经关注了我们之前在 medium 上的博客(如下),我们发布了我们如何在制造环境中使用深度学习进行质量检测:
作者:帕萨·德卡和罗希特·米塔尔
towardsdatascience.com](/quality-inspection-in-manufacturing-using-deep-learning-based-computer-vision-daa3f8f74f45)
在这篇博客中,我们将详细介绍各种英特尔软件和硬件人工智能产品。这些产品加速了深度学习推理。
什么是深度学习推理?
一旦我们在强大的 GPU 中通过数小时/数天的训练开发出最佳的深度神经网络模型,我们就必须对该模型进行操作合理化,以实现其核心商业价值。我们用一个计算机视觉用例来举例,假设我们在 GPU 中用 Keras & Tensorflow 训练了一个硬件产品缺陷检测深度神经网络分类器。现在,由于我们已经有了一个训练有素的模型,是时候在生产环境中部署该模型了,生产环境可以是本地服务器、云实例或边缘环境。如果您已经关注了我们之前的博客,这里是我们讨论的抽象用例的推理流程的图示:
我们得到一张新的图像,用经过训练的 CNN ROI 生成器进行 ROI 提取,然后用经过训练的 CNN 缺陷检测器进行缺陷检测。使用 ML 或 DL 模型的推断是生产流水线的一部分,其中实时或批量数据工程流水线处理图像并调用训练好的模型来执行预测。执行推理的 SLA 可以在几秒钟或几毫秒内完成。我们已经体验到,我们使用 Tensorflow keras/pytorch 为我们讨论的用例构建的训练模型需要花费 1 秒多的时间来对序列化的 h5py 格式的单个图像进行推断。标准 CPU 中的 pt 格式。但是我们如何用毫秒来推断呢?
软件加速器—使用 Open Vino 软件优化推理:
英特尔构建了开放式 Vino 工具套件,以优化卷积神经网络模型的推理。Open Vino toolkit 扩展到整个英特尔硬件并最大限度地提高性能:
-在边缘实现基于 CNN 的深度学习推理
-使用通用 API 支持跨计算机视觉加速器(CPU、GPU、英特尔 Movidius Neural Compute Stick 和 FPGA)的异构执行
-通过函数库和预先优化的内核加快上市时间
-包括针对 OpenCV 和 OpenVX*的优化调用
部署的两个步骤:模型优化器和推理引擎
第一步是使用模型优化器将预训练模型转换为 IRs:
- 产生一个有效的中间表示:如果这个主转换工件无效,推理引擎就不能运行。模型优化器的主要职责是生成两个文件来形成中间表示。
- 生成优化的中间表示:预先训练的模型包含对训练很重要的层,例如 dropout 层。这些层在推理过程中没有用,可能会增加推理时间。在许多情况下,这些层可以从生成的中间表示中自动移除。但是,如果一组层可以表示为一个数学运算,因此可以表示为一个层,则模型优化器会识别这种模式并用一个层替换这些层。结果是一个比原始模型层数更少的中间表示。这减少了推断时间。
IR 是描述整个模型的一对文件:
。xml:描述网络拓扑
。bin:包含权重和偏差二进制数据
第二步是使用推理引擎来读取、加载和推理 IR 文件,使用跨 CPU、GPU 或 VPU 硬件的通用 API
请参考下面的开放 Vino 文档,了解 Python API 的概况:
将深度学习网络从训练环境部署到嵌入式平台进行推理是一项复杂的任务…
software.intel.com](https://software.intel.com/en-us/articles/OpenVINO-InferEngine#overview-of-inference-engine-python-api)
请参考下面的流程图和步骤,使用 OpenVino 部署神经网络模型
请按照下面的步骤(代码片段)操作:
步骤 1:以 h5 格式保存训练好的模型
model.save('trained_model.h5')
步骤 2:将训练好的模型转换为 tensorflow pb 格式
(使用 github 回购:https://github.com/amir-abdi/keras_to_tensorflow)
python3 keras_to_tensorflow.py -input_model_file trained_model.h5
第三步:运行模型优化器(Optimizer-C:\ Intel \ open vino \ computer _ vision _ SDK _ 2018 . 3 . 343 \ deployment _ tools \ model _ Optimizer \ mo _ TF . py)
python3 mo_tf.py — input_model <your_model.pb> — input_shape=[1,224,224,3]
步骤 4:预处理图像并运行推理
我们对单个图像的推断基准:
硬件加速器:
英特尔 Movidius:
英特尔 Movidius 是为推断图像的深度神经网络而定制的。它由专为计算机视觉定制的英特尔 Movidius 视觉处理单元提供支持
技术条件
- 处理器:英特尔 m ovidius Myriad X 视觉处理单元(VPU)
- 支持的框架:TensorFlow和 Caffe
- 连接:USB 3.0 Type-A
- 尺寸:2.85 英寸。x 1.06 英寸。x 0.55 英寸。(72.5 毫米 x 27 毫米 x 14 毫米)
- 工作温度:0 摄氏度至 40 摄氏度
- 兼容的操作系统:Ubuntu* 16.04.3 LTS (64 位)、CentOS* 7.4 (64 位)和 Windows 10 (64 位)
请参考下面的视频进行介绍:
请查看英特尔 Movidius github 文档:
英特尔 Movidius 神经计算 SDK 和英特尔 Movidius 神经计算 API 文档概述。
movidius.github.io](https://movidius.github.io/ncsdk/index.html)
英特尔 Movidius 神经计算 SDK(软件开发套件):
命令行工具:英特尔 Movidius 神经计算软件开发套件提供了在开发计算机上评测、调整和编译深度神经网络(DNN)模型的工具
mvNCCompile 是一个命令行工具,它将 Caffe 或 Tensorflow 模型的网络和权重编译成与英特尔 Movidius 神经计算 SDK (NCSDK)和神经计算 API(NCAPI)兼容的英特尔 Movidius 图形
mvNCCompile inception-v1.pb -s 12 -in**=**input -on**=**InceptionV1/Logits/Predictions/Reshape_1 -is 224 224 -o InceptionV1.graph
英特尔 Movidius 神经计算 SDK 附带了一个 Python API,支持通过神经计算设备(如英特尔 Movidius 神经计算棒)利用加速深度神经网络的应用。
Python API:Python API 是作为一个单独的 Python 模块(mvncapi.py)提供的,当安装 NCSDK 时,它位于开发计算机上。它在 Python 2.7 和 3.5 中都可用
Python API 概述:
- 导入 NCAPI 模块
Python NCAPI 位于 mvnc 包内的 mvncapi 模块 9 中
from mvnc import mvncapi
2.安装一个神经计算设备
Device 类表示一个神经计算设备,并提供与该设备通信的方法
#get a list of available device identifiers
device_list = mvncapi.enumerate_devices()
用调用 enumerate_devices()获得的设备标识符之一初始化设备
#Initialize the device and open communication
device.open()
3.为设备设置网络图和相关的 FIFO 队列
NCSDK 需要使用 mvNCCompile NCSDK 工具编译的神经网络图形文件。支持 Tensorflow 和 Caffe 的许多网络模型。
当我们编译完图形后,将图形文件加载到缓冲区
#Load graph file data
GRAPH_FILEPATH = './graph'
with open(GRAPH_FILEPATH, mode='rb') as f:
graph_buffer = f.read()
Graph 类提供了利用网络图的方法。
我们可以用一个名称字符串来初始化这个图。名称字符串可以是我们喜欢的任何东西,直到 mvncapi。MAX_NAME_SIZE 个字符,或者只是一个空字符串。
#Initialize a Graph object
graph = mvncapi.Graph('graph'
图形输入和输出是通过 FIFO(先进先出)队列完成的。 Fifo 类代表了这些队列中的一个,并提供了管理它的方法。
我们应该为我们的图形创建输入和输出 Fifo 队列,并用 Graph.allocate _ with _ fifos 将图形分配给我们的设备。我们可以省略关键字参数来使用默认的 Fifo 设置,或者我们可以根据需要指定其他值。
*# Allocate the graph to the device and create input and output Fifos with default arguments*
input_fifo, output_fifo **=** graph**.**allocate_with_fifos(device, graph_file_buffer)#*# Allocate the graph to the device and create input and output #Fifos with keyword arguments*input_fifo, output_fifo **=** graph**.**allocate_with_fifos(device, graph_file_buffer,
input_fifo_type**=**mvncapi**.**FifoType**.**HOST_WO, input_fifo_data_type**=**mvncapi**.**FifoDataType**.**FP32, input_fifo_num_elem**=**2,
output_fifo_type**=**mvncapi**.**FifoType**.**HOST_RO, output_fifo_data_type**=**mvncapi**.**FifoDataType**.**FP32, output_fifo_num_elem**=**2)
4.获取输入张量
使用 cv2 模块从文件中读取图像并调整其大小以适应您的网络需求
import cv2
*# Read an image from file*
tensor **=** cv2**.**imread('img.jpg')*# Do pre-processing specific to this network model (resizing, #subtracting network means, etc.)*
5.进行推理
我们将使用 graph . queue _ inference _ with _ fifo _ elem()将输入张量写入输入 Fifo,并对其进行排队以便进行推理。当推理完成时,输入张量将从 input_fifo 队列中删除,结果张量将放入 output_fifo 队列中
*# Write the tensor to the input_fifo and queue an inference*
graph**.**queue_inference_with_fifo_elem(input_fifo, output_fifo, tensor, 'user object')
如果输入 Fifo 已满,此方法调用将阻塞,直到有空间写入 Fifo。
推理完成后,我们可以用 Fifo.read_element 得到推理结果。这也将返回我们传递给 Fifo.write_elem()的用户对象
# Get the results from the output queue
output, user_obj = output_fifo.read_elem()
然后,我们可以将输出结果用于我们特定的网络模型
6.打扫
在关闭与设备的通信之前,我们将使用 Graph.destroy()和 Fifo.destroy()来销毁图形和 Fifo 对象,并清理相关的内存。Fifos 在销毁前必须为空。然后使用 Device.close()关闭设备,使用 Device.destroy()销毁设备对象并清理相关内存
#Clean up
input_fifo**.**destroy()
output_fifo**.**destroy()
graph**.**destroy()
device**.**close()
device**.**destroy()
英特尔 FPGA:
FPGAs 是芯片设备,可以针对数据分析、图像推断、加密和压缩等工作负载进行编程。FPGAs 支持提供处理速度更快、能效更高、延迟更低的服务,从而在数据中心的电力、空间和冷却限制内最大限度地提高计算能力。
英特尔 FPGAs 的优势
- **易于部署—**英特尔可编程加速卡(英特尔 PAC)在一个基于 PCIe 的卡中提供了一个英特尔 FPGA,可在多家领先原始设备制造商的经验证服务器上使用。面向英特尔至强处理器和 FPGA 的英特尔加速堆栈大大降低了 FPGA 编程的复杂性
- **标准化—**采用 FPGA 的英特尔至强处理器定义了标准化接口,FPGA 开发人员和开发与运营团队可以使用这些接口热插拔加速器,并实现应用的可移植性。
- 加速器解决方案 —由英特尔和第三方技术专家开发的加速器解决方案组合,旨在加快应用开发和部署。可从流分析、图像推断等领域受益于 FPGA 加速的应用。
支持 FPGA 的 OpenVino 图像推断:
步骤 1:配置 FPGA 板:硬件
在进入软件配置之前,必须进行一些硬件方面的设置。我们需要遵循以下说明:
[## AN 807:为面向 OpenCL 的英特尔 FPGA SDK 配置英特尔 Arria 10 GX FPGA 开发套件
在使用英特尔 Arria 10 GX FPGA 开发套件之前,您必须完成本文档中的说明…
www.intel.com](https://www.intel.com/content/www/us/en/programmable/documentation/tgy1490191698959.html)
确保我们有 Jtag 连接(通过微型 USB)和 PCIe 连接。
步骤 2:配置 FPGA 板:软件
请遵循以下链接中的说明:
[## 安装支持 FPGA 的英特尔 OpenVINO toolkit for Linux 发行版
注意:-英特尔发布的 open vino toolkit 以前被称为英特尔计算机视觉 SDK。这些…
software.intel.com](https://software.intel.com/en-us/articles/OpenVINO-Install-Linux-FPGA)
2.1 初始化英特尔 Arria 10 GX 以用于 Open CL
必须用 OpenCL 映像正确初始化该板,以便它可以与 OpenCL 一起使用。请遵循以下链接中“初始化用于 OpenCL 的英特尔 Arria 10 GX FPGA 开发套件”的说明:
[## AN 807:为面向 OpenCL 的英特尔 FPGA SDK 配置英特尔 Arria 10 GX FPGA 开发套件
在使用英特尔 Arria 10 GX FPGA 开发套件之前,您必须完成本文档中的说明…
www.intel.com](https://www.intel.com/content/www/us/en/programmable/documentation/tgy1490191698959.html)
2.2 安装 OpenCL 运行时驱动程序
OpenCL 运行时驱动程序(OpenCL 的 FPGA RTE)随 OpenVINO 安装一起提供,因此我们需要确保首先安装 OpenVINO。遵循以下链接的“安装 OpenCL 运行时环境”一节中的说明
[## 安装支持 FPGA 的英特尔 OpenVINO toolkit for Linux 发行版
注意:-英特尔发布的 open vino toolkit 以前被称为英特尔计算机视觉 SDK。这些…
software.intel.com](https://software.intel.com/en-us/articles/OpenVINO-Install-Linux-FPGA)
2.3 带有 OpenVINO 提供的 bitsream 的程序板
完成上述所有步骤后,我们需要用一个与特定 CNN 拓扑结构相关的比特流对电路板进行编程
我们编程的比特流应该对应于我们想要部署的拓扑。根据我们选择的位流数量,每种 FPGA 卡类型可能有不同的文件夹,这些文件夹将在 OpenVINO 包中下载。对于英特尔 Arria 10GX DevKit FPGA,预训练的比特流在
/opt/intel/computer_vision_sdk/bitstreams/a10_devkit_bitstreams
对于采用英特尔 Arria 10 FPGA 的英特尔视觉加速器设计,预训练的双流位于/opt/intel/computer_vision_sdk/bitstreams/a10_vision_design_bitstreams
请按照以下步骤编程比特流:
- 重新运行环境设置脚本。
source /home/<user>/Downloads/fpga_support_files/setup_env.s
2.切换到主目录
cd /home/<user>
3.我们需要根据手中的卡来选择选项
- 为英特尔 Arria 10 FPGA 开发套件编写比特流
aocl program acl0 /opt/intel/computer_vision_sdk/a10_devkit_bitstreams/2-0-1_A10DK_FP11_SqueezeNet.aocx
- 利用英特尔 Arria 10 FPGA 为英特尔视觉加速器设计编写比特流
aocl program acl0 /opt/intel/computer_vision_sdk/bitstreams/a10_vision_design_bitstreams/4-0_PL1_FP11_SqueezeNet.aocx
步骤 3:为 FPGA 建立神经网络模型
请按照以下步骤创建用于推理的 FP16 模型:
- 为 FP16 SqueezeNet 型号创建一个目录:
mkdir /home/<user>/squeezenet1.1_FP16
2.前往/home/ /squeezenet1.1_FP16:
cd /home/<user>/squeezenet1.1_FP16
3.使用模型优化器将 FP16 Squeezenet Caffe 模型转换为优化的中间表示(IR):
python3 /opt/intel/computer_vision_sdk/deployment_tools/model_optimizer/mo.py --input_model /home/<user>/openvino_models/FP32/classification/squeezenet/1.1/caffe/squeezenet1.1.caffemodel --data_type FP16 --output_dir .
4.squeezenet1.1.labels 文件包含 ImageNet 使用的类。包含该文件是为了使推理结果显示文本而不是分类号。将 squeezenet1.1.labels 复制到优化的模型位置
cp /home/<user>/openvino_models/ir/squeezenet1.1/FP32/squeezenet1.1.labels .
5.将示例图像复制到发布目录。您将在优化的模型中使用它
sudo cp /opt/intel/computer_vision_sdk/deployment_tools/demo/car.png ~/inference_engine_samples/intel64/Release
步骤 4:运行一个示例应用程序
- 转到示例目录
cd /home/<user>/inference_engine_samples/intel64/Release
2.使用推理引擎示例在 CPU 上运行示例应用程序:
./classification_sample -i car.png -m ~/openvino_models/ir/squeezenet1.1/FP32/squeezenet1.1.xml
请注意以每秒帧数(FPS)为单位的 CPU 吞吐量。这告诉我们推断在硬件上完成得有多快。现在让我们使用 FPGA 来运行推理。
./classification_sample -i car.png -m ~/squeezenet1.1_FP16/squeezenet1.1.xml -d HETERO:FPGA,CPU
我们对单个图像的推断基准:
结论:
在这篇博客中,我们详细讨论了各种英特尔软件和硬件,以优化基于计算机视觉的深度神经网络的推理。我们还详细讨论了它们的用法以及如何设置它们。我们还用我们的样本用例对我们的结果进行了基准测试。如果你喜欢我们的博客,请点击拍手按钮,并请继续关注我们未来的博客,因为我们会定期贡献关于机器学习和深度学习的博客。
来源:
https://software . Intel . com/en-us/articles/open vino-Install-Linux-FPGA
https://www . Intel . com/content/www/us/en/programmable/solutions/acceleration-hub/overview . html
【https://www.movidius.com/
https://software.intel.com/en-us/openvino-toolkit
艾:几乎不死
Photo by Angely Acevedo on Unsplash
医疗保健的人工智能革命正在改变我们对年龄相关疾病的看法,甚至是衰老本身
我们正处于一场流行病之中。不管你的家族史、种族或地理位置如何,有一种疾病会降临到我们每一个人身上。你可以躲在西伯利亚的山里,但是疾病仍然会传染给你,因为它不具有传染性。它一直伴随着人类,并将在可预见的未来继续下去,尽管我们最近试图阻止它。
这种疾病叫做衰老。
认为衰老是一种疾病是违反直觉的,因为我们把它等同于时间不可避免的冲击,但科学界有越来越多的人认为这两个概念是可分的。事实上,年龄是如此的可分,以至于有一天它可能真的只是一个数字。据 英国《卫报》 报道,35 个发达国家中,2030 年后出生的女性预期寿命最高为 90 岁以上,比 2010 年出生的女性增加了 6.6 岁。[1]
事实上,根据马克斯·普朗克人口研究所主任、杜克大学教授詹姆斯·沃佩尔的说法,“160 年来,最佳表现的预期寿命稳步增长了四分之一年。”[2]有人可能会说,事实也的确如此,我们正稳步达到一个最大年龄范围;然而,沃佩尔反驳道,“如果预期寿命接近最大值,那么预期寿命的增长速度应该会放缓。不是的。”[3]
人类可以解决衰老的想法听起来荒谬而自大。忽略生命意义的决定因素这一存在性问题,没有一个明确的终点,死亡已经成为人类经验中普遍存在的一种隐约可见的必然——唯一的必然。
Photo by Andres Urena on Unsplash
不管这看起来有多荒谬,最大的科技公司正在加入结束衰老的竞赛。谷歌的 Calico 实验室成立于 2013 年,是一项旨在解决年龄相关疾病和延长人类寿命的登月计划。但是谷歌并不孤单。苹果也将消费者医疗保健作为重点关注的领域。苹果公司首席执行官蒂姆·库克在接受美国消费者新闻与商业频道采访时表示,
“如果你放眼未来,回首过去,你会问这样一个问题,‘苹果对人类最大的贡献是什么,这将是关于健康的。" [4]
事实上,医学领域似乎正在成为可量化数据的宝库。研究人员感兴趣的不仅仅是健康记录、家族史和验血,还有生命本身的密码——DNA。普利策奖获得者、作家兼生物学家悉达多·慕克吉(Siddhartha Mukherjee)解释道:对生命中最微小部分——我们的基因——的研究与计算机科学领域的融合是多么恰当,这个领域因对由 1 和 0 组成的比特的理解和操作而发生了革命性的变化。
随着我们逐渐了解我们的个人信息,数据是无价的,特别是因为它是可以收集更深层次知识的信息。如果在互联网上买卖我们的浏览数据产生了数十亿美元的产业,那么隐藏在我们基因组数据中的秘密又有多少价值呢?需要说明的是,我在这里并不是在谈论一个个体基因组的货币价值(无论这种想法如何),而是对数百万个基因组及其伴随的物理表达进行大规模统计分析所能获得的洞察力财富。
Photo by Taylor Vick on Unsplash
每个行业都朝着以数据为中心的方法发展,这必然会挤入医疗领域。根据*《时代》杂志*、、【谷歌大战死亡】、、“医学正在成为一门信息科学”。[5]有了这些信息,像谷歌这样的公司自然会把“信息视为一种商品,一种可以用工业效率开采和处理的实用资源”,[6]定位于利用所有这些宝贵的数据。
尽管尼古拉斯·卡尔,一位研究技术对现代社会影响的著名作家,在他的文章中对外包人类思维的后果持否定态度,“谷歌是不是在让我们变得愚蠢?”他准确地指出了谷歌对医药领域感兴趣的原因。作为“一家从根本上讲是科学的企业,谷歌的动力来自于使用技术的愿望,用埃里克·施密特的话来说就是‘解决以前从未解决过的问题’。”[7]最难解决的问题之一是衰老,或者至少是与年龄有关的疾病,许多医学专家认为,解决办法在于人工智能和基因组学的结合。卡尔本人在一次演讲中引用了谷歌联合创始人拉里·佩奇的话,他说“致力于搜索是致力于人工智能的一种方式”。
为人工智能解决问题不是为了实现它而实现的目标,而是为了将其应用于人类面临的更广泛、更广泛的问题,这些问题是人类独自没有能力解决的。
人工智能正在改变所有行业中卡尔所谓的“知识工作”的格局,医疗保健也不例外。然而,在对卡尔的回应中,著名的未来学家贾迈斯·卡斯西欧将这一转变描绘为“我们如何管理和适应我们创造的海量知识”的必要演变。[8]就基因组而言,所创造的知识是储存在数百万个序列中的大量信息及其相应的统计意义——这些信息正是我们自身的组成部分。
Photo by Amelie Ohlrogge on Unsplash
卡斯西欧继续做了一个有先见之明的声明,告诉我们“人类不会被排除在循环之外——事实上,更多的人将有能力做一些曾经仅限于封闭的神职人员的事情”。这在医学研究中已被证明是正确的。药物发现研究员德瑞克·洛夫、告诉《纽约时报》,
“不是机器将取代化学家,而是使用机器的化学家将取代不使用机器的化学家”。[9]
技术可能不会赋予我们永生,但人类和机器智能日益增长的相互依赖性将引领我们进入一个快速医学进步的新世界——一个更实惠、更个性化、更安全的预防性保健的未来,我们的寿命和健康寿命都将大幅增加。
医学研究人员长期以来一直试图破译人类基因组。2003 年,第一个完整的人类基因组测序完成,耗时 10 年,耗资 30 亿美元。正如斯坦福大学遗传学和计算机科学助理教授 Anshul Kundaje 在他 2016 年关于“人工智能的未来”的演讲中指出的,“今天我们可以在几天内完成基因组测序,费用不到 2000 美元”。[10]
成本的快速降低创造了基因组数据的爆炸式增长——机器学习算法可以根据这些数据获得洞察力。这种见解有可能挽救患者的生命,因为他们的基因信息可以帮助医生为个体开出最有效的药物,同时将副作用降至最低。然而,仅仅解码基因组不足以像许多人希望的那样推进医学发展;研究人员必须了解代码片段是如何表达的,以便有意义地利用 2 万个基因的序列。
Photo by Daniel Christie on Unsplash
Kundaje 解释说,他的团队获得了原始数据,应用了机器学习模型,并能够分配“基因组的某种综合功能注释”。通过这样做,他的团队确定了解决阿尔茨海默氏症的潜在目标。阿尔茨海默氏症是一种可遗传的疾病,是许多基因治疗努力的目标,其作用机制长期以来一直没有得到传统治疗。
当开发有效的疗法时,知道在哪里寻找和预测药物将如何表现为药物研究人员提供了巨大的优势。直接编辑或关闭与疾病相关的基因组片段的能力在基因组学领域引起了很大的兴奋。一个名为 CRISPR-Cas9 的系统受到了很多关注,“因为它比其他现有的基因组编辑方法更快、更便宜、更准确、更高效”。[11]然而,精确编辑基因的能力对于没有目标的研究人员来说毫无用处。像 Kundaje 的项目可以帮助获得这些基因目标。
虽然 DNA 是核心,但它不是疾病背后的全部。DNA 指导蛋白质(利用 RNA 作为中介转录和翻译指令),蛋白质按照指导执行。但是,在这个过程中,“它们可能会纠缠在一起……导致糖尿病、帕金森氏症和老年痴呆症等疾病”。[12]由于这个原因,预测蛋白质的形状对于理解其功能至关重要——这是一项历史上极其困难的任务。
2011 年,研究人员众包了这件事,求助于游戏玩家来帮助找到蛋白质折叠问题的解决方案。在三周内,游戏玩家和研究人员的共同努力导致了“解决对艾滋病病毒繁殖至关重要的蛋白质狙击酶结构的关键见解”——这是一项困扰了科学家十年的壮举。[13] 根据当时《科学美国人》 的说法,“当复杂的问题需要直觉和敏锐的洞察力而不是野蛮的计算时,人类仍然比计算机占有优势”。
Protein Folding from Wikimedia Commons
显然,这种优势没有持续到这个十年的剩余时间。谷歌的 AlphaFold 是一种基于上述 Foldit 游戏训练的深度学习算法,在蛋白质折叠挑战中以巨大优势击败了 98 名竞争对手。“预测 43 个蛋白质中的 25 个蛋白质的最精确结构,相比之下,第二组的 43 个蛋白质中只有 3 个”。[14]也许更重要的是,该程序从花数周时间提供预测发展到在几个小时内就能做到。随着更多的数据和更多的实践,人工智能已经证明它将获得准确性和效率。
对蛋白质折叠的深入了解使研究人员不仅可以窥视遗传性疾病的功能,还可以研究如何开发治疗这些疾病的药物。据《纽约时报》报道,“如果科学家能够预测蛋白质的形状,他们就能更好地确定其他分子将如何‘结合’它”。像 AlphaFold 这样的工具越来越普及,可以大大减少开发治疗以前无法治愈的疾病所需的时间和金钱。
尽管 AlphaFold 的戏剧性胜利标志着人工智能在生化研究中的重要性日益增加,但并不是所有人都相信机器和开发它们的人能够提供所有答案。正如华盛顿大学蛋白质设计研究所所长大卫·贝克博士向《纽约时报》表达的那样:“创造蛋白质比正在探索的‘折叠’方法更重要,”他认为 AlphaFold 不适合完成这项任务。
正如之前对人工智能解决问题能力的质疑一样,时间会证明一切。
IBM Watson from Wikimedia Commons
机器学习及其在医学中的应用不仅限于计算基因组学或蛋白质折叠。2016 年,IBM 的人工智能机器 Watson 做了医生做不到的事情。在 10 分钟内,沃森分析了2000 万份与癌症相关的研究论文,并给出了正确的诊断——这是东京大学的医生在治疗他们 60 岁病人的几个月中未能完成的壮举。[15]与 AlphaFold 类似,Watson 也提高了准确性和效率,IBM 声称在 2011 年至 2013 年间性能提高了 240%。
正如我们在沃森和谷歌 DeepMind 的例子之间看到的那样,这些人工智能系统在分析和比较大量数据的情况下表现更好。除了开发这些深度学习算法,收集和提供尽可能多的健康数据也同样重要。
根据国家衰老研究所的说法,来自健康和高危患者的基因信息越多,“研究人员就有越多的线索来发现额外的风险因素基因”。Kundaje 在他的演讲中还提到,机器学习算法必须输入个人和大规模的基因组数据以及健康记录,才能有效地识别我们基因组成中的比特位和这些比特位中的错误可能导致的疾病之间的统计显著相关性。
令人欣慰的是,各机构正在共同努力,让研究人员能够轻松获取这些数据。ENCODE(DNA 元素百科全书)项目是一个公共研究联盟,其研究数据库可以免费访问。与此同时,哈佛在 2005 年启动了个人基因组计划,这是一个自愿的项目,参与者提供他们的生物样本用于基因研究。希望健康信息的广泛可用性和不断增长的数据库,以及健康记录的集成数字化,将推动人工智能的进步,如 IBM 的沃森和谷歌的 DeepMind。
有了这些数据,机器学习将成为医生和药物研究人员的关键合作伙伴,正如 Kundaje 所声称的那样,“将这些数据转化为基本的预测性预测、诊断、更小的药物靶点和最佳治疗策略”。
尽管尚未超越其技术障碍,但人工智能将引领我们进入一个医学进步的新时代,使个体治疗更加个性化和有效,并从根本上破坏患者与提供者的关系,不是通过取代医疗提供者,而是通过增加他们的专业知识,让他们更有效地治疗患者。随着人工智能在医疗保健领域的出现,研究人员将有权分析他们以前从未能够分析的数据,利用我们存在的代码 DNA 来了解是什么让我们健康和完整,最终使个性化医疗成为现实,有可能解决最普遍的疾病-衰老。
感谢您花时间阅读这篇文章。我是哥伦比亚大学大三学生,学习计算机科学&数学,旨在利用机器学习的力量来改善人类健康和延长寿命。
参考
[1] B. Sarah,“未来几十年预期寿命预测将超过 90 岁”,《卫报》* (2017 年),www . The Guardian . com/society/2017/feb/21/南朝鲜-妇女-预期寿命-超过 90 岁-2020-研究*
[2] J. Oeppen 和 J. Vaupel,“人口统计:提高:打破预期寿命的限制”(2002 年),科学,第 296 卷,第 5570 期,第 1029-1031 页,https://science.sciencemag.org/content/296/5570/1029
[3]同上。
[4] T .库克,《美国消费者新闻与商业频道对蒂姆·库克的采访》美国消费者新闻与商业频道 (2019),www . CNBC . com/video/2019/01/02/apple-Tim-cook-revenue-stocks . html
[5] H .格罗斯曼,《谷歌大战死神》,时间 (2013),content . Time . com/Time/subscriber/article/0,33009,2152422–1,00.html
[6] N .卡尔,“谷歌正在让我们变得愚蠢吗?”、大西洋 (2018)、www . thealantic . com/magazine/archive/2008/07/is-Google-making-us-study/306868
7 同上
[8] J .卡斯西欧,《变得更聪明》,《大西洋月刊》(* 2014),www . theatlantic . com/magazine/archive/2009/07/Get-Smarter/307548/*
[9] C. Metz,“用一剂人工智能制造新药”,《纽约时报》(* 2019),www . nytimes . com/2019/02/05/technology/Artificial-Intelligence-drug-research-deep mind . html*
[10] A. Kundaje,《Anshul Kundaje:机器学习解码基因组》,《人工智能的未来》(2019 年),【www.youtube.com/watch?v=lX76DzZdjvQ】T4
[11]“什么是基因组编辑和 CRISPR-Cas9?—遗传学家庭参考— NIH”,美国国家医学图书馆,https://ghr . NLM . NIH . gov/primer/genomic research/genome editing
[12]一、样本,“谷歌的 DeepMind 预测蛋白质的 3D 形状”The Guardian(2018)www . The Guardian . com/science/2018/dec/02/Google-deep minds-ai-program-alpha fold-Predicts-3D-Shapes-of-Proteins
[13] M. Coren,“Foldit Gamers 在 3 周内解开 HIV 酶之谜”,科学美国人( 2011),www . Scientific American . com/article/Foldit-Gamers-Solve-Riddle
[14]一、样本,“谷歌的 DeepMind 预测蛋白质的 3D 形状”The Guardian(2018)www . The Guardian . com/science/2018/dec/02/Google-deep minds-ai-program-alpha fold-Predicts-3D-Shapes-of-Proteins
[15] A. Ng,“IBM 的沃森在医生被难倒数月后为日本白血病患者做出正确诊断”,《纽约每日新闻》(2018 年),www . nydaily News . com/News/world/IBM-Watson-Proper-Diagnosis-Doctors-Stumped-article-1.2741857
人工智能和集体行动
Photo by @pkmfaris
通过 OpenAI 的一篇研究论文迈向更负责任的人工智能发展
7 月 10 日 OpenAI 的团队成员发布了一篇关于 arXiv 的论文,名为 合作在负责任的 AI 开发中的作用 作者 阿曼达·阿斯克尔 ,迈尔斯·布伦戴奇 吉莉安·哈德菲尔德 。文章中的一个主要陈述如下:*“人工智能公司之间的竞争可能会通过增加它们更快发展的激励来减少每个公司负责任发展的激励。因此,如果人工智能公司更喜欢开发风险水平更接近社会最优的人工智能系统——我们相信许多人都这样做——负责任的人工智能开发可以被视为一个集体行动问题”*因此,建议我们如何处理这个问题?
负责任的 AI 开发?
人工智能在健康和福利领域的应用越来越多。
在短期内,有害的情况已经发生,例如:
- 从大数据集学到的偏见扭曲了信贷市场的决策。
- 扭曲刑事司法系统决策的历史数据和算法。
- 面部识别技术打破了人们对隐私和自主权的既定期望。
- 一些汽车中的自动驾驶功能导致了新类型的驾驶风险(同时降低了其他风险)。
更长期、更大规模的场景包括以下危险:
- 涉及自主武器系统的军事冲突意外升级。
- 大范围的失业。
- 对政治和社会机构的威胁。
负责任的人工智能开发被描述为降低风险,在这种情况下:安全,保障,以及与人工智能系统相关的结构性风险。
代价高昂的错误还是代价高昂的责任?
文章中说,如果优先考虑速度而不是安全的进度,人工智能投资的方向可能会出现混乱:“如果投入的额外资源可以用于更快地开发约束更少的人工智能系统,我们应该预计负责任的人工智能开发比轻率的人工智能开发需要更多的时间和金钱。”因此,他们提出了一个关于风险视角的重要问题<>而不是经常提出的竞争力问题。也许努力工作的态度对规模有害?
“这意味着,如果率先开发和部署特定类型的人工智能系统的价值很高,负责任的开发对公司来说成本特别高。”
然而,这里讨论的成本与可能的财务收益有关,从某种意义上说是“失去”机会。
- 先发优势的潜在损失。
- 性能成本
- 收入损失
这是因为没有以安全、安保或影响评估为由构建某些*‘有利可图的人工智能系统’*。关于种族的讨论假设他们有一个明确的终点,这被描述为一个“永久的 R & D 种族”。
责任的好处
令人欣慰的是,OpenAI 似乎确实概述了这些责任的负面影响,以继续向好的方面发展。如果消费者对更安全的产品有偏好,并对这种偏好做出理性反应,他们就不会购买安全性不足的产品。
这是一个平衡游戏,或者说是企业对负面影响的权衡。*“安全失败对非消费者造成的伤害是负外部性,而更安全的产品对非消费者产生的利益是正外部性。”*这种困境正在开发产品的公司中出现,如果没有消费者的惩罚或关注,可能很难让公司承担责任。
然而,并不是所有的工人或业主都忽视责任,据说最近技术工人的行动(抗议等)已经证明了这一点。).
这可能并不容易,原因如下
负责任必须有更强的激励。根据 OpenAI,市场力量、责任法和行业或政府监管可能还不够,他们用令人信服的论据概述了原因。
“随着尖端人工智能系统变得越来越复杂,没有参与这些系统开发的消费者将很难获得关于这些系统安全性的准确信息。”
众所周知,要解释一个特定系统的决策是非常困难的。在这方面,“等着瞧”的策略可能是有害的,尤其是当这些算法被大规模实施时,对消费者而言。我以前写过关于“跟踪并告诉”的文章,这是科技公司中另一种常见的做法——首先跟踪一个数据点,然后告诉消费者,因此这两方面似乎都没有什么责任。
如果监管机构无法评估给定人工智能系统的风险,他们在使用监管控制时可能会过于严格或过于自由
伤害更有可能伤害:“…那些被指控犯罪的人,而不是那些购买工具的人”OpenAI 的研究人员列出了我想传达的关于伤害的几点:
- 减少对网上资源的信任。
- 对公司或保险公司来说太大的伤害以至于不能覆盖所有的损失。
- 人工智能系统可能会给未来几代人带来负面的外部性,而这些人无法惩罚企业或阻止它们发生
我对最后一点特别感兴趣,因为在开发人工智能解决方案/应用程序或研究人工智能领域的社区中,缺乏对气候变化或气候危机的讨论。作为一个例子,气候变化在这篇论文中一次也没有提到,这让我感到惊讶——尽管这篇论文写得多么透彻,但这应该是完全没有提到的一个明显的点。在为 OpenAI 辩护时,“可持续发展”一词被提到过一次,并且鼓励在人工智能方面进行合作以实现良好的倡议。
他们会问这样的问题:*“…为什么在缩短上市时间很有价值的其他行业(如制药业)中,竞相降低产品安全性的做法并不普遍”*然而,这种说法是完全错误的。喜剧演员约翰·奥利弗举的一个明显的例子是阿片类。在这种情况下,某些首席执行官还吹嘘他们能多快获得药物批准。2018 年FDA 批准的数量创下纪录,麦肯锡提到关于率先上市的讨论已经进行了很长时间。制药行业也出现了逐底竞争,但问题是,在人工智能领域,或许需要更好的监管。
另外还提到:“公司之间的集体行动问题可以对消费者和公众产生积极影响。价格战是公司之间的集体行动问题,例如,它对消费者产生积极影响,因为它导致价格下降。”这否定了这样一个事实:价格战对生产商的影响要大得多,人们确实被解雇了——一些最穷的工厂工人或农场工人确实被解雇了。它有非常负面的影响,我不认为“大部分是正面的”会是这种意义上的特征,它忽略了对劳动力的关注。
本文中有一些尝试来玩我们的合作-缺陷游戏的场景,然而,正如他们所说的,他们的分析的一个缺点是,它吸引了过度简化的合作和缺陷的概念。他们认为:*“为了“解决”一个集体行动问题,我们可以尝试将其转化为一种相互合作是合理的情况。”*然而,这假定了经济理性或理性的人类行为者,而通常情况并非如此。
我可以探究非理性或缺乏理性的论点,诺贝尔奖获得者丹尼尔·卡内曼或其他人批评经济人或理性人的神话被夸大了。我推荐他的讲座有限理性地图。
如何改善合作?
概述了五个因素,以使人工智能公司在面临集体行动问题时更有可能进行合作:
- 更加相信别人会合作。
- 赋予相互合作更高的期望值。
- 将较低的预期成本分配给未完成的合作。
- 将较低的期望值赋予非往复式合作。
- 给相互背叛赋予一个较低的期望值。
他们确实表示自己的观点不足,并强调:
“……有必要将这些因素转化为各行为者能够实施的具体政策战略,以改善合作前景。”
作者反对在人工智能开发中使用敌对的修辞。另一种可能是加入研究,考虑到 DeepMind 最近发布的基于 OpenAI frontline 和谷歌多巴胺的套件,这似乎是 OpenAI 正在采取的一种方法。*“人工智能领域积极而明确的研究合作,尤其是跨机构和跨国界的合作,目前在数量、规模和范围上都相当有限。”*他们概述了一些合作的可能性:
需要考虑的领域可能包括
- 共同研究人工智能系统能力的形式化验证以及广泛应用的人工智能安全保障的其他方面;
- 各种应用的“人工智能为善”项目,其结果可能有广泛和很大程度上积极的应用(例如在可持续性和健康等领域);
- 协调特定基准的使用;
- 联合创建和共享有助于安全性研究的数据集;
- 共同制定应对全球人工智能相关威胁的对策,如在线合成媒体生成的误用。
本文呼吁开放,但也要考虑影响,不要什么都开放。“完全透明作为一个追求的理想是有问题的,因为对于在所有情况下实现问责制来说,它既不必要也不充分”
我们可以激励良好的行为
OpenAI 论文中提到了一系列可能的激励措施,具体如下:
- 社会激励(例如,评价或批评与人工智能开发相关的某些行为)可以影响不同公司对风险和机遇的看法。
- 经济激励(由政府、慈善家、行业或消费者行为引发)可以增加高价值人工智能系统在特定市场或更普遍市场中的份额,并增加对特定规范的关注。
- 法律激励(即禁止某些形式的人工智能开发,并处以经济或更严厉的惩罚)可以大幅减少一些行为者以某些方式叛逃的诱惑。
- 与人工智能特别相关的特定领域激励(例如,早期获得最新一代的计算能力)可用于鼓励某些形式的行为。
本文引发的问题
作者概述了一系列需要进一步探讨的问题。逐字列出如下:
- 人工智能行业发展的竞争动态与政府主导或政府支持的人工智能发展有何不同?
- 法律机构、政府和标准化机构在解决公司之间的集体诉讼问题时,特别是当这些集体诉讼问题可能在国际公司之间出现时,应该扮演什么样的角色?
- 可以发现或构建哪些进一步的策略来帮助防止负责任的人工智能开发的集体行动问题的形成,并在这些问题出现时帮助解决这些问题?我们能从历史或当代工业中吸取什么教训?
- 特定的技术发展或对此类发展的预期会如何影响竞争态势?
最终反射
我很高兴 OpenAI 提出了这些问题,尽管一些关于某些理论思想的批判性想法正在进行中,但总体而言,这可以说是一个非常重要的举措,推动该领域朝着更负责任地使用技术的方向发展。这是 OpenAI 被要求承担的额外角色,以确保人类从这一技术变革中受益。我当然会鼓励你不要相信我的观点,通过阅读原文来补充你自己的观点。否则,我希望这是有用的,并确保给我留下任何想法,你应该想到的东西。
这是#500daysofAI 每天写人工智能的第 79 天。
人工智能和颠覆性创新
Source: Alaa Khamis
人工智能与全球经济
人工智能将对全球经济产生重大影响。据估计,2019 年全球预测分析软件的市场规模将超过 65 亿美元,高级驾驶辅助系统的全球市场规模将在 2019 年达到 180 亿美元,而 2012 年为 56 亿美元,企业、消费者和医疗保健领域的全球语音识别市场将在 2017 年达到 1130 亿美元,而 2012 年为 530 亿美元,自然语言处理市场预计将在 2018 年超过 99 亿美元,而 2018 年为 38 亿美元这些预测和基于人工智能的产品和服务的巨大财务成功鼓励了许多风险资本家投资机器智能领域。这导致人工智能初创公司在自然语言处理、预测分析和深度学习等领域获得的资金大幅增加,这些领域使用了大量可用的大数据,因为世界上 90%的数据是在过去两年中产生的,而且这些数据中的大部分都是数字化的。6.6 万亿美元的生产率增长加上 9.1 万亿美元的更大消费者需求,到 2030 年,由于人工智能,全球 GDP 将增加 15.7 万亿美元的附加值 FastCompany 。这些成功故事的共同点是颠覆性创新。
人工智能作为颠覆性创新的推动者
人工智能是颠覆性创新的关键推动者,这种创新导致改变游戏规则的产品和服务能够服务于低端或未得到服务的消费者,并迁移到主流市场。这项技术是我们目前目睹的颠覆性创新背后的驱动力。例如,人工智能使共享经济成为一种新的商业模式,个人可以将自己的资产作为服务与他人分享,以更好地利用这些资产并创造利润。该模型已成功应用于不同领域,如拼车、智能快速原型、智能电网、住宿等。根据创新者的困境,持续创新旨在满足客户当前的需求,根据客户的反馈提高产品性能,减少缺陷,使产品更快更强大。另一方面,破坏性创新满足了客户的未来需求,可能会在一些关键功能上提供较低的性能,但会创造出一些受市场重视的独特功能。
Source: Alaa Khamis
大英百科全书和维基百科分别是持续创新和破坏性创新的例子。《大英百科全书》提供了一部可靠的英语百科全书,而维基百科的可靠性经常受到质疑。然而,维基百科是一个免费的多语言百科全书,每个人都可以访问。这同样适用于昂贵的导航系统和谷歌/苹果地图中的导航功能。与谷歌/苹果地图相比,前者更可靠,不依赖于网络覆盖,但更昂贵,并且不提供实时交通更新。
卡诺模型
Kano 模型是理解客户对新产品和服务需求的一种富有洞察力的方式。破坏性创新位于吸引质量和期望质量之间的区域,而持续创新位于期望质量和期望质量之间的区域。随着顾客期望的变化,有吸引力的特征变成了预期的特征。例如,电动车窗、电动座椅、可调方向盘、巡航控制等汽车功能正从理想功能转变为预期功能。其他功能,如车道保持辅助、自适应巡航控制、盲点检测和预测,正在从吸引人的功能转变为理想的功能。虽然像超级巡航和自动驾驶这样的功能对许多客户来说仍然很有吸引力。
Source: Alaa Khamis
如果产品/服务不能反映不断变化的客户期望,客户可能会放弃该产品/服务,转而使用另一种具有更具吸引力功能的产品/服务。许多基于持续创新的公司倒闭了,如 Borders、Blockbuster、Kodak 和 Columbia,取而代之的是采用人工智能和颠覆性创新的软件公司,如亚马逊、Netflex、flicker 和 Apple Music。现在,谷歌是最大的营销平台。亚马逊是最大的书商,Skype 是增长最快的电信公司,LinkedIn 是增长最快的招聘公司,iTunes 和 Spotify 是增长最快的娱乐公司,Airbnb 是世界上最大的住宿提供商,尽管它没有任何房地产。此外,比特币是世界上最大的无现金银行,优步是世界上最大的无车辆出租车公司,脸书是世界上最受欢迎的无内容媒体所有者,阿里巴巴是世界上最有价值的无库存零售商。
是时候在别人之前扰乱你的生意了。扰乱或灭亡!
传统的 IT 治理必须针对企业 AI/ML 进行再造
企业中的 AI/ML 必须不断发展,以确保必要的可再现性和可追溯性。这里有一些实用的步骤来解决这个问题。
Photo by Dana Vollenweider on Unsplash
如今,常见的是,公司 It 以治理传统应用交付的方式治理 AI/ML 交付过程。不幸的是,这导致 AI/ML 生命周期被相同的官僚流程、手动活动和移交所阻碍,从而加重了常规应用交付生命周期的负担。
对于延迟和较长的交付周期可能会产生微小影响的公司应用程序来说,这是可以容忍的。然而,这对于要求速度、敏捷性和响应性的下一代支持 AI/ML 的应用来说是不可接受的。显然,公司的 IT 治理必须重新设计以适应 AI/ML 的需求。
AI/ML 治理驱动可再现性、可追溯性和可验证性
AI/ML 治理的目标是确保提供证据,证明一个模型及其交付过程能够生成可重复、可追踪和可验证的结果。
显然,这在很多方面都是有益的:首先,在一些行业中,可追溯性是强制性的。以我们有丰富经验的银行业为例,监管监督非常重要,并对人工智能/洗钱交付流程实施控制。例如,模型风险管理对分析过程提出了严格的要求,以便 AI/ML 模型按预期工作。在美国,这是通过诸如SR 11–7之类的法规来解决的,而在加拿大,这是通过企业范围模型风险管理指南(E-23) 来解决的。
然而,从医疗保健和生物技术到政府安全的许多其他行业都有类似的监管需求。AI/ML 治理推动了解决模型可追溯性需求所需的能力。
第二,客户和公司现在要求模型提供符合道德和不带偏见的可验证的结果。不幸的是,人工智能/人工智能模型的结果是由输入其中的数据和创建它们的人的未知偏见所驱动的,这可能导致基于种族、民族、性别或政治偏见的隐含决策。
识别、理解、验证和提供结果的证据是 AI/ML 治理的核心原则,并且必须成为 AI/ML 模型有效性的核心决定因素。
最后,企业认识到快速交付结果需要可重复的 AI/ML DEVOPS 流程。今天,数据科学家遵循的流程在许多方面反映了传统的科学流程,因为他们使用了一个高度迭代和实验的流程。
然而,依靠传统科学方法的公司,经过几十年的实践,已经有了一个成熟的、可重复的过程来证明结果并将产品推向市场。另一方面,数据科学家没有成熟的流程。AI/ML 治理提供了创建可复制和可重复的模型结果的动力和机制。
简单地说,让 AI/ML 治理成为一门必修的学科是有实际意义的。
模型元数据——AI/ML 治理的基础
现代 AI/ML 治理的基础是在整个模型生命周期中捕获 AI/ML 模型度量和元数据的能力。从基础开始,必须使用源代码控制工具(例如 GitHub 或 GitLab)捕获所有模型源代码和版本,允许数据科学家协作快速开发模型,但也允许保留关键的模型工件。
为了解决可重复性问题,必须将训练数据迁移到只读档案中,并且必须捕获模型源代码和用于训练模型的数据之间的关联。
为了解决可追溯性问题,必须对原始源系统数据和用于转换和丰富数据的数据工程脚本进行归档,从而提供跨交付生命周期的所有数据更改的可见性。
为了解决可验证性问题,所有的培训输出、日志和相关的工件都必须被归档,从而提供一个模型被证明按照规范工作的证据。
一个恰当的人工智能/操作(DEVOPS for AI/ML)过程可以捕获所需的度量和元数据。即使是现在,主要的云提供商、传统的 DEVOPS 供应商以及较新的 AI/OPS 初创公司都可以提供工具和功能,这些工具和功能可以缝合在一起,以捕获许多所需的指标和元数据。
Photo by Alfons Morales on Unsplash
AI/ML 市场——模型、数据和生命周期工件的目录
虽然度量和元数据捕获在今天非常可行,但一个成熟的 AI/ML 环境可能包含数百个模型和相关的培训资产——实际问题是如何以易于消费的格式呈现这些信息。
门户或仪表板——一个“AI/ML 市场”—提供了可视化模型和相关培训数据以及相关生命周期工件的机制,并充当了现代 AI/ML 治理的视窗。AI/ML 市场应该提供核心的模型管理功能,包括:搜索模型,识别模型的相关训练和验证数据,了解在创建训练和验证数据时使用的数据谱系,查看模型的元数据和指标,测量模型的性能和有效性,甚至可能了解数据科学家的生产力。
不幸的是,没有一家供应商能以集成的方式提供这种能力。如今,企业可能需要为其 AI/OPS 工具提供额外的工具,集成关键指标和元数据,并且可能还需要为 AI/ML 市场门户/仪表板构建关键的用户界面元素。
然而,预计这是一个短期的差距,创新的供应商和初创企业将很快提供更多的集成产品和复杂的用户界面。
认证—自助式人工智能/人工智能治理推动敏捷性
在模型生命周期的每个阶段,通常都有一些严格控制模型升级的度量标准,这些度量标准通常可以从前面讨论的基础元数据中收集。
AI/ML 市场服务于两个目的:首先,它提供了一个仪表板,允许数据科学家和运营人员查看这些指标的状态,并做出模型推广和治理决策。
第二,它提供了一种实现“自助式”治理的方法,一旦度量标准和支持证据被捕获,就允许对模型进行一次点击式认证。一旦通过认证,模型元数据和相关的工件将被存档,以备将来审计。
现代人工智能/人工智能治理具有商业意义
借助 AI/ML 模型指标和元数据捕获,再加上通过灵活的 AI/ML 市场进行的单击式认证,现代 AI/ML 治理现在已经从冗长的官僚流程转变为敏捷快速的活动。
通过解决现代 AI/ML 治理实践,数据科学家将体验到超过其竞争对手的生产力。通过采用这些技术,数据科学家的工作将变得更容易、更简单、自动化程度更高,并最终提高生产率。但也许最重要的是,如果知道 AI/ML 能力是以一种安全、可认证和可验证的方式部署的,这种生产力将会实现。
作者:埃里克·布洛达,约翰·米勒, SVDS 集团,迈克·兰布尔, ModelWorks
人工智能安全和对抗性机器学习 101
介绍
人工智能(AI)越来越频繁地登上头条。新技术产品持续包含人工智能。它还触及了网络安全领域,给了攻击者和 T2 防御者更大的机会来实现他们的目标。我已经发表了一些想法,将机器学习用于网络安全解决方案,以及实施 ML 技术改善黑客攻击。似乎人工智能在柜台的两边都起作用,所以没有办法明确地说人工智能是好是坏。今天我要给一切泼点冷水。
UPD 2021: 这里你可以找到关于 AI 和 ML 攻击的最新报告
事实上,我们在人工智能的帮助下取得的成果不应该被低估。让我们弄清楚一些术语。我想提出我的观点。广义地说,人工智能是让事物变得智能的科学。换句话说,AI 是由机器执行的人类智能。
图一。AI 怎么可能长得像
什么是智能?想一想人们可以轻松完成而机器通常会失败的一些能力。它们是感知(声音、视觉、感官、嗅觉)、NLP(理解、生成、翻译)、常识和推理。这就是我所说的人工智能(或者至少是现在正在发展的人工智能)。在过去的五年里,人们目睹了这一领域的进步。很可能,它的实施将在未来五年内成为现实。大多数好处,特别是在感知方面,都遵循了深度学习(DL)方法,并显示了它们的实际收益和超越人类的能力,主要是在视觉任务和语音识别方面。
几个世纪以来,机器在体力劳动方面胜过人类,但在所有其他领域却输给了人类。现在,我们离机器时代更近了,机器能做的不亚于所有的感知、NLP 和推理任务,这意味着世界上有希望的发展和快速的变化。
权力带来责任,人工智能像任何技术一样,也不能免受攻击。这一事实既令人失望,又刺激了网络安全解决方案的发展,从长远来看,这是有价值的。在参与设计用于用户异常检测的 ML 引擎时,我的目标之一是建立一个不仅能检测而且能对抗网络攻击的系统。这促使我探索人工智能安全领域以及机器学习算法中的漏洞(人工智能的主要领域之一)。
第一个愚弄机器学习算法的案例被公布,以展示垃圾邮件过滤器旁路的实际实现。虽然有很多关于 ML 算法安全性的研究论文,但在 2012 年的深度学习热潮之后,人们在几年前产生了很大的兴趣,当时 AlexNet 等用于图像识别的神经网络在图像识别任务中的表现超过了人类。这个想法看起来很有前途,没有人想到安全问题,他们通过开发更多质量更好的模型来匆忙改进。不幸的是,黑客攻击模型的可能性是深度学习算法的一个关键架构弱点,这在 2013 年由包括 Ian Goodfellow 在内的一组研究人员在他们题为“神经网络的有趣特性”的文件中涉及。这些应用容易受到对立例子的影响——合成创建的输入假装与一个类别相关,目的是欺骗 AI 和错误分类图像。事实上,对于复杂的物体,你不能简单地用一个公式来区分它们,因为总会有一个对立的例子,看起来像真的,但却被归类为假的。为什么要学习神经网络的漏洞,以及如何在现实生活中使用它?让我们试着进一步回答这个问题。
为什么要黑 AI?
人工智能的出现被认为是技术发展的里程碑。人工智能正在稳步涌入我们的世界,并渗透到隐藏的垂直行业和最意想不到的行业。由于许多业务流程已经自动化,现在越来越多的决策由机器人做出。
此外,拥有与网络安全相关的技术的地方越来越多。虽然早期的黑客可以从你的电脑中窃取数据或清空你的银行账户,但现在他们有机会影响你的一举一动。鉴于当今互联世界的性质,人们离不开笔记本电脑、手机、智能手表或自治设备,这很容易实现。运输和通讯工业的完全自动化指日可待。食品和医疗保健是人工智能算法的下一个目标。不幸的是,它们像任何其他算法一样,容易受到不同的网络攻击。
你可能会问为什么人工智能网络安全如此重要。事实上,网络攻击者已经可以制造不同的问题,并在易受攻击的系统中造成混乱。如果行为和操作逻辑是已知的,人工智能和人类一样可以被欺骗。看看可能的干扰类型和为什么有人会试图入侵基于 ML 算法的系统的原因。下面列举一些例子:
运输业 。
诱骗自动驾驶汽车曲解停车标志或限速。大量的研究项目和实验证明这是真实的。自动驾驶汽车的关键任务之一是图像分类,例如路标的识别。显然,弄清楚如何欺骗路标识别系统会导致可怕的事故。截至 2019 年初,已经发表了 100 多篇研究论文,展示了攻击图像识别系统的各种方法。如果需要的话,大部分作品都可以被赋予生命。考虑到所有的障碍,可以在路标上贴一个小标签,这样系统就会把它当作另一个标志。
网络安全行业 。
*绕过垃圾邮件过滤器。*这是机器学习出现的最古老的领域之一。事实上,垃圾邮件过滤器不仅是为电子邮件设计的,因为新的图像、语音或视频通信过滤器将会存在,在这种情况下,我们可以称之为人工智能,因为它们现在更加感性。它们将派上用场,以逃避无数的虚假图片,音频和视频流,这是每个人未来的隐现威胁之一。关于绕过垃圾邮件过滤器的研究多达数十项,而且数量还在不断增加。
*绕过基于人工智能的恶意软件检测工具。*越来越多的恶意软件检测系统使用 ML 算法来检测恶意软件。这些算法有其缺点,可能导致黑客修改现有的恶意软件,以便系统将它视为安全的应用程序。研究人员发布了近 20 篇文章,展示了在实践中绕过不同恶意软件检测系统的方法,包括 pdf 和 Android 应用程序中的文件——三种最广泛的感染源。
零售业 。
*绕过面部识别。*事实上,面部识别是新门禁解决方案的核心。在 iPhone X 等智能设备的时代,确保该系统受到绝对保护,从而无法被黑客攻击是非常重要的。许多办公楼已经采用了面部认证系统;此外,有新的自动取款机使用面部识别作为额外的安全措施。人脸识别系统攻击类似于图像分类系统中使用的方法,但有其独特的特征。目前,超过 10 项不同的研究揭示了如何绕过面部识别系统,例如,借助特殊的眼镜。
智能家居行业
*伪造语音命令。*如果你的亚马逊 Echo 把一些噪音识别为命令怎么办?很可能,噪声具有最佳频率,这对于人耳来说几乎是听不见的。这不是我的想象。不同的研究表明,很有可能在某人的声音中加入极小的听不见的噪音,这样文本就会被认为是某种指令。因此,语音助手可以执行任意命令并被黑客攻击。
网络和社交媒体行业
*影评、酒店等的傻子情绪分析。*研究人员演示了一种对系统进行错误分类的方法,该系统会自动对评论进行评级。事实证明,写一个负面的评论被认为是正面的是可能的。实践研究不像与其他类型的攻击相关的研究那样普遍。然而,也有这样的例子,一个句子中一个单词的微小变化会导致系统误解一个评论的真正价值。
金融行业。
*欺诈异常和欺诈检测引擎。*正如恶意软件攻击中提到的,越来越多的网络安全解决方案,如欺诈检测系统、威胁检测系统和用户行为解决方案,使用 ML 技术来更好地检测网络攻击。不幸的是,根据最近的一些研究论文,黑客也可以操纵这些系统。
然而,这并不是一个完整的列表。上述系统即将全面实施。如果这对你来说似乎有些牵强,我可以断言,人们没有看到一波真正的攻击只是因为这些系统没有那么受欢迎。然而,当这一时刻到来时,犯罪分子将利用现有的漏洞。
人工智能安全漏洞和威胁
罪犯究竟能对基于人工智能的系统做什么?所有的攻击都可以分为机密性、可用性和完整性这三个最常见的部分。
机密
目的是收集关于系统的见解,并利用收到的信息为自己谋利或策划更高级的攻击。
换句话说,一个恶意的人与一个机器学习系统打交道,比如说,一个图像识别引擎,以便深入了解和了解更多关于数据集等内部信息。例如,黑客可以通过制作两个有针对性的广告来猜测脸书某个人的性取向,并检查哪一个适合这个人。当网飞发布他们的数据集时,发生了一个现实生活中的隐私事件。虽然数据是匿名的,但黑客能够识别特定评论的作者。
个人助理收集大量的个人信息以提供更好的服务。这可能对攻击者有所帮助。如果一个声音可以被模仿,一个犯罪者会让你的私人助理说出任何秘密。在系统和专有算法的世界中,目标之一将是利用系统的算法、关于系统结构的信息、神经网络、该网络的类型、层数等。这些信息对进一步的攻击很有帮助。如果我们知道网络的类型及其细节,就可以在家里重建网络,然后发现其他攻击方法。
有效性
目标——禁用人工智能系统的功能。
有一些破坏的方式:
- 用请求淹没 AI,这比一般的例子需要更多的计算时间。
- 充斥着分类不正确的对象,增加了人工误报的工作量。以防这种错误分类发生,或者需要削弱对该系统的信任。例如,攻击者可以让视频推荐系统向喜剧爱好者推荐恐怖电影。
- 通过用错误的例子重新训练模型来修改模型,从而使模型结果令人失望。只有模型在线训练才有效。
- 使用人工智能模型的计算能力来解决你自己的任务。这种攻击被称为对抗性重新编程。
完整
人工智能中的欺诈代表错误分类的任务。简单的例子是需要让人工智能(如自动驾驶汽车)相信路上有一只猫,而实际上它是一辆汽车。攻击者有两种不同的方式来做到这一点——通过在学习或生产阶段与系统进行交互。前一种方法被称为投毒,攻击者在训练数据集中投毒一些数据,后一种方法是规避,attackerы利用算法的漏洞来指示人工智能系统进行误操作,如误分类。
人工智能:机器学习算法
理解对人工智能解决方案的不正当威胁可以让我们更进一步,从技术的角度来看待这个问题。
如前所述,人工智能代表覆盖一种或另一种感知感觉的智能事物(作为一个简化的概念),而技术解决方案则被搁置一旁。机器学习来到这里。
AI 代表使事物变得智能,而 ML 代表实现这种“智能”功能的特殊方法。例如,以人工智能驱动的图像识别系统为例,看看这个系统中的所有算法,你会发现至少有两个独立的机器学习任务。一种代表目标检测(或图像分割),目的是检测图片中的人脸,并选择捕获该人脸的图像部分。另一项任务是图像分类,目的是发现照片中究竟捕捉到了谁和什么。这是一个特定人工智能解决方案中不同人工智能任务的例子,其他任务可以是自然语言理解、情感分析、文本推荐等。这些任务的数量正在增加。从技术上来说,它们中的一些是相似的,例如图像分类和情感分析——两者都是分类任务——因此可以共享漏洞。有些可以完全不同像游戏中的图像分类和最优路径计算。以下是如何让它更容易理解。
机器学习任务有各种类别(分类、聚类、回归等。)和方法(有监督、无监督、强化)。这些任务中的每一个都有不同的安全相关属性,这可能会导致攻击。
最常见的任务是分类。由于流行,分类算法具有更多对抗对手的弱点的例子。但是,其他任务和方法(如聚类和强化学习)也容易受到攻击。下图说明了 ML 任务和方法的高级类别。
http://vas3k.com/blog/machine_learning/
图片。2.经典机器学习图谱
对监督学习的攻击(分类)
分类是安全研究针对的第一个也是最受欢迎的机器学习任务。
分类是一项简单的任务。假设您有两堆按类型分类的图片(例如,狗和猫),并希望您的系统能够自动对它们进行分类。
监督学习方法通常用于分类,其中某些组的例子是已知的。所有的类都应该被初始定义。ML 模型所基于的所有算法(从支持向量机到随机森林和神经网络)都容易受到不同类型的敌对输入的攻击,第一次攻击发生在 2004 年的研究论文中—“敌对分类”。目前,有超过 100 篇论文涉及分类算法的不同攻击和防御方法。
图片。3.带有垃圾邮件过滤器的机器学习分类任务示例
对监督学习的攻击(回归)
回归(或预测)很简单。关于现有数据的知识被用于了解新数据。举一个用价格数据预测和操纵股票价格的例子来高估价格。关于回归的技术方面,所有的方法都可以分为两大类:机器学习和深度学习。令人惊讶的是,如果与 2004 年至 2018 年发表的超过 200 篇研究论文的分类相比,回归学习攻击并不那么受欢迎。有几个对回归进行实际攻击的例子,如“多学习者对抗性回归 2018 ”。
图片。4.回归学习攻击例子。红线显示了海军圆点的大致趋势。
对半监督学习(生成模型)的攻击
生成模型的任务与上述不同。监督学习任务(分类和回归)处理现有信息和相关决策,而生成模型旨在基于之前的决策模拟实际数据(而非决策)。生成模型,如 GANs 或自动编码器,也容易受到攻击。标题为“生成模型的对立例子”的文章中提到了一个例子。
图片。5.生成对抗网络方案
在图中。G 是生成器,它从潜在空间中提取样本并添加一些噪声,D 是鉴别器,它可以判断生成的假图像是否看起来像真实样本。
对无监督学习(聚类)的攻击
最常见的无监督学习示例是聚类。聚类类似于分类,唯一但主要的区别是。关于数据类别的信息是未知的,也不知道这些数据是否可以分类。这就是无监督学习。
聚类是一项不太常见的任务,与分类相比,考虑攻击聚类算法的文章要少得多。聚类可用于恶意软件检测,通常新的训练数据来自野外,因此攻击者可以操纵恶意软件分类器和该聚类模型的训练数据。最常见的聚类算法之一是 K-最近邻,最近有一项研究显示了对该算法的实际攻击——“深度 K-最近邻的鲁棒性”。
图片。6.阐释了不同的聚类分析方法以及它们将多个示例分成多个聚类的方式。
对无监督学习的攻击(降维)
如果您的复杂系统有未标记的数据和许多潜在的特征,那么降维或泛化是必要的。您不能应用聚类,因为典型方法会限制要素的数量或者不起作用。降维可以帮助处理它,削减不必要的特征。与聚类一样,降维通常是更复杂模型中的任务之一。
虽然这种机器学习类别不如其他类别受欢迎,但有一个例子表明,研究人员对基于 PCA 的分类器进行了攻击,以检测网络流量中的异常。他们证明了 PCA 对异常值的敏感性可以通过污染训练数据来利用,这使得对手可以显著降低对特定目标流的 DOS 攻击的检测率。
降维示例从左边第三个空间到右边第二个空间看(Pic。7).
图片。7.降维示例
对强化学习的攻击
强化学习是一种环境驱动的方法。这就像一个孩子通过试错来学习环境,或者通过做和以某种方式做出反应来学习模型。与有监督的或无监督的学习相比,在开始之前,没有数据输入到我们的模型中。通常,强化学习方法应用于在不断变化的环境中工作的系统,强化学习模型是应用于自动驾驶汽车解决方案的机器学习任务之一,其他如图像识别和语音识别。
最后,强化学习算法也容易受到敌对攻击,去年有许多关于这个主题的研究论文,包括最新的一篇名为“深度强化学习对策略诱导攻击的脆弱性”的论文。本文已经表明,在博弈的每一帧中加入对抗性扰动会任意误导强化学习策略。
如你所见,攻击每个机器学习任务是可能的。我没有触及具体的攻击类型以及它们对每个 ML 模型的利用,因为我打算给出 ML 任务类别及其易受攻击性的概述。
图片。8.你可以看到一个代理人(恐龙),它的奖励取决于在迷宫中的行动。
对 AI 和 ML 的攻击摘要
你所读到的只是对人工智能算法安全这个广泛话题的介绍。您看到了可能受到危害的多个行业,从可用性到完整性的各种威胁,以及不同类别的攻击,其中一些是几年前才发明的。
从显而易见的角度来看,情况是令人悲伤的——所有的人工智能系统都有弱点,不幸的是不容易修复。这个问题更像是一个普通的数学问题,而不是一个可以通过改变算法来解决的小问题。
有许多研究人员试图解决本文中没有提到的这些问题。这些问题需要另一篇文章来扩展当前文章的内容,并详细描述所有现有的攻击和解决方案。
UPD 2021: 这里你可以找到关于 AI 和 ML 攻击的最新报告
来自《走向数据科学》编辑的提示: 虽然我们允许独立作者根据我们的 规则和指导方针 发表文章,但我们不认可每个作者的贡献。你不应该在没有寻求专业建议的情况下依赖一个作者的作品。详见我们的 读者术语 。
人工智能与九种智能
Photo by @art_ed
人工智能中的“智能”包含或缺少什么
一个朋友发给我一个不同类型智力的框架。多元智能理论。我发现阅读和讨论这些观点很有趣。心智框架:多元智能理论于 1983 年由哈沃德·加德纳发布。他目前是哈佛零项目的高级主管,自 1995 年以来,他一直是 Good 项目的联合主管。他写了数百篇文章和三十本书。
我将要概述的理论是他最著名的理论。以这种方式缩短它可能会减少他的理论,但我会尽我所能。因此,这是背诵信息,然后是一个简短的反思。
必须指出的是,加德纳不支持给学习者贴上特定智力的标签。以下理论应该“授权”而不是限制
一个多元智能理论
根据加德纳的说法,智力是“一种处理信息的生物心理潜力,可以在文化环境中被激活,以解决问题或创造在文化中有价值的产品。”
- 音乐节奏
这个区域与对声音、节奏、音调和音乐的敏感度有关。 - 视觉空间这个区域处理空间判断和用心灵之眼想象的能力。
- 言语语言智商高的人表现出对词汇和语言的能力。
- 逻辑-数学
这个领域与逻辑、抽象、推理、数字和批判性思维有关。 - 身体动觉智能的核心要素是控制一个人的身体运动和熟练处理物体的能力。
- 理论上,拥有高人际智能的个体对他人的情绪、感觉、气质、动机非常敏感,并且有能力作为团队的一部分进行合作
- 这个区域与内省和自我反省能力有关。能够预测自己的反应和情绪。
- 最近增加的(1995 年)这个领域与培养和将信息与一个人的自然环境联系起来有关。深深植根于敏感、道德和整体的理解以及人类在更大生态圈中的作用。
- 存在主义
后来加德纳在(1999)补充道,“存在主义”智能可能是一种有用的构造。
短反射
一个直接的反应让我想到了奥斯陆大学的一个研究小组,他们研究:
…以音乐、动作和视听媒体为经验出发点,揭示人类节奏背后的基本认知机制。
它是高度跨学科的,结合了音乐学、心理学和信息学的方法。今年早些时候发表的一份报告显示,他们通过这种跨学科的工作极大地改善了他们的机器人工作。之前我写过关于增强或取代音乐家的算法(人工智能辅助或人工智能创作的音乐)。
我的主要收获是从的角度来看,智力不应该被简单地归类为推理或逻辑。智力不仅仅是。
在斯坦福以人为中心的人工智能研究所成立期间,最近又有一个关于斯坦福科技环境的视频。在一个融合了不同背景的不同类型的人的艺术和创造性环境中,新的创作是如何产生的。
- 我们必须接受数学和数字,以及对人类意义的更广泛的看法。从某种程度上说,人工智能是对我们是谁的徒劳追求。他被引诱到一个池塘,在那里他靠在水面上,看见自己青春焕发。那西塞斯没有意识到这只是他自己的倒影,并深深地爱上了它。
- 在追求超越自我的过程中,我们必须记住我们是什么和智慧是什么的多样性。人工神经网络的这一进步使我们能够以不同的方式来看问题,然而我们必须超越反思来看问题。一些人类拥有并分享的声音、视觉、文字、数字、运动、爱、反身性、生态圈和存在能力。
构建的边界肯定是模糊。
智力的意义远不止于此。
事实上,你认为智力是什么?
––––––––––––––––––––––––––
这是#500daysofAI 的第 24 天,希望你喜欢。
后来,这个理论受到了批评。一种批评是它过分强调了领域的自主性,一些批评是缺乏来自心理学和神经科学领域的经验证据。你可以把它作为一个思考的片段,而不是一个绝对的规则。理论框架不代表真理。
–
什么是#500daysofAI?
我在挑战自己,用#500daysofAI 写下并思考未来 500 天的人工智能话题。这是我发明的一个挑战,让自己一直思考这个话题,分享我的想法。
这是受电影《夏日 500 天》的启发,主角试图找出爱情失败的原因,并在此过程中重新发现他生活中真正的激情。
人工智能和冒名顶替综合症
让我们或人工智能变成冒名顶替者
你努力成为什么样的人?我们希望 AI 变成什么样?
五年前,当我帮助建立一个合作空间时,我在与一名程序员的对话中遇到了一个术语。我曾经和一家公司的技术主管交谈过,很多人认为他非常擅长编程,他承认自己经常觉得自己是个骗子。后来和其他开发人员交谈时,我意识到这在 T2 的技术人员中是很常见的事情。
:自我指导、协作、灵活和自愿的工作方式,建立在参与者之间相互信任和共享共同核心价值观的基础上。
多年来,在编程模块领域和一些开发人员打交道的过程中,我仍然觉得这是一个持续存在的现象。您的代码要么运行,要么不运行。当它运行时,可能会出错。
经常会有一些 bug/错误需要修复。编程的薪水更高,这可能会带来更高的生活水平,但也许我们可以问,这是否会给那些发现自己处于这种幸运地位的人带来压力。也许是运气?我活该吗?
冒名顶替综合征(也称为冒名顶替现象、冒名顶替、欺诈综合征或冒名顶替体验)是一种心理模式,在这种模式中,个人怀疑自己的成就,并对被揭露为“欺诈”有一种持续的内在恐惧。
Graphics created by Chris Do
尽管有他们能力的外部证据,那些经历这种现象的人仍然相信他们是骗子,不值得他们所取得的一切。患有冒名顶替症的人错误地将他们的成功归因于运气,或者是欺骗他人认为他们比自己想象的更聪明的结果。
所以在某种程度上,这是对“被发现”的恐惧,因为你认为自己没有别人认为的那么有才华。
你有没有觉得自己像个骗子,只是靠猜测和胡扯度过难关,害怕随时会有人打电话给你。我能想出很多我有这种感觉的例子[……]所以对我来说,冒名顶替综合症是一种感觉,感觉好得超出了你的能力范围,但已经在这种情况下根深蒂固了。从内心来说,你知道你不够熟练,不够资格去证明你在那里,但是你在那里,你必须找到一条出路,因为你不能就这么出去。这不是对失败的恐惧,也不是对能够做到的恐惧。这更多的是一种侥幸逃脱的感觉,一种被发现的恐惧,一种随时有人会发现这一点的感觉。
-迈克·坎农-布鲁克斯亚特兰大的联合创始人在 TEDxSydney 演讲
Drawing by @DynamicEcology
在某种程度上,它也许可以被视为一种感知你自己知识的方式。相信人们会通过你缺乏的知识来寻找,而不是看到与其他知识领域的联系。Mike Cannon-Brookes TEDx 演讲中的一条评论给我留下了特别深刻的印象:“编码一直在对我这样做。”
Drawing by software consultant David Whittaker
冒名顶替综合症最初被称为“冒名顶替现象”20 世纪 70 年代,心理学家波林·罗斯·克兰斯和苏珊娜·艾姆斯创造了术语“冒名顶替现象”。尽管有外部证据证明他们的能力,但与 Clance 交往过的学生似乎对被发现是骗子有一种不合理的担心。Clance 在当时写道:“这些女性没有体验到内在的成功感。他们认为自己是“冒牌货”。"
Caryn Farvour(Humphreys)2017 年在刊物 Code Like A Girl 上写了一篇关于 medium 的文章。在那里,她写道加州理工学院咨询中心将冒名顶替综合症定义为:
“即使面对表明相反情况的信息,这种不充分的感觉仍然存在。它在内心被体验为慢性自我怀疑,以及智力欺诈的感觉。”
谷歌已经认识到认可他人能力的重要性并表示:“我们都不愿意做出会对他人如何看待我们的能力、意识和积极性产生负面影响的行为。”的确,我们可能会意识到,人们会看穿我们缺乏的知识,当你尊重自己并非无所不知时,有可能获得更多,如果你接受这一点,你会变得有价值,或者可能会学到更多。**
Five keys to a successful Google team
人工智能领域的冒名顶替者
在连续 30 天每天都写关于人工智能的文章,每天都发表一篇文章之后,我仍然觉得自己像个骗子。也许有人会说一个月写很多,但是我的目标是 500 天内每天写一篇文章。每次我与业内专业人士或该领域的研究人员交谈时,我都觉得他们会责怪我不知道或试图“抓住我”。
有一种紧张感。也许特别是在一家风险投资公司发布了一份报告‘揭示’40%的人工智能初创公司没有使用人工智能之后。Verve上的一篇文章甚至声称:“MMC 的报告发现,当公司部署人工智能和机器学习时,用例往往非常平庸。”当该领域如此缺乏能力或经验时,这有什么好奇怪的?
这种指责文化或者什么是人工智能或者什么不是人工智能是可以理解的——我们在谈论大笔资金的投资。然而,这确实回避了一个问题,即初学者开始使用的基本算法是否是“真正的人工智能”。以这种方式,完美主义者很难向前迈出下一步。根据某些定义,声称程序员通过设计来追求完美主义是不公平的。
完美主义,在心理学上,是一种人格特质,其特征是一个人努力追求完美,并设定高的表现标准,伴随着批判性的自我评价和对他人评价的担忧。
如果你在一个开发团队中,有人写了一个可以运行的代码——它可以运行,而你的代码可能不行。即使是链接在一起的“块”中的小错误也会阻碍代码的运行。因此,自我批评式的评估是许多程序员日常工作中的一个常态。我做错了什么?为什么我的代码没有运行?这些问题有时可能需要几分钟、几小时、几周或几个月的时间来回答,具体取决于所面临的问题或挑战。然而,我们只是人类。
Graphics created by Chris Do
不管你愿不愿意,人们都会看穿你的面具。
Knatokie Ford 博士的另一个 TED 演讲引起了我的注意。Knatokie 是奥巴马政府白宫科技政策办公室(OSTP)的高级政策顾问,负责监督提高科学、技术、工程和数学的可见性和改善其形象的国家倡议的发展。
在谈到冒名顶替综合征的背景下,她还谈到了刻板印象威胁:害怕遵从对自己社会群体的刻板印象。她是班上唯一的非裔美国人,认为其他人会认为她很傻——她说这种组合导致了抑郁症。最终她决定她不能继续下去,所以她在一个学期后离开了哈佛。我想转贴一下她演讲中的一句话:
“攀比是快乐的小偷。”
—西奥多·罗斯福
为什么我们要把人工智能比作我们自己?
在我与研究人员和大多数业内人士的每次谈话中,都会出现一系列典型的话题。通常会提到人和机器的比较。人工智能的定义本身就有助于拟人化的类比;我们把自己与发达国家相比。我们以机器学习技术,叠加自己为标准。我强烈认为这是不健康的。
Illustration by Brianna Gilmartin, Verywell
Graph appeared in Raconteur August 22, 2016.
看看 2018 年 12 月经合组织最新报告中提到的数字也很有趣。从 2011 年到 2018 年年中,估计人工智能初创企业的投资总额超过 500 亿美元。可以说,巨大的投资带来了对财务回报的巨大期望。
如果人工智能的目标迅速变成超智能,我们可能会犯一个错误,特别是因为我交谈过的科学家之间有一个普遍的共识,即人工智能远远超出了这些能力(至少如果我们直接与人类相比)。此外,我认为考虑到所涉及的风险,这可能是一种破坏性的追求。也许这是未来的担忧或关注,但当前的关注是气候危机;全球严重不平等和战争风险。
一方面,我会主张不要把所有问题都变成简单的对立,但我可能会通过质疑研究人员、行业和国家的追求或目标来做到这一点。与我交谈的那些人脑海中的画面是索菲亚,一个在沙特阿拉伯获得公民身份的硬件和软件。
Sophia, a robot recenty granted citizenship in Saudi Arabia. Photo by Denis Balibouse/Reuters from Slate
我们为自己奋斗,为下一个人奋斗——我认为这是一个关于骗子综合症的讨论点。把我们自己比作一个技术应用程序,我们希望达到什么目的?是的,我们通过理解神经网络取得了进展,这导致了巨大的进步,特别是在认知机器学习方面,深度神经网络(DNN)被认为是一个飞跃。可以说,这标志着人工智能资金、开发、部署和商业用途的增加。
然而,如果我们谈论人工智能,就好像我们在谈论一个人或一种产品——从“它”的角度。这似乎很平常,虽然我不知道是什么程度,但阅读福布斯人工智能和大数据撰稿人小组最近的一篇文章很有意思:
请记住,现在还早,AI 在能够推理、独自解决复杂问题或学习到足以自行规划之前,还有很长的路要走。
–春天过得怎么样,福布斯【2019 年 4 月 29 日
人们偶尔会担心,知名人工智能科学家过于雄心勃勃或不切实际的承诺,或者商业供应商的过度承诺,可能会引发新的人工智能冬天。
我们应该把自己想象成数学方程式的完美智能吗?相反,让我们认识到迄今为止已经取得的巨大进步,以及人工智能领域通过应用机器学习技术来发现知识而取得的巨大进步;治病;监控气候;预测灾难;诸如此类。
让我们不要让人工智能成为冒名顶替者。
相反,让我们想想辛勤工作的开发人员、研究人员、商人和政治家的精神健康和幸福。
这是#500daysofAI 的第 32 天,请关注我关于 AI 的每日更新。
什么是#500daysofAI?
我在挑战自己,用#500daysofAI 写下并思考未来 500 天的人工智能话题。这是我发明的一个挑战,来保持对这个话题的思考,和大家分享我的话。
人工智能和技术生命周期
从新兴技术到广泛采用的道路
德克·克内梅尔和乔纳森·福利特
The printing press is critical technology underpinning modern civilization [Image: From Scientific American, Volume 24, Number 03 (January, 1871)]
像人一样,技术在其生命中也有不同的阶段。在光谱的一端,最终形成技术的想法就像是元素的前体——它们聚集在一起,只有以正确的方式连接起来,才会发生反应。在光谱的另一端是死技术——如拨号调制解调器、8 轨磁带和显像管电视。即使仍有这样的例子,它们也已经被其他技术淘汰了。他们有过他们的时间,也达到了他们的目的,现在,实际上,他们已经一去不复返了。技术生命周期在这两极之间移动——从创造到早期采用,到成长,到成熟,再到最终衰落。
技术生命周期的一个阶段是“新兴”,正如流行的短语“新兴技术”所反映的那样。这是一项技术存在并具有明显潜力的点,但尚未完全开发,最终可能产生从微不足道到典型的影响。但是,在这个崭露头角的时刻,技术很重要。它是将共同驱动我们未来的技术网络的一部分。所有的技术都曾一度出现。电、印刷机、轮子,曾经出现过,现在它们是支撑我们现代文明的改变世界的技术的一部分。
那么,人工智能在这个技术生命周期连续体中处于什么位置?它会走向广泛的应用和采用——21 世纪的电力——还是会退居次要地位?虽然前一个选项似乎最有可能,而后者几乎不可想象,但鉴于今天的技术环境,我们可以想象的人工智能的影响与实际可能和可能的影响之间仍然存在明显的矛盾。虽然人工智能的流行想法往往是不切实际的,但其中一些是基于现实的,比如说,人工智能在战略游戏中击败人类的能力。在过去的三年里,自从人工智能驱动的 AlphaGo 击败顶级围棋选手 Lee Sedol 以来,软件已经迅速而无情地击败了顶级人类对手。大约一年后, Libratus 击败了职业扑克玩家,紧接着 OpenAI 在电脑策略游戏 Dota 2 中击败了第一个对手,然后是一队人类对手。这些进步的成就来得很快,而且每一个都使用了完全不同的软件,这就是它们不同凡响的地方。早在 1997 年,“深蓝”第一次击败国际象棋世界冠军加里·卡斯帕罗夫,“深蓝”使用的技术与现在使用的大不相同。从在国际象棋中击败顶级人类到在围棋中击败顶级人类,花了将近 20 年的时间。但自 2016 年以来,随着每年下一个最复杂的游戏被击败,闸门打开了。
Figure 01 — In strategy games like Chess, AI has proven to be a formidable opponent for humans
[Photo: Chess by Felix Mittermeier on Unsplash]
这些成功是引人注目的。我们热爱我们的游戏,我们热爱竞争。直到最近,人们还认为计算机永远不会在围棋上打败人类。但现在他们做到了。扑克是一种虚张声势、解读对手和复杂下注动态的游戏,许多人认为机器需要很长时间才能赢。但是他们已经做到了。像 Dota 2 这样的游戏,需要复杂的团队合作和人与人之间的协调,与国际象棋和围棋专业人士的暴力碾压相比,似乎是一个完全不同的挑战。但是现在,Dota 2 也解决了。
但游戏只是开始。随着这十年的进展,我们喜欢引人入胜的科幻电影,如《T0》、《她》、《T1》和《T2》、《前玛奇纳》、《T3》,它们仿佛一瞥未来。它们不仅看起来像我们今天的世界——有感知能力的人工生命偶尔出现——而且它们与主流媒体对人工智能的大肆宣传不谋而合,即使该技术正在击败专业游戏玩家,自动驾驶汽车等神奇技术正在悄然出现。所有这些虚张声势和大惊小怪结合起来,形成了一个不负责任的不准确的人工智能叙事。尽管人工智能在赢得比赛方面取得了成功,但它远没有给我们带来有感知能力的生物。如果这种事情真的发生,那也是几十年后的事了。人工智能的现实是有趣和令人兴奋的,但与我们的想象力和无知的结合所认为的可能几乎没有相似之处。
从繁荣到萧条?
为什么想象和实际能力之间的这种紧张关系对人工智能作为一种技术的生命周期很重要?从历史上看,人工智能遵循一个周期,在这个周期中,进步和兴奋的爆发导致投资和关注的流动,然后是退潮,缺乏额外的成功使人工智能再次淡出背景。这些下降期被称为“人工智能冬季”。今天,随着对人工智能的大肆宣传——其中许多是与现实脱节的科幻垃圾——专家们有理由怀疑另一个人工智能冬天是否会在未来几年到来。AI 会被广泛采用还是会退去?
我们就人工智能的生命周期与意大利设计集团的执行数字总监莱安德罗·阿格罗进行了交谈。Agro 的职业生涯一直处于风口浪尖,在市场赶上之前几年甚至几十年就用新兴技术制造产品。他认为另一个人工智能的冬天不会很快到来,他的解释让人们对人工智能今天的总体状态有了一些了解:
“在这种时刻,最自然的事情可能是感知未来的另一个冬天。让我说说为什么我认为这一季会有所不同。首先,我们有更好的算法,它们开始进化自己,有时以一种非常不可预测的方式进化。…机器正在帮助人类更好地创造算法。”AI 在补充自身的发展。“这一季可能不同的第二个原因是,”Agro 说。“是因为这次我们有大量的数据。这是我们第一次拥有大量数据。”
Figure 02 — This time we have tons of data
[Photo: Light Trail by Maxime Valcarce on Unsplash]
鸢·博塞德是一位主要的机器学习工程师、思想领袖和作家,他曾与出版巨头奥莱利和皮尔逊合作,他对这种惊人的数据流入有如下看法。“人们在亚马逊上购物,在网飞和 YouTube 上观看流媒体,……人们在推特、脸书、LinkedIn 上购物,你知道,你能想到的都有。所有这些行为,所有这些用户,他们都在生成海量数据…而这实际上正在以 zettabytes 的数量级增长。”
“当你有了所有这些数据,你就有了这些巨大的科技巨头,你就有能力改善客户体验。你有足够的动力去创造像 Alexa 这样的东西,去创造谷歌助手,用推荐系统更好地瞄准受众。亚马逊推荐购物,网飞推荐电影。”“如今,人工智能和深度学习的扩散和普及有着真正强大的金钱激励,”Bosede 说。很简单,人工智能的消费化——在如此多受欢迎的服务的表面之下——正在推动越来越多的投资。Agro 同意这一观点,认为未来的人工智能解决方案是具体的和数据驱动的:“也许我们不会拥有……通用人工智能,但(我们)可能会拯救生命,可能会改变我们生产商品的方式,可能会减轻气候变化带来的伤害。”
一个关键的过渡期
如果我们认为人工智能正在其生命周期内从一种新兴技术快速进入可能被广泛采用的下一个阶段,这是一个重要的,甚至是关键的过渡期。“我认为这是人工智能从业者或创造性工作者必须非常适应的事情,从本质上讲,他们正在建造的东西将如何影响世界,”Bosede 说。“因此,不仅仅是洗手不干他们建造的任何东西,而是真正意识到预期的影响。”
“显然,我们不能成为神谕。我们无法预测未来。我们可以试试,”Bosede 说。“我认为对创造性工作者、工程师、科学家、研究人员、企业家以及任何在人工智能领域工作的人来说,最大的影响之一是建立一种意识,即我们如何思考我们制造的工具可能被用于最坏的情况。”
“举个例子,脸书在缅甸被用来进行种族清洗。这个平台被用来传播仇恨和暴力。这是脸书意想不到的后果,”博塞德说。“虽然,我敢肯定,他们从来没有想过,在他们最疯狂的想象中,一个连接人们的社交媒体平台会被用来断开人们的联系,但这就是发生的事情。有创造力的专业人士需要能够承担一些责任,并且能够意识到他们也有责任。这不仅仅是他们可以推翻监管者或决策者的事情。他们正在制造这些人工智能产品,因此他们必须以一种能够减轻或最小化负面影响的方式来制造这些产品。”
未来还没有到来,但肯定已经很近了。此外,随着人工智能作为一项技术日益成熟,并与我们的生活更加紧密地联系在一起,如果我们能够让它不仅仅适用于特权精英,它将被证明是革命性的。
Creative Next 是一个播客,探索人工智能驱动的自动化对创意工作者,如作家、研究人员、艺术家、设计师、工程师和企业家的生活的影响。本文伴随 第一季第二集—了解人工智能 和 第一季第三集— Smartware 和新兴技术。
艾与“无用”阶层
在人工智能之前,人类机器人会取代你的工作。人类机器人就是你,明天你就帮 AI 抢饭碗。会不会变得“没用”?
Photo by Alex Iby on Unsplash
人工智能(AI)会不会产生一个对社会没有提供价值的“无用”阶层的人?Yuval Noah Harari 在他的书 德乌斯人 中以及在演讲“人类的未来中警告了这种可能性哈拉里解释说,过去的倡议以前需要大量的个人,如工业化和发动战争,才能正常运作,文明才能取得进步。然而,21 世纪的技术可能会削弱和消除对个人的需求。可以完全取代人类需求的人工智能技术的例子包括自动驾驶汽车和无人机、面部识别和 x 射线图像分析。
这是一个深刻的思想实验,警告人类不加控制的人工智能扩散可能导致的一种可能性。哈拉里强调,这不是一个预言,相反,这只是一个可能的结果,随着技术的发展,人类可以影响我们今天和未来的选择。
关于人工智能的未来场景,未来学家和哲学家正在提出深思熟虑的预测、可能性和愿景,从反乌托邦到乌托邦。在天平的一端,反乌托邦场景通常包括奴役或消灭人类的“终结者”机器起义的变体,或者超高效和坚定不移的“回形针最大化器 AI ”它决心分配太阳系的所有物质和能量,以最大限度地增加回形针的产量。在乌托邦的一端,有一个仁慈的人工智能,它使用技术来解决人类的所有问题,因此人类不再需要工作,可以自由地追求高级认知。
对于这些场景中的许多场景,对人类的影响在奇点事件后生效,在这一点上,人工智能以指数速度实现递归自我改进。这导致了寒武纪人工智能的大爆发,当通过反乌托邦的视角来看时,它让智人(现代人类)的智能一夜之间过时。
强大的人工智能的崛起将是人类有史以来最好或最糟糕的事情。我们不知道是哪一个。”——斯蒂芬·霍金教授
艾 vs
认识到整个行业的术语和“人工智能”的含义可能会有所不同,本文作者选择采用马克斯·泰格马克的定义(在他的书 Life 3.0:成为人工智能时代的人类 中定义)来促进下面的讨论。希望这将减轻任何困惑。因此,“AGI”将被用来指启动由奇点事件描述的递归爆炸的“人工智能”水平。
智力: 完成复杂目标的能力
AI: 非生物智能
意识: 主观经验
人类级人工通用智能(AGI): 完成任何通用认知任务的能力至少和人类一样好
关于狭义智能、广义智能、广义智能、人类级 AI、强 AI 的定义,请参考 Tegmark 的书,了解定义的平衡。这里省略了它们,因为为了讨论的目的,只需要上述内容。
定义人生
继续参考泰格马克的书,他将生活定义如下,并将其分为三个阶段:
生命: 一个能保留其复杂性并能复制的过程。复制的是信息,以字节的形式排列,说明事情是如何安排的。生命是一个自我复制的信息处理系统。信息(软件)决定其行为和硬件蓝图。
生命 1.0: 生命(通过自然选择)进化出它的软件和硬件(生物阶段,细菌)
生命 2.0: 生命设计(通过学习)它的软件,并继续进化(通过自然选择)它的硬件(文化阶段,人类)
***Life 3.0:***Life 既设计软件又设计硬件(技术阶段)
比较泰格马克对生命的定义和哈拉里在《德乌斯人》中的陈述,可以对时代精神有一个大致的了解:
科学正在向一个包罗万象的教条靠拢,即有机体是算法,生命是数据处理-尤瓦尔·诺亚·哈拉里
深入研究后,哈拉里提出了令人信服的主张,即智能既独立于基底、生物(人类)或硅(人工智能或 AGI),也与意识脱钩。他提供了一个详细的讨论,说明了人类(人类学)定义的智能只不过是人脑中亚原子粒子的有组织的、生物排列。他继续解释说,没有什么可以阻止(也就是说,不违反已知的自然法则)这些相同的亚原子粒子以一种有组织的、硅排列重新排列,从而产生一种非生物智能。
意识
回想一下,意识早先被定义为一种主观体验,但是从生理学上讲,这种体验是如何表现出来的呢?什么是自由意志,是什么造就了你,你?准确地说,人类意识位于人脑的什么地方,它是如何运作的?这些都是难以想象的难题,科学界还没有找到答案。由于这个原因,当意识进入 AI 对话时,当试图辨别意识对智力的作用和/或影响时,事情会变得复杂。因此,意识是一个复杂的问题,它带来了各种各样的争论和理论,这些争论和理论可以很快转移智力的要点。
哈拉里详细阐述了意识,并提供了一个雄辩的漏洞来避免前面提到的分心。他的结论是“意识正在与智力脱钩。”因此,人们可以在不考虑意识的情况下审问智力。回想泰格马克的定义,智力是“完成复杂目标的能力。”例如,如果复杂的目标是执行面部识别或从 x 射线图像中识别肿瘤,人工智能正以越来越高的准确率成功完成这些复杂的任务。因此证明智力不需要意识。因此,读者可以放心,意识并没有被完全忽视。相反,这并不是讨论智力的先决条件,因此,与意识相关的话题可以在一个单独的平行讨论中继续。
“无用”类思想实验
当我们接受这样的概念,即我们所知的智能生命只是数据处理,智能可以通过以一种基底不可知的方式组织亚原子粒子来实现时,我们得到了这样一种可能性,即如果有足够的资源(知识、劳动力、资金、时间),创造 AGI 既是可行的,也是合理的。在这种情况下,哈拉里的思想实验开始成形,可以看出一个“无用”的阶层会如何产生。曾经需要大量个人在全球经济中动员和推动生产力增长的文明,将转向更高水平的智能(AGI),这种智能具有更低的单位成本,能够快速扩展,并且不需要个人。
与 AGI 相比,人类在软件和硬件上都处于劣势。人类要等九个月才能出生;然后用接下来的二十年来成长、发展和学习;在完全融入劳动力市场之前,还需要额外的 4 到 10 年来获得更高的学位。相比之下,AGI 可以快速设计和创建自己的按需软件(实例)和硬件(如 3D 打印机),这需要几个小时或几天才能执行,使人类几十年的速度相形见绌。这根本不是一个公平的竞争环境。
历史上,技术进步一直受到人类的欢迎,因为它总是遵循相同的工业革命公式*😗
新技术的引入取代了人类以前执行的“机械”活动,因此,人类从机械任务(如劳动)中解放出来,去追求更高层次的认知过程,这是技术无法竞争执行的,因为它缺乏人类水平的智能。
在第一次工业革命(18 世纪和 19 世纪),机械化生产方法和蒸汽机(新技术)使农业社会实现了工业化和城市化。以前,农业社会生活在小村庄社区,用手(机械任务)执行任务,如耕作和制衣。机器在执行这些机械任务时效率更高,人类开始从事其他需要智力的任务。
第二次工业革命(19 世纪末 20 世纪初)的特点是大规模生产(通过装配线)和电的发明(新技术)。这开启了人类追求的新技术进步,而机器继续执行机械劳动。最近,第三次工业革命(20 世纪中期至今)正在由自动化、电子和信息(新技术)驱动。正如我们在以前的革命中所看到的那样,人类将任务转移给了机器(或计算机),因为人类再次转移到了他们今天拥有的机器无法完成的工作上。可以说,第三次工业革命期间卸载的任务仍然是“机械的”,这将在下面进一步探讨。
为什么这次不一样
哈拉里等行业专家提出的思想实验是,随着我们向第四次工业革命过渡,以前的工业革命公式将不再适用。具体来说,工业革命公式只适用于人类能够**“…追求更高层次的认知过程,而这是技术无法竞争的,因为它缺乏人类水平的智能。”*** 然而,在 AGI 作为新技术被引入后,以前的条件不再成立,因为 AGI 将使现代人类水平的智能过时(参见上面的奇点事件)。AGI 将永远比人类领先好几步,因为它在设计软件和硬件方面都有超强的能力。当每一个人被替换,他们将过渡到数量不断增长的“无用”阶层。*
创造一个找不到工作的“无用”阶层意味着他们无法维持或提高自己的生活水平。由于发达经济体的大部分国内生产总值(GDP)是由消费者消费驱动的,这可能对全球经济产生灾难性影响。AGI 的所有者将集中在少数技术寡头手中,继续巩固他们的权力和财富,这将加剧我们今天看到的经济不平等。当分析前 1%富人的消费习惯时,人们注意到,富人的消费速度无法弥补普通消费者阶层支出的下降。因此,未来技术寡头的支出可能不足以弥补“无用”消费者阶层的衰落。这也使未来的税收收入面临风险,因为用一个机器人取代一个支付工资所得税的工人,这个机器人不纳税,可以作为资本支出贬值,以减少公司的应税收入,这将导致政府税收收入的净减少。
出于这些原因,这就是为什么我们开始看到通用基本收入(UBI)的提案(这里和这里)和试点项目(这里和这里)以及机器人税收计划,如微软创始人比尔盖茨提出的 one 。在高层次上,UBI 背后的理由是工作将被机器取代,政府需要为其公民提供支持,这是系统性的不可避免的。UBI 反驳的论点质疑了许多有效的观点,如资金的可行性和对资金使用的担忧,以及它是否会抑制劳动力市场的参与。机器人税背后的概念很简单,这是一种税收中性策略,对机器人征税,就像它是一个赚取工资并缴纳所得税的人类工人一样。评估 UBI 和机器人税收计划的意识形态和可行性不是一件小事,也不是本次谈话的主题。其目的是提高人们对当前举措的认识,这些举措试图 1)超越机器带来的永久性就业机会,2)支持未来潜在的“无用”阶层。
人类机器人悖论
今天,很多对话都集中在未来,以及它是如何从人工智能稳步接管人类今天执行的离散任务开始的。最终,让位给 AGI 爆炸,让机器完全取代人类,并且没有未来的就业选择。布莱恩·克里斯蒂安在他的《最人性化的人 一书中敏锐地指出,在由人类完成的工作变得自动化的过程中,有一个关键的中间阶段:这是人类“机械地”完成工作的阶段克里斯蒂安解释说,是的,一个机器人将做你的工作,但这个机器人就是你。
Christian 提请注意这样一个事实,即今天,人类正在完善我们的工作流程和程序,以便工作任务可以用一种逻辑和“机械”的方法来完成。在效率和生产率提高的面纱下,人类正在产生“标准化”产出所需的工作流程和步骤。这意味着一个人可以与另一个人交换,而不会影响输出质量。这假设新人类有足够的智力,能够遵循工作任务的“机械”程序。
在这一点上,可以注意到人类实际上是“机械地”执行工作任务的机器人。有多少次有人说,“我觉得我是一个工作中的机器人。”或者“我正在像机器人一样执行这项任务。”?今天,人类正在机械地转换他们的工作,这样他们就可以由一个不依赖基底的智能来完成。简而言之,今天的人类正在为生物智能(人类)被硅智能(机器)取代奠定基础。看来真正的问题不是机器人有一天会取代我们的工作。相反,这一过程已经开始,人类在不知不觉中带头冲锋。当进一步考虑这种可能性时,我留给读者几个有趣的问题来思考:
人类通过将工作转移到机械行为,是否串通一气让自己被机器取代(人工智能,AGI)并成为一个“无用”的阶级?
如果智力是底物不可知的,那么一类“无用”的人是不可避免的吗?
今天可以做些什么来避免“无用”的课堂结果?
如果出现“无用”的班级,可以做些什么来应对,像 UBI 和/或机器人税这样的策略是解决问题的正确方式吗?
有没有更高层次的认知,智人能做到,而 AGI 做不到?如果有,它们是什么?
对主观体验(意识)的追求和发展会为人类打开新的可能性之门吗?这种可能性如此丰富,以至于人类欢迎由一个 AGI 来执行我们过去的智能任务?
为了避免反乌托邦的结果,我们今天做了什么来确保 AGI 的目标不会与人类的目标相冲突?(参考马克斯·泰格马克(Max Tegmark)的书,了解他领导的帮助解决这个问题的倡议。)
让任何形式的智能(生物的或硅的)服从并利用它们来无条件地为人类的目标服务,这道德吗?
如果人类成功地将所有的生产手段和方法移交给 AGI,那么这种智慧会发展出自己的需求吗?如果这些需求得不到满足,AGI“劳工”罢工或反抗在全球范围内会是什么样子,人类将如何应对?
更新:作者发表了一篇名为“ AI(自动)完全控制人类 ”的文章,与本文讨论的主题有关。
艾和我们——一场歌剧体验
EKHO 集体:超越系列的歌剧
在我之前的帖子中,我详细描述了我们 Ekho Collective 如何开始我们的项目,为芬兰国家歌剧院和芭蕾舞团打造身临其境的歌剧体验。在这篇文章中,我将讨论是什么激发了我们为未来的访问者编造的故事。
An excerpt from our storyboard
双曲线期货
在媒体中,人工智能经常被视为两种夸张。在想象的乌托邦中,人工智能将治愈癌症,将我们从气候灾难中拯救出来。在反乌托邦中,人工智能被描绘成一个超级大国——在一个新建立的社会中篡夺控制权并强迫人类成为下属,摧毁所有人道的东西。我们的集体故事体现了这些刻板印象:在斯派克·琼斯的电影 Her 中,主角找到了与人工智能代理人的理想主义爱情(尽管,这种爱情是短暂的);在电影《我与机器人》(根据科幻作家艾萨克·阿西莫夫的著名故事改编)中,不会说话的机器人不懂得珍惜人类生命。
找到这两个双曲线未来之间的对话是我们希望我们的经历的访问者将探索的故事的关键。我们作品中的人工智能将跟随过去的歌剧明星,如莎乐美和卡门。莱拉——一个利用人工智能建立在新访客留下的数据上的体验领域——将通过建立在人类的痕迹上来反映人类的本质。这种体验将允许游客以有形和可理解的方式与人工智能互动。
我们如何看待人工智能——以及人工智能如何看待我们
探索我们如何看待人工智能的一部分是展示人工智能如何看待我们。人工智能对世界的看法有限,并根据有限数量的变量做出决定——这些变量并不总是代表人类社会的复杂性质。数据点也总是有限的,并且会以意想不到的方式受到环境的影响。当建立在有偏见的数据上时,人工智能可以反映出我们最糟糕的品质。例如,美国司法系统用来估计累犯率的算法被证明存在种族偏见。
最近出版的项目 ImageNet Roulette 是偏见的一个很好的例证,这是由研究员凯特·克劳福德和艺术家特雷弗·帕格伦共同完成的艺术项目。该网站接受了 ImageNet 的培训,ImageNet 是网上最受欢迎的开源图像识别数据库之一。它允许用户上传自己的图像,并查看网站的算法如何识别他们的图像。结果是不可接受的:记者朱莉娅·卡丽·王被贴上了种族歧视的标签,而一个黑皮肤男人的形象被贴上了罪犯的标签。
How AI sees us: results can vary according to environment and other variables, even with the same objects (ImageNet Roulette)
该算法所基于的数据来源是亚马逊的在线众包平台 mechanical Turk。Mechanical Turk 招募执行重复性任务的用户:标记图像、执行调查等。它经常被研究人员和开发人员用来寻找大量数据来构建他们的机器学习应用程序。在 mTurk 上可以买到的数据是由真实的人类生成的——基于通过它获得的数据建立的算法是我们的真实反映——最好的和最差的。
我们的倒影
像所有人类发明一样,人工智能也有好坏之分。我们建设的未来不仅取决于技术本身,还取决于我们做出的选择。在 Laila 中,我们希望强调这一思想,并为游客提供一个场所,让他们真正以物理形式与人工智能见面和互动。人工智能经常在机器学习的抽象概念中被提及——对于外行人来说仍然遥不可及。
通过提供一个与人工智能交互的界面,我们希望用户能够思考他们在这个新的存在领域中采取的行动如何影响人工智能的决策。正如哲学家马丁·海德格尔在他的文章中所写的,关于技术的问题:
因此,技术不仅仅是手段。科技是一种揭示。
商业人工智能应用的人工智能应用商店
想象一个拥有数百万人工智能应用的世界,这些应用可以让我们的工作变得更加简单,并利用人工智能的力量来真正改变世界。这可能是开始。
http://phpcantho.com/revolutionizing-everyday-products-with-artificial-intelligence/
我们拥有应用商店已经有一段时间了。通常我们访问它们来下载游戏、生产力工具、Whatsapp、Instagram 和类似的应用程序。
以下是我们在谷歌和苹果商店有多少应用程序的想法:
https://blog.appfigures.com/ios-developers-ship-less-apps-for-first-time/
我们有数以百万计的应用程序,但人工智能应用程序的应用商店呢?这是 DeepCognition 公司的人推出的一个有趣的新东西。
人工智能应用商店
AI AppStore 是一个为企业带来最佳人工智能应用的市场,没有任何争议。
AI AppStore 的方法非常简单。该计划是将人工智能的好处带给所有企业,而不必雇佣昂贵的工程团队或需要做大量的定制开发工作。
每个应用程序:
- 解决一个终端业务用例。
- 最终用户是否可以通过直观的 GUI 安装和使用(不需要 IT 团队)。
- 为客户提供用自己的数据训练 AI 的能力。
- 为高级商业用户/公司提供使用 API/插件将人工智能功能集成到其现有系统的能力。
在这里,您可以访问 AI 应用商店:
AI AppStore 是一个为企业带来最佳人工智能应用的市场,没有任何争议。我们与最佳人工智能合作…
deepcognition.ai](https://deepcognition.ai/ai-appstore/)
例如,他们的发票机器人使用人工智能来扫描发票,识别所有的数据字段,并自动将它们输入到您的会计软件中。它非常适合会计师、簿记员、公司会计部门和小型企业或合伙企业,并允许他们完全消除与发票相关的数据输入任务。
有趣的是,你可以开发自己的应用程序并放在那里,当人们购买或使用你的应用程序时,你就可以赚钱。他们开发了一个叫做文档应用软件开发工具包的东西。如果你是一名开发人员,那么你可以创建全新的应用程序并提交给他们。他们将对其进行评估,然后在 AppStore 上发布。这是 GitHub 回购:
通过在 GitHub 上创建帐户,为 DeepCognition/ai-apps-sdk 开发做出贡献。
github.com](https://github.com/DeepCognition/ai-apps-sdk/tree/master/document-ai-app)
在这里,您可以找到创建、开发和提交应用程序所需的所有信息。
我在想象一个有数百万人工智能应用的世界,在那里我们可以让我们的工作变得更加简单,并利用人工智能的力量来真正改变世界。
人工智能与建筑
实验视角
斯塔尼斯拉斯·夏洛 ,哈佛大学设计研究生院| 2019 年 2 月 24 日
GAN-Generated Masterplan | Source: Author
本文放出 我们的论文 的一部分,在哈佛开发,2019 年 5 月提交。这件作品是一个更大的作品的一个组成部分,调查艾在建筑中的开端,它的 历史背景 ,它的潜在空间 组织&风格 。
A 人工智能作为一门学科,已经渗透到无数领域,为以前未解决的挑战带来手段和方法,跨行业。AI 在建筑上的问世, 在上一篇文章中描述过 e ,仍处于早期阶段但提供了有希望的结果。这不仅仅是一个机会,这种潜力对我们来说代表了一个重大的进步,即将重塑建筑学科。
我们的工作旨在证明这一承诺在建筑环境中的应用。具体来说,我们提出将人工智能应用于平面图分析和生成。我们的最终目标是三重的: (1) 生成平面图,即优化大量且高度多样化的平面图设计的生成, (2) 鉴定平面图,即提供适当的分类方法 (3)允许用户通过生成的设计选项“浏览”。
我们的方法遵循两个主要的直觉 (1) 建筑平面图的创建是一个不小的技术挑战,尽管包含标准的优化技术, (2) 空间的设计是一个连续的过程,需要跨越不同尺度(城市尺度、建筑尺度、单位尺度)的连续设计步骤。然后,为了利用这两种现实,我们选择了嵌套式生成对抗性神经网络或 GANs。这种模型使我们能够捕捉遇到的平面图的更多复杂性,并通过连续步骤解决问题来分解复杂性。每一步都对应于一个给定的模型,专门为这个特定的任务而训练,这个过程最终可以证明人类和机器之间可能的来回。
计划确实是一个高维的问题,处于可量化技术和更多定性属性的十字路口。对建筑先例的研究通常仍然是一个危险的过程,它否定了现有资源的丰富性,同时缺乏分析的严密性。我们的方法受当前数据科学方法的启发,旨在验证平面图。通过创建 6 个指标,我们提出了一个框架,捕捉平面图的建筑相关参数。一方面,足迹形状、方向、厚度&纹理是捕捉给定平面图的风格的本质的三个度量。另一方面,计划、连接、和循环意在描绘任何平面图组织的本质。
简而言之,机器,曾经是我们铅笔的延伸,今天可以用来绘制建筑知识,并训练来帮助我们创造可行的设计方案。
一.框架
我们的工作处于建筑和人工智能的交汇点。前者是主题,后者是方法。两者都被简化为清晰的可操作类别。
建筑在这里被理解为风格和组织的交集。一方面,我们认为建筑是文化意义的载体,通过它们的几何形状、分类、类型和装饰来表达某种风格。巴洛克式、罗马式、哥特式、现代式、当代式:通过仔细研究建筑平面图可以发现尽可能多的建筑风格。另一方面,建筑是工程和科学的产物,符合严格的框架和规则——建筑规范、人体工程学、能源效率、出口、程序等——我们可以在阅读平面图时发现这些。这种组织上的必要性将完成我们对架构的定义,并推动我们的研究。
Framework Matrix | Source: Author
人工智能将被使用,使用它的两个主要调查领域——分析和生成对抗网络——作为调查工具。
首先,我们将进入代的话题。通过使用 GANs,我们可以将我们自己的人工智能系统应用于建筑设计。我们假设它的使用可以加强建筑学科的实践。这个领域是最近的,因为它是实验性的,并产生了令人惊讶的结果。我们希望能够训练它绘制实际的建筑平面图。
然后,我们将提出一个强大的分析框架,对生成的平面图进行鉴定和分类。最终,我们的目标是组织 GANs 的结果,为用户提供无缝浏览各种设计选项的可能性。为此,数据科学提供的工具的数量和普遍性将证明对我们的调查是有价值的。
通过这个双重镜头,在风格&组织,资格&生成的十字路口,我们奠定了一个框架,组织架构& AI 的遭遇。
二。产生
建筑平面图的设计是建筑实践的核心。它的精通是这门学科的黄金标准。这是一项实践,从业者一直不懈地试图通过技术来改进。在这第一部分中,我们深入探讨了人工智能应用于平面图生成的潜力,作为一种将信封推得更远的手段。
使用我们的框架,解决平面图的风格和组织,我们在下一章奠定了人工智能空间规划的潜力。我们的目标是提供一套可靠和健壮的工具来证明我们方法的潜力和测试我们的假设。
这里的挑战有三个: (1)选择正确的工具集、 (2)分离出正确的现象显示给机器和 (3)确保机器正确地“学习”。
人工智能与生成对立神经网络
生殖对抗性神经网络——或称GANs——是我们的首选武器。在人工智能领域,神经网络是一个关键的研究领域。这种模型的创造能力最近已经通过生成对抗性神经网络的出现得到了证明。与任何机器学习模型一样,GANs 从提供给它们的数据中学习具有统计意义的现象。然而,它们的结构代表了一个突破:由两个关键模型组成,发生器和鉴别器,GANs 利用两个模型之间的反馈回路来完善它们生成相关图像的能力。鉴别器被训练来从一组数据中识别图像。经过适当的训练,该模型能够区分从数据集中取出的真实示例,以及与数据集无关的“假图像。然而,生成器被训练来创建类似于来自相同数据集的图像的图像。当生成器创建图像时,鉴别器向他提供一些关于其输出质量的反馈。作为响应,发生器会进行调整,以产生更真实的图像。通过这种反馈循环,GAN 慢慢建立起创建相关合成图像的能力,将观察到的数据中发现的现象考虑在内。
Generative Adversarial Neural Network’s Architecture | Image Source
表现和学习
如果 GANs 对我们来说是一个巨大的机会,知道向他们展示什么是至关重要的。在这里,我们有机会让模型直接从平面图图像中学习。通过格式化图像,我们可以控制模型将要学习的信息类型。例如,只要向我们的模型显示一个地块的形状和相关的建筑物覆盖区,就会产生一个能够在给定地块形状的情况下创建典型建筑物覆盖区的模型。为了确保输出的质量,我们将使用我们自己的架构感来管理我们训练集的内容:作为架构师,一个模型的好坏取决于我们给他的数据。
下面,我们展示了一个典型的训练序列:这个序列是在一天半的训练过程中实现的,展示了我们的 GAN 模型如何逐步学习如何为一个住宅单元布置房间和开窗。
Training Sequence | Source: Author
虽然最初的尝试是不精确和混乱的,但在 250 次迭代之后,机器为自己建立了某种形式的直觉。
先例
如果说 GANs 在建筑设计上的应用还处于起步阶段,那么一些先例启发了我们的工作,并推动了我们的直觉。郑浩和黄卫新在 2018 年的 ACADIA 会议上发表了第一份出版物,展示了 GAN 在平面图识别和家具布局生成方面的潜力。他们的模型会根据房间程序和洞口位置,使用颜色块绘制房间填充物。同年,Nathan Peters 在哈佛 GSD 的论文中提出使用 GANs (pix2pix)解决单户模块化住宅中基于房屋足迹的程序再分配问题。
将甘斯视为设计助理,郑浩的(用机器人绘图:人机协作绘图实验,2018)和辜莞允·马丁内兹在 GSD 的论文(2017)启发了我们的研究。两位作者都提出了在机器和设计师之间建立一个循环的想法,以精炼“设计过程”的概念。
我们的工作扩展了这些先例,并提供嵌套 3 个模型(足迹、程序和装饰)来创建完整的“生成堆栈”,同时提高每个步骤的结果质量。通过自动化多单元处理,我们的工作可以扩展到整个建筑的生成和总体规划布局。我们还提供了一系列处理风格转换的模型。最后,我们的贡献添加了一个严格的框架来解析和分类结果输出,使用户能够一致地“浏览”生成的选项。
A.风格转移
Modern-to-Baroque Floor Plan Translation | Source: Author
在一个平面图中,通过研究其墙壁的几何形状和图形平面,可以观察到风格。典型的巴洛克式教堂会展示粗大的圆柱,带有多个圆形凹痕。密斯·凡·德·罗设计的现代别墅将展示薄而平的墙壁。墙面的这个锯齿是甘可以欣赏的一个特色。通过向它显示成对的图像,一个图像是平面图的分段版本,另一个是原始的墙壁结构,我们可以建立一定数量的关于建筑风格的机器直觉。
这部分展示了一个模型的结果,这个模型被训练来学习巴洛克风格。我们接着进行风格转换,其中给定的平面图是手动****(A)重新装饰成新的墙壁风格 (B) 。
Style Transfer Results: Apartment Units Modern-to-Baroque Style Transfer | Source: Author
B.布局助手
Layout Assistant, a Step by Step Pipeline | Source: Author
在本节中,我们提供了一个多步骤的管道,集成了绘制平面图的所有必要步骤。它跨越不同的尺度,模拟建筑师所采取的过程,并试图将每个步骤封装到一个特定的模型中,训练该模型来执行给定的操作。从地块到建筑占地面积** (I) ,从占地面积到用墙分割的房间&开窗(II) ,从开窗平面图到带家具的平面图(III) : 每一步都经过精心设计、训练和测试。**
Generation Pipeline (Models I to III) | Source: Author
同时,通过将管道分成离散的步骤,系统允许用户在每个模型之间进行干预。通过选择一个模型的输出,并对其进行编辑,然后将其交给下一个模型,用户可以控制设计过程。它的输入塑造了模型做出的决策,从而实现了预期的人机交互。
1.脚印
Context | Parcel (input)| Generated Footprint (output), Source: Author
我们管道中的第一步解决了为给定的地块几何图形创建合适的建筑覆盖区的挑战。为了训练这个模型,我们使用了波士顿建筑足迹的广泛数据库,并能够创建一系列模型,每个模型都为特定的财产类型量身定制:商业、住宅、(房屋)、住宅(公寓)、工业等。
每个模型能够为给定的地块创建一组相关的足迹,在尺寸和风格上类似于它被训练的类型。下面是使用住宅(房屋)模型的 9 个示例。
Results: Generated Footprints (housing) | Source: Author
2.房间分隔和开窗
Footprint | Openings & Balcony (input) | Program & Fenestration (output) | Source: Author
下一步自然是在建筑范围内布置房间。能够分割给定的平面图,同时尊重有意义的相邻关系、典型的房间尺寸和适当的开窗是一个具有挑战性的过程,GANs 可以处理并带来令人惊讶的结果。
使用大约 700+个带注释的平面图的数据集,我们能够训练大量的模型。每一个都是针对一个特定的房间数,一旦用于空的建筑占地面积,就会产生惊人的相关结果。我们在下面展示了一些典型的结果。 更多结果也在这里。
Results: Generated Program & Fenestration | Source: Author
3.装备
Program (input, option 1) | Furniture Position (input, option 2)| Furnished Unit (output) | Source: Author
这最后一步将生成的原则带到了最精细的层面:在空间中添加家具。为此,我们首先训练了一个模型来一次性布置整个公寓。
该网络能够根据每个房间方案,了解家具在空间中的相对位置,以及每个元素的尺寸。结果显示如下。
Results: Furnished Units | Source: Author
如果这些结果可以给出潜在家具布局的粗略想法,那么最终绘图的质量仍然太模糊。为了进一步优化输出质量,我们已经为每种房间类型(客厅、卧室、厨房等)训练了一系列附加模型。每个模型只负责将添加到平面图上的颜色块转换成一个正确绘制的家具。家具类型使用颜色代码进行编码。我们在下面显示每个模型的结果。
Results of Room Furnishing Models | Bathroom / Kitchen / Livingroom / Bedroom | Source: Author
4.更进一步
如果使用我们的技术可以建造标准公寓,那么下一步自然是拓展我们模型的边界。事实上,GANs 可以提供相当大的灵活性来解决看似高度受限的问题。在平面布局的情况下,由于占地面积在尺寸和形状上的变化,手工划分和布置空间可能是一个具有挑战性的过程。事实证明,我们的模型在适应不断变化的约束的能力方面相当"聪明,如下所示。
**
GAN-enabled Space Layout under Morphing Footprint | Source: Author**
我们控制单元入口门窗位置的能力,加上我们模型的灵活性,使我们能够超越单个单元的逻辑,以更大的规模处理空间规划。在下面的例子中,我们将我们的技术扩展到整个建筑。
Experimental GAN-generated Masterplans | Source: Author
三。具有资格;合格;取得资格(或学历)
“不能给事物命名增加了世界的混乱”阿尔贝·加缪
为了平衡我们生成平面图的能力,找到合适的框架来组织、排序&对所生成的设计方案财富进行分类是非常重要的。我们提供的平面图只有在我们的生成选项数据库中导航的能力足够好。通过借用建筑中的概念,我们希望将常见的建筑形容词转化为可量化的指标。
为此,我们分离出 6 个关键指标,描述平面图设计的 6 个基本方面:占地面积、计划、方向、厚度&纹理、连通性和流通**。**
6 Metrics | Source: Author
这些指标作为一个全面的框架协同工作,解决了平面图的风格和组织方面的问题。每一个都被开发成一种算法,并且经过了彻底的测试。
A.脚印
建筑物的形状是鉴定其风格的最简单和最直观的代表。 “Footprint” 指标分析平面图周界的形状,并将其转换为直方图。
这个描述符在对建筑形状进行编码的同时,可以将建筑师使用的常见形容词——“瘦”、“笨重”、“对称”等翻译成数字信息,以便与计算机交流建筑形状。
Footprint Polar Diagram | Source: Author
从技术角度来看,该指标使用极坐标凸性将一个给定的轮廓转化为一系列离散值(向量),然后可以与其他平面图进行比较。我们使用从平面图的中心开始的线的极坐标阵列,来提取由所获得的每个空间切片所捕获的平面图的区域。这种方法已经被证明产生了令人满意的结果,如下面的查询所示。这种技术也可以用来限定室内空间的形状以及建筑周边的几何形状。
****
Typical Floor Plans Retrieval using the Footprint Metric (left: query, right: results) | Source: Author
B.程序
一栋建筑的项目**,或者换句话说,它包含的房间类型,是其内部组织的主要驱动力。捕捉这一现实是我们方法的核心。为了描述房间的“组合”,我们通过颜色代码来表示任何给定平面图中包含的房间列表。这条彩色的带子就成了代理,用来描述程序。它作为一个模板,聚合平面图中房间的数量和规划质量。它对人类来说是一种直观的视觉描述,可以转化为一种可靠的机器编码技术。**
Typical Floor Plans Retrieval using the Program Metric (left query, right results) | Source: Author
从技术的角度来看,通过使用这个色带,我们可以计算任何给定平面图对之间的程序相似性和差异性。为了可视化结果,每个平面图都报告为彩色平面图和其程序的一维颜色向量。
****
Typical Floor Plans Retrieval using the Program Metric (left: query, right: results, bottom: results’ program) | Source: Author
C.方向
平面图中墙壁的方向是一个有价值的信息来源。它可以描述围墙(由于墙的存在,空间变得多么隐蔽)和平面图的风格。事实上,使用这种度量标准,我们可以很容易地区分一个现代的房子-亭子和一个哥特式大教堂,简单地通过提取墙壁方向的直方图。
Orientation Diagrams | Source: Author
从技术角度来看,方向提取给定平面图的墙壁,并沿空间的每个方向对其长度求和,范围从 0 度到 360 度。产生的值列表是对计划总体方向的评估。可以对其进行平均以获得单个描述符,或者将其用作跨计划进行比较的向量。
****
Typical Floor Plans Analysis using the Orientation Metric (left: plan, right: orientation diagram) | Source: Author
D.厚度和质地
厚度&纹理**度量限定了平面图的“脂肪”:其壁厚和该厚度的变化。平面图上墙壁的厚度以及墙壁表面的几何形状纹理可能会因风格不同而有很大差异。当密斯·凡·德·罗的别墅展示薄的直线墙时,美术大厅将展示圆柱和锯齿状的厚墙,我们的度量将很容易掌握(见下图)。**
Thickness & Texture Diagrams | Source: Author
从技术角度来看,该指标隔离了给定平面图的所有墙壁,并输出墙壁厚度直方图。同时,该算法计算厚度的变化,以更好地描述壁纹理(即平墙对竖框)。
****
Typical Floor Plans Analysis using the Thickness & Texture Metric (left: plan, right: resulting diagrams) | Source: Author
E.连通性
****连通性指标解决了房间邻接的问题。房间之间的接近度是平面图的一个重要方面。此外,它们通过门和走廊的连接定义了它们之间连接的存在。连通性通过将它们视为一个标准图来调查这种连接的数量和质量。
Connectivity Diagram & Adjacency Matrix | Source: Author
从技术的角度来看,通过使用平面图上的开窗,我们可以推断出房间之间的关系图。连通性度量然后构建邻接矩阵,报告这些连接。最终生成一个图形表示。使用这个图表,我们可以比较平面图,考虑到房间之间连接的相似性。
****
Typical Floor Plans Analysis using the Connectivity Metric (left: connectivity graph, right: plan adjacencies) | Source: Author
F.流通
平面图中的循环捕捉了人们如何穿过它。通过提取循环的骨架,或者换句话说,循环网络的线框,我们可以量化和定性人们在平面图上的运动。
Circulation Diagram | Source: Author
从技术角度来看,循环提取给定平面图的循环骨架,并沿空间的每个方向对其长度求和,从 0 度到 360 度。生成的直方图是对循环网络几何形状的评估,可用于与其他平面图的循环进行比较。
****
Typical Floor Plans Analysis using the Circulation Metric (left: circulation graph, right: diagram) | Source: Author
四。映射和浏览
Similarity graphs, Comparing One Plan to Many | Source: Author
回头看看我们的 GAN 模型,每个模型实际上都在我们这一代流水线的每一步输出了多个选项。然后邀请设计者"选择"一个首选选项,如有必要,在采取下一步行动之前修改它。然而,浏览生成的选项可能会令人沮丧且耗时。为此,“限定”一章中定义的指标集可以在此展示它们的全部潜力,并补充我们的世代管道。通过将它们用作过滤器,用户可以缩小选项范围,并在几秒钟内找到与其设计相关的选项。这种双重性生成过滤是我们工作的价值得到更多证明的地方**:我们在这里提供了一个完整的框架,利用人工智能,同时保持在标准用户可及的范围内。**
一旦根据给定的标准(足迹、程序、方向、厚度&纹理、连接性或循环)进行了过滤,我们就为用户提供了她/他的选择的树状表示。在中心是一个选定的选项,在其周围是根据用户选择的标准分类的最近邻。然后,用户可以缩小搜索范围,找到理想的设计选项,或者选择树中的另一个选项,重新计算图形。
(下面显示的每棵树都可以通过以下链接在线访问: 足迹 , 程序 , 连通性 )
Floor Plans Similarity Trees | Source: Author
动词 (verb 的缩写)结论
人工智能将很快在建筑师的日常实践中赋予他们巨大的权力。由于这种潜力即将被展示,我们的工作参与概念的证明,而我们的框架提供了讨论的跳板,邀请架构师开始与 AI 和数据科学家接触,将架构视为一个研究领域。然而,今天,我们的宣言可以归纳为四个要点。
首先从概念上来说,我们相信设计概念的统计方法塑造了人工智能在建筑方面的潜力。它的不确定性和整体性对我们的领域来说无疑是一个机会。不是使用机器来优化一组变量,而是依靠它们来提取重要的质量,并在整个设计过程中模仿它们,这是一种范式转变。
第二,我们深信,我们设计正确管道的能力将决定 AI 作为一种新的架构工具集的成功。正如 Andrew Witt 教授在《日志》中介绍的那样,我们选择的“灰箱”方法可能会获得最佳的潜在结果。这种方法与“黑盒”方法形成对比,黑盒方法只允许用户预先输入信息,并在过程结束时获得完成的设计选项,对后续的生成步骤没有任何控制。相反,通过将我们的管道分成离散的步骤,“灰箱”允许用户全程干预。他对机器的严密控制是他设计过程质量的最终保证。
****第三,从技术上来说,我们相信应用程序的顺序性将有助于其可管理性并促进其开发。在整个生成过程中进行干预的能力是一个基本的维度:由于管道的每一步都代表了建筑专业知识的一个独特部分,每个模型都可以独立训练,从而为不久的将来的重大改进和实验开辟了道路。事实上,端到端地改进整个管道可能是一项漫长而繁琐的任务,而逐步修改仍然是一个可管理的过程,是业内大多数建筑师和工程师都可以做到的。
最后,我们希望我们的框架将有助于解决待训练模型和任何一代管道中使用的模型的无限广度和复杂性。**处理包裹-足迹-房间分割-等等。我们相信,我们所做的是众多选择中的一种可能的方法。要概括空间规划的必要步骤,关键更多的是原则而不是方法。随着建筑数据可用性的增加,我们鼓励进一步的工作和开放的实验。
我们并不认为人工智能是建筑领域的新教条,而是认为这个领域是一个充满潜力和希望的新挑战。我们在这里看到了丰富结果的可能性,这将补充我们的实践,并解决我们学科的一些盲点。
数字资源
文献学
- 超越计算机的数字建筑,罗伯托·博塔齐,布卢姆斯伯里
- 数据驱动设计&构建,兰迪·多伊奇,威利
- 建筑智能,设计师和建筑师如何创造数字景观,Molly Wright Steenson,麻省理工学院出版社
- 建筑谷歌,超越网格——建筑&信息技术第 226–229 页,Ludger Hovestadt,Birkhauser
- 算法复杂性:凭空而来,复杂性,设计策略&世界观第 75–86 页,安德里亚·格莱尼格&格奥尔格·弗拉赫利奥蒂斯,伯克豪斯
- 代码&机器,代码,操作间&叙述第 41–53 页,Andrea Gleiniger&Georg Vrachliotis,Birkhauser
- 格罗皮乌斯的问题还是关于在建筑和艺术中揭示和隐藏代码,代码,介于操作&叙述第 75–89 页,安德里亚·格莱尼格&格奥尔格·弗拉赫利奥蒂斯,伯克豪斯
- 软架构机器,尼古拉斯·尼葛洛庞帝,麻省理工学院出版社。
- 《建筑机器》,尼古拉斯·尼葛洛庞帝,麻省理工学院出版社。
- 一种模式语言,音符合成形式,克里斯多夫·亚历山大,链接
- 地图的变形;或者输入 RoweBot ,安德鲁·威特,日志#36
- 灰拳击,安德鲁·威特,日志#43
- ****人类与人工智能中的暗示性绘画,辜莞允·马丁内兹,哈佛 GSD 论文,2016
- 启用替代架构:参与式设计的协作框架, Nathan Peters,哈佛 GSD 论文,2017 | 链接
- ****通过机器学习的建筑图纸识别与生成,郑浩(宾夕法尼亚大学),黄卫新(清华大学),ACADIA 2018 [ 论文 ]
- 丹尼尔:自动分析和检索建筑平面图的深度架构,迪维娅·夏尔马,尼廷·古普塔,奇兰霍伊·查托帕迪亚,萨梅普·梅塔,2017,IBM 研究,IIT·焦特布尔
- 建筑平面图中的自动房间检测和房间标记,Sheraz Ahmed,Marcus Liwicki,Markus Weber,Andreas Dengel,2012 年,凯泽斯劳滕大学
- 利用空间索引自动解释平面图,哈南·萨梅特,阿雅·索费尔,1994 年,马里兰大学
- 解析平面图图像,塞缪尔·道奇,久旭,比约恩·斯坦格,2016,亚利桑那州立大学,乐天理工学院
- 项目探索:生成性设计在建筑空间规划中的应用,丹尼尔·纳吉,达蒙·刘,约翰·洛克,吉姆·斯托达特,洛伦佐·维拉吉,王雷,戴尔·赵和大卫·本杰明,2016,生活,欧特克工作室
- 光栅转矢量:重访平面图转换,刘晨,吴家军,Pushmeet Kohli,川口恭誉古川,2017,华盛顿大学,深度思维,麻省理工学院
- 图形文档视觉理解的关系模型。建筑制图应用,2014 年,巴塞罗那自治大学
- 基于骨骼上下文的形状匹配与建模,谢军,heng-Ann Heng,Mubarak Shah,2007,中佛罗里达大学,香港中文大学
- 平面图解释的统计分割和结构识别,Lluís-Pere de las Heras,Sheraz Ahmed,Marcus Liwicki,Ernest Valveny,Gemma Sánchez,2013,西班牙巴塞罗那计算机视觉中心
- 结合使用统计和结构策略在平面图中进行无监督和独立于符号的墙壁分割,llus-Pere de las Heras、Ernest Valveny 和 Gemma Sanchez,2014 年,西班牙巴塞罗那计算机视觉中心
- 使用生成式对抗网络支持智能移动应用的路径规划,Mohammadi,Mehdi,Ala Al-Fuqaha,和 Jun-Seok Oh。, 2018
- 基于方形树形图算法自动实时生成平面图,Fernando Marson 和 Soraia Raupp Musse,2010 年,PUCRS
- 建筑程序建模,帕斯卡·穆勒,彼得·旺卡,西蒙·海格勒,安德烈亚斯·乌尔默,吕克·范·古尔,2015,苏黎世联邦理工学院,亚利桑那州立大学
- 建筑空间规划的生成式设计,Lorenzo Villaggi 和 Danil Nagy,2017,Autodesk Research