TowardsDataScience 博客中文翻译 2020(九十三)

原文:TowardsDataScience Blog

协议:CC BY-NC-SA 4.0

人工智能产生流行的视频创意

原文:https://towardsdatascience.com/ai-generates-trending-video-ideas-968f5cba8616?source=collection_archive---------21-----------------------

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

Kon Karampelas 在 Unsplash 上拍摄的照片

使用递归神经网络激发下一个病毒视频

Y ouTube 是一个庞大的平台——成功获得推荐算法青睐的视频可以获得数亿次观看。当内容创作者试图创造下一个病毒式视频时,人工智能可以产生许多你想要的趋势视频创意!

在这篇文章中,我将展示任何人如何用四行代码创建和训练递归神经网络来生成趋势视频想法!

首先,一点轻理论…

如果你对递归神经网络如何工作不感兴趣,可以直接跳到实现上。

递归神经网络(RNN)是一种专门处理序列的神经网络。给定一个种子“她遛了她的 _ _ ”, RNN 可能会预测“狗”。RNNs 在文本生成中的技巧是使用预测作为进一步预测的种子。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

给定种子“她”,RNN 如何生成文本。粗体字是 RNN 的输出。

应用于文本生成的标准神经网络的一个问题是它具有固定的输入和输出大小。例如,在 MNIST 数据集上训练的卷积神经网络中,每个训练和测试示例只能有 784 个值,不能多,也不能少。虽然这在像图像识别这样的任务中是可行的,但它肯定不适用于自然语言处理任务,在自然语言处理任务中,输入和输出可能在几个字符到几个句子甚至更多之间变化。

RNNs 允许可变长度的输入和输出。RNN 可以看起来像下面的任何一种,其中红色是输入,绿色是 RNN,蓝色是输出:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

标准和卷积神经网络对于每个输入值或像素具有不同的一组权重和偏差,而递归神经网络对于所有输入具有相同的一组权重和偏差。RNN 通常有三组权重和偏差-一组在输入图层和隐藏图层之间(红色到绿色),一组在隐藏图层和另一个隐藏图层之间(绿色到绿色),另一组在隐藏图层和输出图层之间(绿色到蓝色)。

因为在每个层到层的链路上使用相同的权重和偏差集,所以可以非常容易地调整层中的像元数量,包括输入和输出。因为参数很少,所以可以确定最佳的权重和偏差。

那么,为什么 RNN 如此擅长生成文本呢?

RNN 文本生成基于一个基本原则,即句子中的下一个单词总是以相同的想法应用。这是有道理的——作为一个作者,你写下的下一个单词和前一个单词的意图是一样的。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

在上图中,第一个句子是这样写的,每个单词都有相同的意图。第二句话以同样的意图开始,但因为它不断转换,最终结果与最初的意图相去甚远。

通过在每组单词上应用相同的 RNN,句子的意图(它试图去哪里,它包含什么思想)以及句子的措辞都得到了保持。

如果你想对 RNNs 有更深入的解释,可以看看这些研究论文。

实现病毒式视频标题生成器

所有的机器学习模型都需要数据。我们将使用的数据集是 Kaggle 上的趋势 YouTube 视频统计数据集。

当加载和查看数据集时,我们可以了解数据的结构:

import pandas as pd
data = pd.read_csv('/kaggle/input/youtube-new/USvideos.csv')
data.head()

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

*右边还有更多列,但我们不需要它们

我们对title栏感兴趣——这将为训练 RNN 提供数据。该数据有 40,949 行;与一些较大的数据集相比,这并不算多,但是为了保持合理的训练时间,让我们将训练数据减少到 5,000 个实例。

此外,我们应该缩小培训数据的类别:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

在查看了不同的类别后,很明显有些类别是新闻、音乐视频、电影预告片等。,这在创意生成器的上下文中没有意义,因为新闻、歌曲标题、音乐视频标题等要么无法生成,要么没有意义。类别 IDs 22、23 和 24 专用于由小型内容创建者创建的喜剧和较短片段。这些更符合我们想要生成的内容。

下面的代码选择data中属于类别 22、23 或 24 的行,并将它们放入名为sub_data的数据帧中。

sub_data = data[(data['category_id']==24) | (data['category_id']==23) | (data['category_id']==22)]

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

右边还有更多未显示的列。

仍然有 16,631 行—为了将其减少到 5,000 行,我们将随机洗牌几次,然后选择前 5,000 行作为训练数据。sklearn方便的shuffle功能可以帮助:

from sklearn.utils import shuffle
sub_data = shuffle(shuffle(sub_data))

要将数据输入到模型中,数据必须在文本文件中,每个新的训练实例在单独的一行上。下面的代码就是这样做的:

titles = open('title.txt','w+')
for item in sub_data.head(5_000)['title']:
    titles.write(item)
    titles.write('\n')
titles.close()

注意,.head(n)函数选择数据帧中最上面的n行。

要查看title.txt,我们可以调用print(open(‘title.txt’,’r’).read())

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

文件的一部分,实际文件要大得多。

最后,培训文件准备好了。有许多强大的库可以实现 rnn,如 Keras (TensorFlow)和 Pytorch,但我们将使用一个库,它可以跳过选择名为textgenrnn的网络架构的复杂性。这个模块可以在 3 行代码中调用、训练和使用(如果从 pip 安装的话是 4 行),代价是缺乏可定制性。

!pip install textgenrnn

…在 Kaggle 笔记本电脑环境中安装模块。如果在其他环境中操作,您可以移除!

训练很简单:

from textgenrnn import textgenrnn
textgen = textgenrnn()
textgen.train_from_file('title.txt', num_epochs=50)

由于 textgenrnn 建立在 Keras RNN 框架上,它将输出一个熟悉的 Keras 进度跟踪打印:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

这需要大约 2.5 小时来运行所有 50 个时期。

textgen.generate(temperature=0.5)

…可用于生成示例。“温度”是对生成的示例有多新颖的度量(越少,越新颖)。这是一种创造性(较小的温度)但又不会偏离任务本质太远的平衡,是适配不足和适配过度之间的平衡。

最后是生成的视频片头!

为了显示模型随时间的进展,我将包括(大约)每 10 个时代的三个标题,然后留给您一个由 50 个时代模型生成的标题组成的宝库。

1 个纪元(损失:1.9178) —

  • 让我制造更多猫的时刻即将到来的时刻|时刻|时刻
  • Keryn 迷失——Marlari Grace(独立之年)
  • 阅读 Omarakhondras | Now Cultu 1010–75

10 个时代(损失:0.9409) —

  • 格莱美舞蹈系列帮助一个好的 Teass 形状|威尔·史密斯和第五季官方预告片
  • 卡迪图书广告 TBS 上的舞蹈
  • 为什么你的男朋友穿手帕

20 个时代(损失:0.5871) —

  • 我妈妈给我买衣服!
  • 恐龙瑜伽挑战!!
  • 电影-全部 Tam | Lele Pons & hule & Jurassic continest for Anime | E!

30 个时代(损失:0.3069) —

  • 镜面抛光的日本箔球挑战赛在液压机里粉碎-里面是什么?
  • 为什么贾斯汀比伯是最差的 SNL 嘉宾| WWHL
  • 你从未见过的最著名的演员

40 个时代(损失:0.1618) —

  • 威尔·史密斯和乔尔·埃哲顿回答网上搜索最多的问题
  • 亚当和詹娜的陈文静——舞者 Sharisons &揭示你的门 ftta 回答 Saffle 官员
  • Bravon 去首尔 Charman 的 Fabar Things 2 买运动鞋

…最后,前五个 50 时代(损失:0.1561)生成的标题!

  • 我儿子帮我化妆
  • 24 小时 BOX FORT 监狱越狱
  • 利亚姆·佩恩去买运动鞋
  • 星球大战:单身汉大结局
  • 迪士尼公主推着卡车

更进一步…

…这是一个关于 RNNs 能力的幽默例子。你可能已经注意到,随着时代数量的增加,这些想法越来越缺乏原创性——过度适应。这和我们限制训练例子的数量有关。如果您想自己尝试一下(并且有几个小时的计算时间),您可以尝试只限制 be 类别,而不限制训练示例的数量(或者使用整个数据),这样生成的标题可能会更有趣。

感谢阅读!

如果你喜欢,你可以看看 RNNs 的其他一些有趣的应用:

人工智能失控——构建人工智能产品的商业和声誉风险

原文:https://towardsdatascience.com/ai-gone-rogue-business-and-reputational-risks-of-building-ai-products-8cd497b77d09?source=collection_archive---------38-----------------------

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

照片由 Ayaz LalaniUnsplash 上拍摄

人工智能系统会带来巨大的业务和声誉风险,管理这些风险是推动长期收入的关键

在过去的几年里,人工智能已经从实验和概念验证转移到创收应用。随着超过 45%的大型公司和 29%的中小型企业采用人工智能[1],人工智能将很快成为许多公司的核心部分。

虽然构建人工智能产品的好处是不可否认的,但它也不是没有风险,如果管理不当,最终可能会非常昂贵。

随着越来越多的公司现在将人工智能作为创收机会,强调人工智能产品所涉及的风险以及它们变得流氓的后果是很重要的。

“耍流氓”是什么意思?

考虑人工智能的一个好方法是将其视为一个自动决策系统。数据被输入系统,并根据这些输入做出预测或决策。建立一个人工智能模型仅仅意味着在给定当时可用的信息的情况下,尽可能准确地做出自动化决策。

当一个人工智能系统的行为不符合你的预期时,它可以被定义为失控

人工智能系统的行为通常根据它们在给定任务中的准确度来量化。虽然这可能很乏味,但了解准确度下降 1%对收入的影响是很重要的:你会留下多少收入?

准确性的下降以及由此产生的收入要么是:

  • 渐进:你正在建模的概念已经随着时间而改变
  • 突变:人工智能系统不期待你发送的数据

每个人工智能系统的精确度都会逐渐下降。这是因为世界不是静态的,你所模拟的行为会随着时间而改变。这些渐变被称为 概念漂移2】也是 AI 系统需要不断刷新的原因。

人工智能系统准确性的突然下降几乎总是数据收集过程中引入错误的结果。随着人工智能系统变得越来越复杂,它们开始依赖于在整个组织内收集的数据。因此,突破性的变化是意料之中的,就像复杂的软件永远不会没有错误一样。

由于行为的渐变和突变,所有人工智能系统都伴随着商业和声誉风险。

风险

商业风险

行为的逐渐和突然变化都会导致业绩下降,并伴随着收入损失。

让我们以一个自动投标系统为例,它决定了最优的投标。随着时间的推移,该系统将停止作出最佳决策,并会开始出价过高,每次投标,你的组织将开始失去金钱。在突然变化的情况下,由于广告不再显示,有可能人工智能系统开始大规模高估导致重大损失或低估导致销售下降。

声誉风险

让一个人工智能系统失控会给你的组织带来很大的声誉影响。

要让最终用户开始信任人工智能系统,需要大量的努力和透明度,因为默认情况下,他们往往不被信任。未能检测和修复问题性能问题将导致最终用户失去信心,而这种信心是很难挽回的。

意识到人工智能系统决策中的问题的最糟糕方式是让你的客户或最终用户告诉你。关键是要有适当的监控,这样当问题出现时你就能意识到,并能快速解决它们。

降低风险

考虑到与人工智能产品相关的增长机会,组织需要管理风险,而不是简单地完全放弃人工智能系统。

为了降低风险,您应该:

  • 建立模型库存
  • 实施监控解决方案

建立一个模型清单听起来微不足道,但是没有它就不可能测量一个组织的暴露程度。一个好的模型清单应该包括非技术描述、高级风险评估和已知的限制。虽然该清单由数据团队维护,但应与高级管理团队共享并由高级管理团队定期审查。要了解更多关于风险管理的信息,请查看管理模型风险的框架

就像工具被实现来监控软件一样,为人工智能系统提供实时监控工具是很重要的。为了使这些工具实用,它们需要具有低延迟(问题发生和被检测到并发出警报之间的时间),并允许可配置的警报。拥有有效的监控策略是在客户注意到问题之前发现问题并避免声誉受损和收入损失的关键。

运行 ML 模型是令人兴奋的,可以产生非常可观的投资回报。然而,它也伴随着两个业务,即。收入损失和声誉风险,即。失去客户的信任。

对于构建和部署人工智能产品的公司来说,重要的是要有适当的工具来让他们了解 ML 模型的实时性能。

参考资料:

原载于 2020 年 1 月 6 日www . staki on . io

人工智能解开了预测我们世界的一个关键科学障碍

原文:https://towardsdatascience.com/ai-has-unlocked-a-key-scientific-hurdle-in-predicting-our-world-5343b4ed136e?source=collection_archive---------33-----------------------

偏微分方程是现代科学的基础;他们描述了从天气和洋流到广义相对论和量子力学的物理现象

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

授权给作者的图像

如果你和我一样,只要一提到偏微分方程(PDEs),就会想起布满灰尘的黑板、偏头痛和一种普遍的感觉“为什么我们要试图理解这些东西,它们永远不会在现实世界中帮助我们”。(是的我知道,不是一个伟大的态度)。

我不得不辩解说,自从在大学选修工程模块中学习了它们(讽刺的是,嘿),我们实际上就再也没有重新认识过。至少在我看来,它们仍然是一个非常抽象的概念。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

授权给作者的图像

然而,我确实设法了解到关于偏微分方程的一件事是它们很难解决;事实证明,普通科学界也同意这个观点。那么,为什么我们还在投入时间试图解决这些问题呢?

偏微分和它们的秘密

部分答案在于这些数学方程能够模拟空间和时间变化的非凡方式。这种独特的性质使它们特别适合描述我们在我们的世界中观察到的许多物理现象,包括声音和热量传递、扩散、静电学、电动力学、流体动力学、弹性、广义相对论、量子力学。

通过理解这些现象,并解决描述它们的偏微分方程,打开了能够预测的大门,在任何给定的时间点,接下来会发生什么,以及之前发生了什么。

听起来熟悉吗?DEVS 科技惊悚片

这种模拟我们的世界并让人工智能“解决”数学方程的能力正是英国广播公司扣人心弦的惊悚片《DEVS》背后的故事。如果你想真正看到的艺术(即时通讯?)有可能,这是一笔值得投资的一盒一套——赊账。

“宇宙是确定的,并且总是一个先前原因的结果”

