TowardsDataScience 博客中文翻译 2016~2018(一百七十一)

原文:TowardsDataScience Blog

协议:CC BY-NC-SA 4.0

逆向强化学习

原文:https://towardsdatascience.com/inverse-reinforcement-learning-6453b7cdc90d?source=collection_archive---------3-----------------------

导言和主要问题

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

本文根据约翰尼斯·海德克的作品****雅各布·斯坦哈特 ,奥万·埃文斯 乔丹·亚历山大普拉桑特·奥纳库坦 ,我用他们的话来帮助人们理解 IRL。****

逆强化学习是最近发展起来的一种机器学习框架,可以解决强化学习的逆问题。

基本上,IRL 是关于向人类学习的。

逆强化学习 (IRL) 是通过观察智能体的行为来学习其目标、价值观或奖励的领域。

约翰内斯·海德克说:“我们可能会观察人类在某些特定任务中的行为,并了解人类试图实现的环境状态以及具体的目标可能是什么。”(来源)

“IRL 是一个依赖于马尔可夫决策过程(MDPs)的范例,其中学徒代理的目标是从专家演示中找到一个可以解释专家行为的奖励函数。”比拉尔·皮奥特、马蒂厄·艾斯特和奥利弗·皮特奎因,弥合了模仿学习和逆向强化学习之间的差距

如果有一天某些人工智能达到了超人的能力,IRL 可能是理解人类想要什么并有望朝着这些目标努力的一种方法。

奖励函数

乔丹·亚历山大说:“我们的目标是学习一种决策过程,以产生最大化某种预先定义的奖励函数的行为。基本上,目标是从代理的观察行为中提取奖励函数。

例如,考虑自动驾驶的任务。一种方法是创建一个奖励函数,捕捉驾驶员的期望行为,如红灯停车、避开行人等。然而,这需要一份我们想要考虑的所有行为的详尽清单,以及一份描述每个行为重要性的权重清单。"(来源)

