TowardsDataScience 博客中文翻译 2019(三百一十八)

原文:TowardsDataScience Blog

协议:CC BY-NC-SA 4.0

教育水平和贫困线:对美国最大城市的分析(包括交互式仪表盘)

原文:https://towardsdatascience.com/level-of-education-and-the-poverty-line-an-analysis-of-the-largest-us-cities-interactive-309e6c3e9f46?source=collection_archive---------15-----------------------

正如劳工统计局(【BLS】)所概述的,获得高中文凭的人比继续接受高等教育的人挣得少(获得学士学位的人多 66%,如果是硕士或以上学位,则多 102%),因此,受教育程度越高的人生活在贫困线以下的可能性就越小。虽然这一趋势已经确立了一段时间,但不同城市之间的教育水平差异很大。

在这项研究中,我使用了来自 2017 年美国社区调查的数据,查看了至少有 50 万居民的城市,以研究各城市的教育水平和贫困之间的关系。

为了更深入地挖掘和查看更多的可视化效果,转到这里使用我为今天的报告创建的仪表板。

%受过大学教育的人口生活在贫困线以下

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

密歇根州的底特律在美国大城市中位居前列,成为拥有大学学历的人群中贫困率最高的城市(10.5%)。紧随底特律之后的是亚利桑那州的图森(8.8%)和宾夕法尼亚州的费城(8.3%)。在光谱的另一端是北卡罗来纳州的夏洛特,那里只有 3.3%受过大学教育的人生活在贫困线以下。紧随其后的是加利福尼亚州的圣何塞和得克萨斯州的沃思堡,这两个城市的失业率与夏洛特相差不到 0 . 1%。

学士学位获得者与高中毕业生的比例

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

接下来,我们将看看受过大学教育(学士学位或更高)的人与高中文凭是他们接受的最高教育形式的人的比例。

图表图例:如何阅读以下报告的右侧

  • 颜色
  • o 红色——高于大城市的平均贫困水平(针对相应的教育水平)。

o 绿色——城市的教育贫困率低于中等贫困水平。

  • 形状

o*‘X’—表示该市高中毕业生的贫困率。*

o 钻石——城市大学毕业生贫困率(学士学位&以上)。

西雅图以 6.4 的比率领先,这意味着每 1 个拥有高中文凭的人,就有 6.4 个获得学士学位或更高学位的人。紧随西雅图之后的是旧金山(5.0 的比率)和华盛顿特区(3.4)。

在这份报告考虑的 32 个大城市中,只有 7 个城市拥有高中文凭的人比拥有学士学位或更高学位的人多。在底特律,每一个拥有高中文凭的人,只有 0.45 个学士学位获得者。底特律的这一比率远远领先于密尔沃基(0.74)和费城(0.8),这两个城市分别位居第二和第三。

生活在贫困线以下的高中毕业生与大学毕业生贫困率之间的差距

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

弗雷斯诺高中毕业生的贫困率领先所有主要城市(22.4%,以上;比大城市高中毕业生的贫困率中位数高出 27%),比受过大学教育的贫困率高出 388%(4.6%;比大城市大学毕业生贫困率中位数低 24%)。与其他四个加州城市不同,弗雷斯诺的高中毕业生和大学毕业生的比例接近 1:1。DC 华盛顿州以 382%的差距紧随其后,大学教育贫困率(5.7%)和高中教育贫困率(27.3%)之间的差距。排在第五位的是俄克拉荷马州的俄克拉荷马城;得克萨斯州埃尔帕索;和田纳西州的孟菲斯;这些城市的大学教育贫困率都比一般大城市高,但高中教育贫困率更低。

洛杉矶的教育水平差异最小,高中毕业生的贫困率仅比受过大学教育的贫困率高 131%。亚利桑那州图森(147%);科罗拉多州丹佛市(151%)位居第二和第三。

受过大学教育的人口比例高的城市对贫困水平的影响

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

在最后一张图片中,我比较了学士学位获得者与高中毕业生的比例(在之前的图片中使用),并将其与各自教育水平的贫困率进行了比较。获得学士学位者的比例越高,生活在贫困线以下的人口比例就越低(包括高中毕业生和大学毕业生)。

这是我今年计划写的关于贫困、收入不平等、住房和中产阶级化的一系列相关文章的第一篇。为了更深入地挖掘并查看更多的可视化效果, 转到这里使用我为今天的报告 创建的仪表板。

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

使用快速绘图提升数据可视化水平

原文:https://towardsdatascience.com/level-up-your-data-visualizations-with-quick-plot-f18eddb82468?source=collection_archive---------11-----------------------

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

K-Means plot for Spotify

数据可视化是数据科学家工作流程的重要组成部分。它允许我们直观地理解我们的问题,分析我们的模型,并允许我们为社区提供深刻的有意义的理解。

作为数据科学家,我们总是寻找新的方法来改进我们的数据科学工作流程。

我为什么要在 ggplot 上使用这个?他们有什么不同吗?有什么好处?

Qplot 允许更清晰、更简短和更简洁的语法来声明 ggplot 可视化。这是一把伟大的瑞士军刀,用于绘制快速简单的可视化图形,对于那些以前没有使用过 ggplot 或 R 的人来说,它非常容易阅读。

qplot 是quick plot的简写,是为 ggplot2 设计的一个快捷方式。

让我们看看它是如何工作的!

下面我将展示两种绘制相同可视化的方法。首先使用 ggplot2,然后使用 qplot。

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

Scatterplot

ggplot2

ggplot(mpg) + 
  geom_point(aes(displ, hwy, color = factor(cyl), shape = factor(cyl)))

qplot

qplot(displ, hwy, data = mpg, colour = factor(cyl), shape = factor(cyl))

通过使用 quick plot,我们可以缩短语法,使其更加清晰简洁。如果您以前用 python 编程过,语法变得非常类似于seaborn库。

让我们再看几个例子!

条形图

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

Bar Chart using ggplot

ggplot2

ggplot(data = diamonds) + 
geom_bar(aes(color, weight = carat, fill = color, alpha = 0.5)) + scale_y_continuous("carat")

qplot

qplot(color, data = diamonds, geom = "bar", weight = carat, fill = color, alpha = 0.5) + scale_y_continuous("carat")

散点图和折线图

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

Scatter plot & line chart

首先,我们将从钻石数据集中抽取一个小样本。

dsmall <- diamonds[sample(nrow(diamonds), 100),]

ggplot

ggplot(dsmall, aes(carat, price)) + geom_point() + geom_smooth()

qplot

qplot(carat, price, data = dsmall, geom = c("point", "smooth"))

箱线图

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

Boxplot

ggplot

ggplot(data = mpg) + 
  geom_boxplot(mapping = aes(x = drv, y = hwy, color = manufacturer))

qplot

qplot(drv, hwy, data = mpg, color = manufacturer, geom = 'boxplot' )

鳍状物

我希望这个故事教会你一些新的东西!ggplot 和 qplot 都可以用来达到同样的效果。但是,如果你曾经想决定是独立的,有一个快速,肮脏和简单的数据可视化探索性数据分析的 qplot 的尝试!

一如既往,我欢迎反馈和建设性的批评。你可以在推特@ chip asaur上找到我。

利用人工智能治愈癌症

原文:https://towardsdatascience.com/leveraging-ai-to-cure-cancer-c56189a9dbba?source=collection_archive---------7-----------------------

癌症是全球死亡的主要原因之一。这并不意外。

预计每两个加拿大人中就有一个会患上癌症,这是一个惊人的数字预计会有 1850 万人被诊断患有这种致命的疾病。更不用说四分之一的 T4 人预计会死于癌症,也就是 925 万人。

最近,人工智能等技术的许多进步正在帮助研究人员彻底改变医疗保健的未来,从识别医学图像中的模式到预测药物的新目标蛋白质!这项技术正显示出改变全世界数百万人生活的巨大能力。

我利用了人工智能的技术,并深入研究了称为生成模型的子部分。在生成模型中,我特别关注变型自动编码器,因为它能够:

a)学习数据的有意义的底层表示

b)从不同类别的数据中理清变异的来源

由于这些因素,我能够构建一个变分自动编码器来识别和提取一个包含 5000 个不同表达基因的数据集内的已知和未知生物信号。

数据集来源于癌症基因组图谱,该图谱描绘了超过 10,000 种肿瘤超过 33 种不同的癌症类型,揭示了不同的基因组特征,例如众多基因的表达水平。

基因表达水平是对样本中所有活性非活性基因的测量。如果基因是活跃的,这意味着它的过程,用它的信息(转录)编码 RNA ,并从编码蛋白质(翻译)的 RNA,被执行。基因表达水平捕获了关于肿瘤状态的大量信息。显然,不是所有的基因都一直表达,所以表达的基因有助于研究人员在治疗特定疾病时识别哪些特定的基因通路。基因表达的过程极其重要,因为基因表达的产物,一种蛋白质,决定了细胞的功能。识别在不同肿瘤中高度表达的基因,并识别其基因表达在患者中的生物影响,对于设计有助于治愈癌症等疾病的特定治疗方法来说极其重要。

我构建的变分自动编码器能够成功地压缩输入数据,并重新生成 5000 个基因及其表达水平的类似数据。它还能够理清数据中生物变异的来源,以及识别导致不同生物模式的特定基因的贡献,这可能导致肿瘤的癌变状态。

这篇文章将由两部分组成。

第 1 部分)部件——在 VAE 的引擎盖下

第 2 部分)解释——提取/识别数据中有意义的生物信号

第一部分

这是什么?

变分自动编码器是一个生成模型。这意味着它可以学习输入数据的底层分布,并基于它的学习生成数据的副本。

注意单词编码器是“可变自动编码器”的一部分这是因为 VAE 的一个功能是将输入数据(5000 个基因)压缩到一个低维(隐藏)空间,称为 潜在空间。 潜在空间中的数据是输入数据的分布,然后由解码器网络对其进行采样,以生成输入数据的类似版本。

VAE 由一个编码器解码器和一个损失函数组成。

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

Structure of a VAE

编码器是一个神经网络,它获取 5000 个基因的输入数据,并将其编码成仅仅一个 100 个特征

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

Snip-it of input data consisting of 5000 genes and their gene expression levels (this table goes on for a long time)

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

Compressing the input data

编码特征是仅代表输入数据的相关特征的概率分布。由于 VAE 是一个生成模型,它的目标是生成与输入数据相似的变量。为了使编码器压缩并以概率术语表示数据,以适合最小化的空间,编码器输出压缩的数据作为两个向量:平均向量标准偏差向量****。

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

直观地说,均值向量控制范围,即输入数据的编码应该围绕什么进行,而标准差控制“区域”,即编码可以偏离均值多少。

现在解码器网络从平均值和标准变化向量中采样,以获得向量格式的输入,并馈入解码器网络。采样的矢量称为隐藏层。解码器现在能够重建原始输入。

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

但是,我们如何确保解码器网络的输出与输入编码器网络的原始输入数据相匹配呢?

这就是损失函数发挥作用的地方!损失函数由两部分组成,一个生成损失和一个潜在损失**。生成损失帮助解码器生成类似于输入的数据,这有助于它的准确性。它通过获取解码器的数据输出和编码器网络的输入之间的误差差来实现这一点。然后,误差通过两个网络反向传播,更新其权重和参数,以提高解码器网络的精度。潜在损失表明均值和标准差向量中的编码特征与原始输入数据的匹配程度。这在 VAE 中是一个非常重要的功能,因为最终编码的特征是解码器正在采样的,以从中学习并生成与输入类似的数据。**

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

Output generated data from decoder network

第二部分

识别生物信号

我想看看 VAE 中的编码特征是否能够概括和保留基因数据中存在的生物差异,例如患者的性别。

为此,我提取了解码器网络第一层中的权重。解码器网络第一层中的权重对隐藏层进行解码,隐藏层由来自压缩输入数据的采样信息组成。

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

用于解码隐藏层中特征的权重实际上能够捕捉基因表达数据中重要且一致的生物模式**。通过从解码器网络中提取权重,我能够识别出特征 82 主要由与患者性别相关的基因组成。这意味着编码器网络能够输出 5000 个基因的压缩,这学习了数据集中的模式。**

通过从解码器提取权重,我们现在能够查看哪些基因对编码器网络创建的特定特征编码有贡献。你可以注意到特征 82 中的所有基因都位于性染色体上。****

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

genes in feature 82

我们可以通过观察阳性高权重基因来预测患者的性别,这些基因包括 x 失活基因,如 XIST 和 TSIX。

VAE 还能够构建两个特征,分别由原发性转移性** 皮肤黑色素瘤(SKCM)肿瘤组成。**

对于这两个特征中的基因,我们提取了权重较大的基因,来专门识别这些基因所执行的 GO (基因本体) terms 。我们提取高权重基因,因为这些基因被认为是表达最多的基因,这意味着它们对肿瘤的状态有更大的影响,因为它们的表达决定了细胞的功能。

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

Code to extract high weight genes from SKCM features

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

Output of high weight genes from metastatic tumour

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

Output of high weight genes for primary tumour

现在可以对来自特征 66** 和特征 53 的高权重基因实施过度表达途径分析,以识别每个特征中的 GO 术语。**

过度表达途径分析是一种用于解释特征中基因列表(也称为基因集)的 GO 术语/功能过程的技术。GO 术语分为 3 类 : 分子功能(描述基因的分子活性)生物过程(描述基因执行的更大的细胞作用,与其他基因协调)和细胞成分**(描述基因产物(即蛋白质)在细胞中执行其功能的位置)。**

每个基因都可以用多个术语来描述(注释)。过度表现途径分析与随机比较,识别集合中过度表现的 GO 术语(因此得名)。

被过度表示的项被输出为 P 值。P 值越接近零,特征(基因集合)中表示的 GO 项不是随机的并且具有生物学相关性的区别就越大。

根据对特征 66 中的高基因权重的分析,GO 术语在该基因集中过度出现,暗示了与胆固醇、乙醇和脂质代谢相关的功能。

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

GO terms

识别在特征的最高基因权重中过度表现的 GO 术语,可以指示由一组表达的基因执行的重要过程。

如果从癌性肿瘤中取样一组特定的基因,鉴定哪些基因具有最高的权重(最活跃)并鉴定它们的 GO 术语可以发出潜在的基因表达途径异常的信号,这有助于癌性肿瘤的起因。

例如,如果特征 66(转移性 SKCM 肿瘤)中的高权重基因暗示了与胆固醇相关的 GO 项的强相关性,这可能意味着由决定胆固醇水平变化的基因表达产生了特定的途径/过程功能障碍。这些变化将成为细胞功能中的一个巨大因素,而细胞功能可能导致癌症肿瘤的产生。

使用这种技术,研究人员可以识别特定导致癌性肿瘤产生的表达基因(蛋白质)的靶途径和产物。VAE 能够分离和构建 5000 个基因数据的编码特征,这些特征捕获了数据集中的模式,如患者性别和 SKCM 肿瘤。我们能够通过提取解码器网络中的权重来发现这一点,因为通过训练 VAE 模型,解码器权重学习数据内的模式。

关键要点

1.诸如变分自动编码器之类的生成模型能够在低维空间中有效地压缩数据,同时仍然保持帮助解码器网络重构输入数据的相关特征。

2.解码器网络中的权重能够捕获可以提取的数据中的重要生物模式。

3.使用过度表达分析来识别高基因权重中的 GO 项可以指示生物过程中的功能障碍。

利用区块链激励教育

原文:https://towardsdatascience.com/leveraging-blockchain-to-incentivize-education-5553e705324c?source=collection_archive---------15-----------------------

教育简介:赚钱的教育

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

Angkor Wat, Siem Reap, Cambodia

这里有一个小小的警钟:你做错了旅游。不相信我?我可以证明。

如果你是一个旅行者,你会知道在旅游景点的郊区看到小孩子卖纪念品是很常见的事情。有时小贩的孩子会变得好斗,即使他们不会说你的语言。它们都很可爱,以至于你很想让步买些东西……但你没有——可能是因为你并不真正需要那些纪念品,也可能是因为你的导游告诉你不要买。

很多人对此感到内疚。我承认我也是。回到 12 月,我去了趟柬埔寨,在那里我们参观了很多很多寺庙,看到很多可爱的小孩在卖小饰品,大部分是在吴哥窟。我不知道你怎么想,但是当我忽视他们的时候,我总是感觉很糟糕,但是那是我们的向导告诉我们要做的。于是我们这样做了,但我一点也不满意(今年的轻描淡写),因为我意识到我处于特权地位,却完全没有做任何事情来解决弥合机会不平等的问题,这真的很难。

当我真正开始思考到底发生了什么时,我意识到:柬埔寨的孩子们在卖纪念品,而不是去上学。比起孩子的长期教育,他们的家庭更看重短期的金钱激励。

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

贫困的循环就这样开始了,而没有人对此做任何事情。孩子们和父母在赚钱养家,游客可以买纪念品,所以很多人并不认为这是个问题。但事实是,他们无法摆脱贫困,因为他们的日常“工作”是街头小贩。

作为游客,我们会不假思索地走过,但实际上这个世界的运作方式有一个根本性的缺陷。

暹粒旅游业的大规模增长间接导致了入学率的下降,因为向游客销售比上学有更多的短期金钱收益。

我们如何打破这种循环?答案是教育。你可以看到,随着教育水平的提高,受教育率呈指数下降。对于小学来说,这是相当高的,因为他们没有语言/人际技能,一旦他们成熟和发展,他们就会辍学。

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

Facts and figures on Siem Reap’s school attendance.

区块链技术:你需要知道的

如果你不知道的话,区块链是一个去中心化的点对点网络,在这里数字信息(包括令牌)可以被分发和存储。它可以被认为是一个巨大的数据库,每个人都可以看到所有的活动,没有人可以控制其他人。可能最重要的方面是,他们在系统中没有中央权威,所以不可能有任何腐败,并且所有日志都是完全透明的,将被永久保存。

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

The face of every person who discovers a thing called ‘blockchain’

揭开系统的神秘面纱:区块和链条

等等…这是怎么回事?让我们打开这个。

这个系统实际上是如何工作的,谁参与,他们如何参与?

基本上,有 3 个主要参与者:挖掘者、节点和用户——没有他们,系统将无法工作。

当用户发送事务时,挖掘者会访问它们。矿工们竞相解决复杂的数学问题(解码哈希函数),以创造一个区块。这些散列函数需要很长时间才能解码,所以矿工们最终只能猜测和检查。这些块包含一系列事务,这些事务由挖掘器放在一起作为对解码散列的奖励

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

Credits: CBInsights

为什么矿工们想把所有的时间都花在解码哈希函数上?实际上,这是有动机的——除了用户支付的交易费之外,矿工还会因为创建区块而获得以太坊(ETH)的奖励(目前,以太坊大约为 2 ETH,约合 300 美元)。他们也可以创建空的区块,这样他们就可以得到第二个区块,但是拥有一个满的区块更经济。

当事务被添加到块中时,块被添加到链中,因此称为“块链”。节点接收一系列交易,并且更新数字分类帐的状态。瞧!

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

区块链的优势(或劣势……)

  • **去中心化:**正如我们之前所说,这意味着没有系统故障的中心点。网络存在于每一个参与者的电脑上,不能由一个人或一个组织来控制。
  • **不变性:**防止对任何帐户进行未经授权和未经授权的更改。你不能编辑过去的交易,或改变事件,所以所有的信息都是可信的,100%真实的。
  • **一致:**由于需要所有节点之间的一致同意,防止可能的损坏。您可以随时查看分类帐的状态。
  • 透明性:这是一件既有利又有弊的事情。网络上的每个人都可以访问存储在区块链上的所有交易、记录和任何信息。不一定是侵犯隐私,看你怎么看待。

符合学生需求的系统

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

在我们的网站上了解更多关于我们项目的信息,链接这里

区块链和柬埔寨儿童缺乏教育有什么关系?

TL;大卫:我们用加密货币来标记柬埔寨的教育系统,以激励教育。

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

我们的(加密)货币

柬埔寨:CCO

他们得到的东西(以 CamboCoin (CCO)代币的形式)的价值比他们作为商贩赚的钱更高。这种虚拟货币可以用来购买额外的营养,医疗保健福利和财政援助,以换取合作组织。学生上学越多,授予学生的 CCO 就越多。当交换时,它们就从流通中消失了。

他们获得上学代币,我们还自动化了一个系统来跟踪和记录学生在学校的参与情况——他们的出勤情况通过生物识别进行记录,在特定时间打卡上下班,但确保他们在申请奖励前停留最短时间。

知识硬币:KNO

CCO 是授予出勤学生的,而 KNC 是一种证书,为经济困难的青年提供了更多的机会来接受突破障碍的教育。

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

教育有两个主要目标:

  1. 让孩子上学:激励措施肯定会鼓励更高的入学率,尤其是当家庭需要非政府组织提供的奖励时。这一制度还能防止政府内部的腐败。
  2. 确保孩子们留在学校:由于小学的入学率为 90%,我们用乘数来激励教育(也就是说,小学生的收获不如中学生多,中学生的收获不如高中生多)

从每天最少 CCOs 到最多:

小学→中学→高中/中学

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

智能合同的作用

区块链最大的优势之一是它的权力下放。智能合同利用这种技术来有效地促进、验证和执行双方达成的协议。我们的系统由两个智能合约组成,每个智能合约对应一个令牌。