[## BBC 二台- DEVS,系列 1,预告片:DEVS

全新的多维科技惊悚片即将登陆 BBC 二台和 BBC iPlayer。

www.bbc.co.uk](https://www.bbc.co.uk/programmes/p088gvvq)

真实世界中的偏微分方程

让我们回到现实,让我们探索 PDEs 的一些真实世界的应用。

一类偏微分是纳维尔-斯托克斯方程

一类特别有用的偏微分方程是纳维尔-斯托克斯方程。19 世纪初,由法国工程师克劳德-路易·纳维尔和英国物理学家乔治·加布里埃尔·斯托克斯爵士独立创建的这组方程描述了运动流体的速度、压力、温度和密度之间的关系。换句话说,它们描述了流体(包括空气)的运动。

纳维尔-斯托克斯方程适用于许多现实应用:

  1. 在飞机和汽车设计过程中模拟机翼和其他表面周围的空气运动。
  2. 研究医学中的血流。
  3. 发电站的有效设计、模拟流速和热传递。
  4. 污染、天气和海洋运动的分析。
  5. 和许多其他人…

微分和偏微分方程解释

在这一点上,它可能帮助读者(它当然帮助了作者)用简单的术语理解 PDEs。随意跳过这一节,但我发现这些例子很有帮助,如果你想看这些和其他的,读一些关于 MathsIsFun.com 的导数偏导数的精彩解释。

先说一个微分方程。这是一个带有函数及其一个或多个导数的方程:

y + dy/dx = 5x

在这个例子中,函数是 y ,它的导数是 dy/dx

MathsIsFun 有助于理解 dy/dx(导数):

“把 dN/dt 想象成人口随着时间的变化而变化,在任何时刻”

这个(琐碎的)例子有助于进一步说明这一点。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

偏导数是一种导数形式,其中一个变量保持不变,如下例所示:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

偏微分方程和人工智能

很少有人会预见到偏微分方程和现代人工智能领域之间的任何重叠。然而,数学家开始向现代人工智能寻求帮助,因为解决偏微分的核心是一个高度复杂和计算密集型的问题。

历史上,这需要强大的超级计算机来处理计算。但是,即使拥有强大的计算能力,这些“传统”的数学方法也只能产生有限的结果。

深度学习是如何解决这个难题的

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

人工智能的现代进步,特别是在深度学习领域的进步,第一次使偏微分方程的求解达到了前所未有的准确性和普遍性。加州理工学院 Caltech 的突破性研究使这成为可能。

加州理工学院的研究人员应用了一类使用傅立叶神经算子的神经网络,以产生一个高度优化的神经网络来解决偏微分方程。

结果是惊人的:

  1. 预测未来/过去动态的精确度达到新的水平
  2. 高度概括,并可应用于(无需再培训)解决许多类偏微分方程,包括纳维尔-斯托克斯
  3. 比传统(数学)解算器快 1000 倍

Anima Anandkumar 教授也是英伟达的 AI 研究总监。在推特上关注阿尼玛·阿南德库马尔

预测未来(你必须从某处开始)

在这个模拟中,您可以看到他们的模型(右)预测的流体运动如何与观察到的实际运动(中间)精确匹配。该模型从一个时间点(左)对此进行了预测。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

图片来自加州理工学院的公开推特(上图)

在上述模拟中,使用了 10,000 的(挑战性)雷诺数。雷诺数是流体的惯性力与粘性力之比,超过 4000 的数字通常被描述为“湍流”,其中液体分子执行不可预测的运动。因此,10,000 解释了模拟中看到的看似随机的运动(摘自这篇论文)。

他们是怎么做到的?

神经网络的经典发展主要集中在学习有限维欧几里得空间之间的映射。最近,这已经推广到学习函数空间之间映射的神经算子。对于偏微分方程(PDEs),神经算子直接学习从任何函数参数依赖到解的映射。因此,他们学习了整个偏微分方程族,而传统方法只能解决方程的一个实例。”

这段摘录摘自加州理工学院于 2020 年 10 月 20 日发布的研究论文。

卷积神经网络 在论文中,他们首先讨论了使用深度卷积神经网络(CNN)的传统人工智能方法的局限性。这些模型依赖于有限维欧几里得空间,并且需要根据 PDE 和被分析的场景进行大量的调整和修改。

FEM-神经网络 他们继续讨论一种改进的,但仍然是次优的方法,使用基于神经网络的有限元 方法 ( FEM )。这种方法旨在模拟 PDE 的一个特定实例,因此比 CNN 更通用,减少了调整和修改的需要。它也产生了更准确的预测。然而,当问题集中的系数改变时,它需要重新训练,并且基本的偏微分方程必须是已知的。

神经算子 2019 年末推出,这些使得神经网络能够拥有无限维算子。神经操作者只需要训练一次,这比以前的方法有明显的优势。获得参数的新实例的解只需要网络的正向传递,减轻了神经-FEM 方法中引起的主要计算问题。最后,神经算子不需要底层 PDE 的知识,只需要数据。

然而,这并不是研究人员希望的银弹:

到目前为止,由于评估积分算子的成本,神经算子还没有产生可以在有限维设置中与卷积或递归神经网络的成功相媲美的有效数值算法。通过快速傅立叶变换,我们的工作缓解了这个问题。”
加州理工学院的研究人员,加州理工学院

傅立叶变换 傅立叶变换常用于求解微分方程的谱方法中,因为微分相当于傅立叶域中的乘法。

我们在这些[研究]工作的基础上,提出了一种直接在傅立叶空间定义的神经算子体系结构,具有准线性时间复杂度和最先进的近似能力。
加州理工学院的研究人员

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

授权给作者的图像

加州理工学院的神经网络使用了一种新颖的深度学习架构,该架构利用了这些傅立叶变换算子。网络的惊人性能部分源于它能够学习无限维函数空间之间的映射;如图 1 (a)所示,积分算子通过傅立叶域中的线性变换来例示。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

1(图片来自加州理工学院公共研究论文

结论

这是一个突破性的飞跃。我可以看到它在伦理领域的积极影响,如模拟气候变化和洋流,以帮助海洋生物学和保护。预测空气动力学,例如在飞机、汽车和卡车上,可以提高效率,并帮助我们从燃烧转向电力作为我们的动力选择。

后续步骤

1.阅读加州理工学院的研究论文

2.了解更多关于安科瑞斯数据,分析&人工智能

3.与作者联系

人工智能和人机界面:新的商业模式

原文:https://towardsdatascience.com/ai-human-machine-interface-new-business-models-c0611749c8a5?source=collection_archive---------27-----------------------

人机界面和人工智能的重要性

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

来源

在与一家自动化和电子产品制造商合作实施用于人机界面的智能传感器和人工智能平台后,我意识到这个行业如何从产品过渡到服务…

**的确,机器学习的日益成熟正在影响工业 4.0 的发展,也为某些公司创造了新的商业模式。**事实上,制造企业在工业协议、专有设备/系统的庞大安装基础和陈旧的用户界面方面已经有了数十年的投资。基于这些要素:在这样一个碎片化的环境中,你如何在全球范围内推动创新、灵活性和增长?

什么是人机界面?

HMI 是关于人和自动化系统如何相互交流和沟通的。

人机界面是机器和操作人员之间的中介。毫无疑问,HMI 是操作员和经理手中监视车间或工厂生产的最重要的工具。

人机界面早已不再局限于工业中的传统机器,现在还涉及到计算机、数字系统或物联网(IoT)设备。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

从操作的角度来看,机器操作员必须能够一眼看到其责任范围内的条件和过程。机器背后发生了什么?发动机和阀门状态是否在设定值内?储罐液位是否足以进行不间断生产?

HMI 最重要的任务是快速简洁地显示复杂的过程变量,以便于解释生产信息。

构建一个好的人机界面并不容易,因为构建人机界面的基础很大程度上取决于对人类身体、行为和精神能力的理解。换句话说,人机工程学构成了人机界面背后的原则。

好的人机界面设计必须让用户理解系统的行为,这反过来又必须让他们看起来可信。软因素,如系统自我解释(可解释的人工智能)不仅在提高交互质量方面发挥着重要作用,还允许机器模仿鼓励接受和使用的情感行为。

为什么 HMI 很重要

人机界面也从控制室的按钮和二极管,通过网络可视化,变成了认知解决方案。

在现实中,一台机器或一台设备只能和它与人类的界面一样好。这就是为什么对优化设计的人机界面的每一项投资都是战略性的。数据可视化和文本表示可以使操作员和经理精确地协调和控制工厂的生产过程,但我们可以通过机器学习做更多的事情。

新的人工智能商业模式

传统的 HMI 解决方案是由 OEM(原始设备制造商)作为机器的一部分部署的独立、隔离的终端。基于机器学习的新 HMI 解决方案要么是预先配置好的向云端发送数据,要么是内部部署的解决方案。

如今,状态是通过一个贴有标签的 led 信号灯、发光按钮和显示面板以及屏幕上的计算机支持的用户界面来显示的。**除了人机界面,我相信开关、LED 指示灯、操纵杆和开关面板制造商将不得不通过使用智能传感器连接到他们自己创造的人工智能人机界面,使他们的产品更加智能……**物联网传感器正在实现商业模式的根本转变:从产品到服务的转变。

除了与 B2B 公司合作,通过更好地利用物联网传感器和为 HMI 或 HMI 产品(如 LED 灯或开关按钮)创建新的应用程序,与 B2C 公司合作将变得更加容易。然而,从物联网传感器收集的数据只有在您可以从中获取有用的情报时才是有用的,并且最好是以自动化的方式…

这种新的转变将鼓励公司从创建 HMI 解决方案过渡到建立传感器网络和管理机器学习项目。

事实上,如今的物联网传感器解决方案大多只负责数据采集。当我们在机器学习方面将传感器与人工智能融合时,这就创造了一个可以出售给其他组织的预测工具。通过物联网传感器,我们可以测量和收集与机器的运动、温度或振动相关的数据。一旦收集了数据,我们需要应用机器学习技术对其进行分类和分析。可用的机器学习选项很多,从逻辑回归到神经网络。

为了理解这些技术如何协同工作,想象一个广泛分布的物联网传感器阵列在整个制造工厂收集数据,并将其快速传输回中央神经系统。

我们还可以想象,通过这些元素生成的数据将通过模块系统集成到独立的预测性维护系统中,或出售给其他公司,以帮助他们创造更好的产品。

例如,交通灯制造商可以制造一种新产品(基于新的 LED,配备智能传感器),当车辆驶过路面的感应回路时,这种产品可以自行改变颜色。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

来源

我希望看到原始设备制造商(OEM)和行业之间建立更多的技术合作关系。原始设备制造商必须为他们的产品创造新的附加值,并最终帮助他们的客户创新。我预测原始设备制造商将不再仅仅是供应商,而是更多的创新伙伴。

新型人机界面

我们正处于从高度复杂的方法向更加直观的界面进化的早期阶段。

随着面部识别功能等“新”技术成为移动设备的标准,HMI 现代化的必要性正处于其生命周期的开始。我意识到,语音控制是最受欢迎的人机界面之一,因为它允许免提控制,因此更少分心。

**人机界面的未来将与人工智能有关。**随着时间的推移,这些系统自然会产生大量数据。事实上,公司将期待配备一些机器学习算法的 HMI,这些算法可以从物联网传感器生成的所有数据中学习,并适应操作员的持续行为。此外,该系统必须足够有效,以便从先前已经进行的计算中学习,从而生成可靠的、可重复的决策和结果,这些决策和结果在所连接设备的活跃计算和操作中是可接受的。

在我个人看来,这是代工企业商业模式的一个大转变。显然,将会有一些赢家,也将会有那些不太正确和半途而废的人。

人工智能 5 行代码:葡萄酒分类

原文:https://towardsdatascience.com/ai-in-5-lines-of-code-wine-classification-5782c7f8afe7?source=collection_archive---------72-----------------------

实用人工智能

准确率高达 98%的葡萄酒分类人工智能

谁说人工智能必须复杂才能构建?在本文中,我将使用机器学习创建一个能够在短短 5 行代码中区分不同种类葡萄酒的人工智能。然后我会解释每行代码的含义。

我的知识库里有全部代码。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

照片由赫尔墨斯·里维拉Unsplash 上拍摄

葡萄酒生化数据

我将使用包含三种不同品种葡萄酒的生化数据的数据集。人工智能将从数据中学习如何区分不同的品种。

    • *不幸的是,让大家失望的是,葡萄酒的名字不见了。在数据集中,它们被标记为 12 和 3

导入模块

我要做的第一件事是从一组预先制作的算法中导入模块。它们将允许我在制造我的人工智能时使用特定的工具(这些代码行不算,因为它们本身不构建任何东西)

import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.ensemble import RandomForestClassifier
from sklearn.model_selection import cross_val_score

我的整个人工智能

就是这个!通过运行这些代码行,人工智能可以学习如何区分不同种类的葡萄酒。

X = pd.read_csv('/content/drive/My Drive/Colab Notebooks/Projects/20200528_Wine_Classifier/wine_data.csv')
y = pd.DataFrame(X.pop('Wine'))
clf = RandomForestClassifier(n_estimators=10)
scores = cross_val_score(clf, X, y, cv=10)
acc = ("Accuracy: %0.2f (+/- %0.2f)" % (scores.mean(), scores.std() * 2))
print(acc, scores)

让我解释一下所有这些代码行是如何工作的。

导入数据集

正如你以前可能听说过的,为了表现良好,人工智能需要数据。我将使用从 data.world. 下载的不同葡萄酒的生化数据

X = pd.read_csv('/content/drive/My Drive/Colab Notebooks/Projects/20200528_Wine_Classifier/wine_data.csv')

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

的示例。我们刚刚下载的 csv 数据集

正如您所看到的,这个数据集包含第一列酒的种类,在所有其他列中是它们的生化数据。我们用来预测葡萄酒种类的所有数据被称为特征

隔离标签

我现在将把预测数据(生化数据,特性)和我们想要预测的数据(酒列)分开,我们把这个数据标签

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

标签列的示例

创建模型

现在我需要选择我想要建立哪种人工智能。有几种人工智能,每一种专门解决一个不同的问题。在这种特殊情况下,我将使用随机森林分类器,这是一种可以在分类问题上表现良好的机器学习算法。

clf = RandomForestClassifier(n_estimators=10)

对于这个模型,我也将选择它的参数:10 作为估计器的数量(如果你不了解人工智能算法的细节,这是你无法理解的)

训练人工智能

scores = cross_val_score(clf, X, y, cv=10)

为了获得可靠的准确度分数,我将使用一种叫做交叉验证的工具。本质上,我将把我的数据集分成训练和测试数据。我将使用训练数据集来指导人工智能如何找到标签和要素之间的联系。在学习如何找到这个链接之后,AI 将估计测试特征,我们将把结果与测试标签进行比较。通过交叉验证,数据集将被拆分 10 次,每次测试和训练将包含不同批次的数据。

这样做,算法将被多次测试,如果不同时间之间的分数相差太大,结果将很可能有偏差。

估计准确度

该算法已经运行了 10 次。每次我们都达到了几乎 100%的准确率。分数从 94%到 100%不等,平均 98%,成绩惊艳。

Accuracy: 0.98 (+/- 0.05) 
[0.94
1.00         
1.00         
0.94
1.00        
1.00  
1.00         
0.94
1.00        
1.00]

人工智能中的人工智能——增强分析领域的下一个前沿

原文:https://towardsdatascience.com/ai-in-bi-the-next-frontier-in-the-field-of-augmented-analytics-e4b78aa6269?source=collection_archive---------57-----------------------

nabler.com

了解人工智能在商业智能中的未来

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

毫无疑问,大多数首席信息官和分析师,无论是专注于营销还是运营,都非常依赖数据。可能不清楚的是,这些数据具体是如何被检索、分析并最终用于更好的决策。商业智能、人工智能等术语并不新鲜。两者都以手动能力无法比拟的效率在收集和可视化数据方面提供了价值。单独来说,这些解决方案提供了许多组织认为强大的功能。地平线上的东西,事实上已经触手可及,是发现和实现每一个的互补性质。

人工智能

让分析师能够以更快的速度编译和检索数据,以促进深度分析,这或许是人工智能的关键成果。机器学习承诺将决策提升到一个新的水平,允许指数级完成平凡和复杂的任务,以促进更大的成果。即使在目前的状态下,人工智能真的兑现了这个承诺吗?

商业智能

虽然 AI 努力提供更快的决策,但 BI 的承诺是通过改进的分析来增加决策。众所周知,BI 旨在提供快速准确的报告、竞争分析和市场趋势识别等功能。最终,组织希望将这种洞察力转化为行动。问题是 BI 最终能否实现这一潜力。AI 能否为 BI 提供组织所需的增强分析能力?

将人工智能和商业智能与 360 度决策相结合

无论规模或行业如何,组织都在努力提高决策能力和改善结果。AI 对 BI 的应用还在继续发展,但是这种结合还没有成熟。以前使用这两种独立功能的组织现在发现其组合具有潜在的变革性。

简而言之,人工智能将改变分析师及其组织处理信息的方式。与人工智能提供几乎没有智能的花哨仪表盘不同,人工智能支持的人工智能可以扫描各种信息源,并帮助确定好坏。其结果是通知正确的利益相关者正确的信息,以便在正确的时间做出正确的决定。

当今利用人工智能的公司

实现人工智能的商业智能的想法已经不远了。事实上,它已经在这里了,因为许多组织已经开始了这场革命,转变他们的运营并取得了显著的成果。

荷兰跨国银行和金融服务组织 ING 已经使用了人工智能。ING 将支付、客户信用数据和其他信息捆绑成一个强大的工具,供各个部门使用。例如,销售部门可以利用从新工具中收集到的见解来帮助客户看到各种选项,以便做出更好的决策。此外,风险部门可以提高风险评估的质量和效率,以便更有效地为有价值的客户确定贷款和信用额度。

沃尔玛,全球超过 11,000 家零售店的运营商,也通过整合 SAP 的 HANA 加入了人工智能的商业智能革命。这个云平台从应用程序、关系数据库和其他来源复制和获取结构化数据,包括销售交易和客户信息。由于沃尔玛的复杂性,他们实施的解决方案允许该组织在几秒钟内处理大量交易记录。这使得沃尔玛能够在采购、采购和运输方面做出更快的决策。这种通过人工智能更有效地分析数据的能力正在提高效率。这也导致了更好的决策和更好的成本控制。

沃尔玛应用人工智能不仅仅是为了内部使用。该公司的网站现在可以根据位置、可用性和其他标准向个人消费者提供建议。这使得沃尔玛能够更有效地与 T4、亚马逊和其他网上零售商竞争。

在重工业领域,通用电气正在利用人工智能来更准确地预测维修需求,确保机器以最高效率运行。该公司的流程包括将传感器整合到机械和车辆中,同时将它们与生产计划联系起来。这意味着设备可以数字化,并通过人工智能进行有效监控。通用电气的运营充分利用了物联网,其中传感器与网络无缝通信。商业智能解决方案允许快速监控和解决潜在问题,以免它们变成全面的问题。

结果不言自明

根据 Gartner 的说法,“通过增加机器学习,数据管理手动任务将减少 45% 。”此外,“到 2022 年,超过 50% 的主要新业务系统将整合业务运营中的实时分析。”此外,预计到 2022 年,全球数据分析支出将超过 1040 亿美元

这对于那些认为人工智能是主要为财大气粗的人提供的工具的组织来说,应该是个好兆头。随着两者的结合变得越来越民主化,因此也越来越实惠,更多的组织将从他们的结合中受益。

人工智能在商业智能中的未来

根据 TDWI 最佳实践报告人工智能和大数据时代的商业智能和分析,组织对利用人工智能、大数据和基于云的服务的创新非常感兴趣。几乎四分之三(74%)的组织希望投资最新技术,以提高运营效率。他们也对仅使用现有的商业智能解决方案来完成报告和分析等任务不感兴趣。大多数组织希望显著增强它们,或者完全转向新的解决方案。因此,人工智能对许多人来说是一个值得的机会。

大数据的流行有时似乎势不可挡。此外,估计大约缺少 150 万名能够仅根据数据做出明智决策的大数据分析师。这就是为什么人工智能及其机器学习能力处于组织渴望的最前沿。成功实施人工智能的企业将在速度、成本、效率和能力方面比竞争对手拥有显著优势。

教育将有助于推动人工智能应用的采用。因为人工智能需要环境和人类的投入才能继续成熟,更广泛应用的机会将会到来。现在,我们可以看看那些目前正在实施的组织,并从他们的经验中学习。

最初发表于【https://www.nabler.com】

商业人工智能

原文:https://towardsdatascience.com/ai-in-business-10-reasons-your-company-should-implement-artificial-intelligence-6605c54c801d?source=collection_archive---------41-----------------------

你的公司应该实施人工智能的 10 个理由

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

SpaceX 在 Unsplash 上拍摄的

今天,许多公司面临着一场影响深远且意想不到的危机。企业家不得不调整他们的计划和优先事项,以保持他们的初创企业的竞争力。现在,企业比以往任何时候都更需要强有力的、果断的行动来改善现有的流程,以提高公司的工作效率。

但是这能实现吗?当然是啦!只要你相信人工智能:商业的未来。不相信我们?看看在商业中实施人工智能的以下十个好处。

麦肯锡全球研究所报告显示,2019 年 AI 技术在标准业务流程中的使用增加了 25%。该报告还展示了至少在未来十年,人工智能将如何为年度 GDP 贡献额外的 1.2%。

很明显,人工智能拥有强大的力量——它有很多方式可以支持你的业务。

1.提高员工生产力和工作满意度

人工智能的第一个好处是它可以把员工从重复的工作中解放出来。它可以消除那些不仅不能令人满意,而且不能为职业发展或学习新技能提供机会的活动。

以故障排除为例。绝大多数客户的询问通常都是关于同一件事,因此许多公司已经决定自动化这一过程。现在,由于自动化聊天机器人,客户可以更快地获得答案,而员工可以专注于其他更雄心勃勃的任务。

根据一项 微软“人工智能&技能 ”调查,公司认识到通过将人工智能与员工的技能发展(技术和软件)相结合,使用人工智能的最显著的商业利益。

2.提高营销绩效

根据 2018 年的报告B2B 营销中的人工智能状态 ,60%的营销人员认为人工智能带来了更好的数据策略。事实上,人工智能对营销绩效产生了前所未有的影响。

但这是另一篇文章的主题——然而,简而言之,人工智能可以:

  • 使用自然语言处理技术生成一个搜索引擎优化关键词列表
  • 创建更相关、更吸引人的内容
  • 瞄准更广泛的受众
  • 创建更有效的活动
  • 基于数据优化性能
  • 发掘新的广告渠道
  • 分析消费者行为数据

…还有更多。

3.节省时间和金钱

如果你希望节省时间和金钱,人工智能可以通过自动化长期重复的任务来提供帮助。以实验室创造的解决方案为例。艾举红豆杉为例。

Taxando 需要一种方法来缩短生成纳税申报表所需的时间。使用机器学习和神经网络。人工智能创造了一个工具,将完成任务所需的时间从五分钟减少到几秒钟。

此外,以前需要 30 分钟的端到端报税流程(包括从税卡 OCR 中提取数据并将详细信息发送给 IRS)现在只需 30 秒。

4.支持销售和增加收入

当然,完全自动化的销售过程是不专业的。但是你可以用人工智能改善特定的领域。

首先,你可以使用人工智能来分析大量的数据集,这样算法就可以得出结论,这意味着更多的销售,更快。然后,你可以创建基于人工智能的工具,帮助改善销售预测,预测客户需求,并改善沟通。最后,您可以使用类似的解决方案来定制您的产品或服务,以满足真正的消费者需求。

通过流程自动化,减少人为错误,以及更有效的销售和营销活动,人工智能可以在增加收入的同时节省开支。

5.避免“人为错误”

让我们明确一点:人工智能永远不可能完全没有错误。

然而,我们为算法提供的数据越多,我们使用的技术越好,我们基于人工智能的工具就能表现得越好。这意味着任务的执行速度更快,结果更准确,而不是让人类做同样的事情。

而且很多情况下准确率接近 100%。谷歌的淋巴结助手就是一个完美的例子:它在检测转移性乳腺癌方面达到了 99%的准确率和 69%的灵敏度。

人工智能比人更不容易出错,因为它没有像疲劳和注意力分散这样的人类特征。不管在一天中的什么时候,它都能有效地工作,避免情绪、观点和偏见——只做客观的决定。

6.增强最终用户体验

由于其复杂的工具集和分析客户和用户行为的能力,人工智能还可以改善人们对你的服务的体验。事实上,大约 38%的消费者同意人工智能将改善客户服务。

首先,用户可以通过直接嵌入网站的聊天机器人请求帮助。此外,公司可以分析用户行为,实时预测消费者需求,同时了解人们不喜欢什么。

这样做可以让公司根据当前和未来的客户需求和期望调整他们的工具和服务。

7.建立竞争优势

基于人工智能的工具将使你工作得更好、更快,并且更符合市场的实际需求。这种进步的方法是所有客户都会喜欢的,不仅仅是技术爱好者。

毕竟,最先进的解决方案增加了竞争力,这将有助于吸引更多的客户。

8.改善招聘流程,提升人力资源

根据 2019 德勤全球人力资本趋势报告,*“74%的 HR 高管认为新技术在他们的组织中意义重大。”*当人工智能可以支持如此多的人力资源流程时,很难不同意,包括:

  • 分析和分类简历
  • 收集和分组庞大的数据集
  • 基于特定标准和关键字筛选候选人
  • 在面试中评估候选人的行为(包括面部表情、肢体语言和语调)
  • 发布招聘广告

9.吸引更优秀的候选人

对技术的前瞻性态度不仅有助于你赢得客户。这能让你成为一个更有吸引力的雇主,让你的公司成为一个理想的工作场所。如今,随着员工如此专注于职业发展,创新的机会变得非常重要。

10.产生更有意义的商业见解

最后,人工智能的分析能力可以让你处于一个非常强大的位置。强大的数据分析可以更好地预测公司业绩,更可靠地洞察新兴的消费者趋势,并提出更智能的方法来降低成本。

有趣的是,人工智能甚至可以预测汇率和股价的波动——这说明了它的预测能力有多强大。

来源:

[1] A. Cam、M. Chui 和 B. Hall,全球人工智能调查 (2010),麦肯锡全球研究所

[2]微软,用人工智能加速竞争优势。组织如何从实验转向商业影响 (2019),2019 微软公司

[3] K. Wiggers,谷歌人工智能声称转移性乳腺癌检测准确率达 99%(2018),VentureBeat

临床决策支持中的人工智能:障碍与机遇

原文:https://towardsdatascience.com/ai-in-clinical-decision-support-roadblocks-opportunities-fddb3311fe99?source=collection_archive---------42-----------------------

活动讲座

Niki Athanasiadou | TMLS2019

https://torontomachinelearning.com/

关于演讲者

我在爱丁堡大学(英国)获得了分子和细胞生物学博士学位,在基因组研究、医学和人口健康的计算建模方面拥有丰富的经验。值得注意的是,作为美国国立卫生研究院的研究员,我建立了一个管道原型,利用基因组和 EHR 水平的信息创建疾病风险的个性化模型。

除了发表在国际同行评审期刊上,我的工作还在英国和美国赢得了几个奖项,包括 2018 年纽约市开放数据竞赛的一个数据科学项目。我目前是 H2O.ai 的数据科学家,与医疗保健行业的公司密切合作,帮助他们利用人工智能扩展他们的能力。

关于谈话

随着数据处理和存储变得越来越便宜,采用人工智能的主要障碍往往是数据可用性。这在医学领域是最好的例证,人工智能支持的临床决策支持的进步反映了医疗保健系统中数据记录和存储方式的创新。

人工智能支持的临床决策支持包括诊断和预后,并涉及分类或回归算法,这些算法可以预测医疗结果的概率或某种疾病的风险。在过去的两年中,FDA 已经批准了几种使用医学图像的图像分类算法作为诊断工具,并且肯定会有更多的算法出现。

类似地,FDA 已经批准了监测生命体征以捕捉异常情况的可穿戴设备。这些早期的例子展示了人工智能在医学领域应用的巨大潜力,因为获取的医疗数据的数量和种类都在增加。

超过 80–90%的美国医院和医生办公室正在实施某种形式的 EHR,全球范围内的采用率类似甚至更高。尽管持续存在未决问题,EHR 系统之间缺乏互操作性或病历连续性,过去与数据可用性和可用性相关的采用障碍正在被克服。

将讨论建立在 EHR 数据上的临床决策支持人工智能模型的三个例子。

  • (1)在医疗机构中积累出生时的病史以及相关联的母亲 EHR 信息,使得能够在出生后两年内预测高肥胖风险儿童,这可能允许改变生活的预防性干预。
  • (2)由 Kaiser Permanente 开发和部署的高级警报监控系统使用重症监护病房(ICU)数据来预测致命恶化的病例,并提醒员工需要救生干预。
  • (3)最后但并非最不重要的是,临床决策支持系统通常需要提供对其预测的充分解释。关于医院再入院预测的全球和局部解释证明了可解释性技术是如何实现这种解释的。

随着 EHR 信息变得标准化并富含基因组信息,医学已准备好利用人工智能突破来改善健康结果。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

临床决策支持中的人工智能:路障&机遇

金融中的人工智能:如何最终开始相信你的回溯测试[1/3]

原文:https://towardsdatascience.com/ai-in-finance-how-to-finally-start-to-believe-your-backtests-1-3-1613ad81ea44?source=collection_archive---------5-----------------------

模拟、风险和指标

关于回溯测试的危险,如何测量它们,不要感觉正确,但要正确

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

插图形式https://papers.ssrn.com/sol3/papers.cfm?abstract_id=3544431

来自《走向数据科学》编辑的提示: 虽然我们允许独立作者根据我们的 规则和指导方针 发表文章,但我们不认可每个作者的贡献。你不应该在没有寻求专业建议的情况下依赖一个作者的作品。详见我们的 读者术语

定量研究是一个包含许多中间步骤的过程,每个步骤都必须经过仔细彻底的验证。资产选择、数据收集、特征提取、建模——所有这些阶段都需要时间,并且由不同的团队交付和测试。但是投资者最终想看到什么呢?对历史数据的“完美”回溯测试,具有高夏普比率、相对于市场的阿尔法值,可能还有一些与基金相关的指标,如容量、杠杆、平均 AUM 等。然而,这种方法并不能告诉我们任何关于策略的未来表现的信息,而且这种回溯测试很容易被过度拟合,甚至当它们被用来衡量一个交易想法的“成功”时是危险的(详见我的文章金融想法发现)。

没有什么比对过去表现良好的策略进行回溯测试更容易的了,但你会冒险把资本押在这上面吗?大多数投资者都是这样。

在接下来的两篇文章中,我想全面回顾一下测试交易策略本身的想法。

  • 首先,解释标准方法的危险,并展示一些替代指标,这些指标提供了关于战略绩效的更多见解。
  • 然后,我将展示我们如何摆脱单一的向前回溯测试,而支持众所周知的度量标准的模拟、场景和概率解释。这将有助于我们从对过去的分析转向对未来表现的评估。
  • 最后但同样重要的是,我想丰富风险的概念:通常投资者和投资组合经理会计算并考虑投资组合的风险,但不会考虑策略本身的风险,这导致他们无法控制和理解现场表演中的策略。

像我最近的大多数文章一样,这篇文章的灵感来自于洛佩斯·德·普拉多博士的书,我推荐他们深入探讨这个主题。一如既往,你可以在我的 GitHub 上找到来源。

回溯测试的危险

2014 年,由罗隐领导的德意志银行从业人员团队发布了一部名为《量化投资的七宗罪》的作品。它谈到了你可能已经听说过的事情:生存偏差、前瞻偏差、讲故事、数据窥探、交易成本、离群值和短期问题。我希望我们已经知道如何获得正确的数据并正确处理它,而不是展望未来,并执行特性重要性分析,而不是在回溯测试中解释随机模式。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

上述论文中量化投资的一些“死罪”的例证

然而,除了这个至关重要的列表,我还想补充一些质疑回溯测试本身的时刻:

  1. 是随机过程的单一路径。市场可以用一个包含数百万变量的极其复杂的随机过程来描述。我们可以对这一过程的不同场景和结果进行采样,但我们只观察到了一个实际发生的情况。我们 依靠一个极其复杂的系统的无限的单一结果来测试一个交易算法,这本身就是疯狂的。
  2. 它没有解释金融发现。回溯测试说明了过去可能发生的事情,但没有解释原因。依赖夏普或索提诺配给意味着蒙着眼睛呆在不确定的世界里。诸如特征重要性分析之类的替代方法将允许我们首先建立金融理论,并且只有在用回溯测试或另一个方案测试它们之后。
  3. 它不允许我们预测业绩和风险。你的策略可以在 2008 年的危机中幸存下来,这是否意味着它可以轻松地度过当前的 COVID one?你怎么知道你没有过度适应某个特定的场景?还是一组特定的因素?如何准确估计这种结果的概率?经典的回溯测试没有给出任何答案。

总的来说,即使我们避免了德意志银行的人犯下的致命错误,我们的回溯测试也只能告诉我们一些规则在过去是如何执行的,除此之外别无其他。这就是为什么拥有一个更丰富的战略评估工具包至关重要,它允许概率性的、基于场景的、以风险为中心的方法,这是我们在神经元实验室使用的,我们将在这两篇文章中开发并测试它。

基于人工智能的战略概述

让我们定义一个典型的基于预测的策略:在某种工具上有一个做多或做空的信号源,我们据此采取行动。为了简单起见,我们将执行一个典型的时间序列预测练习:取前 N 天,提取因子,预测第二天的价格变化,然后交易。这是一个非常原始的场景,没有考虑交易成本、滑点、空头、获利和止损障碍,但让我们先关注市场理解原则的发现,然后关注执行——我们总是有时间因为不适合市场/交易规则而放弃策略。

基础数据

让我们把重点放在银行部门,并将学习 C、DB、BAC、WFC 和其他已知银行的投机信号。由于他们在 2008 年危机中的崩溃,看看我们的 ML 模型将如何应对这种政权更迭将是一件有趣的事情。我们将主要依靠统计因素,我们将这些因素分为三类:

  • 统计特征:最小值、最大值、自相关和统计矩
  • 技术指标:交易者喜爱的经典特征
  • “AFML 特色”:详情查看名著:)

我们将以滚动窗口方式提取这些因素(分数微分时间序列上的统计因素),并根据 iid 规则对输入和输出进行采样。输入将是“今天”的滚动特征,预测-第二天的固定范围收盘价格变化。

预测模型

根据 López de Prado 博士的建议,我们将使用决策树的 bagging,并对 iid 抽样进行校正。我们期望集成将有助于处理过度拟合,基于树的模型将有助于进一步的特征重要性分析。一般来说,我们希望保持预测模型尽可能简单,关注我们的因素洞察力的质量。

超参数

我们将根据 5 年的数据训练我们的模型,然后在接下来的 3 年里用这个模型进行交易,之后重复这个过程,直到数据结束(从 2000 年到 2020 年)。这种方式至少在某种程度上我们应该适应不断变化的政体。

“正常”回溯测试和分析

让我们从德意志银行(DB)股票开始,运行上述策略,并计算回报率、策略绩效和基准(买入并持有)与 ML 策略相比的夏普比率。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

与 HODL 基线相比,DB ticker 上 ML 策略的回报和累积回报(即业绩)

数字呢?

  • 平均收益: -基准 0.00026,ML 策略 0.0008
  • 夏普比率: -基准 0.14,ML 策略 0.74

看起来很不错,但是我们从这个回溯测试中得到了什么实际的见解?字面!也许我们的模型只是在熊市中几乎总是过多地给出“做空”信号,将来会失败得很惨:)让我们回顾一下更有趣的指标,这些指标可以帮助我们更详细地了解模型的表现!