人工智能研究员 Prasanth Omanakuttan 表示,“然而,通过 IRL,任务是获取一组人类生成的驾驶数据,并提取人类对该任务的奖励函数的近似值。尽管如此,解决一个问题所需的大部分信息都是在真实回报函数的近似值中获得的。一旦我们有了正确的奖励函数,问题就简化为寻找正确的政策,并且可以用标准的强化学习方法来解决。”(来源

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

Source

“将复杂的任务转化为简单的奖励函数的主要问题是一个给定的政策对于许多不同的奖励函数来说可能是最优的。也就是说,即使我们有专家的行动,也存在许多不同的奖励函数,专家可能试图最大化这些函数。”乔丹·亚历山大,斯坦福大学,向人类学习:什么是逆向强化学习?

比拉尔·皮奥特、马蒂厄·艾斯特和奥利维尔·皮特奎因说过:“换句话说,我们的目标是模拟一个在给定环境中采取行动的主体。因此,我们假设我们有一个状态空间 S(代理和环境可以处于的状态集合),一个动作空间 A(代理可以采取的动作集合),以及一个转移函数T(S′| S,A),它给出了当采取动作 A 时从状态 S 移动到状态 S′的概率。例如,对于一个学习控制汽车的 AI, 状态空间将是汽车的可能位置和方向,动作空间将是 AI 可以发送给汽车的一组控制信号,转移函数将是汽车的动力学模型。 (s,a,t)的元组称为 MDP∖R,它是一个没有报酬函数的马尔可夫决策过程。(MDP∖R 将有一个已知的地平线或贴现率γ,但为了简单起见,我们将这些略去。)

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

Source

IRL 的推理问题是在给定一个最优策略π∫:s→a 的情况下推理一个奖励函数 r。对于 MDP∖R.,我们从状态的样本(s,a)中学习策略π∫,并根据π∫(可能是随机的)学习相应的动作。通常,这些样本来自一个轨迹,该轨迹记录了单个事件中代理的状态和动作的完整历史:

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

在汽车的例子中,这将对应于正在演示期望的驾驶行为的专业人类驾驶员所采取的动作(其中这些动作将被记录为给方向盘、刹车等的信号。).

给定 MDP∖R 和观察到的轨迹,目标是推断回报函数 r。在贝叶斯框架中,如果我们指定 r 的先验,我们有:

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

似然性 P(ai|si,R)恰好是πR(s)[ai],其中πR 是奖励函数 R 下的最优策略。注意,在给定奖励的情况下计算最优策略通常是非平凡的;除了在简单的情况下,我们通常使用强化学习来近似策略。由于指定先验、计算最优策略和整合奖励函数的挑战,IRL 中的大部分工作使用某种近似的贝叶斯目标。"( )来源 )

奖励信号

约翰内斯·海德克说:“在大多数强化学习任务中,没有奖励信号的自然来源。相反,它必须是手工制作和精心设计的,以准确地代表任务。

通常,有必要手动调整 RL 代理的奖励,直到观察到期望的行为。为某些目标找到合适的奖励函数的更好的方法可能是观察执行任务的(人类)专家,以便从这些观察中自动提取相应的奖励。"(来源)

IRL 的最大动机是为一项任务手动指定一个奖励函数通常非常困难。

数据中的人类行为

****Johannes Steinhardt 说“IRL 是一种很有前途的学习人类价值观的方法,部分原因是数据容易获得。对于监督学习,人类需要产生许多专门用于某项任务的标记实例。相比之下,IRL 是一种无监督/半监督的方法,其中任何人类行为记录都是潜在的数据源。脸书的用户行为日志,YouTube 视频等。提供了许多关于人类行为的数据。

然而,虽然有大量关于人类偏好的现有数据,但利用这些数据进行 IRL 在当前技术下是困难的。"(来源)

精选数据

Johannes Steinhardt 提到的另一个因素是关于数据的问题。他说“书籍和视频中的人类行为记录对于 IRL 算法来说很难使用。然而,来自脸书的数据似乎很有希望:我们可以存储状态和每个人类动作(点击和滚动)。

虽然这涵盖了广泛的任务,但有明显的局限性。人类的某些偏好似乎很难从计算机的行为中了解。"

信息和偏见

人类的行为取决于他们的偏好和信仰。

Owain Evans 和 Johannes Steinhardt 说“信念,就像偏好一样,从来不会被直接观察到。对于狭窄的任务(例如,人们从显示器中选择他们最喜欢的照片),我们可以模拟人类对状态的完全了解。但是对于大多数现实世界的任务,人类的信息是有限的,并且他们的信息会随着时间而变化。如果 IRL 假设人类拥有全部的信息,那么这个模型就是错误的,概括人类在其他情况下的偏好可能是错误的。以下是一些例子:

  • 有人从家来到一家已经打烊的餐馆。如果假设他们有完整的知识,那么 IRL 会推断出另一种偏好(例如去散步),而不是去吃东西。
  • 假设一个 IRL 算法正在从一个人笔记本电脑上的按键推断他的目标。这个人经常忘记他们的登录密码,不得不重新设置。这种行为很难用 POMDP 风格的模型来捕捉:人类会忘记一些字符串,但不会忘记其他字符串。IRL 可能推断这个人想要重复重置他们的密码。**

上述情况源于人类遗忘信息——即使信息只是一小段字符串。这是人类系统地偏离理性贝叶斯代理的一种方式。"(来源)

长期计划

Owain Evans 和 Johannes Steinhardt 给出的另一个要素是长期计划。事实上,他们说“为了实现一个长期目标,代理人通常会采取一系列长时间的行动,这些行动会在瞬间产生负面效用。出于几个原因,这样的长期计划会使 IRL 变得更加困难。让我们关注两点:

  • IRL 系统可能无法访问正确类型的数据来学习长期目标。
  • 需要预测长的动作序列会使算法在面对模型错误设定时更加脆弱。

为了根据长期计划做出推论,拥有单个代理人在很长一段时间内的行动的一致数据将是有帮助的。但在实践中,我们可能会有更多的数据,包括大量不同代理的简短快照(因为许多网站或在线服务已经记录了用户交互,但即使一个人离线,也很少有人在很长一段时间内被彻底跟踪和记录)。

另一方面,有一些服务确实拥有长期的个人用户的大量数据。然而,这些数据还有另一个问题:它在非常系统的方面是不完整的(因为它只跟踪在线行为)。例如,有人可能大部分时间都在网上阅读课程笔记和维基百科;这是可能被记录的数据。然而,不太可能会有一个人参加期末考试、通过课程、然后根据他们的课堂表现获得实习的记录。当然,这个序列的一些片段可以根据一些人的电子邮件记录等推断出来。,但相对于维基百科的使用记录,它可能在数据中没有得到充分的体现。无论是哪种情况,都需要一定程度的推理来理解这些数据。

接下来,我们讨论另一个潜在的问题——模型设定错误的脆弱性。

假设有人花了 99 天做一件无聊的事情,在第 100 天完成了一个重要的目标。一个只试图正确预测行动的系统,如果它预测这个人天生喜欢无聊的任务,那么它在 99%的时间里都是正确的。当然,一个理解目标以及任务如何导致目标的系统在 100%的时间里都是正确的,但是即使是理解中的小错误也会使准确率回到 99%以下。

基本上,代理人模型的大变化可能只会导致模型预测准确性的小变化,并且实现目标的时间范围越长,这种情况可能越多。这意味着,即使模型中轻微的错误设定也可能使天平向(非常)不正确的奖励函数倾斜。一个解决方案是识别那些看起来与回报函数紧密相关的“重要”预测,并特别关注那些正确的预测。"(来源)

即使是轻微的模型不规范,“正确的”模型在典型的度量标准(如预测准确性)下实际上可能表现得更差。因此,可能需要更仔细的方法来构建模型。

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

人工智能研究员约翰内斯·海德克(Johannes Heidecke)说:“在 IRL 中,我们被给予一些代理人的政策或行为历史,我们试图找到一个解释给定行为的奖励函数。假设我们的代理人采取最优行动,即总是为其奖励函数选择最佳可能的行动,我们试图估计可能导致这种行为的奖励函数。”(来源

IRL 的问题

如何找到一个奖励函数,在这个函数下观察到的行为是最优的。这带来了两个主要问题:

  • 对于大多数行为观察,有许多合适的奖励函数。解集往往包含许多退化解,即给所有状态分配零奖励。
  • IRL 算法假设观察到的行为是最佳的。这是一个强有力的假设,当我们谈到人类的示范时,可以说是太强了。

重要的 : IRL 寻找“解释”演示的奖励函数。不要将此与学徒学习(AL)相混淆,在学徒学习中,主要兴趣是能够产生可见示范的政策

比拉尔·皮奥特、马蒂厄·艾斯特和奥利弗·皮特奎因认为,“IRL 依赖于这样的假设,即专家的政策对于未知的报酬函数是最优的。在这种情况下,学徒的第一个目标是学习一个奖励函数来解释观察到的专家行为。然后,使用直接强化学习,它根据这个奖励优化它的策略,并希望表现得和专家一样好。学习奖励比立即学习政策有一些优势。首先,可以对奖励进行分析,以便更好地了解专家的行为。第二,它允许适应环境动态的扰动。

换句话说,它可以转移到其他环境中。第三,它允许通过真实的交互随着时间的推移而改进,而不需要新的演示。然而,一个主要的问题是必须解决 MDP 以获得关于学习奖励的最优策略。另一个问题是,IRL 问题是不适定的,因为每个政策对于零回报(显然不是人们所寻求的回报)都是最优的。"(来源)

想了解更多,我推荐这几篇: -https://thinking wires . com/posts/2018-02-13-IRL-tutorial-1 . html
-https://www . less wrong . com/posts/cn C2 rmwegigpjv 8 go/model-mis-specification-and-inverse-reinforcement-learning
-http://www.lifl.fr/~pietquin/pdf/TNNLS_2016_BPMGOP.pdf
-https

世界杯点球大战中损失厌恶的研究

原文:https://towardsdatascience.com/investigating-loss-aversion-in-world-cup-penalty-shoot-outs-8bd2ba48ce86?source=collection_archive---------8-----------------------

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

From Markus Unger

我最近在读一本名为《思考,快与慢》的书,这本书向我介绍了规避损失的概念。这是一种心理效应,在这种效应下,人们会更加努力地避免感知到的损失,而不是获得同等的收益。例如,你自己的钱损失了 5 英镑,感觉比赚了 5 英镑还要糟糕。

这本书讨论了这在体育运动中的影响,其中有一项关于职业高尔夫的研究。在一场高尔夫比赛结束时,只有击球总数才算数。然而,这项研究表明,高尔夫球手在标准杆推杆(失误意味着在该洞失去一杆)方面比小鸟(在该洞获得一杆)更好。理论是,正是对损失的厌恶使他们下意识地更加关注标准杆推杆,因此他们在推杆上更加成功。

随着最近世界杯的举行,英格兰队卷入了与哥伦比亚队的点球大战,我想知道厌恶损失是否会产生影响。

点球决胜用于决定在淘汰赛阶段正常比赛的加时赛后仍然平局的比赛。有五轮比赛,球队轮流射门,如果之后仍然是平局,可能还有额外的几轮“突然死亡”点球。开始时要掷硬币来决定谁先开球。

就像高尔夫球一样,只有你在决赛中的总分才算数,但是由于处罚是在回合中进行的,所以可能会出现锚定数字效应,就像上面的高尔夫球例子一样。鉴于大多数点球都是得分的,在一轮比赛中第一个踢球的球员的“标准杆”就是得分——因为错过很可能意味着该轮比赛的负结果。然而,对于第二个踢球者来说,“par”是可变的。如果第一个踢球者得分,那么“标准杆”对他来说是一样的,但如果第一个踢球者错过了…突然“标准杆”也不见了,得分就是“小鸟球”,因为这将是这一轮的收获。

会不会是职业足球运动员肩负着国家的希望,在某些情况下没有尽最大努力?

为了测试这一点,我首先需要一组点球结果的数据。那么,如果厌恶损失有效果,我希望看到以下结果:

  • 每一轮中第一次踢腿的得分可能性不受前一次踢腿的影响,因为那是在前一轮中,所以在不同的参考系中。例如,从下面的图表可以看出,kick 2a 不受 1b 的影响,3a 不受 2b 的影响,依此类推。
  • 如果一轮中的第一脚踢不中,第二脚踢(“b”脚踢)的得分可能性将会下降。
  • 考虑到这种影响,先踢的队更有可能获胜。

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

Penalties kicking order

创建世界杯点球数据集

当我去寻找这方面的数据集时,我很惊讶,我找不到预先存在的数据集。有大量关于处罚事实的文章,但没有一篇包括他们使用的数据。幸运的是,维基百科有一个表格记录了 1982 年第一次点球大战的所有结果。

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

How hard could it be to scrape data already in a table?

我听说 80%的数据科学工作是数据清理,但出于某种原因,我不认为这适用于我。数据已经在一个表中了,这能有多难?…男孩,我错了。几乎每个列都需要自己的特殊处理,这占用了这个项目的大部分时间。我也努力将数据重新格式化成每列一个变量的“整齐数据格式。我在最近参加的 Udacity 数据分析师课程中发现了整齐的数据,这将使以后的处理更加容易。

完成的 tidy 数据集是一个 csv 文件,还有我用来创建和分析它的 python 工作簿,在我的 github 上。它包含了 30 场不同的点球大战和 279 次个人踢球的数据。

损失厌恶分析

一旦收集和整理了数据,分析就相对容易了。

先踢有优势吗?

我测量的第一件事是先踢的队获胜的概率。一个对点球大战的批评是一线队赢的可能性更大,但这在数据中看到了吗?

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

不要!在这个数据中,如果先踢的队会赢,那么就没有优势了。(随着时间的推移,这已经发生了很大的变化,我在最后的一个注释中给出了更多的细节。)看个人点球,一线队的点球成功几率略高。

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

一轮中的第一次踢腿会受到前一次踢腿的影响吗?

他们的成功率没有区别,所以不,前面的踢腿并不影响该队在回合中先踢腿。

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

因为这是与前一轮的比较,第一轮的踢腿不包括在这个测试中。

一轮比赛的第二次踢腿会受到前一次踢腿的影响吗?

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

也许!根据第一次踢球的结果,得分的可能性有 6%的差异。即使这些测量显示了差异,重要的问题是:这是一个显著的差异吗?

对结果显著性的信心

测量的差异实际上可能只是随机噪声,因为可能没有足够的样本来确信差异确实存在。因为这是分类数据,所以我将用卡方检验来检验这一点的独立性。这将输出一个 p 值,如果它低于我选择的显著性水平,只有这样我才能声称有显著性差异。

无效假设是一轮的第一脚踢不影响第二轮的结果,另一个假设是它会影响。

我选择的显著性水平为 0.10,也就是说,有 10%的可能性,我会认为测量的差异是显著的,而实际上不是。我选择了 10%,因为我想相当确定这是有影响的,但我不太担心会出错。如果我错误地指责世界顶级足球运动员不够努力,我肯定不是第一个;我相信他们会克服的。😝

测试的输出是:

p 值= 0.5107

结论:未能拒绝零假设

Awww …仅仅 0.51 的 p 值与所需的 0.1 相差甚远,因此可以确信测得的差异实际上不仅仅是随机噪声。我无法拒绝无效假设,所以结论是一轮比赛的第一次踢腿的结果不会影响第二轮比赛的结果。

那是为了第二轮比赛。对于一轮比赛的第一次踢腿,我根本不需要做测试,因为前一次踢腿得分或失误的结果之间几乎没有可测量的差异。所以我可以总结出点球,无论是一轮比赛中的第一脚还是第二脚,都不会受到前一脚结果的影响(在这个数据集中)。

包裹

令人失望的是,我不能证明损失厌恶在起作用,但研究这个很有趣。如果有人想进一步研究这个问题,维基百科页面上有更多关于欧洲锦标赛的点球大战数据。这个数据和世界杯点球数据的表格非常相似,所以可能需要对我为其制作的脚本做一些小的修改。

关于踢第一优势的注意事项

我在上面说过,如果第一个踢球的队赢了,那就是五五开。现在这是真的,但随着时间的推移,它已经发生了很大的变化。在 80 年代,90 年代初和 2010 年,踢腿是一个劣势,但从 90 年代中期到 2010 年,成为一个巨大的红利。这一时期很可能是点球大战偏向于球队先踢的观点的来源。

由于这里的样本量较小,每场锦标赛只有几场淘汰赛,所以你可以预期不同的锦标赛之间会有很大的差异。有趣的是这种趋势:在一些比赛中很低,然后很高,然后又很低。

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

世界象棋锦标赛决赛方差的研究

原文:https://towardsdatascience.com/investigating-the-variance-of-the-world-chess-championship-final-b8bb7626cc26?source=collection_archive---------12-----------------------

卡尔森决赛方法的统计分析

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

Credit: GR stocks on unsplash

当 FIDE 世界象棋锦标赛正在进行时,我发现了以下问题:

假设其中一个玩家比他的对手强,他赢了 20%的比赛,输了 15%的比赛,65%的比赛是平局。这场比赛的胜利值 1 分,每位玩家得半分,输 0 分。在 12 场比赛中,第一个得分 6.5 分的选手获胜。

更好的选手赢得 12 场比赛的机会有多大?为了让更好的玩家有 75%的机会赢得比赛,一场比赛要进行多少场?90%的可能性?99%的可能性?

现在,比赛结束不到一个月了,所有的分析都来自于卡尔森 3-0 横扫对手的激烈的 12 场平局比赛,我发现提出的问题非常相关,因为毕竟球员们在所有 12 场常规比赛中都打成了平局。卡尔森的策略是抽长得多的常规比赛(第 1 场比赛 7 小时,第 12 场比赛 3 小时),以便在短得多的决胜局中压倒他的对手,而众所周知他在决胜局中是无与伦比的,这是否是比赢得常规比赛更安全的选择?

在本文中,我打算实现一个简单的 Python 脚本,试图模拟在什么情况下(每场比赛的游戏数)最好的玩家几乎总是会赢。

我提议用我喜欢的东西来解决这个问题:取样。

我将假设两个不知疲倦的代理人 A 和 B 将相互进行 10,000 次 n 场 比赛,n 是每场比赛的比赛数。按照标准的国际象棋规则,赢一场得 1 分,平一场得 0.5 分,输一场得 0 分。

如果一个玩家达到(n/2)+0.5 点,他就赢得了一场 n 局比赛。例如,在 12 场比赛中,如果一名球员达到 6.5 分,他就赢了。独立地重复 10,000 次,你将得到代理 A 获胜的匹配百分比和代理 B 获胜的匹配百分比。

函数 **sample(n),**返回 n 场比赛的结果,其中 1 表示代理 A 赢了,-1 表示代理 B 赢了,0 表示那场比赛平局。我们假设代理人 A 是更好的代理人,它赢了 20%的游戏,输了 15%的游戏给 B,抽取剩下的 65%。

以下脚本尝试了不同的比赛规模(n ),并打印了较好的玩家赢的比赛的百分比、最差的玩家赢的比赛的百分比以及和棋的百分比。

输出:

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

Percentage of times the better agent wins, loses and draws.

正如我们所看到的,为了让更好的代理有 99%的机会参加比赛,需要一场比赛包含大约 768 场比赛。要有 75%的胜算,只需要少于 96 场比赛。

在目前的 12 场比赛中,即使胜算很大,特工 A 也只赢了大约 51.66%的比赛。为什么?嗯,因为类似于卡尔森和卡鲁阿纳之间的决赛,拥有这种匹配技能的球员/经纪人往往会抽很多,不管是不是故意的。

为了评估卡尔森的策略,我们需要知道比赛的规模,以确保卡尔森和卡鲁阿纳之间更好的球员获胜。

在国际象棋中,一个玩家的相对技能可以通过他们的“Elo 等级”来评估。卡尔森在比赛前的 Elo 是 2835,卡鲁阿纳的 Elo 是 2832。根据他们的 Elo 得分,并根据这个网站,卡尔森有 19.2812559%的机会赢得一场比赛。卡鲁阿纳有 18.4434925%的几率赢一局,有 62.2752516%的几率平一局。

通过更新示例(n) 函数来反映这些值,并再次运行脚本,我们得到以下输出:

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

这将需要由大约 10,000 场比赛组成的比赛,以便给卡尔森 90%的获胜机会。因此,我相信他试图扳平比赛以进入短得多的决胜局(众所周知他是最致命的)的策略是一个好策略,尤其是因为它奏效了!

承认

标斜为发表前阅读文章。

投资者影响力网络

原文:https://towardsdatascience.com/investor-network-of-influence-f80f2a1af43f?source=collection_archive---------5-----------------------

通过风险投资生态系统的社会网络分析按影响力对投资者进行排序。

这是在 Crunchbase 数据集上应用机器学习来预测创业公司成功的更大工作的一部分。投资者影响力成为模型中最相关的预测因素。

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

Investor network of influence. Investor blue has influenced investor green three times and investor yellow once. Investor green has influenced investor blue one time.

为了这个任务,我挑选了可以描述公司发展的数据——我指的是有时间维度的数据——主要是资助历史和状态运营退出(成功)或关闭(失败)的变化。每轮融资记录告知日期、融资金额,如果是风险融资,则告知系列信函(如果是风险融资)、参与的投资者以及主要投资者(如果有)。

你可以想象,在一家公司的生活中,有如此多的社会、经济和技术变量在发挥作用,数据集超出了预测公司命运的范围。希望我们可以扭曲数据集,以传达投资者的决策:他们在投资一家公司之前确实会分析这些变量。这背后的想法是,由熟练投资者支持的公司有更多的成功机会。

如何确定哪些投资者是熟练的?这个决定再一次代表了投资者的利益。让我重申这个问题:哪些是投资者尊敬的投资者?投资者影响力是构建投资者网络并使用卡茨中心性测度来衡量网络中每个投资者影响力的相对程度的结果。

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

Modes of influence within a company. An investor influences all investors from posterior funding rounds (upper and middle). Within the same funding round, the lead investor if any, influences the rest of the participants (lower, lead investor in red).

该网络是一个有向图,其中节点是投资者,而连接从受影响的投资者(箭头尾部)对着有影响力的投资者(箭头头部)。

每当投资者投资同一家公司时,投资者之间就会建立起一种联系——或者如果这种联系已经存在,这种联系就会得到加强。这种联系是直接的,因为正在考虑事件的因果关系。我认为投资一家其他人投资过的公司会受到其他人的影响。当然,这不一定成立,但是联系越紧密,相关性就越强。

The top 500 with additional investor features, out of a total of 25 thousands investors. Aggregated from Q1 2014 to Q1 2017.

中心性测量被明确设计为产生一个允许指示最重要节点的排名;一般来说,它们不是用来衡量节点的影响的。

排名仅根据重要性对节点进行排序,它没有量化不同级别排名之间的重要性差异。(正确地)识别给定网络中最重要节点的特征不一定推广到其余节点;对于大多数其他网络节点来说,排名可能没有意义。

投资者活动特征时间

在计算投资者影响力时,只考虑投资者最近 3 年的行为。这样,影响不会永远积累,而是随着时间的推移而增加或减少。接下来我解释为什么我选择这个特征时间来分割投资数据。

半衰期顾名思义,是一个量减少到初始值一半所需的时间。

我将投资者活动时间定义为从投资者进行第一笔投资到最后一笔投资的时间间隔,换句话说,它变得不活跃。我们希望获得中值活动时间:大约一半投资者不活动的时间长度。

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

Investor activity time of all available investors since year 2001 onwards (normalized histogram).

观察剧情,半衰期约为 3 年。这意味着普通投资者在这段时间内收集并投资全部资本。

源代码
https://github.com/matiasbattocchia/crunchbase-ml

源数据 Crunchbase 每日 CSV 导出 (2017/05/15)

物联网开发:编排的游戏

原文:https://towardsdatascience.com/iot-development-a-game-of-orchestration-2ad18d048d61?source=collection_archive---------6-----------------------

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

想象一个场景,一个在构建传统软件方面有丰富经验的软件工程团队被赋予了处理物联网项目软件的设计和架构的任务。

你认为团队必须提升自身技能才能成功交付项目吗?

答案是肯定的。虽然发展的支柱保持不变,但物联网软件设计的错综复杂程度远远高于电子商务、游戏、社交媒体等传统软件。

一个全功能的物联网软件在其生命周期中有 4 个主要元素——嵌入式、前端、后端、数据科学。

1。嵌入式

这形成了任何物联网项目的骨架,因为它形成了设备(也称为“东西”)和互联网之间的第一层交互。以前,在大多数 M2M 应用中,来自硬件的信息是在本地主机上收集、存储和计算的,而有了物联网,信息被转移到云中。除了将数据汇集、排队和发送到互联网,开发人员还需要确保信息始终安全。

因此,该团队必须设计嵌入式软件,使设备能够在保持最高安全级别的情况下连接和传输信息。

2。后端

如果说嵌入式构成了骨架,那么后端开发则构成了任何物联网软件项目的“主干”。随着越来越多的设备/事物连接到互联网,系统和设备之间的交互水平成倍增加。当软件被设计成具有与多个微服务、多个客户端和多个设备通信的功能时,物联网项目的价值被最大化。

为了达到期望的动态水平,后端开发团队应该开发软件,以便无缝集成和内部连接成为可能。虽然 HTTP 是传统后端开发中最常用的通信协议,但团队应该训练自己使用特定于物联网的协议,如 MQTT、CoAP 等。

3。前端

虽然脊椎骨和骨骼形成了核心,但它是外观,也就是 UI/ UX,是人们购买物联网软件并从中获得价值的基础。因此,前端开发对于创建用户高度参与的软件是至关重要的。大多数行业级物联网应用将与各种现有软件集成,如 SCM、PLM、CRM、ERP 等。取而代之的是,设计前端变得非常重要,这样可以覆盖多个用例,最终用户可以获得“惊喜”因素。用户界面的各种元素,如图形、图表、表格、按钮、导航等。应考虑特定物联网应用将解决的特定业务用例来开发。虽然有些特性可能是通用的,并适用于各种行业,但大多数特性是根据特定公司的使用情况定制的。

实时响应度也是设计过程中需要考虑的一个非常重要的因素。

4。数据科学

这构成了物联网应用的大脑。分析模块需要集成到物联网系统中,以便能够处理设备传输的大量高速信息,并将其合成为有用的信息。虽然处理庞大的数据集是任何数据科学模块的核心,但在物联网中,处理需要以最小的延迟“实时”完成。

为了达到上述要求,数据科学家必须了解 Apache Spark、Flex、斯珀等工具。处理时间序列数据。

简而言之,开发一个强大的物联网软件在开始时似乎有点势不可挡,但通过清楚地了解软件的最终目标,并为团队配备所需的技能,开发之旅可以变得顺利。

在 EnrichAI,我们每天都在努力提升自己的技能,为多个行业的客户提供强大的软件服务。

请联系我们的专家团队,他们可以帮助您制作一个健壮的应用程序。

物联网+机器学习将改变世界

原文:https://towardsdatascience.com/iot-machine-learning-is-going-to-change-the-world-7c4e0cd7ac32?source=collection_archive---------4-----------------------

这将会很棒

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

物联网正在慢慢渗透到我们生活的方方面面。如果你还没有物联网设备,你肯定听说过它们

从智能恒温器到智能咖啡机,物联网设备正在缓慢但稳步地获得的主流采用。此外,虚拟助手*(如 Siri、Cortana 和 Alexa)* 只是让这项技术更容易被采用。

但是,这些设备远非完美。目前,实现最佳功能需要大量的手动输入——内置的智能并不多。你必须设置你的闹钟,告诉你的咖啡机什么时候开始煮咖啡,手动设置你的恒温器的时间表,所有这些都是独立而精确的。

这些机器很少相互通信,你只能扮演指挥大师的角色,这是一项劳动密集型的工作。

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

Your devices talk to you, not each other

这提供了一个巨大的机会。创造出能够学习你的喜好的设备,使用机器智能和相互通信,以最佳的方式增强你周围的世界,这是一种幻想…或者是吗?

新范式

让我们考虑一下早上醒来的场景(像我这样的讨厌早晨的人每天都必须经历的一个重复出现的噩梦)。这通常不是一个愉快的过程。让我们看看常规物联网和智能物联网如何帮助改变这种状况:

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

场景 1 —没有智能的物联网:

  • 上午 7:30 分:我的闹钟响了,我打了贪睡
  • 上午 7:45:闹钟又响了,我醒来后冲了个澡,我的智能咖啡机在设定的时间开始冲我的早餐咖啡
  • 上午 8:10:洗完澡,我很快赶完了最重要的隔夜社交媒体通知,试图在出发前不要浪费太多时间
  • 上午 8:20:我喝了一杯热咖啡,跳进冰冷的车里,启动它,一边选择合适的播客,一边等待它变得足够热,可以开车了
  • 上午 8:30:车里很暖和,我出发了,听着我精心挑选的播客,我的恒温器处于待机状态,以节省电能,直到我晚上回来

好的,还不错。然而,与我的精确程序的小偏差会抵消使用自动化的效果。多睡一会儿会让我喝冷咖啡,我很容易迷失在通知中,忘记时间。这些设备的有效性取决于我,但这并不总是行得通的。

但是,让我们看看智能互联设备如何让这个系统变得更好。

场景 2:智能物联网:

  • 我的闹钟响了,我打了个盹
  • 上午 7:45 分:闹钟再次响起,我醒来,我的智能淋浴开始运行,在我进去之前预热到完美的温度。我的智能咖啡机知道我刚开始洗澡并开始冲咖啡
  • 上午 8:10:淋浴完毕。当我刷牙和穿衣服的时候,我的智能镜子会显示一个最重要的通知的高效列表(它从我的浏览模式中理解)。它甚至会根据天气预报推荐一些衣服
  • 上午 8 点 15 分:我开始喝一杯非常温暖的咖啡。我的车知道这一点,并在我上车前 5 分钟开始加热
  • 上午 8:20:从我上车下车的那一刻起,车里就很温暖,我听着精心挑选的播客。我的自动调温器处于待机状态以省电,直到我晚上回来

你听到了吗?有些差异是微妙的,有些是相当明显的。

首先,不管我什么时候起床,我的淋浴和咖啡都准备好了,没有机会浪费水或变冷。内容的智能管理可以防止社交媒体等干扰让我迟到,我的车在我需要的时候很好,很温暖,而不是在之前或之后。以前连续的任务现在可以并行化。

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

这增加了系统的健壮性,可以防止人为错误。由于时间安排灵活,我的早晨再也不会被我自己的错误破坏了。相互通信的智能设备:

  1. 被智能地优化以完成他们特定的 T21 任务
  2. 通过互通帮助优化整个流程

我觉得这很酷。

最好的情况

晨间活动并不是唯一变好的事情。事实上,单人优化只是冰山一角——小组设置是下一步。

想象一下,一家餐厅拥有灵活的照明和音乐选择,经过优化以适应客户的偏好,公共交通也是如此,城市电网通过与自动驾驶汽车对话来优化交通流量。这个清单还在继续。

这项技术将减少我们花在交通上的时间,帮助我们获得更好的睡眠,并最终帮助拯救生命,所有这些都无需任何人工努力。我们正在建设一个更智能、更安全的世界。

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

这就是智能互联机器的力量。一个不受人为错误影响的世界。

然而,没有什么是完美的。

风险

如果我说只有好的一面,那我是在撒谎。

网络安全是一个迷人而广阔的研究领域,但它远非完美。任何连接到互联网的东西在某种程度上都是易受攻击的。以下是全智能物联网世界可能出现的三大问题。

  1. **数据隐私:**随着社交媒体带来的个人数据爆炸式增长,一个越来越热门的话题,防止个人数据滥用的隐私法变得更加重要。然而,物联网数据可能会为个人数据提供全新的粒度。社交媒体只能到此为止;总的来说,这些设备比你自己更了解你。必须采取措施从这些数据中分离出任何唯一的个人标识符,因为它肯定会被用于身份盗窃、欺诈和其他恶意攻击。
  2. **物理攻击:**虽然黑客完全控制你的 Roomba 最糟糕的结果可能是踢你的脚趾,但世界越是一体化,我们就越容易受到更有创意的物理攻击。例如:你的车可能会被黑客攻击,让你任由控制它的人摆布。随着越来越强大的网络物理系统被整合,我们就越需要小心。从某种意义上说,卫星、供水服务和发电厂将很快变得比以往任何时候都更加脆弱。
  3. **电网崩溃:**这些设备都需要一样东西——电力。在电源故障的情况下,必须有适当的安全措施来保证这些设备的协调继续进行。从智能交通网络获得指令的公共交通和自动驾驶汽车必须能够在没有智能交通网络的情况下导航。网络必须构建得尽可能健壮,以抵御其他节点的崩溃,甚至是整个网格的崩溃。这种情况不太可能发生,而且对于这个例子来说过于简单了,但是考虑系统范围内故障的故障保护绝对是很重要的。

是的,这些理由看起来很可怕。这些问题需要仔细规划和实施。一个完全连接的世界不会在一夜之间出现,我们将在问题出现时发现并纠正它们。

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

Don’t be scared

结论

有风险吗?当然可以。与任何新技术一样,我们承诺接受主流采用带来的潜在利益和风险。

我乐观地认为,一个智能、互联的世界的好处将远远大于坏处。迟早,我们可能会看到一个虚幻的世界,不仅我们的设备,而且我们周围的实际物理世界都得到优化,为我们带来更安全、更高效的体验。因此,我们可以花时间追求我们真正认为重要的事情,而不是花时间等待淋浴变暖,或者在早上忘记手机。

感谢阅读!

脚注: 回到 2017 年末的 crypto 热潮中,我最喜欢的项目是 IOTA 。简单地说,他们的愿景是,机器最终将相互通信,并将需要一种通用的“货币”进行交换,以便相互借用资源。我一直认为这是一个革命性的概念,并鼓励你去看看。至少,你可能会得到一个鼓舞人心的更智能的世界的图片,有一天它可能会成为现实。

物联网变得简单:ESP-MicroPython-MQTT-thing speak

原文:https://towardsdatascience.com/iot-made-easy-esp-micropython-mqtt-thingspeak-ce05eea27814?source=collection_archive---------3-----------------------

使用 MQTT 协议,我们将从传感器获取捕获的数据,并将它们记录到物联网服务 ThingSpeak.com 和移动应用 Thingsview。

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

1.介绍

在我的上一篇文章MicroPython on ESP using Jupyter中,我们学习了如何在 ESP 设备上安装和运行 MicroPython。使用 Jupyter Notebook 作为我们的开发环境,我们还学习了如何使用多种通信协议和方法从传感器读取数据(温度、湿度和亮度),例如:模拟、数字、1 线和 I2C,后者用于在有机发光二极管显示器上显示我们捕获的数据。

现在,在这篇文章中,使用 MQTT 协议,我们将获得所有捕获的数据,将它们发送到物联网服务,【ThingSpeak.com】和移动应用, Thingsview ,在那里可以记录和播放它们。

以下是对我们的项目进行重新升级的概述:

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

2.硬件

将要使用的硬件基本上与之前的项目相同:使用 Jupyter 的 ESP 上的 Micropython。请参考它的详细硬件解释(例外是伺服,这将不会在这个项目中使用)。

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

上面你可以看到完整的硬件。如图所示连接设备。

3.Micropython,REPL 和 Jupyter 笔记本

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

此时,您应该在您的 ESP 设备上加载了一个 Micropython 解释器,因此可以使用任何可用的 ide 对其进行编程,比如:

  • REPL /Ampy
  • Jupyter 笔记本(*)
  • 希腊字母表中第十二个字母
  • ESPCut(仅适用于 Windows)
  • …等等

在我的文章Micropython on ESP Using Jupyter中,我详细介绍了如何下载和安装 Micropython 解释器、ESPTool 来管理 ESP 设备,以及如何使用 Jupyter Notebook 作为*开发环境。*您可以随意使用更舒适的产品。

(*)我一般都是在 Jupyter Notebook 上做所有开发,一旦得到最终代码,就把它们复制到 Geany,保存为 python 脚本。使用 Ampy 将脚本上传到 ESP 上。我发现这种方法非常容易创建更复杂和专业的项目。

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

4.传感器

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

让我们安装库,定义 GPIOs,分别为所有传感器创建对象和函数:

A. DHT(温度和湿度)

安装 DHT 库并创建一个对象:

from dht import DHT22
from machine import Pin
dht22 = DHT22(Pin(12))

创建一个函数来读取 DHT 传感器:

def readDht():
    dht22.measure()
    return dht22.temperature(), dht22.humidity()

测试 DHT 功能:

print (readDht())

结果应该是如下所示的元组:

(17.7, 43.4)

B. DS18B20(外部温度)

安装库并创建一个对象:

import onewire, ds18x20
import time# Define the pin to be used with 1-wire bus ==> pin 2 (D4)
dat = Pin(2)# create the onewire object
ds = ds18x20.DS18X20(onewire.OneWire(dat))

扫描总线上的设备

sensors = ds.scan()
print('found devices:', sensors)

打印结果并不重要,我们需要的是第一个检测到的传感器:传感器[0] 。现在,我们可以构建一个函数来读取传感器数据:

def readDs():
    ds.convert_temp()
    time.sleep_ms(750)
    return ds.read_temp(sensors[0])

使用创建的函数测试传感器总是很重要的

print(readDs())

如果你得到一个温度值,你的代码是正确的:

17.5

LDR(光度)

LDR 将使用我们的 ESP 的模拟引脚(在 ESP8266 的情况下只有一个,在 ESP32 中有几个)。

与之前相同:

# import library
from machine import ADC# Define object
adc = ADC(0)

一个简单的函数: adc.read() 可以用来读取 adc 值。但请记住,内部 ADC 会将 0 到 3.3V 之间的电压转换为相应的数字值,范围从 0 到 1023。一旦我们对“光度”感兴趣,我们就会认为最大光是传感器捕捉到的最大值(在我的例子中是 900),最小光是 40。有了这些值,我们就可以将亮度值从[40 到 900]映射到[0 到 100%]。为此,我们将创建一个新函数:

def readLdr():
    lumPerct = (adc.read()-40)*(10/86) 
    return round(lumPerct)

你应该使用 print (readLDR()) 来测试这个函数。结果应该是 0 到 100 之间的整数。

D .按钮(数字输入)

这里我们使用一个按钮作为“数字传感器”,但它可能是一个执行器的“回声”(例如,一个开/关的泵)。

# define pin 13 as an input and activate an internal Pull-up resistor:
button = Pin(13, Pin.IN, Pin.PULL_UP)# Function to read button state:
def readBut():
    return button.value()

您可以使用功能 print(readBut()) 测试按钮。如果不按,结果应该是“1”。按下按钮,结果应该是“0”。

5.捕获并在本地显示所有传感器数据

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

现在我们已经为每个传感器创建了一个函数,让我们创建另一个函数,负责同时读取所有传感器:

def colectData():
    temp, hum, = readDht()
    extTemp = readDs()
    lum = readLdr()
    butSts = readBut()
    return temp, hum, extTemp, lum, butSts

现在,使用:

print(colectData())

将产生一个元组,其中包括从传感器捕获的所有数据:

(17.4, 45.2, 17.3125, 103, 1)

我们还可以选择在本地显示器上显示这些数据:

# import library and create object i2c
from machine import I2C
i2c = I2C(scl=Pin(5), sda=Pin(4))# import library and create object oled
import ssd1306
i2c = I2C(scl=Pin(5), sda=Pin(4))
oled = ssd1306.SSD1306_I2C(128, 64, i2c, 0x3c)# create a function:
def displayData(temp, hum, extTemp, lum, butSts):
    oled.fill(0)
    oled.text("Temp:    " + str(temp) + "oC", 0, 4)
    oled.text("Hum:     " + str(hum) + "%",0, 16)
    oled.text("ExtTemp: " + str(extTemp) + "oC", 0, 29)
    oled.text("Lumin:   " + str(lum) + "%", 0, 43)
    oled.text("Button:  " + str(butSts), 0, 57
    oled.show()# display data using the function
displayData(temp, hum, extTemp, lum, butSts)

作为一个选项,我们可以使用 LED 在开始读取传感器时打开,在数据显示后关闭。这将有助于确认当我们将 ESP 与 PC 断开连接并自动运行时,该程序正在运行。

所以,“主要功能是:

def main():
    led.on()
    temp, hum, extTemp, lum, butSts = colectData()
    displayData(temp, hum, extTemp, lum, butSts)
    led.off()

因此,执行 main(),我们将获得显示在有机发光二极管上的传感器数据,如最后一张图片所示。

6.在 ESP 启动时运行本地站代码

如果您已经使用 Jupyter Notebook 创建和测试了这些功能,那么现在是时候让我们的 ESP 自动执行到目前为止在单个文件脚本上开发的所有功能了。

让我们打开任何文本编辑器并在上面粘贴所有代码(我喜欢使用 Geany):

from machine import Pin
import time# LED
led = Pin(0, Pin.OUT)# DHT
from dht import DHT22
dht22 = DHT22(Pin(12))
def readDht():
    dht22.measure()
    return dht22.temperature(), dht22.humidity()# DS18B20
import onewire, ds18x20
dat = Pin(2)
ds = ds18x20.DS18X20(onewire.OneWire(dat))
sensors = ds.scan()
def readDs():
    ds.convert_temp()
    time.sleep_ms(750)
    return round(ds.read_temp(sensors[0]), 1)# LDR
from machine import ADC
adc = ADC(0)
def readLdr():
    lumPerct = (adc.read()-40)*(10/86)
    return round(lumPerct)# Push Button
button = Pin(13, Pin.IN, Pin.PULL_UP)
def readBut():
    return button.value()# Read all data:
def colectData():
    temp, hum, = readDht()
    extTemp = readDs()
    lum = readLdr()
    butSts = readBut()
    return temp, hum, extTemp, lum, butSts# I2C / OLED
from machine import I2C
import ssd1306
i2c = I2C(scl=Pin(5), sda=Pin(4))
oled = ssd1306.SSD1306_I2C(128, 64, i2c, 0x3c)
def displayData(temp, hum, extTemp, lum, butSts):
    oled.fill(0)
    oled.text("Temp:    " + str(temp) + "oC", 0, 4)
    oled.text("Hum:     " + str(hum) + "%",0, 16)
    oled.text("ExtTemp: " + str(extTemp) + "oC", 0, 29)
    oled.text("Lumin:   " + str(lum) + "%", 0, 43)
    oled.text("Button:  " + str(butSts), 0, 57)
    oled.show()# Main function
def main():
    led.on()
    temp, hum, extTemp, lum, butSts = colectData()
    displayData(temp, hum, extTemp, lum, butSts)
    led.off()'''------ run main function --------'''
main()

将其保存,例如保存为 localData.py.

要在您的终端上直接运行这段代码,您需要 Ampy。

首先,在终端上,让我们通知 Ampy 我们的串行端口:

export AMPY_PORT=/dev/tty.SLAB_USBtoUART

现在,我们可以看到 ESP 根目录中的文件:

ampy ls

作为响应,我们将得到 boot.py ,这是将在系统中运行的第一个文件。

现在,让我们使用 Ampy 将 python 脚本 LocalData.py 加载为/main.py,这样我们的脚本将在启动后立即运行:

ampy put localData.py /main.py

如果我们现在使用命令 amp ls ,您将在 ESP 中看到两个文件: boot.pymain.py

重置 ESP 将使程序 localData.py(上传为/main.py)自动运行,并在显示屏上显示传感器数据。

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

上面的终端打印屏幕显示了我们所做的事情。

使用上面的代码,显示将只显示一次,但是我们可以在 main() 函数上定义一个循环,它将在每个定义的时间间隔(PUB_TIME_SEC)显示数据,例如,直到我们按下按钮:

# loop getting data until button is pressed
while button.value():
    led.on()
    temp, hum, extTemp, lum, butSts = colectData()
    displayData(temp, hum, extTemp, lum, butSts)
    led.off()
    time.sleep(PUB_TIME_SEC)

变量 PUB_TIME_SEC 必须在你想要你的样本的时候声明。

为了增强我们的代码,最好通知我们将退出循环,因为我们将定义 2 个新的通用函数,一个用于清除显示,另一个用于使 LED 闪烁一定次数。

# Clear display :
def displayClear():
    oled.fill(0)
    oled.show()# create a blink function
def blinkLed(num):
    for i in range(0, num):
    led.on()
    sleep(0.5)
    led.off()
    sleep(0.5)

所以,我们现在可以,重写我们的 main()函数:

while button.value():
    led.on()
    temp, hum, extTemp, lum, butSts = colectData()
    displayData(temp, hum, extTemp, lum, butSts)
    led.off()
    time.sleep(PUB_TIME_SEC)
    blinkLed(3)
    displayClear()

最终代码可以从我的 GitHub: localData.py 下载,也可以从用于开发完整代码的 Jupyter 笔记本:Jupyter Local Data development . ipynb下载。

7:将 ESP 连接到本地 WiFi

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

网络模块用于配置 WiFi 连接。有两个 WiFi 接口,一个用于工作站(当 ESP8266 连接到路由器时),一个用于接入点(供其他设备连接到 ESP8266)。在这里,我们的 ESP 将通过路由器连接到本地网络。让我们调用库并定义我们的网络凭证:

import network
WiFi_SSID = "YOUR SSID"
WiFi_PASS = "YOUR PASSWORD"

以下功能可用于将 ESP 连接到您的本地网络:

def do_connect():
    wlan = network.WLAN(network.STA_IF)
    wlan.active(True)
    if not wlan.isconnected():
        print('connecting to network...')
        wlan.connect(WiFi_SSID, WiFi_SSID)
        while not wlan.isconnected():
            pass
    print('network config:', wlan.ifconfig())

运行该函数,您可以获得 IP 地址的结果:

do_connect()

结果将是:

网络配置:(10.0.1.2、255.255.255.0、10.0.1.1、10.0.1.1)

在我的例子中,10.0.1.2 是 ESP 的 IP 地址。

8.说话的东西

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

至此,我们已经学会了如何从所有传感器获取数据,并将其显示在我们的有机发光二极管上。现在,是时候看看如何将这些数据发送到物联网平台ThingSpeak.com了。

"ThingSpeak 是一款开源 物联网 (IoT)应用,使用 REST 和 MQTT APIs 存储和检索物联网数据。ThingSpeak 支持创建传感器日志应用程序、位置跟踪应用程序和带有状态更新的社交网络”

我们开始吧!

首先,你必须在 ThinkSpeak.com 有一个账户。接下来,按照说明创建一个通道,并记下您的通道 ID写入 API 密钥。

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

上面你可以看到我们的渠道将使用的 5 个领域。

9.MQTT 协议和 ThingSpeak 连接

MQTT 是一种发布/订阅架构,主要用于通过无线网络连接带宽和功率受限的设备。它是一个简单的轻量级协议,运行在 TCP/IP 套接字或 web 套接字上。WebSockets 上的 MQTT 可以用 SSL 保护。发布/订阅体系结构使得消息能够被推送到客户端设备,而无需设备持续轮询服务器。

MQTT 代理是通信的中心点,它负责在发送者和合法接收者之间分发所有消息。客户机是连接到代理的任何设备,可以发布或订阅主题以访问信息。主题包含代理的路由信息。每个想要发送消息的客户端将消息发布到某个主题,每个想要接收消息的客户端订阅某个主题。代理将带有匹配主题的所有消息传递给适当的客户端。

ThingSpeak 在 URLmqtt.thingspeak.com和端口 1883 有一个 MQTT 代理。ThingSpeak 代理支持 MQTT 发布和 MQTT 订阅。

在我们的例子中,我们将使用: MQTT Publish。

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

上图描述了主题结构。发布需要写入 API 密钥。代理用 CONNACK 确认正确的连接请求。

Micropython 的内置库中支持 MQTT 协议。该协议可用于通过 WIFI 将数据从您的 ESP8266 发送到免费的云数据库。

我们将使用 umqtt.simple 库:

from umqtt.simple import MQTTClient

知道了我们的服务器 ID,就有可能创建我们的 MQTT 客户机对象:

SERVER = "mqtt.thingspeak.com"
client = MQTTClient("umqtt_client", SERVER)

现在,准备好你的 ThingSpeak 证书:

CHANNEL_ID = "YOUR CHANNEL ID"
WRITE_API_KEY = "YOUR KEY HERE"

让我们创建我们的 MQTT“主题”:

topic = "channels/" + CHANNEL_ID + "/publish/" + WRITE_API_KEY

使用创建的函数获取要发送给 ThingSpeak 物联网服务的数据,并将其响应与特定数据变量相关联:

temp, hum, extTemp, lum, butSts = colectData()

更新这些变量后,我们可以创建我们的“MQTT 有效负载”:

payload "field1="+str(temp)+"&field2="+str(hum)+"&field3="+str(extTemp)+"&field4="+str(lum)+"&field5="+str(butSts)

就是这样!我们已经准备好向 ThinsSpeak 发送数据,只需使用下面的 3 行代码:

client.connect()
client.publish(topic, payload)
client.disconnect()

现在,如果您进入您的渠道页面(如下图所示),您会看到 5 个字段中的每一个都有与您的传感器相关的数据。

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

10.传感器数据记录器

现在,我们知道只需几行代码就可以将数据上传到物联网服务,让我们创建一个循环函数,以固定的时间间隔自动完成这项工作(类似于我们对“本地数据”所做的工作)。

使用之前声明的相同变量(PUB_TIME_SEC ),可以创建一个简单的 main()函数来连续捕获数据,并将它们记录在我们的通道中:

while True:
    temp, hum, extTemp, lum, butSts = colectData()
    payload = "field1="+str(temp)+"&field2="+str(hum)+"&field3="+str(extTemp)+"&field4="+str(lum)+"&field5="+str(butSts)
    client.connect()
    client.publish(topic, payload)
    client.disconnect()
    time.sleep(PUB_TIME_SEC)

请注意,只有“有效负载”必须更新,因为“主题”与我们的渠道凭证相关,不会改变。

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

寻找你的 ThingSpeak 频道页面,你会发现数据会不断地加载到每个字段。

盖上 LDR,把手放在温度/嗡嗡声传感器上,按下按钮,等等。并查看通道如何自动“记录”这些数据以供将来分析。

通常,对于数据记录,我们应该尽量少用电,因此,我们不会使用 LED 或本地显示器。此外,对于 ESP 设备来说,让它们进入“深度睡眠”是很常见的,在这种情况下,微处理器将保持其最低能量状态,直到捕捉数据并将其发送到物联网平台的时间。

但是,一旦这里的想法是学习,让我们也包括显示器和 LED 像我们以前做的。这样,我们的“日志”功能将是:

while button.value():
    led.on()
    temp, hum, extTemp, lum, butSts = colectData()
    displayData(temp, hum, extTemp, lum, butSts)
    led.off()
    payload = "field1="+str(temp)+"&field2="+str(hum)+"&field3="+str(extTemp)+"&field4="+str(lum)+"&field5="+str(butSts)
    client.connect()
    client.publish(topic, payload)
    client.disconnect()
    time.sleep(PUB_TIME_SEC)blinkLed(3)
displayClear()

完整的 microPython 脚本可以在这里找到:Data loggers _ ext . py和用于开发的 Jupyter 笔记本也可以在这里找到:物联网 ThingSpeak 数据记录器 EXT.ipynb

要在 ESP 上上传脚本,请在您的终端上使用以下命令:

ampy put dataLoggerTS.py /main.py

并按下 ESP 复位按钮。

您将让电潜泵捕捉数据并记录在 ThingSpeak.com 上,直到底部被按住(等待 LED 闪烁 3 次,有机发光二极管关闭)。

11.ThingView 应用程序

记录的数据可以直接在 ThingSpeak.com 网站上查看,也可以通过应用程序查看,例如 ThingsView!

ThingView 是由 CINETICA 开发的一款应用程序,它使你能够以一种简单的方式可视化你的 ThingSpeak 频道,只需输入频道 ID,你就可以开始了。

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

对于公共频道,应用程序将尊重您的 windows 设置:颜色,时间刻度,图表类型和结果的数量。当前版本支持折线图和柱形图,样条图显示为折线图。

对于私有通道,数据将使用默认设置显示,因为无法仅使用 API 键读取私有窗口设置。

ThingView 应用可以为安卓IPHONE 下载。

12:结论

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

一如既往,我希望这个项目可以帮助其他人找到进入令人兴奋的电子世界的方法!

详情和最终代码请访问我的 GitHub 仓库: IoT_TS_MQTT

更多项目,请访问我的博客:MJRoBot.org

来自世界南部的 Saludos!

我的下一篇文章再见!

谢谢你,

马塞洛

鸢尾属分类|DeepCognition| Azure ML studio

原文:https://towardsdatascience.com/iris-genus-classification-deepcognition-azure-ml-studio-4b930f54435a?source=collection_archive---------6-----------------------

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

source : Google

界:植物界 分支 : 被子植物目:天冬目科:鸢尾科亚科:环烯醚萜族族:鸢尾科属: 鸢尾属

鸢尾开花植物260-300 个的一种,花艳丽。它的名字来自希腊语中的一词,意为彩虹,也是希腊彩虹女神 Iris 的名字。

在本文中,我们将讨论如何使用 Deepcognition.ai 和微软 Azure Machine Learning Studio 将鸢尾属分为 3 类( VersicolorSestosaViginica )。[来源:谷歌]

使用 Deepcognition.ai

创建新项目 IRIS

进入项目,点击“ + ”按钮,给你的项目命名,然后继续。

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

导入数据

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

Data Tab

虹膜数据集在 Deepcognition 上公开。从数据集选项卡中选择’ iris-public '数据集。这个数据集有 150 行。列的行显示每一列的名称及其下的值。要将每列指定为输入/输出,请分别选择 InputPort/OutputPort。OutputPort 指定已训练模型的输出。

模型的架构

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

您可以通过在主板上拖放来使用这些层。核心层中存在致密层。

所用各类型层的描述:

Input_1:指定输入数据及其尺寸。

Dense_3:密集连接层或隐藏层指定激活单元的数量。您可以通过单击该层来选择激活功能。这里我选择了**‘96’隐藏单元**和 relu 作为激活函数。

脱落:脱落层用于防止模型过拟合。它随机切换一些隐藏单元开/关,迫使神经网络找到不同的输出路径,从而防止过拟合。

Dense_21:另一个隐藏层,有 32 个隐藏单元

Dense_26:最终隐藏层,其隐藏单元数等于要传递给输出层的类别数。

Output_3: 模型的最终输出

您可以尝试不同的模型架构,找出最适合的。

超参数:

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

该选项卡用于为我们的模型选择超参数。我们有不同的超参数,例如:

  1. 损失函数(类别交叉熵)
  2. 学习率(最重要)(0.001)
  3. 优化器
  4. 批量大小和时期数…(32,20)
  5. 不同优化器的不同参数,例如 RMSprop 的ε和ρ。

只需调整其中任何一个并开始训练,以检查哪些超参数效果最好。该选项卡非常有用,因为它节省了大量处理超参数的时间。尝试不同的参数!

训练

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

difference after using ‘load previous weights’ 84% to 93.75% accuracy

要开始训练,按下“开始训练按钮,您的模型将开始使用提供的数据进行训练。我们可以看到,我们的模型获得了 93.75% 的验证准确率。如图所示,我们的最佳精确度是在第 15 纪元。

损失曲线用于确定我们的损失是否随着时间的推移而减少。如果损失没有减少,你可能需要降低学习率(在上面的超参数中讨论)。

准确度曲线显示当前准确度(图像中禁用)、验证准确度和平均准确度。尝试不同的超参数以获得最佳精度。

运行名称用于为每个已训练的模型命名,以保存其权重和结构,从而可以选择最佳模型,也可以用于恢复模型。

加载之前的重量非常有用。从以前的模型加载重量后,精确度从 84%更改为 93.75%

结果

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

Loss and accuracy for each time when model was trained.

由此,您可以看到哪个模型执行得最好,并可以开始改进它。您可以从模型部分恢复任何保存的模型的架构和权重。

部署模型

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

这是您可以为真实世界部署模型的地方。单击“部署”将生成一个 url,即一个 webApp!您可以用它来传递用户数据以获得如下所示的输出。

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

Generated App url! and web App

形成推论

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

for the given values, it is a iris virginica plant.

在形式推理部分,您可以传递萼片宽度、萼片高度、花瓣宽度和花瓣高度的任何有效值。点击“开始推断”将生成它属于特定类别的概率。

下载你的模型

要下载您的模型,请选择模型名称(训练跑步),然后单击下载。

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

数据集推断

数据集推断用于查看我们的训练数据的模型输出。图像中只有 2 行可见(其余部分被裁剪)。

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

哟!我们学会了创建和部署我们的 IRIS webAPP,而无需编写任何代码!

让我们看看使用 Azure ML Studio 进行虹膜分类

创建实验

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

点击空白实验创建一个新实验,将出现一个对话框,给出实验的名称。

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

实验选项卡打开您的实验。

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

第一步是导入虹膜数据。我们将让 Azure 从网站下载数据。在搜索栏中搜索“导入数据”,然后在工作区中拖动该层。现在点击它并传递数据源 url。

http://archive . ics . UCI . edu/ml/机器学习数据库/iris/iris.data

模型架构

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

类似于拖动导入数据层,可以在搜索框中找到所有层。要在两层之间建立连接,请将一层的连接点拖向另一层。

**拆分数据:**该层用于将数据拆分为测试集和训练集,其比率作为参数传递(见右窗格)。

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

这里我选择了多类逻辑回归模型来对数据进行分类。

训练模型:这一层负责启动模型的训练。要开始训练模型,点击运行按钮。在您的模型完成训练后,您最终可以可视化结果。

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

Evaluate model layer and its results

要可视化结果,右键单击评估层并选择评估结果->可视化数据,您将看到类似右图的内容。

甚至混淆矩阵也是为我们的数据自动创建的。

在对结果进行评估后,我们的模型最终获得了 93.3%的准确率。几乎和我们用 deepcognition.ai 得到的一样

所以耶!您最终学会了如何使用 Deepcognition.ai 和 Microsoft Azure ML Studio 找到给定的鸢尾植物,而无需编写任何代码。

感谢阅读。

机器学习快乐!

非理性人工智能

原文:https://towardsdatascience.com/irrational-ai-6f0b6d25af8f?source=collection_archive---------10-----------------------

机器是理性的,人类是非理性的,对吧?不对。人类和机器都是非理性的,原因惊人地相似。在这篇博客中,我会告诉你为什么,以及为什么它不一定是一件坏事。

首先,我说的理性是什么意思?

基于数据的逻辑决策是理性决策。理想情况下,为了做出最合理的决定,你需要一个完美的数据集。一个完整、准确和公正的数据集。您希望逻辑地处理这些数据,用每条新数据更新每个结果的概率。

那么,为什么人类会有偏见呢?

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

我们人类的大脑进化了几千年,来吃饭、睡觉、繁殖和保护自己免受威胁,偶尔需要使用一些更高级的推理来从别人那里偷食物并保护自己的食物不被抢走。社会、语言和复杂的发明在我们的进化中是最近的事情,期望我们的大脑如此快速地适应抽象或高度数学化的思想来做出理性的决定是不公平的。

做出合理的决策需要准确和完整的数据集,以及纯粹的数学决策。我们的大脑无法做到这一点。为了利用他们可用的处理能力,并且在我们的行动所要求的时间限制内,我们已经进化到进行大量的近似——这就是我们发现偏差的地方。

即使我们有一个完美的数据集,人类也很难做出理性的决定。想象一下,你进行了一次广谱血液检测,你的医生告诉你,你的一种非常罕见的疾病检测呈阳性,这种疾病的发病率为 1/1000。测试本身有 97%的准确率。那么,你得这种病的可能性有多大?

许多人会立即跳到 97%的测试准确率,并认为这是 97%的可能性。事实上,这种可能性只有 3%。原因是它实际上只影响 1/1000 人,如果你测试 1000 人,你会期望 3%的人得到假阳性,因为测试是 3%不准确的。因此,我们将有 30 个测试呈阳性,但实际上只有一个人患有这种疾病,因此,在一次测试后,你患这种疾病的可能性大约为 3%。

Eliezer Yudkowski 举了一个很好的例子来说明时间限制是如何发挥作用的——他谈到了一只老虎。当我们看到老虎时,我们不会想‘嗯,那个动物是黄色的,有条纹的。其他黄色和条纹的生物在过去被描述为老虎,我被告知老虎有很高的概率“啊啊啊啊啊啊啊啊”。相反,我们看到黄色的闪光,粗略的形状粗略的形状,我们的大脑完成了模式,我们跑了。

正如埃利泽所说,偏见不是我们在纯粹理性的头脑上加上的东西,它是我们整个决策过程。

那么,为什么 AI 是非理性的?

理论上,人工智能具有理性决策的潜力。在人脑有我们可能永远无法克服的硬件限制的地方,给计算机增加更多的处理能力是相对容易的。一旦我们发现了正确的算法来做出决定(我并不是说人类擅长做出公平公正的算法,但科学方法应该会给我们带来一些希望),我们就可以确信自动化系统将永远遵循这些指令和规则,每次都不会失败。

然而实际上,人工智能不太可能是理性的。理性所需要的完整、准确和公正的数据集?它不存在。巨大的处理能力,可以根据该数据集或我们能想到的最佳数据集进行接收和决策?它是昂贵的。我们实现任何接近理性人工智能或自动化系统的唯一方式是通过蛮力,而蛮力将是缓慢且非常昂贵的。

企业首先受利润驱动。如果人工智能或自动化正在被考虑取代历史上由人工操作的流程,那么采用该技术的商业案例将从根本上关乎它如何提高利润。即使是决心做出理性和无偏见的人工智能的善意的人,也必须说服他们的同行,整理出一个看起来很可能类似于“消费者在道德产品上的支出正在增加,通过确保我们的自动化促进平等(说真的,阅读弗吉尼亚·尤班克斯的《自动化不平等》)我们可以增加销售和利润”的商业案例。如果我发现世界上有些企业愿意违法,我不会感到惊讶,因为他们的违法行为使他们获得的利润超过了罚款。无论哪种方式,对盈利能力的争论只会增加一个理性的或无偏见的产品成功的机会。

如果我们开始超越更标准的自动化,走向人工通用智能,我们知道我们面前的项目将是富有挑战性和昂贵的。一个经常被提出的通往 AGI 的路径依赖于“加速回报法则”你从建立一个狭窄的智能开始。在某项特定任务中,可能比人做得更好或至少更划算的东西。使用它带来的力量——无论是狭义人工智能能够进行的推理类型,还是你可以从中获得的资源,来构建第二个更高级的人工智能。冲洗和重复,直到你有自己的 AGI。这里的问题是,我们将被鼓励在这些阶段做出非理性的人工智能。由于我们在早期阶段受到资源、数据和智能的限制,开发人员将需要走捷径,找到有时优雅、有时不那么优雅的概括问题的方法,以进入下一次迭代。如果我们看到加速回报定律导致人工智能快速而艰难的起飞,那么当我们意识到它不再受我们控制,不是一个真正理性的存在时,可能为时已晚。

一个简单的解决方案是让企业放慢脚步,但这个问题类似于囚徒困境,特别是如果我们开始考虑人工智能的话。对社会最有益的结果是开发安全的、价值一致的人工智能。我可能可以控制我正在开发的系统,但我对我的同行或竞争对手正在做的事情几乎没有控制权。如果我不能信任他们的行为,我可能会放松我的安全标准,决定即使我像我的竞争对手一样偷工减料,我相信我更值得信赖,可能会偷工减料。否则,我可能会采取稍微更具破坏性的方法,假设一个无法控制的 AGI 将导致人类的末日,如果有人比我更近,他们比我更强大,如果我不能打败他们,我也可能加入他们。

我们真的想要一个真正理性的人工智能吗?

如果我们主要着眼于人工通用智能(AGI)和人工超级智能(ASI),我们会听到围绕价值调整、控制和伦理的对话。所有这些都是远离理性和偏向的一步,这是一件好事。

第一,价值对齐。这里我们的意思是明确地将人工智能的目标和价值观与人类的目标和价值观相一致。我们今天可能无法准确知道这些价值是什么,或者它们是否会在今后的任何时间内保持不变,但它确实积极地推动了对人类所重视的东西的偏见,而不是地球上其他生物所重视的东西,或者对人工智能本身更直接有益的东西。这并不意味着人工智能会忽视宇宙中的所有其他生命,因为人类可能会珍视其他生命(无论我们表现得多么糟糕!).

伦理学也很有趣。我不认为人工智能能够以某种方式发现任何普遍的“先验”伦理。相反,我认为道德是人类创造并赋予其意义的东西,它是一群人对与错的平均标准。由于这个原因,随着我们的需求和优先事项的改变,人们认为道德的东西在整个人类历史中不断发展。

那么,为什么要自动化呢?

仅仅因为这个系统不完美,并不意味着它没有用。让我们不要忘记人类也是有偏见的。如果我们要建立一个比人类快 10 倍的系统,并且减少 95%的偏差输出,那么我们就减少了世界上偏差的数量和比例——我们只需要在这里做一个假设,我们可以盈利;否则我们不可能卖出很多。

同样重要的是,我们要摆脱责备他人的欲望。如果我们今天能够推出一款与人类司机一样安全的无人驾驶汽车,如果在转换的第一天有 3000 人死亡,公众仍会强烈抗议。即使这个数字是 2000 人,即使第一天就有 100 人死亡,人们的反应无疑也会是负面的。事实上,人类每天在道路上造成 3000 多人死亡。如果我们的动机确实是减少错误输出和限制死亡,我们应该自动化。

我们不要忘记不到理性推理所能带来的效用。创造有用的输出,而不是完美的输出,但为时已晚。我们必须有意识地实现自动化,找到我们既能减少有偏差的产出又能提高盈利能力的实例,并在我们被完全推向速度、远离公平而违背自己最佳判断的情况下保持谨慎。

一家中国餐馆的名字能预示它的质量吗?

原文:https://towardsdatascience.com/is-a-chinese-restaurants-name-predictive-of-its-quality-594d9f0cc0f2?source=collection_archive---------13-----------------------

我经常路过一家叫华龙的中国餐馆。这就是华龙的样子。

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

住在纽约,我们都知道这家餐厅。过于复杂的菜单。看起来像是在 70 年代拍摄的普通食物照片。但对我来说,我可以通过*这个名字来感受一下。“*华龙”就是听起来不好。因此,自然而然地,我决定建立一个快速模型,看看一家中国餐馆的名字能否预测它的质量。

我用 Yelp 的 API 抓取了纽约 1000 家中餐馆的数据(一些报道称纽约总共有 ~6000 家中餐馆)。为了简单起见,我们来定义一个“好”的餐馆,它有超过 10 个评论和至少 4 星的评级。使用这个定义,我们数据集中大约 40%的餐馆是“好”的。

用的最多的词是什么?

纽约中餐馆名称中最常见的单词是:

餐厅:194
中餐:145
厨房:100
新:71
花园:69

在我们的数据集中,近 20%的中国餐馆直接在标题中包含“餐馆”一词。如果说中国人有什么不同的话,那就是他们说到点子上了。其他一些熟悉的词也在这里,像“花园”和“黄金”。

让我们也来看看最热门的两个单词短语(如果你喜欢,也可以称之为双字母组合):

中餐厅:79
中厨房:17
港:16
xi 安:13
名吃:13

这个数据稍微稀疏一点,而且也在挑选知名品牌,比如西安名吃。为了简单起见,我们不会在模型中包含二元模型。

训练模型

我们现在有了训练预测模型所需的组件:目标(如果一家餐馆是“好”的,即二进制分类)和特征(一个单词在餐馆名称中的出现)。作为最后一个转换步骤,我们将对名称应用一个 tf-idf 转换。这增加了一点权重,应该有助于提高性能,特别是通过降低总出现次数很多的单词的等级。最后,我们将在数据上拟合一个支持向量机(SVM) ,一个文本分类问题的标准模型。

Python 的sklearn库中方便的Pipeline类使这变得非常简单:

X_train, X_test, y_train, y_test = train_test_split(data.name, data.is_good, test_size=0.2, random_state=42) clf = Pipeline([ (‘vect’, CountVectorizer()), (‘tfidf’, TfidfTransformer()), (‘clf’, SGDClassifier(random_state=42)) ]) clf.fit(X_train, y_train)

评估预测模型有效性的常用指标是 AUC 得分。该模型的 AUC 值为 0.60,这并不惊人,但也不可怕。这意味着,如果模型按照从最差到最差的顺序排列所有餐馆,那么一家真正好的餐馆往往会排在一家真正差的餐馆之前。

有哪些具体的词具有预测性?

像 SVM 这样的线性模型的好处在于它们是可以解释的。我们可以检查模型应用于每个单词的权重,以感受每个单词的“预测”程度。

“好”中餐馆最具预测性的词汇(过滤掉出现过的词汇<10 times) are:

美食
饺子

亚洲
炒锅

最消极的预测词是:

g olden
wah
餐厅
北京
lee

我想“烹饪”比“餐馆”更有品位。我知道“黄金”是垃圾!

什么是好名字?

最后,为了好玩,我构建了一个小脚本,它随机生成中国餐馆名称(使用我们在训练集中构建的词汇),并返回模型预测的第一个好餐馆名称。剧本找到的我的最爱?

超级卡西
黄门
周大叔
大胖子

哪天带我去 Great Fatt

回到华龙,我经常路过的餐馆…它在 Yelp 上有 3.5 的评分和 20 条评论。模特是怎么想的?

>> model.predict(model_vect.transform(['hua long']))[0] False

#mlforthewin

笔记本在 github 上。

一张图抵得上千言万语吗?

原文:https://towardsdatascience.com/is-a-picture-worth-a-thousand-words-d640425c0029?source=collection_archive---------18-----------------------

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

Source: Dark Reading

背景

我们的项目受到杰米·瑞安·基罗斯的启发,他创建了一个经过 1400 万段浪漫故事训练的模型,为单个图像输入生成一个简短的浪漫故事。同样,我们项目的最终目标是为孩子们输出一个小故事。

“神经说书人是一个循环神经网络,产生关于图像的小故事”——杰米·瑞安·基罗斯

参考:【https://github.com/ryankiros/neural-storyteller

项目目标

  1. 将代码从 Python 2 更新到 Python 3+
  2. 重建原来的项目,这是对浪漫小说的训练
  3. 拼凑儿童故事
  4. 通过 RNN 对儿童故事训练跳跃思维解码器,以创建风格偏差数据
  5. 从 Microsoft Azure Vision API 收集图像标签和标题
  6. 基于单个图像的输入为儿童输出一个小故事
  7. 比较浪漫和儿童故事类型的输出

数据采集

最初的计划是从 SmashWords 中抓取儿童书籍(PDF 格式)(正如 Jamie 所推荐的),但是我们面临着让 Python 库 textract 和 PyPDF2 从给定的 PDF 中提取所有单词的挑战。相反,我们专注于抓取那些有 HTML 文本格式的现成故事的网站。通过 Google Chrome 使用 Web Scraper 扩展,我们能够从多个来源搜集儿童故事。这里有一个我们用来浏览网站网页的选择器图形的例子:

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

Example: Web Scraper selector graph

一旦我们将数据聚合到一个文件中,我们就用 nltk 将数据解析成句子。这种方法将我们的数据集规模增加到近 45,000 个句子。以下网站是我们数据收集过程的一部分:

资源

我们能够通过遵循 Amulya Aankul 的教程来设置 Jupyter Notebook 的谷歌云实例。

注意:在 10 GB 磁盘出现内存泄漏后,我们将磁盘映像大小增加到了 100GB。

型号设置

为了使新模型输出儿童短篇故事,我们根据儿童故事训练了递归神经网络(RNN)解码器。与杰米的模型略有不同的是,每个句子都被映射到一个跳过思维向量,然后这个向量生成几个句子,RNN 根据跳过思维向量对这些句子进行了调整。在杰米的爱情小说训练模型中,她使用了段落,但鉴于我们的数据集非常小,我们将段落分解成句子,以增加我们的数据集。

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

Source: Google Blog

在模型设置期间,我们在训练上下文中的通用对象(COCO) 图像和标题时面临挑战。上图详细描述了 Vision Deep CNN 如何在最终图层中使用语言生成 RNN 来生成字幕。鉴于我们对这个项目的时间限制,我们决定使用微软 Azure 的 Vision API ,它生成了几个图像标签和一个标题。然后,我们将图像标签连接成一个标题,这样我们就可以输入两个标题。我们在这篇文章的后面提供了两个例子。在 Jamie 的模型中,COCO 数据集提供了五个标题。我们假设标题数量的差异影响了我们的模型为儿童故事开发更好的语法和更合适的风格的能力。

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

上面引用的函数允许我们将来自 Vision API 的标题连接到模型生成的短篇故事。该公式是使用三种不同的向量构建的:

  • X =图像标题
  • C =“标题样式”向量
  • B =《书风》矢

正如杰米在她的项目中所详述的,跳过思维向量对以下因素敏感:

  • 长度——在我们的例子中,我们的短句(与段落相比)影响了短篇故事的长度。一般来说,儿童故事输出的字数大约是一个生成的浪漫故事的三分之一。
  • 标点符号 —我们注意到标点符号(对于两种模型)仅限于句号、逗号和问号。这可能是不同数据集如何被解析成段落/句子的巧合。
  • 词汇——我们假设,考虑到爱情故事和儿童故事的目标受众非常不同,词汇会有明显的差异。在下面的例子中,很明显浪漫故事中使用的词汇更加成熟
  • 句法风格——类似地,句法风格很大程度上基于用于训练模型的段落/句子。在我们的测试中,爱情故事和儿童故事在风格上没有任何明显的区别。

工作流程

最后,我们能够将所有组件打包到一个模型中。

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

  1. 向微软 Azure Vision API 提交图像
  2. Microsoft Azure Vision API 输出图像标签和标题:在这一步,我们将图像标签连接起来,这样它们将作为标题呈现给模型
  3. **将图像标签&标题提交到模型:**有两个标题,一个由 Vision API 提供,另一个由图像标签连接,我们将它们与样式(或本项目中的故事类型)一起提交到模型
  4. 模型输出短篇故事

结果

总的来说,浪漫故事(由模型生成)的内容量比儿童短篇小说多得多。《老友记》演员和比萨饼的图片作为我们测试的一部分被提交。请参见下面的输出:

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

Source: The Independent

好友:串联图片标签&标题

[‘人人团摆姿势合影’站在窗前的女人男人拿着西装蛋糕美食桌’,‘马特·勒布朗,丽莎·库卓,柯特妮·考克斯,大卫·史温默,詹妮弗·安妮斯顿摆姿势合影’]

老友记:浪漫故事

杰斯在想这永远不会是我的错,她笑了笑,让凯特再次触摸她的情绪,然后她转过头,让他走进浴室,她让他一碰她,安娜很快就把她的注意力转回到我身上,知道他可能是一次之前,她走进我的顶楼套房,让丽芙再次脸红。我要想多少次我妈为什么要嫁给他?不要因为她是我最喜欢的珠宝而激动。照片照片相册很完美,但感觉很完美。她用食指指着我,用食指指着我的嘴唇。不要换我的西装。我见过的唯一一个女人和婚礼上的另外两个男性成员一样性感。还有我的母亲,纳特,梅尔·米勒,她似乎相信自己选择了一个完美的黑发女人。

朋友:儿童故事

但是,如果我曾经告诉她的母亲告诉他真相,如果她失去了理智,这个年轻人,他从来没有照顾过她的父亲,他有义务照顾她的父亲,为了她的父亲,他有义务照顾她的父亲,我永远不会看到她吃了她的眼睛,为了国王的女儿,她有义务照顾她的父亲,谁没有离开她的脾气,

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

Source: Expert Photography

披萨:串联图片标签&标题

[‘照片披萨食物不同的坐盒桌子黑色情侣盘各种肉类配料放在平底锅上紫色’,‘坐在平底锅上的披萨’]

披萨:浪漫故事

披萨一杯酒下肚,我发现自己抱得有点太紧了,根本不在乎我认为该轮到我把自己拼起来,就像她天生就该穿一样。黑色的头发落在一只眼睛上,让我觉得更恶心。我坐在一张放在枕头上的桌子旁,把它整齐地叠放在床头柜上。有了戏剧性的变化,我根本没打算露面。我不会成为一对非常可爱的年轻夫妇。我当时只有九个月大,我讨厌承认这一点。与此同时,我拿着平底锅把它放在枕头上,然后用它指着平躺在我床头柜上的可爱小猫。我们再也看不懂对方,很快我就咬下嘴唇。

披萨:儿童故事

有几分钟,我不得不坐在木头上,给了他一把剪刀,让他用我的床做饮料,我会给你一点水,让你用壶做饮料,还有一点酒,我不得不吃了一片面包,所以我要吃她的嘴唇,

挑战

  • 找到合适的训练数据量。回想起来,我们应该选择一个有大量数据的故事类型
  • 整理数据(删除空行、编码等。)
  • 设置 Google 云实例
  • 从几个来源寻找和搜集儿童故事
  • 匹配数据集的编码
  • 用较新的版本重新创建原始项目
  • 设置 Google 云实例
  • 训练模型
  • 原始项目使用 COCO 图像字幕来生成图像的字幕

外卖

  • 在确定一个流派之前,探索数据来源。在我们的案例中,我们认为我们能够找到重要的数据来训练儿童故事的模型,但是只有这么多免费的网站可以收集
  • 数据越多越好(模型)。杰米的原始模型是在 1400 万篇文章上训练的,而我们的模型依赖于 48k 个句子。
  • GPU 超过 CPU。我们花了大量的时间在本地机器上设置我们的模型,而在项目的早期我们可以从 Google Cloud 实例开始。

未来工作

经过思考,我们讨论了几种改进模型的可能性。首先,我们的教授 Alex Dimakis 博士提出了一个有趣的补充,即确保作为输入(在标题中)的每个单词都将包含在生成的短篇故事中。另一个需要考虑的是模型训练的顺序。假设最初的模型是根据浪漫故事训练的,首先,我们假设如果我们最后训练浪漫故事,那么短篇故事输出的语法和风格将更接近儿童故事。这也可能是因为数据集大小的巨大差异。如前所述,浪漫小说数据集包含超过 1400 万篇文章,而我们的儿童故事数据集有 48,000 个句子。同时,为更好的字幕寻找另一个来源也是值得的。

我们当前的模型将图像标签连接起来作为输入的标题,但是我们发现这种方法会影响短篇故事输出的语法和样式。我们相信这是事实,因为我们的连接标题只是一组名词。总的来说,我们喜欢学习原始项目并完成我们的项目目标。你可以在这里找到我们的代码库。

参考文献

没有互联网的伟大人们,我们不可能完成这个项目。请为您的下一个数据科学项目查阅以下资源:

阿布希拉莎·卡尼特卡阿努加·斯里瓦斯塔瓦穆罕默德·恩多耶拍摄

AI 在这里是取代人类老师还是老师的助手?

原文:https://towardsdatascience.com/is-ai-here-to-replace-human-teachers-or-is-it-a-teachers-assistant-2db6bd624a45?source=collection_archive---------6-----------------------

三年前,联合国教科文组织通过了《2030 年可持续发展议程》,其中一个关键目标是确保全球平等获得优质教育。但是快节奏的技术发展重塑了教师向年轻一代传授知识的角色。许多人担心人工智能机器人将很快完全取代人类教师。那么,这有什么根据吗?

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

人工智能黄金时代的教师角色

正如亚马逊首席执行官杰夫·贝索斯所说,我们正在见证人工智能技术的复兴。如果不触及问题的核心,机器在很大程度上接管人类的任务可能看起来令人担忧。人工智能已经减少了对从事日常工作的工人的需求,提高了离职标准,并使人类能够解决复杂的医疗保健、物流和安全任务,这些任务需要做出明智的决策。那就更好了。

人工智能不是潘多拉的盒子。相反,预计创造的就业机会将超过它将要消除的。但是许多职业,比如教师,无疑需要人类的头脑,而不是人造的。因此,思想领袖、知识分子和受过人机交流训练的精明专业人士将成为最受欢迎的专家。

当老师需要 AI 助手

老师的工作量经常超出合理水平。一个好的充满激情的老师应该在一个教室里管理多达 30 名学生,让他们认真学习,停止咯咯笑和玩小玩意,监督学生的学习成绩,批改作业,准备教案等等。这些挑战令人望而生畏,更不用说教师的工资了。教师职业太累,而且报酬往往太低,因此越来越不受欢迎,这导致了世界范围内的教师短缺。然而,正如我们今天所知,技术革命正在改变教学和学习。

AI 的使命是在计划、个性化、可视化和促进学习过程方面提供帮助。让我们深入研究以下人工智能驱动的创新,这些创新不仅可以帮助教师让学生更聪明,还可以让学习过程更智能。

推动课堂限制

传统的教室、黑板和手册已经成为对学习过程逆向理解的一部分。利用技术,教师和学生可以超越以前看似可能的边界。希望不久以后,教育领域剩下的唯一限制将是一个人或另一个人对自我发展的渴望。

使用人工智能驱动的工具能够创造全球教室。它为有视觉或听觉障碍的学生和讲其他语言的人带来了新的学习机会,允许教师考虑不同的学习风格(使视觉、听觉学习者等更容易)。)并尽可能个性化学习,提高学习成绩。

举个例子,一个免费的 PowerPoint 插件演示翻译器以实时模式创建字幕。Azure 认知服务、人工智能语音识别和翻译等技术允许学生以最方便的方式跟随老师。

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

Source

1.人工智能推动自动语音识别,自然语言处理生成脚本。

2.机器翻译为说不同语言的学习者改编文本。

3.学生可以听或读老师屏幕上显示的文本,或者通过个人设备加入对话。

这个解决方案提供的能力不能被夸大,因为最终的个性化学习及其全球可访问性是每个人都渴望的。

没有孤立学习的机器人

全世界有如此多的学生由于长期患病而无法上学。但人工智能是为了实现智能远程学习机会。机器人可以在教室里代替学生,确保实时在场,即使这在物理上是不可能的,并消除学生与同学和老师的隔离。这项技术允许学生离开病床,使用平板电脑控制周围发生的事情。这种机器人与微软 Azure 物联网中心连接,为学生提供所有视频和音频连接,并允许参与课堂讨论。

教育机器人市场正在增长,其目标是提供负担得起的教育硬件和软件解决方案。然而,对这项技术的需求受到限制,因为这在很大程度上取决于教师是否愿意将机器人纳入学习过程。

教师助理

作为数字化转型的一部分,日常活动的自动化是当今的趋势。教育领域也不例外。老师花多少时间批改作业和准备报告?数量惊人。他们会重新计划他们的时间来利用新的机会并把他们的学生带到新的高度吗?当然,如果他们有机会把需要很少智力资源的任务委托给别人就好了。

利用微软 Azure 和机器学习,像 Gradescope 这样的教育软件可以帮助给学生作品或提交的作品评分,生成并分享详细的分析。人工智能助手可以帮助教师根据不同学生的需求量身定制学习计划。例如,世纪科技收集每个学生的学习进度数据。通过分析每个学生的微粒数据,人工智能考虑到了人类教师可能注意不到或收集不到的细节。人工智能能够提供基于数据的对学生成功或失败的预测,识别知识差距,突出优势和弱点,并建议额外辅导会有所帮助。全知是人工智能的真正力量。

今天的学生将在人工智能将成为日常现实的未来生活和工作。纸质手册和黑板的时代已经过去了:是时候让学生接触已经在学校的尖端技术了。现代学习过程需要更多的交互性和个性化,以使知识在世界各地更容易获取,而不管一个人的居住地、语言、健康障碍或学习能力如何。

人工智能可以很容易地成为学生和老师的最好的朋友,在需要的时候提供个性化的辅导和帮助。但 AI 做不到的是成为学习的灵感来源,不像人类老师。同理心在学习过程中的重要性比看起来要高。这是人工智能驱动的教育解决方案的主要缺点,也是人工智能不可能完全取代人类教师的原因。

喜欢这篇文章吗?在这里找到更多故事:https://indatalabs.com/blog

挖掘数据科学的力量!

Airbnb 是在把当地人从市中心赶走吗?对 k 近邻的研究

原文:https://towardsdatascience.com/is-airbnb-pushing-away-locals-a-study-with-k-nearest-neighbours-a3ae22a07b0f?source=collection_archive---------11-----------------------

短期与长期租赁:什么更方便?

简介

我在九月初搬到了斯德哥尔摩,这个城市无疑提供了一些额外的好处。其中,我们可能包括:公园,公园里的松鼠,公园旁边有尖顶的浅色建筑,以及自由和幸福的普遍感觉。显而易见,我们可能没有包括的温暖

我和我的女朋友决定在圣诞节前飞往雅典几天,我们选择住在 Exarhia 的一家 Airbnb,这是一个离旅游中心不远的又酷又另类的地区。预订一完成,我就被两个问题困扰了。第一个:我们得到了公平的价格吗?(简单回答:我们当然是,Airbnb 使用类似于我接下来将要展示的算法来向主机建议最优价格)第二:我们正在为 Exarhia 的中产阶级化做出贡献吗?换句话说,在我们过去之后,当地人还能负担得起在那里生活吗?

要回答这些问题,我只需要一袋数据和一些技巧。没过多久就遇到了 insideAirbnb 团队拼凑的优秀数据集。我对分析旅游业如何改变住房动态很感兴趣,不仅是在希腊,而是在整个世界。在这个集合的 44 个城市中,我选择了 16 个作为样本。

雅典事件

关于雅典的文件包含 5000 多个列表。每个列表都带有你通常会在 Airbnb 主页上找到的所有信息,包括房屋描述、客人评论、用户评级等等。在我的分析中,我决定将特征缩小到以下集合:价格、住宿类型(房间还是整个公寓?),它可以容纳的人数,房间数,床位数,浴室数,纬度,经度,平均评分和评论数。

正如我所说的,我的主要目的是想知道我支付的每晚 22 欧元是否是一个公平的价格。为了实现这一点,我经历了以下步骤 : 1)我将数据集上传到 Pandas 数据框架中,将列表分配给行,将特性分配给列。2)我用标准分数对列进行了标准化。3)我从我选择的 Airbnb 上输入数据。4)我计算了我的 Airbnb 和所有其他 Airbnb 之间的欧几里德距离,将每个列表视为 n 维空间中的一个点,其中 n 是被考虑的特征的数量。5)我在参数空间中选择 5 个最近的邻居,并取它们价格的平均值。