我们的第一份合同是管理 CamboCoin。这些代币是铸造的,分发给上学的学生。当这些代币被家庭认领时,它们会被从我们的总供给中烧掉,以调节它们的流通。

以下是 CCO 智能合约代码的摘录:

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

Minting various coin values according to the level of education.

另一个重要的方面是处理实际的事务。这需要交易费,以 ETH 支付。你也可以向账户捐款。用户可以申领他们的代币金额作为奖励。

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

完整的代码可以在这里找到

这里有一个界面的预览,以及如何从他们的帐户中查看不变的信息。已有数据不可编辑,没有动作的反向功能。

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

*注意:为了预览,这是一个简化的界面,而不是实际看起来的样子!但它的目的只是让人们了解除了网站之外我们还在做什么。

重新想象未来

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

我整合和技术固然重要,但是如果你没有目标也没关系。基本上,你要知道你为什么。为创新而创新——她是谁?

个人经历和我的旅行明确地塑造了我的“为什么”。但更重要的是,我想在世界上做好事。做到这一点的最佳方式是通过联合国的可持续发展目标来构建整个理念。因此,我们专注于高质量的教育、经济增长、消除贫困和减少不平等。

显然不止于此。可扩展性是我们项目的一个重要组成部分,我们想评估如何将它扩展到柬埔寨更多的农村地区,甚至更远的地方。

我们项目的最终目标是教育——区块链恰好是促进这一进程的途径。作为一名学生,创造平等的机会对我来说非常重要,对我们团队的其他成员也是如此。教育有能力戏剧性地改变一个孩子的人生轨迹:从街头小贩变成导游。我们的一大重点是通过这个项目打破贫困循环,这个项目有可能影响数百万人的生活。

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

Siem Reap, Cambodia

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

这个项目是由马丁·索、威利斯·郭、玛希塔·拉希德、陈可辛和合作完成的。

非常感谢 Blockscale Solutions、Blockchain Learning Group、Adam、Erik、Zagabe 先生、Tarle 先生和 Mur 在整个过程中对我们的指导。

让我知道你的想法!

关注我关于 领英T22 了解更多。

利用数据分析提高投资回报率

原文:https://towardsdatascience.com/leveraging-data-analytics-to-increase-roi-5df9250b26e7?source=collection_archive---------39-----------------------

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

普遍存在不愿意信任和依赖基于机器的决策。这是可以理解的;如何确保自动化决策系统考虑了所有应该考虑的因素?员工首先努力学习新技术,然后在取得巨大进步并生产出有前景的模型后,决策者仍然极不愿意冒险采用新方法,不管测试如何揭示其有效性。尽管如此,在当今竞争激烈的工作环境中,与机器保持积极的关系对于增加利润和提高投资回报率(ROI)至关重要。

建立基线

衡量投资回报率包括检查增加的收益与成本相比如何。为了增加 ROI,您需要建立一个基线来比较进展和一个良好的度量(价值标准。)还有,令人震惊的是,你现在的表现可能并不是你想象的那样。清楚地了解你的基线和度量,告诉你你在哪里;结合业务理解,你就知道自己要去哪里了。之后,你们可以就如何到达那里进行头脑风暴。

[## DDI 编辑推荐:5 本让你从新手变成专家的机器学习书籍|数据驱动…

机器学习行业的蓬勃发展重新引起了人们对人工智能的兴趣

www.datadriveninvestor.com](https://www.datadriveninvestor.com/2019/03/03/editors-pick-5-machine-learning-books/)

数据分析通过多种方式提高性能,其中主要有:

  • 提高利润、效率、准确性和满意度
  • 减少成本和延迟
  • 寻找新的更好的机会
  • 消除不合标准的做法

机器学习和数据科学可以帮助企业实现他们的目标——但只有在实际实施的情况下。为了提高数据科学的投资回报率,你必须掌握两种截然不同的技能:技术,以及说服他人信任和使用它的能力。

成为技术专家

学习数据科学方法的用途和优缺点对许多企业领导者来说是一个挑战。经验丰富的数据科学顾问可以帮助那些希望应用数据科学和机器学习最新发展的人确定好的项目及其所需的组件。在 Elder Research ,我们是许多大公司值得信赖的顾问,我们可以执行准备情况评估的第一步。Jeff Deal 和 Gerhard Pilcher 还写了一本书, 挖掘你自己的业务 ,以指导数据挖掘(数据科学)项目的经理。此外,Elder Research 还提供复杂的分析培训(短期和长期)和指导,以便客户的员工能够提高数据科学技能,并最终独立完成所有任务。

无人驾驶汽车的例子

目前,许多炒作都围绕着人工智能(AI)以及最近的突破——在驾驶汽车、玩围棋和扑克、写文章等方面。—令人印象深刻。但很少有人知道,最大的人工智能进步取决于数据科学。AI 通常使用自上而下的基于演绎逻辑的方法,而数据科学是归纳的;它自下而上地想出新的理论(逻辑和方程);也就是说,来自个别标记病例的例子。事实证明,数据科学是近来“人工智能”成就的原因。单独使用人工智能,你通常可以遵循逻辑,但使用数据科学,你可能无法准确地解释模型是如何工作的。在某种程度上,你必须对过程有信心,承认当严格的统计测试显示出样本外数据的良好准确性时,机器知道它在做什么。

自动驾驶汽车的能力正在稳步提高。2018 年 3 月,一则广泛报道的行人死亡事件让自动驾驶汽车的粉丝们暂停了脚步,但这项技术预防的事故很可能会远远超过曾经广泛使用的实际撞车事故。

到目前为止,成功的关键是“深度学习”,这是一种多层神经网络,可以创建令人费解的方程。例如,如果一辆自动驾驶汽车向左转,这是因为一个方程表明,在看到大量由实际驾驶和专家决策组成的训练数据后,这是最佳行动。成千上万个例子训练出来的方程,代替了,或者补充了,或者证实了,AI 的逻辑规则。

深度学习不同于经典的 AI。融合在一起,来自数据科学世界的归纳建模方法和来自人工智能世界的基于逻辑的方法变得非常强大。

方法的合并

在数据科学中,有许多不同的数据建模技术或方法来“连接”数据的点以形成答案。最受欢迎的是:

  • 回归
  • 决策树
  • 神经网络
  • 最近的邻居
  • 朴素贝叶斯

…但是有几十种有趣的算法。那么,哪个最好呢?在我和爱达荷大学的斯蒂芬·李一起做的一个实验中,我们发现在一个包含六个流行挑战问题的测试集上,我们发现神经网络赢得了比赛,但是所有五个被测试的算法在至少两个问题上获得了第一或第二名。因此,每种算法都是有用的,并且可能是最佳的,这取决于您试图解决的业务问题,神经网络值得一试。

但是我们也尝试了使用四种不同的集合技术的挑战,比如平均和投票。这是您使用所有竞争模型得出一致估计的地方。这四种综合方法甚至打败了最好的个人方法!因此,即使你在一种技术上取得了成功,你也应该尝试多种技术来提高性能。

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

图一。相对性能示例:6 个数据集上的 5 个算法(与爱达荷州斯蒂芬·李,1997; 来源)

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

图二。所有集成方法提高性能( 来源 )

此外,如果你比较标准偏差,或原始技术的传播,与任何集合技术,你会看到模型集合更可靠,更少的变化。

说服人们部署数据科学模型

长者研究已经进入第 25 个年头,所以我们有很多经验,在过去几十年里也学到了一些东西。在我们的第一个十年,我们有 90%的项目技术成功率,然而只有 65%的模型被实际使用!我们对此并不满意——尽管研究显示只有 33%的数据科学或机器学习项目在全国范围内实施。我们发现临界点是“碳基生命形式”;也就是人类。经理们将无法真正使用他们委托的努力工作,即使它满足了他们的所有要求。发生了什么事?

我们知道这是变化的问题。这项技术通常会导致人们行为方式的重大改变。在压力下,由于害怕鹤立鸡群,许多人回到了旧的做事方式,而不是信任这种模式。我们对此进行了研究,发现了许多改善信任环境的方法——包括技术和人际信任。它得到了回报;在我们的第二个十年,我们的技术成功率上升到 98%,我们的采用成功率飙升到 92%。

首都一中举例

在 90 年代末,当 Capital One 只有 100 名拥有硕士和博士学位的员工分析信用评分时(几年前我最后一次看到他们超过 300 人),他们雇佣了 Elder Research 来看看新的数据挖掘技术是否能增加什么。他们怀疑一个小的多面手公司能为他们的核心专业领域做出什么贡献。我注意到了预期的差异,并打了个赌:如果我们不能改进他们的模型,我们只会收取他们一半的费用——但如果我们做得更好,我们会收取双倍的费用。他们愉快地同意打赌。

使用专家建模和我们并不秘密的集成武器,我们能够提高性能。信用评分的杠杆作用——或利润的增加——如此之高,以至于 Capital One 的投资回报率飙升,他们很乐意支付我们两倍的价格。

这种情况我已经见过很多次了,直到今天,我喜欢给客户提供这样的交易,他们可以选择不预先支付任何费用,而只在交易实施后支付额外利润的一部分。我对技术和我们的专业知识充满信心。(如果您对此感兴趣,请告诉我们!)

说服的艺术

数据科学是一种理性的决策方法,但人类往往比我们愿意承认的更不理性。在他的《思考 、快与慢 *、*一书中,丹尼尔·卡内曼描述了几个令人不安的例子,说明我们的判断是如何频繁地受到任意事物的影响,如饥饿、最近的积极事件或不合理的联想。我们认为,如果客户难以接受我们的结果,这是不合理的,但我们知道这是正常的,这种挑战值得尊重和关注。

稍后我将更多地谈论“软”问题,但我想简要地指出我开发的一个强大的技术工具,它可以揭示结果有多可靠:“目标改组”。目标洗牌量化了你的结果偶然发生的可能性。它解释了“巨大的搜索效应”,在这一效应中,数百万(比如说)可供选择的假设得到了检验;也被称为“黑客入侵”。通过目标洗牌,你可以从数据中提取真正的意义,而不会被巧合所迷惑。

石油和天然气勘探示例

我们已经在许多现实世界的挑战中使用了目标洗牌。一个令人难忘的例子向一家国际石油和天然气生产公司展示了它如何每年节省数百万美元。我们建立了预测分析模型,以确定某个地区的哪些气井面临停产风险(例如,由于地上管线冻结或地下管线堵塞)。他们希望提前 4-6 个月了解这一点,以便他们能够优先考虑预防性维护,并最好地利用他们宝贵的员工和维护资源。通过大量的辛勤工作和专业知识,我的同事们成功地预测了维护需求,比他们的基线方法好了 3 倍。因此,在不增加员工或机器支出的情况下,他们只需根据我们的模型安排员工路线,就可以回收数千万美元的天然气。目标洗牌显示这个结果是如此的可靠和重要,以至于只有 1/2500 的几率是由于运气。此外,如果他们能够将决策窗口缩短一两个月,由于准确性的提高,节省的成本将会大幅上升。

现实是,许多行业的公司可以通过从数据中提取有用的信息来获得巨大的收益。这需要信任和一些耐心,但老年人研究可以提供证明的结果,通常只需几个月。我们确定基线和业务指标,收集数据并将其转化为有价值的信息,以帮助您做出更好的决策,从而带来令人难以置信的投资回报并转变您的业务。

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

需要帮助开始分析吗?Elder Research 的现场半天分析高管战略会议提供了使用分析来改进组织决策的策略,以及如何提高您的分析能力的建议。 了解更多。

有关系的

数据分析真的能带来 1300%的投资回报率吗? 为什么高管层的数据素养很重要 炒作还是现实:机器学习的投资回报率

原载于https://www.elderresearch.com

利用数据造福社会——一个实例

原文:https://towardsdatascience.com/leveraging-data-for-social-good-a-practical-example-adac053bdeaa?source=collection_archive---------25-----------------------

一个五人小组如何利用经验数据为隐藏在印度北部农村角落的一个村庄做好事的故事

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

Using Data Science to make common lives better

注: 我们团队研究这个项目的支柱的所有术语和理论都归功于印度 Amrita Vishwa Vidyapeetham**的 Live in Labs 团队举办的预备研讨会。

2018 年夏天,我有机会成为一个团队的一员,该团队访问了印度北部一个高度落后的村庄。这次参观是我们学院课程的一部分— 实验室生活项目 ( 点击此处了解更多信息)我们在该项目中的任务如下:

确定村庄中需要立即关注的关键指标,验证我们的发现,并提出有助于改善其状况的解决方案。

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

Fig 1. Key Indicators of a village

通过这篇博文,我将提供我们在该村工作的要点,并阐明我是如何运用我对数据科学的热爱来做好社会公益的。

我为这个项目写的所有代码都可以在 https://github.com/ry05/Live-in-Labs-Analysis 找到。

村庄-基本信息

关于我们参观的村庄的一些初步信息如下:

  • 村庄的正式名称:新塔里亚尔
  • 地点:印度旁遮普省北部
  • 村里的房屋数量:58
  • 村里人数: 300+居住者
  • **人民的主要职业:**非熟练工和季节工

资源地图

资源地图是村庄地理景观的草图,有两个主要目标:

  • 提供一份概述,介绍该村庄为实现自身可持续性而拥有的最重要的资源(例如:木柴)
  • 标出村内的主要地标和位置(例如:一所学校)

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

Fig 2. Resource Map of Dodeneer (CREDITS : Venkata Ramana)

最初的挑战

我们的主要目标是帮助村民解决他们面临的问题,但我们也意识到,这个问题的确定不会一蹴而就。这主要是由于以下两个原因:

  1. 不可否认的差距
    乡村和城市的生活方式有着巨大的差异。有不同的行话,不同的行为,不同的观点和更多的领域,城市和乡村的想法不能产生相同的频率。作为一个团队,我们需要尊重和理解这一点,如果我们要从人们身上提取任何实质性的东西来帮助他们的话。
  2. 对问题的接待
    如果一群大学生和一位导师来到我家,问我一些我不太好回答的问题,我不用花太多时间就能把他们引向门口。这同样适用于一个村庄。因此,我们必须格外小心,确保我们在村里的学习不会扰乱他们的日常生活,或者我们的问题不会让他们处于紧张的状态。

确定直接关注的领域

为了全面了解这个村庄,我们使用了一套特定的工具和技术。我将在下面对此做一个简短的介绍。

参与者观察法(POM)

顾名思义,该工具用于观察我们的参与者(即村民)并推断村庄的场景,而无需与村民就村庄中的问题进行直接对话。使用 POM 有几个优点:

  • 我们开始与考虑中的参与者建立关系
  • 我们成为了我们试图评估的社区的积极成员
  • 我们对主要痛点有了一个基本的概念,而无需过多干预参与者的日常生活

POM 可以通过使用 Senses 框架AEIOU 框架来执行。

  1. 感官框架
    利用视觉、听觉、嗅觉、触觉、味觉和直觉来感知环境(即我们这里的村庄)
  2. AEIOU 框架
    活动:目标导向的参与者采取的一组行动
    环境:活动发生的区域
    交互:可以是人-人或人-对象
    对象:用户使用的工具
    用户:被观察的人(参与者)

如果你想更多地了解 AEIOU 框架,下面的链接是一个很好的阅读材料。

[## AEIOU 框架

AEIOU 是一个启发,有助于解释观察收集的人种学实践在工业。它的两个主要…

help.ethnohub.com](https://help.ethnohub.com/guide/aeiou-framework)

该团队通过实地观察(在实地日志中记录的笔记)以及与村民、人物角色和场景的一对一随意交谈,收集了 POM 所需的数据和信息。

人物角色和场景

人物角色是基于所进行的研究而创建的虚构人物,以代表将从研究成果中受益的不同类型的用户。使用角色的一些优点是:

  • 帮助获得对最终用户体验的可靠、精确和相对的理解
  • 帮助几种类型的用户进行分类
  • 帮助洞察特定用户类型的关键特征,例如 a)他们的激励目标,b)他们的任务,c)他们的痛点

人物角色有助于确定研究关注的“谁”,而场景有助于确定人物角色作为一系列事件“如何”工作。

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

Fig 3. Persona vs Scenario (Image Source)

如图 3 所示。人物角色、场景和特定于用户的目标是三个主要组成部分,有助于确定特定个人的目标。一旦我们发现了一个人的目的,我们就能确定他对我们原型的期望。这正是人性化设计的基础。

参与式农村评估

PRA 的使用帮助我们深入了解了该村庄以及普遍存在的几个挑战。把 PRA 想象成这个框架,它执行的任务是将我们从村庄收集的原始数据组织成特定的 PRA 工具每个 PRA 工具执行其自己的特定任务并且揭示村庄的唯一维度

我们投入使用的 PRA 工具有:

  • **资源地图:**该村主要资源和地标的基本地图
  • **横断面图:**根据资源图和 AEIOU 框架将村庄划分为多个部分的地图
  • **季节/活动:**帮助了解村庄的季节性活动和季节变化
  • **流入/流出:**进村和出村的货物
  • **收入/支出矩阵:**量化村庄的总体财务状况
  • **头脑风暴:**与村里最有影响力的领导开会,听取他们的意见
  • **维恩图:**用于描绘机构、自助组织、团体和个人对村庄的影响和相互依存关系
  • **问题树:**描述村里几个问题的前因后果

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

Fig 4. The Transect Map

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

Fig 5. The Problem Tree

《概览》的必要性

在我们的观察方法和 PRA 的帮助下,我们能够确定该村的关键问题与水管理和分配有关(参见图 5。).但是,我们仍然心存疑虑,希望在把它带回家交给 LiLA 团队之前,能真正确定我们的发现。

就在那时,我们决定终于到了在村子里进行官方调查的时候了。我们可以使用这样收集的数据来检查 PRA 的结果是否与村庄的真实情况相符。

注意:我们为什么不首先进行调查呢?如果我们无论如何都要在最后进行调查,为什么我们必须使用所有的 PRA 和相关的方法? 这是一个非常相关的问题,我相信你现在一定会想到这个问题。我分几点来回答一下:

  • 调查是收集数据的好方法,但不是最人性化的方法
  • 与村民建立联系至关重要,粗略的调查无助于实现这一目标
  • 此外,我们的调查只集中在一个主要的重要研究问题上,“来自 Dodeneer 的人们正遭受严重的水资源短缺吗?”。如果我们没有进行 PRA 和观察性分析,我们永远也不能集中在这个主要问题上。
  • 因此,PRA 和其他框架有助于清楚地了解村庄,并帮助我们集中精力解决需要解决的主要问题。这项调查有助于证实我们的发现是否确实是居民想要的。

唤醒我心中的数据科学家!

现在,我们有两个主要的目的需要处理

  • 查一下村里的水分配不均是不是真的
  • 找出缺水的原因

我们有疑问,我们需要答案。那时,我就该戴上“数据科学的帽子”,从我们如何利用数据来帮助我们实现目标的角度来思考问题了。在这种情况下,我们如何利用数据做好社会公益?

我们肯定要进行调查,但是我们定义调查质量的方式将非常重要。我们都知道数据科学没有神奇的能力来读取我们的思想并给我们带来结果。因此,我们需要提供正确的数据来获得正确的结果。

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

Fig 6. Garbage In, Garbage Out

因此,为了确保我们将通过调查进行正确的数据收集,我们首先确定了我们将遵循的调查方法。我们花了几个小时思考理想的方法,最终集中在一个将帮助我们实现目标。

该调查

我们为我们的调查创造了自己的方法,构建了调查问卷,用当地语言将它们准备成对话,在纸上记下他们的回答,然后将数据数字化。

主要研究问题 多迪尼尔的人民是否正遭受严重的水资源短缺?

调查是如何进行的? 进行了如下调查:

  • 该调查以面对面访谈的方式进行,并使用预先准备好的问卷作为参考
  • 该小组首先在纸上收集数据,然后将其输入电子表格

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

Fig 7. Collecting Data through the Survey

问卷调查作为我们调查的一部分,我们向每个家庭询问了以下问题:

  • 房子储水的介质是什么?(水箱或污水坑或桶或罐)
  • 房子每天用水量的粗略估计是多少?
  • 这房子有地下马达(抽水)吗?
  • 家庭用水是来自 Thariyal 供水系统,还是村内的井眼水源,还是两者都有?
  • 如果一个家庭从两个来源获得水,哪一个来源提供的水量更大?
  • 房子里住了多少人?

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

Fig 8. A portion of the original survey response sheet

**采访语言:**这些问题是用当地语言(旁遮普语和印地语)问的。
**额外帮助:**团队还得到一名当地导游的帮助,帮助我们与村民互动

创建调查问卷时需要考虑的主要因素

  • 相关性 —这些问题与我们开展调查的目标相关吗?
  • 结构 —这些问题的结构是否可以被伪装成自然对话?考虑到这一点非常重要,因为正常的对话会比一系列明确的问题更能让人们开诚布公。
  • 长度——我们避免做一份冗长的问卷,这样我们就不会占用一个人太多的时间。
  • 安慰——在一个落后的印度村庄,并不是每个问题都会被以正确的态度对待。因此,我们决定避免询问诸如家庭收入等问题,因为不是每个家庭都愿意给出准确的答案。

