TowardsDataScience 博客中文翻译 2019(四百八十七)

原文:TowardsDataScience Blog

协议:CC BY-NC-SA 4.0

整理的魔力

原文:https://towardsdatascience.com/the-magic-of-tidying-up-d160cb7a5ef6?source=collection_archive---------14-----------------------

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

A World of Chaotic Data

我们如何处理数据,使其可读、易于理解、可用于发现特征之间可能的相关性,并基于清理后的数据进行预测?无论数据的用途是什么,都需要在有效使用之前对其进行清理和组织。我们今天要用的数据集是足球数据集。(我最喜欢的运动!)随着比赛期间电视上抛出如此多的体育统计数据,了解这些统计数据的来源是一个很好的话题。

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

你有没有想过体育赛事的解说员是如何在比赛过程中得出运动员的具体数据的?是的,显而易见的答案是有人在幕后向他们提供信息。但是,那个人从哪里获得信息呢?人们不会在体育赛事期间坐在那里手动查看统计数据。如果必须手动查找相关的事件和数字,很少有人会在正确的情况下找到正确的统计数据。

找到数字也是不够的。需要多种统计数据来与过去的比赛进行比较,以了解运动员是否打破了世界纪录或甚至打破了他们自己的纪录。像现在这样的情况发生过多少次?例如,在规定时间内,下雨的时候,有多少次罚球入网?这是一个相当模糊的统计数据,但信不信由你,评论家们已经提出了比这个例子更疯狂的统计数据。

那么,所有这些统计数据是从哪里来的呢?虽然我们知道是与数据打交道的人,但我指的是一个更具体的问题。处理数据的人是如何得到这些统计数据并提供给评论员的。这就是我们将在这里学到的东西。

有多种组织数据的方法。今天我们将使用 Python 中的一个名为 Pandas 的库。不是我们在电视或变焦镜头中看到的可爱、毛茸茸、黑白相间的熊。Pandas 是一个 Python 包,设计用于数据科学。

我们需要做的第一件事是导入熊猫库。当我们导入它时,我们将它加载到内存中,以便我们在这个项目中工作时可以访问它。当我们导入它时,我们使用 pd 来缩短它。像其他编程语言一样,Python 也有编码约定。

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

Simply import pandas as pd and we can use it further down in the code.

一旦库被导入,我们不需要再次导入它。我们必须向警方报告。在 Python 中命名变量时,约定是全部使用小写字母。

以下代码行将数据集的值赋给变量“soccer”。为了加载数据集,我们使用 pd 和函数“read_csv”来引用我们的 pandas 库。CSV 代表什么?它代表“逗号分隔值”, url 或原始数据集用引号括起来。

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

The raw dataset assigned to the variable soccer. The command below it will give us the first five rows of the dataset.

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

soccer.head() gives us the first 5 rows of the dataframe. That can give us a great amount of information. If we want to see more rows at one time, we can just put a number inside the parentheses.

请注意,数据帧的索引从零开始。我们也可以通过使用 tail 而不是 head 来查看数据帧的最后 5 行。 足球.尾巴()。在挑选这些数据之前,我还想知道一件事。我想知道这里总共有多少行和列。下面是我们如何做到这一点。

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

This tells us there are 16,781 rows and 19 columns

你认为我们接下来应该看什么?我们想确保数据是可读和可用的。现在,我看到很多写着的价值观。我们需要找出这些值中有多少是存在的,以便能够决定如何处理它们。这可以通过下面的代码来完成。

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

In every cell there is a True or False. True means there is a null value. False means there is data in that cell.

该数据框包含许多行,因此逐个像元地查看会非常繁琐和耗时。有一种更有效的方法来确定每一列中 null 值的数量。下面是我们如何做到这一点。

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

Clumped together but still not organized

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

总共有 16,781 行。我们看到相当多的列中有大量的空值。与总行数相比,这个数字很大,这可能使得这些数据用处不大。我们可以去掉那些柱子。有几种方法可以做到这一点。最安全的方法是创建一个新的数据帧。它让我们的足球数据框架保持原样,这样我们可以在需要时再次引用它。以下是如何仅使用对我们的工作更有用的列来制作副本。

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

Wow! That looks much easier to work with doesn’t it? We still have Null Values here though and we need to address those. Let’s see where they are again. How do we find those? Remember, we have a new variable for the dataframe we’re using.

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

Much easier to work with!

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

我们拥有的行数没有改变。当我们选择不使用它们时,只有列的数量减少了。与总行数相比,这些空值很小。在这里,我们需要决定,我们只是摆脱这些行吗?我们用不同的值填充它们吗?如果是的话,我们选择什么样的价值?

我们看到我们要处理的第一列是日期。你认为日期重要吗?有可能。我们不确定我们到底要找什么。我之前提到的是评论员在比赛中使用统计数据。如果我们把数据用于这个目的,日期就非常重要。但是,16,781 行中的 282 行是最少的。和所有的空值一样,我们可以去掉它们,或者把它们改成平均值、众数、中位数。该决定因人而异,取决于您正在处理的数据。让我们快速看一下这个数据中的最小值、最大值、平均值、众数、中位数和四分位数。当我们这样做时,我们将只获得那些包含数字列的值。接下来我们将讨论分类列。

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

这里季节的年份没有空值。主客场进球数有相同数量的空值。用平均值替换这些空值不会对这些列的数据产生太大影响,所以这是一个很好的值。对于主场进球,平均值是 1.880657。对于取得的客场进球,平均值为 1.230657。我们可以在 pandas 中使用一个名为。replace()将每列中的所有空值替换为它们的平均值。

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

We also know the mean of vgoal. We can do the exact same thing to get rid of the null values in that column. If we check for null values again right after we do this, you’ll see they are gone.

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

我们现在只剩下 Date、visitor、ft 和 tie 列需要处理。记得原始数据帧是 16781 行。在 16,000 多个值中,tie 列中只有三个空值,删除这三行可能不会对我们的数据产生太大影响。因此,我们将删除这三行。我们该拿其他人怎么办?日期是游戏的确切数据。我们有另一个名为“季节”的列,没有空值。你认为日期重要吗?这也取决于我们想从这个数据中了解什么。访客栏代表与主队比赛的客队。由于这是一个字符串,而不是数字,我们不能像用数字那样取平均值。

在这一盘的 16,781 场比赛中,客队有 163 个值缺失。这还不到游戏总数的 1%。我们也可以删除这些行。你认为这会对我们的总体数据和结论产生影响吗?我们可以用模式(访问者栏中最常玩的球队)填充空值。最终,决定权在数据科学家。哪个是更好的选择?我们应该删除空值吗?我们应该用其他信息填充它们吗?如果我们填满了它们,我们用什么来填满它们呢?这些都是你应该问自己的好问题。在这种情况下,我将用访问者列的模式填充它们。

你不需要先找到模式。通过使用下面的代码,可以用模式替换空值。我们现在已经将 visitor 列重新分配给了它自己,但是用模式填充了空值。

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

我们只需要考虑日期和最终分数。最终得分有 283 个空值。我们可以用 0–0 分数(分数的模式)替换这些行,删除这些行,或者选择不同的值来填充它们。对于最终得分(FT),我将使用最终得分的模式再次填充它们。

让我们同时处理日期。我们在日期中有 282 个空值,但是在季节中从来没有空值。这意味着我们知道比赛发生在哪个赛季,只是有一些具体的日期,比赛发生在我们不知道的地方。具体日期重要吗?这可能取决于我们想知道什么。我已经展示了必须用不同的值填充空值。在这里,我将删除日期列,因为我对至少拥有游戏发生的赛季感到满意。

在填写最终分数并删除日期后,我们应该没有空值了!

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

Yay! No more null values! dropping the column just used ‘drop’ after the data frame name. Specified what column to drop, and the specified the axis. axis=1 is for columns. axis=0 is for rows.

正是在这一点上,我们可以使用数据来找出额外的信息。我可能会问的一个问题是,“赢得比赛和在你的主场比赛之间有关联吗?”根据赛季的不同,比赛输赢有什么趋势吗?哪个队赢了最多的比赛?从这一小组数据中可以找到很多问题的答案。想象一下,我们可以从不同来源的大量数据中发现什么。我们可以回答曾经被认为不可能得到答案的问题。电脑如此强大,让我们有能力回答各种问题。它还赋予我们训练计算机完成特定任务的能力。未来的话题。

这是如何清理小型数据集的一个非常基本的指南。这是一个开始的好地方。如果我激发了你的兴趣,你可以访问网上的大量资料来了解更多。而且,如果你发现自己彻底着迷了,Lambda School 有一个数据科学/机器学习项目,它会让你大吃一惊!

使用机器学习识别金融欺诈的主要问题(以及如何解决)

原文:https://towardsdatascience.com/the-main-issue-with-identifying-financial-fraud-using-machine-learning-and-how-to-address-it-3b1bf8fa1e0c?source=collection_archive---------19-----------------------

处理不平衡数据的策略

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

支付处理器每天处理的金融交易数量惊人,而且还在不断增加:2012 年大约每天 7000 万笔信用卡交易,2017 年损失数十亿美元。仅仅由于交易量,确定交易是合法的还是欺诈是计算机系统的专有工作。传统的机器学习方法是建立一个分类器,帮助循环中的人减少必须查看的交易数量。

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

The goal of the machine learning classifier is to reduce the number of transactions that a human has to investigate.

机器学习分类器面临的挑战是欺诈交易的百分比在 1-2%的数量级,这意味着分类器必须考虑训练数据中的严重不平衡。

这是一个非常棒的视频,展示了机器学习工程师在系统检测欺诈交易时必须经历的挑战:

即使是金融欺诈的合成数据集也是有偏差的,例如,在预测金融支付服务欺诈的 Kaggle 数据集上的不平衡:

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

该数据集包含超过 600 万个交易和 11 个特征:

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

数据不平衡问题并不仅限于金融领域的机器学习应用,还包括一些应用,如检测罕见疾病患者的图像、从入境口岸的 X 射线图像中对受限对象进行图像分类、石油泄漏的图像识别等。

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

Photos courtesy of Unsplash

在本文中,我将描述可以用来缓解数据不平衡的技术,目标是用平衡的数据集训练二元分类器。

为了便于说明,我们将创建一个二维的合成数据集,尽管典型的金融数据集通常有更多的特征,例如,之前的 Kaggle 数据集有 28 个特征。

一般来说,不平衡数据集看起来是这样的:

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

Dataset depicting a 99:1 class imbalance ratio. There are 1,000 samples on the yellow class (majority), and 10 samples on the orange class (minority).

有两种缓解不平衡的一般策略:减少多数类(欠采样),或从少数类生成合成数据(过采样)。我们将讨论这两者。

策略一。欠采样多数类

在这个策略中,思想是减少多数类的样本数量。

1.1 随机欠采样

第一种策略是忽略来自多数类的数据样本。以下动画忽略了来自多数类的随机样本,直到达到平衡数据集。

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

Random undersampling

1.2 聚类欠采样

另一个策略是将多数样本减少到 k 个样本,这对应于多数类的 k 个质心。这些质心由 k 均值聚类 无监督算法计算。质心的数量通常被设置为少数类中样本的数量,以便整个数据集是平衡的。

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

Clustering undersampling

1.3 Tomek 链接

对多数类进行欠采样的另一个策略是移除所谓的“ Tomek 链接”。这些点是离少数类最近的邻居(离对面类最近)。通过移除这些点,通过从多数类的点中“清除”其周围空间,给予少数类样本更多的权重。

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

Tomek links undersampling

策略二。对少数民族阶层进行过度采样

在这个策略中,想法是增加少数类的样本数量。

2.1 通过少数类的随机复制进行过采样

在第一个策略中,也是最容易实现的,从少数类中选择随机样本并复制它们。尽管简单明了,但这可能会导致过度拟合。

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

Random oversampling

2.2 合成少数过采样(SMOTE)

SMOTE 算法背后的思想是沿着来自少数类的两个样本之间的向量创建“合成”数据点,这些样本是由其最近的邻居(即最近的)选择的。新点沿该向量以随机长度设置。有关简化数据集的示例,请参见以下动画:

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

SMOTE interpolates over nearest neighbors.

以下动画应用于我们之前的示例进行说明:

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

Synthetic Minority Over-sampling (SMOTE) example.

2.3 自适应合成(ADASYN)

与 SMOTE 类似, ADASYN 算法也生成新的合成点,但通过对少数样本应用不同的权重来补偿偏斜分布。在 SMOTE 算法中,为每个少数数据示例生成相同数量的合成样本。

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

Adaptive Synthetic (ADASYN)

3.过采样和欠采样(SMOTE + Tomek 链接)

最后,过采样(例如通过 SMOTE)和欠采样(例如通过 Tomek 链接)的结合也许是处理不平衡数据的理想途径。过采样算法创建新的实例来匹配平衡,而欠采样过程从多数类中移除点,否则这些点会减去少数类的珍贵样本的权重。这种策略 a 的一个例子可以在下面的动画中看到:

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

SMOTE + Tomek links

摘要

策略的选择将取决于问题,并最终由业务决定支持的东西来指导:精度或召回

幸运的是,通过 Python 库不平衡学习,可以直接测试这些技术的性能。

延伸阅读:

源代码:

在这个存储库中https://github . com/gchave z2/code _ machine _ learning _ algorithms您可以找到用于生成本文实验的 Python 代码,以 Jupyter 笔记本的形式:

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

https://github.com/gchavez2/code_machine_learning_algorithms

我是劳伦斯伯克利国家实验室的博士后,在那里从事机器学习和高性能计算的交叉研究。

如果你觉得这篇文章很有趣,请随意打个招呼,LinkedIn ,我总是很乐意与该领域的其他专业人士联系。

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

No Spam, ever.

敏捷(数据)科学

原文:https://towardsdatascience.com/the-major-flaw-with-data-scientists-357a7aee27db?source=collection_archive---------20-----------------------

就工作方式而言,工业界与学术界

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

Photo by Lucas Vasques on Unsplash

这篇文章是关于一个(数据)科学家通常伴随的两件事:一个是科学思维方式,这是非常有价值的,另一个是“学术工作风格”,这可能是一个主要的障碍。

科学思维

基础良好的科学教育为数据科学家提供了重要的特质:

  • 分析思维,发现深藏在数据中的洞察力
  • 健康的怀疑态度和严格的假设检验,以提供高质量的结果
  • 理解统计不确定性或相关性和因果关系之间的差异等概念,从而防止客户或高管得出错误的结论

因此,数据科学家的技能对数字业务非常有用。

“学术工作风格”

在学术界,一篇典型的博士论文是这样的:

  • 挑选一个定义狭窄的问题
  • 专注它好几年
  • 找到人类可能的最佳解决方案
  • 最终出版,但只有在广泛的审查

数据科学领域的大部分新员工都经历过这一过程,这不可避免地塑造了他们的职业行为。类似的事情也发生在“一代”身上。

然而,“学术工作方式”往往与当今数字经济的要求相冲突。尤其是在敏捷环境中,不同的行为是成功的必要条件:

  • 将产品作为一个整体来关心,而不仅仅是分配给你的微小的造型部分
  • 要知道“足够好”通常就足够了
  • 将工作原型置于最终模型性能之前
  • 尽早发布并经常实地测试您的解决方案——尝试、失败、学习、重复

当然,这并不意味着不要仔细检查你的结果,或者盲目地发布。此外,快节奏的数字产品开发和在大公司的基础研究部门工作是有区别的。

就我个人而言,从学术界过渡到工业界后,我不得不按照上面描述的方式调整我的工作方式。这不是特别痛苦,但是,如果我有意识地意识到这种差异,我会学得更快。

你错过什么了吗?完全不同意?欢迎在评论中分享你的观点。

人工智能的主要问题是

原文:https://towardsdatascience.com/the-major-problem-with-ai-8f53cf7d3a50?source=collection_archive---------24-----------------------

人工智能世界末日的场景被忽视的太快了

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

Image by Gerd Altmann from Pixabay

今天我看到了 Rafay Ghaudhary 的帖子人工智能:不仅仅是机器学习。虽然我很欣赏 Rafay 努力展示人工智能(AI)不仅仅是“只是”机器学习,但他的帖子包含了另一个让我彻底担忧的想法。这个想法是这样的:认为计算机和机器人将接管世界是不理智的。他甚至声称永远不会发生。关键词:从不。这是一个令人难以置信的强有力的声明(在帖子的任何地方都没有得到支持),它似乎反映了一个更大的情绪:人工智能是一种积极的力量,对负面未来场景的担忧是恐惧的散播。由于我看到太多带有这种情绪的陈述,我决定写这篇文章来解释高级人工智能的主要问题以及为什么我们绝对不应该忽视它。

“智能衡量一个代理人在广泛的环境中实现目标的能力.”

为了这篇文章的目的,我将按照莱格和赫特的定义在这里“智力衡量一个代理人在广泛的环境中实现目标的能力。”人工智能或 AI 就是任何非生物的智能。人们可以认为世界冠军打败了国际象棋计算机深蓝,但最近的自动驾驶汽车可能是人工智能更有趣的例子。这个想法是人工智能在过去的几年里已经取得了很大的进步。根据我们对智力的定义,进步意味着在广泛的环境中实现目标的更好的能力。这将意味着要么人工智能在同一环境中实现目标的能力已经增长,要么人工智能现在可以在更多的环境中实现目标。两者都是真的:例如,AI 现在的棋艺甚至比 1997 年的深蓝还要好;此外,由于一种名为深度学习的技术,AlphaZero 是一个可以玩棋盘游戏国际象棋、松木和围棋的人工智能程序。鉴于过去的进展,预计 AI 将在未来取得更多进展;许多专家预计,在某个时候,我们将拥有人工通用智能(AGI):在所有智能领域大致与人类一样智能的人工智能。

你的 AGI 不知道为了最大化你的利润而杀死你的竞争对手是不允许的。

现在,如果人工智能有那么聪明,会发生什么?这显然很难预测。然而,我们可以对这个场景进行一些有根据的猜测。我和许多其他人预见的主要问题是,尽管 AGI 从定义上来说和我们一样聪明,但它不会默认和我们有共同的道德观。让我举一个例子来说明这一点。想象你经营一家公司。在某些时候,你的公司有足够的资金和其他资源来创造世界上第一个 AGI。惊叹于你的创造,你给了 AGI 第一个目标:最大化你公司的利润。毕竟,你希望你的投资能让你赚到一些钱!正如所料,在接下来的几个月里,你会看到你的利润增加。然而,你震惊地得知,为了实现这一目标,你的 AGI 雇佣了刺客来杀害你的竞争对手。你看,你的 AGI 非常了解什么样的行动会导致它想要的结果;然而,它和你的道德观不同。你的 AGI 不知道为了最大化你的利润而杀死你的竞争对手是不允许的。它为什么以及如何知道这一点?我们人类知道(或者至少大多数人知道),我们知道当有人要求我们实现利润最大化时,那个人隐含的意思是不允许杀死竞争对手。但是我们对什么是允许的,什么是不允许的有着共同的理解;AGI 默认不会有这个。假设它会是拟人化。一个 AGI 可以有这种理解,但是我们必须这样编程。

“人工智能不恨你,也不爱你,但你是由原子组成的,它可以用这些原子做别的事情。”

所以 AGI 很可能不认同我们的道德观。事实上,默认情况下,不会。我先前暗示的主要问题来自哪里?它来自于一个 AGI 人可能有的基本驱动力和这种驱动力的副作用。你看,为了实现它的目标,AGI 可能会意识到拥有更多的智慧会有所帮助。起初,它可能通过重写自己的源代码来达到更高的智能水平。在达到下一个智能水平后,它可能会意识到甚至更多的智能是可取的(见种子 AI:有史以来最具破坏性的力量)。要拥有越来越多的智能,最终需要越来越多的计算能力。为了获得这一点,它可能会将越来越多的地球材料转化为它可以使用的计算材料,直到最终,整个地球和所有人类都被转化为一台大型计算机。在这种情况下,并不是 AGI 讨厌人类:只是我们是由原子组成的,它可以用原子为自己的目的构建计算物质。人工智能研究员埃利泽·尤德考斯基说得很好:“人工智能不恨你,也不爱你,但你是由原子组成的,它可以用它做别的事情。”

互联网的关闭开关在哪里?

但是,你可能会想,人类不会抵制 AGI 改造地球吗?嗯,我们可能会尝试,但是一个变得越来越聪明的 AGI 必然会变得比我们更聪明,因此,再一次,按照定义,非常善于达到它的目标。假设我们能够保护自己是危险的无知。如果你认为我们可以关掉 AGI,请再想想:互联网的开关在哪里?

默认情况下,你应该假设一个 ASI 可以说服你做任何它想让你做的事情。

你可能会担心的另一个问题是,AGI 将如何把地球变成计算材料。难道人类不应该从一开始就设计一个能够做到这一点的机器人身体吗?不一定。你看,AGI 可能足够聪明,可以说服人类首先给它更多现有的计算能力。最终,它可能会找到方法,说服人类建立工厂,生产能够将普通物质转化为计算物质的纳米机器人。记住:一旦 AGI 变得稍微聪明一点,它就比人聪明,根据定义,它是人工超级智能(ASI)。默认情况下,你应该假设一个 ASI 可以说服你做任何它想让你做的事情。因为从定义上来说,它比你聪明,它会欺骗你或者说服你去做它想让你做的事情。

简而言之,先进的人工智能将对人类产生重大影响。这种影响是积极的还是消极的取决于我们:如果我们做得对,它可以很容易地治愈我们的疾病,并发明各种新技术,让人类前所未有地繁荣。如果我们做错了,很容易导致我们的灭绝。

一个伟大的 Airbnb 度假屋的制作