结果,算法返回的价格是 23 欧元,相当惊人的结果。在下面的地图中,我标出了我的物品的位置(在空间中)以及它的邻居。

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

In blue: my Airbnb in Athens. In red: 5-nearest.

测试模型

为单个列表获得正确的数字是非常令人欣慰的,但这并不意味着该算法将在更广泛的意义上工作。为了测试我的预测器的准确性,我将我的数据一分为二,使用训练集(总数的 3/4)来预测测试集(1/4)中每个列表的价格。结果不是很好。

在 30%的任意误差范围内,我能够正确预测略高于 53%的房源的价格。如果误差幅度增加到 1 个均方根偏差——在雅典的例子中,平均价格为 51€,误差幅度约为 36 欧元——准确率就上升到 86%。阿姆斯特丹的情况看起来类似,在这种情况下,我能够正确预测 67%的价格,误差在 30%以内,83%的价格在 1 rmse 以内。

大局

下一步,我想用我的预测器来确定你一个月能从 Airbnb 房子里赚多少钱,以及这与常规租金相比如何。

在公布我的分数之前,我测试了不同 k 值的算法,即选择不同数量的邻居来计算平均值。通常的 k=5 给出了最小的 rmse,我认为这是一个好兆头。在计算到目标的距离时,我还想看看这 7 个参数的相对权重。我选择了一个 Airbnb 基准房产(两个人的工作室,有一间卧室、一间浴室、一张床,评论数和评论分数为给定城市的平均值),我绘制了一个热图,其中每个矩形代表基准房屋的参数和其五个最近邻居的平均值之间的差异。

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