替代指标

数据统计

  • **特征组重要性:**显示哪个数据源在哪个时刻是重要的(市场、基本面、情绪、替代方案),我们可以检测状态并部分解释模式
  • **特性暴露:**如果一个模型过于依赖某个特定的特性,那么它将来可能会变得不可靠。我们可以跟踪这种不一致,并将它们视为风险的来源

模型统计

  • **“准确性代理”😗*马修相关系数(MCC)是预测模型“准确性”的一个相对通用的度量,它可以提供关于我们可以在多大程度上依赖该模型的见解。此外,它有助于检测政权,我们的模型是不可靠的。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

著名的 MCC 公式

  • **模型确定性:**模型返回概率,我们可以跟踪预测的可信度,并研究可信度如何影响风险和回报

效率统计

  • 夏普比率(年化的、概率的、紧缩的):基本的性能指标,但是,对于厚尾和偏斜分布以及多重测试,这些指标必须是固定的。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

年化的、概率的和缩减的夏普比率(从https://mlfinlab.readthedocs.io/)

  • **“聪明的”夏普比率:**我们希望我们的策略没有自相关,没有记忆,因此不会有任何长的燃烧期。如果我们用自相关惩罚我们的夏普,它可以帮助我们通过优化选择这样的策略。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

夏普比率与校正的自相关,参见本文了解更多详情

  • **信息比率:**该指标有助于我们将我们的战略与“alpha”之外的基础或基准进行比较。它是平均超额收益和跟踪误差之间的年化比率。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

来自https://mlfinlab.readthedocs.io/的信息比率公式

运行统计

  • **所需的最小跟踪记录长度:**回答问题“一个跟踪记录应该有多长时间,才能有统计置信度表明其夏普比率高于给定阈值?”如果跟踪记录比它短,我们就没有足够的信心认为观察到的夏普比率高于指定的夏普比率阈值。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

来自https://mlfinlab.readthedocs.io/的最小要求跟踪记录长度公式

  • **水位下降&水下时间:**投资者不仅对最大水位下降的风险感兴趣,还对他们将在那里停留多久感兴趣。与数据和模型统计数据相结合,它可以提供关于为什么以及何时该策略表现不佳的见解。

一般化统计

  • **市场推广:**由于我们的目标是在特定的行业中经营,我们寻找在不同工具中一致的因素,因此我们知道,我们不会仅仅为了一个单一的证券而“过度拟合”我们的发现。没有标准化的方法来衡量这样的概括,所以我们将随机应变:)

新的指标和见解

首先,让我们在 DB ticker 上计算基准测试和策略的所有上述指标:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

DB ticker 上 ML 策略的回溯测试统计数据与 HODL 基线的比较

我们可以看到,在主要性能和信息价值指标方面,我们基于 ML 的策略确实优于基线!过度拟合怎么办?概率 SR 等于 1.0,这意味着该发现是真实的,并且缩小的 SR(从 Bagging 模型的多次运行计算)也等于 1.0,这证实了我们的模型也是适当的。平均 MCC 相当高,甚至除以 MCC 的标准偏差(某种准确度得分的 SR)也有很高的值。功能重要性呢?我们可以看到,有些特征在重要性的底部是稳定的,而有些是非常高的。我们从经验上看到,基于交易量的因素在这个股票市场表现良好。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

与 HODL 基线相比,ML 策略在 DB ticker 上的时变特征重要性

如果我们已经计算了特征的重要性,为什么我们不应用它来使结果更好呢?例如,我们可以删除最不重要的 3 个特性(假设它们没有任何意义)。会改变性能吗?

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

与 HODL 基线相比,DB ticker 上两种 ML 策略的回报和累积回报(即业绩)

从视觉上我们可以确认,具有更新功能集的外部更新策略(每 5 年重新评估一次)击败了我们使用所有功能的 ML 策略基准。从指标的角度来看,我们也看到了改进,但注意 MRTL(最小所需跟踪记录长度)特性,它现在告诉我们,我们需要更多天来观察这两种策略,以确实确认这种提升(这是有意义的,因为它们高度相关)。此外,请注意平均确定性的下降——删除一些特征实际上可能会损害模型。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

与 HODL 基线和使用所有特征的 ML 策略相比,在 DB ticker 上去除了 3 个最低性能特征的 ML 策略的回溯测试统计;*-所选特性我们根据第一个 ML 策略的基准来计算该指标

现在,我们需要确保我们关于给定特征的非线性依赖性的策略和假设能够适用于其他银行 tickers。

我们可以推广到其他 tickers 吗?

BAC 股票代码(美国银行)

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

与 HODL 基线相比,BAC 报价器上两种 ML 策略的回报、累积回报(即业绩)和特征重要性

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

HODL 和两个 ML 策略的回测统计量

嗯……看起来不太好。如果我们详细检查度量,我们可以看到这是 ML 模型的一个明显的错误。“重要”特性也与德意志银行的例子有很大不同。也许只是一个异常值,让我们试试下一个!

WFC 股票交易所(富国银行)

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

与 HODL 基准相比,WFC 证券交易所的两种洗钱战略的回报、累积回报(即业绩)和特征重要性

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

WFC 证券交易所 HODL 和两个 ML 策略的回溯测试统计

接下来的尝试也是一点收益都没有!然而,这里的情况更加棘手:MCC 指标不是负数(甚至非常接近于零),但是战略绩效非常糟糕。让我们看看更多的例子,但是现在,值得考虑的是德意志银行的例子只是一个幸运的例子。

C ticker(城市集团)

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

与 HODL 基线相比,C ticker 上两种 ML 策略的回报、累积回报(即业绩)和特征重要性

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

HODL 和两个 ML 策略的回测统计量

检查图表!你看到了吗?终于,我们答对了!等等,让我检查一下漏气的 SR?零?过度装配的迹象…那么 MCC 呢?再次接近零!我们真的认为一个几乎随机的模型可以击败我们的基准吗?我们不能相信这个结果!

瑞士瑞信银行集团股份公司

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

与 HODL 基线相比,CS ticker 上两种 ML 战略的回报、累积回报(即业绩)和特征重要性

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

CS ticker 上 HODL 和两个 ML 策略的回测统计

好吧,如果它在 DB 上工作得这么好,也许它是关于在欧洲?让我们看看瑞士瑞信银行的股票吧!而且……我们又失败了:)

汇丰(汇丰控股有限公司)

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

与 HODL 基线相比,汇丰股票市场上两种洗钱战略的回报、累积回报(即业绩)和特征重要性

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

汇丰股票上 HODL 和两个 ML 策略的回溯测试统计

出于好奇,我与另一家欧洲银行汇丰银行(HSBC)尝试了这一策略,从视觉上看,它看起来非常积极,但同样,魔鬼在于模型性能和 MCC——我们只是在 ML 模型上再次走运,实际上没有学到任何有用的东西。