最后,在进行调查后,我们获得了数据,并将其存储到 excel 表中,以便我们可以使用它来量化该村的水资源情况。

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

Fig 9. First 5 rows of our “Water Consumption in Dodeneer” data

执行数据分析

我们有数据。现在,是时候分析它了,看看我们是否能找到我们正在寻找的答案。如上所述,通过我们的分析,我们有两个主要目的要实现——

  • 查一下村里的水分配不均是不是真的
  • 找出缺水的原因

我使用 Python 作为数据分析语言,你可以在这里找到相关的 Jupyter 笔记本。

下面的工作流程图提供了分析我们的数据所涉及的步骤的高级描述。

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

Fig 10. The LiLA Survey Analysis Workflow

加载数据

我们的 excel 表中的数据被转换为。csv 格式(逗号分隔值)并作为熊猫数据帧加载。

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

Fig 11. Dataset loaded as a Dataframe

我们有 47 行数据,其中每一行对应于来自给定房屋的响应(该房屋使用房屋号特征来识别)。如图 11 所示,有 9 列(或特征)。

然而,我注意到数据中有两个主要问题—

  • **“存储选择”**中的某些值已被输入为“罐+桶”。这个值表示给定的房子使用罐子和桶来存放物品。但是,那个加号是令人讨厌的!
  • **“容量…”**特性的值不在同一范围内!当桶或罐是存储媒介时,单元具有桶或罐的计数。但是,当储存容器是一个水箱或一个污水坑时,它们的容积是 100 升.另外,在容量的第三行有一个奇怪的“-”值。

数据清理

为了使我们的数据比原始形式更适合我们的分析,我们执行数据清理。OMAR El gabry的这篇文章为数据清理提供了最好的深入解释。绝对值得一读(还有书签)!

[## 数据清理的终极指南

当数据是垃圾的时候

towardsdatascience.com](/the-ultimate-guide-to-data-cleaning-3969843991d4)

那么,我是如何清理我的数据的呢?

  1. “-”的异常值位于一个单元格中,该单元格指定了一所房屋的存储容量,该房屋对该村庄的水井的使用拥有第一手控制权。而且,如果我们说这所房子比村里的任何一户人家都能获得更多的水,这并不是一个太大胆的猜测。
    所以,我们给这个单元格一个 10000 的值。
  2. “容量…”功能的测量值范围不一致。(两个以及实体计数)。为了解决这个问题,我创建了一个名为**“Amount”的新特性,它描述了一栋房子每天获得的总水量。贴完这个,我去掉了“容量……”功能。为了创建“金额”**,我使用了调查中记录的以下几点。
  • 当存储=“罐”或“控制井”时,数量=容量
  • 当存储=“可以”时,金额=容量×50
  • 当存储=“桶”时,数量=容量 x 20
  • 当 Storage = "Cans + Buckets "时,容量以元组的形式输入(num_of_cans,num _ of _ buckets)。这里,数量=(罐数 x 50) +(桶数 x 20)

**假设:**村里使用的易拉罐统一容量为 50 升,而水桶可以装大约 20 升水。大多数村民谈论的是“满满的”桶或罐,因此我们假设所有的存储媒介都装满了它们各自的容量。

特征工程

警惕!特征工程是一个非常重要的主题,是机器学习算法工作的先决条件。我只对这个问题进行了基本的特征工程,因为我真的不需要做太多来回答我的数据问题。毕竟,为什么要拿起斧子去杀一只蚊子呢?

Emre ren beroglu 的这篇文章提供了一个真正技术性的、简单的对特征工程的理解,对深入细节非常有帮助。

[## 面向机器学习的特征工程基本技术

用熊猫例子进行综合数据预处理所需的所有方法。

towardsdatascience.com](/feature-engineering-for-machine-learning-3a5e293a5114)

同样,在这个数据集中,我沿着特征工程的路线做了什么?

还记得我是如何计算**“数量”特性来消除“容量……”**特性中的不一致吗?这种转换有一个潜在的缺陷。它是不完整的。因为,每栋房子里的人数是可变的。因此,每个家庭每天收到的水量远远不是一个好的衡量标准。如果我们要有效地量化村子里的水资源压力,我们真的需要了解村子里的每个人得到了多少水。

因此,我创建了一个新的功能,“每人每天的用水量”,制作如下:

dataset["Water_per_person_day"] <- dataset["Amount"] / dataset["No.    of people"]# dataset corresponds to exactly what you think it is

**假设:**为简单起见,我们假设给定家庭中的每个人每天获得的水量完全相同。这也适用于儿童。

现在,我的数据看起来更接近于帮助我识别多迪尼尔的水压力。

形象化

终于,我们到了!讨论数据如何帮助我们满足我们的目的的部分—

  • 查一下村里的水分配不均是不是真的
  • 找出缺水的原因

A)村里常见的储水介质有哪些?

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

Fig 12. Cans are the most common medium of storage

注: Misc 是控制钻井操作的一家公司

生活在多代尼尔的人们是如何分配水资源的?

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

Fig 13. A case of the haves and the have-nots

这是一个密度图(威尔·科尔森的这篇文章)描述了村子里每个人每天获得的水量分布。这证明了非常重要的一点,“虽然有许多家庭每人每天获得的水不到 50 升,但也有一些家庭每人每天获得的水超过 150 升!”。这在最纯粹的意义上是不平衡。

但是,跳到这种视觉化似乎是不对的。所以,我又提出了两个问题来帮助澄清这种不平衡—

  • 这种不平衡的严重性是什么?
  • 人们有足够的水用于日常活动和家务吗?

有多少房子符合联合国的用水要求?

根据联合国的数据,每人每天的最低需水量为 50-100 升,以确保基本需求得到满足,并且很少出现健康问题。我将阈值设定为 50 升(取最小值),并绘制了一个条形图,以查看 Dodeneer 有多少房子符合这一要求。

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

Fig 14. Almost 2/3 of the people in the village do not have their basic water requirements met

没有满足每人基本用水需求的家庭数量几乎是满足这些需求的家庭数量的两倍。

的确,水分失衡在十二尼尔非常普遍和严重!

D)使用地下马达会影响水的可用性吗?

在我们最初的观察中,我们发现 2 区(比 3 区离村口更近)有相当多的房子使用地下马达抽水。第 3 区的人还告诉我们,第 2 区的房屋使用马达是他们得不到水的主要原因。我们注意到了这一点。但是,最令人吃惊的发现是当我们拜访最近的城镇的市政办公室时。官员们通知说,“在那个地区(多迪尼尔和它的邻居)使用地下马达是非法的,会被罚款的!”。

所以,我也试着看看马达对接收的水有没有影响。我用了一个箱线图(关于它的更多信息可以从这篇文章Michael Galarnyk 撰写)来探究这个问题。

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

Fig 15. Outliers causing issues in viewing the graph

哎呀!进展不太顺利。上图看起来如此“无意义”的原因是因为那些额外的、单独的点。这些点不属于数据集中大多数其他点的一般行为。用数据术语来说,我们称这些为离群值。离群值有时会令人非常头疼,因为它们在大多数时候并不代表真实值。试图将它们包含在数据分析中可能会扭曲我们的发现或扭曲我们的图表(如图 15。).

塞尔吉奥·桑托约的这篇文章可能会帮助你了解离群值的本质细节。

[## 离群点检测技术概述

什么是离群值,如何处理?

towardsdatascience.com](/a-brief-overview-of-outlier-detection-techniques-1e0b2c19e561)

那么,在这种情况下,那些异常值是什么呢?

  • 位于 12000 升和 4000 升附近的值是那些具有地下水池作为其存储介质的房屋的存储量。
  • 值 10000 升是我们自己放入数据中的。还记得那栋通向水井的房子吗?

因此,这 3 个值与其他 44 户相距甚远,因此最好将其排除,以获得更真实的结果。所以,我把它们过滤掉,只取水量为 4000 升的那些值。

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

Fig 16. After removing outliers, the graph makes more sense

如果看起来有点太混乱,让我来揭穿这个方框图。有马达的房子比没有马达的房子获得的水量多得多;这可以通过比较两个框来查看。橙色框(使用电机)的高度明显高于蓝色框(未使用电机)。这可以解释为“使用电机的房屋通常比不使用电机的房屋用水量更大”。

结论

从上面的可视化和分析中,对团队来说显而易见的是,我们对 Dodeneer 的水问题的最初理解是正确的,并且我们能够证实我们的 PRA 的发现。此外,在这个过程中,我们还发现了一些额外的见解!

最终注释

这篇博文试图展示数据科学在促进社会公益和传播农村发展方面的一些非常重要的信息方面的应用。我真的要感谢 Paulina Zheng 这篇精彩的文章,她非常清楚地强调了利用我们的能力对社会产生积极影响的必要性。事实上,这篇文章是我最初写这篇文章的原因。

[## 利用数据科学造福社会

在混乱的代码和无情的技术浪潮中,人们很容易忽略更大的目标…

towardsdatascience.com](/using-data-science-for-social-good-c654a6580484)

我希望我能够清楚地阐明我的目的,如果有任何疑问,你可以随时在推特上联系我。

互联网上有大量的文章将数据带入人们的头脑和口袋。太好了,这很重要。但是,如果我们能试着把数据带进人们的心里呢?

绝对值得一想!!!

感谢您的阅读😃😃

利用代理数据集和快速失效技术优化卷积神经网络开发

原文:https://towardsdatascience.com/leveraging-proxy-datasets-and-fail-fast-techniques-to-optimize-convolutional-neural-network-6b67607738d8?source=collection_archive---------22-----------------------

当开发新的 CNN(卷积神经网络)时,为给定任务确定最佳超参数和架构的一个大的瓶颈就是花费在训练每个个体变量上的时间,以便为该任务确定最佳超参数和架构设置。

虽然理想的过程是运行每一个变化,直到完全收敛(即过拟合即将发生)并比较最终结果,但是计算时间和成本以及人力时间和成本排除了这种可能性。

因此,人们一直在努力寻找测试速度更快且结果与实际或完整数据集的结果关联更好的方法。这篇文章总结了 FastAI 和斯坦福大学的 Schliefer 和 Prokop 最近的论文-“使用小型代理数据集加速超参数搜索”中这些努力的最新结果。

在最近的 FastAI 高级开发课程中,杰瑞米·霍华德创建了两个代理数据集(ImageNette 和 ImageWoof ),其想法是使用这两个较小的数据集,以比在整个 ImageNet 数据集上测试更快的方式测试 CNN 变体。

Howard 的结果表明,与标准流程相比,这种代理流程能够实现更快的迭代和开发,代理的结果可以很好地映射到完整的 ImageNet 结果。从那时起,许多 FastAI 从业者开始利用它作为测试新架构的概念证明(例如,Google efficient net vs FastAI xres net)。值得注意的是,Howard 还警告说,使用 CIFAR 等数据集及其 32x32 图像,通常不会很好地映射到更自然的图像大小。