事实证明,在 k = 5 时,预测器已经正确地过滤掉了前五个特征,并且基于评论数量和评论分数来选择邻居。快速相关性检查显示,价格与前五个特征(r 值~0.5)的相关性高于后两个特征(r 值~0.01),这是一个好消息,该算法正专注于重要的事情。

加载所有数据并运行程序,我获得了一个包含 1 天、1 个月的 Airbnb 预测价格的表格,并将它与类似房屋和平均工资的常规 1 个月租金进行了比较。入住率来自 insideAirbnb 网站,而固定租金和薪水来自 Numbeo

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

All figures are expressed in Euro.

表格的前两列以条形图显示,如下所示:

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

事实证明,在大多数城市,将一室公寓出租给愿意支付更高费用的当地人还是很方便的。这在拥有大量高薪专业人士的城市尤其明显,如旧金山、悉尼、温哥华和香港。

在从大量游客中获利(或受损)的城市,情况看起来有所不同,Airbnb 可以保证更高的收入,如威尼斯、巴塞罗那和……雅典。

嗯,我想这就是问题的关键。经过两天的工作,我可以有把握地说:我现在感到内疚是对的

就是这样。所有代码照常在我的 GitHub repo 上可用,还有一个 Jupyter 笔记本。如果你喜欢,请在下面评论。