原文:https://towardsdatascience.com/the-making-of-a-great-airbnb-vacay-e6d541942362?source=collection_archive---------42-----------------------

可视化 Airbnb 房源和评论,帮助旅行者选择完美的度假屋。

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

Photo by Outsite Co on Unsplash

度假者正在离开传统的酒店,转而选择 Airbnbs 和类似的房屋租赁服务。这些平台为旅行者提供了一个舒适的住宿场所,价格只是酒店的一小部分。虽然比大多数酒店便宜,但由于不一致的体验,旅客仍然认为空中旅馆不太可靠[2]。Airbnbs 的这种不可靠性使得旅行者很难为他们的住宿选择正确的家和/或主人,这可能导致一些不幸的情况(你可以在这里阅读一些恐怖故事)。

为了解决这个问题,我创建了可视化仪表板,为客户提供更好、更直观的方式来探索某个地区的房源,并帮助他们在为未来的旅行筛选 Airbnbs 时做出明智的决定。

这些仪表板具有基于类别和用户情绪可视化客户评论的情绪树图,代表一个地区最有吸引力的社区的空间可视化,以及允许用户一次比较多个 Airbnb 房源的平行坐标显示。

Video demo of the visualizations

向下滚动以了解更多关于我构建这些可视化的过程。

设置焦点

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

Photo by Elena Taranenko on Unsplash

选择数据集进行探索