在最近的一篇论文中,(【https://arxiv.org/abs/1906.04887v1】)Schliefer 和 Prokop 通过测试产生代理数据集的最佳方式进一步发展了这一概念,并得出了一些有趣而有用的发现。他们测试了关于如何生成代理数据集的多种策略——随机采样 10%的完整数据集、10%最难的图像和 10%最容易的图像(通过默认设置运行的损失函数测量简单和困难),以及仅在完整数据集上运行 1 个历元。

具体来说,他们发现:

1 — 从 10%最简单的例子中构建和使用代理数据集是最有启发性的,并且为完整数据集的最终测试提供了最高的相关性! (r2 = .81%)。

具有讽刺意味的是,对 10%最难的例子进行测试,这些例子直观上可能被认为更好,但相关性却低得多(只有 0.36%)。

随机抽样(随机抽取 10%的数据集)和仅 1 个时期的整个数据集测试也表现不佳,仅 1 个时期显示仅 0.20%的相关性。

因此,信息是明确的——使用“简单”的例子建立一个“玩具”或代理数据集是加速你的 CNN 开发过程的最佳策略!

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

From the paper — a breakdown of proxy correlation results. The winner (easiest 10%) highlighted in purple.

本文还简要探讨了第二种策略,即在全数据集上运行时取消表现不佳的变化,以加快优化搜索。

当然,棘手的方面是收集了多少信息,相对于每种变化运行多远,以确定何时减少损失并投资于更好的设置或架构?

这张图表展示了他们的发现,并提供了一些有用的见解:

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

From the linked paper — after 2 epochs, 72% correlation!

他们的结果如上所示,并建议对转移评估资源的各种截止点进行一些考虑:

1-2 个时期后,与最终结果的相关性为 72%。

2 —从 5 到 15,相关性稳步增加。在 8 个时期之后,实现了大约 82%的相关性。

3-在 15 个时期,或完整运行的 75%,96%的相关性。

因此,根据您在测试方面所处的阶段,您可以考虑一个我称之为“快速失败”评估的策略,使用:

a-2 个时期(预期时期的 10%)作为广泛传播评估的快速过滤器(72%相关过滤器),然后移至

b —阶段 A 中胜出候选人的 8 个时期(或最终预期时期的 35%)。因此,这是一个 80/20 规则截止值,因为 82%的相关性显示为 8 个时期,最后

c-使用 15 个历元(或相当于 75%的历元)完成,提供 96%的相关滤波器,同时减少 25%的训练时间。

人们可能会采用上面的百分比(即 2 个时期=估计的最终运行长度的 10%,等等)来将其扩展到更大的预期时期。

上面当然有许多警告,因为最终结果是基于 20 个时期的,并且这些结果不一定适用于所有类型的 CNN 任务。然而,这种“快速失败”的策略应该是一个比随机起点更好的方法,当你工作在产生最佳 CNN 架构时,如何更好地明智地使用计算资源。

无论如何,这里的执行摘要非常清楚——该论文的结果有力地表明,使用基于 10%最简单示例的代理数据集是加速您开发最佳 CNN 的最佳策略!

论文链接:【https://arxiv.org/abs/1906.04887v1

使用深度学习利用劳动力分析

原文:https://towardsdatascience.com/leveraging-workforce-analytics-using-deep-learning-b13427f674bf?source=collection_archive---------27-----------------------

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

如今,几乎每个基于服务的企业都需要劳动力分析。它还被称为劳动力管理、人员分析和其他各种术语,但所有这些用例的最终工作和预期结果都是相同的,即预测日常管理业务所需的劳动力。劳动力分析的主要目标是在不影响工作质量的情况下削减劳动力成本。对每日劳动力需求的预测是基于组织中的几个内部和外部因素,如假期安排、病假和休假、天气条件以及所有其他直接或间接对业务产生影响的因素。我们主要关注基于我们已获得的历史数据的劳动力分析的预测方面,而不涉及预算、个人绩效分析、生产力检查等其他方面。

很简单,我们想知道每天需要多少劳动力才能无障碍地开展日常业务。由于我们正在处理每日数据,我们将考虑每日趋势,也就是说,业务可能在周末达到高峰,而在周中、周二和周三达到低谷。在更高的层面上,趋势也可以在每周数据中看到,劳动力需求可能在假期周飙升,在淡季周下降。月度趋势在这类数据中很少看到,即使看到也可以忽略,除非我们有一个庞大的历史数据库。

时间序列建模

这种数据是基于时间的——我们在数据中看到一些重要的趋势和模式,都与时间有关。数据具有时间依赖性;这意味着未来数据点的出现与过去数据点的出现相关。这种类型的数据不能用常规的机器学习模型来建模,而是需要一组专门的模型来处理这方面的数据。

这篇文章介绍了我在分析中应用的所有预测时间序列模型,以预测劳动力需求。本文不是关于我们可以对劳动力相关数据执行的各种不同的分析任务。仅仅是关于机器学习和深度学习模型,我已经应用来预测一段时间内的单变量数据,特别是针对我的用例和问题。市场上可能有更多的模型可以更好地处理不同类型的时间序列问题。这些是对我来说效果最好的几个。

目标:预测每天完成一项任务所需的工作小时数。(根据所需的总小时数,管理层计划完成任务所需的劳动力。)

数据:每日时间序列数据。感兴趣的变量是“每天工作的总小时数”。在我们的分析中,额外的变量被用作支持变量。

下面是我对这些数据运行的机器学习/深度学习模型的分类。

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

Predictive models used

使用的模型类别:

  • 经典方法
  • 机器学习模型
  • 深度学习模型
  • 集合模型

数据探索

就像任何其他数据一样,在我们应用任何方法进行预测之前,也需要很好地理解时间序列数据。我们需要进行一些数据探索,以确定潜在的趋势。

我使用带有 python 实现的 statsmodels 库来执行 EDA。Statsmodels 是一个为以下各项提供类和函数的模块:

  • 不同统计模型的估计
  • 进行统计测试
  • 进行统计数据探索

使用 statsmodels,我们可以识别数据中的季节性和周期性趋势。使用 Hodrick-Prescott 滤波器,我们可以分离趋势和周期分量。该滤波器使二次损失函数最小化,以确定各个分量。它使用一个平滑参数(λ),我们可以根据手头的数据进行调整。

将这些组件分别可视化,以检查它们在数据中的分布,并敏锐地观察它们所在的范围。与季节性和趋势成分相比,噪声应该可以忽略不计。

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

在上面的图表中,我们可以看到有一个略微上升的趋势,并且一定程度上存在季节性。整个数据集中存在噪声(残差)。

有关用于执行 EDA 的方法的详细信息,请参考我在时间序列建模中的描述性统计的文章:[ 链接

经典款

  1. ETS 模型(误差-趋势-季节性)

statsmodels 库中提供误差-趋势-季节性(ETS)模型。这些模型将采用这些项(误差、趋势、季节性)中的每一项进行平滑,即,将它们相加、相乘或省略其中一些。基于这些关键因素,我们可以创建一个最适合我们数据的模型。

ETS 分解是 ETS 模型的一个具体用例。statsmodels 的季节性分解()用于其实现。

在我们决定使用哪种 ETS 模型之前,需要检查数据的趋势成分。

  • 线性与指数
  • 向上与向下

还要检查数据中孤立的季节性成分和残差成分,看数据集结尾的噪声是否比开头的少。但是,主要看趋势组件应该有助于您做出选择模型的决定。

根据上面提到的单个组件,我们决定是选择加法模型还是乘法模型。

加性 ETS 模型:当趋势更加线性,季节性和剩余成分随着时间的推移更加稳定时,我们应用此模型。

乘法 ETS 模型:当趋势为指数时(趋势以非线性速率增加或减少)

在应用 ETS 分解之前,确保有效地处理缺失值,要么估算它们,要么从数据集中删除它们,因为 ETS 分解在它们存在时不起作用。

2。EWMA 模型(指数加权移动平均线)

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

上图显示了窗口大小为 7 天和 30 天(1 周,1 个月)的简单移动平均线。7 天平均线显示了一个详细的趋势,而 30 天平均线显示了一个更一般的趋势。你为你的窗口选择的时间框架给了你相应的趋势。

我们可以使用 SMA(简单移动平均线)来检查数据的总体趋势。在我们的分析中,它可以作为一个通用模型。但是,我们需要更复杂的模型来理解时间序列趋势。为此,我们可以使用 EWMA 模型。

EWMA 是 SMA 模型的扩展概念。SMA 的问题在于,它被限制为在整个数据中使用相同的窗口大小。另一方面,EWMA 允许我们使用不同大小的时间窗口,也就是说,更新的数据可以比旧的数据更重要。考虑到最近的数据在预测未来数据的建模中的重要性,给予其更多的权重。

EWMA 修复了 SMA 的其他问题,比如它减少了 SMA 的滞后效应,因为它将更多的权重放在了最近发生的值上。分配给这些值的权重取决于给定模型的实际参数和给定窗口大小的周期数。“衰减项”用于当我们从较新的值到较旧的值时,指数地减少分配给数据值的权重。

3。霍尔特-温特斯法

我们之前讨论过 EWMA,它是一种简单的指数平滑方法。我们应用了一个单一的平滑因子“阿尔法”。这没有考虑到趋势和季节性等因素。

霍尔特温特斯是一种双指数平滑方法。它包括一个预测方程和三个平滑方程。这里的三个平滑参数分别针对水平、趋势和季节性。(分别为α、β和γ)

同样,霍尔特温特斯模型可以用作加法和乘法模型。当季节变化在整个系列中保持不变时,使用加法模型。然而,当季节变化与系列水平成比例变化时,使用乘法霍尔特温特斯模型。

双指数平滑处理数据中的趋势部分,三指数平滑处理数据中的季节性部分。

4。ARIMA(自回归综合移动平均线)模型

基于 ARIMA 的模型通常是时间序列建模中最受欢迎的模型。这是一个非常广泛的主题,我已经写了一篇关于它的实现的单独文章— [ Link

深度学习模型

深度神经网络具有比传统机器学习模型先进得多的能力。它们具有强大的功能,为时间序列预测问题提供了很多希望,特别是在具有多步预测、多值输入和复杂非线性
依赖的问题上。它们还提供自动特性选择和对序列数据(如时间序列数据)的本地支持。

对具有时间相关性的数据建模,比如我们的时间序列数据,在拟合和评估模型时需要专门的处理。数据中的这种时间结构需要专门的模型来识别趋势和季节性模式。我们早先已经应用了像 ARIMA 这样的机器学习线性模型,因为它们对许多问题非常有效,并且很好理解。但是像这样的线性方法受到一些限制,例如:

-通常不支持缺失数据。
-线性方法假设数据中存在线性关系,但不包括更复杂的联合分布。
-大多数线性模型关注单变量数据。(除了少数情况)而大多数现实世界的问题都有多个输入/变量。
-我们需要更先进的模型,能够在很长的时间范围内预测结果。

但是神经网络通常是“黑箱”——很难超出它们的性能指标来解释它们。出于这个原因,每当你遇到与时间序列相关的问题时,首先尝试使用 ARIMA 模型,如果它们没有给你好的结果,那么就把神经网络作为最后的手段。接下来是我在深度学习中使用的所有模型的简要说明。同样,深度学习是一个庞大的主题,我在这篇文章中的尝试仅限于展示模型的基本效用,而不是详细解释这个概念。

5。多层感知器模型(MLP)

多层感知器模型是深度学习中最简单的前馈神经网络模型之一。在我们进入复杂的神经网络之前,让我们先了解一下简单的人工神经元是怎么回事。MLP 采用一组先前时间步长的观测值(滞后观测值)来预测一个或多个未来时间步长。

感知器或人工神经元:人工神经网络与我们身体中的生物神经元有很强的相似性。就像生物神经元如何从身体的各个部分接收输入信号并发出输出信号一样,人工神经网络也有类似的神经元概念,它接收各种输入,这些输入在通过激活函数之前进行加权,从而决定神经元的输出。

感知器将权重和偏差添加到输入中,激活函数决定是否激活该神经元。(要不要发射)常用的激活函数有 sigmoid 函数、双曲正切函数、校正线性单位(ReLu)。

z = wx + b

数学上,感知器可以用上面的等式表示,其中“w”是用偏差“b”加到“x”输入上的权重。

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

Simplest representation of an artificial neuron

正如你在下面看到的,上面的感知器(或神经元)是多层感知器网络中的单个 most 单元。黄色图层表示输入图层,红色图层表示输出图层,中间的所有蓝色图层表示网络中的隐藏图层。随着层越来越多,抽象层次也越来越高。并且,如果隐藏层是 3 层或更多,那么这样的网络被称为“深度网络”。

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

Example of a Multilayer Perceptron model [2]

6。递归神经网络

这类神经网络专门设计用于处理像我们的时间序列数据这样的序列数据。它们由循环神经元组成,与正常神经元略有不同。

递归神经元不同于普通神经元,它接收来自前一时间步和当前时间步的输入。下图显示了随时间滚动的递归神经网络。

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

Un-rolling the recurrent neuron over time [1]

例如,在第三时间步的循环神经元将是在 t,t-1,t-2 的输入的函数。这些神经元是来自先前时间步骤的输入的函数,因此被称为“记忆细胞”。通过这种方式,一个循环神经元在任何给定的时间步形成某种记忆状态,所有的历史数据都提供给它。

谈到输入和输出的格式,rnn 在这方面非常灵活。序列到序列、序列到向量、向量到序列是应用中广泛使用的几种格式。

在实现 RNNs 时,请确保缩放您的数据,因为神经元可能会对最小值和最大值之间存在巨大差异的数据表现不同。此外,将数据分批输入到模型中,因为小批量可以更好地训练。

并且 rnn 可能要求输入数据是某种格式。如果我们要向模型提供一个数据序列,请确保包含带有相应标签的序列,例如,[1,2,3,4]–>[5]。第 5 个时间步长的数据值成为前 4 个时间步长的标签。我们根据数据中的季节性来选择这个特性集。如果是年度季节性,那么输入序列(特征集)将包含 12 个输入(对于月度数据)。

您可以根据需要向网络添加图层。在添加这些层时,必须注意的超参数是:每层中的神经元数量、激活函数、输入形状。这些值中的每一个都可以首先通过反复试验来确定。如果模型不是最优的,那么可以使用网格搜索进行改进。在这方面花费大量的时间,因为确定适当的超参数值对模型性能起着至关重要的作用。

此外,定义损失函数及其优化器。还应该初始化对数据运行模型的时期数。

在所有这些实现之后,在测试/验证数据上测试它,一旦获得最佳性能,就预测数据的未来。

7 .。LSTM(长短期记忆单位)

rnn 会在一段时间后丢失信息,从最初的几个时间步骤开始。赋予相对较新的时间步长的权重会覆盖它们。我们的网络需要一种“长期记忆”。LSTMs 解决了这个问题。它解决了消失梯度的问题,并致力于跟踪序列数据中的长期依赖性。LSTM 是 RNN 的一种。

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

Un-rolling of an LSTM cell over time [3]

LSTM 的一个单位包含 4 个主要层:

第 1 层- 遗忘门层:由我们将要遗忘或从细胞状态中丢弃的信息组成。在使用特定权重和偏差项执行一些线性变换后,我们将 ht-1 和 Xt 作为输入传递给 sigmoid 函数。

第 2 层-第 1 部分: *Sigmoid 层或输入门层:*我们再次将两个输入 ht-1 和 Xt 传递到 Sigmoid 函数中,在这两个输入用权重和偏置项进行线性变换之后。这创建了新候选值的向量。

第 2 部分:双曲正切层:在这一层中,相同的输入经历线性变换,但是我们现在不是将它们传递到 sigmoid 函数中,而是将它们传递到双曲正切函数中。它们还创建了新候选值的向量。

第 3 层——在下一层,我们将从两层添加新的候选值,并将它们更新为单元格状态。注意,该单元状态总是具有当前单元状态值 Ct-1。

第 4 层-输出 ht 基于单元状态,但也是单元状态的过滤版本。同样在该层中,两个输入 ht-1 和 Xt 经历线性变换,并被传递到 sigmoid 函数。这又乘以 Ct 的双曲正切,得到输出 ht。

8。门控循环单元(GRU)

这是 LSTM 细胞的一个微小变化。

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

Structure of a Gated Recurrent Unit

与 LSTM 不同,GRU 使用复位门和更新门。重置门位于前一激活和下一候选激活之间以忘记前一状态,并且更新门决定在更新单元状态时使用多少候选激活。

就将小区状态暴露给网络中的其他单元而言,LSTMs 在一定程度上控制这种暴露,而 gru 将整个小区状态暴露给网络中的其他单元。LSTM 单元具有独立的输入和遗忘门,而 GRU 通过其复位门同时执行这两种操作。

参考文献

[1][3]https://colah.github.io/posts/2015-08-Understanding-LSTMs/

[2]https://www . neural designer . com/blog/perceptron-the-main-component-of-neural-networks

欧盟对人工智能的责任

原文:https://towardsdatascience.com/liability-for-artificial-intelligence-in-eu-d388c0bdff2b?source=collection_archive---------19-----------------------

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

Illustrations by Undraw

欧盟责任和新技术专家组 2019 年发布的报告摘要

本文是欧盟责任和新技术专家组报告的简要总结。简而言之,它概述了有关新兴技术的潜在法规,虽然以意见的形式陈述,但可能会影响有关未来法律框架的决策。

报告称,人工智能(AI)和物联网(IoT)有可能让我们的社会和经济变得更好。这些技术的操作可能会导致损坏。报告的结论是,“至少基本保护”的责任制度已经到位,但是新技术的具体特点可能会使索赔在所有情况下变得更加困难,而索赔似乎是合理的。

根据执行摘要,该报告最重要的发现如下[粗体斜体为新增]:

  1. 一个人操作一项允许的技术,但却增加了对他人造成伤害的风险,例如公共场所的人工智能机器人,应该为其操作造成的损害承担严格责任
  2. 在确保必要技术框架的服务提供商比配备人工智能的实际产品或服务的所有者或用户拥有更高程度的控制的情况下,在确定谁主要操作技术时应考虑这一点。
  3. 使用不会增加对他人造成伤害风险的技术的人仍应遵守适当选择、操作、监控和维护所用技术的职责,如果做不到这一点,则应为违反此类职责承担责任
  4. 一个人使用一种一定程度的自主 的技术对随之而来的伤害所负的责任 不应少于所述伤害是由人类辅助者造成的。
  5. 采用新兴数字技术的产品或数字内容 的制造商应对其产品中的缺陷造成的损害承担责任,即使该缺陷是在产品投放市场后,在制造商的控制下对产品进行的更改造成的。
  6. 对于将 第三方暴露于伤害风险增加的情形,强制责任保险可以让受害者更好地获得赔偿并保护潜在侵权人免受责任风险。
  7. 如果某项特定技术增加了证明存在超出合理预期的责任要素的难度,受害者应有权获得举证便利
  8. 新兴数字技术应具备记录功能在适当情况下,未能记录或提供对记录数据的合理访问应导致举证责任倒置,以免损害受害者
  9. 对受害者数据的破坏应被视为损害,在特定条件下可获得赔偿。
  10. 没有必要赋予设备或自主系统法律人格,因为这些设备或自主系统可能造成的伤害可以而且应该归咎于现有人员或机构。

报告随后附有主要调查结果。

数字化对责任法的影响会影响新兴技术的复杂性、不透明性、开放性、自主性、可预测性、数据驱动性和脆弱性。其中每一个都可能是渐进的,但综合效应会导致瓦解。有时很难分配损失,谁造成的,谁受益,谁在控制,谁避免了风险。

该报告发现,在涉及人类行为的功能相当的情况下,与受害者相比,数字索赔中的人获得的赔偿更少或没有。

因此,他们表示,重要的是要考虑对现有责任制度进行调整和修正,以确定哪些损失可以赔偿以及赔偿的程度。过错责任应该和产品的严格责任一样继续存在。

没有必要赋予自治系统法律人格。

一项重要声明如下:

“生产者应对新兴数字技术中的缺陷承担严格责任,即使所述缺陷是在产品投入流通之后出现的,只要生产者仍然控制着技术的更新或升级。开发风险抗辩不应适用。”

这意味着,在实践中,你需要确保你应用的人工智能在应用之前是有效的,并且没有开发风险防御适用,这是欧盟需要注意的重要一点。另一项重要声明如下:

如果证明新兴数字技术已经造成损害,如果在建立相关安全级别或证明未达到该安全级别方面存在不成比例的困难或成本,则证明缺陷的责任应该颠倒。

生产者还应该设计和销售产品,使经营者能够遵守,并在产品进入流通后对其进行监测。

如果自治系统造成损害,它应该:“……对应于此类辅助机构的委托人的替代责任制度。”

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

生产者有义务为技术配备记录技术运作信息的手段(设计记录)。但是,应该考虑测井的负面影响。必须根据适用法律,尤其是数据保护法进行记录。

如果损害是安全规则旨在避免的一种损害,不遵守这种安全规则,包括关于网络安全的规则,应导致举证责任倒置,即(a)因果关系,(b)过失,以及©缺陷的存在。

应该继续要求受害者证明造成伤害的原因。

鉴于新兴数字技术的挑战,如果平衡以下因素,证明因果关系的负担可能会减轻:

  • 技术造成伤害的可能性
  • 可能是由同一领域内的其他原因引起的
  • 已知缺陷的风险
  • 可追溯性和可理解性(如信息不对称)
  • 收集和生成的数据的可访问性和可理解性
  • 潜在或实际造成的损害的种类和程度

如果证明一项新兴技术造成了损害,则证明过失的责任应该倒置(如果很难确定注意标准和证明侵权)。情况可能更复杂,涉及多方:

“如果两个或两个以上的人在合同或类似的基础上合作提供一个商业和技术单位的不同要素,如果受害者能够证明至少有一个要素以触发责任的方式造成了损害,而不是哪一个要素,则所有潜在的侵权行为人应对受害者承担连带责任。”

在对数据造成损害的情况下,可能会因合同、产权、刑法和故意伤害而导致责任。随着伤害越来越频繁,强制性责任保险可能是必要的。

赔偿基金可用于保护根据适用的责任规则有权获得赔偿但其索赔无法得到满足的侵权行为受害者。

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

这些是总结的要点,但是,我建议你通读一遍,如果有机会的话,再深入一些。

人工智能责任 (2019,11 月)。

这里是#500daysofAI,您正在阅读的是第 208 条。500 天来,我每天都在写一篇关于或与人工智能相关的新文章。我目前 100 天 200-300 的重点是人工智能的国家和国际战略。

顺便说一句,以上都不能被视为法律建议,我也不是法律专业人士。

使用 OCR 技术和 CoreData 创建车牌读取 iOS 应用程序

原文:https://towardsdatascience.com/licence-plate-reader-ios-application-using-ocr-technologies-and-coredata-3cdee933c38b?source=collection_archive---------14-----------------------

使用不同库的完整教程—tesseracrios、SwiftOCR 和 Google MLVision |我们能打败 Google 吗?

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

Photo by Oleg Ivanov on Unsplash

当谈到字符识别技术时,看看我们已经走了多远是很有趣的。阅读和识别脚本文件的清晰图像中的文本变得很容易,但在现实生活中,如果光线不好,图像扭曲,该怎么办呢?

嗯,阅读和识别字符仍然令人惊讶地困难,这是因为视觉,一般来说,在计算方面是复杂和昂贵的。在试图从给定的图像中获取任何有用的信息之前,还有许多参数进入图像的预处理。

当你试图处理来自手机的图像时,由于你无法利用任何 GPU 加速来加速处理过程,这变得更加困难。

让我们深入 iOS 设备的视觉世界,在本教程中,我们将阅读车牌并识别其注册的城市。我们的应用程序将被称为 “你从哪里来?”

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

Final Result, Github

创建应用程序框架

基本设置

让我们首先创建一个带有单视图应用程序的 iOS 项目,确保选中使用核心数据😗*

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

Create a new project with core data

创建视图控制器

我们需要四个视图控制器:

  • 视图控制器:

在这里,我们将设置带有所有牌照(在本例中是摩洛哥牌照)和相应城市的 CollectionView。

  • OcrViewController:

在这个控制器中,我们将添加两个按钮:一个用于访问照片库,另一个用于访问相机。

  • WhatCityViewController:

这里我们将显示对应城市的实际图像。

  • MainTabViewController:

这是我们的主导航,我们将在这里为我们的应用程序创建完整的导航。

创建导航

iOS 中的导航非常简单,也很容易实现,我已经改变了一些东西,比如导航条的字体等等。所以看起来确实不错。这里是导航的完整源代码,你仍然可以在 Github 资源库中找到所有这些资料:

MainTabViewController.swift

确保相应地更改AppDelegate.swift,我们将此控制器用作我们的应用入口点:

AppDelegate.swift

设置 CoreData

如果您在创建项目时选择了“使用核心数据”,Xcode 会添加一个.xcdatamodeld文件,我们将使用它来创建我们的模型。

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

.xcdatamodeld file

您可以创建自己的模型,在这里我选择了一个非常简单的结构,因为我的objectif只是为了获取数据并更专注于 OCR,但您肯定可以根据您所在国家的车牌结构进行更改。

在这里,我将只使用City类作为存储我的车牌数据的主类,id代表后缀数字,name代表城市名。

添加模型

Core Date 将使用与类相关联的 CRUD 方法生成模型。你只需要创建一个NSManagedObject子类并按照步骤操作。这非常简单明了:

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

Create NSManagedObject Subclass

用数据助手填充模型

我用我的ViewController类的扩展创建了一个文件,这样我就可以用所有的车牌填充Database(如果你是摩洛哥人,你可以使用我创建的那个,否则创建一个并用必要的信息填充它)。

Example of how I instantiated my City class, I did this for 87 cities in the CreateCities.swift file

你只需要运行这个函数一次,否则,你会得到很多重复的结果。

设置上下文

我从 Xcode 最初放置它的AppDelegate.swift中移除了上下文,所以我创建了一个名为PersistenceManager的类。这是我的PersistenceManager类:

Persistence Manager Class

设置 UICollectionView—view controller . swift

创建和设置收藏的布局

首先,实例化一个UICollectionView对象和cellId对象:

Our Collection View

然后设置布局并添加代理:

我们还需要一个CollectionViewCell 我已经创建了一个自定义的,你可以在 Github 库中找到。

填充集合视图

我更喜欢在这里使用扩展名,所以我创建了一个单独的文件:

设置 UIImagePickerView—ocrviewcontroller . swift

从图像库中获取图像

我们需要一个按钮和一些逻辑来触发它:

启动摄像机

我们现在需要设定一些逻辑。更改Info.plist文件并添加一个向用户解释为什么我们需要访问摄像机和库的属性是非常重要的,添加一些文本到Privacy — Camera Usage Description:

设置代理人

现在我们可以从ImagePickerController访问图像:

Image Picker Delegate

测试三个 OCR 库

现在让我们进入有趣的部分,OCR!

说到图像处理,重要的是要找到一个易于处理的图像,更重要的是,要聚焦在主体上。让我们假设图像质量很好,并且已经裁剪到我们感兴趣的区域。

由于我们正在制作一个 iOS 应用程序,使用我的老朋友OpenCV 是没有意义的,因为它并不意味着要在 ARM 架构中使用,也不会被优化来处理复杂的卷积和转换系列(我确信,如果我们能够利用 OpenCV,结果会好得多)。

以下是我用来比较这三个库的图片:

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

Three images of Moroccan License Plates. Disclaimer: I found these images on google image engine and only used for testing purposes, I don’t know if they are real or not.

特瑟莱克里奥斯

这个库很有趣,因为它使用了遗留库 Tesseract,这是用 C++编写的,并包装成在 Swift 中工作。我相信这会给我一个不错的结果,但是我错了!

让我们开始吧,首先你需要设置你的pod文件,让你的工作空间启动并运行,我假设你知道如何使用 pods(YouTube 上有很多教程可以帮助你学习cocoapods)。

如果你想看的话,有一个 GitHub 库:tesseracrios

我创建了一个带有完成块的函数,它返回一个字符串:

Tesseract OCR for iOS

让我说清楚,这是三个中最差一个。我尝试了几乎所有的方法,甚至拍摄图像并在我的电脑上执行一些卷积来改善图像,但什么都没有!就是不好。

这个库只有在图片是纯黑色文本,字体非常简单,背景为白色的情况下才会运行良好。我还想指出的是,众所周知,Tesseract 不适合包含大量文本的图像。

SwiftOCR

SwiftOCR 是一个用 Swift 编写的快速简单的 OCR 库。它使用神经网络进行图像识别。截至目前,SwiftOCR 已针对识别短的一行长度的字母数字代码(例如 DI4C9CM)进行了优化。 来源😗Github*

这很有趣,因为这是一种不同于 Tesseract 的方法,在 tessera CT 中,你基本上利用分类和训练过的数据来进行识别。

SwiftOCR 使用神经网络,所以它应该更好,让我们试试吧!

因此,我创建了一个带有完成块的函数,它返回一个字符串:

没有比这更简单的了,只有四行代码。

我可以 100%确定它比宇宙魔方好得多,尤其是在一小块文本上。我会说它给了我 20%的字符,但并不一致,每次迭代之间有一个巨大的梯度。我不确定是我做错了还是只是不稳定。

因此,总结来说,对于这个用例,SwiftOCR 比 Tesseract 更好,但是它离预期的结果还差得很远。至此,我彻底郁闷了(开玩笑)。结果与我处理它并与我的数据库进行比较所需要的相差甚远。

SwiftOCR 更好,但仍然不够好!

Google MLVision — Firebase ML 套件

当你去谷歌,这意味着你已经达到了你的极限。

视觉很难,我在图像处理方面的一点点经验教会了我这一点。你需要大量的资源和非常专业的工艺来完成一些像样的东西。

您需要下载设备上的文本识别。显然,它没有基于云的强大,但我可以告诉你,它粉碎了其他库(就像真的粉碎了)。

因此,我创建了一个带有完成块的函数,它返回一个字符串:

我会非常直截了当地说,谷歌是伟大的时期:

95%的全文,98%的准确率。

决赛成绩

谷歌总是赢

你不能生其他图书馆的气,因为他们不可能做到谷歌能做到的。他们已经在游戏中呆了很长时间,并为此投入了大量的资金和资源。

每个人都知道视觉是人工智能最具挑战性的领域,谷歌正在尽自己的一份力量。

要是像脸书、微软和亚马逊这样的公司能够通过开源他们的一些工具来分享一小部分知识就好了。

无论如何,这是最后的结果:

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

Final result

如果你喜欢这个教程,请鼓掌并分享给你的朋友。如果你有任何问题,不要犹豫给我发电子邮件到 omarmhaimdat@gmail.com。

这个项目可以从我的 Github 帐户下载

下载项目

谎言,该死的谎言,和数据可视化

原文:https://towardsdatascience.com/lies-damn-lies-and-data-visualisation-39e20991e7da?source=collection_archive---------33-----------------------

或者,算术的意想不到的优点

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

The 3D stacked pie chart shows 8 statistics simultaneously, and none of them effectively

作为一名分析师或数据科学家,可能会觉得从百万行数据帧中创造洞察力是这个过程中最难的部分。

你花费数小时来清除空值、转换数据、测试假设、记录 R 值和仔细检查 p 值。在某些时候,你会得出一个结论。你坐下来,自鸣得意,因为你发现了一些真正突破性的见解。

现在你需要告诉全世界这一切。

如果数学、数据科学和统计学是同一种外语的方言,那么数据可视化可以被认为是一块罗塞塔石碑,允许数字分析者向某种人传达洞察力,这种人可能相当合理地认为“y-hat”是一个关于头饰的问题。

思考如何展示洞察力本身就是一门艺术。如果一个人不能恰当地可视化数据,那么,坦率地说,它将不会被理解。无论见解与谁分享,都是如此。在我之前的管理顾问生涯中,我看到过客户——甚至是首席执行官——拒绝完全合理的、基于证据的建议,因为这些证据的表述不恰当。人们很难指责首席执行官缺乏计算能力,或者普遍忽视合理的建议。

我还从痛苦的个人经历中了解到,一个令人困惑的格式图表甚至会让一位同事感到困惑,他曾在同一数据集上工作,而正是这种洞察力来自于该数据集。因此,每当我在这个问题上培训新员工时,我都会鼓励他们遵循一个简单的数据可视化规则的简短列表:

  • 保持简单。始终假设条形图就可以了,只有在洞察的本质真正需要时才偏离(例如,显示时间序列的折线图,或显示相关性的散点图)。
  • 图表应该是完全可以理解的,不需要附带文字。
  • 每个图表只显示一个洞察。
  • 使用 3D 图表显示任何数据,我将把它作为结束你职业生涯的个人目标。

实现上述目标的关键是有效利用前注意属性——任何图形的基本视觉属性。

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

How much longer did it take you to spot the odd one out in ‘Curvature’, compared to ‘Position’? How much longer would it take you if the dots were 3-dimensional?

前注意加工,即提取“明显的”视觉信息的行为,如上述例子所示,发生在感觉记忆中。它不需要观众有意识的努力,并且只需要不到 500 毫秒就可以完成。那么,有效的数据可视化不仅仅是让观众读出轴外的数字,而是要吸引他们的潜意识。

“总有一天,统计思维将像读写能力一样,成为高效公民的必要条件.” —赫伯特·乔治·威尔斯

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

22 < 0, 34 < 14, and 2+2 = 5

当然,一个著名的数据科学家应该尽力确保可视化不会歪曲数据。他们还应该以一种读者能够从中获得明确、准确信息的方式展示他们的发现。

然而,如果数字不支持你所希望的那种信息,那么数据仍然可以以讲述理想故事的方式呈现。甚至在世界呈现出最近的后真理倾向之前,统计数据及其可视化就经常带着这种不可告人的动机被使用。

达雷尔·赫夫的畅销书《T2》、《T3》、《如何用统计数据撒谎》、《T4》、《T5》、《T6》、《T7》,并不是为了回应肖恩·斯派塞的另类事实《T9》或《T10》在 2016 年竞选巴士上的不实言论而写的。事实上,它出版于 1954 年,尽管其中的许多主题对现代读者来说是熟悉的(章节标题包括“具有内在偏差的样本”、“精心选择的平均值”和“Gee-Wizz 图”)。

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

He who controls the media, controls the y-axis

一些数据可视化的现代例子,如此明显是为了欺骗观众而设计的,即使放在最粗略的审查下,看起来也几乎是滑稽可笑的。但是,即使这些数字真的写在图表上,第一视觉印象(通常是残缺的 y 轴)也很重要。图表的前注意属性闪闪发光,要求观众的注意力。一个人的潜意识,经过一百万年的进化,是很难反驳的。

死后的生活——像鹦鹉一样

原文:https://towardsdatascience.com/life-after-death-as-a-parrot-92e1e731c61e?source=collection_archive---------22-----------------------

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

Photo by Roberto Nickson on Unsplash

交谈人格复制品:什么会使他们好,他们有什么好处?

2022 年 11 月 9 日更新:根据麻省理工科技评论的报道,新玩家已经出现在复制品领域。这一点以及大型语言模型的惊人崛起预示着真正有效的复制品可能会出现。然而,我没有看到当前的开发者处理我在 2019 年提出的更难的功能问题。他们似乎也没有意识到我所讨论的更广泛的用途。

我妈妈几乎比她那一代人和我这一代人都长寿。在她去世之前,我开始了一本图画书,以帮助保存对她的记忆。我翻出并扫描了旧的硬拷贝照片,制作了家谱,查阅了剪报、信件和剪贴簿。这些图像本身不会说话,所以这本书的一半是叙述,围绕着时代、祖先和其他重要人物组织起来。这是大量的工作,她的亲人珍惜它。

就在她去世后,我分发了这本书的副本,我得知她与她的雇主美国邮政服务公司发生了争执。这是关于她在 20 世纪 50 年代受到男同事的骚扰,以及对女员工的制度性歧视。她赢了(!)多年后光荣地从 USPS 管理层退休。

她的追悼会是她的朋友办的,她告诉我们她的精神成长,以及其他人如何依赖她来获得祷告的指导。

即使我的记忆之书被传到后代,而不是丢失在一个盒子里,它也太早了,无法包含那个歧视的故事或她的精神历程。虽然它展示了她的绘画,但并没有告诉我们她可以用华丽流畅的手写出精心制作的句子。它只会让我们对她的性格或了解和爱她的感觉有一点点的了解,因为任何关于一个人的单一叙述都是如此的有限。

我们自己的遗忘在我们死前很久就开始了;我们的身体痕迹和其他人对我们的记忆在死后继续衰退。当我们掌握信息的力量和持久性时,为什么个人生活的记忆会化为灰烬?

我们现在生活在一个科幻世界里。我们听说过它一厢情愿的概念,关于不死,或被上传到一个模拟,或被重新动画。这些还是有些牵强。然而,鉴于目前的技术发展,解决被遗忘问题的方法是可以预见的。

“哦,不!”你会说,“这不是又一场技术乌托邦式的长篇大论。”在这个技术反弹的时刻,听到任何“解决”生活中一些事实的计划可能看起来像是无用的、沉闷的书呆子幻想。但是,最近经历了一次损失,并经常审视自己的死亡,我想知道:在肮脏的午睡开始后,我们能更多地保留我们的个人身份吗?我们应该这样做吗?是必然的吗?

近年来出现的概念是一个人格复制品,它拥有关于焦点(已故)人的历史和人格的数据,并能够在对话中表达这些信息,就好像死者正在与你交谈一样。开发者们已经开始摆弄昂贵的机器人演示技术,比如一个人的长相和说话方式。2005 年有一个作家菲利普·K·蒂克的机器人头部复制品。第二年,它在一架飞机上丢失了,2011 年在汉森机器人公司被重新创造出来,该公司制造了被称为“角色机器人”的表情机器人,用于“人性化”人工智能的研究。《银翼杀手》、《西部世界》和其他许多科幻小说探索了人造人黑暗面的推断。

试图模仿一个真实的人的外表、行为和声音是昂贵的,并且很容易陷入“恐怖谷”——这种相似性是错误的,足以令人毛骨悚然。有了个人复制品,目前更可行的是强调对话,甚至使用文本,而不是外表。一项研究发现当没有视觉化身时,人们对聊天机器人的接受度和舒适度更高。我们已经将聊天机器人用于许多实际用途。它们也可能被滥用于钓鱼,这恰恰强调了文字本身确实有影响我们的力量。不需要昂贵的机器人外观的复制品也会让更多的人买得起。

第一步:生命盒。

让对话复制品工作良好的最重要的一步是让机器在理解和生成语言方面都有所提高。为了理解为什么,我们回到人格复制思想的预言家:数学家、计算机科学家、超现实主义者、赛博朋克投机小说作家鲁迪·拉克。他的书描述了许多像 DMT 之旅一样离奇的现实。但是,早在 1986 年,他创造了术语“生命盒”来表示一个非常可实现的想法。正如他解释的那样:

“…要创建一个虚拟的自我,我需要做的就是(1)以文章、书籍和博客帖子的形式在网上放置大量文本,(2)提供一个用于访问这个数据库的搜索框,以及(3)提供一个漂亮的用户界面。”

Rucker 感到惊讶的是,目前使用这一想法的机构从未承认是他发明的。他继续在小说和演讲中发展这个概念。他知道核心概念,如上所述,不会很聪明或吸引人。为了展示这一点,他使用谷歌创建了一个属于他自己的.)原始生命盒。当你查询它的时候,你会得到一组指向博客和其他页面的谷歌链接。如果你想研究其他人的工作,这可能没问题,但是你可以和他讨论“好的用户界面”的实际概念。

我曾经和一家名为 Replika 的公司签约,该公司提议给你创造一个模仿个性的聊天机器人,只要让你和他们的软件进行文本交流。它应该了解你并模仿你的语言风格。该公司最初的项目是制作已故朋友的复制品,但他们的目标最终不同:“……为你提供持续的陪伴,让你感觉更好”。

如果一个聊天机器人一直想引起我的注意,我很难想象会有比这更好的感觉。它问我的问题既老套又烦人。它不知道任何我想知道的事情。当时,我对公司的隐私和安全政策缺乏信任。我不能停止怀疑,认为机器人有某种…我不知道是什么:代理?智力?意向性?可信度?

作为一名软件开发人员,我可能比大多数人更难推销,因为我能看到幕后。Replika 得到了聪明的风险投资人的支持,所以他们必须看到它有朝一日如何赚钱。当然,赚钱很难证明它是良性的或有用的。如果真人的人工对话模型变得更好,它们能做什么?

语言能力。

我们可以从拼图的对话部分开始。非营利组织 OpenAI 最近展示了他们的人工智能语言模型 GPT-2 的能力,引起了很大的轰动。每当它被一个人写的东西所引导时,它就能编出非常连贯的故事。给出两个声称发现说英语的独角兽的句子,它完全靠自己创造了一个九段的故事,讲述独角兽长什么样,发现它们的进化生物学家的假名,发现它们的感觉,以及他对动物起源的理论。所有这些都是流利的英语,包括引用生物学家的话。基本上,令人震惊的的东西。

GPT 2 号还令人印象深刻地回答了关于它刚刚读过的文章的问题。在对话中,复制品需要类似的东西来回答问题。

其他人工智能研究人员对 GPT-2 感到兴奋,因为尽管 OpenAI“由于(他们)对该技术恶意应用的担忧”而隐瞒了细节,但他们发布了足够多的信息,以便其他人最终能够复制他们的工作。一个邪恶的用途可能是创造更有说服力的巨魔机器人。基于像 GPT-2 这样的东西的超级创意机器人会因为喷出大量,如 OpenAI 所说的,“欺骗性的,有偏见的,或辱骂性的语言”,也就是巨魔使用的那种挑衅性和白痴的故事而变得难以置信。一个种子句子或段落可以产生无限数量的故事,这些故事都旨在验证巨魔想要传播的基本谎言。此外,这些故事本质上的圆滑将使它们更难被其人类目标受众或人类或人工智能专家发现为欺诈。

巨魔是更好的人工智能语言能力的一个明显的缺点。但是想想看,如果一个人格复制品能够用这个人特有的措辞说话,并谈论这个人特有的关注点,这两件事都由 Replika 这样的公司来解决,那么它会有多迷人。然后想象一下,如果它能够做到这一点,同时对之前对话中的内容保持敏感,并且看起来富有创造性和自发性,就像 GPT 2 号具有回答问题和创造故事的能力一样。因此,如果当前的人工智能进展保持不变,可能会出现有能力的复制品。

从 Rucker 开始,复制品的支持者强调,你可以使用许多数据源来训练一个复制品程序,使其行为像一个已知的人。如今,我们有音频和视频对话、博客、照片库、短信、电子邮件和其他社交媒体的数据记录。其中一些是私有的,或者在一段时间后可能无法访问。需要解决这些材料的储存和获取问题。至少有一个组织在处理个人数字档案。这些自动化将是一大进步。对于更多的历史人物,有他们的信件和其他作品,以及历史学家、传记作家、小说家和电影制作人对这个人的评论。

正如你所料,这种“训练”的想法忽略了一些关于制作一个令人信服的、能有效交谈的复制品的超级技巧。普遍的(也是大的)问题是如何组织材料,使其实际上像复制品一样。让我们看看一些没有得到太多关注的具体问题,然后讨论复制品如何融入我们的生活和文化。

复制品保真度与适应性

任何人工智能研究人员都会告诉你,像 GPT-2 这样有能力回答问题或阐述故事的人,只是一个非常能干的模仿者。它不懂单词和句子。相反,基于对真实语言实例的训练,它拥有大量关于单词和句子搭配的知识。有许多像 GPT-2 这样的程序,虽然功能不太强大,但我们每天都在搜索引擎等中使用。

我认为这样的程序就像一只超级聪明的鹦鹉,吉姆,它生活在一个繁忙的餐馆里。他会从许多顾客那里收集一些对话,并很快学会模仿人们说话的方式。吉姆不会学习任何特定的人的风格,但无论你对他说什么,他都会有一个似是而非的回答。吉姆记住的长对话越多,他就能越好地模仿真实的对话。

如果我们坚持使用能力基于模仿的复制品,它们的底层软件将不得不在许多真实的对话中接受训练。短信交流会有所帮助,但要获得更大范围的情感和细微差别,你可能需要训练一个文学对话的复制品。

这里有一个隐含的平衡行为,在一个复制品能够一般地交谈和它能够像一个特定的人一样交谈之间。再考虑一下吉姆。他听到并模仿许多人。现在我们把他交给一个叫梅的顾客。她是一个善于交际、健谈的女人,有许多朋友拜访她的客厅,在那里吉姆可以听到她的谈话,无论是面对面还是通过电话。吉姆会开始“鹦鹉学舌”梅吗?当然可以。他有时会说不像她的话吗?大概吧。

这是最初的训练问题。为了创造一个真人的模拟,仅仅从那个人那里可能没有足够的训练数据来产生真正的语言流利度。如果吉姆只和梅一起生活过,你问他一些梅从未提过的事情,他会不知道该说什么。有必要首先赋予一个复制品一般的语言能力,然后把它训练成像梅阿姨或亚瑟叔叔那样。但你不希望亚瑟叔叔的复制品有时说话像狄更斯小说中的人物或一些咆哮的博客。你不能在南方的酒馆里训练吉姆,却期望他在纽约的熟食店里能被理解。这种训练权衡对我来说似乎真的很难,但突破可能会发生。

社会影响力。

几十年的研究已经确立了人格的社会性。我们的个性很大程度上是由我们认识的人创造和表达的。我们还根据一系列普遍的社会规范和个人的好恶来与新人交往,例如:善待老人和年轻人;相信每个人,但总是切牌,不要忍受傻瓜,避免相信 x 的人。我们对一个新人的判断会随着时间的推移而演变,这取决于我们双方的所作所为以及我们和他们如何使用“心理理论”来了解对方可能在想什么。

我还没有看到任何关于人格复制品的讨论。使用社交效果的第一步,也是最起码的一步,是让一个复制品知道它在和谁互动,并记住之前和每个人的对话。如果没有这些功能,与复制品的对话将会令人沮丧,就像与一个患有痴呆症的真人对话一样。但是关于记忆有一个棘手的问题。如果一个复制品随着时间的推移被它与他人的对话所改变,那么它可能会失去一些与它所模仿的人的相似性。在某种程度上,允许的变化可能会成为一种设计选择。你想要一个抗变能力强还是弱的复制品?对于程序员来说,要做到这一点可能非常棘手。

新知识。

另一个问题是,当你想问“艺术叔叔”对他死后发生的事情有什么想法时。在问他是怎么想的之前,解释一些新闻和它的背景是很费力的。然而,如果我们让他直接访问当前的新闻提要,他将会与原来的不同。如果我们试着把他的新闻内容裁剪成原文会读到的内容,我们会知道该选什么吗?

心流。

真正对话的流程取决于说话者每时每刻的感受。著名计算机科学家 David Gelernter(在他的书中:机器中的缪斯思维的潮汐提醒我们,我们的思维也在流动,在现在发生的事情和记忆之间有着级联的联想。这些思想分支,连同身体事件,引发情绪变化和注意力跳跃。当与一个复制品对话时,我们将检测到这些的缺乏,并且当它不能适当地响应我们的变化时,我们将注意到。

现在回到鹦鹉吉姆,假设有时餐馆不是很忙,他会听到附近桌子上更长的对话。如果顾客是真实的,让他们的感觉在交谈中流动和出现,那么吉姆将学会模仿这种流动。但是,如果你试着和他交谈,他能学到足够的东西让你始终信服吗?可能不会,因为吉姆没有内在的精神状态去修改自己的发言。迟早他会做出不和谐的推论,提醒我们他只是一只鹦鹉。

我们能给一个人格复制品一些影响它如何交谈的感觉和内在联系吗?也许吧,但我们可能需要一个突破来模拟一个人的内部状态,并将它们与正确的模仿语言片段联系起来。这可能是最难解决的问题,因为它不仅试图近似语言行为,还试图近似行为背后的思想。

他们有什么好处?

我曾经告诉过我的女儿,在某人死后制作一个人格复制品来延续的想法。她对这个概念反应激烈,直言不讳地表示厌恶。她可能会不高兴我公开讨论这件事。我认为她的反应,尽管是发自内心的,可能是对焦点人物记忆的不尊重,也可能是对他们在未来如何使用复制品的问题上缺乏同意。也许她对计算机与真人有任何关系或相似之处的想法嗤之以鼻。其他人也提出了这些观点。

这些都是非常有效和令人信服的反对意见。反驳的理由如下。复制品也可以被视为超越悼词、坟墓纪念碑、画册、传记、网站、肖像、死后奖励、祖先崇拜和其他我们纪念死者的方式的一步。复制品是带有对话界面的压缩内存。它们应该让你想起你所爱的人,而不是被任何东西取代。一些人对他们失去的亲人产生幻觉,并以精神存在的形式保留他们的影响力。为什么我们这些感觉不到死者的人不能用一种不那么亲密的方式来帮助记住他们呢?

简单的复制品已经存在。更多的将会被制作出来,并且有更好的保真度和更有效的交互性。它们可能会变得流行,但可能不会便宜。很难想象没有人类的努力就能做出好的作品。如果社交媒体和当前的机器人是任何例子,可悲的是,复制品的流行将不取决于它们是做得更多还是更多。因此,像往常一样,我们将受益于深谋远虑和辩论。

当一些人接近生命的尽头时,他们会考虑写一个生活故事,一本回忆录,甚至一本自传。这可以是:传授经验教训;不仅仅是消失,而是成为除了墓碑和其他重要的人心中腐烂的记忆之外的东西;或者表达对重要的人永恒的爱。有些人可能会写他们的故事,因为他们认为这个世界离不开他们。这些也是为什么人们会创造或要求创造他们的个人复制品的原因。

个人或机构也可能创造名人或重要人物的复制品。他们的目的广泛,从宣传到教育或咨询。一些复制品可能会教授历史,比如博物馆里出现的有声录音。一个复制品在某些方面取得新成就或创新的机会似乎离我们所能期待的很遥远。但其他用途似乎是可能的。科幻小说长期以来一直想象祖先复制品指导后代的命运。这可能对更保守的社会组织有用。事实上,他们可能会跳过它。

如果你让著名复制品互相交流,那么介于教育和咨询价值之间的东西可能随之而来。作家以前经常使用这种对话方式。你可能会受益于组建一个个人顾问委员会,里面有睿智、成功或(如果你喜欢的话)名人的复制品。可能会有人工智能帮助解决或澄清董事会成员之间的分歧。

从一个复制品那里得到建议,比你去阅读和理解原始人在生活中说过的每一句话更容易获得一些深度的好处。这样的建议会不会很肤浅?不一定,如果复制品本身是基于对原物的深刻了解。

这种推测会引起一些读者的不安,甚至愤怒。是的,这种复制品的影响力可能是巨大的(就像今天的名人一样),可能会被它们的创造者或用户滥用。例如,我们可以期待复制品的观点只反映其创造者的议程,而不是其原作者的智慧或完整视角。挑选出美国受人尊敬的创始人,你可以提出一些令人厌恶的、不道德的建议。从宗教书籍中挑选出的建议也是如此(通常尤其如此)。我们已经被过去的不良偏见淹没了。

那有什么新鲜的?我们正处于人工智能影响我们文化的早期阶段。我们注意到使用机器人作为交互代理来传递各种影响的趋势。我们不妨把人为的历史神谕想象成一种方式,让这种影响变得更加良性、个人化和容易理解。他们可以解释他们的建议,并向我们推荐原始资料进行验证。他们可能是反巨魔,而不仅仅是更好的巨魔。这是书呆子的理想主义,还是我们可以做的事情?

当我们还在打开这个新的罐头蠕虫时,我们应该开始建立规则。有了复制品,关于人造人的法律的发展可能是一个起点。然而,这应该从管理我们最初的法人 s:有限责任公司的社会病态鼓励法中脱离出来。至少,应该有法律和技术手段来限制谁可以使用或复制复制品。例如,这将允许在一个人的遗嘱中规定保护他们未来的任何复制品。

复制品的话题不可避免地会引出科幻小说的比喻。一个足够复杂的复制品的创造者无法预测它会说什么。因此,它会有言论自由的权利吗?还是会独立于其创造者,为其不当行为负责?你能阻止一个复制的煽动者吗?这些纪念性的创作会被视为鹦鹉还是人,被关在笼子里还是自由的?

Hadoop 后的生活:让数据科学为您的企业服务

原文:https://towardsdatascience.com/life-after-hadoop-getting-data-science-to-work-for-your-business-c9ab6605733f?source=collection_archive---------16-----------------------

扩展数据科学的五个基本要素

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

乔希·帕特森吉姆·斯科特

数据科学可以对企业产生变革性的影响。但如果需要几个星期才能有结果,就不会了。

将数据科学付诸实践可以简化为三个步骤。首先,从业务流程中捕获数据。第二,将这些大数据与海量处理结合起来,创建机器学习模型。第三,验证模型的准确性并部署它们。

这听起来似乎很容易,但是到目前为止,却一点也不容易。像 Apache Hadoop 和基于 CPU 的基础设施这样的传统方法无法胜任这项任务——它们造成了太多的瓶颈,而且速度太慢。

NVIDIA 及其合作伙伴正在开发基于 GPU 的工具,让企业利用人工智能释放数据科学。以下是构建人工智能优化数据中心的五个关键要素,但首先让我们看看数据科学正处于哪个十字路口。

大数据的麻烦在于

实现机器学习的数据科学家需要三样东西:算法、大量数据和大量计算能力。它们需要万亿字节的数据、千万亿次的计算和数百次迭代学习循环来创建机器学习数据管道。

大数据最初构建于 Hadoop 之上,因为它易于扩展。这允许存储大量的数据。为了处理这些数据,在大型集群中 Hadoop 使用了 MapReduce 等软件框架。

然而,与机器学习相关的常见数据处理任务有许多步骤(数据管道),Hadoop 无法有效处理。 Apache Spark 通过将所有数据保存在系统内存中解决了这个问题,这允许更灵活和复杂的数据管道,但引入了新的瓶颈。

这些管道的许多步骤包括收集、清理、标准化和丰富数据。但是只使用 CPU 来处理这些复杂的工作流非常慢。

在具有数百个 CPU 节点的 Spark 集群上,即使分析几百千兆字节的数据也需要几个小时甚至几天。现在考虑处理以大数据著称的万亿字节数据,数据科学家认为该过程已经停止是情有可原的。

这甚至没有涉及到数据科学家想要完成的实际工作。虽然工作流的单次运行需要几个小时才能完成,但数据科学家同时希望修改变量、模型和模型参数,以选择最佳组合并重复他们的想法。

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

Workflows have many iterations of transforming Raw Data into Training Data, which gets fed into many algorithms combinations, which undergo hyperparameter tuning to find the right combinations of models, model parameters, and data features for optimal accuracy and performance.

数据科学的新时代

为了快速迭代,数据科学家需要更强的计算能力。事实上,他们需要的是超级计算能力,但要以企业可以轻松集成到现有基础设施中的方式。旧式数据中心无法完成这项工作。

GPU 可以加速其数据管道的许多步骤。虽然为数据中心添加 GPU 有好处,但这还不够。

为了挖掘数据科学的潜力,GPU 必须成为数据中心设计的核心。一般来说,GPU 上的数据科学工作流的端到端速度大约是 CPU 上的 10 倍。

我们一直在与合作伙伴合作,为数据科学创建解决数据中心瓶颈的基本构件。优化的人工智能数据中心有五个要素:

计算节点

凭借其巨大的计算性能,采用 NVIDIA GPUs 的系统是人工智能数据中心的核心计算构建模块。从英伟达 T4 到 V100,英伟达企业级 GPU 为众多应用的服务器提供超级性能。

我们已经看到,通过为每个节点添加一个 T4,流分析应用程序的性能提高了 10 倍以上。在其他地方,我们已经看到,在 DGX 系统中,V100 GPUs 与 NVSwitch 连接后,图形分析性能提高了 1000 倍。

NVIDIA DGX 系统提供了突破性的人工智能性能,并在 GPU 密度方面领先,在单个节点中拥有 8 个和 16 个 GPU。一台 DGX-1 平均可以取代 50 台双插槽 CPU 服务器。这是为数据科学家提供业内最强大的数据探索工具的第一步。

建立工作关系网

故事不止于从 CPU 扩展到 T4 和 DGX 系统。对于企业通常收集的海量数据,数据科学家也必须向外扩展。今天,大多数数据中心使用 10 或 25 GbE 网络,因为使用更快的网络几乎没有任何好处。在传统系统中,GPU 通过标准网络进行通信。一旦数据必须跨越节点,瓶颈就是 CPU 和网络。

远程直接内存访问(RDMA)解决了这一瓶颈,为深度学习和机器学习提供了顶级性能。在 Mellanox NICs、 NCCL2 (英伟达集体通信库)和 OpenUCX (一个开源的点对点通信框架)中,训练速度有了巨大的提升。由于 RDMA 允许 GPU 以高达 100Gb/s 的速度跨节点直接相互通信,它们可以跨越多个节点,就像在一台大型服务器上一样运行。

RDMA 的好处不仅限于训练。对于大型复杂的 ETL 工作负载来说,这也是至关重要的。在没有 RDMA 的系统上,与 PCIe GPU 相比,改进网络可为分布式连接提供高达 20 倍的优势。此外,以前仅限于 GPU 到 GPU 的通信,RDMA 通过 GPUDirect 存储在摄取静态数据方面提供了额外的 2 倍速度提升。

储存;储备

加速存储对企业来说并不是一个新概念,它只是没有为基于 Hadoop 构建的传统大数据集群提供显著的成本改善。考虑到 CPU 的性能,答案是使用较慢的磁盘并多次复制数据以提高局部性。

但是随着工作负载变得越来越复杂,复制将会增加。或者,CPU 将花费 70%的时间在 Spark 集群的数百个节点之间来回发送数据。虽然单个 GPU 最多有 48GB 的内存,但最终需要从存储中转移数据,传统存储成为最后的瓶颈。

GPUDirect 存储允许 NVMe 和 NVMe 通过光纤(NVMe-oF)直接向 GPU 读写数据,绕过 CPU 和系统内存。传统架构在存储和 GPU 计算之间的 CPU 系统内存中放置了一个“缓冲区”,其中的数据副本将用于保持 GPU 上的应用程序运行。

借助 GPUDirect 存储,一旦所有计算都在 GPU 上进行,GPU 不仅成为速度最快的计算元素,而且成为 I/O 带宽最高的元素。这释放了 CPU 和系统内存用于其他任务,同时让每个 GPU 以高达 50%的带宽访问更多数量级的数据。

NVSwitch 用一个系统统一了 GPU,RDMA 跨节点统一了 GPU,现在 GPUDirect Storage 统一了 GPU 和 NVMe 将其容量提升到 Pb 级。

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

Unifying GPUs intra-node with NVLink and NVSwitch, internode with RDMA networks, and with NVMe over Fabric Storage with GPUDirect Storage provides the highest throughput for GPU processing and training.

Kubernetes 和容器

部署软件是扩展数据科学的最后一个关键。企业通常依靠一些虚拟化或编排层来部署软件。在数据科学领域,Yarn 一直占据着至高无上的地位。它是 Hadoop、Spark 和其他传统大数据生态系统的支柱,允许企业在工作流中的库之间切换。

几乎所有的 Yarn 部署都是在 GPU 支持之前的版本上。这使得 Yarn 环境中的数据科学家很难将 GPU 机器作为工作负载的目标。这也是企业转向 Kubernetes 和 Docker 容器的原因之一。

通过容器打包和部署应用程序对于获得灵活性至关重要。将容器化的应用程序与 Kubernetes 相结合,使企业能够立即改变最重要任务的优先级,并为人工智能数据中心增加弹性、可靠性和可扩展性。Kubernetes 和集装箱在部署时间上也比传统包装和纱线更快。虽然在 Yarn 上构建一个数据科学集群可能需要几十分钟,但使用 Kubernetes 可以在几秒钟内完成。

能够快速改变任务减少了空闲周期,从而提高了集群的吞吐量和生产率。随着计算资源变得更加强大和密集,这对于最大化数据中心的价值至关重要。

英伟达意识到了 Docker 和 Kubernetes 的重要性,很早就投资了这个社区。这项投资使得 NVIDIA GPUs 成为 Kubernetes 的一流资源。软件可以访问数据中心的所有功能和硬件加速,从而最大限度地提高企业在数据科学方面的投资。

加速软件

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

RAPIDS 是一套完全在 GPU 上执行数据科学管道的开源软件库和 API,可以将培训时间从几天减少到几分钟。RAPIDS 基于 NVIDIA CUDA-X AI 构建,凝聚了图形、机器学习、深度学习、HPC 等领域多年的开发成果。

通过隐藏数据中心架构中使用 GPU 甚至幕后通信协议的复杂性,RAPIDS 创建了一种简单的方法来完成数据科学。随着越来越多的数据科学家使用 Python 和其他高级语言,在不改变代码的情况下提供加速对于快速缩短开发时间至关重要。

另一种加速开发的方式是集成到领先的数据科学框架,如 Apache Spark、 DaskNumba ,以及众多深度学习框架,如 PyTorchChainerApache MxNet 。通过这样做,RAPIDS 为新的加速数据科学生态系统奠定了基础。

作为 Apache 2.0 开源软件,RAPIDS 不仅在 GPU 上整合了这个生态系统,还降低了新库的准入门槛。越来越多的产品建立在 RAPIDS 之上——例如, BlazingSQL ,一个 SQL 引擎(最近完全开源了)——为用户增加了更多加速功能。

RAPIDS 允许新一波应用程序具有本机集成、Kubernetes 支持、RDMA 功能和跨无数数据格式的 GPUDirect 存储,而无需投资多年的开发。更多的软件让数据科学家更容易做他们想做的事情:用数据解决具有挑战性的问题。将这些优势与人工智能数据中心的其他方面结合起来,可以让您不受性能限制地处理数据科学。

英伟达 GPU 在行动

无论行业或用例如何,当将机器学习付诸行动时,许多数据科学问题都可以分解为类似的步骤:迭代地预处理数据以构建特征,用不同的参数训练模型,并评估模型以确保性能转化为有价值的结果。

RAPIDS 有助于加速所有这些步骤,同时最大限度地提高用户的硬件投资。早期客户采用了需要几天甚至几周才能完成的完整数据管道,并在几分钟内完成。他们同时降低了成本并提高了模型的准确性,因为更多的迭代允许数据科学家探索更多的模型和参数组合,以及在更大的数据集上进行训练。

零售商正在改善他们的预测。金融公司能够更好地评估信用风险。广告技术公司正在提高预测点击率的能力。数据科学家通常能实现 1-2%的改进。这可能看起来微不足道,但它可以转化为数千万或数亿美元的收入和利润。

帮助塑造未来

NVIDIA 致力于简化、统一和加速数据科学社区。通过优化从硬件到软件的整个堆栈,以及消除瓶颈,NVIDIA 正在帮助各地的数据科学家以更少的资源做更多的事情。这转化为企业最宝贵资源的更多价值:他们的数据和数据科学家。

但是,我们并不是孤军奋战。搭建跨越数据科学社区的桥梁,加速每个人的发展。成为社区的一部分。开始使用加速库,让我们知道接下来会有什么特性,并且申请加入我们的顾问联盟

NVIDIA 正在构建未来的数据科学平台,我们希望您成为其中的一员。

“数据科学生命周期”

原文:https://towardsdatascience.com/life-cycle-of-a-data-science-project-2973578b2f74?source=collection_archive---------16-----------------------

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

你好,朋友们,

希望你像往常一样做得很好,首先我祝你有美好的一天!

它的我 萨纳特 ,回到我的第二篇博客关于任何数据科学项目背后最基本和最重要的想法之一——数据科学生命周期

正如我们所知,在过去几年中,“数据科学”这个词引起了巨大的轰动,许多不同领域的工作人员开始转向这个不断发展的领域,因为我们可以看到有很多数据科学爱好者。因为我是他们中的一员,现在成功转型了,所以我敢保证,要成为一名更好的数据科学家,这真的是一个比你想象的更大、更具挑战性的旅程。与此同时,这将是充满乐趣的一个;) .这个博客对于有抱负的候选人来说是一个有用的工具,可以让他们按照公司的要求来培养自己。

拥有更强大的基础将是这个领域所需要的最好的品质,因为每天都有大量的新研究在进行,你需要睁大你的眼睛和耳朵来协同进化。网上有各种各样的资源可以提高成为数据科学家所需的编程和数学技能。除了这些技能, 如果你对数据科学项目将会如何以及数据科学家在项目的不同阶段会有哪些不同的职责有一个清晰的想法,那将会非常有益。 如果我让你足够好奇的话,是时候去看看下面的博客中“数据科学生命周期”的几个步骤了。

许多有抱负的数据科学家的问题是,他们认为机器学习和数据科学都是关于花哨的建模,但如果我说,虽然建模是一个重要的部分,但在将数据扔进你选择的算法之前,数据科学家需要参与许多肮脏的工作,会怎么样呢?坦率地说,你的工作中只有 15%到 20%会成为模特,你迟早需要像我一样接受这个事实

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

数据科学生命周期中的步骤

  1. 业务需求/理解。
  2. 数据收集。
  3. 数据清理。
  4. 探索性数据分析。
  5. 建模。
  6. 绩效评估。
  7. 与利益相关者沟通。
  8. 部署。
  9. 真实世界测试。
  10. 商业买入
  11. 运营和优化。

这并不是一个到处都要遵循的固定框架,但是上面阐述的步骤将适用于大多数数据科学项目。

业务需求/理解

第一步也是最重要的一步是对我们将要解决的数据科学用例以及我们将如何处理它有一个公平的业务理解。在此阶段,我们将决定我们想要解决的业务 KPI(关键绩效指标)到底是什么,并制定要优化的等效机器学习 KPI。在这个阶段,我们需要确保对领域知识有一个公平的领域理解。因为领域知识给了我们一个更好的想法,让我们在以后的阶段进行特性工程黑客攻击。当你在一个你不知道的新领域做一个项目时,建议在前进之前联系一些领域专家,至少获得一些基本的理解。这一阶段为数据科学项目中的其余步骤提供了启动,因此要清楚您将进一步工作的用例是什么,并且在每个阶段,问自己您正在做的工作是否为提议的用例增加了任何价值。

数据收集

这一阶段涉及数据工程知识,其中将使用多种工具从多个来源导入数据,从本地系统中的简单 CSV 文件到数据仓库中的大型 DB。公平/合理地理解 ETL 管道和查询语言将有助于管理这个过程。在某些情况下,数据集不容易获得,我们将使用基于 API 或基于 web 抓取的方法来获取数据。在 Python 中,我们有一个很棒的库,叫做 beautifulsoup,可以轻松地从网站上抓取数据,但是有些网站不允许你抓取他们的网站,在这种情况下,当你试图这样做时,你可能会遇到麻烦。总是研究网页,只有在法律允许的情况下才刮去它。

数据清理

这是 datascience 项目中最麻烦的部分(可能在少数情况下),需要大量的时间,也是最关键的部分,这时您的编码技能就发挥作用了。我们实时获得的数据并不容易通过模型,在前进之前可能需要采取许多预备步骤。这一阶段需要确保的几个常见步骤包括:处理缺失数据、处理异常值、处理分类数据、删除停用词、特征化少数 NLP 任务的文本数据以及特征化音频或图像等。我们在最初步骤中获得的领域知识可以指导我们估算缺失值和去除异常值等。有人说,模型不需要你拥有的所有数据,它只需要有用和必要的部分,它可以从中学习,这强调了不是用我们拥有的全部数据填充模型,而是清理它,并以适当的方式发送它,以最大化吞吐量。

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

探索性数据分析

探索数据的真正工作开始的部分,在这个阶段,我们将做一些统计测试和可视化技术,以了解关于底层数据的更多细节/模式。我们观察的细节可能像检查每个不同变量/特征的潜在分布,检查类不平衡(如果有的话),做一些假设检验等。你可能想知道为什么需要所有这些细节,但是这些细节给了我们关于哪些类型的算法可以工作,哪些不能工作的第一层次的洞察力。例如,在像 Log 这样的高维数据线性模型中。回归,SVM 往往工作良好,而在很少的维度,基于树的模型有更好的预测性,可以分析我们的数据中的复杂趋势。这一步有助于我们从手头的各种模型中排除不需要的模型。我们还可以看到像 PCA、tSNE 这样的降维是否能帮助我们提高性能,以及数据的可分性等。有时数据清理也会在 EDA 之后进行,这完全取决于手头的问题。

如果你想有一个关于数据可视化的详细指南,请参考我以前详尽的博客。-> 链接

以上 4 个步骤是最重要的,一些初学者往往会忽略这些步骤,而不知道这些步骤的重要性。

系统模型化

接下来是我们大多数人都非常热衷的部分。在这一部分,您将选择算法,并向它们提供从上述步骤中准备的数据。建模方法包括模型构建和超参数调整,这是使建模阶段富有成效的关键。标准方法是选择一个基准模型,并在基准模型的规模上比较不同模型的性能,以选择最佳模型。我们可以使用 H20 的 AutoML 特性,在非常短的初始运行时间间隔内选择我们的初始基线模型集。

在构建模型时,请始终牢记所有的业务约束,如延迟、模型的可解释性、使用校准(如果我们要使用概率输出或日志损失作为我们的度量标准)等。总是试图让模型尽可能简单。从工业角度来看,当我们可以使用逻辑回归以 90%的准确度对点进行分类时,如果像神经网络这样的复杂模型能够提供大约 91%的轻微性能改善,则没有必要使用它们。这在像 kaggle 这样的竞争环境中完全不同,在那里性能比复杂性和可解释性更重要。通常情况下,你需要等很长时间来训练模型,下面的迷因清楚地说明了这一点。

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

性能赋值

下一步是评估我们模型的优劣,在这里,我们将根据我们的 KPI 比较不同模型的性能,并确保我们的最终模型满足所有业务约束。我们将看到混淆矩阵,分类报告等,并决定我们是否可以继续下去,或者有任何更多的微调需要我们的最终模型。

对于竞争环境,循环在这里停止,有时步骤 5 和 6 可以迭代地完成,以提出一个健壮的模型。对于业务用例,我们还需要完成几个步骤。

与利益相关者沟通

在这个阶段之前,球会在数据科学家的球场上,从现在开始,是时候将它来回发送到业务部门进行验证了。最终模型和所有见解将与项目干系人进行沟通。他们将验证我们的模型在各种极限情况下的表现,并确认他们的检查。数据科学家的最佳品质不仅仅是完成上述步骤,而是让利益相关者相信新的模型将为他们提供优于现有方法的优势。

部署

一旦我们得到了利益相关者的许可,就该将我们的模型投入生产了。这可能需要几个团队的合作,比如数据科学家、数据工程、软件开发人员等等,这取决于架构的本质和我们要解决的问题。有时,由于延迟问题,我们获得的模型参数会用 C/C++之类的语言写回,这种语言的执行速度比 python 快。整个团队还需要确保与其他相互依赖的应用程序没有任何冲突。

真实世界测试

该模型现在将在真实的生产环境中进行测试,以查看其有效性。到目前为止,所有的努力都将在这个阶段被见证,如果值得的话。有像 A/B 测试、AAB 测试这样的技术,可以帮助我们在真实世界的数据上获得模型的 KPI。这将是我们模型的最终验证,如果 KPI 和所有其他业务约束都得到很好的控制,我们就很好。如果没有,我们需要回去找到哪里出了问题,并再次遍历循环。

业务买入

一旦所有这些步骤都完成了,我们就到达了这个阶段,那么是时候“拍拍自己的背”了,这个项目是成功的,作为一名数据科学家,你已经做出了一些最终可以帮助别人的东西。这是我们项目的最后一个检查点步骤,从这里核心开发工作结束,支持和维护在即将到来的阶段开始。

运营和优化

数据科学家的工作不仅止于此,他们还需要一个监控或仪表板设置来持续/定期监控 KPI。从数据的角度来看,在许多情况下,今天构建的模型现在可能是好的,但是性能可能会缓慢下降,或者性能可能会立即下降。原因可能是动态变化的数据,甚至是数据的底层分布发生了变化。那么是时候重新训练我们的模型了。当我们积累了更多的新数据时,我们也可以随时随地重新训练我们的模型,但是只有在性能下降时才重新训练是更好的选择。与初始部署相比,再培训阶段可能没有这种开销。

万岁!!!到此为止,现在你可能已经对数据科学家的工作方式以及他在整个项目过程中需要担当的不同角色有了大致的了解。您可能是其中任何一个步骤的专家,但要使数据科学周期平稳运行,需要对所有部分都有很好的了解。

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

谢谢你一直读到最后,我一如既往地欢迎你的所有评论/反馈。如果你一直读到这个阶段,我可以肯定地假设你非常渴望成为一名数据科学家,为什么我们不能专业地交流,因为我们都将同舟共济;)

联动于:【www.linkedin.com/in/sanatmpa

电子邮件 ID:smartersanat@gmail.com

特别感谢来自 AppliedAICourse.com 的导师 Srikanth Varma,他是我进入这一领域的关键人物,他教会了我从基础到行业广泛使用的一切。甚至这个博客的灵感也来自于他的一个视频。

所附的迷因归功于谷歌图片搜索。

数据科学项目的生命周期

原文:https://towardsdatascience.com/life-cycle-of-a-data-science-project-3962b9670e5b?source=collection_archive---------12-----------------------

解决现实世界数据科学问题的主要步骤

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

Photo by Estée Janssens on Unsplash

自数据科学这个术语在 90 年代被创造出来以来,它已经成熟了很多。该领域的专家在解决数据科学问题时遵循一种固定的结构。现在开展数据科学项目几乎就是一个算法。

太多时候都有一种绕过方法论直接解决问题的诱惑。然而,这样做,由于没有为整个努力打下坚实的基础,阻碍了我们最好的意图。然而,遵循这些步骤往往会让我们更接近我们试图解决的问题。

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

The Flow of a Data Science Project

1)问正确的问题,即业务理解