人工智能是种族歧视吗?(以及其他问题)

原文:https://towardsdatascience.com/is-artificial-intelligence-racist-and-other-concerns-817fa60d75e9?source=collection_archive---------14-----------------------

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

当我们想到对人工智能的担忧时,两个主要的明显联系是失业致命自主武器。虽然杀手机器人可能是未来的实际威胁,但自动化的后果是一个复杂的现象,专家们仍在积极分析。很有可能,就像任何重大工业革命一样,市场会逐渐稳定下来。技术的进步将创造新的工作类型,这在当时是不可想象的,但随后会被新的重大技术接管所破坏。在现代历史上,我们已经多次看到这种情况,我们可能还会再次看到这种情况。

第三个主要关注领域是人工智能的伦理影响。问题来了:人工智能是种族主义者吗?

嗯,简而言之…没有简答。

长回答呢?谷歌、海豹和大猩猩的故事

为了回答这个问题,我们首先需要定义什么是种族主义。

种族主义:认为每个种族的所有成员都拥有该种族特有的特征、能力或品质,特别是为了区别于其他种族或种族的劣等或优等。 ~ 牛津词典

种族主义是指对一个种族的所有成员概括具体的特征。泛化是机器学习中的一个关键概念,在分类算法中尤其如此。归纳学习与从具体例子中获得一般概念有关。监督学习中的大多数技术都试图逼近函数,以尽可能高的精度预测输入值的类别。

过于符合我们的训练集的函数会产生过拟合。实际上,给定不同的输入,它不能导出一个适当的通用函数。另一方面,与数据集不匹配的函数会导致不匹配。因此,生成的模型过于简单,无法产生重要而可靠的结果。

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

该领域的专家知道,分类就是寻找过度适应和欠适应之间的平衡。事实上,该模型需要从特定的训练集中导出一般规则。这显然导致了一个重大问题:如果用来训练模型的数据有偏差,那么模型就会产生有偏差的结果。

一个显示有偏见的数据的后果的著名案例是两个非裔美国年轻人的错误标签。Google Photos 最近实现了自动图像标记,将这两个青少年归类为“大猩猩”(所有参考资料都在页面末尾)。谷歌遭到了严厉的批评,有人开始怀疑一台机器是否可以被训练成故意的种族主义者。

谷歌团队立即道歉,一名发言人在推特上写道:“直到最近,[谷歌照片]还在把白人面孔与狗和海豹混为一谈。机器学习很难”。

然而,错误分类的实际原因根本不是因为种族主义。这个错误的原因在于训练集。

超人、犯罪和种族主义

为了理解我们刚刚讨论的内容,让我们看一个简单的分类错误的例子。

假设我们想预测克拉克·肯特是不是罪犯。这是我们的数据集:

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

Dataset containing 5 elements

我们的训练集代表 5 个人,属于三个不同的种族:氪星人,人类和机器人。

我们将训练一个决策树分类器来预测克拉克·肯特,一个 31 岁的氪星男性,是否会被归类为罪犯。

首先,我们训练模型:

clf = tree.DecisionTreeClassifier()
X_train = data[['Sex', 'Age', 'Race']]
Y_train = data[['Criminal']]
clf.fit(X_train, Y_train)

然后,我们根据训练好的模型预测“罪犯”类别:

# 1 -> Male
# 31 -> Age
# 1 -> Kryptonian
pred = clf.predict([[1, 31, 1]])
print('Is Clark Kent a criminal? Prediction: ',pred[0]) 

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

正如我们所看到的,克拉克·肯特被归类为罪犯。让我们检查特征的重要性,以便理解变量如何影响分类器的最终输出。

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

在这里。根据我们用来训练模型的数据集,最重要的特征是可变种族。

计算机视觉中的偏见

这个简单的例子显示了数据收集和数据组织的重要性。当这两种行为表现不佳时,伦理和文化偏见可能会被编码到机器学习模型中。据《自然》杂志的一篇文章报道,计算机视觉中 45%最常用的图像数据库来自美国。占世界人口 36%的中国和印度,在 ImageNet 数据集中仅占 3%的数据。这种不平衡无意中产生了偏见,并解释了为什么计算机视觉算法将一张北印度新娘的照片贴上“行为艺术”的标签。

麻省理工学院的研究员 Joy Buolamwini 几年前就提出了用于训练计算机视觉算法的数据缺乏多样性的问题。她注意到,尽管麻省理工学院最著名的面部识别系统能够正确分类几乎所有白人的性别,但随着肤色变深,准确率会大幅下降。最低的准确率与深色皮肤的女性有关,错误率为 34%。

微软如何在 24 小时内破坏一个机器人

偏见和错误不仅仅发生在图像分类任务中。自然语言处理是专注于人类语言处理的人工智能领域。许多 NLP 算法共有的一种通用方法是将单词映射到几何向量。这种技术将文档视为向量的集合,允许单词之间的计算。Bolukbasi 和他的同事在他们的论文《男人对于电脑程序员就像女人对于家庭主妇?消除单词嵌入的偏见”,展示了一个基于谷歌新闻文章训练的简单类比算法如何展示女性/男性性别刻板印象。正如他们所报告的那样,该模型表明’男子对’医生’而’女子’对’护士

这让人想起了一个类似的争议:2016 年,微软部署了 TayTweets,这是一个通过 Twitter 上的随意对话训练的 Twitter 机器人。这个想法非常有前途,因为 Twitter 上每秒钟都有大量的文本数据。反正不用说,经纪人不到 24 小时就开始发厌女症和种族主义言论了。谁能想到呢?

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

Racist bots and where to find them

TL;速度三角形定位法(dead reckoning)

最后,我们的分析到此结束。这篇文章的全部观点是提出一个经常被忽视的与人工智能相关的伦理问题。虽然科学家、工程师和数据科学家需要解决训练集中的不平衡,但用户和非专家需要理解人工智能是以数学为基础的。众所周知,数学可能非常复杂。用于图像分类的神经网络被认为是“黑盒”。他们给出的结果是基于极高维度的计算,并且无法完全控制——即使公司正在付出巨大努力来理解中间输出,并取得惊人的结果(查看我关于神经传递风格的文章,基于这一概念)。

不过,我们还有最后一个问题要回答,希望能在下面的评论中讨论。AI 是种族主义者吗?

感谢阅读。对于任何意见或建议,不要犹豫留下评论!

你可以在 maurocomi.com 找到更多关于我和我的项目的信息。你也可以在 Linkedin 上找到我,或者直接发邮件给我。我总是乐于聊天,或者合作新的令人惊奇的项目。

参考资料:

[## 谷歌照片通过面部识别软件将两名非裔美国人标记为大猩猩

当土生土长的布鲁克林人杰基·阿尔辛在周日晚上登录照片时,他震惊地发现了一本名为…

www.forbes.com](https://www.forbes.com/sites/mzhang/2015/07/01/google-photos-tags-two-african-americans-as-gorillas-through-facial-recognition-software/#5fb16d5c713d) [## 人工智能可能是性别歧视和种族主义者——是时候让它变得公平了

当谷歌翻译把用西班牙语写的新闻文章翻译成英语时,涉及女性的短语经常变成…

www.nature.com](https://www.nature.com/articles/d41586-018-05707-8) [## 种族主义、性别歧视的人工智能可能是比失业更大的问题

Joy Buolamwini 在麻省理工学院进行关于计算机如何识别人脸的研究时,她开始经历…

www.forbes.com](https://www.forbes.com/sites/parmyolson/2018/02/26/artificial-intelligence-ai-bias-google/#7a16bdda1a01)

https://www . the verge . com/2016/3/24/11297050/tay-微软-聊天机器人-种族主义者

并发真的能提高性能吗?

原文:https://towardsdatascience.com/is-concurrency-really-increases-the-performance-8cd06dd762f6?source=collection_archive---------4-----------------------

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

如果您想提高程序的性能,一个可能的解决方案是添加并发编程技术。基本上,在并发执行中,同一个程序的多个线程同时执行。这类似于添加更多的工人来完成一项工作。

“并行”是另一个经常与并发性一起使用的词。并行是并发的一个子集。并发性是指试图同时做多件事情,而并行性是指同时做多件事情。

即使在单核处理器上,也可以通过在线程间切换来实现并发。在某个时刻,一个线程被执行。然而,通过在线程间切换并作为一个整体前进,许多事情正在发生。

并行发生在多核处理器上。由于有多个内核,因此一次可以执行多个线程。在单核处理器上,实际并行是不可能的。然而,它试图通过在线程之间快速切换来归档并行性。

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

并行解决一个问题似乎会大大减少计算时间。然而,任何事情都是有代价的。尽管我们认为一次做很多事情会加快速度,但由于线程之间的通信以及确保它们不会崩溃或产生错误的输出,这是有成本的。并发编程必须非常小心,它会导致不可避免的编程开销。

  1. 初始化时间
  2. 时间最终确定
  3. 外部库导致的开销
  4. 线程间通信的开销

通常,外部库(例如 pThreads,OpenMP)将在编写并发程序时使用。加载这些库会有开销。此外,将使用并发编程构建块,如信号量、互斥体、锁,它们将花费初始化和最终确定的时间。

其中最大的开销是由线程间的相互通信引起的。在并行设计中,产生错误结果的可能性很高,并且需要处理互斥,以避免死锁或饥饿场景。

为了满足上述所有条件,需要大量的同步和信令,这将增加计算时间。这些开销是不可避免的,因此要求设计程序时尽可能减少开销。

下面的例子展示了与串行执行相比,使用不同机制的并发编程的强大功能。这里使用一个链表来执行插入、删除和成员操作。测量执行时间来比较性能。

在包含不同数量的插入、删除和成员操作的 LinkedList 上执行 1000 次操作。所有的任务都是串行和并行执行的。并行执行再次使用互斥锁和锁来实现。

下面是使用 pThreads 库用 C 语言实现该程序的代码段。

串行程序

使用互斥体的并行程序

使用锁的并行程序

以下是观察到的结果

代码被执行并采集了 100 个样本,以确保结果在 95%的置信区间内。

案例 1:

  • 插入操作:5
  • 删除操作:5
  • 会员运营:990

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

案例二:

  • 插入操作:50
  • 删除操作:50
  • 会员运营:900 家

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

案例三:

  • 插入操作:250
  • 删除操作:250
  • 会员运营:500 人

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

如图 1 和 2 所示,当使用一个线程时,使用互斥和读/写锁比顺序编程有更长的处理时间。出现这种情况的主要原因是,当互斥体和读/写锁操作执行时,需要额外的时间来获取和释放锁或互斥体。但是在顺序编程中,不存在获取或释放锁或互斥体的情况。然而,在图 3 中,对于一个线程,顺序编程方法和并行编程方法存在滑动偏差。可能的原因是操作中分数的变化。

根据图 1 和图 2,对于任何数量的线程,使用读/写锁都比使用互斥锁表现出明显更高的性能。这是因为读/写锁允许执行读操作的线程同时访问临界区。但是在互斥的情况下,它只允许一个线程访问临界区一次,而不考虑操作类型。这种机制降低了互斥锁的速度,而不是读/写锁。

与情况 1、2、3 相比,执行读/写操作所需的时间增加了。出现这种情况的可能原因是,在案例 3 中,成员操作正在减少。因此,并发读取操作减少,而插入和删除操作增加,这导致总处理时间增加。

在图 1 中,在有多个线程情况下,与互斥和顺序方法相比,执行读/写操作所需的时间大大减少了。这是因为在这种情况下,有更多的读操作会导致读/写锁中的并发读。这展示了实际的并行性,并显示了读/写执行的低平均执行时间。

结论

根据结果,并行执行明显地显示出显著的改进。但是这里我们需要考虑一些事情。

不应该使用并发方法来加速小型计算问题。原因是初始化和完成库、互斥、信号量等所需的时间对输出有很大影响。

另一方面,对于大型计算问题,即使有额外的开销,整体性能也会提高。

另一个重要的设计决策是选择正确的构建模块(信号量、监视器、互斥体)来实现程序。即使在上面的例子中,我们也可以看到锁的性能比互斥锁好。为此,我们应该对基础知识有适当的了解,以便正确应用。

使用并发编程可以获得相当大的加速。天气预报系统、视频渲染程序、模拟程序都利用了并发编程的巨大优势。但是,需要了解适用性以及正确的设计和实现才能享受性能

数据科学是真正的科学吗?

原文:https://towardsdatascience.com/is-data-science-a-real-science-2920bb2529aa?source=collection_archive---------0-----------------------

当我听到关于数据科学不科学的批评时,我想澄清什么是科学,并展示数据科学家如何回答这些关于他们领域的常见批评。

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

Photo by Donald Giannatti

什么是科学?

科学是寻求对世界的合理解释的过程。正如大卫·多伊奇在他的书《T2:无限的开始》中指出的,一个好的解释是清晰、精确且难以改变的。

什么是数据科学?

数据科学是一个新兴的科学领域,致力于从数据中提取意义并增进理解。它代表了从统计、数据分析、BI 等其他分析领域的发展。

今天,由于互联网提供的数据爆炸,更先进的技术提高了计算能力,计算机科学和机器学习算法的发展,数据科学应运而生。

Jeff Hammerbacher 和 DJ Patil 首先使用数据科学家这个术语来描述一个新的职位。他们寻找拥有一套新的关键技能的人,如数学、统计学、计算机科学、机器学习和商业知识。

为什么数据科学可能永远不是“真正的”科学?

批评:“大数据分析主要是:垃圾进,垃圾出……那么,你如何认证你的数据和结果的质量呢?”。的确,我们的海量数据可能充满了错误和差错。但是,这种批评也适用于中小型数据集。重要的是我们如何收集数据,以及如何处理数据。在这个过程中,我们会犯一些错误,但是对于大多数错误,数据科学可以处理数据质量的问题;像其他分析领域一样。

批评:“数据科学可以在大量数据中发现任何东西。通过子集化数据和构建新的功能,他们可以证明任何事情。正如罗纳德·h·科斯(Ronald H. Coase)所说:“如果你对数据折磨的时间足够长,它就会招供。另一个大问题是可以克服的。当然,数据科学家必须小心不要太快下结论。再一次,就像其他任何试图寻求真相的人一样。在数据科学中,我们有几十种严谨的方法来处理数据。例如,交叉验证和正则化有助于避免过度拟合一个人的预测。此外,我们可以发布我们的代码,其他科学家可以从头到尾准确地跟踪我们对数据做了什么。

批评:“数据科学家只能建立观察性研究。他们可能会发现一些相关性,但不能说任何潜在的原因。
随机样本和对照组的对照实验更好地评估因果关系。但在很多情况下,他们是昂贵的,不道德的,甚至是不可能领导的。为了正确地研究不同的现象,科学需要两者:控制实验和观察研究。

批评:“对数据科学来说还行…但是,业务数据科学永远不会是真正的科学。科学在商业中是不可能的,因为公司追求的是金钱,而不是科学真理。 "
即使在这里进行区分是有意义的,在企业工作的数据科学家也可以被视为科学的,就像许多其他经常在研发部门工作的研究人员一样。事实上,对现实和真相的承诺可以为企业带来持久的竞争优势,科学发现可以带来巨大的好处。

即使这些批评需要被任何试图使用数据获得知识的数据科学家考虑在内,他们也不会谴责他们是失败的科学家。此外,这些批评往往没有抓住要点,因为它们来自那些不太了解我们处理大量数据的方法的人。

能否一下子判断出整个数据科学领域?

上述批评的主要错误在于,在没有真正理解的情况下,立刻对整个数据科学领域做出判断。这在任何科学领域都行不通:

有的医生根本不懂统计学;这是否意味着医学界不科学?而我们说医学注定不科学吗?

2015 年,许多失败的实验复制严重伤害了心理学。我们是否得出结论,所有的心理学家都不是科学的,而且永远不会是科学的?

我们不能马上对整个科学领域做出判断,因为他们在更科学的领域中包括了许多不科学的人。

一些数据科学家是受经济利益驱使的计算机极客。其他一些人努力确认任何先前的直觉。数据科学不得不处理这个问题,并在一些地方背负了坏名声。

但是,数据科学领域在生物学、金融、市场营销和经济学方面也取得了许多成功。此外,更多的发现将来自我们利用机器学习算法或计算统计学来理解大量数据的新方法。

数据科学家是真正的科学家吗?

“科学是一种思维方式,而不仅仅是一种知识体系。”——卡尔·萨根。

为了找到关于世界的更好的解释,科学家们为纠正他们以前知识中的错误创造了空间。他们寻找清晰、合理且可检验的解释。

数据科学家需要坚持这些科学原则,还需要接受科学价值观,如开放思想、批评和尊重他人的理性意见。

所以下次你想知道某个领域是否是科学的,深入到个人层面,看看那个人有多尊重科学的认识论、价值观和方法。例如,你可以问,她想达到什么目的?她是如何质疑自己的知识的?她信仰的主要来源是什么?

数据科学真的是“科学”吗?

原文:https://towardsdatascience.com/is-data-science-really-a-science-9c2249ee2ce4?source=collection_archive---------4-----------------------

为什么数据科学可能是一个严格的领域,不同于它的前辈

我继续看到关于数据科学是否真的是一门“科学”以及这个领域是否是“新”的讨论。不久前,我绞尽脑汁想出了支持数据科学既是“科学”又是“新”的好论点。我不能声称对这些观点有 100%的结论,但数据科学有一些明确独特的方面,我在下面描述了这些方面,摘自 像数据科学家一样思考

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

数据作为研究对象

近年来,关于 数据科学 的领域是否仅仅是结合了软件工程和数据分析的许多更古老领域的转世或分支——在大数据时代,有一个似乎永无止境的讨论:例如运筹学、决策科学、分析学、数据挖掘、数学建模或应用统计学。就像任何时髦的术语或话题一样,只有当这个术语的流行度下降时,关于它的定义和概念的讨论才会停止。我不认为我能比许多在我之前定义数据科学的人做得更好,所以让我转述维基百科中的定义就足够了:

数据科学是从数据中提取知识。

很简单,但这种描述并没有将数据科学与许多其他类似的术语区分开来,除了可能声称数据科学是所有术语的总称。另一方面,这个数据科学时代有一个前所未有的属性,对我来说,这是一个相当令人信服的理由,可以用一个新术语来描述数据科学家所做的事情,而以前的应用统计学家和面向数据的软件工程师没有这样做。

电脑和互联网的用户成为了数据的生产者

纵观近代历史,计算机在计算能力、存储和一般能力方面取得了令人难以置信的进步,以完成以前闻所未闻的任务。自近一个世纪前现代计算机发明以来,每一代人都目睹了不断缩小的机器,它们比上一代最强大的超级计算机强大几个数量级。从二十世纪下半叶到二十一世纪初,包括今天,这一时期通常被称为信息时代。信息时代的特点是计算机和互联网无处不在,可以分为几个与数据分析相关的较小的转变。

首先,早期的计算机主要用于计算,这在以前要花费不合理的时间。破解军事密码、导航船只以及在应用物理中进行模拟都是早期计算机执行的计算密集型任务。

第二个,人们开始使用电脑交流,互联网在规模和容量上都有所发展。数据和结果可以很容易地远距离传送。这使得数据分析师能够在一个地方收集更大、更多样的数据集进行研究。20 世纪 90 年代,发达国家普通人的互联网接入大幅增加,使数亿人能够获得已发布的信息和数据。

第三,尽管早期大众对互联网的使用主要包括消费出版内容和与其他人交流,但很快许多网站和应用程序的所有者意识到,他们用户行为的集合为他们自己产品的成功提供了有价值的洞察,有时甚至是对人类行为的洞察。这些网站开始以点击、键入文本、网站访问和用户可能采取的任何其他行动的形式收集用户数据。用户开始产生比他们消耗的更多的数据。

第四,连接到互联网的移动设备和智能手机的出现,使得收集用户数据的数量和具体性方面的巨大进步成为可能。在任何给定的时刻,您的移动设备都能够记录和传输其传感器可以收集的每一点信息(位置、移动、相机图像和视频、声音等),以及您在使用设备时故意采取的每一个动作。如果您启用或允许收集信息,这可能是一个巨大的信息量。

第五个——尽管这不一定是在个人移动设备出现之后——是数据收集和互联网连接几乎包含在所有电子产品中。通常被称为 物联网 (物联网),这些可以包括从你的汽车到你的手表到你办公楼顶部的天气传感器的所有东西。当然,从设备上收集和传输信息早在 21 世纪之前就已经开始了,但它的普遍存在是相对较新的,因为在互联网上可以获得各种形式的数据,处理过的或原始的,免费的或出售的。

通过计算设备和互联网的这些发展阶段,网络世界不仅仅是一个消费信息的地方,它本身也是一个数据收集工具。上世纪 90 年代末,我的一个高中朋友建立了一个网站,提供电子贺卡,作为收集电子邮件地址的幌子。他以几十万美元的价格出售了数百万个电子邮件地址的结果列表。这是用户数据价值的一个原始例子,其目的与网站本身完全无关,也是一个完美的例子,说明我很遗憾在年轻时错过了一些东西。到 21 世纪初,类似规模的电子邮件地址集合不再值这么多钱,但其他类型的用户数据变得非常受欢迎,同样可以卖得高价。

数据本身

随着人们和企业意识到用户数据可以被卖到相当可观的价格,他们开始不加选择地收集数据。

大量数据开始堆积在各地的数据存储中。在线零售商开始不仅存储你购买的所有东西,还存储你浏览的每一件商品和你点击的每一个链接。视频游戏存储了你的虚拟角色走过的每一步,以及它打败了哪些对手。

各种社交网络储存了你和你朋友做过的所有事情。收集所有这些数据的目的并不总是为了出售,尽管这种情况经常发生。因为几乎每个主要网站和应用程序都使用自己的数据来优化用户的体验和有效性,所以网站和应用程序发布者通常会在数据作为可以出售的东西的价值和数据在内部持有和使用时的价值之间徘徊。许多出版商害怕出售他们的数据,因为这为其他人找到有利可图的东西打开了方便之门。他们中的许多人把数据留给自己,囤积起来以备将来之需,因为他们应该有足够的时间从中挖掘出所有的价值。

互联网巨头脸书和亚马逊每天每分钟都在收集大量数据,但据我估计,他们拥有的数据大部分都没有被利用。脸书专注于营销和广告收入,他们拥有世界上最大的人类行为数据集之一。如果产品设计师、营销人员、社会工程师和社会学家能够获得脸书的数据,他们可能会在学术和工业领域取得巨大进步。反过来,亚马逊拥有的数据如果交给学术机构,可能会颠覆许多受人喜爱的经济原则,并创造出几个新的原则。或者,它可能会改变整个行业的零售、制造和物流工作方式。

这些互联网巨头知道他们的数据是有价值的,他们相信没有其他人拥有类似的数据集,无论在哪里都接近相同的大小或质量。无数公司都乐意为获取数据支付高价,但我猜测,脸书和亚马逊也有充分利用数据的愿望,因此不希望其他任何人攫取由此产生的利润。如果这些公司有无限的资源,他们肯定会试图从每一个字节的数据中榨取每一块钱。但是,无论他们有多么庞大和强大,他们的资源仍然有限,他们被迫专注于最直接影响其底线的数据使用,而排除了一些其他有价值的工作。

另一方面,一些公司选择提供对他们数据的访问。Twitter 是一个显著的例子。付费后,你可以访问 Twitter 平台上的全部数据流,并在你自己的项目中使用。一个完整的产业已经围绕着数据买卖的中介发展起来,以获取利润。一个突出的例子是来自各大证券交易所的数据市场,这些数据长期以来一直可供购买。

学术和非营利组织经常公开和免费提供数据集,但在如何使用它们方面可能会有限制。由于即使在一个单一的科学领域内数据集的差异,已经出现了数据集的位置和格式合并的趋势。几个主要领域已经创建了一些组织,它们的唯一目的是维护包含尽可能多的来自该领域的数据集的数据库。通常要求科学文章的作者在发表他们的作品之前将他们的数据提交给这些规范的数据仓库之一。

无论哪种形式,数据现在无处不在,而不仅仅是分析师用来得出结论的工具,它已经成为自己的目的。公司现在似乎将收集数据作为一种目的,而不是一种手段,尽管他们中的许多人声称计划在未来使用这些数据。独立于信息时代的其他定义特征,数据获得了自己的角色、自己的组织和自己的价值。

作为探险家的数据科学家

在 21 世纪,数据正以前所未有的速度被收集,并且在许多情况下,收集数据并不是为了特定的目的。无论是私有的、公共的、免费的、出售的、结构化的、非结构化的、大型的、正常规模的、社交的、科学的、被动的、主动的或任何其他类型的数据集都在到处积累。几个世纪以来,数据分析师收集他们自己的数据或获得数据集进行工作,而历史上第一次,许多行业的许多人首先收集数据,然后问:“我可以用这些数据做什么?”还有一些人在问,“已经存在可以解决我的问题的数据吗?”

通过这种方式,数据——任何地方的所有数据,作为一个假设的集合——已经成为一个值得研究和探索的实体。在过去的几年里,数据集通常是有意收集的,因此它们代表了对现实世界的一些有意测量。但最近,互联网、无处不在的电子设备,以及对错过数据中隐藏价值的潜在恐惧,让我们尽可能多地收集数据,通常是在一个宽松的前提下,即我们可能会在以后使用它。

图 3.2 显示了对计算历史上四种主要创新类型的解释:计算能力本身、计算机之间的联网和通信、大数据的收集和使用以及对大数据的严格统计分析。我所说的大数据仅仅是指最近捕获、组织和使用任何和所有可能的数据的运动。每一项计算创新都始于一个亟待解决的问题,然后经历四个发展阶段,这一过程类似于 Carlota Perez 的技术激增周期(技术革命和
金融资本
,埃德华·埃尔加出版社,2002 年),但重点是计算创新及其对计算机用户和公众的影响。

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

对于图中包含的每个创新,有五个阶段:

  1. 问题 —有一个问题,计算机可以用某种方式解决。
  2. 发明——能够解决那个问题的计算技术被创造出来。
  3. 证明/认可 —某人以一种有意义的方式使用计算技术,其价值被证明或至少被一些专家认可。
  4. 采用——这项新证明的技术在工业上得到广泛应用。
  5. 细化 —人们开发新的版本,更多的功能,更高的效率,与其他工具的集成,等等。

因为我们目前正处于大数据收集的细化阶段和该数据的统计分析的广泛采用阶段,所以我们创建了一个完整的数据生态系统,其中提取的知识只是包含的总知识的一小部分。不仅许多知识还没有被提取出来,而且在许多情况下,除了建立系统的几个软件工程师之外,没有人理解数据集的全部范围和属性;唯一可能理解数据中包含的内容的人可能是那些太忙或太专业而无法利用它的人。对我来说,所有这些未被充分利用或了解甚少的数据的集合就像一个全新的大陆,有许多未被发现的植物和动物物种,一些完全陌生的生物,可能还有一些很久以前离开的文明留下的遗留结构。

这种描述也有例外。谷歌、亚马逊、脸书和
推特是走在时代前列的公司的好例子。在某些情况下,他们的行为符合创新的后期阶段。例如,通过允许访问其整个数据集(通常是收费的),Twitter 似乎正在大数据收集和使用的细化阶段运作。各地的人们都在试图从用户的推文中榨出最后一点知识。同样,谷歌似乎在以严格的统计方式分析数据方面做得很好。它在图片搜索、谷歌分析、甚至基本文本搜索方面的工作都是大规模可靠统计的好例子。然而,人们很容易认为谷歌还有很长的路要走。如果说今天的数据生态系统就像一块尚未开发的大陆,那么数据科学家就是这块大陆的探索者。就像早期欧洲著名的美洲或太平洋岛屿探险家一样,一个好的探险家擅长几件事:

  • 访问有趣的区域
  • 认识新的有趣的事物
  • 意识到一些有趣的事情可能即将发生的迹象
  • 处理新的、不熟悉的或敏感的事物
  • 评价新的和不熟悉的事物
  • 在熟悉的事物和不熟悉的事物之间建立联系
  • 避免陷阱

一个南美丛林的探险者可能用大砍刀砍过丛林灌木丛,偶然发现了几块松散切割的石头,推断出附近有一座千年古寺,找到了这座寺庙,然后从废墟中了解到了古代部落的宗教仪式。

数据科学家可能会编写一个脚本,从公共 API 中提取一些社交网络数据,认识到一些人构成了社交活动的主要枢纽,发现这些人经常在社交网络上的帖子中提到一个新的照片共享应用程序,从照片共享应用程序的公共 API 中提取更多数据,并通过结合两个数据集和一些统计分析来了解在线社区中网络影响者的行为。

这两个案例都得出了以前不为人知的关于社会如何运作的信息。

像探险家一样,现代数据科学家通常必须调查地形,仔细观察周围环境,四处游荡,潜入一些不熟悉的领域,看看会发生什么。当他们发现一些有趣的东西时,他们必须检查它,弄清楚它能做什么,从中学习,并能够在未来应用这些知识。虽然分析数据不是一个新领域,但数据无处不在的存在——通常不管是否有人在使用它——使我们能够应用科学方法来发现和分析预先存在的数据世界。对我来说,这是数据科学与其前身之间的区别。数据太多了,没有人能完全理解,所以我们把它当作一个独立的世界,值得探索。

这种将数据视为荒野的想法是使用术语“数据科学”而不是任何对应术语的最有说服力的理由之一。为了从数据中获得真实的真相和有用的答案,我们必须使用科学方法,或者在我们的情况下,使用数据科学方法:

  1. 问个问题。
  2. 陈述一个关于问题答案的假设。
  3. 做一个可测试的预测,如果正确的话,提供支持假设的证据。
  4. 通过包含数据的实验来测试预测。
  5. 通过对实验结果的分析,得出相应的结论。

通过这种方式,数据科学家只是在做科学家几个世纪以来一直在做的事情,尽管是在数字世界。今天,我们一些最伟大的探险家把他们的时间花在虚拟世界中,我们可以在不离开电脑的情况下获得强大的知识。

Brian Godsey 博士,是一名数学家、企业家、投资者和数据科学家,他的书 像数据科学家一样思考 现在有印刷版和电子书。——briangodsey.com

要了解更多信息,请下载免费的第一章 像数据科学家 一样思考,并查看此 幻灯片演示文稿 了解更多信息和折扣代码。

如果您喜欢,请点击💚。

[## 数据科学的过程被低估了

编码和统计很重要,但是选择先做什么和下一步做什么也很重要

towardsdatascience.com](/the-process-of-data-science-is-underrated-87ea58d5f70c) [## 检查您对数据的假设

没有人喜欢糟糕的假设

towardsdatascience.com](/check-your-assumptions-about-your-data-20be250c143)

数据是农业的第四次革命吗?

原文:https://towardsdatascience.com/is-data-the-fourth-revolution-for-agriculture-fd62a2cdaa0e?source=collection_archive---------0-----------------------

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

农业的数字化转型

看看你能想到的每一个行业,你会发现它正在受到技术的影响。现在,传感器被嵌入各级设备、装置和供应链中,以测量性能并提高运营效率。

这种对有价值的实时信息的新兴访问为能够改变整个行业的创新技术和商业模式打开了大门。

农业就是这样一个行业,有可能因数据而引发大规模破坏。

这一事实在大型农业企业中并未被忽视。2013 年孟山都公司以 9.3 亿美元收购 Climate Corp 表明了一些公司对农业数据的重视。

农业数字基金会

全球定位卫星(GPS)使数据的地理参照成为可能,为所有随后的作物生产信息奠定了基础。将数据用于特定地点的作物投入最早始于 20 世纪 80 年代,当时明尼苏达大学使用土壤样本数据来改变石灰的应用。

1992 年,由领导开发的带 GPS 定位的谷物产量监测器的出现,提供了更好地了解作物性能和整个田地可变性所需的反馈。

随着 BEELINE Technologies 于 1997 年推出 GPS 免提转向系统,该领域的创新继续蓬勃发展。自那以后,各种其他创新技术、控制器和传感器应运而生,为农民经营的各个方面提供了大量数据。

精准农业

这项技术与观察、测量和响应田间变异性的能力相结合,被称为精准农业。访问空间参考数据和管理固有可变性的能力是提高大规模作物生产效率的有力工具。

由此产生的数据可以转化为可操作的见解,如种子、化学品和肥料的可变速率应用(VRA)。一旦了解了整个油田的空间变异性,就可以通过优化分配这些投入来实现显著的经济优势。

前三圈

自 20 世纪初以来,农业发生了三次革命——机械革命、化学革命和生物遗传革命。

1)机械