荷兰国际集团

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

与 HODL 基线相比,ING ticker 上两种 ML 策略的回报、累积回报(即业绩)和特征重要性

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

HODL 的回测统计量和 ING ticker 上的两个 ML 策略

我想以积极的方式完成实验,然而,奇迹,如果发生的话,不是在定量金融中,尤其是如果我们正确地衡量一切;)从业绩和 MCC 战略来看很好看,不幸的是,已经把 SR 缩小为零——样本外表现不好的可能性很大。此外,如果去掉底部特征,它的性能会更差,这本身就很奇怪。

结论

我们所做工作的主要结果是简单明了的——我们学会了如何从比过去更多的维度来评估基于 ML 的策略的回溯测试。我们需要与模型的过度拟合、多重比较和“黑箱化”作斗争,要解决这些问题,我们需要首先发现它们。新提议的统计做了以下工作:

  • 用非线性模型解释数据中的因素
  • 解释模式战略绩效之间的联系
  • 丰富概念**“超越基准”**
  • 给出关于泛化和过拟合的提示

然而,结果是令人沮丧的,但我希望,没有人期望我们可以通过书中的几个公式实际上击败市场,并创造新的经济发现:)检查我们可以看到的重要特征,不同的报价器之间没有共识——所有时间不同的因素都在顶部,这不允许我们建立一个强大的理论关于驱动银行股的统计因素。我们能做些什么来弥补呢?

  • 发现定义银行间差异的新特征——基本面、宏观、替代数据——2020 年依靠统计因素并不明智;)
  • 改变超参数 —谁说的 5 年训练,3 年交易,14 天平均窗口等等和正确的数字?我们实际上需要运行超参数搜索来找到最优值。我们将在下一个帖子中详细检查它,同时检查我的这篇文章(这里和那里有许多错误,但搜索部分是正确的)
  • 特性重要性上多下功夫——我们看到,几乎在所有情况下,移除底层特性都会对 ML 策略有所帮助。也许我们需要移除更多?或者对特征重要性应用更好的算法?或者既然我们观察到过度拟合,也许我们不仅可以移除底部特征,还可以移除顶部特征?;)

在下一篇博文中,我们将更深入地探讨我们今天介绍的概念。我们将开发模拟和数据扩充的方案,而不是在一个历史数据集上计算这些数字,我们将得出的不是点估计,而是概率解释。谁知道呢,也许我们的模型在一个时间序列实现上表现很差,但是在这个尺度上,它们是相当可靠的?敬请关注,不要忘记查看源代码:)

附言
如果你觉得这个内容有用,有观点,可以在 Bitclout 上支持我。你也可以在脸书博客或 Linkedin 上与我联系,在那里我会定期发布一些对媒体来说太短的人工智能文章或新闻,并在 Instagram 上发布一些更私人的内容:)

金融中的人工智能:如何最终开始相信你的回溯测试

原文:https://towardsdatascience.com/ai-in-finance-how-to-finally-start-to-believe-your-backtests-2-3-adfd13da20ec?source=collection_archive---------19-----------------------

模拟、风险和指标

来自历史数据和模拟的组合和基于场景的回溯测试

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

插图来自 https://papers.ssrn.com/sol3/papers.cfm?abstract_id=3544431

来自《走向数据科学》编辑的提示: 虽然我们允许独立作者根据我们的 规则和指导方针 发表文章,但我们不认可每个作者的贡献。你不应该在没有寻求专业建议的情况下依赖一个作者的作品。详见我们的 读者术语

让我们拆解回测,让它们再次变得伟大:)在上一部分中,我们已经用历史数据和与策略性能相关的标准度量回顾了经典回测例程的主要危险。我们引入了与数据、模型、效率和交易相关的新的统计组,这些统计组可以提供关于潜在战略的更多见解。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

这篇文章将是关于我们的初始数据集潜在的无限翻倍,来自https://harrypotter.fandom.com/wiki/Doubling_Charm的 GIF,没有侵犯版权的意图

然而,如前所述,对某个具有众多变量的极其复杂的随机过程所产生的单一历史路径进行回溯测试似乎根本不够。它既不允许概率解释,也不允许基于情景的战略观点。这篇文章的第二部分是关于为我们打开一个更广泛的方法来验证我们的定量策略的技术:

  • 通过交叉验证进行回溯测试:首先,我们将开始一项技术,该技术允许使用交叉验证对随机数据进行采样,而无需知道明确的数据生成模型
  • 对合成数据进行回溯测试:然后,我们将展示如何使用随机建模和生成样本路径进行回溯测试;
  • 基于压力情景的回溯测试:最后,我们将检查如何在控制主要因素的情况下对合成数据进行采样,从而允许我们对异常情况进行建模。

像我最近的大部分文章一样,这篇文章的灵感来自洛佩兹·普拉多博士的书,我推荐他们深入探讨这个话题。一如既往,你可以在我的 GitHub 上找到的来源。

通过交叉验证进行回溯测试

长话短说,我们希望有一个以上的历史路径来检查我们的战略绩效。我们可以从历史数据中以某种方式取样,但是用什么方式呢?我们可以从整个数据集中选取不同时间的不同部分作为训练集和测试集。为了生成这些部分,我们已经知道了机制——它被称为交叉验证。出于我们的目的,我们需要尽可能丰富的一组模拟——子集的所有可能的组合用于训练和测试算法,这为我们带来了组合净化交叉验证算法:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

组合交叉验证时间序列分割图。行代表我们的初始数据集和列的 6 个分割—回溯测试路径。插图来自https://www . Amazon . com/Advances-Financial-Machine-Learning-Marcos/DP/1119482089http://www.quantresearch.org/Innovations.htm

例如,我们将整个数据集分成 N = 6 组 G1…G6 ,从中随机抽取 2 组进行测试。因此,我们可以有 15 个分割选项,如上面的列 S1…S15 所示。在每个分割中,2 组用于测试,4 组用于所有组合都存在的训练。现在,我们可以对我们的算法进行比单次回测多 15 倍的测试,并获得相关夏普比率和其他风险度量的分布。尽管有这些优点,这种方法也有一些缺点:

  • 不允许历史解读
  • 数据泄漏是可能的,需要单独解决。

合成数据的回溯测试

组合清除交叉验证是一个强大的工具,但它将我们限制在可用数据的子集。在金融数学中,我们使用蒙特卡罗模拟成千上万次来获得精确的估计。例如,在衍生品定价中,我们使用随机微分方程来模拟基础价格,根据方程的不同,这些随机模拟可能看起来非常不同:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

几个随机过程和相应方程的图解。从左至右:几何布朗运动、Merton 跳跃扩散模型、均值回复模型;插图来自http://www . turing finance . com/random-walks-down-wall-street-random-processes-in-python/#

这种模拟可以给我们许多不同的回溯测试数据,但我们在这里有两个问题:我们不知道从的哪个随机过程中抽取金融数据,以及如何重新创建外生变量如基本面、情绪等。

  • 第一个问题可以通过校准过程解决,即找到漂移、波动性、跳跃概率、均值回复系数等参数的精确值。
  • 第二个更复杂。在我用于实验的代码中,我正在训练一个单独的机器学习模型仅使用收盘价来预测高、低、开盘价和成交量。看起来有点过了(和过拟合),但是我们不打算在这里预测任何东西,只是复制潜在的动态,因此,它或多或少是合法的(但是值得怀疑,如果你知道更好的方法,请告诉我)。

最终结果是回溯测试度量在不同场景中的分布,与组合交叉验证方法相同。

压力情景回溯测试

模拟也可以用来产生我们感兴趣的特定政权和场景。例如,我们有兴趣知道在市场突然下跌的情况下我们的策略会如何表现。我们该怎么做?如果我们只看历史数据,我们可以根据市场找到 2-3 次这样的危机。在这里,蒙特卡罗模拟再次有用,但我们需要非常仔细地选择特定随机过程的参数:对我们测试这种策略所针对的确切风险进行建模。例如,对于上述市场下跌,我们可以用负的跳跃大小和相应的频率来模拟跳跃扩散过程。

还有其他数据驱动的方法来模拟基于生成式机器学习模型的现实场景,如 GANs。对于收益时间序列生成和相关矩阵采样,有几种有前途的方法:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

那些相关矩阵是真实的还是由 GAN 生成的?在http://www.corrgan.io/predict检查自己

然而,通常情况下,GANs 不允许我们控制场景生成,因为神经表征是纠缠不清的,也就是说,我们不知道操纵漂移、波动或其他金融变量的“按钮”在哪里。变分自动编码器在这里可能是一个有趣的方法,我不久前写了一篇关于解开表征学习的文章,可能对这里有用。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

简要说明 beta-VAEs 试图从原始数据中理清不同的市场属性。更多详情请访问 https://towards data science . com/gans-vs-odes-the-end-of-mathematical-modeling-EC 158 f 04 ACB 9

数值实验

让我们像在上一篇文章中一样,以德意志银行股价数据为例。基于 ML 的策略的回溯测试看起来非常好,直到我们意识到在其他银行这种方法失败了,这不允许我们认为我们的财务发现是可信的。现在,我想展示一下,我们如何在不看类似市场参与者的情况下实现这一点,而是使用这些指标的概率解释。

组合交叉验证

让我们重新排列价格时间序列的第一部分,以生成 15 个训练和回溯测试路径(正如我们上面讨论的)。我们可以在下面的一些插图中看到,我们的回溯测试数据已经有了不同的市场机制和方向,这立即允许基于场景的验证:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

基于 DB 时间序列分割的十五个训练和回溯测试数据组合中的三个

在我们从上一篇文章的运行 ML 和策略管道之后,我们应该首先在这些回溯测试数据上检查 ML 模型的性能,只有在我们对机器学习性能有信心之后,我们才能运行策略回溯测试。从下面的直方图中,我们可以看到,平均 MCC(马修斯相关系数)是正的,但是,有几个数据给了我们负面的表现(我们已经可以从这里估计一些风险)。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

在回测数据中,平均 MCC、其标准偏差以及两者之比的直方图表示为“MCC 夏普比率”

让我们假设风险是可接受的,并绘制战略夏普比率、收缩夏普比率和概率夏普比率的直方图(更多详细信息,请参见上一篇文章)。与 MCCs 直方图相比,我们可以在夏普比率中看到一个**“更胖”的左尾**,更重要的是,在这些回测中零值收缩夏普比率的总流行率,这意味着我们的结果容易出现重复实验的问题,并且不可靠。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

回测数据的夏普、缩小夏普和概率夏普比率直方图

正如我们所看到的,一个单独的走查不能向我们揭示这些问题,简单的组合交叉验证已经显示了比点度量估计更多的内容。

蒙特卡罗模拟

如果组合交叉验证如此有效,我们能用随机模型的模拟做什么呢?让我们看看下面的 DB 价格时间序列,它是如何表现的?什么随机模型和什么参数在描述它?

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

DB 收盘价时间序列和一些模拟。动力学看起来差不多吧?

我们可以清楚地看到一些跳跃(顺便说一下,还有随时间变化的波动),但为了简单起见,让我们假设这个过程遵循Merton 跳跃扩散模型,漂移和波动取自历史数据(-3.036e-05,0.02789),跳跃强度、大小及其标准偏差选择为“肉眼可见”(0.1,-0.01,0.001)。让我们模拟这种接近价格时间序列的几条路径,预测相应的低、高、开盘价,以及在这些生成的路径上的交易量和回溯测试策略。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

回测数据模拟#1:模拟数据本身,不同装袋运行的 MCC 直方图,以及相应的策略回测

从第一个例子中,我们可以从多次运行 bagging 分类器计算的 MCC 分布中看出,平均而言,我们的样本外模型精度为负。它应该阻止我们运行回溯测试,但是出于好奇,让我们这样做,我们可以看到,这样的回溯测试可能是骗人的——即使模型很差,它也优于基准测试!很好地指出了上一篇文章关于正确的指标计算和跟踪的重要性。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

回测数据模拟#2:模拟数据本身,不同装袋运行的 MCC 直方图,以及相应的策略回测

重新启动模拟给出了类似的熊市时间序列,但现在随着时间的推移有了更多的跳跃(看起来更类似于原始的 DB 时间序列),但 MCC 的分布再次给出了负结果,回测再次产生误导。

当然,如果我们对这一时间序列进行更多次的重新采样,并构建这种预测的直方图,我们将清楚地看到模型精度中的一个肥胖的左尾巴,这将清楚地向我们发出信号:如果我们以非常相似的动态对数据进行采样,但与历史数据略有不同,那么我们最初的金融假设不再成立。如果我们做了正确的初步研究,就不会出现这种情况:)

结论

在这篇文章中,我们回顾了允许概率回测与历史回溯测试相比较的技术。后者的主要问题是,它只是一个复杂随机过程的单一实现,这个过程可能有许多不同的方式,我们不希望从一个分布中过度拟合一个样本。

我们使用了两种主要技术来解决这个问题:组合交叉验证随机模拟,每种技术都有其优点和缺点。在之前的文章中,我们已经看到我们基于 ML 的策略在 DB 股票价格上表现良好,但是对银行业其他资产的实验表明,这一“发现”并不能推广到市场。在这篇文章中,我们已经表明,如果我们不使用走前估计,而是使用组合 CV 或随机模拟,我们可以看到,即使不检查市场上的其他资产,这种策略也是不可靠的,这可以节省我们的研究时间。

我们研究了更多关于回溯测试性能的额外指标,并将它们扩展到概率估计。我们这样做是为了评估我们的策略在样本外表现不佳的风险,这与测量这些策略的**“过度拟合】**相关。我们还知道,过拟合是样本内和样本外性能之间的权衡,在这两篇文章中,我们只关注 OOS 的情况。在这个简短系列的下一篇,即第三篇文章中,我们将关注其他考虑样本内数据的过度拟合风险的度量,并以测试量化交易策略的一般框架结束。敬请关注,不要忘记查看源代码:)

附言
你也可以在脸书博客或者 Linkedin 上与我联系,在那里我会定期发布一些对媒体来说太短的人工智能文章或新闻,以及 Instagram 上一些更私人的内容:)

工业中的人工智能:一个维护程序如何毁了我的机器学习模型!

原文:https://towardsdatascience.com/ai-in-industry-how-a-maintenance-routine-ruined-my-machine-learning-model-9b45acc69f83?source=collection_archive---------43-----------------------

基于一个真实的用例,发现为什么在建模一个工业过程时你应该总是注意维护活动……以及如果你不这样做该怎么做!

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

亚伦·巴纳比在 Unsplash 上拍摄的照片

机器学习的挑战:

许多数据科学家确实同意在实际使用机器学习算法之前进行数据准备的重要性。这一挑战通常被描绘成下图左侧显示的冰山。

第二个挑战可能是将概念验证(P.O.C .)转移到真实环境中,在真实环境中实时收集数据并将预测集成到现有的数字基础设施中。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

(冰山绘图来源:fr.123rf.com)

但是,在我看来,最大的挑战是创造一个可以长期持续的解决方案:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

(冰山绘图来源:fr.123rf.com)

令人高兴的是,工业过程通常不会像人类消费者那样在一夜之间改变他们的行为。(如果你需要一个奇怪行为转换的例子,只需记住当第一次 COVID 锁定开始时卫生纸短缺是多么不合理,人工智能系统应对它是多么困难!)

但是,即使是工业机器学习模型也可能会偏离,因为它们的鲁棒性也依赖于数据科学的 3 个公理:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

(图标来源:flaticon.com 的 Freepix)

从好…到伟大…到更坏!

对于每一个建模项目,从一个运营团队带着一个要解决的用例来找我,到质量预测以相当高的准确度实时显示在控制室的仪表板上,我花了几个星期的时间。

然而,几个星期后,预测准确性的突然漂移使我质疑整个模型的稳健性,进而质疑工业过程的稳定性!

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

预测的趋势似乎不错,但总是被低估。

我们可以从“绝对误差”度量的角度来看待它:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

上个月的预测准确度(MAE)

我们看到,过去四天的预测超出了我们与团队定义的稳健性阈值(22),并且显著高于 0.9 的平均绝对误差(M.A.E .)。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

我并没有花很长时间去检查和理解发生了什么:一个为期 6 个月的全面维护已经在周末进行了!

让我们来了解一下我们是如何分析数据的变化,从而使模型立即回到正轨的!

精度漂移的三个潜在原因

1)设备的完全更换

让我们想象一下,你用一台全新的压缩机替换了一台 40 年的旧压缩机。

是的,除了电场强度、压力、转速等,它的基本工作原理是一样的。测出来会完全不一样。

这可能是最糟糕的情况,因为预先收集的数据现在已经过时。更不用说车间布局或设备类型(从燃气转换为电力)也发生变化的情况了…

这里没有魔法:最简单的解决方案是收集新的数据,根据您以前的配置经验,可能将重点放在最相关的特性上…

2)测量系统的变化

全面维护不仅仅意味着更换备件或润滑剂;也可以是重新校准传感器、探头等。

我们的模型使用 8 个特征来预测产品的质量,所以我决定看看测量值是否有显著变化,因为尽管有维护工作,系统应该是相当稳定的。让我们来看看维护停止前 30 天和维护停止后几天的每个特性的中值:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

(出于保密原因,对数据进行了清理)

八个特征中的三个,包括最重要的一个(中的流速),似乎发生了显著变化。

但是我们知道“水流 1 ”和“水流 2 ”回路可以交替使用(一个优先于另一个,反之亦然),并且总流量应该保持稳定。我把这两个特征相加,检测是否有真正的变化;这并不明显。我对流出的流量做了同样的分析,同样的结论:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

因此,似乎模型的最关键参数(进气流量)的测量值发生了变化,并且很可能在完全相同的物理情况下增加了 5%!(这一点后来得到了维修团队的确认,他们重新校准了相应的传感器)

因此,为了保持整个数据集的一致性,我决定在维护和重新训练模型之前对所有值应用+5%的增量。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

在更新的数据集上重新训练模型后,上个月的预测准确度(MAE)

即使不完美,新模型也表现得更好,维护后的平均寿命从 3.5(原始状态)下降到 1.6。

(注意:在两种情况下(原始模型和更新模型),算法仅使用维护工作之前获得的值进行训练;这里没有目标泄漏!)

3)缓慢的性能下降

这种突然漂移的最后一个可能原因是,随着时间的推移,过程的性能已经慢慢下降…这就是为什么我们需要定期执行日常维护的第一个原因!

让我们来看看最近两次维护操作之间的流程性能:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

同样,在过程的自然变化之外,下降趋势是明显的,直到我们达到某种平稳状态!

现在的问题是:我们如何将这些信息集成到模型中?

一种可能的选择是简单地添加自上次维护工作以来经过的天数。

但是我建议以较低的频率提供“维护”信息。

提供较低频率的信息就像迫使模型在一个移动范围内工作,从而使过程的自然高点和低点变平。

例如。:如果您每天都获得预测和相应的结果,请提供自上次操作以来经过的周数。

因此,模型将更容易确定该特征的重要性。

如果您以决策树的形式考虑它,它可能看起来像:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

每次修正都对应于该期间的平均业绩下降。