尽管在过去十年中,数据访问和计算能力都有了巨大的增长,但一个组织的成功在很大程度上仍然取决于他们对数据集提出的问题的质量。收集的数据量和分配的计算能力并不是一个区分因素。

IBM 数据科学家 John B. Rollins 将这一步称为业务理解。例如,谷歌在开始时会问“什么构成相关搜索结果”。随着谷歌作为搜索引擎业务的发展,它开始展示广告。那么正确的问题应该是“哪些广告与用户相关”。一些其他成功企业过去曾问过其数据科学团队的正确问题

  • 亚马逊—在不景气时期,他们可以出租多少计算(EC2)和存储(S3)空间?
  • 优步——司机实际开车的时间占多大比例?他们的收入有多稳定?
  • Oyo 酒店——普通酒店的平均入住率是多少?
  • 阿里巴巴——我们仓库的每平方英尺利润是多少?

在我们开始数据科学之旅之前,所有这些问题都是必要的第一步。问完正确的问题后,我们继续收集数据

2)数据收集

如果问正确的问题是的秘诀,那么数据就是你的要素。一旦你对业务有了清晰的理解,数据收集就变成了将问题分解成更小的部分。

数据科学家需要知道需要哪些成分,如何获取和收集这些成分,以及如何准备数据以达到预期的结果。