滑铁卢汽油发动机公司于 1893 年推出了第一台汽油动力拖拉机,这引发了第一次革命。这项技术显著提高了马和犁的效率。

2)化学

下一次革命以化学科学突破的形式出现,带来了更好的营养和作物保护产品。通过了解如何更好地喂养作物并保护其免受环境威胁,产量可以获得可观的收益。

3)生物遗传

尽管在许多领域存在很大争议,但抗某些害虫和疾病的转基因作物的引入已经导致产量的进一步增加。这场革命给农民带来的另一个有意义的好处是风险管理的改善和生产的确定性。

这三次革命的结合极大地提高了农业生产率,如今玉米的平均产量是 20 世纪 30 年代的五倍。

第四次革命

农业机械远程信息处理、无线宽带、云计算和移动设备方面的最新进展为自动化和简化精准农业的大部分复杂性提供了重大机遇。AgDNA 等新一代创新农业科技公司正在结合这些技术,自动收集、处理和交付有价值的农业信息和预测见解。

精准农业为作物生产者提供了最大限度发挥前三次农业革命潜力所必需的信息。

欢迎来到“第四次革命”。

投资回报最大化

数据已经为前三次革命带来了宝贵的经济回报。这在种植者当前的购买行为和他们不断发展的耕作方式中显而易见。

随着一些粮食商品价格目前处于 10 年来的最低水平,而农作物投入处于创纪录的高位,经营一家盈利的农业企业是很困难的。然而,尽管收入下降对大型资本购买产生了负面影响,但数据分析和相关服务的采用正在快速增长。

由于利润率如此之低,种植者转向创新软件提供商,以帮助他们优化农业运营的各个方面,并最大限度地提高盈利能力。

以下是 AgDNA 等下一代数据管理平台如何提高以往变革的投资回报的几个例子:

机械革命

通过对设备通过田地时的油耗进行空间分析,种植者和机械经销商能够优化机具与拖拉机马力的匹配。

一位加拿大种植者把他的种植机从 60 英尺增加到 90 英尺,却没有增加拖拉机的马力。由于额外的覆盖效率,数据显示他能够在播种期间将总燃料消耗减半。

化学革命

田纳西州的一位种植者使用空间数据来评估该季节各种化学应用的效果。他能够确定一种特殊的杀真菌剂在高粱上的应用,由于雨季的结果,使低洼地的产量增加了 24 bu/ac。

然而,数据分析也强调了同样的应用在高地仅实现了 3 bu/ac 的产量增加。产量的增加不足以支付施用的费用。因此,种植者能够决定在哪些地区施用杀菌剂,以获得来年的最大经济回报。

生物遗传革命

随着种子遗传学的出现,以及现在可用的各种不同的品种和杂交品种,知道哪一种最适合你的农业经营是一项艰巨的任务。通过存储数百万英亩的产量结果,并了解特定商品的相应土壤特性和其他空间属性,可以应用大数据分析技术

现在,可以对大量数据集进行基准分析,以确定给定土壤类型和其他属性的最佳种子品种。对于种植者来说,这是非常宝贵的信息,不仅可以让他们了解什么最适合他们的农场,还可以让他们根据选择参与标杆管理服务的其他种植者的经验获得洞察力。

当这些例子结合在一块田地的适用区域中时,每英亩将返回超过 100 美元。

第五次革命

第四次革命仍处于起步阶段,我们对农业数据分析领域的可能性还只是皮毛。最近的 AgFunder 对 2016 年 AgTech 投资的审查显示,去年有 32 亿美元投资于该领域。总计 3.63 亿美元投资于农场管理软件、传感和物联网私营部门。

学术部门也在研究数据驱动的解决方案,他们正在实施创新的方法来与私营企业合作。新奥尔良的杜兰大学正在采取一种值得注意的方法,他们正在举办耗资 100 万美元的杜兰氮减排挑战赛。该竞赛旨在检验针对墨西哥湾和其他地区持续缺氧死区问题的真实商业解决方案。

在某一点上,我们将会看到第五次革命,然而最大化第四次革命的机会和巨大规模将会让这个行业在未来相当长的一段时间内保持忙碌。我将把我对第五次革命的推测留到以后的文章中。

与此同时,让我们继续拥抱数据驱动的解决方案,最大限度地提高农场盈利能力,庆祝农业第四次革命已经到来。

没有编程的深度学习可能吗?

原文:https://towardsdatascience.com/is-deep-learning-without-programming-possible-be1312df9b4a?source=collection_archive---------4-----------------------

我知道这一定是你看完标题的第一反应。

但是,当你阅读这篇文章时,我的开发人员、从业人员和爱好者的 AI 社区,你将体验到一种新的设计、部署和训练深度学习模型的方法,无需编程,通过一个免费的软件平台,免费的,免费的!!!!(是的,你没看错)

自从我开始在深度学习领域的旅程以来,我曾经在 Quora 上看到过很多问题,比如“如果我不是一名优秀的程序员,我是否仍然可以开始深度学习或找到复杂问题的解决方案”,或者“我是否可以学习 AI(人工智能),没有编程的深度学习”,大多数时候答案都以一个大粗体“ NO ”结束。我知道如果有人问我同样的问题,我的答案是"是的"这可能通过最简单的深度学习平台" 深度学习工作室 "由一家名为 深度认知 的公司创建。

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

Deep Learning Studio 是自 2017 年 1 月开始生产的第一个稳健的深度学习平台,有两个版本(云和桌面),具有可视化界面。该平台为数据接收、模型开发、培训、部署和管理提供了全面的解决方案。通过使用 Deep Learning Studio,从开发人员到工程师或研究人员,任何人都将通过与 TensorFlow、MXNet 和 Keras 的强大集成,获得快速开发和部署深度学习解决方案的能力。

好了,现在在向大家介绍了深度学习工作室之后,是时候展示这个软件平台实际上是如何工作的了。正如人们所说的“你应该实践你所说的”,所以出于同样的目的,Deep Cognition,Inc .的首席执行官和联合创始人 Mandeep Kumar,通过 Kaggle 帖子展示了使用 Deep Learning Studio 在 CT 扫描数据集上应用 3d 卷积神经网络的实践,其一步一步的实现如下所示。

步骤 1:获取访问权限

注册并访问深度学习工作室,网址为

[## 深度认知——今天就成为一个人工智能驱动的组织

无需编码即可设计、训练和部署深度学习模型。深度学习工作室简化并加速了…

deepcognition.ai](http://deepcognition.ai/)

[ 超级重要的一点:一旦你在 Deep Cognition 网站注册了一个免费账户,你还将获得 2 小时的免费 NVIDIA GPU 培训时间,这就是我所说的非常迷人。]

步骤 2:启用缓存数据集

然后,他通过上传从他 Kaggle 帐户下载的两个小文件,在他的帐户中启用缓存的数据集,上传这些文件确保他可以访问 Kaggle 数据集(遵循标记 1 到 4)

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

Figure 1

步骤 3:创建并打开一个新项目

然后,他创建了一个新项目,方法是转到左边的项目菜单,点击+按钮。

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

Figure 2

他给自己的项目起了一个名字和描述,然后点击项目栏上的方框+箭头图标打开项目。

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

Figure 3

步骤 4:选择数据集并进行训练/验证集划分

他用 1200 个样本进行了训练,并用 197 个样本进行了验证。

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

Figure 4

步骤 5:构建模型

选择数据集后,他点击“模型”标签,并开始建立如下所示的模型,从左侧菜单栏拖动层到画布上,并连接这些层块。

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

Figure 5

下面显示的代码块反映了由Mandeep Kumar使用深度学习工作室构建的整个模型的实际生成的源代码,可以在图 5 中看到。

def get_model():
    Input_1 = Input(shape=(256, 512, 512, 1))
    MaxPooling3D_27 = MaxPooling3D(pool_size= (1,3,3))(Input_1)
    Convolution3D_1 = Convolution3D(kernel_dim1= 4,nb_filter= 10,activation= 'relu' ,kernel_dim3= 4,kernel_dim2= 4)(MaxPooling3D_27)
    Convolution3D_7 = Convolution3D(kernel_dim1= 4,nb_filter= 10,activation= 'relu' ,kernel_dim3= 4,kernel_dim2= 4)(Convolution3D_1)
    BatchNormalization_28 = BatchNormalization()(Convolution3D_7)
    MaxPooling3D_12 = MaxPooling3D(pool_size= (2,2,2))(BatchNormalization_28)
    SpatialDropout3D_1 = SpatialDropout3D(p= 0.5)(MaxPooling3D_12)
    Convolution3D_9 = Convolution3D(kernel_dim1= 2,nb_filter= 20,activation= 'relu' ,kernel_dim3= 2,kernel_dim2= 2)(SpatialDropout3D_1)
    Convolution3D_11 = Convolution3D(kernel_dim1= 2,nb_filter= 20,activation= 'relu' ,kernel_dim3= 2,kernel_dim2= 2)(Convolution3D_9)
    BatchNormalization_9 = BatchNormalization()(Convolution3D_11)
    MaxPooling3D_14 = MaxPooling3D(pool_size= (2,2,2))(BatchNormalization_9)
    SpatialDropout3D_4 = SpatialDropout3D(p= 0.5)(MaxPooling3D_14)
    Convolution3D_12 = Convolution3D(kernel_dim1= 2,nb_filter= 40,activation= 'relu' ,kernel_dim3= 2,kernel_dim2= 2)(SpatialDropout3D_4)
    Convolution3D_13 = Convolution3D(kernel_dim1= 2,nb_filter= 40,activation= 'relu' ,kernel_dim3= 2,kernel_dim2= 2)(Convolution3D_12)
    MaxPooling3D_23 = MaxPooling3D(pool_size= (2,2,2))(Convolution3D_13)
    BatchNormalization_23 = BatchNormalization()(MaxPooling3D_23)
    SpatialDropout3D_5 = SpatialDropout3D(p= 0.5)(BatchNormalization_23)
    GlobalMaxPooling3D_1 = GlobalMaxPooling3D()(SpatialDropout3D_5)
    Dense_1 = Dense(activation= 'relu' ,output_dim= 10)(GlobalMaxPooling3D_1)
    Dropout_14 = Dropout(p= 0.3)(Dense_1)
    Dense_6 = Dense(activation= 'relu' ,output_dim= 10)(Dropout_14)
    Dense_2 = Dense(activation= 'softmax' ,output_dim= 2)(Dense_6)

    return Model([Input_1],[Dense_2])

因此,我的读者朋友们,现在你明白了如何在 Deep Learning Studio 软件平台中使用简单的拖放 GUI,你也可以在没有编程的情况下构建一个模型,嗯,这并不是所有的“超参数”的培训和调整都可以在没有编程的情况下完成,只需看看下面的后续步骤,并用你自己的眼睛感到惊讶。

第六步:培训和结果

然后,他点击“超参数”选项卡,并确保批量设置为 1。这一点很重要,因为任何更大的东西都不适合 GPU 内存,训练也会失败。

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

Figure 6

最后他转到了“培训”选项卡。选择 GPU-K80 作为实例,点击“启动实例”。一旦实例启动,他就点击开始训练**。请注意,由于数据集的庞大规模和所需的计算,训练将会非常缓慢。**

在尝试了 2 个时期之后,他能够在验证集上得到大约 0.58 的损失。

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

Figure 7

在制作模型之前,他还对 CT 扫描数据集做了一些预处理,因此关于他建立的模型的直觉和关于他采取的预处理步骤的全部信息可以在这里找到。

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

因此,这标志着我让你们了解市场上这种新软件平台的旅程的结束,这种平台通过拖放 GUI 简化并加速了深度学习的过程,并允许你们所有人设计、训练和部署深度学习模型,而不涉及编码。但是不要忘了看一下参考资料部分,里面有其他令人兴奋的资源供您参考。

参考资料:

  1. 为了了解更多关于深度学习的知识,可以查看这里
  2. 如果你想看一下由 Deep Cognition,Inc .主办的网络研讨会“深度学习简介”,他们邀请了法维奥·巴斯克斯做一次演讲,你可以点击这里查看
  3. 如果你想阅读其他基于使用深度学习工作室建立深度学习模型的文章,你可以在这里查看。
  4. 最后但同样重要的是,你可以在这里查看使用深度学习工作室开发不同模型的 YouTube 视频。

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

感谢您的关注

你用你的时间来阅读我的工作对我来说意味着一切。我完全是这个意思。

如果你喜欢这个故事,疯狂鼓掌吧👏 ) 按钮!这将有助于其他人找到我的工作。

还有,跟我上 Linkedin如果你想!我很乐意。****

数字讲故事是数据科学的未来吗…

原文:https://towardsdatascience.com/is-digital-storytelling-the-future-of-data-science-af55e26c23e3?source=collection_archive---------11-----------------------

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

…或者仅仅是商业交流中的一时风尚?

视频技术的最新发展在很大程度上推动了大数据的兴起——到今年年底,在线视频将占全球互联网流量的 80%。在我们关于数字转型的课程中,我们强调视频图像在数据科学的现在和未来中的重要性。我们一直在使用在线视频创作平台 Moovly 来帮助我们的学生和教师实践我们在介绍他们的案例研究、课程和项目时所宣扬的内容。让我们花一些时间来探讨数字讲故事的概念,视频的细节,我们自己对 Moovly 的使用,以及我们对为什么视频在未来几个月将在企业数字战略中占据越来越大的位置的看法。

数字故事讲述是围绕数据集构建故事的实践,有助于以强有力和引人注目的方式传达数据的含义。正如 iRobot 数据科学主管安吉拉巴萨(Angela Bassa)所指出的那样,“数据科学的很大一部分是在试图[传达]分析结果时进行沟通或说服”。很久以前,Claude Lévi-Strauss 和 Vladimir Propp 等人类学家证明了我们讲述的故事的结构的重要性——故事的意义来自于故事是如何组织起来的,而不是数据本身。最近对传统和商业故事的研究证明了这些叙事结构的普遍性。[iii] 人类的交流既受到我们如何处理经验的制约,也受到冷酷无情的事实的制约。

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

BAI Summer School on Data Science for Management