我在 Airbnb 内部使用了*(http://insideairbnb.com/),这是一个公开的资源,提供与一个城市的 Airbnb 房源相关的各种数据集。我浏览了旧金山地区及其周边的 Airbnb 房源,以缩小我的项目范围。我用于分析的数据集( Listings_SFReviews_SF )提供了关于房源的主人、房间、顾客评论、价格、邻居和评级等重要属性的详细信息。*

虽然我理解了项目的总体目标,但我仍然不明白数据的哪些属性是重要的,应该关注哪些属性,我可以对数据进行什么样的分析,以及我可以用什么不同的方式来可视化这些数据。为了寻找灵感和进一步拓展我的项目,我决定探索这一领域以前的研究。

进行背景调查

作为背景研究的一部分,我回顾了与我关注点相似的文献。

  • 我首先探索了之前的工作,将 Airbnb 房源的各种属性关联起来并可视化。这帮助我理解了人们分析、可视化和关联 Airbnb 数据的不同方法。[3][4]
  • 此外,我还研究了之前关于 Airbnb 超级主机的研究,即拥有持续高收视率和高销售额的主机。这帮助我列出了我想要关注的属性,因为它让我了解了获得超级主机地位的主要标准。[5][6]
  • 由于我的项目很大一部分涉及 Airbnb 评论数据集的分析和可视化,我阅读了以前可视化客户评论、意见和反馈的研究。[7][8][9]
  • 出于对 Airbnb 极其严格的审核政策的担忧,我还查看了关于 Airbnb 审核合法性的研究。这样做是为了理解 Airbnb 评论与其他来源的评论/反馈有何不同。这为我后来对这些评论的分析提供了信息。[10]
  • 最后,我查看了与我的项目焦点密切相关的类似学生项目,以确保我的工作没有与之前学生主导的项目完全重叠。[11][12]

总之,文献综述对于缩小范围和为我的项目指明方向至关重要。

(你可以在这里查阅我的文献综述的详细内容。)

创建可视化效果

使用的工具:Tableau,Python (Pandas & Textblob 库),Numbers for Mac

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

Photo by Jason Coudriet on Unsplash

基于我从文献综述中获得的知识,我勾勒出了一些可视化效果,可以帮助人们更好地探索和筛选 Airbnb 房源。在勾勒出我的想法并收到教授和同行的反馈后,我专注于构建交互式可视化。

可视化客户评论

受论文*、**、Pulse:Mining Customer Opinions from Free Text(Michael Gamon、Anthony Aue、Simon Corston-Oliver 和 Eric Ringger (2005 )中使用情感树图的启发,我绘制了一张可视化 Airbnb 评论的情感树图。*

我想象它是一个仪表板,用户可以选择一个列表,并以树形图格式查看评论,根据客户谈论的主要主题进行情绪着色和标记。点击一个主要主题会导致与该主题相关的正面和负面评论。

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

Sentiment-Treemap Sketch

建立可视化

在这个过程的第一阶段,我从 Airbnb 的评论数据集中随机选择了 2 万条评论,并创建了一个标签云,以了解人们在 Airbnb 住宿期间最关心的是什么。

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

观察标签云帮助我将用户评论分为以下 4 类:

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

Location-related, room-related, host-related and value/price-related reviews

在对数据集进行分类后,我对评论进行了情感分析,并将评论标记为负面、中性或正面。

这个过程帮助我生成了一个更新的数据集,其中包含评论及其类别和情感价值。我将这些数据导入 Tableau,并用情感色彩创建了想要的树形图。

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

用户可以选择特定的列表,并观察该特定列表的情感树图以及所有相应的用户评论。点击一个主要主题会导致与该主题相关的正面/负面/中性评论。

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

对于关注和重视一个列表的一个方面多于另一个方面的客户来说,情感树图可以作为一个很好的工具。

显示旧金山最吸引人的街区

我想看看地理位置如何影响 Airbnb 房源的吸引力。我根据评论、价格和位置创建了一个空间可视化来表示旧金山最有吸引力的社区。因为我必须在 2d 地图上表示多个属性,所以我使用颜色阴影来表示一个区域的情绪(绿色到红色/浅绿色到深绿色),使用符号来表示平均价格水平,使用位置分数(来自列表数据集)来表示该区域的位置等级。

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

Spatial Visualization representing attractive locations: sketch

建立可视化

我使用 Tableau 创建了一个仪表板,它根据旧金山的邮政编码可视化一个地点的平均价格(作为标签)和吸引力(通过颜色阴影)。这伴随着表示 SF 中所有列表的可视化以及列表的平均用户评级(使用带有颜色阴影的圆圈)。

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

在第一个地图上选择一个位置,在第二个地图上显示该特定位置的列表。这提供了该区域不同列表的更清晰(放大)的图片以及它们的平均评分。用户可以根据他们的房间偏好(私人/共享/房子)和他们想要的预算筛选出列表。

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

这种空间可视化将有助于游客更好地探索一个地区,并选择理想的住宿地点。

允许用户比较多个 Airbnb 房源的可视化

Airbnb 的房源数据集为每个房源提供了 4 个重要指标的评级(满分 10 分):清洁度、位置、价值、主人沟通。我最初想用一个蜘蛛图来表示和比较多个列表的分数。

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

我很快意识到,如果比较 3 个以上的列表,蜘蛛图将变得混乱和难以探索。为了解决这个问题,我认为使用平行坐标比较 Airbnb 房源会很有趣。

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

Comparison using parallel coordinates

构建可视化

我在 Tableau 上创建了平行坐标显示,以 c 比较 Airbnb 列表,其中的坐标包括清洁度评级、位置评级、性价比评级和主机通信评级——所有这些都可以在列表数据集中找到(0-10 分)。

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

Parallel Coordinates display

我在上面显示的空间可视化仪表板中集成了这种可视化,以帮助轻松过滤列表并改进平行坐标显示的探索。利用这一点,用户可以选择一个特定的位置,并过滤平行坐标图,以显示和比较该位置的列表。

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

平行坐标显示将帮助游客基于列表的最重要属性来比较不同的列表

结论

我创建了可视化仪表盘,可以帮助旅行者更好地探索和筛选 Airbnb 房源。这些可视化可以很容易地集成到 Airbnb 当前的网络生态系统中,为用户提供更丰富、更直观的浏览体验。

该项目是在Niklas Elmqvist教授的指导下,在马里兰大学帕克学院完成的数据可视化(INST760)课程的一部分。

参考文献

  1. https://medium . com/Harvard-real-estate-review/a-new-era-of-lodding-airbnbs-impact-on-hotels-travelers-and-city-de 3 B1 C2 D5 ab 6
  2. https://listwithclever . com/real-estate-blog/Airbnb-vs-hotels-study/
  3. 使用 3 波段栅格表示法可视化布达佩斯 Airbnb 的空间性(加博尔·杜达斯、拉霍斯·波罗斯、塔马斯·科瓦尔奇克、巴拉兹·科瓦尔奇克,2017 年)】
  4. 对纽约市 Airbnb 的社会经济分析(杜达斯、维达、波罗斯(2017 年))
  5. 是什么让 Airbnb 主持人成为超级主持人?来自旧金山和湾区的经验证据(Gunter,U. (2018)
  6. 确定影响超级主机状态的因素:来自撒丁岛和西西里岛的证据(Giulia Contu,Claudio Conversano,Luca Frigau,Francesco Mola (2019))
  7. Pulse:从自由文本中挖掘客户意见(Michael Gamon、Anthony Aue、Simon Corston-Oliver 和 Eric Ringger (2005))
  8. 客户反馈数据的视觉意见分析(Oelke et。阿尔(2009 年)
  9. 关于酒店评论的观点挖掘和可视化的研究(bjorkelund,Burnett,nrvg(2012))
  10. 如果几乎所有 Airbnb 的评论都是正面的,这是否意味着它们毫无意义?(布里奇斯,j .,&巴斯克斯,C. (2016))
  11. 【http://www.columbia.edu/~sg3637/airbnb_final_analysis.html】T5T6
  12. https://medium . com/uda city/using-Airbnb-data-to-understand-the-owners-market-in-西雅图-4dfbfb0de5a3**

穿西装戴草帽的男人

原文:https://towardsdatascience.com/the-man-with-a-suit-and-a-straw-hat-fabe5be1fb3c?source=collection_archive---------25-----------------------

向非技术观众揭开异常检测的神秘面纱

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

检测异常就是检测异常值。这看起来很简单,但并不总是如此。问题是,你如何定义一个离群值?

我们先想象一个穿西装的男人。这很正常。然后想象一个戴着草帽的男人,这也很正常。现在把这两张照片合成一张,想象同一个男人穿着西装,戴着草帽。既正式又随意?这似乎不正常。

在预测性维护等情况下,这是异常检测的常见情况。用数据科学家的话来说,有时不是单个特征说明异常,而是多个特征的组合。

我们不应该看这幅画的一部分,而应该退一步看它的整体。

有不同的方法来检测异常。最常见的方法是创建一个正常的情况简介,然后将其他所有情况归类为异常。在这里,我们将研究一种完全不同的模型,它从一些异常情况中学习— 隔离森林。单词“隔离”暗示我们可以通过距离的概念发现异常。直觉上,一个数据点越异常,它就越孤立于其他数据点。

在实际应用中,大多数数据集都有多个维度。例如,对于预测性维护,相关特征可以是机器的振动、声音等。为简化起见,我们在这里只考虑用几个蓝色圆圈表示的一维数据。人类可以很容易地观察到,最靠右的那颗是异常的。但是机器是如何找到它的呢?

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

让我们用针来举例说明。假设有人在上空飞行,随机扔出一根针,这根针最终会停在线上。且针有相等机会落在从最左边到最右边样本的任何位置。

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

如果指针落在 3 和 4 之间,它隔离 4。如果指针落在 1 和 2 之间,它隔离 1。如果针落在 2 和 3 之间,它不会分离任何样品,因此我们继续投掷更多的针,直到至少一个样品被分离。我们递归地重复该过程,直到分离出所有样本。

对于每个样本,我们计算在分离前使用的针数。这个数字就是我们所说的异常分数。由于着陆针的位置是均匀分布的,样品距离越远,越有可能被更快地分离,因此可能需要更少的针。基于来自现有数据集的异常分数,我们可以定义一个阈值,使得任何异常分数低于该阈值的未来数据将被分类为异常。

到实验结束时,我们会将所有样本分开,每个样本都有一个指定的异常分数。如下面的"所示,那些具有较小异常分数的更接近树的根,因为它们在早期阶段被隔离。那些分数较大的离根更远,因为它们后来被隔离。因此,这样的树描述了所有样本的隔离状态,粗略地显示了特定样本与其他样本相比有多异常。

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

现在,在去“森林”之前,让我们停留片刻在机器学习的一个基本概念上——“T4 方差”。你可能遇到过偏差-方差权衡的概念。但是我们现在将跳过“偏差”。

在实践中使用这个简单的模型可能会有什么问题?我们观察不到的真实世界数据可能有不同的模式。换句话说,从样本数据得出的异常检测阈值可能不适用于群体数据。这就是当我们有一个高方差的问题时,或者正如我们经常说的,模型过度适应训练数据。

对此的一个解决方案是,我们可以使用多棵树,而不是只构建一棵树。这就是“森林”这个术语的由来。在针头实验中,我们会多次重复同样的过程。由于每个实验都有随机性,通过对不同模型的异常分数进行平均,我们可以得到一个更能捕捉群体异常的最终模型。

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

有了隔离森林和一个有一些异常的数据集,我们能够创建某些检测规则,允许我们谈论新的传感器值、新的金融交易,或者关于一个穿西装戴草帽的人。

德雷克的许多集群

原文:https://towardsdatascience.com/the-many-clusters-of-drake-8718607401ad?source=collection_archive---------14-----------------------

使用机器学习和 Spotify 数据对德雷克歌曲进行分组

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

Source: The Ringer

介绍

格雷汉姆是当今最大的音乐巨星之一。这位加拿大说唱歌手主宰了流行音乐排行榜和互联网文化。自从他广受好评的混音带问世以来的十年里,德雷克已经发行了 7 张个人专辑和 1 张联合混音带,他正在成为有史以来流量最大的艺术家。

在一个充满昙花一现的奇迹和不断变化的时尚的行业里,是什么让这位前青少年戏剧演员保持领先地位?答案是多功能。德雷克最大的优势在于,他可以无缝地从嘻哈虚张声势过渡到情绪化的民谣,在敏感性和可共鸣性之间达到完美的平衡。从英国尘垢舞厅雷鬼音乐,他已经证明没有他不能适应的声音。虽然许多人会争论他的方法的真实性,但它的成功是无可争议的。

为了进一步分析他的多才多艺和音乐发展,我开始使用机器学习来识别他音乐中不断变化的模式,并根据每首歌的指标创建集群(分组)。

数据来源

主要数据集通过 Spotify 的 Web API 获得,包含 Echo Nest 的音乐属性,定义如下:

  • 声学:音轨是否声学的置信度测量
  • 可舞性:一首歌的可舞性取决于音乐元素,包括速度、节奏稳定性、节拍强度和整体规律性
  • 能量:强度和活动的感知度量。有助于该属性的特征包括动态范围、感知响度、音色、开始速率和一般熵
  • 乐器性:预测一个音轨是否不包含人声。“Ooh”和“aah”声音被视为乐器,而 rap 或口语显然是“人声”。高于 0.5 的值表示乐器
  • 响度:整个音轨平均的整体响度,以分贝(dB)为单位。用于比较轨道的相对响度
  • 语速:音轨中口语词的出现。介于 0.33 和 0.66 之间的值描述可能包含音乐和语音的轨道,可以是分段的,也可以是分层的,包括说唱音乐。

(更多信息和示例, 请参考本文 )

额外的歌词数据是使用约翰·米勒利用流行歌词网站 Genius 的 web API 创建的 python 包在网上搜集的。

最终的数据集包括 Spotify 上的 162 首德雷克歌曲。这些不包括他出现在其他歌手歌曲中的歌曲。

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

Preview of the dataset

探索德雷克音乐背后的数据

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

The correlation heatmap shows a correlation score (color) between every data point

基于上面的关联热图,我们看到一个关联,其中歌曲随着时间的推移越来越受欢迎,越来越受欢迎。还有一个负相关,随着时间的推移,歌曲的长度(分钟)变得更短。这表明德雷克的音乐随着时间的推移变得越来越短,越来越有节奏,总的来说更适合广播。

接下来,我将深入研究这些属性,并考察这些数据点如何反映德雷克职业生涯后半期的风格变化。

1.2015 年后,一切都变了

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

Cat-plot (left) shows the danceability scores of each Drake’s songs, and the box-plot (right) shows the length of each song over time

上面的图表显示,随着时间的推移,德雷克的音乐变得越来越短,越来越适合跳舞,这表明了一种向流行音乐的普遍转变。这也是由于像 Spotify 这样的流媒体应用的兴起,这些应用鼓励较短的歌曲,因为每个流都产生收入。

2015 年也是这两个指标发生重大转变的一年。这是德雷克职业生涯中关键的一年;他发行了两张混音带,一张病毒 diss 唱片(背靠背),以及他迄今为止最重要的单曲*《热线金光闪闪》*。

尽管缺乏营销——在 SoundCloud 上作为他最初的 Meek Mill diss 曲目的 b 端填充发布,充电(前传到背靠背)——Hot Bling广告牌 Hot 100 上达到第二名(这是他自 2009 年首张单曲以来的最高分,我有过的最好成绩)。这首歌将集中体现德雷克的转变,通过风格弯曲的声音和充满毫不掩饰的乡巴佬和无数潮湿文化的音乐视频成为今天的互联网超级巨星。

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

2.对抒情的影响

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

(Note: the edge of the box represent 1st and 3rd quartile, middle line is the median and whiskers represent min and max, all diamonds are considered outliers)

随着他的歌曲和整体品牌变得更加主流,我想探索这是如何影响他作为一个说唱歌手的抒情性的。为了衡量这一点,我使用独特的字数作为衡量歌曲创作的创造力和努力的指标(受这篇关于说唱歌手词汇的文章和这篇关于德雷克的机器学习 NLP 文章的影响)。

这里的结果有点不清楚,但我认为从 2013 年开始有轻微的负面趋势。我们在 2017 年看到的增长可能是由于 More Life 是一个汇集了许多不同艺术家的混音带。不过总的来说,我想说他的抒情很大程度上没有受到影响。他没有用更少的独特词来创作歌曲,而是找到了 50 到 55 个独特词的最佳位置,正如他 2018 年的双专辑 Scorpion 所证明的那样,该专辑拥有所有项目中最多的歌曲(25 首),但字数差异最小。

聚类德雷克的音乐

聚类无监督机器学习的一种形式,它“识别数据中的共性,并根据这种共性的存在或不存在做出反应”。换句话说,它通过观察到的模式将数据点组合在一起。由于我们的数据集主要包含数字属性,机器学习可以自动创建歌曲聚类

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

Source

我们创建了多少个集群?

确定最佳聚类数的一种常用方法是使用肘形法,该方法在图中寻找一个“肘形”,在该处添加一个额外的聚类(x 轴)会导致失真(y 轴)的最小减少。

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

The blue line measures distortion based on clusters (k), and the dotted green line measures time

我们的数据的肘形图实际上显示了理想的集群数为 3。然而,鉴于德雷克众所周知的多面性和这一分析的范围,只有 3 组德雷克歌曲将是非常无聊的。相反,我选择了下一个理想的数字,5。

我们使用什么指标?

我对以下数字数据属性使用了标准的 k 均值聚类模型:分钟、受欢迎程度、可跳舞性、声音、能量、乐器感、活跃度、响度、语速、节奏和独特字数。我从模型中去掉了,因为它在区分歌曲的音乐元素方面没有内在的意义。每个集群的汇总结果如下:

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

现在,让我们深入了解每个集群!

集群 0:“崛起”

钱改变了一切,我想知道没有钱的生活会怎样

在德雷克的音乐宝库中,这不是最闪亮或最受欢迎的一面,但这张专辑展示了他作为一名艺术家的崛起,其中有关于追逐梦想、短暂的幸福和应对逆境的自省主题。

歌曲属性:

  • 低节奏和舞蹈性反映了大多数歌曲的内省情绪和信息,只有少数例外( Over、Fancy、HYFR
  • 高绝字数节目重点在于抒情评书

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

群组 1:“多才多艺的热门人物”

她说,“你爱我吗?”我告诉她“只是部分地”,我只爱我的床和妈妈,对不起

德雷克最大的集群不仅在歌曲数量上,而且在多功能性和热门唱片数量上。风格上没有真正的共同主题,除了它们都很吸引人,容易听和受欢迎。

歌曲属性:

  • 在所有聚类中,的高节奏和舞蹈性以及最低的独特字数(平均每首歌少 8 个字)表明歌曲更有旋律、更吸引人、更适合广播
  • 最高乐器感反映了多样化的制作和子流派,包括陷阱、弹跳、舞厅等。
  • 包含了他的大部分最受欢迎的热门歌曲上帝的计划,尼斯什么,西番莲,从底部开始,假爱,一个舞蹈

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

第二组:“新学校的领导者”

每晚都喝酒,因为我们为我的成就干杯

风格上与 cluster 0 非常相似,但这些嘻哈歌曲更多的是虚张声势,而不是自省,因为德雷克努力巩固他作为他这一代人,甚至可能是有史以来最大、最成功的说唱歌手的遗产。

歌曲属性:

  • 不像集群 0,这些歌曲在所有集群中具有最高的速度,适合节奏快、节奏复杂的说唱歌曲
  • 德雷克在这里传达的信息是更多的自吹自擂,并专注于金钱和地位。然而,这些主题主要是用来显示他在嘻哈音乐中的地位以及在同龄人中脱颖而出
  • 许多歌曲来自他的大二经典,保重,包括他早期的热门歌曲,头条

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

第三组:“陷阱星”

得到了一个运动鞋交易,我不流汗

这是最特定流派的群集捕获了流行的子流派陷阱音乐。特别是,这个集群通过采用这种受亚特兰大影响的重 808 鼓、高帽和三连音流的声音,显示了毛毛适应和改变音乐趋势的能力。

宋属性:

  • 高舞蹈性、速度和语速的独特组合;大多是快节奏、朗朗上口的说唱歌曲,最适合派对和夜生活
  • 包含许多来自亚特兰大说唱歌手的类似功能,如未来,2Chainz,Quavo 和年轻的暴徒

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

第四组:“在我的感觉中”

我只是说你可以做得更好,告诉我你最近听到了吗?

这一组歌曲最好地体现了他的标志性风格,喜怒无常的 R&B 混合了情感说唱的低端低音鼓。这是一种流行的风格,影响了像 Bryson Tiller,Amir Obe,6lack 等新艺术家。

歌曲属性:

  • 这些歌曲大部分是由他的长期音乐伙伴创作的。这种标志性的忧郁、缓慢的声音提供了低沉的能量和节奏,而德雷克忧郁的声音弥补了低沉的嗓音****
  • 在主题上,这首歌围绕分手和单恋,最好的例子是他的经典 R&B 曲目, 马文的房间

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

模型结论

  • 总体而言,这些集群完全捕获了德雷克庞大的唱片目录中的 5 种独特声音,尽管每个集群中的一些歌曲被放错了位置
  • 群组 1 缺乏**明确的音乐或抒情主题。**为了更准确,有许多歌曲分散到其他聚类中(这可能是由于这些歌曲中的流行度度量相似)
  • 尽管从聚类分析中去除了年份,聚类通常仍然显示来自相似时间段/专辑的歌曲。这意味着随着时间的推移,音乐和主题的变化会通过数据反映出来

最终想法和后续步骤

这一分析不仅深入研究了德雷克的音乐进化,还展示了机器学习的力量。一个简单的聚类模型可以准确地对一组广泛的歌曲进行聚类,并作为创建个性化播放列表和推荐的基础。Spotify 等流媒体服务无疑正在基于这些类型的数据和更多内容,创建更加复杂的模式和播放列表。

作为一个对 hip-hop 充满热情的人,我想继续使用 Spotify Web API 的数据来探索其他说唱歌手,如 Kendrick Lamar 和 J.Cole,并将他们的音乐与 Drake 或其他流行艺术家进行比较,以通过数据更好地了解他们在音乐上的差异。

(Github Python 笔记本链接 )

SQL 的多面性

原文:https://towardsdatascience.com/the-many-faces-of-sql-bd04af1315b0?source=collection_archive---------29-----------------------

SQL 的许多实现的简要概述

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

最近,我遇到了一个红移 SQL 技术挑战,本质上是盲目编码——没有办法测试我的查询。SQL 有如此多的实现,您可能会遇到一个您不熟悉的实现。我将为您概述我们最喜欢的结构化查询语言的最流行的实现之间的主要区别,并给它们贴上标签,就好像它们是男孩乐队的成员一样:

  • 结构化查询语言
  • 关系型数据库
  • Oracle 数据库
  • NoSQL
  • 一种数据库系统
  • SQLite

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

https://www.datacamp.com/community/blog/sql-differences

SQL —领导者

SQL 是第一个。OG 结构化查询语言。它最初是在 1974 年由 IBM 开发的。它是作为 IBM 的内部项目而设计的,其他版本是为商业用途而创建的。SQL 有许多语法标准,它的许多迭代都没有遵循这些标准。例如,用于终止查询的分号、双引号和大写。SQL 是基本的数据库语言。SQL 的附加实现试图填补空白,并满足特定的需求。

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

SQL is Beyoncé

MySQL——最流行的一个

根据数据库引擎排名,自 2012 年该网站开始跟踪数据库受欢迎程度以来,MySQL 一直是最受欢迎的开源关系数据库管理系统(RDBMS)。它由一家名为 MySQL AB 的瑞典公司于 20 世纪 90 年代推出。MySQL 是热门网站的好朋友,包括 Twitter、脸书、网飞、Youtube 和 Spotify。虽然它并不总是遵循所有的 SQL 规则,但它是快速、可靠和受保护的。使用 MySQL 数据库的应用程序通过一个独立的守护进程访问它。服务器进程位于数据库和其他应用程序之间,因此可以更好地控制谁可以访问数据库。

MySQL 适用于网站和应用程序。它最大的局限性在于缺乏对完全连接子句的支持。MySQL 有开源和商业版本,所以插件的特定功能可能不可用,除非你愿意为它们支付额外费用。

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

MySQL

Oracle SQL—智能产品

Oracle 数据库是由 SDL(软件开发实验室)于 1979 年创建的。Oracle 是一个多模型数据库管理系统。大多数数据库主要只支持一种模式,如:关系数据库面向文档的数据库图形数据库三重存储。结合了许多这些的数据库是多模型的。

“Oracle 数据库(通常称为 Oracle RDBMS 或简称 Oracle)是一个专有的 多模式数据库管理系统。Oracle 是一种常用于运行在线事务处理(OLTP)、数据仓库(DW)和混合(OLTP & DW)数据库工作负载的数据库。”

一些人认为 Oracle 数据库比其竞争对手微软(Microsoft)的 SQL Server 更复杂。Oracle 适用于需要大型数据库的大型组织。Oracle 的一个优势是它可以在任何操作系统上使用。此外,Oracle 有更多的事务控制。例如,如果需要立即更新一组记录,MS SQL Server 会单独执行每个命令。如果在此更新过程中遇到任何错误,将很难进行修改。Oracle 能够将每个新的数据库连接视为一个新的事务,从而提高了效率。

就功能而言,MS SQL Server 不提供分区、位图索引、反向键索引、基于函数的索引或星型查询优化,而 Oracle 提供了所有这些功能。

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

Smartypants

反叛者 NoSQL

不仅是 SQL 的缩写,NoSQL 数据库不是关系数据库管理系统。有些人可能会认为它甚至不属于本文中的其他组,但它的定义与 SQL 相反。它主要被称为非关系型或分布式数据库。NoSQL 数据库是没有标准模式定义的键值对、文档、图形数据库或宽列存储的集合。NoSQL 数据库的定义特征是它保存非结构化数据。

尽管在 SQL(20 世纪 60 年代末)之前就已经存在,NoSQL 这个绰号还是在 1998 年被冠以。有时它也被称为 UnQL(非结构化查询语言)。使用 UnQL 的语法因数据库而异。

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

Breaking all the rules

PostgreSQL——兼容的

PostgreSQL 越来越受欢迎,它遵循大多数 SQL 标准。PostgreSQL 是一个对象关系数据库。它的行为类似于一个常规的关系数据库,但是它有一些附加的特性,类似于一个对象数据库。表继承和函数重载是这方面的一些重要例子。

根据官方文档,PostgreSQL 符合 179 个 SQL 特性中的 160 个。原来亚马逊的产品 Redshift 是基于 PostgreSQL 的。

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

This one was tough, but this picture…

SQLite——可爱的那个

SQLite 占用空间小,因为它是非常轻量级的。它可能占用不到 600Kb 的空间,并且是完全独立的。没有需要安装 SQLite 才能工作的外部依赖项。它不需要停止、启动或重启,因为它不作为服务器进程运行。这些特性使它能够轻松地与应用程序集成。一个完整的 SQLite 数据库可以完美地存储在一个文件中——太可爱了!该文件可以通过可移动介质或文件传输来共享。

将 SQLite 与嵌入式应用程序结合使用是理想的,使用 SQLite 测试应用程序功能很容易,因为它不需要额外的服务器来运行。

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

RIP QT

结论

SQL 的实现如此之多,以至于很难跟踪所有的实现。如果您确实在技术挑战中遇到了一个新的实现,并且您没有办法实际测试查询,那么可以放心地假设它与所有其他实现一样。每个 SQL 实现的语法没有太大的区别。事实上,像连接这样的事情在大多数实现中仍然是一样的。最大的区别在于功能和具体用途,但似乎相似之处比不同之处更常见。

火星编年史——当深度学习遇到全球协作

原文:https://towardsdatascience.com/the-martian-chronicles-when-deep-learning-meets-global-collaboration-872425ba2787?source=collection_archive---------18-----------------------

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

上面你看到的是两张火星表面的灰度照片,是在勇气号着陆点附近拍摄的,勇气号是由美国宇航局建造的机器人漫游车,在 2004 年至 2010 年期间活动。如果你仔细观察,你会发现箭头右边的图像与左边的图像完全相同,只是陨石坑被神经网络用白色高亮显示了。

如果你想知道这个非凡的结果是如何实现的,不要再想了,让我告诉你一个你从未听说过的故事——在这个故事中,你会发现来自地球各个角落的一群人,拥有不同的技能*(与火星相关或无关)*,他们如何远程合作,创建了一个能够自动下载和分析火星表面原始图像的完整管道。

我将这整个 2 个月的“太空之旅”分成 6 个阶段,并冒昧地对每个阶段做一个简要的概述。

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

The entire space-trip of 2 months, broken up into 6 stages

起源故事

这一切都始于 **火星,**当然还有 太阳系中第二小的行星,由稀薄的大气层组成,其表面特征让人想起月球的撞击坑以及地球的山谷、沙漠和极地冰盖。

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

Examples of the Mars’ diverse surface

最近,寻找技术签名——为过去或现在的外星技术提供科学证据的可测量属性——获得了新的兴趣。

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

会见 Omdena——这是一个全球合作平台,汇集了来自 18 个国家的 36 名地球人,为期 2 个月,以确定火星表面的异常情况,这将有助于发现技术签名和着陆点。当我在浏览我的媒体新闻时,我偶然发现了这颗宝石,并无意中发现了下面这篇改变人生的文章:

[## 通过协作学习 AI,而不是通过竞争。

与他人一起学习,获得真实世界的经验,成为全球社区的一员。

medium.com](https://medium.com/omdena/learn-ai-through-collaboration-not-through-competition-f3b13f7f3f21)

这篇文章出现的正是时候,当时我已经在诸如 Udacity、fast.ai、Coursera 等平台上完成了相当多的 ML 课程。,并在寻找全新的项目来应用我新获得的技能。我没有浪费时间申请,几天后,经过简短的面试,我非常兴奋地收到一封电子邮件,确认我在这个项目中的 ML 工程师的角色。

如果没有出色的在线协作工具,未来两个月的协作是不可能的,例如:

  • Slack ,我们曾经在名副其实的#channels 的帮助下,用它来相互交流和集思广益。
  • Zoom ,我们用它来举行每周同步视频会议,所有参与者每周都可以分享他们的进步和学习。
  • GitHub ,我们用来贡献和分享所有开发代码的。
  • 谷歌合作实验室,免费提供支持 GPU 的 Jupyter 笔记本电脑,以试验不同的模型。
  • Google Drive、Google Docs 和 Google Slides ,帮助我们以一种易于阅读的格式记录我们所有的数据和知识,并将它们呈现给其他人。

接近

在我们自己的 Python 包——mars-ode-data-access——诞生之前,我们花了两周时间分析需求。对于那些试图访问和下载火星表面图像的人来说,这让生活变得更加容易。关于它的用法的所有信息都可以在这里找到—https://github.com/samiriff/mars-ode-data-access

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

Sample usage of the mars-ode-data-access Python package

数据是如何从火星一路传回我们的 Jupyter 笔记本的?长话短说,由美国宇航局建造的火星探测轨道器 (MRO) ,使用高分辨率成像科学实验 (HiRISE) 相机捕捉火星表面的高分辨率照片,并通过深空网络 (DSN) 传回地球。像我们这样的普通用户通过在我们的浏览器中打开火星轨道数据浏览器 (ODE) 网站来访问所有这些数据,或者更好的是,通过使用我们自己的 python 包以编程方式访问这些数据。

如果你想更深入地了解这一旅程的细节,请阅读下面的文章了解更多信息:

[## 从火星轨道飞行器到陆地神经网络的旅程

引入 Python 包来高效处理来自火星的数据

medium.com](https://medium.com/omdena/a-journey-from-martian-orbiters-to-terrestrial-neural-networks-93541169f665)

数据

一旦我们获得了数据,我们需要理解我们正在寻找的异常。基于芝诺多数据集,我们能够识别 7 种不同的异常,即陨石坑、黑色沙丘、斜坡条纹、明亮沙丘、撞击喷出物、蜘蛛和瑞士奶酪。

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

除此之外,我们还从火星任务的不同着陆点识别出了技术特征,比如美国宇航局的好奇号探测器的降落伞。

此外,我们创建了预处理实用程序来对齐、裁剪、平移、旋转、缩放和转换下载的数据。

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

你可以在下面这篇由 Sebastian Laverde 撰写的文章中找到关于这些工具的更多细节:

[## 通过深度对抗训练进行马氏检测

“通过每一个发现的裂缝,一些看似不正常的东西从黑暗中掉了出来,落下来,作为进入……

medium.com](https://medium.com/omdena/marsian-omaly-detection-through-deep-adversarial-training-4dbb10744ce8)

标签

所有数据就绪后,我们必须手动标记所有图像。简单图像分类的日子已经一去不复返了。我们现在生活在一个对象检测和语义分割的世界,有各种各样的注释工具和标签格式!糟糕的是没有一个单一的标准,这就是为什么我们有多个参与者使用不同的注释工具来标记不同的图像。贴标签是一项相当劳动密集型的任务,这是我们证明我们在数量上的优势的时候,我们平均在一周多一点的时间里,通过贴标签 300-400 张图片,完成了这项看似艰巨的任务。

我们开始使用label img——一种开源注释工具,在感兴趣的异常周围绘制矩形框,还创建了一个实用程序,用于在 PASCAL VOCYOLO 格式之间自动转换。

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

Drawing bounding boxes over craters with the LabelImg Tool

然后,我们使用 VGG 图像注释器(VIA) 工具在感兴趣的异常周围绘制多边形。

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

Drawing Polygons around Bright Dunes with the VIA tool

最后但同样重要的是,我们创建了一个工具——https://github.com/samiriff/image-annotation-converter——能够在 LabelMe 工具的帮助下,自动将来自 VIA 工具的多边形注释转换为分段遮罩。

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

Segmentation masks of craters obtained from an image annotated with the VIA tool

模型

终于,经过如此精心的准备,我们到了大家期待已久的阶段——模特选拔和培训!

我们尝试了监督和非监督模型,但为了保持这个故事的简洁,我将展示 3 个监督模型 (SSD,Mask R-CNN 和 U-Net) 和 1 个非监督模型 (Ano-GAN) 。所有实验都在谷歌实验室进行。

单触发多盒探测器(SSD)

利用由 1674 个训练样本、350 个验证样本和多种类型的图像转换组成的 LabelImg 注释数据集,由预训练 Resnet34 模型支持的单次多盒检测机通过 1 周期学习率调度器被训练 30 个时期。选择焦点损失作为损失函数,并通过 Adam 优化器在 6.5 分钟内将其最小化,从而产生下图中显示的预测,异常周围有边界框。

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

Parameter Values, Model Architecture and Sample Predictions for an SSD Model

屏蔽 R-CNN

利用 VIA 注释数据集和 1024 x 1024 像素的更高输入分辨率,由预训练的 Resnet101 主干支持的掩模 R-CNN 模型被训练 30 个时期。损失函数由边界框和掩膜损失的组合组成,由 SGD 优化器在大约 3 小时内最小化,从而产生下图中显示的预测,异常以不同颜色突出显示。

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

Parameter Values, Model Architecture and Sample Predictions for a Mask R-CNN model

优信网

利用分割掩码的数据集,由 Resnet18 模型支持的 U-Net 模型利用 1 周期学习率调度器,使用学习率和权重衰减的不同组合,被训练 47 个时期。Adam 优化器在大约 2 小时内将交叉熵损失函数的平坦损失最小化,从而产生了下图中的预测,异常以白色突出显示。

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

Parameter Values, Model Architecture and Sample Predictions for a U-Net Model

阿诺-甘

最后但并非最不重要的是,利用 10000 幅图像的完全未标记数据集,对 200 个时代训练了一个生成性对抗网络。Adam 优化器在大约 6 小时内将 L1 重建损失降至最低,从而产生了显示在右侧的预测。探测到了隔热板、降落伞、坠机地点和好奇号火星车等技术特征。

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

Parameter Values, Model Architecture and Sample Predictions for an Ano-GAN model

在这篇由 Murli Sivashanmugam 撰写的文章中,阅读更多关于这种模型的架构以及它是如何被训练的:

[## 火星表面的异常探测——大海捞针!

我们如何克服数据挑战,并使用深度卷积网络和社区协作来检测…

medium.com](https://medium.com/omdena/anomaly-detection-in-martian-surface-searching-for-needles-in-a-haystack-169fb0246da7)

在继续之前,我想花一点时间感谢杰瑞米·霍华德fast.ai 背后的人们,他们创建了这样一个奇妙的图书馆和令人惊叹的视频讲座,这使我们更容易理解 SSD、U-Net 和 GAN 模型的内部工作原理。如果你之前没看过这个课程,我强烈建议你立刻访问 https://course.fast.ai

结果

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

Precision, Recall, and F1-Scores for all label classes

发现 U-Net 模型产生了最好的分数。所有异常的精确度分数都在 90%以上,但是在技术签名、斜坡条纹和蜘蛛的召回分数方面仍有改进的空间。

基于交集超过并集 (IOU) 分数的混淆矩阵如下所示:

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

等等!这个故事还没有结束。在我结束之前,让我向您展示一个用户友好的应用程序,它是通过将所有这 6 个部分结合在一起创建的,以创建一个端到端的管道,能够直接从火星轨道数据探测器下载图像,并使用我们训练有素的 U-Net 模型进行分析*(确保您在支持 GPU 的环境中运行此笔记本)*:

[## 谷歌联合实验室

用户友好的 Mars ODE + U-Net 管道

colab.research.google.com](https://colab.research.google.com/drive/1snboX3JG9USKmbCAGf3XtCZkSjayMgM2)

如果你想看我们所有的实验或者也有所贡献,请访问https://github.com/cienciaydatos/ai-challenge-mars

结论

好了,这就是我们过去两个月的旅程。我希望你喜欢阅读我们的项目,就像我们喜欢做它一样。

在这个项目中合作工作类似于训练一个神经网络,在项目开始时,事情是混乱的,随机的陌生人加入了一个新创建的合作环境(类似于神经网络中的权重和偏差在创建过程中是如何随机初始化的)随着时间的推移,我们逐渐了解并相互学习。 通过不断迭代(类似于神经网络如何在多个时期逐渐调整其权重以最小化成本函数)来精炼我们的理解并变得不那么混乱,直到我们实现我们的目标或接近它(类似于神经网络最终产生预期结果的方式)。 **

我们非常感激 Rudradeb Mitra 把我们聚集在一起并指导我们;丹尼尔·安格豪森帕特里西奥·韦塞拉为我们提供问题陈述指导;迈克尔·布哈特宣传我们的媒体文章,并让我们了解奥姆德纳的最新动态;法维奥·瓦兹奎帮助我们开始使用 GitHub 上的开源库。

在一个被贪婪、仇恨和偏狭所困扰的世界里,奥姆德纳为消除国家壁垒带来了一股新鲜空气。这个项目证明了这样一个事实,即把一群来自地球不同角落的陌生人聚集在一起,他们以前从未见过面;超越地理边界和时区,共同努力解决引人入胜的社会问题;虽然每天都互相学习和启发,但这不仅仅是一个白日梦,感谢在线教育、协作工具和 Omdena 这样的平台!

如果您希望了解更多关于 Omdena 的信息,并将您的技能应用于新的合作挑战,请访问https://omdena.com

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

地面控制呼叫汤姆少校。通话完毕……

参考

[1]http://course 18 . fast . ai
【2】https://zenodo.org/record/2538136#.XTHh3OgzbIV
【3】https://medium . com/om dena/a-journey-from-mars-orbiters-to-terrestrial-neural-networks-93541169 f 665
【4】https://github.com/cienciaydatos/ai-challenge-mars
【5】https://medium . com/om dena/pushing-the-the

GANs(生成对抗网络)背后的数学

原文:https://towardsdatascience.com/the-math-behind-gans-generative-adversarial-networks-3828f3469d9c?source=collection_archive---------3-----------------------

详细了解原始 GANs 背后的数学原理,包括其局限性

1.介绍

生成对抗网络(GAN)由两个模型组成:生成模型 G 和鉴别模型 D 。生成模型可以被认为是一个试图制造假币并使用它而不被抓住的伪造者,而鉴别模型类似于警察,试图抓住假币。这场竞争一直持续到伪造者变得足够聪明,能够成功骗过警察。

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

Figure 1: Representation of the generator and discriminator as a counterfeiter and police, respectively. Figure from [1].

换句话说,

**鉴别器:**作用是区分真实的和生成的(假的)数据。

**生成器:**作用是以一种可以欺骗鉴别器的方式创建数据。

2.一些参数和变量

在我们进入推导之前,让我们描述一些参数和变量。

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

3.损失函数的求导

Ian Goodfellow 等人在原论文中描述的损失函数可以从二元交叉熵损失公式中导出。二进制交叉熵损失可以写成:

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

3.1 鉴频器损耗

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

现在,鉴别器的目标是正确地分类伪数据集和真实数据集。为此,等式(1)和(2)应最大化,鉴频器的最终损失函数可由下式给出:

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

3.2 发电机损耗

这里,生成器与鉴别器竞争。因此,它将尝试最小化等式(3)并且损失函数被给定为:

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

3.3 组合损失函数

我们可以组合等式(3)和(4)并写成:

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

请记住,上述损失函数仅对单个数据点有效,要考虑整个数据集,我们需要将上述等式的期望值取为

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

该等式与 Goodfellow 等人在原始论文中描述的等式相同。

4.算法

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

Figure 2: Algorithm described in the original paper by Goodfellow et al. Figure from [2].

从上面的算法可以注意到,生成器和鉴别器是分开训练的。在第一部分中,真实数据和虚假数据被插入到具有正确标签的鉴别器中,并进行训练。梯度传播保持发电机固定。此外,我们通过提升其随机梯度来更新鉴别器,因为对于鉴别器,我们想要最大化等式(6)中给出的损失函数。

另一方面,我们通过保持鉴别器固定和传递带有假标签的假数据来更新生成器,以便欺骗鉴别器。这里,我们通过降低其随机梯度来更新发生器,因为对于发生器,我们希望最小化等式(6)中给出的损失函数。

5.Pg = Pdata 的全局最优

对于任何给定的发生器 G 的最佳鉴别器 D 可以通过对损失函数(等式(6))求导来找到,

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

上述等式在数学上非常重要,但在现实中,你无法计算出最优的 D ,因为 Pdata(x) 是未知的。现在,当我们有最佳的 D 时,对于 G 的损失可以通过将等式(7)代入损失函数中得到,

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

现在,Kullback-Leibler(KL)和 Jensen-Shannon(JS)的散度由下式给出:

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

因此,

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

由于散度变为零,当 Pg 接近 Pdata 时,上述等式简化为 -2log2

6.限制

导出的损失函数(等式(9))有一些限制,这将在本节中描述。

6.1 消失渐变

等式(9)的优化目的是将 PgPdataPr 移动,以获得最佳 D 。如果 PrPg 之间没有重叠,JS 偏差保持不变(图 3)。可以观察到,距离大于 5 时,JS 散度为常数,其梯度接近于 0,代表训练过程对 G 没有任何影响(图 4)。只有当 PgPr 有明显重叠时,梯度才不为零,这意味着当 D 接近最优时, G 将面临梯度消失的问题。

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

Figure 3: Illustration of training progress for a GAN. Two normal distributions are used here for visualization. Given an optimal D, the objective of GANs is to update G in order to move the generated distribution Pg (red) towards the real distribution Pr (blue) (G is updated from left to right in this figure. Left: initial state, middle: during training, right: training converging). However, JS divergence for the left two figures are both 0.693 and the figure on the right is 0.336, indicating that JS divergence does not provide sufficient gradient at the initial state. Figure from [3].

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

Figure 4: JS divergence and gradient change with the distance between Pr and Pg. The distance is the difference between the two distribution means. Figure from [3].

这个问题可以通过修改 G 的原始损失函数来解决,

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

6.2 模式崩溃

在训练过程中,发电机可能会陷入一个设置,在那里它总是产生相同的输出。这被称为模式崩溃。发生这种情况是因为 G 的主要目的是欺骗 D 不产生不同的输出。这背后的数学有点复杂,将在以后的文章中讨论。

顺便说一句,这是我的第一个故事,我希望你喜欢它。

7.参考

1]阿蒂恩萨,罗威尔。使用 Keras 的高级深度学习:应用深度学习技术、自动编码器、GANs、可变自动编码器、深度强化学习、策略梯度等。帕克特出版有限公司,2018 年。

2]古德费勒,伊恩,等《生成性对抗性网络》神经信息处理系统的进展。2014.

[3]王、、佘琦、沃德。“生成性对抗网络:综述与分类.” arXiv 预印本 arXiv:1906.01529 (2019)。

《生命的意义》及其他 NLP 故事

原文:https://towardsdatascience.com/the-meaning-of-life-and-other-nlp-stories-4cbe791ce62a?source=collection_archive---------18-----------------------

面向语言爱好者的组合语义学 Pythonic 介绍。

“意义”的含义

"我们的技术困住了,而我们真正想要的只是能工作的东西。"亚当斯

尽管在这个人工智能时代,科技巨头做出了种种承诺,各种全新的小玩意迅速充斥着我们的家庭,但我们仍然很容易发现机器完全误解人类语言的令人沮丧的例子。在数千万美元之后,我们得到了这个:

Some A.I. epic fails — I’m sure you have your own top 10.

当我们期待这个的时候(顺便问一下,我的喷气背包在哪里?):

A.I. writing a piece of music for you (awwww).

为什么?

简而言之,理解语言是非常困难的,因为解决语言之谜意味着在一个同样困难的问题网络中航行,这些问题涉及我们认知能力的极限、逻辑表达的能力以及人类社会的怪癖和偏见:在柏拉图关于这个问题的思想提出多年后,我们仍然远远没有一个好的理论。

对于“自然语言处理”(或“自然语言理解”, NLU ,就像最近酷孩子说的)来说,显然是意为的概念:可以说,我们在 NLU 仍然落后的原因之一是,我们对于意为没有一个好的、统一的观点。由于技术和历史原因,文献在某种程度上分为两种观点:

  • 有一种“统计”观点,例如由 word2vec 和相关作品举例说明,主要在机器学习社区中进行:这里的焦点主要是词汇项和语义关系,如同义词;通常,这些分析成为下游系统应对挑战的支柱,如情感分析和文本分类。在一句广告语中,意为是多维语义空间中的向量;
  • 有一种关于意义的“功能”观点,例如由相关的著作举例说明,主要由语言学家,语言哲学家和逻辑学家执行:这里的重点主要是推理的系统规则和语义关系,如蕴涵;典型的任务是自动推理和知识表示。在广告语中,表示是语言片段的功能(如名词、连接词等)。)到集合论对象(例如集合的元素、函数等)。).

虽然这种区分显然有点过于简单(虽然,例如,非常接近于背景中的 Baroni 等人的,但这是一个很好的初步近似:第一种方法更实用,更善于解释词汇概念之间的关系( 男人对于国王,什么女人对于……?”;第二种比较抽象,善于解释文字如何组合在一起产生复杂的概念。

为了在深入理论之前立即理解一些实际后果,请考虑您最喜欢的 CRM 中的以下客户表:

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

A sample customer table recording customers and payments.

有许多问题我们希望我们的计算机能自动回答:所有的顾客都付款了吗?鲍勃明确付钱了吗?鲍勃比阿达付的多吗?

在“统计”视图下(比如,一个深度学习聊天机器人),我们会尝试收集许多(许多!)配对<问题,在这个和类似的设置中回答>,然后想出一些优化程序,让我们的系统准备好回答看不见的问题。在“功能”的观点下,我们将首先教计算机关于列和它们的关系,然后使用语义的力量通过评估合适的正式语言的表达式来回答看不见的问题。所谓的“作为推理的查询”范式不需要大数据训练,并且随着问题复杂性的增加,可以预测地推广,但它有自己的缺点。

我们相信这两种传统都使我们对语言的理解有了很大的进步,但是当然没有一种传统能让我们达到 HAL 9000。无论您选择什么武器来应对当前的 NLP 挑战,对这两种观点的深刻理解对于在艰难的现实场景中取得进展都是至关重要的。既然有大量最近的材料 关于第一个传统已经可用这个小帖子将作为我们(固执己见的)第二个中基本概念的介绍。

免责声明:这篇文章主要是为熟悉统计 NLP 工具包(从 后退语言模型 ,到word 2 vec*)但从未接触过形式语义的刺激和危险的数据科学家和受过教育的读者写的。遵循古语“*我不能创造的,我不理解的”,我们强化了共享一个 小 Python 项目 的概念(完整细节在最后)。另一方面,已经熟悉模型理论但不太熟悉现代编程语言的读者可以使用 repo 来了解“语义计算”如何通过代码来表达(请注意,我们将在这里或那里稍微滥用符号和术语,以专注于建立直觉,而不是开发正式的系统)。

这个帖子的代码可以在GitHub上免费获得。

思想的语言(或者:如何用简单的概念表达复杂的概念)

命题是其真值条件的表达。”—维特根斯坦,《逻辑哲学论》 (4.431)

为了理解作为一门学科的形式语义学(以及它与其他方法的不同),我们需要回到 20 世纪初的一个疯狂的奥地利人身上。理解一句话的意思是什么?

理解一个句子的意思意味着理解它的真值条件,也就是说,理解如果这个句子是真的,这个世界会是什么样子。

所以,要让“狮子比家猫大”成为事实,世界应该是这样的:一种给定类型的猫科动物比另一种更大(真);要让“狮子比蓝鲸大”成为真,世界应该是这样的,给定类型的猫科动物比给定类型的水生哺乳动物大(假)(请注意:我们能确立句子是真/假的事实与理解它无关;每个人都明白“1517 年 1 月 1 日威尼斯的猫的总数是奇数。”,但没人知道是不是真的)。

所以如果我们买那个意=真条件,问题不就解决了吗?实际上没有,因为可能的句子数量是无限的:没有一个列表,无论多么大,都会给我们“英语的所有真实条件”。让读者惊讶不已的是,下面这句话——很可能是历史上第一次写在这里**—**——可以毫不费力地理解:

46 只企鹅从 Ciad 的一个基因实验室意外逃脱后,在撒哈拉沙漠中失踪。

这是怎么发生的?资源有限的有限头脑怎么可能无限理解许多事情?

形式语义就像玩无限乐高:复杂的乐高是用更简单的积木搭建的,更简单的乐高是用基本的乐高积木搭建的;如果你知道砖块是如何组合的,并且有一些砖块作为开始,你可以创造出无数的东西。以非常相似的方式,一个句子的(待定义)含义可以预测地从其成分的(待定义)含义中建立起来:所以如果你知道企鹅撒哈拉的含义,你就可以理解一只企鹅在沙漠中迷路意味着什么。

形式语义学是研究指令集的学科,在指令集里我们的语言可以被组合在一起。

如果所有这些对人类来说都很简单,那么检查一些著名的 NLP 架构中的组合性将会很好。以下面的两个句子和 DeepMoji 为例,这是一个建议表情符号的神经网络(这个例子来自我们的人工智能观点文章):

  • 我的航班被延迟了…太神奇了。
  • 我的航班没有延误…太神奇了。

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

The same emojis are suggested for the sarcastic vs normal sentence (original video here).

这两个句子只有一个单词不同(而不是),但我们知道这个单词是“特殊的”。而不是促成的方式(是的!)上面句子的真值条件被 DeepMoji 完全忽略了,它甚至不拥有一个非常基本的复合性概念;换句话说,在一个句子中添加否定通常不会在一条想象的“意义线上”移动几个点(无论如何解释)(就像在“这个蛋糕(非常)好”中添加“非常”),而是完全“颠倒”它。

无论 DeepMoji 和类似系统中嵌入了什么“语言理解”,如果我们要捕捉上面的而不是行为,我们需要一种完全不同的方式来表示的含义。形式语义学的故事是关于我们如何利用数学使“语言乐高”的概念更加精确和易于处理的故事。

请注意,这不是一个大团圆结局的故事。

语义学 101

“在我看来,自然语言和逻辑学家的人工语言之间没有重要的理论区别。”——r·蒙塔古

关于表示的一个关键问题是,它有两个元素——回想一下上面那个古怪的奥地利人的定义:

…理解如果这句话是真的,世界会是什么样子。

所以有一个句子,没错,但也有世界:意义,本质上是我们的语言和我们的世界之间的某种关系(从技术上来说,多个世界,但事情就变得复杂了)。由于世界是一个相当大且不切实际的东西,我们使用集合论中的对象作为我们的世界模型。在公式和代码之前,我们将首先使用这一部分来建立我们的直觉。

我们的第一个玩具语言由以下基本元素组成:

names = ['Jacopo', 'Mattia', 'Ryan', 'Ciro']
predicates = ['IsItalian', 'IsAmerican', 'IsCanadian']
connectives = ['and']
negation = ['not']

基本元素可以根据以下语法规则进行组合:

a "name + predicate" is a formula
if A is a formula and B is a formula, "A connective B" is a formula
if A is a formula, "negation A" is a formula

这意味着下面的句子都是 L 的一部分:

Jacopo IsItalian
Mattia IsAmerican and Jacopo IsItalian
not Jacopo IsItalian
...

现在是时候介绍一下语义了:虽然我们可能会被诱惑使用一些背景知识来解释 L (例如,我的名字是“雅格布”),但记住 L 中的句子没有任何意义是绝对重要的。由于我们期望复杂事物的意义是从简单事物建立起来的,我们将从名称谓词的意义开始,因为“名称+谓词”是我们需要解释的最简单的句子。我们从论域 D 开始,论域是由一些元素和一些子集组成的集合,然后我们说:

  • 名字的意义(它的“外延”)是 D 的一个元素;
  • 谓词的意义(它的“外延”)是 d 的子集。

D 是我们模型的通用“容器”:它只是一个“盒子”,里面有表示 L. 中的含义所需的所有部分。如果您将一个示例 D (如下)可视化,就很容易理解我们如何为“名称+谓词”句子定义真值条件:

  • 如果 A 是“名+谓”句,则 A 为真当且仅当name的外延在predicate的外延内。

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

A sample domain for our toy language L.

比如说:

  • 当且仅当代表JacopoD 中的元素是代表IsItalian的集合的成员时,“Jacopo IsItalian”为真;
  • 当且仅当代表JacopoD 中的元素是代表IsCanadian的集合的成员时,“雅格布是加拿大人”为真。

正如我们所了解的,真值条件不会告诉你什么是真/假,而是告诉你这个世界(更好地说,你的世界模型)对于事物的真/假应该是什么样子。有了我们的定义,我们可以再次查看我们的 D 并且我们可以看到,在我们的例子中,“雅格布·伊斯塔利亚”是真的,而“雅格布·伊斯塔利亚”是假的。

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

The extension of “isItalian” contains the denotation of “Jacopo” (in purple).

L 中的一个句子在我们这个集合论的小世界中为真时,我们也说这个句子在模型中是满足(从技术上讲,对句子来说为真是对一般公式来说满足的特例)。既然我们已经为基本句子定义了真值条件,我们就可以通过基本句子来定义复杂句子的真值条件:

  • 如果 A 是公式,B 是公式,“A 和 B”为真当且仅当 A 为真,B 为真。

比如说:

  • 当且仅当雅格布·伊斯塔里安和马蒂亚·伊斯塔里安为真且马蒂亚·伊斯塔里安为真时,雅格布·伊斯塔里安和马蒂亚·伊斯塔里安为真。

由于“Jacopo IsItalian”和“Mattia IsAmerican”是“名+谓”句,我们现在可以完整地拼出意思了:

  • 当且仅当代表JacopoD 中的元素是代表IsItalian的集合的成员,代表MattiaD 中的元素是代表IsAmerican的集合的成员。

有了我们的定义,我们可以查看 D 并且看到“雅格布·伊斯塔里安和马蒂亚·伊萨美国”是错误的,因为“马蒂亚·伊萨美国”是错误的:

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

The extension of “isAmerican” does not contain the denotation of “Mattia” (in blue).

最后,我们可以在我们的语义中看到否定如何确实是一个“反转”操作:

  • 如果 A 是一个公式,“非 A”为真当且仅当 A 为假。
  • “不是雅格布·伊斯塔里安”为真,当且仅当“雅格布·伊斯塔里安”为假。
  • 当且仅当代表JacopoD 中的元素不是代表IsItalian的集合的成员时,“not Jacopo IsItalian”为真。

显然,为我们的玩具语言 L 指定真值条件对于构建 HAL 9000 并不是非常有用。但即使是这个简单的例子,也应该注意两件事:

  1. 我们的语义是完全复合的,并允许以有限的方式为无限数量的句子分配真值条件:在 L 中没有一个可能的句子被我们的意义定义遗漏。更具表达力的语言会有(更)复杂的组合规则,但总的要点是一样的:一组有限的指令自动概括成无限多的目标句子;
  2. 我们对 D 的选择只是众多可能性中的一个:我们可以选择一个“Mattia IsAmerican”为真的世界,我们的语义也是一样的——记住,语义分配真值条件,但它没有说明这些条件实际上是如何满足的。在现实世界的应用中,我们也经常对真理感兴趣,因此我们需要将语义与“知识库”相结合,即关于我们所关心的世界的具体事实:当对现实世界的现象建模时, D 应该被解释为与其“同构”,因此“在 D 中为真”将意味着“在感兴趣的领域中为真”。

专业读者可能已经猜到了我们如何通过利用上面的(1)和(2)来构建具有直接价值的应用程序:(1)保证由语义编码的知识很好地一般化;(2)保证在我们仔细选择目标域的范围内,满意度算法将评估所有并且只有我们关心其真实性的句子为真。

特别是,即使是计算语义学中更简单的程序(比如检查任意公式满意度的代码)也可以被看作是作为推理的的查询的一个实例(这里支持):

给定一个以某种有用的方式(例如数据库)建模的世界状态,机器能自动回答我们关于感兴趣的领域的问题吗?

在接下来的章节中,我们将在这样的背景下探索一种稍微复杂一点的语言。

额外的技术要点:如果语义不以任何方式约束真理——即就语义而言,一个Jacopo isItalian为真的世界和一个Jacopo isCanadian为真的世界一样好——它本身有帮助吗?是的,非常,但是要知道为什么我们需要明白语义学的核心概念确实是*蕴涵、*即研究在什么条件下一个句子 X 在逻辑上被一组句子 Y 1 ,Y 2 ,… Y n 所隐含。特别是,真正的问题语义学设定的答案是:

  • 给定一个域 *D,*一个句子 *X,*一个句子 Y ,如果 DX 为真,那么 Y 也必然为真吗?

蕴涵也是证明理论的关键概念:事实上,我们对演绎系统和语义之间的[关系有一个惊人的证明,但这个笔记太小,无法包含它。]](https://en.wikipedia.org/wiki/G%C3%B6del%27s_completeness_theorem)

“查询作为推理”使用计算语义

“为了理解递归,你必须首先理解递归.”— 我的 t 恤

假设下表摘自我们的 CRM:

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

A sample customer table recording customers and payments.

即使看着这样一个简单的表格,我们也可能会想问很多有趣的问题:

  • 所有顾客都付钱了吗?
  • Bob 具体付出了吗?
  • 鲍勃付了五美元吗?
  • …以此类推

我们可以很好地利用我们的框架,为这个领域制定一个语义,然后查询系统以获得我们需要的所有答案(描绘这个用例的 Python 笔记本也包含在的报告中)。因此,第一步是创建一种语言来表示我们的目标领域,例如:

names = ['bob', 'dana', 'ada', 'colin'] + digits [0-9]
unary predicates = ['IsCustomer', 'IsPayment']
binary predicates = ['MadePayment', 'HasTotal']
quantifiers = ['all', 'some']
connectives = ['and']
negation = ['not']

我们的语言允许我们表达这样的概念:

there is a thing in the domain of discourse which is a customer named bobthere is a thing ... X which is a customer, a thing Y which is a payment, and X made Ythere is a thing ... which is a payment and has a total of X

第二步是建立一个模型,忠实地代表我们的兴趣表。换句话说,我们需要构建一个对象域,即名称和对象之间的映射,并正确地解释谓词扩展,以便表中指定的属性在模型中一致地表示:

domain: [1, 2, 3, 4, 5, 6],
constants: {'bob': 1, 'dana': 2, 'ada': 3, 'colin': 4},
extensions: {
  'IsCustomer': [[1], [2], [3], [4]],
  'IsPayment': [[5], [6]],
  'MadePayment': [[1, 5], [2, 6]]
  ...
}

一旦完成,我们就可以查询系统,让机器自动计算答案:

  • Did all customers pay?变成查询For each thing x, if x IsCustomer, there is a y such that y IsPayment and x MadePayment y,评估为False [ 加分技术点:为了简洁起见,我们一直在跳过涉及all语义的确切细节,其含义远比简单的名称复杂;感兴趣的读者可以探索我们的回购,了解计算allsome含义所需的所有技术步骤。
  • Did Bob pay?成为查询There is an x such that x IsPayment and bob MadePayment y,被求值为True
  • Did Bob pay 5 dollars?成为查询There is an x such that x IsPayment and bob MadePayment x and x HasTotal 5,被评估为True [ 附加技术要点:为了快速扩展语义以处理数字比较,我们必须 I)在语法规范中引入数字,ii)修改原子公式中的满意度定义,以确保数字映射到自身。显然,全面概括地包含数字需要更多的技巧:鼓励非常不懒惰的读者从现有的框架开始思考如何做到这一点!].

这不是很棒吗?如果我们的模型反映了底层的客户表,我们可以问几乎无限多的问题,并确保能够精确地计算出答案——所有这些都只需要几行 Python 代码。

从玩具模型到现实

“从理论上来说,理论和实践之间没有区别。实际上是有的。”-y .贝拉

“作为推理的查询”范式具有形式逻辑的所有优雅和美丽:一个小的和很好理解的 Python 脚本可以用来回答目标领域中潜在的无限问题。不幸的是,它也有形式逻辑的所有缺点,这使得它在实验室之外的直接应用不像你希望的那样简单:

  • 语义正如我们所定义的,它仅限于表达一些基本的概念和关系,但我们希望做得更多(例如,我们希望sum关注上面客户表中的数字)。虽然可以扩展框架以覆盖日益复杂的结构,但这需要付出一些复杂性和人工成本;
  • 真实用例中的模型构建需要做出许多艰难的决定:在我们的玩具客户表示例中,我们仍然需要做出重要的选择,如何将表行映射到可以正式查询的域。用例越复杂,数据科学家就越难产生一个紧凑、完整、可扩展的形式域;
  • 查询是用一种正式的语言完成的,这种语言对人类并不友好:用户必须知道如何将英语翻译成某种合乎逻辑的方言才能得到想要的答案。当然,一个好得多的 UX 将为用户提供一个英文搜索栏,并提供一个从自然语言翻译成正式语言的中间层——我们在所做的一些工作也是如此——因此利用了这种想法的一个版本,使查询尽可能地人性化[ 为倾向于历史的读者注意:定义正式语言的语义,然后提供英文到正式语言的翻译可以追溯到开创性的 PTQ

这些可伸缩性问题和其他技术原因(例如一阶逻辑中的完全通用推理的限制)在历史上阻止了计算语义像其他 NLP 工具一样在行业中普及。最近,一些研究项目致力于弥合基于向量的观点和基于集合论的观点之间的差距,试图两全其美:统计的可扩展性和灵活性,逻辑的组合性和结构。此外,来自概率编程社区的研究人员正在该框架内工作,将概率和组合性结合起来,以系统地解释语用现象(见我们自己关于主题的文章这里)。

Tooso ,我们的愿景一直是弥合人类与数据之间的鸿沟。虽然我们相信没有一个单一的想法能够解决的含义的谜团,并且这个谜题的许多部分仍然缺失,但我们确实认为,在人类历史上,没有比现在更好的时机来用全新的理论眼光和当今可用的令人难以置信的工程工具来应对这一挑战了。

在我们完全解决语言之谜之前,有许多用例需要* 一些* 语言理解,这可以释放巨大的技术和商业价值。

作为最后一个额外的考虑,从科学到“更大的图景”,让我们不要忘记,在这篇文章之后,我们现在应该准备好最终知道“生命”的意义是什么(轶事显然是由著名的语义学家芭芭拉·帕蒂引起的):我们必须将它翻译成一个常数符号生命,并使用一个运算符如|来表明我们正在讨论它在我们的模型中的扩展。所以,说到底,“命”的意义就是|life。也许这就是那个疯狂的奥地利人所说的:

即使所有可能的科学问题都被回答了,生命的问题仍然完全没有被触及。

但这显然是一个完全不同的故事。

再见,太空牛仔

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

这就是全部,伙计们:有数学倾向的读者有兴趣接受语义的更正式的处理,一般来说,形式逻辑的主题,被邀请从语言、证明和逻辑开始,继续可计算性和逻辑,最后用一阶模态逻辑探索可能世界的迷人概念。

如有要求、疑问、反馈,请联系jacopo . taglia bue @ tooso . ai

别忘了在媒体LinkedinTwitterInstagram 上获取 Tooso 的最新消息。

感谢

感谢 Tooso 团队的所有成员对本文前一稿的建议和反馈。

Python 3 时代的塔尔斯基

“真理只能在一个地方找到:代码.”
马丁公司

配套的 Github repo 包含 Python 3.6 中的一个工作“模型检查器”,即一个 Python 项目,给定一个公式和一些域,自动评估公式是否满足。

虽然代码被大量注释并且非常容易理解,但是我们在这里提供了对其主要部分的非常高级的描述;虽然我们不知道其他 Python 检查器也是以类似的精神构建的,但代码是作为本博客和相关项目的教育工具而不是作为高性能软件编写的(有趣的是,Bos 和 Blackburn 还在他们的书中哀叹实现“普通的”一阶检查器非常困难)。项目结构如下:

project_folder notebooks
      tarski-2-pandas.ipynb   fol_main.py
   fol_grammar.py
   fol_semantics.py
   fol_models.py test_fol_semantics.py README.md
   requirements.txt

核心文件如下:

  • 展示了如何从静态集合中加载一个模型,实例化语法和语义的类,以及评估一个表达式。
  • fol_grammar.py是处理检查器语法部分的类——它在内部使用 lark 来解析类似 FOL 的表达式,它有一个内置的递归函数来检索公式中的自由变量。如果你想扩展/改变词汇或语法约定,这就是你应该开始的地方。
  • fol_semantics.py是处理语义的类——该类公开了check _ formula _ satisfaction _ in _ model函数,该函数采用一个表达式和一个模型,将公式计算为模型中的True/False。这个类在一个带有部分赋值的模型中定义满意度,比经典的塔斯基的工作更多地遵循这个。如果您想添加语义规则或修改满意度以涵盖额外的数据结构(比方说,数据库而不是 Python 中指定的模型),这是您应该考虑的地方。
  • fol_models.py包含了一些基本的模型,可以让你开始探索检查器的行为(一些模型对于测试也非常有用)。如果您有自己的目标域要建模,您可以按照提供的示例在这里添加一个 Python 对象,然后使用fol_main.py调用该模型上的检查器。
  • test_fol_semantics.py包含一系列测试(我们通常使用 pytest 进行 Python 测试)来确保检查器在不同条件下的行为符合预期。

编码快乐!

度量元游戏

原文:https://towardsdatascience.com/the-metrics-meta-game-982001b16e6d?source=collection_archive---------17-----------------------

作为公司内部良好数据实践的管理者,我们数据专业人员经常被要求帮助设置指标,无论我们喜欢与否,我们都在围绕这个过程玩一个完整的元游戏。

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

It’s all games and moody lighting until someone loses an eye

度量设置是一项艰巨的工作。虽然有大量关于如何选择和挑选指标和 KPI(关键绩效指标)的建议,但它们都要求你非常熟悉企业的运作方式,并理解其根本目标是什么。

你必须确保事情被正确衡量,与你的主要目标有因果关系,或者至少有很强的相关性。它必须相对容易理解,你可以影响和改变,最重要的是,你只能选择其中的一小部分。平衡所有这些竞争因素是一门艺术。

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

So. Much. Ink.

然后,一旦你完成了所有的工作,你还有最后一个老板要处理——古德哈特定律。

“任何观察到的统计规律性,一旦出于控制的目的对其施加压力,就会趋于崩溃.”

从本质上讲,你选择和使用的任何指标,人们都会找到一种方法来玩弄它,它对我们选择它的目的不再有用。这种游戏行为可能非常危险,因为它颠覆了最初创建指标的初衷,甚至可能违背初衷。

他们这样做可能是因为外在的动机,比如他们的年度奖金取决于此,或者他们这样做可能是因为内在的原因,比如他们只是想要一个高分。人类是怪异却聪明的生物。

一个公制的设定者应该做什么?

否决明显自私的指标

典型的情况是,销售团队希望他们的奖金基于带来的销售线索数量,而忽略了实际完成的交易数量(和规模)。显然,积累大量销售线索比达成交易更容易,这种衡量标准的游戏显然会导致浪费大量时间来产生永远不会达成的销售线索,从而损害实际达成的交易。

大多数真实世界的例子不会那么明显,但它们通常符合一个人相对容易操纵的指标模式,同时又不完全符合公司的目标。*它们是被拉动的杠杆,而不是杠杆被拉动后系统的结果。*人们往往只关注短期收益,而忽视长期影响。

当设定一个指标时,你应该经常问自己,为了达到这个指标,需要采取什么样的行动。戴上你的黑帽子,看看你是否能想出阴险的方法来“赢得”游戏。

接受游戏的发生,尽你所能去适应它

几乎任何指标都是可以博弈的,你一个人不可能想出一个给定指标的所有漏洞和后门,更不用说那些会受指标影响的聪明人了。因此,承认元博弈的存在,并问自己“如果这个指标被滥用,它会疯狂上涨,会发生什么,它会是一个净正数吗?”

一个例子是某人在脸书上的朋友数量,尤其是在早期。当然,肆无忌惮的人可以也确实在脸书上购买大量的机器人朋友,但平均来说,拥有更多联系的用户会让社交网络变得更强大、更有粘性。机器人可以作为一种扭曲力量单独处理,但从脸书的角度来看,出于自身原因试图最大化数量的正常人类可以被视为积极的。

免责声明:我从未与脸书合作过,也没有听说过他们的标准,我只是编造了一些说明性的例子。

总体而言,该指标与公司的核心使命越一致,就越有可能产生类似的积极关系。

控制出现的扭曲因素

和前面的例子一样,由于各种原因,一个度量标准可能是好的,但是仍然有明显的方法可以进行游戏。尽管遇到了挫折,您可能仍然认为这是一个正确的衡量标准,因为它对许多其他结果非常重要。在这种情况下,您可以通过明确地从指标中排除某些类型的行为(例如,排除所有内部用户),或者根除扭曲的来源(例如,禁止所有机器人),来建立针对游戏行为的防护栏。

虽然这是一种不令人满意的反应姿态,但抓住骗子的成本可能是你可以接受的。请注意,它催生了一系列关于如何发现和抓住骗子的新指标讨论。它的度量会议一路向下。

无论你选择什么,都要保持警惕

自由的代价可能是永远的警惕,但可悲的是,这同样适用于核心公司指标。人们需要时刻警惕不当行为。这真的很难做到,因为在事情顺利进行了一年之后,很容易变得自满。

至少,每隔一段时间(可能每隔 1-3 年),建议进行一次新的分析,看看最初使该指标具有吸引力的因素(与公司目标的一致性、简单性、变革能力)是否仍然有效。业务和人员会发生变化,您的度量标准也需要随之变化。

类似地,如果一个指标讲述了一个伟大的成长故事,其他指标应该讲述这个故事的变化,理想的是那些测量完全不同的系统或过程的指标。当一部分说了伟大的事情,而另一部分没有时,要保持警惕。

不要麻痹大意

很容易被所有这些问题淹没。我的建议是,做好你的系统运行的功课,获得反馈,然后花一两天时间思考效用和漏洞。之后,根据你所知道的,挑选看起来最好的。

你不太可能第一次(或者永远)就把你的核心指标做到完美。幸运的是,度量是我们为自己制造的工具。当它们不起作用时,我们可以改变它们。

其他参考文献

我只关注指标设置的游戏/滥用方面,因为我认为这是探索最少的部分。像往常一样,我从我的个人经历中汲取了很多,而且会有各种各样的差距。YMMV。

关于度量设置的一些更严肃的处理,从上到下,看看这些替代来源:

“构建更少缺陷的度量标准”——David Manheim——关于度量标准和古德哈特定律的学术论文

以及一个有趣的框架来定义新的指标:

[## 为任何产品定义优秀指标的 4 个步骤

一个心智模型和框架,你可以用于新产品、现有产品,甚至 PM 访谈

hackernoon.com](https://hackernoon.com/metrics-game-framework-5e3dce1be8ac)

微软数据科学家访谈

原文:https://towardsdatascience.com/the-microsoft-data-scientist-interview-e511d6947652?source=collection_archive---------2-----------------------

微软数据科学面试问题

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

在 Azure 和它的机器学习工具成为云计算市场上最大的服务提供商之后,微软一直是数据科学行业的一个大玩家。因此,在过去五年里,微软一直在缓慢但稳步地建设其数据科学团队,以成为招聘该职位的最大公司之一。

工作角色

微软数据科学家的角色变化很大,取决于你面试的团队。每一份微软数据科学工作都是不同的,从基于分析的角色到更多的机器学习任务。作为一家庞大的多企业集团公司,微软有不同的团队,从事语音和语言、人工智能、Azure 上的机器学习基础设施、云计算的数据科学咨询等工作。

所需技能

微软通常更倾向于雇用至少有 2 年以上数据科学工作经验的有经验的候选人担任中级职位。一般资格是一个定量领域的博士学位,以及在这些领域中的任何一个领域(DNN、NLP、时间序列、强化学习、网络分析或因果推理)的几年经验。

  • 以前在 DNN,自然语言处理,时间序列,强化学习,网络分析,因果推理或任何相关领域的经验
  • 精通以下任何数字编程语言(Python/Numpy/Scipy、R、SQL、C#或 Spark)
  • 具有 AWS 或 Azure 等基于云的架构的经验

数据科学家有哪些类型?

微软有一个工程部门叫做数据和应用科学。这个部门的员工通常被分成团队,有三个主要头衔:数据科学家、应用科学家和机器学习工程师。根据团队的不同,他们的职能包括:

  • 编写代码将模型交付生产。
  • 为机器学习算法编写代码,供其他数据科学家使用。
  • 直接或间接与客户合作解决技术问题。
  • 致力于度量和实验。
  • 开发产品功能。

微软数据和应用科学家角色的理想候选人应该能够应用广泛的机器学习工具和分析技术来回答广泛的高影响力业务问题,并以简洁有效的方式提出见解。

面试

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

Azure ML

初始屏幕

提交工作申请后,第一个电话面试的人可能是招聘人员,也可能不是,这取决于职位的资历级别。很多时候,招聘经理会先进行一次 30 分钟的面试,以了解你过去的经历。

预计电话面试的这一部分将分为两个部分。你会被问到你的背景和项目,以及一些技术性的面试问题。技术面试问题将更加理论化,解释机器学习概念如何工作,或者快速概率或统计问题。

例子:

  • 套索和岭回归有什么区别?
  • 你会如何向商业人士解释深度学习模型的工作原理?
  • 对于非技术人员,你如何定义 p 值?

点击 查看我们的 机器学习面试指南。

技术屏幕

在招聘经理筛选之后,招聘人员将安排微软数据科学家进行第二次更具技术性的筛选。一般来说,这个屏幕是 45 分钟到一个小时,旨在测试纯粹的技术技能,以及你如何编码和解释你的思维过程。

技术屏幕由大约三个不同的问题组成,涵盖了算法、SQL 编码和概率统计的主题。期待类似于 Python 中的数据结构和算法的问题以及数据处理类型的问题。

示例:

  • 给定一个单词数组和一个最大宽度参数,格式化文本,使每行正好有 X 个字符。
  • 编写一个查询,从一个有 1 亿行的表中随机抽取一行。
  • 你掷出三个骰子至少掷出两个 3 的概率有多大?

你即将登上去西雅图的飞机。你想知道你是否应该带一把伞。

你打电话给住在那里的三个朋友,分别问他们是否在下雨。你的每个朋友都有 2/3 的机会对你说真话,1/3 的机会用谎言来搞乱你。三个朋友都告诉你“是的”下雨了。

西雅图真的下雨的概率有多大?

在我们的互动指南中尝试解决微软的概率问题

现场面试

现场面试包括从上午 9 点到下午 4 点的全天活动。您将会见五位不同的数据科学家,并参加一次午餐访谈。

面试小组通常是这样的:

  • 概率与统计
  • 数据结构和算法
  • 建模和机器学习系统
  • 招聘经理和行为面试
  • 数据操作
  • 您还将在午休时间与一两位数据科学家进行一对一的交流,以了解更多关于微软及其团队的信息。这通常是一个小时的午餐面试,他们会让你休息一下或者谈谈他们正在做的事情。

现场访谈将主要是所有不同技术概念的组合。请记住学习不同环境下的不同模型评估指标、共线性下系数的偏差/方差权衡、关于采样方案的开放式问题、实验和 ab 测试设计、向 5 岁儿童解释 p 值、贝叶斯定理的不同概念,以及向面试官教授您选择的统计学习技巧。

微软的另一个重点是沟通,因为微软的数据科学团队在整个组织中都有合作伙伴,以确保团队正在做有用的工作。

你可以在面试查询或者 Leetcode 上找到很多数据结构和算法的问题。考虑到白板上的编码与电脑上的编码有多么不同,还建议拿一块白板来练习编写代码。

微软数据科学面试问题示例

  • 你如何从 600 万个搜索查询中选择一个有代表性的样本?
  • 求整数列表中子序列的最大值?
  • 举一个你会使用朴素贝叶斯而不是另一个分类器的场景的例子?
  • 你如何尽可能简洁地解释 MapReduce 的功能?
  • ROC 曲线和敏感性、特异性、混淆矩阵的含义是什么?
  • 自动完成特性:你会如何实现它,你能指出这个工具目前的缺陷吗?
  • 描述合并给定的 k 个大小为 n 的排序数组的有效方法。

感谢阅读!

百万美元的神经网络,第一部分:理解生物学基础

原文:https://towardsdatascience.com/the-million-dollar-neural-network-part-i-understanding-the-biological-basis-6920910a7cf9?source=collection_archive---------30-----------------------

了解如何建立一个神经网络,并在这个由 3 部分组成的系列中赢得 165 万美元的 CMS 人工智能健康成果挑战赛

如果我告诉你,你可以学会使用机器学习——更具体地说,神经网络——来解决医疗保健中的一些最大问题,会怎么样?

你们中的一些人可能会感兴趣。其他的,就没那么多了。

但是现在,如果我告诉你,这样做,你就有机会赢得一百万美元,同时为人类的利益做出贡献,会怎么样呢?

这会引起你的注意吗?

如果是这样,这是你的大好机会。

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

Do I have your attention? Good.

医疗保险和医疗补助服务中心最近宣布,他们计划分配高达 165 万美元鼓励开发人工智能在医疗保健领域的现实应用

这项挑战被称为人工智能健康结果挑战,正如它的名字一样,要求提交使用人工智能(或机器学习,更具体地说)预测健康结果的作品:

医疗保险和医疗补助服务中心(CMS)医疗保险和医疗补助创新中心(创新中心)与美国家庭医生学会和劳拉·约翰·阿诺德基金会合作,发起了人工智能(AI)健康成果挑战。CMS 人工智能健康成果挑战赛将分配高达 165 万美元的资金,以鼓励人工智能在健康和医疗保健领域的进一步发展,并加速该技术的现实应用开发。

参与者将分析大型医疗保健数据集,并开发提案、人工智能驱动的模型和框架,以准确预测计划外医院和 SNF 入院和不良事件。

这发生在一个令人惊叹的时代,现在构建神经网络比以往任何时候都更容易,因为 Keras 现在充当了tensor flow 2.0的高级 API(不要担心——如果你还不知道,到本系列结束时你就会知道这到底意味着什么)。

现在你可能会说,“那太好了,但我以前从未编写过代码,更不用说构建神经网络了。”

谢天谢地,机器学习并不是真的要成为伟大的程序员。

喘息 “亵渎!”你可能会说。

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

“You stink. You smell like beef and cheese! You don’t smell like a Data Scientist.”

现在这只是我个人的看法,所以要半信半疑——但机器学习更多的是理解算法背后的和学习如何** 机器学习 而不是编码。**********

当然,您需要牢牢掌握 Python。但是,让数据科学家脱颖而出的是对底层概念的非凡理解,而不是非凡的编码能力。*

*和 SQL 进行数据工程,处理数据库等。你大部分的时间都将在那里度过。不幸的是,这种很酷的机器学习只是大多数数据科学家日常工作的一小部分

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

**From Forbes, “Cleaning Big Data: Most Time-Consuming, Least Enjoyable Data Science Task, Survey Says”

这就是为什么,在本教程的第 1 部分和第 2 部分,我们将花很多时间关注概念(第 1 部分的生物学基础;第 2 部分中的机器上下文),然后在第 3 部分中实际构建我们的神经网络。

神经网络的生物学基础

神经元解剖学

我们的大脑由神经元组成。没有变得不必要的复杂,神经元通过树突*(图中那些看起来像头发的小家伙)接收来自其他神经元的大量输入。***

当这些输入在细胞体*(细胞体,或“头”到树突“毛”)中达到足够的阈值时,一个动作电位被触发,这意味着信号或“消息”沿着神经元的轴突(细长的“尾巴”)传递,从轴突小丘(基本上是轴突的起点)开始,一路向下到达轴突末端(末端)***

轴突周围的髓鞘本质上是作为轴突电线的绝缘体,允许信号快速有效地传输。**

轴突终末连接(有点——它们实际上不接触】下一个神经元的树突,并通过被称为神经递质的化学物质将它们的信号穿过突触**(一个神经元的轴突终末和另一个神经元的树突之间的小间隙)(这是另一整桶蠕虫,我们在这里并不需要真正了解)。****

突触前的神经元和突触后的神经元分别称为*。***

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

Finally, for once, my undergrad neuroscience major is coming in handy! Image Source: Khan Academy

这里过于简单化了(对不起,神经科学家),但让我们来做:假设一个神经元从你的眼睛接收输入,并沿着它的轴突传递信号,并向控制你眼睑的肌肉传递输出。

如果信号足够强(即大量的阳光),就会触发一个动作电位,信号就会向下发送到控制你眼睑的肌肉(即闭上你该死的眼睛,这样你就不会失明)。

动作电位

让我们来看一个例子,让你了解这些神经元是如何相互传递信号的:

让我们想象一下,这些小树突中的每一个都接收到一个输入,我们将为其分配一个-5 到+5 的合成值。在这个假想的例子中,胞体沿着轴突传递信息的阈值是+10。

假设我们得到三个+5 的输入,两个-3 的输入,三个 0 的输入。(35) + (2(-3))+(30) = +9,因此不会触发动作电位。现在,假设我们得到两个+5 的输入,两个-3 的输入,三个+2 的输入。(25) + (2(-3))+(32) = +10,所以我们得到一个动作电位。**

如果这个总数是 10,20,或 100,这并不重要。只要达到或超过阈值,就会触发同等强度的动作电位。如果没有达到或超过阈值,什么都不会发生 —没有微小或部分信号。这就是所谓的“全有或全无”原则

让我们总结一下

神经元通过树突接收输入。这些输入然后在细胞体中相加。如果集体输入达到或超过该神经元的特定阈值,则触发动作电位*(回忆**“全有或全无”原则)。*

然后信号沿着轴突向下传播,从轴突丘开始,一路向下到达轴突末端*,在那里它转变为化学信号——即神经递质穿过突触,从突触前神经元到突触后。***

好的,太好了。但是为什么这很重要,接下来呢?

如果你要建立一个人工神经网络,你需要牢牢掌握它们所基于的生物系统。

理解生物神经元中的动作电位将有助于你理解为什么像激活函数这样的东西对人工神经元如此重要。**

但是现在你理解了生物神经元的基础,我们终于可以问自己,“这如何转化为机器环境?”

关于这个答案,请继续关注第二部分,在那里我们将看到人工神经网络如何学习*——深入探讨反向传播梯度下降的主题。***

然后在第三部分中,我们将综合所有这些经验教训,并利用它们使用 TensorFlow* 为我们自己构建第一个神经网络!***

.

.

.

有兴趣使用机器学习在医疗保健领域产生真正的影响吗?了解我们如何 解决医生数据不准确的问题 并查看我们的网站:orderlyhealth.com

百万美元的神经网络,第二部分:机器学习直觉

原文:https://towardsdatascience.com/the-million-dollar-neural-network-part-ii-machine-learning-intuition-a84650185e44?source=collection_archive---------25-----------------------

了解如何建立一个神经网络,并在这个由 3 部分组成的系列中赢得 165 万美元的 CMS 人工智能健康成果挑战赛

作者注:在 第一部分 中,我们讨论了价值 165 万美元的 CMS 人工智能健康成果挑战、擅长数据科学需要什么,以及神经网络的生物学基础。如果你还没有,读一读(大约 6 分钟。)在这里继续之前。

这个系列的这个特殊部分变得相当长。因此,我将分为 2(这部分)和 2A。然后在第 3 部分,我们将按照最初的计划实际构建我们的神经网络。

所以,现在你已经对人工神经网络(ann)的生物学对应部分有了牢固的理解,是时候进入 ann 本身了。

以下是我们将涉及的主题的简要概述:

  • 从生物学到计算机科学:神经元到节点
  • 神经网络结构:输入、隐藏和输出层
  • 分配和更新权重:神经网络如何学习
  • 将输入转换为输出:激活功能

现在,事不宜迟,让我们开始吧。

从生物学到计算机科学:神经元到节点

正如我们在第一部分中所讨论的,生物神经元接收来自其他神经元的大量输入(通过树突)。

这些输入被相加(在体细胞中),如果相加的输入达到或超过该神经元的指定阈值,则信号(通过动作电位沿轴突的长度向下传输。

这个输出然后通过突触(通过化学信号)从突触前神经元轴突末端传递到突触后神经元的树突。

就像它们的生物对应物一样,人工神经元(或者通常被称为节点)从网络中的其他神经元接收大量输入,并传递输出。

神经网络结构:输入、隐藏和输出层

在人工神经网络中,节点(如下图圆圈所示)属于三个不同的中的一个:输入层输入层、隐藏层隐藏层或输出层输出层,它们都由突触连接(如下图箭头所示)。

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

正如您可能猜到的那样,输入层从数据集的一行数据中接收输入。给定输入集中的每个输入来自不同的数据元素,都来自同一行

例如,让我们看看下面的数据集。想象一下,你和我一起经营一家大型国际公司。现在想象一下,我们正面临一个员工流动率很高的问题。我们想做的是尝试并预测我们不同的员工中哪些人最有可能离开,这样我们就可以围绕提高员工保留率设计有效的计划。

假设我们已经使用我们的员工数据训练了我们的神经网络,我们现在使用以下数据进行一些预测。

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

我们神经网络的输入将是姓名职位、办公室、年龄、开始日期薪水。因此,给定的一组输入将全部来自同一行,可能如下所示:

Sonya Frost; Software Engineer; Edinburgh; 23; 2008/12/13; $103,600

或者重新使用我们之前基本神经网络的图像:

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

现在需要注意的是,输入层没有应用任何计算(或激活函数)——没有输入求和,没有达到或超过阈值。其目的仅仅是向隐藏层节点传递信息。

隐藏层节点从输入层接收输入,执行计算,并将输出传递给输出节点。输出节点执行最终计算并给出答案。这个最终输出是对来自同一行的数据的响应——在我们的例子中,这可能代表 Sonya 辞职的可能性,比方说在 0 到 1 的范围内可能是 0.6。

这个最终输出可以是连续的、二进制的、分类的;您需要的输出类型将取决于您的特定用例/问题。

在我们的例子中,概率分数将是最有帮助的,所以我们将在输出层中使用一个 sigmoid 函数。如果你在这个阶段不确定这意味着什么,不要担心——我们一会儿就会讲到激活功能😃。

该过程实质上对下一行数据重复进行。再次使用我们的示例数据集,这将是:

Doris Wilder; Sales Assistant; Sidney; 23; 2010/09/20; $85,600

在更复杂的神经网络的情况下,也称为深度神经网络,其中是多个隐藏层**,隐藏层的节点从前一个隐藏层的节点接收输入,直到最后一个隐藏层将其输出发送到输出层。**

这样想一想:

回到第一部分中的示例,假设从数据集接收数据的输入图层等同于您的眼睛接收视觉刺激,即强烈的阳光。输出层的最终输出相当于控制你眼睑点火的肌肉,使你闭上眼睛。隐藏层是中间的所有复杂步骤,使它看起来像魔术一样。

分配和更新权重—神经网络如何学习

那么还记得在第一部分中,我们如何说理解动作电位将有助于理解激活功能吗?这就是最终派上用场的地方。

节点间的突触或连接被赋予随机强度,也称为权重

神经网络通过更新这些权重来学习,增加一些节点之间的连接强度,削弱甚至消除(或修剪)其他节点之间的连接。

这正是人类大脑的工作方式——加强一些联系,删减一些。

那么在各个节点内部发生了什么呢?

暂时回到生物神经元:在生物神经元的胞体(细胞体)中,所有的输入都加在一起。如果总和超过特定神经元的给定阈值,则触发动作电位

在人工神经元(节点)中,节点的所有输入都乘以各自连接的权重,并求和在一起,产生加权和

将输入转换为输出:激活功能

因此,一旦我们有了加权和,就应用一个激活函数将这些输入转换成输出,这决定了什么样的信号被传递(或不传递)到下一个节点。激活函数引入了非线性并使神经网络能够分析图像、音频和视频等复杂数据。

有许多类型的激活函数,其中一些更适合用于隐藏层(例如 ReLU),而另一些更适合用于输出层(例如 sigmoid):

  • 二进制步骤 →产生 1 或 0 输出;当你需要一个简单的是/否预测时,这是很棒的

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

Binary Step Function

  • Sigmoid 函数 →在输出层预测概率时非常有用,因为每个概率都在 0 和 1 之间

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

Sigmoid Function

  • 双曲正切(又名双曲正切)及其变体(LeCun 的双曲正切,硬双曲正切)→本质上是范围从-1 到 1 的缩放的 sigmoid 函数

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

Tanh function

  • **ReLU(整流线性单元)**及其变种(漏 ReLU ,PReLU,eLU 等。)→至今仍是神经网络中最常用的函数之一。使计算变得简单而有效。Leaky ReLU 变体解决了传统 ReLU 常见的“死亡神经元”问题。

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

ReLU vs Leaky ReLU

  • SoftMax → 一种 sigmoid 函数,最适用于多类别分类问题的输出层(例如,输入是一个神奇宝贝的图像,输出是特定神奇宝贝是火、草或水类型的概率)

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

SoftMax function

让我们回顾一下

所以回到第一部分,我们讨论了人工神经网络的生物学基础——人脑。重要的是,当神经元从其他神经元接收输入时,这些输入在细胞体(细胞体)中相加。如果这些输入的总和达到或超过特定神经元的给定阈值,则动作电位被触发,信号沿着轴突传播,并穿过突触到达下一个神经元。

在第二部分中,我们已经讨论了这如何转化为机器学习环境。节点,或者人工神经网络中的单个神经元,通过突触相互连接。神经网络由三个独立的层组成:输入层输入层(传递来自数据集的数据)、隐藏层隐藏层(神经网络的真正魔力发生在这里),以及输出层**(在给出最终答案之前应用最终计算或激活函数)。**

初始输入是来自数据集的数据元素,都来自同一行或观察(按照我们之前的例子,开始日期、薪水和办公室位置)。最后的输出也是针对同一行的(根据我们前面的例子,雇员离开组织的概率)。在该行/观察的数据元素通过神经网络运行之后,该过程在下一行/观察中再次重复。

突触具有不同的权重或强度,当神经网络学习时,这些权重或强度会更新(加强或削弱)。给定节点的输入乘以它们的权重并求和以给出一个加权和**。**

那么,这些节点如何知道应该传递什么样的信号呢?该节点取其输入的加权和,并应用一个激活函数。有几种激活函数,有些更适合用于隐藏层,如 ReLU 函数,或用于输出层,如 sigmoid 函数

输出层使用的激活函数很大程度上取决于你需要什么样的答案。例如,sigmoid 函数在 0 到 1 的范围内给出了一个很好的概率。如果您需要将概率分配给多个类别,那么使用 SoftMax 函数可能会更好。

不幸的是,第二部分很长,所以我们将在 2A 的一部分完成我们的机器学习直觉,我们将讨论隐藏层的重要性,最小化成本函数,梯度下降和反向传播。然后在第 3 部分,我们将最终进入实际建设我们的神经网络!

对使用机器学习在医疗保健领域产生实际影响感兴趣?了解我们如何 解决医生数据 不准确的问题,并访问我们的网站orderlyhealth.com**

人工智能时代的道德指南针

原文:https://towardsdatascience.com/the-moral-compass-in-the-age-of-ai-78e740f80520?source=collection_archive---------19-----------------------

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

几年前,当我问我们的一位数据科学家,我们是否可以按照购买力和某种形式的信用价值来划分我们的数据(根据设计,这些数据只是匿名 id)时,他的第一反应是“我们或许可以做到”。潜在客户希望找到财务困难的人,他们“根据自己的能力过度消费”,以创造新的金融产品(可能是高息信用卡)。他们想了解如何制定媒体计划来接触那些已经囊中羞涩的客户。这是对处理大数据和人工智能的权力和责任的觉醒(不是第一次,但很强烈)。

请注意,我们没有 PII,没有人民 HHI 或购买历史的直接数据,也没有信用评分作为数据集的一部分。没有什么特别的约会。他非常肯定这是可以做到的。所有需要做的就是结合我们已经拥有的公共数据源(在线、社交和公共政府来源),添加一些人工智能,让系统完成它的工作。这些结果不可能适用于个人。尽管如此,它最终还是会影响弱势群体。我们从未追求过这个机会。

如果潜在客户是一家推广金融教育的公司,我们应该采取不同的行动吗?

我不认为我会面临这种类型的决策,但随着我们用机器从大型数据集提取洞察力的能力增长,这些决策越来越多。

一个更基本的难题是:

在上个世纪的大部分时间里,市场研究人员认为自己是一个无害的、相当“中立”的参与者,他们只是提供数据给其他人做决定。我们的目标是市场(!)研究人员总是要了解消费者,通常是总体了解,通常是群体了解。更好地评估他们的需求,这样营销人员就可以制造更好的产品,更好地为他们服务。听起来很简单,但实际上并不容易。现在肯定要复杂得多。

今天,随着大型数据集的容易和廉价获得,以及人工智能的准备,我们可以更有效地做得更详细,我们总是说我们的目标。提供见解。我们不仅可以更有效地筛选数据,找到以前无论如何努力都无法识别的联系。但是,我们现在可以(许多公司实际上经常这样做)让我们的客户根据这些发现立即行动起来,创建优化的广告和活动,根据这些发现购买媒体,计算投资回报率,并计算这些获得的客户的终身价值——所有这些都不需要写报告。

“这是你的发现,这是我们认为你应该做的”报告变成了“这是 10 万个微细分,这是他们的动机,这是一组你可以发送到你的 DMP(数据管理平台)的 id,以建立一个即时的相似者池并向他们做广告”。顺便说一句,你应该使用这些创造性的执行,让你的广告服务器做创造性的优化,以最大限度地提高投资回报率。

我们仍然可以通过坚持使用长相相似的模型而不是直接销售个人,并坚持从我们用来识别细分市场的样本中删除任何 id,或者我们只提供不能反向工程到个人的汇总结果(我的公司 helix a T1 就是这样做的)来证明我们的行为。但是我们必须面对这样一个事实,今天有了人工智能,我们能够(越来越准确地)预测我们从未收集(或意识到我们有能力报告)的事情。我们不再仅仅是分析的旁观者,而是将顾客传递给营销人员的营销机器不可或缺的一部分。

事实上,作为研究人员,我们有喜欢数据的倾向,并且喜欢从数据池(如今是湖泊)中提取知识的能力。很容易忘乎所以。

因此,我们需要保持警惕,关注我们自己的兴奋,并经常后退一步,评估和询问我们是否应该做一些事情(而不是我们是否可以做一些事情),以及我们的行动或不行动的后果是什么。我们需要使用我们的道德指南针,不断地问这条线在哪里,因为没有它,没有持续的内部对话,很容易越过它。

我对数据了解得越多,人们对我就越感兴趣

原文:https://towardsdatascience.com/the-more-i-learn-about-data-the-more-people-interest-me-f60046f79460?source=collection_archive---------21-----------------------

我是如何辞去公司的全职工作,去攻读数据科学学位的

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

Photo by Razvan Chisu on Unsplash

这篇文章总结了我辞去专业服务公司的全职工作,决定攻读商业分析硕士的想法。我希望我要说的话能在某种程度上帮助你。

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

Inspiration: Jay Shetty

我选择攻读硕士学位的根本原因是因为我对学习的渴望。我们生活在一个社会不断扩张的时代,许多不同种类的职业得到了认可。随着多样化社区和工作场所的增加,有着巨大不同经历的人们正在想出创新的方法以他们自己的方式做出贡献。对我来说,分析是真正引起我共鸣的东西,我对这个主题研究得越多,我就越好奇。我开始意识到这是一个我可以尽我所能做出贡献的领域。

作为一名工程师,我一直支持自己成为一名喜欢动手的技术专家。我花时间去理解我正在做的项目的复杂性。随着我逐渐成为一名顾问,我开始意识到技术是如何推动商业发展的。一家企业的核心本质不是它如何使用最先进的机器或拥有最复杂的算法,而是它试图解决的市场问题。像“伟大的组织和优秀的组织有什么区别?”这样的问题为什么一家公司的领导团队会选择一条有时看起来不是最佳解决方案的道路?以及“一些出色的同事如何在个人层面比在团队中做出更好的贡献?”开始引起我的兴趣。考虑到这一点,商业分析似乎是一门为我量身定制的课程。

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

Photo by Austin Distel on Unsplash

我在这个项目中的前 6 个星期是非同寻常的,我在精神和身体上都受到了挑战,与一些最聪明的年轻专业人士在一起,并参加了一些迫使我打开思维和全面思考的讲座。对我来说,最大的调整是,尽管我每天朝九晚五地忙碌,但这是非常不同的。连续 3 个小时保持思维敏捷和集中注意力会在一天结束时导致疲劳。在工作中,你有更多的灵活性来更好地管理你的时间和精力。但是几个星期过去了,我开始适应了。我们的适应能力有时是我们最被低估的品质之一。如果你在某件事情上坚持的时间足够长,你的大脑就会发展出神经通路,然后它就会变成一种习惯。

我感谢我的家人和朋友以及他们对我的支持。这个项目让我付出了很多,我有时无法回报他们对我付出的努力。在这当中,他们仍然支持我并为之努力,今年剩下的日子肯定会很艰难,但我认为这将是对我们决心的一个很好的考验。他们的耐心和理解绝对值得称赞。

虽然我可以写很多东西,但迄今为止,我从这个项目中得到了五个关键收获:

  1. 商业的真正本质是什么?你可以在一个组织中工作多年,并认为你了解它是如何运作的。然后你和一个不同部门的同事聊天,突然你觉得他们完全来自不同的组织。我以为我对商业有些了解,但是我学得越多,我意识到我知道的越少。我们在本模块中的商业主题讲座是我认为我一生中学到的最好的课程。营销教会了我如何以结构化的方式分解和处理案例研究,金融教会了我作为一个组织的领导者的责任,人力资源告诉我人有多重要,战略告诉我企业的核心是什么。当我从那次演讲中走出来的时候,我感觉自己被赋予了力量,因为我知道我只是触及了表面,但是我可以看到商业是如何影响和改变社会的。
  2. 作为团队领导 在我的职业生涯中,我一直很感激为那些给我成长空间并在我犯错时支持我的经理们工作。处于关系的另一端是一种全新的体验。在我的第一次辛迪加会议上,我意识到你的团队有可能自然而然地选择你作为领导者。我见识了领导一个团队是什么样的。当人们信任你的方向和指导时,很少有什么能比得上这种感觉。这可能会令人望而生畏。我利用自己与优秀经理共事的经验,尽最大努力反映我喜欢他们的地方。建立良好的团队士气,确保每个人都感受到被倾听和被欣赏,定期反思我们的进步,这些对我来说都非常有效。最激励我的是我真诚地关心个人,我最大的收获是当我的队友非常害怕公开演讲时,看到他在观众面前讲话,我感到多么自豪。当我更担心团队的表现而不是我的表现时,我知道我正朝着正确的方向前进。
  3. 如果不是坐在我旁边的那个人,这个模块不会像现在这样容易受影响。一个来自南非的非盈利组织的联合创始人拥有一个博士学位是令人印象深刻的,但更重要的是,他谦逊的个性和非常引人注目的头脑可能比我更喜欢学习,这使他在我看来是一个真正独一无二的人。作为工程师同事,我们发现课程的一些部分对我们来说是新的,但不断地交谈和相互分享想法是吸收信息的有效方式。有一个朋友能够把你和他的经历联系起来,让你成为一个全新学习过程的一部分,这让人耳目一新。
  4. 沟通是最重要的资产 与一群聪明人一起工作意味着会有很多精力和想法涌现出来。虽然这有一个巨大的积极意义,但这意味着试图找到最佳解决方案会变得同样具有挑战性。你找到解决办法的唯一途径就是交流。如果每个人都觉得他们处在一个他们的想法和观点被听到和欣赏的空间,你会惊讶于事情是如何一起流动的。对于那些愿意分享的人来说,我认识到首先成为朋友是很重要的。在一起相处、共进午餐或打乒乓球的时间可能和真正坐下来工作一样重要。当团队中有一种共同的责任感时,我们会一起变得更好。我确信,一个不怕互相交流的团队从长远来看会做得很好。我希望这种学习能伴随我的余生。
  5. 数据是好的,但人更好 唯一比从数据中获得洞察力更好的事情是揭示人们如何获得这些洞察力的故事。我们有机会坐下来听其他小组作为作业的一部分所做的报告。我经常记下我喜欢的他们的想法和思考过程。一些团队可以轻松地一起工作,而另一些团队则有创新的想法。同样的数据迫使同学们发挥创造力和独创性,这可能是所有学习中最有价值的。我希望这能让我更加注意和意识到我们作为个体所拥有的无限潜力。

昨天发生在我身上最好的事情之一。我以前收到过来自过去的人的致谢,在接受称赞时,我通常会感到不舒服。我认为我们学会接受和欣赏人们对我们说的好话是非常重要的。我还在努力。

我的一个团队成员昨天给我发了这条消息。在我收到的致谢中,这将是我最亲近的一个,我希望这是真的。

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

A text message by a team member

她提到她对演示感到紧张,我提到这是团队的努力。我选择穿绿色的衣服,只是因为她说那是她唯一的正式衬衫,她不想引人注目。我惊讶地发现这对她来说如此重要。我之前撒了谎,这将是我从本模块中获得的最大收获。我逐渐意识到 小事要紧 。无论是用你自己的方式来表达你对某人的支持,还是在交谈时关掉手机,让你全神贯注,或者发送一条礼貌的信息来感谢某人,感谢他们的时间。总之,你能做的最基本的事情就是对人友好。一个朋友曾经告诉我,他有时会惊讶为什么这么多人连这都做不到。

我觉得这是总结我的想法的合适的内容。教育系统有很多问题,我希望有一天我能够改善这些问题。尽管我还是个孩子的时候,我就一直想去世界上最有声望的大学学习(斯坦福大学是我的首选),墨尔本商学院似乎也反映了这类学校的一些声望。更重要的是,这取决于你能从自己的经历中获得什么。有这么多的事情要考虑,我很高兴有这个时间休息,这样我就可以重组,得到一些休息时间。充电也是很有必要的,因为我很兴奋能体验节目的下一章,我有一种感觉,这将是辉煌的一年。

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

Photo by delfi de la Rua on Unsplash

与哥伦比亚大学数据科学主任的真实对话

原文:https://towardsdatascience.com/the-most-dangerous-data-science-problem-that-we-arent-talking-about-9ba56ebbe498?source=collection_archive---------7-----------------------

独家 TDS 采访

人工智能伦理、计算思维和运行微软研究

面试官:TowardsDataScience.com 项目负责人 Haebichan Jung 。旧金山 Recurly 的数据科学家。

受访者:Jeannette Wing博士,Avanessians 数据科学研究所主任,哥伦比亚大学计算机科学教授(2017-)。微软研究院前企业副总裁(2013–2017)。卡内基梅隆大学计算机科学系前系主任(两次)。

你在微软研究院的主要职责是什么?

运行公司研究实验室有两个主要功能。

  1. 我负责基础研究实验室。它是关于在所有形式的研究中推动最先进的技术。那时,微软研究院(MR)已经不仅仅覆盖计算机科学(CS)了。我们有生物学家、社会科学家、经济学家等。
  2. 我与微软的核心业务部门进行沟通,确保 MR 研究人员开发的伟大技术能够为业务部门所用,并确保业务部门在技术和预测未来方面永远领先一步。

我负责全球所有研究实验室的这两项工作,例如位于雷蒙德、纽约市、剑桥(英国)、班加罗尔(印度)和北京(中国)的实验室。

你参与了微软对人工智能项目的投资吗?如果是,你面临过哪些挑战?

我参与了与机器学习、人工智能和数据科学相关的研究投资,更广泛地说,是我们雇佣的人员和支持的项目,以及我们与业务部门的合作。我当时在一个名为“人工智能和研究”的实际业务部门。该业务部门的人工智能部分与其他业务部门合作,以确保其他业务部门了解最新的 ML 和人工智能技术,以及如何利用来自公司研究部门的研究想法。

你提出并推广的“计算思维”是什么?

计算思维(CT)是用计算机(无论是人还是机器)能够有效执行的方式来表述问题并表达其解决方案的思维过程。这是一个复杂的定义,每个词都非常重要。但是为了更直观地理解 CT 是什么,它像计算机科学家一样思考。

计算机科学家每天都在使用某些技术和方法来解决问题。有些是:

  1. 我如何设计一个算法来解决这个特殊的问题
  2. 我如何将这个特殊的问题分解成更小的部分
  3. 我如何定义抽象层
  4. 我如何定义组件之间的接口

这个问题解决技术的集合和一个人处理一个大系统或大问题的方法的集合——这就是我所说的像计算机科学家一样思考的意思。

我在 2006 年写的关于计算思维的文章有两个目的:

  1. 大约在 2004-2005 年,我们经历了网络泡沫破灭。每个人都在逃避计算机科学。许多本科院校的计算机专业招生人数都在下降。人们担心他们是否应该关闭计算机科学系。我写这篇文章的一个原因是告诉作为计算机科学家的我们自己,我们没有什么可担心的。这些事情循环往复。而且,我们有一种对大家都有利的思维方式,不管你是不是计算机专业的。那篇文章的目的之一是说计算机科学是为所有人服务的。我不是说每个人都要主修 CS。我的意思是,每个人都可以从 CS 提供的一些概念中受益。思维概念。这就是我使用计算思维这个术语的原因。
  2. 当时,CS 的入门课程差不多就是“Java / C++ /你最喜欢的编程语言入门”。这让许多想体验计算机科学并了解该领域所能提供的东西的学生望而却步。因此,这篇文章也让我们 CS 社区的人说,“在教授 CS 方面,我们能提供的比如何编程更多”。

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

youtube

实际上,如何编程只是你作为一个计算机科学家所学习的一项技能。比知道如何编程更重要的是 CS 教给学生的解决问题的技巧。如果你不想成为一名计算机科学家,这些技能甚至比知道如何编程更重要。

自 2006 年以来,不仅双方的界面发生了变化,而且关于如何将计算机科学纳入全球 K-12 教育的讨论也越来越多。

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

什么是数据科学研究所(DSI)?

DSI 是一个大学范围和大学级别的机构。它与校园内的每所学校和校园内的所有其他机构/中心合作。这确实证明了我的观点,即数据无处不在,每个人都可以从分析我们拥有的数据中受益。我们与历史/英语学院、教师、医学院(基因组学、公共卫生)、法学院、商科学生等合作。

DSI 有一个由三部分组成的使命宣言,我希望它能传达我的抱负。

  1. 推进数据科学的最新发展。这实际上是推动基础研究。对于数据科学来说,就是定义领域。这是一个新兴的领域。无论如何,学术界仍在试图弄清楚数据科学到底是什么。我希望哥伦比亚大学带头定义什么是数据科学。
  2. 通过应用数据科学改变所有领域、专业和部门。
  3. 确保负责任地使用数据造福社会。这是为了应对社会在能源、社会公正、气候变化和医疗保健方面的巨大挑战。负责任地使用数据说明了收集数据和分析数据(尤其是与人相关的数据)时的道德和隐私问题。我认为数据科学作为一个新兴领域,强调对数据的伦理关注是很重要的(CS 错过了这条船)。

这三个组成部分可以总结如下:为善的数据、为善的数据和数据责任。

您能谈谈该研究所的一些创新数据科学研究吗?

我可以举出一些具体的研究例子:

  1. 在因果推理中,我们有一个结果,讲的是一个人可以用比单一因果推理假设更弱的方式进行多重因果推理,但在现实世界中比单一因果推理更普遍。
  2. 显示数据科学如何应用于任何领域研究中的应用。我们有从事生物学、历史、天文学、材料科学、医学等领域工作的人。具体谈到医学,我们有一个非常有趣的数据集,叫做 OHDSI,我们在哥伦比亚协调,它有 5 亿个独特的患者记录。

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

youtube

你能就人工智能中的伦理问题发表更多评论吗?这个话题不常被谈论,但对所有数据科学家来说都是开创性的。

我们所了解到的是,人们对人工智能和机器学习应用于几乎所有事情感到非常兴奋:对购买的书籍和观看的电影提出建议,自动驾驶汽车中的计算机视觉系统,对医疗进行预测/分类。

当谈论书籍推荐时,出错可能没关系——我们不会让最终用户感到不安。但是当谈到自动驾驶汽车或医疗诊断时,我们需要确保这些系统是正确的、可靠的、安全的、有保障的,同时也是道德和公平的。

人工智能的另一个应用领域是决定某人是否应该被保释。我们正在决定是否雇用你。你希望所有这些决定都是公平的。但是如果模型是根据有偏差的数据训练的,那么模型就会有偏差,这是不公平的。

所以突然之间,这些 ML 模型被用在安全关键,生命关键的情况下,在做关于人的决定时,这些决定将会影响我们一生。我们想确保这些模型是公平的,它们的结果是可信的。现在没有理由相信任何事。因此,我正在推广一个名为“可信人工智能”的整体领域,来研究特定人工智能模型在上下文、每个任务、每个领域中的安全性、可靠性、公平性、健壮性等所有这些属性。

如需了解对 Jeannette Wing 博士的完整采访,请点击此处观看 YouTube 视频。

[## Haebichan Jung —中等

阅读容格在媒介上的作品。项目负责人@ TDS |数据科学家@ Recurly。每天,Haebichan Jung…

medium.com](https://medium.com/@haebichan) 外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

重新思考人工智能/机器学习的 DEVOPS

原文:https://towardsdatascience.com/the-most-difficult-part-about-ai-machine-learning-occurs-after-the-model-is-created-b585480c6918?source=collection_archive---------8-----------------------

对 AI/ML 敏捷性的需求正迫使企业开发人员进行调整。这里有一些实用的步骤来加速你的 AI/ML 生命周期。

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

Photo by wu yi on Unsplash

模型不同于应用程序

现代企业 IT 环境极其复杂。对于应用程序,DEVOPS(一组功能、工具和自动化程序)有助于管理这种复杂性,从而显著提高了企业的交付速度。

然而,AI/ML 模型的生产之路带来了几个额外的挑战,超出了大多数企业 DEVOPS 环境的能力。事实上,这些挑战的影响相当大:麻省理工学院斯隆管理学院和波士顿咨询公司的一项研究强调,只有 5%的公司在业务中广泛使用模型。事实证明,将一款车型投入生产是一个艰难的过程。

很明显,AI/ML 最困难的部分发生在模型实际创建之后。这个问题的根源是基于一个错误的信念,即因为模型和应用程序“仅仅”是软件代码,它们可以以类似的方式管理。相反,企业开发运维能力必须适应 AI/ML 生命周期的需求。

AI/ML 的生命周期是由数据变化的速度驱动的

企业应用程序通常是具有编码逻辑的自包含单元,以一致和确定的方式运行,独立于它们所作用的数据。另一方面,一个模型在生产中只会对与它被训练的模式相似的数据作出一致的反应。

如果数据中的模式在生产中“漂移”很大,那么模型对该数据的响应可能会产生重大的意外和潜在的负面后果。当一个模型的效能由于数据漂移而下降时,那么只有一个反应:尽快重新训练和重新部署该模型。

这种对更频繁甚至按需发布周期的需求将迫使企业 DEVOPS 适应 AI/ML 生命周期所需的速度和敏捷性的新水平。

AI/ML 需要新的工具、环境和安全考虑

AI/ML 开发使用许多与传统应用程序开发类似的工具,例如编辑器、源代码管理,但是用于创建模型的语言、支持库和框架对于典型的企业 IT 团队来说可能是陌生的。

此外,在企业投资分析功能的情况下,它在很大程度上专注于更传统的商业智能工具或专有分析功能(例如,SAS),但是,新的 AI/ML 工具和框架在很大程度上是开源的(例如,TensorFlow/Keras)。虽然不一定是一个大的障碍,但是新的工具、库和框架必须引入到企业开发运维能力中。

在“代码”级别,模型是寻求识别数据模式的算法。这些模型基于大量数据进行训练,需要的计算空间不同于大多数企业中可能提供的计算空间,而且要大得多。

在企业内部建立必要的基础设施(例如,GPU farms)已经被证明是困难的、昂贵的和耗时的,并且已经成为许多企业内模型交付的障碍。这些障碍促使许多企业考虑将模型开发和培训迁移到云中。然而,虽然云提供商显然拥有必要的可扩展计算足迹,但将训练数据迁移到云会带来巨大的数据安全挑战。

如今,只有少数行业(例如,拥有 PIIHIPAA 的金融服务、医疗保健)受到严格的数据法规的影响,但是,在未来,安全考虑因素肯定会成为大多数企业优先考虑的问题。事实上,世界上最大的单一市场欧盟最近制定了通用数据保护条例(GDPR) ,严格管理数据隐私。

就连脸书,正如脸书首席执行官马克·扎克伯格在最近的一篇文章中所强调的,也在为更广泛、更强有力的数据隐私和保护监管提供令人信服的理由。

显然,数据隐私和保护将很快影响并极大地改变企业的数据管理和开发运维能力。因此,关键问题是:DEVOPS 功能如何发展以满足 AI/ML 模型开发所需的关键数据隐私、保护和安全?

随着 AI/ML 在企业中的采用明显加快,传统的 DEVOPS 流程必须改变,以适应:(a)新的工具和框架,其中大多数是开源的,(b)将 AI/ML 工作负载从内部数据中心迁移到云,以及©随着企业 AI/ML 工作负载迁移到云,不断发展的安全策略和技术需要管理数据访问权限。

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

Photo by Christopher Burns on Unsplash

AI/ML 治理提出了新的要求

AI/ML 治理的目标是确保提供证据来证明一个模型及其交付过程能够生成可重现、可追踪和可验证的结果。

今天,包括银行、医疗保健、生物技术和政府许多部门在内的许多行业已经有了这些监管要求,但是,很少有人会讨论拥有一个规范的 AI/ML 生命周期的好处,它可以提供可重复、可跟踪和可验证的结果。(关于这个主题的更多信息,请参见我的 AI/ML 治理文章)。

提供这些能力的含义强加了它们自己的挑战:再现性不仅需要维护模型源代码,还需要维护与用于训练模型的文件的永久关联;可追溯性要求维护模型及其训练文件与原始数据文件之间的关联,以及用于创建训练文件的任何转换脚本;并且可验证性要求模型生命周期生成的输出——例如,培训验证日志,或者证明道德/偏见验证的模型测试输出——也必须归档并链接到模型。

大多数传统企业应用程序将越来越需要人工智能/ML 所需的深度和广度的工件和指标捕获。企业开发运维必须被扩展以支持 AI/ML 强加的需求,从而解决模型的可再现性、可追溯性和可验证性。

企业开发运维只是 AI/ML 的一个起点

模型不同于传统的应用程序,这对企业开发运维能力提出了新的挑战:模型对数据的依赖推动了开发运维速度的提高;新工具、增加的安全约束和云功能的集成对企业的开发运维流程提出了新的要求;模型需要新的治理级别来确保可再现性、可追溯性和可验证性,这需要模型生命周期工件和度量捕获的新深度和广度。

这些挑战并不是不可克服的,但必须有所计划。在许多方面,企业 DEVOPS 必须被视为一个起点,必须为可伸缩和敏捷的 AI/ML 进行扩展。

市场和客户细分最重要的数据科学工具

原文:https://towardsdatascience.com/the-most-important-data-science-tool-for-market-and-customer-segmentation-c9709ca0b64a?source=collection_archive---------11-----------------------

使用 K-means,让 AI 告诉你有多少段(实际上是)。

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

市场和客户细分是任何公司最重要的任务之一。完成的细分将影响营销和销售决策,并可能影响公司的生存。

令人惊讶的是,尽管机器学习取得了进步,但很少有营销人员使用这种技术来增强他们至关重要的市场和客户细分工作。

在本文中,我将向您展示如何使用一种简单而强大的机器学习技术 K-means 来增强您的细分分析。学会这一点会让你比你的竞争对手(和同事)更有优势。

那么 K-means 是什么?

K-means 是一种流行的聚类算法,用于无监督机器学习。它将相似的数据点分组到预定数量的组

让我为你解释每个术语:

  • 聚类:一种机器学习技术,用于识别相似的数据点(例如客户)并将其分组在一起。
  • 无监督机器学习:你不需要给算法提供如何对客户分组的标签数据。它将浏览与每个客户相关的所有信息,并学习将他们分组的最佳方式。
  • 预定义的组数:你需要告诉 K-means 要组成多少组。这是你唯一需要的输入。

这里有一个与上述概念的类比:想象你有一些玩具,在没有提供进一步指导的情况下,你让你的孩子将玩具分成三组。你的孩子会四处玩耍,最终找到自己的最佳方式,将三组相似的玩具组合起来

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

好的…那么 K-means 是如何工作的呢?

让我们假设你认为有 3 个潜在的客户群。

K-means 将在随机位置随机启动 3 个点(即质心),并将每个数据点慢慢拟合到最近的质心。每个数据点代表一个客户,离同一个质心最近的客户会在同一个组。

质心的位置会根据分配给它们的最近客户自动调整。这样做,它将自己学习寻找其他具有相似特征的客户。

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

K-means identifying 3 clusters in a data set. Source: Wikipedia

什么?这看起来很简单。我可以自己进行可视化分组!

上面客户的二维表示是数据可视化的简化形式。

与客户相关的每个信息代表一个维度的数据。例如,如果你只是绘制购买的物品和数量,那么这就是二维的。一旦你考虑到每个客户的额外信息,如居住国家和总支出,复杂性就会跳到 4 维!

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

Visualisation of different dimensions. Source: Wikipedia

对于我们来说,很难想象在三维空间之外将物品分组在一起,但对于机器学习来说并非如此。这使得机器学习在寻找有意义的片段方面比传统方法强大得多。

机器学习可以理解超出我们想象的多个维度,根据客户的信息找到客户的相似特征,并将相似的客户分组在一起。

这就是它的妙处!

但是我怎么知道组成小组的最佳数量是多少呢?

您可以通过遵循以下两条原则找到最佳的组数:

  1. 同一群中的客户应该靠得很近(紧密的群内距离)
  2. 每个不同的客户群应该彼此远离(远群间距离)

下面是对上述原则的另一种解释:

  1. 物以类聚相似的羽毛。他们聚集在一起寻找志同道合的朋友;越是志趣相投,就越是群聚在一起。
  2. 不同的鸟群不会彼此靠近。每个鸥群都为自己独特的身份而自豪;他们的身份越鲜明,他们就越远离其他群体。

找到最佳组数的一种方法是使用剪影分数。它考虑了类内和类间距离,并返回一个分数;分数越低,形成的聚类越有意义。

使用 K-mean 最具挑战性的一个方面是决定形成多少个聚类。这可以通过使用轮廓分数来数学地识别。

太好了。你能举例说明使用 K-means 来分割一个实际的客户数据集吗?

我将举例说明使用 K-means 来执行 RFM(最近、频率和货币)客户细分数据源来自英国的一家真实的在线零售商。

我已经通过执行以下步骤对数据进行了预处理:

  1. 提取最近 1 年的交易数据。
  2. 根据每个客户的最新交易日期计算他们的最近交易时间。
  3. 通过合计标记给每个客户的发票数量来计算每个客户的频率。
  4. 通过合计每个客户各自的总支出来计算他们的货币价值。

下面是我创建的每个客户的 RFM 值的快照:

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

RFM value of each customer.

在实现 K-means 之前,我还需要做什么?

K-means 在以下条件下给出最佳结果:

  1. 数据的分布不是偏斜的(即长尾分布)
  2. 数据是标准化的(即平均值为 0,标准偏差为 1)。

为什么?回想一下,K-means 根据客户到质心的距离将相似的客户分组在一起。

图表上每个数据点的位置是通过考虑与特定客户相关的所有信息来确定的。如果任何信息不在相同的距离尺度上,K-means 可能不会为您形成有意义的聚类。

机器学习就是从数据中学习。为了获得最佳结果,您应该准备数据,使机器易于学习。

以下是使用 K 均值前准备数据的具体步骤:

  1. 绘制分布图以检查偏斜度。如果数据是偏斜的(即具有长尾分布),则执行对数变换以降低偏斜度。
  2. 缩放并居中数据,使平均值为 0,方差为 1。

我首先通过绘制新近性、频率和货币价值的分布图来检查数据的偏斜度:

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

Distribution Plots of RFM. All variables are heavily skewed.

我执行了对数转换来减少每个变量的偏斜度。下面是对数变换后的 RFM 分布图:

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

Distribution Plots of RFM. The skewness is reduced after log transformation.

一旦偏斜度降低,我就通过居中和缩放来标准化数据。请注意,现在所有变量的平均值为 0,标准差为 1。

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

Basic statistics of RFM. All variables have mean of 0 and standard deviation of 1 after centring and scaling.

找最优组数怎么样?

准备好数据后,下一步是运行 K-means 迭代(通常多达 10 个聚类)来计算每个聚类的轮廓得分。

A function to identify the optimal number of clusters based on the Silhouette Score.

较低的轮廓分数表示形成了更好和更有意义的聚类;下面的结果显示了集群的最佳数量是四个。

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

Silhouette Score of 2 to 10 clusters. The optimal number of clusters is 4.

尽管如此,通常的做法是在所识别的最优聚类的+/- 1 上实现 K 均值聚类;在这里,它是 3、4 和 5 个集群。

这提供了一个更广阔的视角,并有助于与您的利益相关者进行有意义的讨论,以确定适当数量的客户群。

也许会有一些市场特性,你的利益相关者可能会决定在 5 个集群上实施他们的营销策略,而不是确定的最佳 4 个集群。

K-means 分割的最终结果是什么样的?

现在,我们准备通过 3、4 和 5 个集群的 K 均值来运行数据,以便对我们的客户进行细分。

A function to implement K-means on data set.

以下是客户细分的结果:

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

Flattened (t-SNE) graph of 3,4 and5 clusters.

回想一下,与客户相关联的每个信息都创建了一个额外的维度。上面的图像是通过将三维图形(根据新近度、频率和货币价值创建)展平为二维图形而获得的,以便于可视化。

这种观想可以让你感觉到星团是如何形成的。

如果你想知道,展平高维图形并将其可视化为二维格式的技术被称为*t-分布式随机邻居嵌入(t-SNE)。*如果你有兴趣,你可以阅读更多关于这个的内容;对此的解释超出了本文的范围。

我如何在营销中利用细分结果?

在这个阶段,数据集中的每个客户都用各自的组号进行标记。您可以继续使用任何行业的通用实践来可视化结果。

下面是一个使用 蛇图属性相对重要性图来构建人物角色的每个聚类的细分的例子。两者都是营销行业中用于客户细分的常用方法。

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

Snake Plot of 3, 4, 5 clusters formed using K-means.

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

Relative Importance Chart of 3, 4, and 5 clusters formed using K-means.

您可以将这个结果与使用传统方法完成的原始分割进行比较。有什么大的区别吗?

深入了解 K-means 认为某个特定群体的客户属于同一群体的原因是一个很好的做法(是的,遗憾的是,K-means 还不能为我们写一份关于他们细分决策的营销报告)。

了解这一点后,你可以与相关利益相关者展开讨论,征求他们的意见,并在启动下一个大型营销活动之前,就如何最好地细分客户达成一致。

这篇文章的所有相关代码都可以在我的 repo 中找到。

结论

K-means 是一种简单而有效的分割方法。任何进行客户或市场细分的人都应该利用这一点来增强传统方法。否则,它们有可能在人工智能时代被淘汰。

本文首发于 AI 新加坡 makers space

统计学中最重要的观点

原文:https://towardsdatascience.com/the-most-important-idea-in-statistics-8c18d514ad1c?source=collection_archive---------7-----------------------

想到统计学这门学科,你会想到什么?

人口、样本和假设?或者你可能上过一门强调概率、分布、p 值和置信区间的课程?所有这些都是拼图的一部分,但是它们在核心的下游。一切的真正开始——启动整个纠结的跳板——是的默认动作

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

什么是默认操作?

统计学是一门在不确定的情况下改变你想法的科学,所以首要任务是弄清楚你要做什么*,除非数据说服你放弃。这就是为什么一切都从一个身体动作/决定开始,如果你没有收集到任何(更多)证据,你就承诺去做。这叫做你的 默认动作 。*

本文是系列文章的一部分:

  • 第 0 部分(可选)介绍概念。
  • 第一部分用一个例子将概念带入生活。
  • 第二部分(欢迎!)重温示例,向您展示如果您在第 1 部分中选择不同的默认操作会有什么变化。(剧透:一切都变了!)

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

平行宇宙:另一个默认动作

你刚刚降落在一个外星球上。你的任务是什么?找出这里是否有外星生命。有什么问题吗?你微薄的预算只允许你在选择一个答案(是或否)并继续下一个任务之前搜索三个小时。

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

This is the entirety of your control panel. YES, there is alien life here. NO, there’s no alien life here. There is no way to input maybes, comments, or hedging.

之前的文章中,你的老板选择了按下“否”按钮(没有外星人)作为默认动作。如果他们选择了“是”会怎么样?这是新的设置:

默认动作: 按下是按钮。

替代动作: 按下 NO 按钮。

无效假设(H0): 这个星球上有外星生命。

另类假设(H1): 这个星球上没有外星生命。

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

还记得统计学的核心问题吗?在第 1 部分中,我们看到所有的统计推断都可以归结为一句有力的话:

“我们收集的证据让我们的零假设看起来可笑吗?”

这意味着我们在问,我们在三个小时的步行中所看到的是否让“这个星球上有外星生命”的说法看起来很荒谬。在我们穿好衣服飞往那个星球之前,让我们想想我们会看到什么。

假设我们看到一个外星人。我们的零假设可笑吗?不,当然不是。如果我们徒步旅行三个小时,我们没有看到外星人呢?外星生命的零假设可笑吗?还是不行。(如果你还在纠结这个,你真的应该找个时间去地球上徒步旅行。很容易三个小时不见其他人……)

笑点是什么?不管怎样,我们都会用“否”来回答我们的测试问题

这意味着无论证据如何,我们每次都将采取默认操作(是按钮)。在这种情况下,我们唯一可以拒绝的方法是,我们可以搜索这个星球的每个角落,以确认它们没有外星人,这对我们微薄的预算来说太多了。

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

Space exploration as work from home? Best job ever!

你看到庆祝的理由了吗?如果你的太空探索公司的政策选择了“是”作为在新信息下按下的正确按钮…你可以在家里像工作一样进行太空探索,穿着睡衣懒洋洋地躺着,同时为所有的行星按下“是,是,是,是,是”!

此外,呆在沙发上是正确的事情。去那个星球只是为了做一些复杂的计算,这是浪费时间和燃料。决策者已经选择了这个决策框架,在这个框架中,按“是”是正确的答案。不要抱怨,试着用其他默认动作,这样你就有借口使用一个奇特的公式——这不是大学。我们不是为了计算东西而计算东西。我们只做统计计算,看看数据对切换动作说了些什么。(你猜怎么着,有时候我们能看到答案,所以我们甚至不需要计算什么。)

如果你不喜欢你的领导选择默认行动和决策背景的方式,你最好申请他们的工作,这样你有一天可以发号施令。只要你只是一名数据科学家(或宇航员),你的工作就是根据你的领导为你创造的环境做正确的事情。

决策者的技能决定了所有统计工作的成败。明智地选择他们。

您的默认操作决定了整个分析。请不要试图从假设开始,并倒退到让你使用你喜欢的数学的默认动作。如果你没有首选的默认动作,你甚至不需要统计推断。改为读这个

感谢阅读!YouTube AI 课程怎么样?

如果你在这里玩得开心,并且你正在寻找一个为初学者和专家设计的有趣的应用人工智能课程,这里有一个我为你制作的娱乐课程:

Enjoy the entire course playlist here: bit.ly/machinefriend

我的第一次数据科学会议教给我的最重要的经验

原文:https://towardsdatascience.com/the-most-important-lessons-my-first-data-science-meetup-taught-me-9651a528616?source=collection_archive---------34-----------------------

最大化数据科学会议体验需要知道的事情!

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

Photo by Austin Distel on Unsplash

作为一名有抱负的数据科学家,我经常遇到经验丰富的数据从业者的大量建议,他们在 Medium、 RedditAnalytics Vidhya 等平台上,甚至在他们自己的投资组合网页上写下他们的旅程和项目。

在我意识到这一点之前,我已经积累了这个领域的信息,积累的速度远远超过了我运用这些信息的能力。因此,为了防止错过我在网上收到的所有好建议,我决定将我正在阅读的所有文章放在相关的谷歌 Chrome 书签文件夹中,以此来记录它们。

大约几周前,我意识到“**通过聚会和会议与数据科学家交流”**是成长为数据科学家的重要一步。我以前从未参加过任何 meetup 会议,更不用说数据科学了,这是我严重缺乏轻松与人交往能力的直接结果。

但是在过去的几年里,我意识到**“优秀的数据科学家主要是合群的人!”**。他们绝对喜欢通过博客、播客,当然还有活动等渠道接触全球社区!因此,参加 meetup 对我来说是一个变相的机会,可以与我所在城市的一些最聪明的数据科学家联系,并获得对数据科学的真实理解。

因此,我重新安排了周日的睡眠时间,利用这一天参加了由 GDG 班加罗尔Kaggle Days Meetup BengaluruWTM 班加罗尔组织的数据科学会议😄

事不宜迟,我将直接跳到这篇文章的主要目的,并详细阐述我从这次会议中的主要收获。

你不是唯一的新手

聚会上的很多人对于所讨论的内容都是初学者。因此,如果你觉得谈论的话题超出你的理解范围,你并不孤单。还有几个像你一样的与会者,如果他们能够鼓起勇气坚持他们的冒险,你也可以做到。

一开始就失去希望从来都不利于任何新的努力,数据科学也不例外。

我做了什么?
当我感到自己在努力跟上研讨会的某些方面时,我环顾了一下房间。然后我看到很多人和我一样在挣扎,但我和他们的区别在于**“他们一起挣扎,互相帮助,而我独自挣扎”**。这个发现对我打击很大,接下来我知道的是,我与一位 DevOps 工程师一起工作,她希望从 DevOps 过渡到数据科学。

不要试图成为一个害群之马

在人群中脱颖而出总是很棒的,但如果你打算在聚会上作为一个隐士脱颖而出,你不会从中获得太多。与人交谈,向人学习,帮助人——这些都是建立你自己的知识库的神奇方法。对于数据科学来说,没有比基于社区的学习更好的学习方法了。

不要做局外人。因为,数据科学家有摆脱它们的自然倾向。

我做了什么?我四处走了走,和活动现场的人聊了几句。虽然我不能把自己归类为一个完全的初学者,但我仍然是一个关于数据科学的 meetup 会议的新手。所以,我花了一段时间来适应结识新朋友的想法(坦白地说,我在一个 100 人的房间里只见过 5-6 个人。很明显,我需要停止在社交上如此可悲😕).但是,这些有限的谈话塑造了我的跳出框框的思维能力**,这是人们往往容易忽视的坚实技能之一。**

不要被内容淹没

在我参加的会议中,我们接触到的术语和概念比行程中的要多得多。虽然这些大部分都是所讨论的主要概念的先决术语,但也有演讲者个人倾向于使用的概念的细节

如果你的 meetup 的议程是讨论 N 个主题,你总是会学习 M 个主题,其中 M >> N。

我做了什么?为了跟踪所有正在讨论的话题,我在笔记本上记下了术语。甚至那些对我来说是术语的深奥的、以数据为中心的词汇也在我的笔记本上找到了位置。通过这种方式,即使我完全不知道使用了某些术语,我也能够维护一个事件中所有讨论的列表。参加完活动回家后,我测试了自己的网上冲浪技能,详细了解了所有那些在活动中没有意义的术语。相信我,无论我用这种方法学到了什么,我都会铭记在心,因为我不只是听说过。我记下它,我查阅它,我用对我来说有意义的文字写下所有的事情。

准备好继续前进

有时,聚会有实践研讨会。现在,这些研讨会有时会变得有些乏味。出现这种情况的原因可能从延迟的软件包安装到极其缓慢的系统。这往往会导致我们错过中间的一两步。

在错过的机会上停留太久,你将看不到那些在你能力范围内的机会。

遇到这种情况怎么办? 在这种情况下,要迅速重组,进入正在谈论的下一步。如果不完成你错过的那一步就无法进行下一步,那么拿起你的笔和笔记本,开始记下你需要做的步骤。通过这种方式,你可以保持在正确的轨道上,不会在整个过程中失败。

学会接受行话

演讲者有时会不知不觉地对听众讲一些行话。但是,我们需要认识到的是"我们把某些术语认定为行话只是我们缺乏相关知识的结果"。因此,一旦你学会了,曾经是行话的术语在以后就不会是行话了。

不是所有的行话都会永远是行话。

我们所要做的就是,在离开本节课时,记下这些复杂的术语,并阅读它们。

对说话的人好一点

会议经常会变得无聊。这可能是因为你对这个话题太不感兴趣,或者是因为说话者没有能力让这个话题变得有趣。但是,这是完全正常的,因为说话的人也是人,就像你我一样。

我们都会犯错,没有人在生活中是真正完美的。

如果发生这种情况该怎么办?在这种情况下,保持耐心,不表现出不安是对说话者友好的一种神奇方式。这样做,你不仅是一个好的倾听者,也是一个伟大的人。据我所知,一个伟大的人很容易成为伟大的数据科学家,因为大多数数据科学家都致力于为人们创造价值

大多数聚会只是打破僵局的会议

在这次聚会之前,我已经参加了几个研讨会,也在我的大学举办了一些。所有参加这类研讨会的人都有一个最大的误解**,**“这个研讨会将帮助我成为这方面的专家!”。在我看来,这种说法有点过于雄心勃勃。这是因为研讨会和聚会只是破冰会议;帮助你打破讨论话题僵局的会议。但是,如果你想很好地掌握课程讨论的内容,即使在课程结束后,你也需要自己研究这个话题。****

一个单独的研讨会、会议或课程通常不足以将你从业余爱好者转变为专业人士。

保持联系

meetup 会议中的每个人都来自非常不同的背景,他们带来了自己的一套使用数据和相关技术的技巧和诀窍。所以,一定要记下你遇到的相关人员的联系方式。因为最终,数据科学是一门社区驱动的学科,通过与和你想法相同、方法不同的人交谈,你会学到更多东西

你周围的想法越多样化,你自己的想法就越好。

分享你的经验

我写这个故事的全部目的是我坚持“分享你的经验”这一点的结果。
在我看来,那里是
【有抱负的数据科学家】的海洋。因此,如果我们能够在数据科学活动中分享我们的经验,这将有助于更多的人迈出大胆的一步,走出他们的舒适区,做一些有助于形成他们对数据相关解决方案的想法的事情。此外,如果你能够写下你的经历,并提供一个 meetup 的总结版本,这肯定会提高你的内容构建技能(这与构建强大的数据科学组合非常相关)

我们周围的每个人都在学习一些东西。但是,只有那些发现他们所学的真正价值的人才能够与他人交流他们的学科。

我这边已经搞定了!

我希望这篇文章与你的时间相关,请随意分享你对 meetup 体验的想法。

干杯😊

对数据科学和机器学习来说最重要的法院判决

原文:https://towardsdatascience.com/the-most-important-supreme-court-decision-for-data-science-and-machine-learning-44cfc1c1bcaf?source=collection_archive---------4-----------------------

根据美国第二巡回法院的说法,在受版权保护的数据上训练算法并不违法。

本文将讨论 作者协会诉谷歌 一案及其先例在可预见的未来对人工智能领域的影响。

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

案件概述

作者公会诉谷歌轻松开创了人工智能领域,更明确地说,机器学习领域最重要的先例之一。该案件讨论了谷歌使用其训练数据库中受版权保护的书籍来训练其谷歌图书搜索算法的合法权利。作者协会声称谷歌图书搜索数据库的开发侵犯了数百万本图书的版权。

在 2005 年的后几个月,美国作家协会和美国出版商协会都起诉了谷歌,声称该公司因使用受版权保护的书籍来训练图书搜索算法而犯下了“大规模侵犯版权”的行为。谷歌声称,它的项目代表了数据的合理使用,它的实现相当于一个数字年龄卡目录。

美国作家协会和出版商协会联合起来反对谷歌,经过几年的诉讼后,提出了一个解决方案。由于种种原因,2011 年 3 月 22 日和解被驳回。出版商协会与谷歌达成和解,但与作者协会的诉讼仍在继续。

2011 年,作者公会提议的职业获得了认证。谷歌对这一决定提出上诉,一些法庭之友声称该类别不充分,第二巡回法院于 2013 年 7 月驳回了该类别认证,将案件发回地区法院,以考虑谷歌的合理使用辩护。

在 2013 年的后几个月,美国巡回法官 Denny Chin 驳回了诉讼,并确认谷歌图书程序符合“合理使用”的所有法律要求。

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

Source

地区巡回法院的裁决

在 2013 年 11 月的裁决中,陈法官写道:

在我看来,谷歌图书提供了重大的公共利益。它推动了艺术和科学的进步,同时保持对作者和其他创造性个人的权利的尊重,而不会对版权所有者的权利产生不利影响。

Chin 的裁决分析了四个传统因素,这些因素决定了根据美国版权法,一个版权作品的使用是否属于合理使用。他的结论是,谷歌图书符合合理使用的所有法律要求,因此不像作者协会声称的那样侵犯版权。这些因素中最重要的是对版权所有者可能造成的经济损失。 Chin 表示*“谷歌图书增加了图书的销售,有利于版权所有者”*,意思是因为对版权所有者没有负面影响,所以不违反合理使用。

然而,案件并没有就此结束,因为原告(起诉方)有机会将案件上诉到更高一级法院。

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

Source

上诉至第二巡回法庭

2014 年 4 月 11 日,提交人协会就地区法院的裁决向美国第二巡回法院提起上诉。这实质上是一个更高一级的法院,如果他们认为裁决不令人满意,有可能推翻地区巡回法院的裁决。他们还开始游说国会成立一个非营利组织,将作者的书籍数字化并授权给选择付费订阅的组织,因为他们担心这样的裁决可能会对出版业和个人作者产生影响。

口头辩论于 2014 年 12 月 3 日举行,一直持续到 2015 年 10 月 16 日,第二巡回法庭一致确认了有利于谷歌的判决。

法院对其意见的总结是:

谷歌未经授权对受版权保护的作品进行数字化处理,创建搜索功能,以及展示这些作品的片段,都不属于侵权的合理使用。复制的目的是高度变革性的,文本的公开展示是有限的,并且披露的内容没有为原件受保护的方面提供重要的市场替代品。谷歌的商业性质和利润动机不能成为拒绝合理使用的理由。

谷歌向提供图书的图书馆提供数字化副本,并基于图书馆将以符合版权法的方式使用副本的理解,也不构成侵权。

根据记录,谷歌也不是一个共同侵权者。

这实际上使得先例更加有力,但是作者协会——仍然相信他们是对的——决定直接上诉到最高法院。

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

Source

最高法院请愿书

作者公会对这起诉讼的结果并不满意,因此在 2015 年 12 月 31 日,他们向最高法院提交了调卷令状,这实质上是向上级法院提出上诉,要求审查下级法院的判决,在本案中,是第二巡回法院。

2016 年 4 月 18 日,最高法院驳回了调卷令状的申请,让第二巡回法院做出的有利于谷歌的裁决原封不动。

这并不意味着最高法院赞成或反对这一裁决,它只是说,不到 4 名最高法院法官投票审查该案件。

这在第二赛道开创了一个先例,但对其他赛道的先例只字未提。如果一个不同的巡回法庭得出不同的意见,这个先例可能会被复审,在这种情况下,最高法院可能会决定复审这个案件。

分歧

这一先例的法律后果可能会产生深远的影响。第二地区法院的决定在某种程度上为科技公司在深度学习算法的开发中使用受版权保护的材料开了绿灯,这主要是因为这种使用不会直接影响受版权保护的个别文章的收入。如果我写了一本谷歌用来训练他们的算法的书,我不会因为他们在训练他们的算法时使用我的书而受到不利影响。

硅谷是第九地区法院的一部分,这意味着这不是那里的先例,但它确实让那些正在考虑在其模型中利用版权数据的公司更加自信。

人们可能会认为,这一先例也将延伸到图像、歌曲,以及由技术集团积累的个人产生的任何其他潜在数据。

当我们从搜索算法,即鉴别算法,到生成算法,事情变得更加有趣。

一个判别算法获取原始数据,并试图将其分解成一个结果——想象一个分类算法获取一个数据点并将其放入某个组。

一个生成算法获取原始数据并使用它生成新数据。从这个意义上说,这是一个产生数据的过程。深度生成模型生成对抗网络和变型自动编码器通常用于生成和操作图像数据。

谷歌图书搜索算法显然是一种辨别模型——它通过搜索数据库来找到正确的图书。这是否意味着先例延伸到生成模型?这并不完全清楚,而且很可能是因为法律小组对这一领域缺乏了解而没有进行讨论。

这进入了一些特别复杂和危险的领域,尤其是关于图像和歌曲。如果对数百万张有版权的图片训练一个深度学习算法,得到的图片会有版权吗?同样,对于歌曲,如果我创造了一种算法,可以写出像艾德·希兰那样的歌曲,因为我对他的歌曲进行了训练,这会侵犯他的版权吗?即使从这一案例的先例来看,结果也不完全清楚,但这一结果确实给了一个令人信服的理由来假定这也是可以接受的。

当然,人们可以采取不同的观点,即使用生成模型并试图将其商业化将直接与受版权保护的材料竞争,因此可能被认为侵犯了他们的版权。然而,由于大多数机器学习模型的黑盒性质,这将非常难以证明和反驳,这使得我们在这种情况下的合法性方面处于某种形式的不确定状态。

直到一些勇敢的人走出去,试图制作基于版权材料的电影、音乐或图像,并试图将这些商业化,并随后在这方面受到法律挑战,很难猜测这种行为的合法性。话虽如此,但我绝对相信,这不是一个是否会发生的问题,而是这个案件何时会发生的问题。

从这个案例中可以得到的重要信息是:

  • 在用于训练鉴别性机器学习算法(例如用于搜索目的)的数据集中使用受版权保护的材料是完全合法的。
  • 在用于训练生成式机器学习算法的数据集中使用受版权保护的材料,在未来的任何法律挑战中都有先例。

最终意见

我希望你喜欢这篇讨论作家协会诉谷歌地方法院案件的文章。深度学习是一个非常新的热门话题,我相信我们还没有看到关于使用受版权保护的数据来训练大规模深度学习模型的法律案件的结束。这个领域发展如此之快,如此之新,以至于像 GANs 这样的深度生成模型在这个法律案件的开始甚至还不存在(它们是由 Ian Goodfellow 在 2014 年提出的)。显然,随着越来越多的公司选择将人工智能纳入其业务运营,数据使用的合法性将变得越来越重要。看这个空间,我们生活在有趣的时代。

时事通讯

关于新博客文章和额外内容的更新,请注册我的时事通讯。

[## 时事通讯订阅

丰富您的学术之旅,加入一个由科学家,研究人员和行业专业人士组成的社区,以获得…

mailchi.mp](https://mailchi.mp/6304809e49e7/matthew-stewart)

参考文献

谷歌图书裁定合理使用大获全胜(更新)Ars Technica2013 年 11 月 14 日。

谷歌赢了:法院对谷歌图书给予了大力支持出版商周刊,2013 年 11 月 14 日。

美国上诉法院称谷歌图书扫描项目合法 ,路透社,2015 年 10 月 16 日。

“我们相信最高法院会认为纠正第二巡回法院对合理使用的简单化理解是合适的……”,Authors Guild,2015 年 10 月 16 日,《第二巡回法庭让作者无依无靠》(新闻稿)。

亚当·利普塔克(2016 年 4 月 18 日)。“挑战谷歌图书被最高法院驳回”。纽约时报。检索时间 2016 年 4 月 18 日。

人民网(2005 年 8 月 15 日)。【谷歌数字图书馆暂停】

湿婆神。《万物谷歌化与版权的未来》《加州大学戴维斯分校法律评论》,第 40 卷(2007 年 3 月),第 1207–1231 页,(pdf)。

谷歌图书:对历史有益吗?、视角(2007 年 9 月)。

针对谷歌的版权侵权诉讼及其解决方式:“版权协议将使数百万本书可以在网上获得”。谷歌新闻中心。检索于 2008 年 11 月 22 日。

作家协会诉谷歌公司,721 F.3d 132 (2d Cir。2013).

《谷歌在线图书交易面临风险》

“谷歌图书结算网站上线;埃里克·舍恩菲尔德于 2009 年 2 月 11 日在 TechCrunch 上发表的文章《向每本扫描书籍的作者支付 60 美元》

美国记者和作家协会 存档2012 年 2 月 25 日,在 Wayback 机器

洪水,艾莉森(2010 年 1 月 22 日)。“乌苏拉·勒奎因领导反抗谷歌数字图书和解”守护者。伦敦。

英国广播公司:谷歌回击书评人

“Openbookalliance.org” 。2013 年 9 月 10 日从原件归档。检索于 2013 年 8 月 14 日。

谷歌图书不是图书馆

“图书隐私平价案例:谷歌图书和从离线到在线阅读的转变”。哈佛法律与政策评论。2010 年 5 月 16 日。存档于原件2010 年 8 月 12 日。检索于 2010 年 9 月 8 日。

波尔博士(2009 年 11 月 17 日)。“谷歌图书结算改头换面”。布法罗新闻。检索于 2010 年 3 月 26 日。

哈杰,基切(2010 年 3 月 17 日)。《了解谷歌出版和解案》全国。检索于 2010 年 3 月 26 日。

舍温·西伊(2009 年 11 月 17 日)。《新谷歌图书和解:孤儿作品第一印象》公共知识。2010 年 6 月 9 日从原件存档。检索于 2010 年 3 月 26 日。

法官陈的裁决全文。

阿米尔·埃夫拉蒂和杰弗里·特拉亨伯格(2011 年 3 月 23 日)。“法官驳回谷歌图书和解案”。华尔街日报。

“作者协会诉谷歌案的意见”,巡回法官 Chin,案件 1:05-cv-08136-DC 文件 1088,2013 年 11 月 14 日。检索于 2013 年 11 月 17 日。

为什么谷歌在谷歌图书诉讼中的合理使用胜利是一件大事,为什么它不是福布斯杂志,2013 年 11 月 14 日

ARL 政策说明 存档2013 年 11 月 20 日,在 Wayback 机,2013 年 11 月 14 日

http://www . info docket . com/2014/04/11/authors-guild-files-brief-in-Google-books-appeal-says-congress-should-create-a-national-digital-library/

作者协会诉谷歌 案的口头辩论存档2015 年 5 月 15 日,地点 Wayback Machine ,12–10–14

滑移意见 存档2017–09–04 在折返机处。

“46 点滑动操作”。从原件存档于 2017-09-04。检索于 2015 年 10 月 17 日。

作家协会诉谷歌公司 ,№15–849(2013 年 12 月 31 日)。

Campbell 诉 Acuff-Rose Music,Inc. 《美国最高法院判例汇编》第 510 卷第 569 页(1994 年)(2 现场剧组“漂亮女人”戏仿案)。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值