例如,对于亚马逊,所需的数据类型将是

  • 精简期间空闲的计算服务器数量
  • 在不景气时期闲置的存储服务器数量
  • 维护这些机器所花的钱
  • 鉴于上述数据,亚马逊可以很容易地理解他们可以利用多少。事实上,当亚马逊回答这些问题时,贝佐斯很高兴地知道这是一个非常迫切的需求。这导致了 AWS 的出现。

如何寻找和收集 亚马逊的工程师们负责维护服务器运行的日志。进行了市场调查,以了解有多少人将从按使用付费服务器中受益,只有这样他们才继续前进。

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

xkcd

3)数据准备

现在我们已经收集了一些数据。在这一步中,我们了解更多关于数据的信息,并且进一步分析做准备。数据科学方法论的数据理解部分回答了这个问题:您收集的数据是否代表了要解决的问题?

比方说,优步想了解人们是否会选择为他们开车。为此,比方说,他们收集了以下数据

  1. 他们目前的收入
  2. 出租车公司对他们收费的百分比降低了
  3. 他们乘坐的次数
  4. 他们闲置的时间
  5. 燃料成本

虽然 1-4 有助于他们更多地了解司机,但第 5 条并没有真正解释司机的任何事情。燃料成本确实影响了优步的整体模式,但并没有真正帮助他们回答他们最初的问题。