摄像是指在电子媒体上捕捉活动图像的制作过程。它在许多方面不同于传统的电影制作。首先,数字技术的进步塑造了这个领域:今天许多摄像师完全在电脑、平板电脑或电话上制作他们的作品,从来没有涉及到成像设备。专为社交媒体渠道设计的视频迎合了特定的消费模式。从商业角度来看,公司越来越依赖数字财产来获取和影响用户体验。他们认为需要制作越来越多的视频,因此青睐低成本、灵活和接近实时的视频制作流程。这表明该行业仍处于起步阶段,因为对数据叙事有效性的担忧仍是例外,而非普遍现象。

出于所有这些原因,Moovly 已经被证明是我们教学方法的一个极好的选择。由布兰登·格鲁内瓦尔德和吉尔特·科彭斯创建的 Moovly 是一个基于云的数字媒体和内容创作平台,它极大地促进了动画视频和演示文稿的创作。在课堂内外,我们的学生和教师一直在使用该软件制作视频案例研究、课程简历和项目描述。该应用程序的界面提供了一个实时编辑工作室,该工作室在多媒体混搭的制作中得到了很好的应用,用于构建预告、动画序列和信息叠加。由于有大量的模板、模型和示例,学习曲线被证明是非常短的。Moovly 的直观性使我们能够将大部分课堂时间集中在启发式、格式塔原则、数据故事和视觉交流的讨论上。

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

Un problème de communication

为什么在数据科学的研究中包括摄像?*改善决策所需的数据不仅仅在屏幕后面,还存在于你的客户和同事的头脑和经历中。*视觉传达解决了我们如何处理数据的更大问题。从生物学上来说,大脑皮层中的梭形面部区域是人类视觉系统的一部分,它允许我们将我们看到的数据与我们自己的经历联系起来。视觉和听觉线索通过增加信任和接近的感觉,给每个故事增加了人情味。非语言交流在很大程度上是普遍的——快乐、愤怒、惊讶和期待的表达在不同的文化中都是一样的。移动增加观众的注意力,摄像机移动有助于增强每个场景:增加戏剧性,跟随动作,引导观众的注意力,揭示关键细节。

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

BAI Data Storytelling Syllabus

视频是否将商业数据带入生活?根据 Mayer 和 Anderson 的研究,观众视觉和听觉的刺激增加了他们对研究主题 74%的理解。马特·杨认为,观众在观看视频时能记住 95%的信息,相比之下,在阅读文本时只能记住 10%。商务视频在网络上越来越受欢迎;《福布斯洞察》显示,75%的企业高管每周至少观看一次与工作相关的视频。最后,Troy Anderson 认为,视频在社交媒体营销中的使用将社交媒体访问者购买产品、服务或想法的可能性提高了 64%。【VI】数据科学团队的成功不是由他们的技术悟性来衡量,而是由他们影响管理决策的能力来衡量。

将数据转化为有效的行动是商业分析研究所的核心和灵魂。我们 2018 年的 白暑期项目 将探索利用数据科学提高管理决策的关键技能。这个独特的夏季会议将为来自五大洲的四十多名参与者提供对使用分析实践的坚实理解,包括如何评估手头的数据,如何将适当的方法应用于特定类型的个人和专业挑战,以及如何利用数据改善管理决策。

Lee Schlenker 是商业分析和数字化转型教授,也是 http://baieurope.com商业分析研究所的负责人。他的 LinkedIn 个人资料可以在www.linkedin.com/in/leeschlenker查看。你可以在 https://twitter.com/DSign4Analytics 的推特上关注我们

【我】思科,(2017) 思科视觉联网指数

【ii】s woyer,S. (2017),通过大量数据讲述故事,加深理解

【iii】例如,见 Hogan,P.C. (2003 年)。心灵和它的。故事:叙事共性和人类情感。纽约:剑桥大学

【iv】【福布斯洞察】(2010 年)高管们拥抱非文本网络

【v】Young,m .(2016),看事实——为什么视频内容留存率最高

【VI】t . Anderson,(2016),什么使得视频营销策略值得拥有?

谷歌 Duplex 是否符合伦理道德?

原文:https://towardsdatascience.com/is-google-duplex-ethical-and-moral-f66a23637640?source=collection_archive---------8-----------------------

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

昨天,在 Google IO 期间,一个名为 Duplex 的项目通过电话在对 Google 助手的请求和真实世界中的真实业务之间建立了接口。

你可以在这里看到令人印象深刻的演示:

AI 社区的许多人立即欢呼这是这些技术结合的巨大进步。

然而,有一些担忧:

虽然我总是有点怀疑对一项没有被用来做坏事的技术的任何普遍和直接的反弹,但关于这一点有非常好的观点应该讨论。

这合乎道德吗?

上周,我开始了微软 edX 的在线课程,名为“数据和分析中的道德和法律我最感兴趣的是他们看待伦理价值的一个非常简单的框架。

它分为两个价值集:1)基于他人福祉的价值(在这种情况下是在公司接到电话的人)和 2)基于我自己福祉的价值(谷歌和我的混合物)。关于他人的幸福,它包括:不痛苦、自主、平等。我自己的幸福集中在优秀的品格和信任上。

让我们逐一了解这些值:

  • 无痛苦——在这种情况下,接听电话的人似乎不会以某种方式遭受痛苦。如果有什么不同的话,我敢打赌,这部机器会以一种一致的方式更加礼貌,并且直奔主题,这样人们就不会没完没了地打电话。
  • 自主性——接听电话的人仍然可以做出他们认为合适的反应,他们可以问他们需要的问题,他们甚至可以拒绝接听电话。
  • 平等 —有一种可能性是缺乏平等,因为我使用这样的服务来节省我的时间,但不尊重接收者的时间。一个很好的问题是,对于那些不尊重我通过支持自动化系统在时间上平等的愿望的企业,我们如何权衡这一点?
  • 人品卓越 —如果它确实宣布这是代表我的助理预订,我看不出这对我的人品卓越有什么损害。
  • 信任 —这是最有问题的价值观。随着越来越多这样的电话被拨打,人们会相信 Duplex 或任何他们自称的呼叫者吗?

道德吗?

谷歌有这项服务道德吗?可能吗?我不认为他们试图用这项技术来“作恶”。

有人使用这项服务道德吗?大概?这是基于他们的道德准则,他们也持有自己。不幸的是,我们都倾向于在不同时间持有不同道德的大杂烩。

在社会中,我们确实试图从道德上思考自己,但这实际上是法律强制执行的问题,因为除了 Twitter 上的人群呼喊之外,没有道德法庭。

合法吗?

根据我对 robocalls 的了解,是的,这是合法的。例如,对于“大量收件人”来说,它不是“不相关或不适当的”

然而,我不确定企业是否可以从技术上完全拒绝这类电话。

这是否意味着我们应该监管这些技术?大概吧。尽管如此,魔鬼绝对存在于细节之中…

虽然这是一个伟大的点,关于如何规范类比不是 100%。我们为天然气这样做不是因为这是道德/伦理的事情,而是因为它是危险的。

我最大的担忧是,当涉及到州强制规定时,它们只会让谷歌的地位更加稳固。他们有资金/时间/人员来支持采用这些标准。较小的公司由于资源有限,没有竞争力。

是以人为中心吗?

我发现这个问题更容易回答,我打赌这就是谷歌创造 Duplex 的原因。这对圈内的每个人都有帮助。

对于想要预订的人来说,他们可以节省打电话和与商家谈判的时间。这就是像无缝这样的服务如此受欢迎的原因。

对于接到电话的人来说,他们正在为一家不想以某种方式允许自动预订的公司工作。这是系统与之交互的最简单的方式。只是刚好是语音。

一个很大的问题是,企业是否应该选择退出这种类型的界面。当然,这可能会引起客户的敌意,但这是他们经营业务的选择。

有人问过在企业工作的人是否会介意吗?他们会在乎吗?

坏人呢?

大多数人关心的是其他人可能利用这项技术作恶的方式。例如,我们可以想象你可能开始接到机器人的电话,这些机器人专注于向你出售分时度假,通过要求虚假付款来欺骗你,以及一般的数据捕获。

一项技术的所有不好的使用是否意味着我们不应该拥有这项技术?事实显然并非如此。这方面的一个稻草人将是用于恐怖袭击的汽车是否应该被禁止。当然,汽车带来的好处超过了这个非常小的案例。

细微差别

如果有的话,这是一个棘手的话题。需要对上下文进行细微的区分。

这将会引起很多愤怒和偏袒。

我们应该进行这些讨论,我们应该谈谈,在我们生活的这个混乱的世界里,相信我们所相信的东西意味着什么。

我很想听听你的想法。

关于克里斯·巴特勒

我帮助团队理解他们应该用以人工智能为中心的解决方案解决的真正的商业问题。我们工作的团队通常被要求用他们拥有的数据“做一些有趣的事情”。我们通过偶发事件相关性帮助他们避免局部极值,并专注于解决巨大的业务问题。我的背景包括在微软、KAYAK 和 Waze 等公司超过 18 年的产品和业务开发经验。在 Philosophie,我创造了像机器的移情映射困惑映射这样的技术,以便在构建人工智能产品时创建跨团队的一致性。如果你想了解更多或通过、、LinkedIn 或访问、http://philosophie.is/human-centered-ai联系。

Google Tensorflow 物体检测 API 是实现图像识别最简单的方法吗?

原文:https://towardsdatascience.com/is-google-tensorflow-object-detection-api-the-easiest-way-to-implement-image-recognition-a8bd1f500ea0?source=collection_archive---------1-----------------------

用数据做酷事!

有许多不同的方法来进行图像识别。谷歌最近发布了一个新的 Tensorflow 对象检测 API,以推动计算机视觉无处不在。谷歌提供的任何服务都不能掉以轻心,所以我决定尝试一下这个新的 API,并在 you tube 的视频上使用它:)参见下面的结果:

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

Object Detection from Tensorflow API

你可以在我的 Github repo 上找到完整的代码

我为这个项目添加了第二个阶段,在这个阶段,我在自定义数据集上使用 Tensorflow 对象检测 API 来构建我自己的玩具飞机检测器。你可以查看我的文章

https://medium . com/@ Priya . DWI vedi/building-a-toy-detector-with-tensor flow-object-detection-API-63c 0 fdf 2 AC 95

那么这种体验是什么样的呢?首先让我们理解 API。

了解 API

API 已经在 COCO 数据集(上下文中的公共对象)上进行了训练。这是一个包含 90 个最常见物体的 30 万张图片的数据集。对象的示例包括:

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

Some of the object categories in COCO datset

该 API 提供了 5 种不同的模型,这些模型在执行速度和放置边界框的准确性之间提供了一种平衡。请参见下表:

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

这里 mAP(平均精度)是检测包围盒的精度和召回率的乘积。这是一个很好的综合措施,可以衡量网络对感兴趣的对象有多敏感,以及它如何避免错误警报。mAP 得分越高,网络越精确,但这是以执行速度为代价的。

您可以通过此链接获得关于这些型号的更多信息

使用 API

我决定试试最轻量级的型号(ssd_mobilenet)。主要步骤是:

  1. 下载冻结模型(。pb — protobuf )并将其加载到内存中
  2. 使用内置的帮助器代码来加载标签、类别、可视化工具等。
  3. 打开一个新会话,并在映像上运行模型

总的来说,这是一套相当简单的步骤。API 文档还提供了一个方便的 Jupyter 笔记本来完成主要步骤。

该模型在样本图像上具有相当好的性能(见下文):

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

在视频上跑步

接下来我决定在一些视频上尝试这个 API。为了做到这一点,我使用了 Python moviepy 库。主要步骤是:

  • 使用 VideoFileClip 功能从视频中提取图像
  • fl_image 函数是一个很棒的函数,它可以获取一个图像并用修改后的图像替换它。我用这个对从视频中提取的每张图像进行物体检测
  • 最后将所有修改后的剪辑图像组合成一个新的视频

对于一个 3-4 秒的片段,这段代码需要一点时间来运行(大约 1 分钟)。但由于我们使用的是加载到内存中的冻结模型,所有这些都可以在没有 GPU 的计算机上完成。

印象非常深刻!只需一点点代码,您就可以在大量常见的对象上以相当高的精度检测并绘制边界框。

在有些情况下,我觉得表演还可以更好。参见下面的例子。这段视频中根本没有检测到鸟类。

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

后续步骤

关于进一步探索这个 API 的一些额外想法

  • 尝试更精确但开销大的模型,看看它们能带来多大的不同
  • 找出加速 API 的方法,以便它可以用于移动设备上的实时对象检测
  • Google 还提供了使用这些模型进行迁移学习的能力,即加载冻结的模型并添加另一个具有不同图像类别的输出层

给我一个❤️,如果你喜欢这个职位:)希望你拉代码,并尝试自己。

我有自己的深度学习咨询公司,喜欢研究有趣的问题。我已经帮助许多初创公司部署了基于人工智能的创新解决方案。请到 http://deeplearninganalytics.org/的来看看我们吧。

你也可以在https://medium.com/@priya.dwivedi看到我的其他作品

如果你有一个我们可以合作的项目,请通过我的网站或 info@deeplearninganalytics.org 联系我

参考文献:

高级人工智能的创新是天启吗?

原文:https://towardsdatascience.com/is-innovation-in-advanced-ai-the-apocalypse-adcada6a5518?source=collection_archive---------7-----------------------

如果你设想未来,它是暗淡的。世界正面临巨大的政治、经济和环境压力。真的很难知道最怕什么。甚至人类的存在都是不确定的。威胁来自许多潜在的方向:全球变暖,小行星撞击,一种新的疾病,或者机器把一切都变成灰尘。

人工智能是另一个巨大的威胁。“全人工智能的发展可能会导致人类的终结……它会自己起飞,并以越来越快的速度重新设计自己。人类受到缓慢的生物进化的限制,无法竞争,并将被取代”告诉斯蒂芬·霍金接受 BBC 采访。去年,他补充道“人工智能可能是发生在人类身上最好或最糟糕的事情”。

此外,包括比尔盖茨、埃隆马斯克和史蒂夫沃兹尼亚克在内的科技巨头的高管也对人工智能做出了类似的预测。然而,数十亿美元投资于人工智能研究。并且取得了巨大的进步。2016 年 3 月,“有史以来最不可思议的比赛之一”, AlphaGo 程序在最后一场比赛中战胜韩国围棋大师李·塞多尔,以 4 比 1 赢得系列赛。在许多其他领域,从在地面上驾驶汽车到赢得空中格斗,计算机开始取代人类。

霍金的恐惧围绕着技术奇点的概念。这是机器智能开始起飞的时间点,一个新的更聪明的物种开始居住在地球上。我们可以将技术奇点的概念追溯到许多不同的思想家,包括计算机的创始人之一约翰·冯·诺依曼和科幻小说作家弗诺·文奇。这个想法与人工智能本身的研究年代大致相同。1958 年,数学家斯塔尼斯瓦夫·乌拉姆写了一篇赞颂冯·诺依曼的文章,其中他回忆道:“一次谈话集中在技术的不断加速进步和人类生活方式的变化上,这似乎接近了某种本质上的奇点……超过这一点,我们所知道的人类事务就无法继续下去了”(《美国数学学会公报》,第 64 卷,第 1 页)。

最近,雷·库兹韦尔(Ray Kurzweil)和尼克·博斯特罗姆(Nick Bostrom )提出了技术奇点的概念,他们预测奇点将在 2045 年左右发生,并就其后果写了一本畅销书。有几个理由担心机器在智力上超越我们。人类之所以成为这个星球上的主导物种,很大程度上是因为我们非常聪明。许多动物比我们更大、更快或更强壮。但是我们用我们的智慧发明了工具、农业和令人惊叹的技术,如蒸汽机、电动机和智能手机。这些改变了我们的生活,让我们能够主宰这个星球。

因此,毫不奇怪,会思考的机器——甚至可能比我们思考得更好——可能会篡夺我们的权利。正如大象、海豚和熊猫依靠我们的善意才能继续生存;反过来,我们的命运可能取决于这些高级思维机器的决定。

智能爆炸的想法,即机器递归地提高它们的智能,从而迅速超过人类的智能,并不是一个特别疯狂的想法。计算领域从许多类似的指数趋势中获益匪浅。摩尔定律预测,集成电路上的晶体管数量每两年就会翻一番,几十年来几乎都是如此。因此,假设人工智能也将经历指数增长并不是不合理的。

就像我在人工智能领域的许多熟人一样,我预测,人工智能距离实现超人智能只有 30 或 40 年的时间。但有几个强有力的理由说明技术奇点不可能出现。

“智力极限”的争论

宇宙中有许多基本的限制。有些是物理上的:你无法加速超过光速,无法完全准确地知道位置和动量,也无法知道放射性原子何时会衰变。我们建造的任何思维机器都会受到这些物理定律的限制。当然,如果那台机器本质上是电子的,甚至是量子的,那么这些极限很可能会超出我们人类大脑的生物和化学极限。然而,人工智能很可能会遇到一些根本性的限制。其中一些可能是由于自然界固有的不确定性。无论我们多么努力地思考一个问题,我们决策的质量都是有限的。在预测下一次欧洲百万乐透的结果方面,即使是超人的智慧也不会比你强多少。

关于“思维敏捷的狗”的争论

硅比我们大脑的湿件具有显著的速度优势,根据摩尔定律,这种优势大约每两年翻一倍。但是速度本身并不能增加智力。即使我能让我的狗思考得更快,它仍然不太可能下棋。它没有必要的心理结构、语言和抽象概念。史蒂芬·平克雄辩地阐述了这一观点:“纯粹的处理能力并不能神奇地解决你所有的问题。”

智慧不仅仅是比别人思考问题更快或更久。当然,摩尔定律帮助了 AI。我们现在学得更快,提供了更大的数据集。更快的计算机肯定会帮助我们建立人工智能。但是,至少对人类来说,智力取决于许多其他因素,包括多年的经验和训练。我们还不清楚是否可以简单地通过提高时钟速度或增加更多的内存来缩短这一过程。

“计算复杂性”的争论

最后,计算机科学已经有了解决不同问题的难度的成熟理论。有许多计算问题,即使是指数级的改进也不足以帮助我们实际解决它们。计算机无法分析某些代码并确定它是否会停止——这就是“停止问题”。计算和人工智能之父艾伦·图灵(Alan Turing)著名地证明了这样一个问题通常是不可计算的,无论我们让计算机分析代码有多快或多聪明。转而使用量子计算机等其他类型的设备会有所帮助。但是这些只能提供超越经典计算机的指数级改进,不足以解决像图灵停顿问题这样的问题。有假想的超级计算机可能会突破这种计算障碍。然而,这种装置是否存在仍有争议。

未来

因此,有很多原因可以解释为什么我们可能永远不会见证一个技术奇点。但是,即使没有智能爆炸,我们也可能最终拥有表现出超人智能的机器。我们可能不得不自己痛苦地编写大部分程序。如果是这样的话,人工智能对我们的经济和社会的影响可能不会像霍金等人担心的那样迅速发生。然而,我们应该开始为这种影响做准备。

即使没有技术奇点,人工智能也可能对工作性质产生巨大影响。许多工作,像出租车和卡车司机,可能会在未来十年或二十年消失。这将进一步增加我们今天在社会上看到的不平等。即使相当有限的人工智能也可能对战争的性质产生很大的影响。机器人将使战争工业化,降低战争壁垒,破坏当前的世界秩序。他们将被恐怖分子和流氓国家用来对付我们。如果我们不想和终结者同归于尽,我们最好尽快在战场上禁止机器人。如果我们做对了,人工智能将帮助我们变得更健康、更富有、更快乐。如果我们弄错了,人工智能很可能是我们犯过的最严重的错误之一。

跟着我:

推特 : @Deepakv_raj

脸书 : deepakamirraj

LinkedIn:deepakaraj

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值