显然,您需要几个周期来集成到您的数据集中,以便模型可以学习此模式,但是能够包括此信息(在本例中为 4 个维护周期)使我们的模型在维护重启后达到了更低的 m . a . e . 12

总之,获取维护周期信息和所收集数据的潜在变化对于确保您的模型能够长期持续至关重要!你可能会想到!

[## 皮埃尔-路易·贝斯康德关于媒介的文章

数据科学、机器学习和创新

pl-bescond.medium.com](https://pl-bescond.medium.com/pierre-louis-besconds-articles-on-medium-f6632a6895ad)

工业中的人工智能:如何利用传感器的准确性来创建增强数据

原文:https://towardsdatascience.com/ai-in-industry-how-to-use-sensors-accuracy-to-create-augmented-data-86c685a98379?source=collection_archive---------88-----------------------

了解如何通过估算传感器的准确性来扩充数据集,从而克服标注数据的不足。本文通过使用 Tensorflow 和 Scikit-learn 在一个工业案例上的实际实现来说明。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

郭锦恩Unsplash 上拍照

深度学习算法确实需要大量的数据!(委婉……)

当可用的标记数据不足以达到良好的准确度水平时,用于图像识别的标准技术是创建“增强图片”。

原理很简单:你可以创建同一只狗的人工图片,并进行或多或少的细微变化,这将有助于你的模型微调其网络权重,并最终提高其准确性,而不是只给你的深度学习算法提供一张狗的图片。

原始图片的经典修改将会以以下形式出现:

  • 对称(水平、垂直)
  • 旋转(角度)
  • 宽度或高度移动
  • 缩放、剪切、颜色或亮度变化

它们可以用 Tensorflow 中的几行代码轻松实现:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

伯爵,我可爱的狗🐶(原图)

from tensorflow.keras.preprocessing.image import ImageDataGeneratortrain_datagen = ImageDataGenerator(
    rotation_range=10,
    horizontal_flip=True,
    vertical_flip=False,
    width_shift_range=0.1,
    height_shift_range=0.1,
    #zoom_range=0.2,
    #brightness_range=(0.1, 0.9),
    #shear_range=15
    )

我总是对我的狗很好(即使是虚拟的!)所以我故意限制了转换!

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

扩增克隆人伯爵!

很容易理解,这种机制对于图片来说是合理的,因为这些变化不会影响主体,并且它还将帮助您的模型解释具有不同方向、颜色等的狗图片…

是否有可能将该技术应用于工业过程数据,以达到更高水平的预测准确度?

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

照片由郭锦恩Unsplash 上拍摄

让我们探索一个我过去工作过的用例。数据集(经过净化、规范化和预处理)存储在这里并且具有 250 x 52 的形状。

尽管每周 7 天、每天 24 小时、每 30 秒测量一次工艺参数,但由于获取一个样品的难度和成本,对应于最终产品浓度的标签数量是有限的。采样频率通常在 3 到 4 天左右。

这个小数据集的每一行都对应于在获取样本之前的最后 30 分钟内过程参数的平均值。

在评估了“经典”机器学习模型(RandomForest、SVM 和 GradientBoostedRegressor)之后,我惊讶地发现,根据所选的度量标准:平均绝对误差,一个简单的 Keras 模型正在实现最佳精度。

这个“不太深”的学习架构设计如下:

model = keras.Sequential([
# The 1st layer as the same shape as the number of input features
        layers.Dense(df.shape[1],
                     activation='relu',
                     input_shape=[X.shape[1]]),
        layers.BatchNormalization(),
        layers.Dense(12, activation='relu'),
        layers.BatchNormalization(),
        layers.Dense(1)
])

深度学习模型没有嵌入式交叉验证方法,因为在处理大量数据时通常不需要。

然而,当处理这样的小数据集时,训练/测试分割操作可以输出非常不同的配置,并且确实需要一个。

经过 5 k 倍交叉验证后,该 Keras 模型的平均绝对误差达到了 2.4 (相当于 4%的相对误差)。

是的,这不是一个非常高的精度,但从现场的角度来看,这仍然意味着从"盲目地在每个样品之间"“切换到”"在每一个时刻获得一个非常好的产品浓度估计值!

让我们来看看这篇文章的核心:我们的样本测量过程的统计评估(通过 ANOVA gauge R & R)确定了一个 2%的相对准确度。

简而言之,当我们测量 100 时,真实值可能是 98 到 102 之间的任何值。

当我与一位专门从事深度学习和图像识别的数据科学家同事讨论时,我抱怨说,我不可能像他那样为工业过程产生增强数据!

这就是他建议利用传感器的准确性来创造人为值的时候!

**X1, X2, X3, ..., X51 => Sample measurement at 100**could actually corresponds to:**X1, X2, X3, ..., X51 => Sample measurement at 98**
or
**X1, X2, X3, ..., X51 => Sample measurement at 99.5**
or
**X1, X2, X3, ..., X51 => Sample measurement at 100.2**
or
**X1, X2, X3, ..., X51 => Sample measurement at 101**
etc.

问题是:它是否会帮助我们的模型获得比仅用初始数据集训练时更高的精度?

答案是…

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

乔恩·泰森在 Unsplash 上的照片

至少,对于这个非常特殊的用例!

我玩的“超参数”是:

  • 传感器的估计精度:我决定谨慎行事,只考虑 1%
  • 初始数据集的复制因子:我用过 12,5,10。这是什么意思?

复制因子为 2 时,最终数据集将是以下内容的组合:

  • 初始数据集

  • 一个扩充数据集,基于初始数据集,但其大小是初始数据集的两倍,标记的数据与原始值相差 1%:

Initial row: **X1, X2, X3, ..., X51 => 100**Final rows:
**X1, X2, X3, ..., X51 => 100 (initial)
X1, X2, X3, ..., X51 => 99.5 (augmented)
X1, X2, X3, ..., X51 => 100.2 (augmented)**

我见证的改进如下:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

MAE Initial:             2,404342MAE (Replication x 1):   2,222344 (-0,18)
MAE (Replication x 2):   2,240588 (-0,16)
MAE (Replication x 5):   2,200172 (-0,20)
MAE (Replication x 10):  2,343116 (-0,06)

这种方法有明显的好处,但我想补充以下注意事项和警告:

  • 复制因子的“最佳点”似乎位于 2 和 5 之间: -低因子(< 1)不会对数据集产生真正的显著改进。
    -超过 5 将开始添加许多与实际值相比的随机值,精确度的提高可能会很快下降(只要看看 10 个复制因子的结果)。
  • 我没有试图增加 X 数据集,因为这里的例子中的输入特征已经是过去 30 分钟的平均值,因此,与“y”上的唯一采样相比,不容易出现不准确。
  • 一些非常特殊的训练分割配置(尤其是在非常小的数据集上)与不利的扩充数据随机化相结合,可能会导致实现比初始模型性能更低的性能
  • 只能在列车测试分割后执行增强过程!否则,一些几乎相同的值将落入训练集和测试集中。该算法将很容易推断出测试集中的值,如果它已经用它的几乎孪生兄弟训练过的话…这将错过训练和测试样本的全部意义。

长话短说:像往常一样,盲目复制粘贴这种技术是有风险的!

为了帮助您自己运行这个示例,并可能提出一些问题、评论、顾虑或想法,这里有相应的笔记本(最初创建于 Google Colab)。

请注意,出于保密原因,带标签的数据(y)也已标准化。因此,你应该在 0.0350.055 之间找到 MAE。

[## 皮埃尔-路易·贝斯康德关于媒介的文章

数据科学、机器学习和创新

pl-bescond.medium.com](https://pl-bescond.medium.com/pierre-louis-besconds-articles-on-medium-f6632a6895ad)

工业中的人工智能:为什么你应该同步时间序列中的特征

原文:https://towardsdatascience.com/ai-in-industry-why-you-should-synchronize-features-in-time-series-f8a2e831f87?source=collection_archive---------76-----------------------

用几行代码提高模型的准确性,避免这个常见的陷阱。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

Alexander Schimmeck 在 Unsplash 上的照片

你不需要成为数据科学家就能体会这种感觉:现在是冬天,你早上打开“热”水龙头,需要几秒钟(有时更久)水才能从冷的温度升到理想的温度。

原因很明显:热水需要时间从锅炉流到你手里。而且,换个说法,这两件事(要热水和得到一些)是“不同步”的。

如果你想在 t 时刻达到一个特定的温度,你必须预测水通过管道需要多长时间。

这与工业中的建模过程有什么关系?

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

郭锦恩Unsplash 上拍照

当您提取历史数据时,通常会得到一个带有时间戳的时间序列作为索引。该时间戳对应于记录值的时间:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

让我们假设产品的“粘度”是您的目标特性,并且在您的温度传感器和粘度计之间有一根 200 米长的管道。

当您在 06:06 测量粘度“ 61 ”时,同一时间测量的温度(10.8°C)是否会导致此结果?除非流量真的很快,大概不会!那么在建立机器学习模型时,应该考虑什么温度呢?

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

从工程的角度来看,你可以试着确定流速、管道直径等。猜猜产品从 A 到 b 需要多少秒。

从数据科学的角度来看,您可以使用数据本身来确定这种“不同步”并对其进行处理!

像往常一样,没有什么比一个简单的例子更好地理解我们如何应对这个问题了。

我们将创建 3 个循环特征(x1、x2 和 x3)和相应的目标“y”,作为所有这些特征的加权组合。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

让我们来计算一下(显然很强!)x1、x2、x3 和 y 之间的相关性:

**df.corr().loc["y",:]**x1    0.989357
x2    0.961574
x3    0.990654

现在,让我们在 x 特征和 y 特征之间引入一个随机延迟,因为在现实生活中,在“x1”、“x2”或“x3”上的变化确实影响“y”上的测量之前,应该需要几秒、几分钟甚至有时几小时。

(x1 移至-34;x2 移至-32;x3 偏移了-19)

这里的滞后现在是"视觉上明显的"但是让我们记住真实的情况要复杂得多!

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

我们现在可以将这个数据集视为我们的基线,因为“去同步特征是我们在现实生活中会得到的。正如您在下面看到的,功能之间的相关性已经急剧下降:

**df.corr().loc["y",:]**x1          x1_shifted
0.989141 -> 0.748233x2          x2_shifted
0.959595 -> 0.706007x3          x3_shifted
0.990252 -> 0.914779

现在只需循环每个特征并增加偏移值,以观察系数相关性如何演变。

当它达到其峰值时,那么它应该是目标和所述特征之间的实际滞后:

Best shift of x1_shifted at 34 with 0.9887480759856975
Best shift of x2_shifted at 32 with 0.9584397947951305
Best shift of x3_shifted at 19 with 0.9899320966442271

这与数据集中引入的初始滞后相匹配! (如果你没有看过,它们写在执行功能转换的代码下面。)

我们还可以查看 15 和 40 之间的行,以再次检查这些等级是否确实对应于相关峰值:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

我们现在可以获取初始数据集,并根据相应的滞后移动每个要素。由于这一点,机器学习算法将创建一个模型,其中目标及其影响参数很好地同步,并获得最佳的潜在结果!

像往常一样,在我们结束这篇文章之前,有一些评论:

  • 无论何时运行模型来预测目标,“实时”数据集也应该以同样的方式重新同步
  • 运行" pandas 时使用的默认关联方法。DataFrame.corr 为“ Pearson ”,适用于线性关系。如果你假设你的特征和目标有非线性关系,那么“ Spearman ”等级相关系数将是一个更聪明的选择。
  • 我发现了一些案例,其中一个数学奇点导致了一个从物理角度来看不可能的转变提议(太远或太近)。这就是为什么与现场专家交叉验证这些变化总是更好。
  • 深度学习架构,如长短期记忆(LSTM)神经网络也有能力管理这种特征的重新同步,但从计算角度来看,它通常更重。

[## 皮埃尔-路易·贝斯康德关于媒介的文章

数据科学、机器学习和创新

pl-bescond.medium.com](https://pl-bescond.medium.com/pierre-louis-besconds-articles-on-medium-f6632a6895ad)

日冕时代的艾

原文:https://towardsdatascience.com/ai-in-the-time-of-corona-c6d3193fada8?source=collection_archive---------22-----------------------

当过去与现在不再相关,我们如何预测未来?

如何在异常事件和极端环境中建立生产 AI/ML 的弹性

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

由车在拍摄

极端环境的挑战

冠状病毒是 2020 年的黑天鹅。不仅病毒的最初出现是一个意想不到的极端异常事件,人类试图遏制病毒的反应正在通过运行世界的系统产生巨大的涟漪——健康、商业、金融、零工经济、信贷、商业、汽车交通和旅游,仅举几例。

黑天鹅事件给机器学习(ML)模型带来了特殊的挑战。ML 模型根据以前看到的观察结果进行训练,以预测未来的情况。然而,今天这些模型看到的事件与他们曾经接受的训练完全不同。许多企业(尤其是在信贷和金融领域)有 100 到 1000 个实时生产模型在他们的组织中运行,对影响他们未来业务成果的数据做出不正确的决策。未来几天/几个月可能出现问题的模型包括信贷、房屋定价、资产定价、需求预测、转换/流失模型、演出公司的供需、广告定价等等。

建立一个模型来预测模型从未在训练数据中观察到的场景是很困难的。标准的模型训练过程将尽可能多的数据投入到模型中,并帮助拟合跨事件通用的数据结构。真正的黑天鹅事件没有足够的跨其他事件的可学习结构,留给人们来填补数据和模型空白。那你是做什么的?

这篇博文中,我们将首先通过进入系统的一些极端范围的数据点来量化这个黑天鹅事件。其次,我们将介绍一些最佳实践,以便通过对生产模型进行强大的监控、分析和故障排除来掌控异常事件。

我们当前的环境有多极端

我们先问一下,现在的环境到底有多极端?

非常极端

当您查看今天从天气、失业数据、交通模式、用户支出进入生产模型的输入要素数据时,它将与模型的训练数据大相径庭。我们来量化一下。

首先,看看本周刚刚公布的失业数据。328 万人申请失业的读数是第二高读数的 4 到 5 倍,是一个+25 倍的 sigma 事件。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

1995 年至今作者图表,资料来源——美国就业与培训管理局

任何使用失业数据作为输入并根据该数据做出决策的模型都使用了一个超出期望值超过20σ的特征。这是一个预计每 10 万年发生一次的事件**!这只是一系列极端事件中的一个例子,这些极端事件正被输入到制定日常商业决策的模型中。**

一个模型不可能完美地处理每一个意外的输入。记住这一点,重要的是要考虑整体系统对这些输入的弹性以及在问题出现时进行故障排除的能力。最重要的是团队要有可观察的模型;如果你不能观察,你就不能适应。这意味着对模型决策进行检测+分析。

所需的模型可观测性:

  • 异常事件应该是可以检测到的,并且会自动浮出水面
  • 异常值事件应与分析联系起来,以便对模型响应进行故障排除

很明显,失业数据将会严重偏离分布。

让我们看看汽车交通的数据。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

来源于 TomTom 国际

纽约市从周三(3 月 18 日)到周二(3 月 24 日)测量的交通流量。上周,流量已降至日流量的 20%左右,或日流量的 1-10%。

这一跌幅远远超出了预期的每日价值,也只是一个模型可能预期的一小部分。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

来源于 TomTom 国际公司

据测量,迈阿密的交通流量没有纽约下降得多。看起来迈阿密人不像纽约人那样积极接受隔离。在这种情况下,使用交通量作为输入要素进行特定于城市的预测的 ML 模型的输入变量会因城市而异。

所需的模型可观测性:

  • 监控输入数据的分布变化
  • 针对模型输入的强大拼接和过滤功能

在这一周里,我们已经看到人工智能没有为冠状病毒产生的事件做好准备。天气预报预测一直不准确,我们也看到银行考虑人工智能模型可能无法应对市场低迷

在这些极端时期建立弹性

对于面临这些快速变化的企业来说,目前在生产中使用的人工智能/人工智能模型是根据与今天的情况非常不同的数据进行训练的。

当一个企业的模型之前没有看到这些观察结果时,它应该做什么?换句话说,当过去与现在不再相关时,我们如何预测未来?

随着新冠肺炎继续影响许多人类系统,利用人工智能/人工智能的企业将不得不 在他们的生产环境中建立弹性。随着模型性能的波动,企业需要实时监控生产模型,以了解模型输入是如何变化的,以及模型在哪些方面存在不足。

进去的东西必须出来

这一切都始于数据进入用于生成预测的模型。

如果罕见事件和其他极端事件之间有相似之处,有一些方法可以将预测组合在一起,以创建一个基准期并进行分析。如果一个罕见的事件在输入数据结构中与训练集中的任何其他数据组都没有关系,您仍然需要监视它如何影响模型。

就新冠肺炎而言,这些情景不仅仅是一次性的异常值,而是数以百万计的快速演变的趋势,这些趋势正在世界各地不同的城市发生,所有这些趋势都有不同的时间表和反应。展开场景的规模需要许多不同的分析和检查,跨越许多不同的预测子群。

以下是 AI/ML 模型在生产中应该具备的一些输入级监视器:

  • 输入检查,以确定特性的值和分布是否与正常的基准期有很大不同
  • 检查单个事件或少量最近发生的事件,检测不在分发范围内的问题
  • 检测您的模型最敏感的特征是否发生了巨大变化
  • 用于确定特征与训练集的距离的统计数据

模型反应如何?

一旦您知道模型的输入已经改变,接下来要监控的是模型如何响应极端输入。

  • 检查特定预测子类的模型性能。某些行业,如能源、航空或旅游,可能存在重大风险。你需要快速在线检查各种预测
  • 使用以前的周期来产生最坏情况和基本情况,然后与结果进行比较
  • 根据你收到的每一个新的真实事件(真实世界的预测反馈)实时监控预测
  • 如果现实世界的反馈由于时间滞后而不可能,那么使用代理指标——您可以预测和测量的东西来确定模型的性能

极端环境下生产 ML 模型的最佳实践

在 Arize AI,我们每天都在思考生产环境中的 ML 可观察性和弹性。我们的目标是在这个不确定的时期将我们的一些经验传授给你的团队。生产 ML 模型的最佳实践与生产软件的最佳实践相差不远——构建可观察性工具,以了解模型或软件处于活动状态时发生的情况,从而在问题影响您的客户之前发现问题。

根据我们在许多公司部署 AI/ML 模型的背景,我们分享了在这些极端环境下生产 ML 模型的一些最佳实践。

  1. 跟踪和识别异常事件

这包括跟踪异常事件的输入数据和模型性能。注释这些事件并能够过滤异常事件有助于为未来的极端环境收集训练数据。考虑是否在数据中包含异常事件以用于未来的模型训练也很重要。该模型将积极应对未来的极端情况,但它也可能认为极端情况是新常态。

2。决定模型后备计划

在过去,当你的模型没有什么可以借鉴的时候,它会做什么?了解您的模型过去在极端环境中的表现有助于了解您的模型现在的表现。如果你的模型表现不好,你能根据最近 N 分钟或 N 天建立天真的预测,并将你的模型表现与这个天真的模型进行比较吗?

3。寻找相似事件

你对过去的类似事件有足够的观察能力来为当前的情况建立相似的模型吗?例如,如果您的模型将失业数据作为输入,您可能能够利用类似经济衰退(如 2008 年衰退)的失业数据。

4。构建多样化的模型组合并比较模型性能

对外部世界做出反应的实时模型今天可能比批量预测表现得更好。拥有多样化的模型组合使团队能够比较模型性能,并将流量路由到对极端环境反应更好的模型。

5。当模型性能无法提高时,要知道模型预测的不确定性。

有时候,可能没有好的模型。在这些情况下,你知道你的模型有多不确定吗?在这种情况下,考虑一种贝叶斯方法,在这种方法中,返回模型的预测及其置信度。

保持安全并监控您的模型!

参考

  1. 半岛电视台:天气预测影响冠状病毒爆发
  2. 美国银行家:人工智能模型可能难以应对市场低迷

感谢优步市场高级工程经理钦坦·图拉希亚对本文的编辑。

联系我们

如果这个博客引起了你的注意,并且你渴望了解更多关于机器学习可观察性模型监控,请查看我们的其他博客和关于 ML 监控的资源!如果您有兴趣加入一个有趣的 rockstar 工程团队,帮助模型成功生产,请随时联系我们,并在此处找到我们的空缺职位

人工智能是一个无限的游戏——你的公司有合适的游戏计划吗?

原文:https://towardsdatascience.com/ai-is-an-infinite-game-does-your-company-have-the-right-game-plan-for-it-b55bf8580685?source=collection_archive---------42-----------------------

许多公司仍然在努力为他们的业务采用更大规模的人工智能。他们心态的转变可能有助于他们做得更好。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

AI 是一个无限的游戏。(图片由 iStock photo 提供)

需要什么类型的战略思维来充分发挥人工智能和数据智能的潜力?

受 Simon Sinek 的“有限”与“无限”策略概念的启发(“无限游戏”,2019 年),本文试图挑战组织和领导者在从事人工智能(AI)计划时的思维模式。你如何参与这项改变游戏规则的技术,在人工智能和机器学习概念不断发展并改变业务基准的市场中,你需要什么来保持竞争力?

我认为目前的许多方法都存在根本性的错误。人工智能采用计划通常仍然是半心半意的,甚至是市场和投资者的托辞活动。但是,这样一个要求苛刻的环境需要一个适当的长期愿景和战略,这足以推动必要的业务和组织变革。这就是 Sinek 描述的“无限”心态。相比之下,“有限的”人工智能策略更关注眼前的挑战,比如通过为产品添加单一智能功能来赢得当前市场,或者通过基于自动化的成本降低来击败当前竞争对手。这可能是一个聪明的开始方式,但如果不致力于更长远的愿景,这是否会混淆为旅程建立组织所急需的战略投资重点。

然而,需要强调的是,不应孤立地看待人工智能。它是一个更大的数字技术和概念生态系统的先锋,目前正在改变我们周围的世界。

几年来,IT 行业一直在谈论人工智能能力的更广泛采用——甚至产业化。我们可以看到基础技术、数据和解决方案生态系统以及多行业概念采用方面的显著进步。期望仍然很高。例如,普华永道 2017 年的一项研究预测:“2030 年,人工智能可能为全球经济贡献高达 15.7 万亿美元,超过中国和印度当前产出的总和

我们还没有看到的是,全球对人工智能的巨大投资如何接近为大多数企业产生相应的结果。一些精通数据的公司正在努力取得成功,并在旅游、保险、投资或娱乐等行业树立了新的基准。然而,许多组织仍然在努力应对人工智能的新世界,许多人工智能计划仍然没有比概念证明或原型状态更进一步。

但是,如果试错是任何创新过程的自然组成部分,为什么这是一个挑战呢?问题是,这些公司中的许多根本不适合迭代创新过程,因此很可能在他们有机会成熟之前就停止努力。所谓“速赢”和“快速结果”的僵化文化限制了有效人工智能和数据驱动创新的机会空间。利用基于数据的自动化或创建智能用户体验既需要颠覆现有流程,也需要基础架构和应用程序具备更高的灵活性。这对于任何遗留系统或思维定势来说都是一个重大挑战。

无限商业思维专注于为执行长期战略创造合适的条件,而不是赢得眼前的短期游戏。在游戏规则不断变化的背景下,这是有意义的,就像人工智能这样的新兴领域一样。我相信,对无限游戏机制的理解可以为公司提供巨大的杠杆,使他们的人工智能工作更加有效。

那么,为什么人工智能的采用是一个无限的游戏——你怎么玩它?

从组织人工智能采用中吸取的经验教训

通过多年参与高级分析、数据挖掘、机器学习和人工智能概念,我的个人和专业热情一直是将这些概念应用到现实世界的商业应用中。与许多优秀的同事一起,我学到了很多东西。然而,许多公司在扩大其人工智能概念和组织时,仍然会遇到非常相似的挑战。

在我看来,这往往是由于对我们所处游戏的误解造成的。这不仅会导致错误的决定;它往往会在一开始就引发错误的讨论。想想自制或购买和技术策略、团队构成或市场策略,以及它们在长期战略承诺下会如何变化。人工智能计划通常始于管理层和组织的善意和热情。然而,令管理层感到惊讶的是,单个人工智能项目很少有积极的短期甚至中期投资回报。基于人工智能的解决方案的启动投资和所需的成熟时间需要更长的投资视角,涵盖概念的多代,并包括相关的用例。项目团队和数据科学家更擅长创建功能,以服务于组织的长期人工智能支持,而不是为少量预定义的问题构建单点解决方案。

人工智能的采用没有明确的开始、中间或结束,只有一个发展能力和扩展数据集和用例的过程。

无限人工智能采用战略的要素

那么,你如何为不断发展的事物做计划,包括技术、生态系统以及不要忘记用户的采用?

  • 业务关键用例
    健康的人工智能应用最重要的先决条件是强大的用例以及长远的眼光。当数据可用并且建立了最佳实践时,在开始时试验较简单的问题通常是明智的。但是为了确保战略影响和持续的管理,你的人工智能战略需要解决关键业务用例。需要明确的是,将人工智能驱动的概念投入生产从来都不是一件容易的事情。它包括对基础设施、能力、销售和维护流程的重要要求,并且不要忘记专门的合规性和治理。因此,选择的用例必须能够证明所有需要的启动工作。
  • 从“人工智能至上”转向“人工智能优先”的理念。实现人工智能概念的全部变革潜力需要重新设计相关的业务流程,通常还需要重新设计底层的业务模式。这意味着组织需要时间来成熟他们的概念理解,从将人工智能能力置于现有结构之上(“人工智能之上”)到围绕人工智能能力重新设计他们的解决方案(“人工智能优先”)
  • 敏捷项目管理连接到高层次的长期路线图 承诺
    技术,以及我们对其可能性的理解,都在不断变化。项目优先级和解决方案细节应该能够灵活地改变,并相应地成熟。里程碑很重要,但它们应该用于根据长期战略评估和调整当前任务,而不是用于“停止/继续”评估逻辑,这种逻辑会助长错误的优先级和负面的项目氛围。
  • 制造和购买策略
    围绕你的人工智能解决方案创造自己的知识产权可能是一项战略资产,但成本高昂,需要持续努力。作为一个经验法则,如果人工智能应用领域接近他们的价值产生过程和核心商业模式,并且如果知识产权难以复制,组织应该只追求它。对于大多数公司来说,这封信将不会围绕开发新的算法或工具,而是围绕数据集和功能的特殊组合,他们为自己的特定用例建模和调整。其他一切都可以而且应该从外部获得,要么是开源的,要么是打包解决方案的专业供应商。

人工智能咨询实践的教训

人工智能的采用不仅对产品和服务组织来说是一个挑战,当将人工智能纳入其咨询和基础设施实践时,对技术和商业服务提供商来说也是如此。此类计划通常始于向现有的分析团队添加数据科学家和/或向他们现有的精通数据的咨询团队添加新技能。这可以产生一个非常强大的技能组合,可以支持从后端应用程序、数据基础架构、分析到数据科学组件的整个数据价值链。

这是一笔巨大的资产,在市场上需求量很大。但这并不能保证成功。许多这样的咨询公司很难通过他们的人工智能计划获得足够多的资金,并且需要多年来通过传统的面包和黄油项目获得资金。

这个问题的一个原因是对人工智能概念更强的应用关注,以及作为人工智能团队的一部分对软件开发和用户体验技能集的相关需求。如果人工智能概念可以推动决策或流程自动化,那么它们将是最强大的,这反过来需要与业务应用程序和流程紧密集成。这是与传统的分析和报告概念的主要区别,传统的分析和报告概念通常侧重于向最终用户呈现见解。

尽管许多服务提供商已经建立了这样的多学科团队,但其中大多数都面临着扩大人工智能相关咨询实践的挑战。在我看来,建立一个成功和可扩展的人工智能咨询产品的成功因素是专注于产品中的一个或几个专门的人工智能用例领域,然后围绕这些领域建立相关的能力集群。一名优秀的数据科学家可以处理任何类型的用例,但扩展业务服务需要围绕一系列用例、选定的行业或选定的人工智能概念建立共享的 IP 堆栈。这是在整个团队中推进方法和工具堆栈以及共享最佳实践的基础,这对相关的营销和销售过程同样重要。人工智能通过用例及相关的好处进行销售,而不是通过使用的方法或工具。这样的人工智能概念可能会让专家们兴奋,但它们的价值很难向最终用户解释清楚。专注于行业或用例的咨询实践可以更好地将客户对话引向新的人工智能功能和相关的商业机会。

一个公司玩无限游戏需要什么条件?

人工智能的采用不是孤立发生的事情。总是局限于一个公司的文化和战略。只有整个公司都做好了玩的准备,知道了无限游戏的规则,才能在新的领域应用。在他的书《无限游戏》中,S. Sinek 定义了一些实现无限策略的一般元素,我认为这些元素提供了一个很好的起点:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

图一;无限策略的要素;来源:S. Sinek,无限游戏,2019

推进正义事业
无论你的企业是什么,为了给你的员工提供长期的动力,你需要为你的企业找到并追求一个真正的“正义事业”。正义案例可以是直接或间接有利于社会、人类发展或支持例如地球和自然保护的事情。乍看之下,可能更容易看出这样一个正义的事业对于非政府组织或社会和政府组织来说应该是什么样子。然而,所有组织都是整个社会的一部分,因此可以追求正义的事业。它可以为学校的健康膳食做出贡献,为其他企业提供融资,以促进地区经济发展。其他公司致力于探索技术创新,以推进气候保护或社会包容等社会关键任务,提高人们的生产力。正义的事业激励我们今天、下个月甚至十年后继续玩这个游戏。

信任团队
对于组织的长期成功来说,团队中的相互信任比规则和绩效体系更重要。相互信任为所有人创造了一个富有成效的工作环境,在这个环境中,他们可以感到精神上的安全。一个信任的团队将加强一种支持性的学习文化,这对于多学科团队的最佳运作是必不可少的。数据科学项目高度依赖于团队和组织对过程和结果的批判性评估能力。一个最终的解决方案通常是方向和方法的多次迭代和改变的结果。这种创造性和关键性的合作需要团队成员之间高度的信任和尊重。

值得尊敬的对手
在他的书中,Sinek 对竞争者和值得尊敬的对手做了重要的区分。竞争对手是你试图在争夺合同或客户的“有限”竞争中击败的人。一个有价值的对手是一个能挑战和激励你的人。你们一起定义和发展你们所处的市场。根据 Sinek 的说法,20 世纪 80 年代的苹果是“值得竞争的对手”心态的一个很好的例子,当时他们推出了小型个人电脑,而其他人,尤其是 IBM,仍然在投资客厅大小的商业机器。IBM 加紧了这场游戏,并通过仅经过 12 个月的开发就推出他们自己的个人电脑来应对挑战。苹果随后做出了一个惊人的公关举措,在华尔街日报上用整版广告欢迎 IB,广告中写道:
“欢迎来到自 35 年前计算机革命开始以来最激动人心和最重要的市场。[……]将真正的计算机能力掌握在个人手中,已经在改善人们工作、思考、交流和休闲的方式。”(S. Sinek,《无限游戏》,2019 年)

在由人工智能和数据智能驱动的新兴市场中,制定自己的战略很重要,但同时也要选择值得你追随的对手,然后与之竞争。与此同时,重要的是要明白,这将需要所有或大多数现有的球员,以建立这个巨大的和快速移动的新空间的生态系统。更重要的是,与每个人竞争是为了确定你想在其中扮演什么角色,以及你如何从其他人那里获益

存在的灵活性
在 IT 市场有一种普遍的说法,即公司必须拥抱灵活性,以收获人工智能采用中的转型能力。尽管我非常同意这一点,但我想补充一点,无限的心态是在战略层面上实现灵活性的基本促成因素。只有关注长期愿景和目标,才能提供重新思考方法和策略的自由。相比之下,短期有限的商业策略几乎没有给真正的创造力留下空间。

一家公司的商业思维通常直接体现在组织采用人工智能的优先顺序上。有限采用策略通常从关注成本降低和日常操作的自动化用例开始。虽然这可能会很好地工作,并为公司带来一些短期结果,但它并没有为推动和发展业务模式本身提供实质性的杠杆作用。思维有限的公司通常认为自己被市场的创新者和颠覆者追逐,而无限的参与者则设法释放新技术的潜力,让他们重新定义自己。

领导的勇气
存在灵活性指的是改变你的整个商业模式和取代传统做事方式的能力和意愿,通常是在当前商业模式仍然成功的情况下。
拥有无限思维的领导者会发现推进其事业的战略机遇,但只有强有力的领导者才能抵制短期胜利的诱惑,挽救选择。在现有策略似乎仍然有效的情况下,投资新策略需要勇气。所以,一个正常的商业反射就是驱使人们保存当前的状态。但从长远来看,所有保护和补贴旧战略或方式的努力都会削弱组织的财务和精神能力。在问领导的勇气应该来自哪里时,Sinek 也提出了一个很好的观点。它很少是个人生活改变的结果。通常,勇敢的领导是小步骤和决定的总和,由正义的事业激励和引导,并由值得尊敬的对手推动。

当前人工智能顶级研究社区的许多人都相信,我们仍然处于人工智能技术采用的非常初级的阶段,我们仍然远远无法想象商业和社会的相关变化。例如,我推荐计算机科学家和机器学习研究员迈克尔·乔丹的伟大文章*【人工智能——革命尚未发生】。因此,我认为,在这种环境下,公司最重要的技能是将变革作为企业文化的一部分。*

人工智能的采用是一个无限的游戏——让我们也这样玩吧。

参考文献:

Simen,Sinek《无限游戏》,企鹅商业 2019

确定奖品的大小;普华永道全球人工智能研究:利用人工智能革命,普华永道 2017

迈克尔·乔丹《人工智能— 革命还没发生叶 t》,中 04–2018。

人工智能是有缺陷的——原因如下

原文:https://towardsdatascience.com/ai-is-flawed-heres-why-3a7e90c48878?source=collection_archive---------23-----------------------

人工智能中的公平和人工智能偏差

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

比尔·牛津在 Unsplash 上的照片

人工智能已经成为每个人生活中不可或缺的一部分。从简单的任务,如 YouTube 推荐,到复杂的拯救生命的任务,如生产治疗疾病的药物,它已经无处不在。它正以比我们意识到的更多的方式影响着我们的生活。

但是,AI 公平吗?不,绝对不是。

很难定义一个公平的人工智能。这是我能想到的最好的解释。如果输出独立于敏感参数(例如,性别、种族、性、宗教信仰、残疾等),则给定的 AI 模型是公平的。)对于已经受到社会歧视影响的特定任务。

在这篇博客中,我将写关于人工智能偏见,人工智能偏见的真实例子,以及修复它的方法。

问题

人工智能偏见是由于用于训练模型的数据中固有的偏见造成的,导致了社会歧视。这导致缺乏平等的机会。

例如,假设我的任务是创建一个模型,以位置作为参数来计算一个人的信用评分。某些种族群体集中在某些地方。这将使我的模型在种族上偏向那些伦理群体,在获得信用卡和银行贷款的同时影响他们。

有偏见的人工智能模型加剧了当前的社会歧视,并为压迫铺平了道路。

人工智能偏见的真实例子

这里有一些人工智能偏见的真实例子

  1. COMPAS: COMPAS(惩教罪犯管理概况替代制裁)是美国法院用来判断被告(被指控犯罪的人)成为惯犯(重复先前所犯罪行的行为)的概率的软件。由于数据存在严重偏差,该模型预测黑人罪犯累犯的误报率是白人罪犯的两倍。
  2. 亚马逊的招聘:2014 年,亚马逊开发了一个人工智能招聘系统,以简化他们的招聘流程。人们发现这是对女性的歧视,因为用于训练该模型的数据来自过去 10 年,由于男性在科技行业占主导地位,大多数被选中的申请人都是男性。亚马逊在 2018 年刮掉了这个系统。
  3. **美国医疗保健:**美国医疗保健系统使用了一种人工智能模型,该模型为黑人指定了比白人更低的患同样疾病的风险率。这是因为该模型针对成本进行了优化,而且由于黑人被认为支付能力较低,该模型对他们健康风险的排名低于白人。这导致黑人的医疗保健标准降低。
  4. **Twitter 图像裁剪:**2020 年 9 月,Twitter 用户发现图像裁剪算法更喜欢白人面孔而不是黑人面孔。即,当具有与预览窗口不同的纵横比的图像被发布在 Twitter 上时,该算法裁剪图像的部分,并且仅显示图像的特定部分作为预览。这个人工智能模型经常在一张黑白脸的图片中的预览窗口中显示白色的脸。
  5. **脸书的广告算法:**2019 年,脸书允许广告商根据种族、性别和宗教来锁定目标人群。这导致护士和秘书等工作面向女性,而看门人和出租车司机等工作面向男性,尤其是有色人种。该模型还发现,当展示给白人看时,房地产广告的点击率更高,这导致少数族裔缺乏房地产广告。

这只是人工智能偏见的几个常见例子。在开发者不知情的情况下,有很多不公平的人工智能实践的例子。

你能如何修理它?

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

照片由 Unsplash 上的 Yancy Min 拍摄

迈向公平人工智能的第一步是承认问题。AI 是不完美的。数据是不完美的。我们的算法并不完美。我们的技术并不完美。当我们假装没有问题时,是不可能找到解决办法的。

其次,问问自己这个解决方案是否需要 AI。

不要害怕推出没有机器学习的产品——谷歌

有几个问题不依赖于数据。像寻找被告再犯的可能性这样的任务更多地依赖于情感而不是数据。

第三,遵循负责任的人工智能实践。我在下面添加了谷歌负责任的人工智能实践指南的要点。

负责任的人工智能实践:

  1. **使用以人为中心的设计方法:**设计模型,内置适当的信息披露,并在部署之前整合来自测试人员的反馈。
  2. **确定多个指标来评估培训和监控:**使用适合任务的不同指标来了解不同错误和体验之间的权衡。这些度量可以是来自消费者的反馈、假阳性和假阴性率等。
  3. **如果可能的话,检查你的原始数据:**人工智能模型反映了用于训练模型的数据。如果数据有错,模型也会有错。尽量拥有平衡的数据。
  4. **了解你的模型的局限性:**一个被训练来检测相关性的模型不一定有助于建立因果关系。例如,一个模型可能会了解到购买篮球鞋的人一般来说会更高,但这并不意味着购买篮球鞋的用户会因此变高。
  5. **测试:**进行严格的单元测试,以确定模型中的错误。
  6. **在部署后继续监控和更新您的模型:**考虑用户反馈,并在部署后定期更新您的模型。
  7. **设计一个具有公平和包容具体目标的模型:**与道德和社会研究领域的专家合作,了解并解释各种观点。尽量让你的模型尽可能的公平。
  8. **使用有代表性的数据集来训练和测试你的模型:**尝试评估你的数据的公平性。即寻找特征和标签之间的偏见或歧视性的相关性。
  9. **检查不公平的偏见:**从不同背景的测试人员那里获得单元测试输入。这有助于确定哪一组人可能会受到模型的影响。
  10. **分析性能:**考虑不同的指标。一个指标的改进可能会损害另一个指标的性能。

开发公平人工智能的工具

  1. FATE: 人工智能中的公平、问责、透明和道德(FATE),由微软提供评估可视化仪表板和偏见缓解算法的工具。它主要用于比较系统的公平性和性能之间的折衷。
  2. **AI Fairness 360:**AI Fairness 360 是 IBM 提供的开源工具包,可以帮助你检查、报告、减轻机器学习模型中的歧视和偏见。
  3. **ML Fairness Gym:**ML Fairness Gym 是谷歌提供的一个工具,用于探索机器学习系统对人工智能偏见的长期影响。

结论

在过去的几年里,公司和政府已经开始认真对待人工智能偏见。许多公司开发了评估人工智能公平性的工具,并尽最大努力打击人工智能偏见。虽然人工智能具有巨大的潜力,但现在对我们来说,记住人工智能系统的潜在歧视性危险并帮助开发公平的人工智能模型比以往任何时候都更重要。

关于我

我喜欢写一些较少谈论的人工智能主题,如联邦学习,图形神经网络,人工智能中的公平,量子机器学习,TinyML 等。关注我,了解我未来所有博客的最新动态。

你可以在 TwitterLinkedInGithub 上找到我。

AI 正在走向错误的方向

原文:https://towardsdatascience.com/ai-is-heading-the-wrong-direction-dc758f7e870?source=collection_archive---------15-----------------------

意见

衡量标准很重要,但我们遵循的是错误的标准

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

UnsplashNeONBRAND 拍摄的照片

四天前,汉娜·肯纳写了

“太多人工智能研究人员认为现实世界的问题无关紧要。社区对新方法的过度关注忽略了真正重要的东西。”

这不是第一篇(也不会是最后一篇)讨论人工智能社区如何遵循自己议程的文章。大型场馆公然忽视申请文件——工作侧重于将当前方法应用于现实世界的问题和这样做的挑战(有很多)。诉讼程序完全脱离现实。物体检测上额外的 10%远比癌症死亡率减少 1%更有价值。

人工智能社区在很大程度上忽略了一个显而易见的事实:深度学习是一门实验科学。尽管有其正式的根源,神经网络是难以解释的大规模非线性系统。尽管越来越多的工作致力于它们的解释,神经网络仍然像以往一样神秘。我们了解它们的唯一可靠工具是科学方法——它深深植根于实验之中。

矛盾就在这里:**尽管本质上是实验性的,这个领域拒绝纯粹的实验。**平均神经网络论文呈现其新颖性,尝试形式化证明,并做消融研究。
结尾。这是实验的极限。

想象一下,如果土木工程界决定发明新颖的桥梁设计,但选择在桌子大小的乐高复制品上进行所有验证。没有昂贵的模拟,也没有使用真实建筑材料的试验。你会相信新提出的设计吗?你会相信这些实验足以投资数百万美元来实现它们吗?我不这么认为。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

面向建筑商的 ImageNet—获得您的

简化的世界模型对于快速原型和尝试想法很有用。他们暗示好的设计,即使他们不能证明它们。为了实际的证明,你需要世界。这是一个两步过程

现代人工智能研究停留在前半部分:基准测试。真正的用例是另一半——缺失的那一半。 ImageNet,COCO,CIFAR-10,以及 sort 都是 AI 的乐高。他们允许我们尝试新的想法,摒弃不好的想法。它们是很好的工具。然而,它们是达到目的的手段,而不是目的本身

消息是而不是当前的作品很糟糕,远非如此。问题是目前学术界和现实世界之间的脱节。

考虑一下情节。它展示了 COCO 对象检测基准测试的最新进展。每个小点都是一个不同的模型——一项新技术或现有技术的混合。领导者以蓝色突出显示。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

代码为的论文 COCO 测试开发排行榜

图表显示了从 2016 年 1 月的 28.8 AP 到 2020 年 7 月的 55.1 AP 的轨迹。进步是不可否认的。根据该图,EfficientDet D7x 是当前用于对象检测的最佳技术。然而,我问你:你会为应用程序实现这些模型中的哪一个?

你甚至不会回答的几率很高,因为你不知道我在说哪个应用程序,也不知道它的要求是什么。它需要实时运行吗?它能在移动设备上运行吗?它要识别多少个类?其用户对错误检测的容忍度如何?等等。

**根据不同的答案,以上都不值得考虑,包括 EfficientDet D7x。**例如,如果模型必须在手机上实时运行,这些模型中没有一个在性能上稍作调整。更糟糕的是,无法保证这些模型能够在连续的帧中产生一致的检测结果。我甚至想不出一款应用需要最高质量的检测,除了高精度之外没有其他要求。

换句话说,研究团体追逐的指标只服务于团体本身,不服务于任何人。

B ack 在 2015 年,将神经网络的深度增加到十几层以上不利于性能。何等人*、*在著名的 ResNet 论文中假设,通过跳接连接非连续层可以扩大容量,因为这将提高梯度流量。

在第一年,ResNet 在几个基准比赛中取得了优异的成绩,如 ILSVRC 和 COCO。到目前为止,你已经意识到这只是一个暗示,表明 ResNet 是一个重要的贡献——这不是证据。

ResNet 在人工智能历史上的地位的明确证据是建立在它之上的大量工作。ResNet 引人注目的方面是它解决的不相关问题的数量,而不是它赢得的比赛。而且,平心而论,真正的贡献是 skip 的想法,而不是架构本身。

同样,焦损失论文经受住了时间的考验,因为它的贡献给其他人的工作带来了真正的改善。的关注文件遵循同样的路线。每天都有一篇新文章展示注意力是如何提高某个基准的(而专注的损失会让它变得更好)。

重要的不是比赛。这是遗产。其实 AlexNet 在 2012 年就拿下了 ILSVRC,ResNet 在 2015 年就拿下了。你能说出 2013 年和 2014 年的获奖者吗?2016 年,2017 年,2018 年举办的挑战赛呢?你确定每年都有一个 ILSVRC 吗?

所以你可能会问,为什么会这样?为什么没有更好的基准或更有用的指标?我们如何衡量遗产或影响?

可悲的事实是…我们不能。我们可以使用引用次数或下载次数,或者 Reddit 提及次数或 GitHub stars。然而,这些都是有缺陷的指标。为了公平的比较,我们需要考虑每一个细节,同时将等式中的所有偏差标准化。这太难了。

例如,为了比较注意力的遗产和 ResNet 的遗产,我们需要考虑这些概念的任何成功使用,权衡它们的相对影响,并根据年龄(ResNet 更老)和范围(注意力也与文本相关)进行标准化。显而易见,量化这些属性是一项巨大的任务,很可能与任何基准或指标一样存在缺陷。《华尔街日报》的影响因子等观点甚至没有触及这个问题的表面。

有些目标就是无法量化。谁是最重要的人物:被认为是西方音乐最有影响力的作曲家巴赫,还是被认为是最有影响力的戏剧家莎士比亚?比较他们的工作毫无意义,更不用说他们的领域了。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

巴赫还是莎士比亚,音乐还是戏剧?

这让我们走进了死胡同。我们可以衡量准确性,我们可以衡量速度,但我们无法衡量影响力。我们都同意我们需要更好的科学,但是我们如何判断一门科学比另一门好呢?我们如何衡量研究和现实之间的脱节?

我们想和 AI 一起前进,但我们不知道前进的方向是什么,也不知道我们已经走了多远。

这并不是艾一个人的问题。我们想要更好的政府,更好的医疗保健,更好的教育,但是我们如何真正量化这些东西呢?到目前为止,最不成功的方法(也是最流行的方法)是**替代指标。**surrogate 是一种替代品——我们用来代替其他东西的东西。比如 COCO AP 评分。

我们无法衡量人工智能的进步,但我们可以衡量目前的物体检测方法有多精确。由于物体检测是人工智能的一部分,如果我们在这方面取得任何进展,我们也可以期待在人工智能方面取得进展。在 COCO 之前,我们使用 ImageNet Top-5 结果…直到我们搞定它,所以我们转向更具挑战性的问题。从一个问题跳到另一个问题,我们也希望在更好的人工智能方面取得进展。

我们一直都这样。我们不能训练检测模型来提高它们的 AP,但是我们可以教它们减少包围盒坐标的 L2 损失。损失是不可微度量的替代物。L2 损耗不是 AP,但是我们知道低 L2 损耗与高 AP 相关,所以它是有效的。

曾几何时,识字率是许多国家衡量教育进步的主要标准。几十年后,识字率高到足以让重点转向更高的学校毕业率。然后,更高的大学出勤率。我不知道学位是否像我们认为的那样与教育相关,或者高中是否教授他们应该教授的内容,但这些是我们今天的目标指标。

从某种意义上说,解决这类问题没有正确的方向。所以,从定义上来说,所有的路线都是错的。我们能够增加选择一条不那么错误的道路的几率的唯一方法是尽可能多地走这条路。使用人工智能术语,我们需要使用更大的批量,并尽可能多地采样分布。

这意味着我们必须拓宽我们的关注点,不仅要关注“准确性”和“速度”,还要关注“稳健性”或“一致性”等问题最重要的是,我们需要从精心挑选的基准转移到现实世界

鉴于我的个人帐户正在研究乳腺癌检测算法,很容易认为这个领域已经解决了。最近的 作品在题目上取得了超人的分数,然而,你没有看到这些算法在任何医院得到应用。原因很简单:行不通。

我知道这听起来有点牵强,但它非常简单:如果你在数据集 A 上训练,该算法在数据集 B 上不起作用,尽管它是同一个东西:乳房 x 光照片。今天没有一种已知的技术可以在一个数据集上训练,而不需要微调就可以在其他数据集上很好地工作。您必须为每台机器/医院建立一个数据集,以获得任何有用的结果。从公制角度来看,场已经解决了。实际上,它甚至几乎没有开始。

**最重要的是,算法很少甚至没有提供对答案的洞察。**站在医生的立场上:你会因为一台机器这么说而告诉别人他们得了癌症吗?你不会;你会再看一眼这些图像。如果人工智能不被信任,它将永远不会被使用。

到目前为止,出版作品的主要指标是 AUC 分数。它告诉你该算法如何将乳房 x 光片分类为良性和恶性。它没有告诉你它对其他数据集有多稳健,或者其中任何一个是可以解释的。换句话说,它几乎没有回答:它有用吗?

推进人工智能没有正确的道路,但肯定有非常错误的道路。业内人士不需要太多时间就能意识到大多数文献是多么不适用,真正紧迫的问题是如何被明显忽视的。就像我开头说的,这篇文章的信息是而不是说现在的作品不好。关键是目前学术界和现实世界之间的脱节。我们过于狭隘地关注准确性。

再次引用汉娜·肯纳的话,“社区对新方法的过度关注忽略了真正重要的东西。”在我看来,真正重要的是推进我们的社会——我们希望通过改善人工智能来实现这一点。然而,只有当我们面对真正的社会问题时,我们才能做到这一点。比精确的物体检测更复杂的问题。

欢迎评论或者联系我。如果你是中新,我强烈推荐订阅。对于数据和 IT 专业人员来说,中型文章是 StackOverflow 的完美搭档,对于新手来说更是如此。注册时请考虑使用我的会员链接。

感谢阅读:)

人工智能学习飞行(第 2 部分)|创建您的定制强化学习环境并训练您的代理

原文:https://towardsdatascience.com/ai-learns-to-fly-part-2-create-your-custom-rl-environment-and-train-an-agent-b56bbd334c76?source=collection_archive---------10-----------------------

Tensorforce 让定制强化学习变得简单

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

来源:Pixabay

从伊卡洛斯燃烧他的翅膀到莱特兄弟翱翔天际,人类花了几千年才学会飞行,但一个人工智能要多久才能做到?

介绍

大家好!

欢迎回到这一系列文章,我将写下我使用人工智能驾驶飞机的旅程(第一部分是这里是)。

在上一篇文章中,我们根据代理的动作定义了从一个状态到另一个状态的转换函数

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

在本文中,我们将呈现一个完整的例子:

  • 如何使用Python/tensor force轻松创建你的自定义 RL 环境****
  • 如何在您的环境中定制、培训和测试最先进的 代理

我们首先简要回顾一下什么是强化学习什么是**。然后我们要为今天的练习定义我们的环境** ( 动作状态奖励)(飞机会尽可能高效的学习起飞)。最后,我们将定义我们的代理(我们将使用的代理的类型、超参数优化、训练、测试)。

什么是强化学习?

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

强化学习是机器学习的一个分支,它允许训练代理人如何根据当前状态选择最佳的行动序列,以最大化长期回报。这个动作序列被称为策略。强化学习通过试错模仿现实生活中的学习过程。

代理从一个给定的状态开始,它采取一个行动,然后观察其环境的状态,并因达到这种状态而获得奖励(或惩罚)。强化学习的目标是理解行动、状态和奖励之间的关系,以便找到在任何给定情况下采取行动的最佳顺序。这完全符合我们的问题,因为控制飞机可以很容易地描述为采取推力和俯仰动作的序列,从而实现最佳轨迹。

在我们的虚拟平面示例中,动作(推力和俯仰)和结果(奖励和新状态)之间的关系是已知的,因为我们在前一篇文章中已经设计了物理模型来计算它们。然而,它不为代理所知(否则它将变成规划而不是强化学习)。因此,代理必须了解其环境如何工作,以选择最佳的操作。

环境定义

如前所述,我们将使用 张量 来实现我们的工作。这个库允许我们相当容易地创建自定义环境,并进行大量的自定义。它提供了一种易于定制的先进代理的实现。Tensorforce 的自定义环境定义需要以下信息(来自 Tensorforce 的文档):

-Init 不言自明,初始化创建环境所需的值(更多细节见文档

-状态定义状态表示的形状和类型。在本例中,它由 8 个浮点数表示(因此它有 8 个连续的维度)。

-动作定义代理可用的动作的形状和类型。在本例中,代理有可能在 12、3 和 4 之间选择一个动作(其中每个动作将由环境处理以创建下一步,例如,我们可以在网格世界游戏中想象以下关系,1:向上,2:向下,3:向左,4:向右)。

-重置将环境恢复到其开始状态,以便开始新的一集。因此,它与状态相同。

-Execute 处理代理选择的动作,并收集新状态、奖励以及代理是否达到终止状态。

环境定制

现在让我们定制我们的环境吧!对于我们的第一个案例,我们将训练机长(我们的人工智能飞行员)学习如何起飞。我们将以它为例详细介绍所有步骤。

机长还不知道如何着陆,但没关系!(来源: gfycat )

状态和动作

让我们从定义我们的状态动作开始。

为了能够学习如何飞行,我们希望机长观察飞机的位置和速度(水平和垂直)。因此,我们希望我们的状态空间是 4 维的(2 维用于水平和垂直位置,2 维用于水平和垂直速度)。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

国家代表权

为了驾驶飞机,我们希望我们的机长能够控制飞机的推力(或功率)和俯仰(或方向)。推力将以 10%的增量(最大功率的 50%、60%、70%、80%、90%、100%)从发动机推力的 50%限制到 100%。这将有助于训练,将功率限制在飞行中实际使用的值。音高将被限制为实际的正值(从 0 到 15)。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

推力和俯仰

这导致了以下实现:

终端状态

现在让我们研究一下终端状态。我们将定义一集的三种结尾方式:

  • 飞机到达 25m 高度(这是我们对起飞的定义)。
  • 飞机在没有起飞的情况下冲出跑道(> 5 公里)
  • 这一集持续了 100 多秒。

自我。FlightModel.Pos[1] 是飞机在跑道和自身上方的垂直位置。FlightModel.Pos[0] 它离跑道起点的水平位置。

奖励

下一步是奖励的定义。它们需要被设计成鼓励代理执行我们的任务,它需要被足够频繁地遇到,以便代理快速学习,同时足够精确,以便代理仅学习我们寻求的行为。我们希望我们的机长尽可能快地起飞,因此我们希望鼓励最短的起飞距离或最短的起飞时间(这两者是直接相关的)。

为了实现这一点,我们将对代理为达到目标所花费的每一个时间步骤进行惩罚。我们可以把它想象成起飞每一秒钟就从机长的银行账户里取出 1 美元。如果它达到目标(达到 25 米的高度),我们也会奖励他,奖励金额将基于起飞时还剩多少跑道。我们可以把它想成大概是每剩余一米跑道给他 1 美元,以激励他使用尽可能少的跑道,同时也奖励他成功起飞。

执行

最后但同样重要的是,我们将使用前一篇文章中定义的转移函数,根据当前状态和动作(执行代理的动作)计算下一个状态和奖励。

转换函数( compute_timestep )在我们的飞机环境中定义如下:

对于您的定制环境,您必须提供自己的转换函数。既然已经定义了环境,让我们继续进行代理定义!

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

我们现在有一个完整的环境!

代理定义

我们的机长需要能够理解连续状态(位置和速度)和离散动作(推力和俯仰)之间的复杂关系(我们的转换函数,他不知道),以便最大化其长期回报。

Tensorforce 已经实现了多个代理(深度 Q 网络、决斗 QDN、演员评论家、PPO …),所以我们不必自己动手。

为了避免这篇文章内容过多,我们不会详细讨论代理的选择以及它们是如何工作的。在尝试了不同的代理之后,很明显最适合我们任务的是 PPO(近似策略优化)算法。有关其工作原理的更多详细信息,请参考这篇文章。它们之间的特性和优势可能是一整篇文章的主题,但是我们今天将继续关注实现。

代理实现

下面是取自 Tensorforce 文档的 PPO 代理的基本实现。我们将在接下来的部分中讨论超参数,并暂时坚持使用默认值。

随着代理的运行,我们已经完成了整个框架。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

一切准备就绪!

培训和测试

现在环境和代理都好了,系好安全带,准备起飞!

(来源:吉菲)

让我们看一下初始化我们的环境以及训练和测试代理的基本代码。

这个函数采用我们之前定义的环境以及我们的代理,并在给定的剧集数内运行它。有两种模式,训练模式(允许探索),用于在大量剧集上训练代理;以及用于评估代理性能的测试模式(不允许浏览)。

run 函数将由 runner 函数调用,以便分批执行剧集,通过在每批之后执行测试运行来监控训练期间的结果,并收集结果。

这是控制这些功能的主脚本。

让我们来看看这个基本脚本的结果:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

1 批= 100 集

结果并不令人印象深刻。不仅代理人需要更多的跑道来起飞,随着时间的推移情况会变得更糟,而且最佳起飞距离也与现实生活中的 1.7 公里左右的结果相去甚远

超参数调谐

为了改进我们的结果,让我们看看我们的代理的主要超参数(要更深入地了解那些超参数,请阅读这篇文章和关于 PPO 的原文):

  • 折扣:该参数描述了代理对未来的展望,而不仅仅是对未来几个奖励预期的展望。
  • 探索:这个参数是采取随机动作而不是由代理的策略决定的动作的概率,顾名思义,这允许代理尝试它通常不会去做的动作。
  • 子采样分数:这是批处理时间步长与子采样的相对分数(为了减少使用的数据量)
  • 熵正则化:这个参数有助于策略不要“太确定”和一开始就冻结。
  • L2 正则化:这是为了使代理不过度拟合而添加到损失中的随机噪声量。
  • 似然比裁剪:该参数定义 PPO 中使用的替代目标将被裁剪多少,以将策略的变化保持在安全范围内。

为了找到这些参数的最佳值,我们将针对这些参数的不同值运行一系列剧集,并通过使用起飞距离作为得分来观察最佳组合。我们将使用的脚本基本上是一个网格搜索。我们将直接将其他超参数冻结为默认值或任意值,在本例中我们不会尝试优化这些值。

然后,我们使用该函数迭代一系列超参数,并计算最佳组合。每个组合将在 100 批 100 集的跨度内运行。

让我们首先检查非网络参数结果(子采样分数、似然比剪裁、l2 正则化、熵正则化)。

下图表示具有相同给定参数值的所有配置中的平均起飞距离(例如,在第一个图中,蓝色曲线表示二次采样分数为 0.2 的所有情节的平均起飞距离)。我们可以看到这种距离的演变,因为代理学习了具有相同参数的情节。曲线周围的彩色区域代表标准偏差。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

1 批= 100 集

从这些图表中,我们可以获得所研究参数的最佳值,同时也观察到它们对结果没有非常重要的影响:

  • 子采样分数:0.3
  • 似然比削波:0.1
  • l2 正则化:0.1
  • 熵正则化:0.01

然后,我们对网络参数(每层的大小和神经网络的深度)进行同样的操作

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

1 批= 100 集

最佳网络参数是:

  • 大小:32(使用 64 可以获得更好的精度,但是 32 允许类似的结果和更好的计算效率)
  • 深度:4(同样,不是绝对最好的结果,而是最好的平均结果和良好的计算效率)

现在让我们来看看最后两个参数,折扣和探索:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

对于折扣系数,我们可以看到,对于 0.5 的值,它在整个研究期间并没有真正改善,对于 0.9 的折扣,它确实达到了大约 2000 米起飞距离的平台期;最后,1.0 的折扣达到 1700 万的平台,同时比 0.9 的折扣系数花费更少的时间收敛(大约 50 集,而不是大约 80 集)。因此,我们将选择 1.0 的折扣系数。

对于探索因素,结果更加接近,所有 3 个因素(1%、0.1%和 0.01%)最终似乎都表现得相当好(尽管 0.1%似乎收敛得更慢)。然而,在研究结束时,1%的勘探系数似乎是最好的,因此我们将选择这个值。

结果

使用固定的超参数、我们定义的环境和我们训练的代理,我们现在可以观察 CaptAIn 做得如何。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

在这个图表上,我们可以看到每一批 100 集的每一批之后达到的起飞距离。我们可以看到,由于探索,起飞距离总体上在减少,并且有一些周期性的退化。最终实现的起飞距离为 1725 米。

该值与实际 A320(我们正在建模的飞机)所达到的值相当,因此结果令人鼓舞!现在让我们来看看代理是如何做的,也称为 T2 政策。我们先来看看培训阶段:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

这是每千集政策的演变。每一张图表都代表了代理人在每一集的每个时间点所做的事情。蓝色曲线(数值在左边)是推力,红色曲线(数值在右边)是俯仰角。起初,代理人执行看似随机的行动,并没有设法起飞。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

机长最初的政策看起来不太像起飞,偏离了跑道

然后,我们可以看到代理如何逐渐收敛于在整个事件中应用全部推力,并且只有当飞机达到足够的速度时才旋转。行动的高度可变性是由于训练代理人所固有的探索性和随机性。我们现在将切换到测试模式来观察实际的策略(没有探索)。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

政策 vs 时间超过 100 批次,题目中的数字就是该批次的编号。蓝色表示推力(5 =最大功率的 100%,0 =最大功率的 50%),红色表示俯仰角(从 0°到 15°)。

在这部动画中,我们可以看到每一批 100 集超过 100 批的政策演变。类似于训练阶段,我们观察到代理向它的最终策略收敛:在整个事件中使用全功率,并且在获得足够的速度(大约 30 秒)后才旋转。我们还可以观察到起飞时间从一集 100 秒的最大允许时间减少到 33 秒。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

最终策略是推力恒定为 100%功率(力强度为 5.0),25 秒时俯仰角为 12°。

事情是这样的:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

机长的最终政策(为了形象化,高度被夸大,速度增加)

总结一下,机长已经成功起飞,甚至比真正的飞行员还要好!尽管这看起来并不令人印象深刻,因为人类会很容易地发现使用全功率并在一定速度后旋转飞机是正确的方式,但我们必须记住,机长从未见过飞机起飞,而是完全靠自己发现的!

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

我们做到了!(来源:吉菲)

现在,我们已经了解了如何在 Tensorforce 中创建自定义环境并使用它来训练和优化代理,您现在可以使用我们定义的框架将强化学习应用到您自己的环境和问题中!

后续步骤

机长刚刚学会如何起飞,如何让他实现水平飞行和着陆还有待观察。然而,这些任务不像起飞(像现实中一样)那么容易,需要一些更复杂的方法,而不仅仅是使用预先定义的代理和“简单”的奖励。为了保持这篇文章的主题是如何从头开始做一个简单的 RL 问题,我们将在下一篇文章中讨论奖励工程,以便队长登陆!

在经历了几百万次失败的着陆和水平飞行试验后,我暂时离开了机长休息区。(来源:吉菲)

感谢阅读,我真的很喜欢分享我的强化学习之旅,我将非常感谢你的回报。敬请关注下一部分!

扬·贝特洛

我使用的完整代码(Python)可以在我的 Github 上找到:

[## YannBerthelot/飞机模型

RL 的 PlaneModel 环境。在 GitHub 上创建一个帐户,为 YannBerthelot/PlaneModel 开发做贡献。

github.com](https://github.com/YannBerthelot/PlaneModel)

资源

https://www . coursera . org/learn/complete-reinforcement-learning-system/home/welcome:关于 RL 理论的伟大 MOOC(但缺少一点点或真正的实现,主要是数学,从今以后尝试自己的项目的重要性!)

https://tensorforce.readthedocs.io/en/latest/:tensor force 文档,相当完整,但有时不太容易理解。

https://medium . com/aureliantactics/ppo-Hyperparameters-and-ranges-6 fc2d 29 bccbe:关于 PPO 超参数的好文章

https://towards data science . com/the-complete-reinforcement-learning-dictionary-e 16230 b 7d 24 e:大部分 RL 术语的清晰解释

https://arxiv.org/pdf/1707.06347.pdf:PPO 纸。

https://toppng . com/black-and-white-plane-png-free-PNG-Images _ 71843:飞机动画使用的 PNG

AI 20 秒学会乘法

原文:https://towardsdatascience.com/ai-learns-to-multiply-ce844c68aefe?source=collection_archive---------53-----------------------

AI 学习乘法能有多快多准?

今天,人工智能正在完成曾经被认为超出人类能力的任务。从检测视网膜病变的眼睛到威胁生命的肿瘤,人工智能很快就能完成所有复杂的任务。

今天我们下坡跑,看看人工智能如何执行现代计算机最简单的任务之一:乘法。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

Canva.com 的股票图片

在这篇文章中,我们将尝试教一个机器学习模型乘法,并看看它的表现如何。帖子会更倾向于 ML 的初学者一方,代码最少(准确的说是 14 行)。

声明:在现实生活中,你永远不会希望一个 ML 算法为你执行乘法。这篇文章只是带你做了一个实验,试图建立一个做算术的机器学习模型。让我们开始吧。

我们在这里的目标是开发一个模型,它以一个整数作为输入,并给出一个输出,这个输出是输入乘以某个数字,让这个数字为 5。所以,如果你给了 10 英镑作为投入,你肯定期望 50 英镑作为产出。请注意,我们不会告诉模型我们正在寻找的任务是一个简单的乘法;它必须自己想办法解决。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

作者图片

重要的事情先来

我们的第一项工作将是创建一个示例数据集,通过查看该数据集,模型可以了解到我们正在寻找的任务是乘以 5。我们将使用 1 到 300 之间的 10k 个随机生成的数据点。因此,我们有 10k 个输入数据点[20,120……5,15]和 10k 输出数据点[100,600……25,75]即输入点数乘以 5。Python 中的相同代码如下所示。

import random
X=[]
Y=[]
for i in range(10000):
    n = random.randint(0,300)
    X.append(n)
    Y.append(n*5)#X is the input array and Y is the output array

答对了。我们已经准备好了数据集。现在,让我们设计一个可以学习我们任务的神经网络。一个基本的教科书式人工神经网络设计看起来像下图(图 1)一样,其中有许多隐藏层和许多神经元,但那是为了复杂的任务,如数字分类。对于我们简单的乘法任务,只有一个隐藏层和一个隐藏神经元的简单神经网络可能就可以工作。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

作者图片

建筑时间

让我们为图 2 中的架构编写代码。看看这个模型能不能学会乘 5。我们在 Tensorflow 上面使用 Keras,一个高级的 ML 库。我们知道,我们试图构建的架构是一个简单的顺序网络。我们添加一个带有一个神经元的密集层,这将是我们的隐藏层,然后我们再添加一个带有一个神经元的层,它将保存我们的输出答案。我们对所有神经元使用“relu”优化函数。

我们使用均方误差来查看每一步的模型预测和地面实况之间的误差,并使用“Adam”优化器来优化我们的损失。“metrics”参数在启用时会显示您的模型在训练时的状态。架构设置好了,现在模型都准备好学习了。我们最后使用 model.fit()函数,其中模型试图理解输入和输出之间的关系。

我们传递输入(X)、输出(Y)、批量大小:在重置模型权重和偏差之前要查看的数据点数、验证分割:用于验证的数据集部分和时期:模型遍历整个数据集的次数。

from keras.models import Sequential #using Keras Library
model=Sequential()
model.add(Dense(1,activation='relu',input_shape=(1,)))
model.add(Dense(1,activation='relu'))
model.compile(loss='MSE', optimizer='adam', metrics=['accuracy'])
model.fit(X, Y, batch_size=50,
              validation_split=0.1, epochs=100, verbose=1,shuffle=1)

让我们看看在模型被训练时打印的一些统计数据。

#From 10k samples, since validation_split=0.1, we trrain on 0.9*10k i.e. 9k samples.After First iteration
Epoch 1/100
9000/9000 [==============================] - 1s 148us/step - loss: 625973.1757 - acc: 0.0038 - val_loss: 577468.6391 - val_acc: 0.0020After 74th iteration
Epoch 74/100
9000/9000 [==============================] - 0s 24us/step - loss: 0.0723 - acc: 0.9583 - val_loss: 0.0595 - val_acc: 1.0000

看看第 1 步和第 74 步的准确度差异。开始时的准确度为 0.0038 或 0.38%,这表明模型在开始时不知道输入和输出之间的关系。一开始的损失也是巨大的。随着训练的继续,模型开始理解数据,准确性提高,损失(误差)减少。

在第 74 步之后,该模型具有 0.9583 或 95.83%的准确度,即,它能够以 95.83%的确信度告知该任务是乘以 5。我们可以看到,在 74 次迭代中,验证损失也从 0.20%提高到了 100%。经过 100 次迭代后,训练精度(acc)和验证精度(val_acc)都达到 100%,表明我们的模型成功地发现了这种关系是乘以 5。

在 NVidia 940 MX 4 GB GPU 和 16 GB RAM 上,训练过程需要大约 20 秒来完成 100 次迭代。那确实是快速的学习。

结果呢

最后,是时候测试我们的模型了。让我们在 test_array 中取任意五个数字,并使用上面建立的模型来获得预测。理想情况下,输出应该是 test_array 元素乘以 5。

test_array=np.array([4,27,100,121,9])
print(model.predict([test_array]))

擂鼓!最后预测的时间到了。

[[19.9995174407959], [134.9995880126953], [499.9997253417969], [604.9998168945312], [44.99952697753906]]

我们看到我们的模型快完成了。实际值为[20,135,500,605,45],如果将预测值四舍五入到小数点后两位,我们看到预测值与预期结果相同。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

Canva.com

这就是你要的,一个简单的人工智能已经学会了乘 5。还有一些事情;然而,需要考虑的是:尝试给出负值并检查输出,您会得到什么?我想把它留给你去尝试,实验,并提出使算法更精确的技术。此外,尝试对架构进行更改,例如添加更多的层和神经元,并查看指标的差异。如果你有任何疑问,请在评论中告诉我。

我希望你喜欢这篇文章,并喜欢构建一个可以执行简单乘法任务的人工智能。下次见。

给老师、青少年和所有介于两者之间的人上人工智能课

原文:https://towardsdatascience.com/ai-lesson-for-teachers-teens-and-everyone-in-between-7df81bd343f3?source=collection_archive---------90-----------------------

我的目标是概述一个课程,任何老师都可以在课堂上使用,或者任何对人工智能如何工作有兴趣的人都可以走一遍。这并不意味着是人工智能如何真正工作的精确表示,而只是给出它如何工作的直觉。我做了近十年的数学、SAT、ACT 和 ISEE 辅导老师,从事机器学习研究。

先决条件:知道什么是概率。

有两个子课程,一个较小的和一个较大的。所有课程都属于计算机视觉问题的范畴——物体检测。

  1. 监督学习与非监督学习
  2. 训练机器学习模型

机器学习问题通常分为两类,监督问题和非监督问题。监督问题是指你给模型一些例子,然后期望它能够在看不见的图像上预测那个东西。无监督的问题是,你有一堆图像,你试图找出哪些是最密切相关的(除了你能看到的以外,不基于任何东西),然后将它们分组,而不知道你试图预测的最终类别实际上是什么。

监督学习

我现在将向您展示一系列的形状和形状的名称。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

“扎格斯”

上面这些形状被称为扎格斯

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

" flarks "

上面这些形状被称为扇形

现在我会给你一个物体,你告诉我它是一个扎格还是一个 flark。有一个潜规则,把 zhags 和 flarks 分类。你的工作是学习规则。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

?

这是一个扎格。如果你猜对了,太棒了!你学到了一个成功的模式。

但也许现在你得到的对象并不完全符合你的想法。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

?

这是一把 flark

你不知道,潜规则是,如果形状有任何曲线,它就是一个 flark。这就是为什么充足的训练数据对机器学习问题如此重要!如果这是自动驾驶汽车中丢失的训练数据点,这可能会让某人付出生命的代价。

无监督学习

假设我们有一组图像,并且严格使用这些图像,我们不需要任何先验知识就可以将它们放置在 xy 平面上,其中它们之间的距离表示它们彼此之间的差异。

这里有一组图片。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

图片来自维基百科

现在我们要把这些放在 xy 平面上。这是一个可能的迭代。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

如果我现在说,把这些分成两组,你可能会用两种方法之一。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

可能的分组

现在,如果我们应用水果或蔬菜的分类任务,我们已经做了一个相当不错的分类工作,却从未被告知什么是水果或蔬菜!简单地通过确定不同图像之间的某种距离映射,我们已经对水果和蔬菜进行了分类。

训练

让我们看一个监督学习任务的例子,在这个例子中,我们试图识别一幅图像是一只杜宾还是达克斯

神经网络结构由输入、隐藏层和输出组成。在这种情况下,输入是一幅图像,然后对于我们的隐藏层,我们将使用所谓的卷积层,然后输出将是两个数字——第一个数字是图像是杜宾犬的概率,第二个是腊肠犬的概率。

输入图像是一个固定大小的正方形图像,其中每个像素的值在 0 到 255 之间,图像有 3 层(红、绿、蓝)。一个简单的版本就是只有一层的黑白图像。所以你可以把图像想象成一个大的数字矩阵,每个数字代表一个像素值。

这是一个矩阵形式的示例,其中像素值已被转换(归一化),因此它们现在不是在 0 和 255 之间,而是在 0 和 1 之间,其中 1 与 255 相同。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

摘自 fast.ai 第 4 课

简而言之,卷积层是一个小过滤器,它通过图像并捕捉图像的不同方面,如边缘或高光。不同的卷积可以提取关于图像的不同信息。这是卷积核通过后的图像。神经网络然后学习更新该过程,以便提取预测目标变量的最佳信息(在我们的情况下,是杜宾达克斯猎犬)。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

来自维基百科图像内核

隐藏图层之后,这些值会减少到预测问题中的类数。对于杜宾或腊肠犬,我们有两个等级。因此,输出看起来类似于[0.15, 0.85],这是给定图像的概率输出,并且会被归类为腊肠犬,因为 0.85 > 0.15。

现在让我们做一个稍微模仿神经网络学习过程的示例练习。

我会给你一张杜宾犬腊肠犬的蒙版图片,你必须用一个介于-10 和 10 之间的值来回答,其中值越接近-10 意味着你认为这张图片是一只杜宾犬,而值越接近 10 意味着它是一只腊肠犬

我们的神经网络有 4 层,所以 4 个屏蔽图像是同一图像的不同视图。

我将通过一个例子并给出值。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

第一层

我会给这个一个 8

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

第二层

我给这个一个 -1

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

第三层

我给这个一个 -7

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

第 4 层

这个我给个 -9

所以某些层我不确定,而其他层似乎倾向于这样或那样。

现在取这 4 个值并求平均值。

np.mean([8,-1,-7,-9])

出局: -2.25

现在,我们将通过所谓的 sigmoid*层,这将给出图像是腊肠犬的概率(因为我们分配的值越大,我们就越认为它是腊肠犬)。

z = -2.25
1 / (1 + np.exp(-z))

输出: 0.095

所以我们的概率变成了[0.905, 0.095]

*你也可以用这个站点用 sigmoid 计算概率。

现在我们看到事实上是一只杜宾犬,所以我们是对的!

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

图片来自 vetstreet.com

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值