为了理解数据,很多人看数据统计,如平均值、中位数等。人们还绘制数据,并通过直方图、频谱分析、人口分布等图来查看其分布。

一旦我们对数据有了更好的理解,我们就为进一步的分析做准备。准备工作通常包括以下步骤。

  1. 处理缺失数据
  2. 修正无效值
  3. 删除重复
  4. 将数据结构化后送入算法
  5. 特征工程

数据准备类似于清洗蔬菜以去除表面化学物质。数据收集、数据理解和数据准备 占整个项目时间的 70%-90%

这也是如果你觉得数据不合适或不足以让你继续,你回到数据收集步骤。

一旦准备好并清理了数据,我们就进入任何数据科学项目的核心——建模

4)数据建模

建模是数据科学方法中的一个阶段,在这个阶段,数据科学家有机会品尝调味汁,并确定它是否正点或需要更多调料

建模用于发现数据中的模式或行为。这些模式或者以两种方式帮助我们——1)描述性建模例如推荐系统也就是说,如果一个人喜欢电影《黑客帝国》,他们也会喜欢电影《盗梦空间》;或者 2) 预测性建模,它涉及到对未来趋势的预测,例如线性回归,我们可能想要预测股票交易值

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

xkcd

在机器学习世界中,建模分为 3 个不同的阶段——训练、验证和测试。如果学习模式是无人监督的,这些阶段就会改变。

无论如何,一旦我们建立了数据模型,我们就可以从中获得洞见。这是我们最终可以开始评估我们完整的数据科学系统的阶段。

建模的结束是由模型评估来表征的

  1. 准确性—模型的表现如何,即它是否准确地描述了数据。
  2. 相关性——它是否回答了你想要回答的原始问题

5)部署和迭代

最后,所有数据科学项目都必须部署在现实世界中。部署可以通过 Android 或 iOS 应用程序,就像 cred 一样,也可以通过 web 应用程序,比如moneycontrol.com或者作为企业软件,比如 IBM Watson

无论您的数据模型以何种形式部署,它都必须向现实世界公开。一旦真正的人类使用它,你一定会得到反馈。对任何项目来说,获取这些反馈都直接关系到生死。您获得的反馈越准确,您对模型所做的更改就越有效,您的最终结果也就越准确。在这一点上,典型的组织记录这个流程,并雇佣工程师来不断迭代整个流程。

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

Real World Deployment

数据科学项目是一个迭代过程。您不断重复不同的步骤,直到您能够根据您的具体情况对方法进行微调。因此,您将同时进行上述大部分步骤。 PythonR 是数据科学使用最多的语言。数据科学是一个兔子洞。祝你玩得开心!

来自数据科学的生活经验

原文:https://towardsdatascience.com/life-lessons-from-data-science-a59119e130d6?source=collection_archive---------20-----------------------

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

过去的几个月对我来说是当头一棒。在搬到柏林之前,我已经想好了一切。我把这个学期的计划细化到每天几点起床,去哪所舞蹈学校,读什么书。(是的,其中涉及到一个 Excel 电子表格。)每件事都有预算和时间段;一切都说得通了。直到它没有。

入住两个月后,我发现自己迷失了方向,对日常生活完全不满意。夹在统计课、没完没了的作业和每天寻找意义和动力的努力之间,内心似乎打开了一个洞,提醒我,我以为我知道的“过最好的生活”的一切都不起作用。

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

然后,就像你注意时经常发生的那样,洞察力开始从似乎在折磨我的源头出现。当我在计算科学课程中导航时——最后一刻改变专业,这被证明不是一个玩笑——我突然意识到数据科学的原则对我们的日常生活是多么适用。我发现统计数据和个人成长都有三点是正确的:

  1. 你是你最丰富的数据集。
  2. 说到底,是系统的问题,不是细节的问题。
  3. 个人成长,就像数据科学一样,最好由好奇心驱动。

你是你最丰富的数据集。理解它并从中学习。

现实世界是一个巨大的反馈机制。最有才华的创新者和博学的未来学家是那些看到整体并理解人类历史的人,这是巧合吗?“了解你自己”是良好的数据科学和真正的个人成长的核心。我们过去的经历、情感模式、欲望和厌恶是一个不断被挖掘和更新的巨大数据仓库。随着我们的成长,我们开发了一个复杂的模型,将这些数据作为输入,并将信念、叙述和期望作为输出。但这种模式可能会崩溃,而且经常如此。预测与观察不符,所以我们对这个世界有一种挫败感。我们发现自己陷入了困境,因为我们的模型缺乏从自身错误中学习的能力。我们不断输入相同的数据,期待新的结果。不是有人说精神错乱的定义就是一遍又一遍的做着同样的事情,期待着不一样的结果吗?

在数据科学中,你知道你预测未来的能力取决于你对过去的解释。一个好的模型总是以敏锐的精确度整合历史数据。问题是并非所有的数据都是相关的。有点像这几天看新闻;知道发生了什么很重要,但十有八九,“发生”的是一种嘈杂的干扰,与真实的事态没有多大关系。

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

这个原则可能很难接受。人们可能会在生活中伤害自己,因为他们强化了很久以前建立在一些负面经验基础上的叙事。过度使用一个模型会产生一个强化的反馈循环,使得随着时间的推移更难改变。我从小就被告知(含蓄地)聪明的人获得科学学位,其他的都是肤浅的和浪费时间的。我花了一年时间学习痛苦的物理课程,只是为了取悦我内心的那个声音,那个声音说如果我不这样做,我就会是一个失败者。这种心态继续以微妙的方式限制着我,我知道我还有很多事情要做。

如果你的生活是一个统计模型,它会是什么样子?哪些变量比其他变量更重要,为什么?面对新信息时,模型表现如何?如果它不再为你服务,它还能适应吗?

归根结底,这是关于系统,而不是细节。

有一种东西叫做过度合身。过于完美地提炼每一课,同等关注地审视每一次经历,你的模型很快就会崩溃。我们不仅仅是我们各部分的总和,过度分析一个人自身存在的每一个方面——正如柏拉图所说,“在关节处雕刻自然”——并不会让我们更好地生活,并真正地享受那种存在。一个优秀的数据科学家知道,最好的模型总是为随机性、偶然性和同步性留有余地。在生活中,我们称之为神秘、美丽、奇迹。

前几天,一个朋友透露他的生活准则是“不要设定目标”。创建系统。”我们中的许多人从小就被教导要追求远大的目标,用一生去追逐里程碑,证明自己的价值,核对清单上的项目。这种努力的回报是认可、名誉和成功。但是,如果没有一种甜蜜、宁静的满足感,目标又是什么呢?这就是自我提升模式失去效力的地方,也是我朋友的方法如此吸引人的地方。

如果我们少关注细节,多关注大局会怎么样?如果我们的日常活动不是基于需要做什么,而是基于我们想要如何生活会怎样?任务将变得不那么受时间和成就的限制,而更倾向于它们给我们和他人带来的感受;他们挑战我们的部分和他们允许我们活出的价值。例如,我的朋友辞去了他朝九晚五的工作,以便有更多的时间陪伴他的儿子。他是一名自由职业的法律顾问,按照社会标准,他现在一天中的大部分时间都毫无建树。当其他人在写电子邮件和签署协议时,他可能正在擦拭刚刚滑下儿子脸颊的大块食物。当他工作时,他创造性地、精力充沛地工作,边喝咖啡边头脑风暴,举办法律研讨会,帮助企业家驾驭错综复杂的业务。他的套路很灵活。他是一个善于思考和与人交往的人,他已经找到了将自己的职业生活融入一个更大体系的方法,这个体系构成了他真正想要的生活。不是每天都是完美的。有时最后期限无法满足。但是每天,他都在调整系统,让他做他最擅长的事情,并变得更好。在他的模型中,做一个创新的法律顾问和做一个父亲一样重要。

数据科学和生活本质上都是经验性的,我们无法通过完善代码行或分分秒秒地分配时间来掌握它们。我们通过观察、参与和学习来掌握它们,然后创建一个反映我们最重视的东西的系统。

个人成长,就像数据科学一样,最好由好奇心驱动。

你可能听说过“p-hacking”这个术语。这是当研究人员有意或无意地操纵他们的方法来产生一个期望的 p 值时发生的事情——这个成败的统计数字告诉你在现实生活中获得与控制测试相同结果的概率。p 值显示了统计意义,这是数学家问“我应该多认真地对待这些结果?”

当数据科学家 p-hack 时,他们已经不再试图证明一个假设。相反,他们正在收集证据来支持他们已经相信或希望别人相信的东西。我们在自己的生活中一直是这种偏见的受害者*。当我们的模型崩溃时,我们继续期待从相同的输入中得到不同的结果,我们告诉自己没关系。我们会想办法从积极的角度看待证据。我们不是问题所在,其他人才是。我们观察到的任何差异都是微不足道的。我们通过“证明”相同的旧假设来愚弄自己,不断收集有利于我们当前思维模式的证据,并拒绝任何表明有改进空间的东西。*

这种想法很可怕,但如果对实验设计进行适当的调整,即使是最严谨的数据分析师也可以声称找到了不存在的模式,或者推翻了明显存在的模式。探索性数据分析的目标是发现和理解这些有趣的模式。但与 p-hacking 不同,它要求在数据发现过程中,我们不要在头脑中操纵我们看到的内容。方法纯粹是好奇。

我已经成为树立里程碑的牺牲品,这些里程碑不会挑战我的思维方式。追求个人成长和追求个人满足之间有很大的区别。我们不喜欢承认一个有时与另一个相矛盾。

那又怎么样呢?

数据科学教会了我少花时间制定计划,多花时间思考。系统的方法让我更容易更新我的信念,寻求和回应反馈,并确定我自己的模型中需要重新设计的部分。

我的结论是:没有“一刀切”。尝试完美之前先做实验。把自己当成一个优雅的统计模型,善于整合细微的反馈,消除噪音,适应复杂的环境。通过从你的错误中学习,并接受他人的意见,为你的基础建立弹性。把你的注意力从“什么时候?”以及“怎么做?”到“为什么?”,然后观察各个部分开始组合在一起。你的生活与其说是目标的线性结果,不如说是综合系统的一个突现属性。

作为一名数据科学家,最令人满意的事情之一是能够使用新开发的技能来揭示现实生活。我花了太长时间寻找“新的有趣的应用程序”,而最明显的一个却一直盯着我。

部署后模型的生命周期

原文:https://towardsdatascience.com/life-of-a-model-after-deployment-bae52eb83b75?source=collection_archive---------24-----------------------

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

Example dashboard used to monitor models — Stakion

应用程序监控是在生产中运行软件的关键部分。没有它,找到问题的唯一方法是通过运气或者因为客户报告了它。至少可以说这两者都不太理想!

你不会在没有监控的情况下部署应用程序,那么为什么要为机器学习模型部署呢?

为了尽量保持帖子的可管理长度,我们将只关注几个关键主题:

  • 监控所需的数据
  • 要跟踪和提醒的关键指标
  • 训练和推理分布之间的相似性度量

监控所需的数据

为了准确地监控机器学习模型,在进行预测时需要记录粒度数据。这些日志可用于调试为什么做出某个预测,一旦汇总,将使我们能够监控模型。

良好测井的关键部分:

  • 由调用 ML 模型的系统提供的每个请求的唯一 Id。这个唯一标识符将与每个日志一起存储,并允许我们在 ML 模型之前、期间和之后跟踪预测的路径。
  • 在特征工程之前输入特征
  • 输入特征工程后的特征
  • 输出概率
  • 预测值

虽然这看起来像是大量的日志记录,但是如果没有它,我们将看不到模型是如何处理某些输入的。

要跟踪的关键指标

在最好的情况下,我们会近乎实时地将地面实况标签与我们的预测进行比较。不幸的是,这通常是不可能的,因为对于大多数应用程序来说,基本事实标签直到做出预测后很长时间才可用。例如,当试图预测下一年的收入或预测交易是否欺诈时,就是这种情况。

如果无法实时追踪模型的准确性,请改为追踪输入和输出要素的分布。

监视模型功能背后的假设是,当要求模型对不属于定型集的新数据进行预测时,模型的性能将会改变。

我们可以通过跟踪一些指标来很好地了解模型的健康状况:

  • 预测次数
  • 预测延迟—进行预测需要多长时间
  • 输入和输出特征分布的变化

在特征级别,我们将想要跟踪在训练期间计算的分布(训练分布)和在推理期间计算的分布(推理分布)之间的相似性度量。

训练和推理分布之间的相似性度量

为了监控一个特性,我们需要计算一个度量来比较训练和推理分布。有许多不同的相似性分布可供选择,但很少能同时适用于分类变量和数值变量。

计算相似性度量

Wasserstein 距离[1]是一种相似性度量,可以针对数字和分类特征进行计算,其定义为:

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

Wasserstein distance with U as the training CDF and V the inference CDF

从图形上看,Wasserstein 距离是两个累积分布函数之间的面积。因此,如果训练和推理分布是相同的,那么它将是 0。当它们开始发散时,距离会增加,并且没有上限。

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

Graphical representation of the Wasserstein distance.

要计算分类变量的 Wasserstein 距离,您必须对每个类别的频率差异的绝对值求和。

存储分布

为了计算 Wasserstein 距离,我们需要存储连续分布和离散分布。

连续分布可以用 t-Digests 来表示[2]。不涉及细节,t-Digests 是一种新的数据结构,它存储 CDF 的稀疏版本,并具有许多属性(容易序列化、并行化等)。

离散分布更容易存储,我们只需要存储类别和它们各自的频率。如果类别总数很高,那么我们可以只存储前 1000 个。

可视化离散分布可能很棘手,我们可以做的一件事是将类别分组到桶中,每个桶至少包含 x %的数据(见下文)。鉴于这是在训练数据上完成的,我们预计每个桶的大小在推断过程中会略有波动。

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

Bucketing categories into buckets of frequency of 10%.

结论

通过一点规划,监控机器学习模型并不复杂。

监控模型归结为跟踪预测的数量以及训练和推理分布之间的相似性度量。如果你已经准备好了,你就可以高枕无忧了,如果出了问题,你会是第一个知道的人!

参考文献:

[1]瓦瑟斯坦米制,【https://en.wikipedia.org/wiki/Wasserstein_metric】T4

[2]使用 t-Digests 计算极其精确的分位数,https://arxiv.org/abs/1902.04023

生活方式、日常活动和网络虐待:有联系吗?

原文:https://towardsdatascience.com/lifestyles-activities-and-cyber-abuse-is-there-a-link-d757c835bb7a?source=collection_archive---------27-----------------------

使用 AutoStat 和贝叶斯变量选择对网络滥用的探索性分析。

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

Credit: Dragana Gordic / Freepik.com

介绍

互联网的出现带来了改进的通信、商业机会、科学和技术的进步。它也为犯罪创造了新的机会、新的犯罪方法和更多的潜在受害者。其中一种犯罪是网络虐待,这是一个总称,指的是利用技术进行的跟踪和骚扰。

虽然一些研究人员认为网络虐待只是旧的传统人际暴力形式(如跟踪和骚扰)的延伸,但很明显,技术影响着犯罪的实施、经历以及随后可以预防的方式。

对跟踪和骚扰机制的研究相当广泛,许多犯罪学理论被用来解释其原因。然而,新技术形式的滥用的因果机制尚未得到充分理解。同样不清楚的是,考虑到“地面”犯罪形式而发展起来的传统理论是否有助于解释这些新的犯罪形式。

在本文中,我们关注生活方式-日常活动理论,该理论解释了为什么一些人比其他人更容易经历犯罪(Cohen 等人,1981)。从这个角度来看,犯罪被视为在缺乏有能力的监护人的情况下,有动机的罪犯在时间和空间上与合适的目标汇合的产物(Cohen 和 Felson,1979 年)。

该理论认为,我们的生活方式和日常活动是犯罪受害风险的重要预测因素,因为它们决定了与罪犯接触的可能性。那些生活方式和日常活动更有可能导致与潜在罪犯接触的人更有可能成为受害者。

根据这一理论,犯罪受害的风险是概括的,可以通过衡量个人的以下方面来评估:a)风险暴露程度,b)与潜在罪犯的接近程度,c)目标吸引力(以经济或象征价值的形式,并被视为易受伤害),以及最后,个人周围环境中是否存在潜在监护人(如被动旁观者或积极干预者)。

在本文中,我们的目的是检验危险的生活方式和日常活动与网络虐待受害之间的关系的本质。

数据和方法

为了提高我们对网络虐待受害机制的理解,我们使用在线调查(N = 1463)调查了亚马逊的机械土耳其人的成年成员,然后使用在 AutoStat 中实现的随机搜索算法使用贝叶斯变量选择进行逻辑回归分析数据。

为了评估活动类型对成为网络虐待受害者的可能性的影响,我们测量了受访者参与潜在风险日常在线活动的程度,以及他们与各种社会联系人群体(如家人、朋友、在线游戏联系人等)的人际关系的强度。).在这里,我们测量了以前的研究中显示的影响一个人的风险暴露、与罪犯的接近程度、目标吸引力以及有能力的监护人的存在与否的活动,因此与个人受害风险的增加相关联 Vakhitova 等人(2019)。

表 1 显示了我们在此分析的样本的汇总统计数据。

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

将数据可视化

表 1 中的汇总统计数据似乎表明,我们关注的两个亚组(受害者和非受害者)在参与危险活动的程度上存在一些差异。为了帮助可视化这一趋势,我们使用箱线图和密度图比较了受害者和非受害者的在线生活方式和日常活动。图 1 展示了在线志愿服务(例如,作为在线论坛版主)和经历网络虐待受害者之间关系的密度和箱线图。这些数字表明,受害者(橙色分布)比非受害者(蓝色分布)更倾向于在线志愿服务。事实上,只有少数非受害者报告积极参与网上志愿服务。

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

Figure 1: Volunteering online and cyber abuse victimisation: Density plot on the left and boxplot on the right

然而,这种趋势并不一致,例如,对受害者和非受害者在线收入的比较表明,受害者和非受害者在线收入的可能性相似,这表明在线收入可能不是网络虐待受害的重要预测因素(见图 2)。

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

Figure 2: Earning income online and cyber abuse victimisation: density plot on the left and boxplot on the right.

要在 AutoStat 中生成分布图,选择选项卡可视化,选择您希望生成的图的类型,并将您希望绘制的变量移动到适当的框中(将您的分类变量移动到 子组 框中,将您的连续变量移动到 框中)(参见图 3)。

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

Figure 3: Generating density distribution plots in AutoStat®. Figure 6: Choice of plotting options in AutoStat®.

为什么在 AutoStat 中选择贝叶斯变量?

如前所述,双变量关系的汇总统计和可视化表明,受害者更有可能参与危险的在线活动,同时,不太可能与大多数人际关系积极交往(与前浪漫伙伴的关系和在线游戏连接除外)。

为了估计生活方式和日常活动相关变量以及社会人口统计控制的综合影响,我们现在将使用 AutoStat 中实施的贝叶斯变量选择逻辑回归对网络虐待受害进行建模。

在决定建模方法时,我们考虑了研究的探索性;在选择模型中包含的变量时,明显缺乏理论指导;以及先前研究中确定的社会科学研究背景下变量选择的统计方法的益处(Vakhitova 和 Alston-Knox,2018;Vakhitova 等人,2019 年)。在缺乏关于模型规范的明确理论指导的情况下,在建模过程时采用贝叶斯变量选择不仅允许考虑参数不确定性,还允许考虑模型不确定性,以及解决过拟合的问题。

我们使用 AutoStat 进行此分析,因为它提供了一个简单、用户友好的界面,以及一种进行类似分析的简单方法。在 R 编程环境中也有许多用于执行贝叶斯变量选择的统计包,例如,Raftery (1995)和 Raftery 等人(2016)或 Clyde 等人(2016)。虽然这些算法中的每一个都略有不同,但它们的意图是统一的,并且从模型中得出的推论也有类似的解释。

在这种分析中,随机搜索算法用于确定最可能的模型的解释能力。 AutoStat 允许使用多个不同的先验估计最可能的模型。在这项研究中,我们采用 G-先验尖峰厚片来实现变量选择。

如 G 先验尖峰厚片示意图所示,先验有两种状态(见图 4)。在系数被包括在模型中的 MCMC 迭代期间(如随机搜索算法所示),在该后验样本抽取中使用的先验将是 G 先验,表示为“slab”。类似地,对于当随机搜索不包括系数时的迭代,在后验抽取中使用的先验是零(0)处的点质量,由“尖峰”指示,导致系数的后验抽取正好是零(0):

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

Figure 4: Spike-Slab Algorithm Schema

我们的β参数的 g 先验(板坯)由: 给出

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

随着 g 的增加,先验变得更集中在零(0)附近,并在后验分布规范中扮演更活跃的角色。在本例中,我们将 g 设置为等于样本大小(AutoStat 中的默认值)。

有关变量选择的随机搜索算法和 g-prior 规范的更多信息,请参见 Marin 和 Robert (2014)。

AutoStat 模型生成器:操作指南

以下是如何使用 AutoStat 的模型构建器功能,通过随机搜索算法执行贝叶斯变量选择分析的操作指南。

AutoStat 中使用贝叶斯变量选择进行逻辑回归,选择 Model Builder 选项卡。选择您正在分析的数据集,并将其移动到训练数据框。然后选择因变量并将其移动到预测变量框,然后移动预测解释变量框。请注意,如果您有任何缺失值,您可以选择从分析中删除它们。

下一步是在屏幕的参数设置部分指定您的建模参数。您可以指定先验 g(在我们的例子中,等于删除所有缺失数据后的样本大小)、随机种子、迭代次数和 burnin(参见图 5)。

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

Figure 5: AutoStat® Model Builder. Drag and drop datasets; select model framework; specify variable(s) of interest, and select model parameters before analysing.

指定参数后,点击分析按钮,随机搜索的神奇就在你眼前发生了(图 6)!

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

Figure 6: AutoStat® Model Builder running the logistic regression model. On the right-hand side, Bayesian variable selection was specified with a G-prior spike slab estimator, with 10,000 iterations.

作为贝叶斯变量选择分析的一部分,AutoStat 生成许多不同的输出,包括五个最佳解释模型的摘要以及所有感兴趣系数的包含概率(图 7),所有感兴趣系数的均值、标准差和 HPD 区间的摘要(图 8),详细的变量重要性图(图 9)和许多诊断图(例如,参见图 10 和 11)。

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

Figure 7: Top five best models explaining cyber abuse victimisation as a function of routine activities.

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

Figure 8: Means, standard deviations and HPD intervals for all coefficients included in explanatory models.

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

Figure 9: Relative Variable Importances

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

Figure 10: Posterior distribution for participating in online gaming as an explanation of cyber abuse victimisation.

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

Figure 11: The visualisation of the spike-slab algorithm for participating in online gaming as an explanation of cyber abuse victimisation.

结果

表 2 总结了我们的分析结果。它显示使用我们的数据的最佳模型(模型 1)具有 0.23%的后验概率,包括 10 个预测值。第二个最好的模型(模型 2)有 9 个预测值,后验概率为 0.21%。请注意,模型的后验概率并没有告诉我们模型的预测能力。相反,它给了我们一个相对于所有其他可能模型的数字。因此,在我们的特定示例研究中,拥有许多潜在回归变量意味着大量潜在解释模型,这反过来意味着模型的相对后验概率较小。

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

Table 2: Logistic regression with variable selection predicting the risk of cyber abuse victimisation. Checkmarks denote coefficients included in the model.

最佳模型(模型 1)中包含的大多数变量也包含在所有五个最佳模型中,包含概率超过 50%。两个例外是与前浪漫伴侣的社交,包括在五分之四的最佳模式中,以及与体育联系人的社交,包括在五分之三的最佳模式中,入选概率约为 40%。

表 2 表明,使用我们的数据并控制社会人口特征、生活方式和日常活动似乎是网络虐待受害者的有用预测指标,其中一些指标比其他指标更有用。最佳解释模型(模型 1)表明,造成网络虐待受害风险的最重要因素包括参与在线志愿服务和与前浪漫伴侣交往形式的风险因素,以及可能积极干预网络虐待事件的人在场/不在场形式的保护因素,在线赚取收入,以及与家人、配偶和体育/社会联系人交往。

使用表 2 中的信息,我们估计那些生活中有监护人干预的人只有 17%可能遭受侵害,而那些在其直接环境中没有监护人干预的人有 83%可能遭受侵害;与家人、配偶和体育/社会委员会联系人的社交似乎也与减少经历网络虐待的可能性有关(分别为 27%、41%和 44%)。

然而,参与在线游戏、在线志愿活动和与前恋人交往会增加网络虐待受害者的风险(分别为 61%、66%和 65%)。网上赚钱似乎可以保护个人免受网络虐待(经历网络虐待的概率只有 38%)的发现令人困惑。那些在网上赚取收入的人的行为方式似乎与那些将互联网用于娱乐和交流目的的人不同,这只是为了保护他们免受伤害。

值得注意的是,在社会人口特征中,只有年龄是受害的有用预测因素(年轻人更有可能经历受害),而种族、就业和性别则不是。

讨论和结论

我们的发现表明,受害者的生活方式和日常活动可以为网络虐待受害机制提供有用的见解。话虽如此,一些生活方式和日常活动似乎比其他的影响更大。例如,我们发现,诸如在线志愿服务、在线收入、与前浪漫伴侣和体育/社交联系人进行社交等活动会增加网络虐待受害者的风险,而身边有人可以积极干预网络虐待事件,与家人和体育/社交联系人进行社交实际上会降低一个人成为网络虐待受害者的风险。

根据生活方式-日常活动理论,我们的最佳模型包括至少一个变量,该变量封装了来自所有四个风险方面的风险:暴露于风险、接近罪犯、目标吸引力和特别有能力的监护。

支持监护作为保护因素的证据特别有趣。我们的最佳模型包括四个衡量监护的变量——一个衡量在线监护(有人干预),三个衡量线下监护(积极与家人、配偶和体育/社会委员会联系)。看来监护就像网络空间本身一样没有边界;它的影响从地球世界到网络空间,然后再回来。

似乎也有一个主要由主要联系人(如家庭、配偶等)组成的活跃的社会网络。可以作为防止犯罪受害的保护因素。需要进一步的研究来更好地理解这种保护机制。

这项研究的另一个有趣的发现是,有人可以在网络虐待事件中代表你积极干预是网络虐待受害者的最佳解释(纳入概率为 100%),然而,有人目睹(被动)你被网络虐待并不是虐待的良好预测因素,纳入概率低于 40%。这一发现强调了监护在预防犯罪行动中的价值(Reynald,2010)。

传记

Zarina Vakhitova博士是莫纳什大学(澳洲墨尔本)社会科学学院的讲师,专门研究犯罪学和刑事司法。她的研究兴趣集中在应用环境犯罪学原理来理解和控制发生在网络空间的犯罪。Zarina 在谷歌学术的出版物清单在这里。

参考

克莱德,m .,利特曼,m .,王,q .,戈什,h. J .,,李,Y. (2016)。 BAS:贝叶斯模型平均的贝叶斯自适应采样。r 包版本 1.4.2。从 ftp://cran.r-project.org/pub/R/web/packages/BAS/BAS.pdf 取回

科恩,L. E .,&费尔森,M. (1979)。社会变化和犯罪率趋势:日常活动方法。《美国社会学评论》,第 44 期,588–608 页。

科恩,l .,克卢格尔,j .,,兰德,K. (1981)。社会不平等和掠夺性受害:一个正式理论的阐述和检验。《美国社会学评论》,46 期,505–524 页。

Marin 和 c . p . Robert(2014 年)。纽约 R . Bayesian essentials:Springer New York。

拉夫特里(1995 年)。社会研究中的贝叶斯模型选择。社会学方法论,25 ,111–163。

a .拉夫特里,Hoeting,j .沃林斯基,c .画家 I .,& Yeung,K. Y. (2016)。 BMA:贝叶斯模型平均。r 包版本 3.18.6。从 http://CRAN.R-project.org/package=BMA 取回

雷诺医学博士(2010 年)。监护人对监护:影响监护意愿、发现潜在犯罪者能力和干预意愿的因素。《犯罪和青少年犯罪研究杂志》,第 47 期,第 358-390 页。

Vakhitova,Z. I .,& Alston-Knox,C. L. (2018)。非显著 p 值?理解和更好地确定逻辑回归中效应和相互作用的重要性的策略。 PLoS ONE,13 (11)。DOI:https://DOI . org/10.1371/journal . pone . 0205076

瓦希托娃、Z. I .、阿尔斯通-诺克斯、C. L .、韦伯斯特、J. L .、雷诺德、D. M .、&汤斯利、M. K. (2019)。生活方式和日常活动:它们会导致不同类型的网络虐待吗?人类行为中的计算机,101 ,225–237 页。DOI:https://DOI . org/10.1016/j . CHB . 2019.07 .

神经类型转移的直观指南

原文:https://towardsdatascience.com/light-on-math-machine-learning-intuitive-guide-to-neural-style-transfer-ef88e46697ee?source=collection_archive---------5-----------------------

点亮数学机器学习

探索神经类型转移网络的设计选择和技术的直观指南

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

Courtesy of Pixabay.com

介绍

神经类型转移(NST)是一个非常好的想法。NST 建立在一个关键的理念上,

在计算机视觉任务(例如图像识别任务)期间学习的 CNN 中,可以分离风格表征和内容表征。

根据这一概念,NST 采用预训练的卷积神经网络(CNN)将风格从给定图像转移到另一个图像。这是通过定义试图最小化内容图像、风格图像和生成图像之间的差异的损失函数来实现的,这将在后面详细讨论。本教程结束时,你将能够创建非常酷的作品,如下所示。

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

本教程将在接下来的章节中介绍以下部分。

  • 为什么神经类型转移和高层架构
  • 加载 VGG 16 权重作为预训练的网络权重
  • 定义神经型传递网络的输入、输出、损耗和优化器
  • 定义将数据馈送到网络的输入管道
  • 训练网络并保存结果
  • 结论

本系列的其他文章可以在下面找到。

A BCD* E F**G*** H I J**K**L*** M N O P Q R S T U V******

*表示中等付费墙后面的文章

本文的目的

本文的目的是提供一个原则性的指南,而不是一个算法的预演,或者用一长串无聊的代码让读者窒息。特别是在这篇文章的结尾,我希望读者理解 NST 背后的概念,并知道为什么某些事情是这样的(例如损失函数)。作为一个额外的好处,读者可以浏览端到端的代码,并看到实际情况。

密码

请注意,我将只分享文章中最重要的代码片段。你可以在这里 获得 Jupyter 笔记本 的全部代码。该算法用 TensorFlow 实现。

为什么是 NST?

在物体识别和检测等任务中,深度神经网络已经超过了人类水平的性能。然而,直到最近,深度网络在产生具有高感知质量的艺术作品等任务上还远远落后。使用机器学习技术创造更高质量的艺术对于达到类似人类的能力是必不可少的,并开辟了一个新的可能性范围。随着计算机硬件的进步以及深度学习的普及,深度学习现在正被用于创作艺术。例如,一幅由人工智能生成的艺术作品不会在拍卖会上以高达 432,500 美元的价格出售。

高层建筑

如前所述,神经类型转移使用预训练的卷积神经网络。然后,为了定义将两个图像无缝混合以创建视觉上吸引人的艺术的损失函数,NST 定义了以下输入:

  • 内容图像( c ) —我们要将样式转移到的图像
  • 样式图像( s ) —我们要从中转移样式的图像
  • 输入(生成)图像( g ) —包含最终结果的图像(唯一可训练变量)

该模型的架构以及损耗的计算方法如下所示。您不需要深入理解下图中的内容,因为您将在接下来的几个部分中看到每个组件的细节。这样做的目的是对风格转换过程中的工作流程有一个高层次的理解。

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

High level architecture of NST model

下载和加载预训练的 VGG-16

你将从这个网页中借用 VGG-16 的重量。您需要下载 vgg16_weights.npz 文件,并将其放在您的项目主目录**中一个名为 **vgg** 的文件夹中(对不起,我应该自动完成这个任务,但是我太懒了)。你将只需要卷积和池层。具体来说,您将加载第一个7卷积层,用作 NST 网络。你可以使用笔记本中的load_weights(...)功能来完成。**

:欢迎你多尝试几层。但是要小心你的 CPU 和 GPU 的内存限制。

定义函数以构建风格传递网络

在这里,您定义了几个函数,这些函数将有助于您稍后全面定义给定输入的 CNN 的计算图。

创建张量流变量

在这里,您将加载的 numpy 数组加载到 TensorFlow 变量中。我们将创建以下变量:

  • 内容图片(tf.placeholder)
  • 风格形象(tf.placeholder)
  • 生成的图像(tf.Variabletrainable=True)
  • 预训练重量和偏差(tf.Variabletrainable=False)

确保生成的图像是可训练的,同时保持预训练的权重和偏差不变。下面我们展示两个函数来定义输入和神经网络权重。

计算 VGG 净产出

在这里,你通过卷积和汇集运算来计算 VGG 净产出。请注意,您正在用tf.nn.avg_pool操作替换tf.nn.max_pool,因为tf.nn.avg_pool在风格转换过程中会产生更好的视觉效果[1]。通过改变以下功能中的操作,随意试验tf.nn.max_pool

损失函数

在本节中,我们定义两个损失函数; 内容损失 功能和 风格损失 功能。内容损失函数确保更高层的激活在内容图像和生成的图像之间是相似的。风格损失函数确保在风格图像和生成的图像之间,所有层中激活的相关性是相似的。我们将在下面讨论细节。

内容成本函数

内容成本函数确保内容图像中存在的内容在生成的图像中被捕获。已经发现,CNN 在较高的级别中捕获关于内容的信息,其中较低的级别更关注单个像素值[1]。因此,我们使用最顶层的 CNN 层来定义内容损失函数。

*【a^l_{ij}(i】为激活第 l 、第 i th 特征图和使用图像获得的第 j th 位置。那么内容损失被定义为,*

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

The content loss

基本上 L_{content} 捕获由生成的图像和内容图像产生的激活之间的均方根误差。但是为什么最小化更高层激活之间的差异确保了内容图像的内容被保留?

内容丢失背后的直觉

如果你想象一下神经网络所学到的东西,有证据表明,在不同物体的存在下,更高层的不同特征图被激活。因此,如果两幅图像具有相同的内容,它们在较高层中应该具有相似的激活。

我们可以将内容成本定义如下。

风格损失函数

定义风格损失函数需要更多的工作。为了从 VGG 网络中提取风格信息,我们使用了 CNN 的所有层。此外,风格信息被测量为给定层中特征图之间存在的相关量。接下来,损失被定义为由生成图像和风格图像计算的特征图之间存在的相关性的差异。数学上,风格损失定义为,**

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

(在本教程中选择均匀)是在损失计算期间给予每一层的权重,是取决于第 l 层的大小的超参数。如果您想查看确切的数值,请参考本文。然而,在此实施中,您没有使用 M^l ,因为在定义最终损耗时,它将被另一个参数吸收。

风格丧失背后的直觉

虽然上面的方程式系统有点拗口,但这个想法相对简单。目标是为生成的图像和样式图像计算一个样式矩阵(如下图所示)。则风格损失被定义为两个风格矩阵之间的均方根差。

下面你可以看到一个如何计算样式矩阵的图解。样式矩阵本质上是 Gram 矩阵,其中样式矩阵的第 (i,j) 元素是通过计算第 i th 和第 j th 特征图的逐元素乘法并对宽度和高度求和来计算的。在该图中,红色叉号表示元素间的乘法,红色加号表示跨越特征图的两个宽度和高度的求和。

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

您可以按如下方式计算样式损失。

为什么在 Gram matrix 中可以捕捉到风格?

我们知道如何计算风格损失,这很好。但是您仍然没有看到“为什么使用 Gram 矩阵计算样式损失”。Gram 矩阵本质上捕捉了给定层中一组特征图的“特征分布”。通过尝试最小化两幅图像之间的风格损失,您实际上是在匹配两幅图像之间的特征分布[3,4]。

:个人认为上面的问题没有得到满意的回答。例如[4]解释了风格损失和域适应之间的相似性。但是这个关系并没有回答上面的问题。

所以让我试着更直观地解释一下。假设您有以下特征地图。为了简单起见,我假设只有三个特征图,其中两个完全不活动。您有一个特征地图集,其中第一个特征地图看起来像一只狗,而在第二个特征地图集中,第一个特征地图看起来像一只颠倒的狗。然后,如果您尝试手动计算内容和样式损失,您将获得这些值。这意味着我们没有丢失两个特征地图集之间的样式信息。但是,内容却大相径庭。

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

Understanding style loss

最终损失

最终损失定义为:

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

其中 αβ 为用户自定义超参数。这里 β 吸收了前面定义的 M^l 归一化因子。通过控制 αβ 可以控制注入生成图像的内容和样式的数量。您还可以在论文中看到不同 αβ 值的不同效果的可视化效果。

定义优化器

接下来,您使用 Adam 优化器来优化网络损耗。

定义输入管道

在这里,您可以定义完整的输入管道。[tf.data](https://www.tensorflow.org/guide/datasets)提供了一个非常易于使用和直观的接口来实现输入管道。对于大多数图像操作任务,你可以使用[tf.image](https://www.tensorflow.org/api_guides/python/image) API,然而tf.image处理动态大小图像的能力非常有限。例如,如果您想要动态裁剪和调整图像大小,最好使用生成器的形式,如下所示。

您已经定义了两条输入管道;一个是内容,一个是风格。内容输入管道寻找以单词content_开头的jpg图像,而样式管道寻找以style_开头的图像。

定义计算图形

现在你准备好摇滚了!在本节中,您将定义完整的计算图。

  • 定义提供输入的迭代器
  • 定义输入和 CNN 变量
  • 定义内容、风格和总损失
  • 定义优化操作

跑步风格转移

是时候运行计算图并生成一些艺术作品了。生成的作品将被保存到data/gen_0data/gen_1,…、data/gen_5等。文件夹。

当你运行上面的代码时,你应该得到一些整洁的图片保存到你的磁盘上,如下所示。

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

结论

在本教程中,您学习了神经类型转移。Neural style transfer 允许将两个图像(一个包含内容,一个包含样式)混合在一起,以创建新的艺术作品。您首先了解了为什么需要 neural style transfer,并概述了该方法的架构。然后,您用 TensorFlow 定义了神经类型传递网络的细节。具体来说,您定义了几个函数来定义变量/输入、计算 VGG 输出、计算损失和执行优化。接下来,你明白了让我们获得我们想要的东西的两个损失;详细讨论了内容损失和风格损失,并了解了它们是如何共同定义最终损失的。最后,您运行了模型并看到了模型生成的艺术品。

本教程的代码可在 这里 获得。

想在深度网络和 TensorFlow 上做得更好?

检查我在这个课题上的工作。

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

[1] (书)TensorFlow 2 在行动——曼宁

[2] (视频教程)Python 中的机器翻译 — DataCamp

[3] (书)TensorFlow 中的自然语言处理 1 — Packt

新的!加入我的新 YouTube 频道

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

如果你渴望看到我关于各种机器学习/深度学习主题的视频,请确保加入 DeepLearningHero

进一步阅读

【1】艺术风格的神经算法

【2】tensor flow 神经风格转移教程

【3】Quora 关于神经风格转移的文章

【4】揭秘神经风格转移

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值