TowardsDataScience 博客中文翻译 2020(一千)

原文:TowardsDataScience Blog

协议:CC BY-NC-SA 4.0

为什么你的脸书数据如此有价值?一种通过脸书相似度预测人类特征的方法。

原文:https://towardsdatascience.com/why-is-your-facebook-data-so-valuable-a-method-to-predict-humans-traits-through-facebook-likes-e1ae036e80fb?source=collection_archive---------55-----------------------

为什么你的脸书数据如此有价值?一种通过脸书喜欢预测人类特征(性别,政治倾向,年龄)的方法。

随着选举时间的临近,我们将看到我们的脸书数据如何以及为什么对广告商和政治家如此有价值。脸书是世界上最大的社交网络平台,拥有超过 25 亿活跃用户。它以前所未有的规模处理数据,高度复杂的脸书人工智能算法以近乎人类的方式对数据进行筛选、分类和预测。

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

https://unsplash.com/photos/HUBofEFQ6CA

如何以及为什么

W hy:由于大量数据和处理能力的涌入,我们将探索如何仅使用一组脸书喜欢的东西来预测人类特征。为了实现我们的结果,我们将尝试复制分析来自剑桥分析数据丑闻的数据的流行论文。(纸在这里)

H ow:为了建立一个预测模型,我们将利用脸书广告类别数据集。利用这一点,我们将尝试创建一个类似用户的稀疏矩阵,其中每个类别对应一个评级。(1 代表,用户喜欢的内容。0 代表,用户不喜欢的内容)

要求

  • Python 3.8
  • sci kit-学习
  • 熊猫
  • Numpy

资料组

像任何 ML/数据挖掘项目一样,我们将从分析和生成数据集开始。

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

脸书广告类别数据集的预览。

如你所见,数据集非常广泛,因为它是众包的,这些条目是真实用户的。从数据集中可以明显看出,我们只需要**“name”**列。以此为起点,我们可以生成数据集的下一部分。

def generate_data(number_of_users=55000, cols=cols):"""Generates random data consisting of user's likes and dislikesArguments:number_of_users: intReturns:DataFrame"""assert number_of_users <= len(cols), "Number of users and cols should be less or equal."index = ["User {}".format(i) for i in range(1, number_of_users+1)] # Number of user# generic categoriescols = cols.tolist()data = {col: [] for col in cols}# random liking or disliking ( 1 or 0)def like_or_not(): return random.randint(0,1)for col in cols:#print("Adding for {}".format(col))for i in range(1,number_of_users+1):data[col].append(like_or_not())print("Data generation complete.")return pd.DataFrame(data=data, index=index), index, cols

为了生成我们的数据,我们提取“name”列,并为每个用户随机分配 1 或 0。

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

like_or_not 函数

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

用户数=5 时我们生成的数据集的预览

目标变量

到添加我们的目标变量,我们将关注“年龄”、“性别”和“政治”。这些是我们希望通过收集每个用户的脸书喜好来预测的变量。

def generate_target_variables(number_of_users=55000,target=['age', 'gender', 'political']):
  # for each target we will generate random data
  data = {"age":[], "gender":[], "political":[]}# for age (age ranged: 18 to 75)
  # regression
  data['age'] = [random.randint(18, 75) for x in range(1, number_of_users+1)]# for gender (m or f) ( 1 or 0)
  # classification 
  data['gender'] = [random.randint(0,1) for x in range(1, number_of_users+1)]# for political
  # classification (1 -> democratic, 0 -> republican)
  data['political'] = [random.randint(0,1) for x in range(1, number_of_users+1)]return data# adding target variables
data['age'] = target['age']
data['gender'] = target['gender']
data['political'] = target['political']

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

数据集中的目标变量

降维

由于我们的数据集包含约 52000+个产品的广告类别,我们将使用奇异值分解进行降维。(论文中也有提及)

对于那些不记得奇异值分解或主成分分析的人,我们将简要概述这一过程。

降维,或称降维,是将数据从高维空间转换到低维空间,使低维表示保留原始数据的一些有意义的属性,理想情况下接近其固有维度。

F 或 SVD,我们本质上使用公式来转换数据:

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

https://en.wikipedia.org/wiki/Singular_value_decomposition

为了执行我们的降维,我们将使用 sklearn TruncatedSVD 类,其中 n_components=100(根据论文。)

def dimen_reduce(values):

    reduced = TruncatedSVD(n_components=100)
    tr = reduced.fit_transform(values)
    return tr

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

在执行 dimen_reduce 时,我们得到了这个转换后的数据帧

def generated_reduced_df(df, index, number_of_users=55000):tr = dimen_reduce(df.values)# 100 componentsdimen_df = pd.DataFrame(data=tr, index=index)target = generate_target_variables(len(dimen_df))dimen_df['age'] = target['age']dimen_df['gender'] = target['gender']dimen_df['political'] = target['political']return dimen_df

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

我们最终的数据集

培养

如根据本文,我们用线性回归训练年龄目标变量,用逻辑回归(分类)训练其他参数。

论文提到了许多参数,但是由于计算的限制,我们只预测了三个变量(年龄、性别、政治)。

def split_dataset(df,test_size=0.2, stype="linear"):features_age, labels_age = df.drop(columns=['age']).values, df['age'].valuesfeatures_gender, labels_gender = df.drop(columns=['gender']).values, df['gender'].valuesfeatures_political, labels_political = df.drop(columns=['political']).values, df['political'].valuesif stype == 'linear':x_train, x_test, y_train, y_test = train_test_split(features_age, labels_age, random_state=42, test_size=test_size)return x_train, x_test, y_train, y_testif stype == 'clas_gender':x_train, x_test, y_train, y_test = train_test_split(features_gender, labels_gender, random_state=42, test_size=test_size)return x_train, x_test, y_train, y_testif stype == 'clas_pol':x_train, x_test, y_train, y_test = train_test_split(features_political, labels_political, random_state=42, test_size=test_size)return x_train, x_test, y_train, y_test

由于性别和政治目标变量是 1 和 0 的形式,我们使用 LogisticRegression 来训练我们的模型。我们使用线性回归以年龄作为目标变量来训练我们的模型。

答根据论文,我们根据奇异值分解对 100 个成分进行 10 重交叉验证。

# age
cross_val_score(linear_reg, x_train_linear, y_train_linear, cv=10)
cross_val_score(linear_reg, x_train_linear, y_train_linear, cv=10)# gender and political
cross_val_score(log_reg, x_train_gender, y_train_gender, cv=10)
cross_val_score(log_reg, x_train_pol, y_train_pol, cv=10)

结论

到总结,我们看到脸书的喜好是如何影响或预测重要的人类特质的。有了足够的数据(n=55000),我们可以获得可接受的准确度作为测量的 ROC。随着数据的涌入,我们可以看到,如果组织能够访问脸书的数据,那么锁定特定人群是多么容易。

参考

【1】【https://www.pnas.org/content/pnas/110/15/5802.full.pdf】T21

链接

[1]Github:https://github.com/aaditkapoor/Facebook-Likes-Model

[2]Colab:https://Colab . research . Google . com/drive/1k 75 odwkhenxirvdkzyybimpqngisjs 6?usp =共享

为什么你的 Horovod 比平时慢?

原文:https://towardsdatascience.com/why-is-your-horovod-slower-than-the-usual-201b4b8574d5?source=collection_archive---------26-----------------------

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

https://github.com/horovod/horovod

本文讨论了如何使用 Horovod 进行更快的训练,以及在使用 Nvidia GPUs 作为加速器时可能导致训练速度下降的一些常见瓶颈。

Horovod 是一个大规模执行分布式深度学习训练的框架。它的目标是用仅仅五行代码将大规模分发到深度学习作业中(嗯,差不多,取决于你想做什么)。让你的深度学习工作分布式的提升在你这边非常低,至少用 tf.keras API 是这样。你自己用一个 MNIST 的例子来看看吧。

[## 霍罗沃德/霍罗沃德

此时您不能执行该操作。您已使用另一个标签页或窗口登录。您已在另一个选项卡中注销,或者…

github.com](https://github.com/horovod/horovod/blob/master/examples/tensorflow_keras_mnist.py)

以下几点可能有助于您在使用 GPU 时调试缓慢的 horovod 作业:

  1. **环境设置:**确保您已经安装了正确的环境。这包括使用无 bug 的 MPI,比如 OpenMPI。从 horovod 的自述中可以看出。

注意:Open MPI 3.1.3 有一个可能导致挂起的问题。建议的修复方法是降级到 Open MPI 3.1.2 或升级到 Open MPI 4.0.0。

使用深度学习框架的无 bug GPU 版本(至少在 TensorFlow 的情况下)总是有帮助的。我记得 tensorflow-gpu 1.13.1 有一个 bug,它会产生比所需数量更多的进程,使进程争夺没有有效完成任何工作的 gpu 资源。

**2。正确的绑定参数:**使用带有正确 MPI 参数的 mpirun 或 **horovodrun(取决于您使用的硬件)**可以提高性能。理想情况下,控制 GPU 的进程应该绑定到最近的 CPU 插槽。这是可变的,取决于您用来训练模型的服务器硬件。在戴尔 EMC PowerEdge C4140 上,最佳选项是— 按插槽映射。不需要指定任何绑定选项。看起来大概是这样的:

mpirun-map-by socket-NP x python pyfile . py–py options

**3。每个 GPU 一个进程:**作业应该设置为一个 MPI 进程在一个 GPU 上工作。如果进程的数量超过 GPU 的数量,这些进程将会竞争计算资源,并且无法以良好的性能运行作业。在上面的例子中, x 应该是要使用的相同数量的 GPU。

要为每个 GPU 设置一个进程,使用 TensorFlow 的 ConfigProto()如下:config . GPU _ options . visible _ device _ list = str(hvd . local _ rank())

**4。要检查使用 GPU 的进程数量,可以使用 GPU 的内存消耗‘watch NVIDIA-SMI’**命令。这也允许查看功耗。

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

观看 nvidia-smi

5。闲置 GPU: 这是你工作变慢的一大元凶。如果你的图形处理器急需数据,那么工作很容易变慢。我见过需要数天/数小时培训的工作,如果数据管道处理正确,可以在不到一小时内完成。确保您的代码实现了数据流水线机制,如 tf.datadali 或任何能够在训练发生时进行更快预处理并准备好下一批的机制。

如果数据管道设置正确并且 mpirun 参数正确,一旦模型训练开始,GPU 利用率应该会持续超过 80-90%。偶尔降低到 10–25%的利用率是可以接受的,但是不应该太频繁。

**5。检查是什么让事情变慢了:**使用 horovod timelinenvprof 查看任何可能出现的瓶颈,来描述你的工作。瓶颈很可能是由以下原因之一造成的:

a) TF 数据管道没有设置好,因此在加速器空闲时花费了大量时间来准备数据。若要解决此问题,必须更正 tf 管道。查看 tf 官方模型报告以获得建立高效数据管道的灵感。

b)通信可能没有使用正确的结构—确保您使用的是 InfiniBand ,在运行 mpirun 时查看结构用法包括**–x NCCL _ 调试=信息**,如下所示:
mpirun-NP 4—map-by socket-x NCCL _ 调试=信息 python something . py-{ params }
或使用包含–x 绑定的horovidun

**6。GPU 通信:**为了正确地实现分布,GPU 之间需要进行有效的通信。如果他们不能有效地沟通,这就会导致沟通瓶颈。要查看他们是否以最佳方式进行沟通,请使用以下流程:

  1. 使用 NCCL 调试=信息可以向你展示图形处理器是如何说话的。如果 GPU 在说话:

a. 在节点内以一种最优的方式将看起来类似于这样:GPU 002:1299562:1299573[0]NCCL 信息环 00 : 0[0] - > 1[1]通过 P2P/IPC

b. 最优方式下的外部节点看起来将与此类似:

GPU 028:149460:149495[0]NCCL 信息环 01 : 16 - > 0【发送】via NET/IB/0

GPU 009:164181:164216[0]NCCL 信息环 01 : 12 - > 8【接收】via NET/IB/0

GPU 009:164181:164216[0]NCCL 信息环 01 : 4 - > 8【接收】via NET/IB/0

6。其他通用提示:设置批处理大小,使 GPU 内存几乎已满,但要加以限制,以免超出内存要求。重要的是要考虑完成学习率缩放的方式。学习率缩放的概念是,随着 GPU 数量的增加,学习率也必须乘以与 GPU 数量成比例的因子。这允许模型有效地收敛。这样,通过将最大数量的可能图像安装到 GPU 上,可以减少 i/o 操作的数量,而不会影响模型的收敛性。必须注意的是,在分布式工作负载设置中,学习率缩放并不总是改善模型收敛的最佳解决方案。
检查是否需要学习率缩放:

  1. a)以分布式模式训练具有和不具有学习率缩放的模型。
    b)如果没有学习率缩放的模型比具有学习率缩放的模型执行得更好,则不需要学习率缩放。
  2. 特别是当训练收敛时,并不总是强制性的规则来适应每批图像的最高可能数量。数据科学家必须能够根据他们的使用案例,在批量大小和收敛(是否使用学习率缩放)之间做出权衡。
    同样,你可以使用**‘观看 NVIDIA-SMI’**来查看 GPU 内存的消耗。使用学习率调整时,通常会有预热阶段,如本文中所述。

3.安装最新的库。

分配你的深度学习工作有时会很有挑战性,特别是当使用的节点/GPU 数量不能有效地转化为相应的性能时。为确保从加速器投资中获得最大收益,请确保实施以下最佳实践:

  • 正确的绑定选项已经就绪,
  • 评估不浪费 GPU 内存的多个进程,
  • 使用现代流水线方法,
  • 查看 GPU 的剖析至少在作业运行的 80%的时间里被使用,
  • 使用最新的 CUDA 相关库,比如 CUDA 驱动包括 NCCL 等。

如果你有更多的解决方案,我会很高兴听到。请评论。

数据科学家,为什么感觉你的队友比你聪明

原文:https://towardsdatascience.com/why-it-feels-your-coworkers-are-smarter-than-you-96763c72351e?source=collection_archive---------76-----------------------

你不明白你的同事在谈论什么以及你能做些什么的一个原因。

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

克里斯蒂娜@ wocintechchat.com 在 Unsplash 上的照片

这是你作为一个新项目的数据科学家的第一天。你在之前的项目中表现出色,并被邀请加入这个在机器学习领域需要帮助的新团队。这是非常令人兴奋的,你已经准备好投入并开始行动了。你很乐观,尽管你心里有些紧张。当你开始一个新的角色时,紧张是很正常的,尤其是当你被提升到这个位置时。

你参加了你的第一次每日站立会议。你的新成员欢迎你。一些人提到他们非常钦佩你之前的工作。他们期待着你对这个项目的贡献。伟大的开始!

当您的新团队成员四处提供状态更新时,您会专注地倾听。数据分析师谈论最近 A/B 测试的统计意义。您的技术负责人讨论了一个线程问题,并提出了一种新的设计技术。项目经理讨论部署到生产所需的变更管理批准。架构师担心 LDAP 协议可能不适合他们的应用程序。 LDAP? 什么是 那个?渐渐地,你的头脑开始混乱,怀疑混入你的思想。

每个人知道的都比你多

你变得越来越自我,开始怀疑自己是否有能力为这个项目做贡献。肯定有人会意识到你根本不知道他们在说什么。

下图可以说明这种情况的感受:每个人都比你聪明。

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

由作者创建

这种知识上的巨大差距感觉是不可逾越的。难怪你会感到不知所措,担心被揭穿是个骗子(典型的冒名顶替综合症)。

冒名顶替综合症不仅在新数据科学家和软件开发人员中很常见,在所有岗位上都很普遍。事实上,你的一些队友可能也有同样的感觉。

别着急,有好消息。

每个人知道的东西都比你不同

现实情况是,你的队友并不一定比你知道的更多。他们只是比你更了解不同的事物。团队中没有一个成员什么都知道,不管他们看起来多么自信。每个人都将自己的专业知识添加到最终产品中。

它可能会帮助你改变你的心态,就像这个插图所示。

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

请注意,所有团队成员共享的知识很少。在这个项目中,每个人都互相依赖。你带来了一套特殊的技能和专业知识,这将有助于最终的产品。

你的经理知道你有技能。这就是为什么他们选择你这个角色。他们相信你。现在是你相信自己的时候了。

后续步骤

你可以做很多事情来获得对工作的信心,朝着项目和职业目标前进。

首先,深呼吸,呼气。你的感觉是完全正常的。

知道不知道“一切”是好的。鉴于每天都有大量的新信息、研究和有趣的技术问世,这甚至是不可能的。

如果你有导师,这将是一个很好的话题。他们经历过类似的情况吗?如果是,他们是如何克服的?

你可能会发现,当你进入新的、更具挑战性的角色时,自我怀疑会再次出现。这是很常见的。一个诚实的部门主管可能会承认,至少在新职位的前六个月,他们经历了严重的自我怀疑。

拥抱你的新角色以及最初几天和几周的不确定性。很快你就会完全融入你的团队,并提供一些令人震撼的新功能。

互联网上有很多资源可以帮助你识别和克服冒名顶替综合症。瓦莱丽·杨的《克服冒名顶替综合症的 10 个步骤》就是这样一个资源。

为什么 Iterables 在 Python 中如此强大——理解这 5 种不同的用法

原文:https://towardsdatascience.com/why-iterables-are-powerful-in-python-understand-these-5-distinct-usages-130f364bd0ba?source=collection_archive---------34-----------------------

提高您的 Python 技能

理解 iterables 的这些常见用例,以提高您的 Python 编码技能

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

照片由阿列克谢·鲁班Unsplash 上拍摄

什么是可迭代的?

Iterables 是 Python 中重要数据结构的集合。例如,字符串、列表和字典等内置类型都是可迭代的。如果您使用过高阶函数,如映射过滤器,您可能知道这些函数也创建可迭代对象(即映射过滤器对象)。再举一个例子,你可能听说过生成器,它也是具有内存效率的强大工具。

这些数据类型是我们在 Python 中使用的 iterables 的常见例子。但是什么是可迭代的呢?《流畅的 Python——一本关于更高级 Python 的好书——的作者卢西亚诺·拉马尔霍给出了以下定义。基本上,可迭代对象是那些可以被转换成迭代器的对象,这样它们的元素就可以被迭代来执行某些操作。

“iter 内置函数可以获取迭代器的任何对象形式。实现返回迭代器的 iter 方法的对象是可迭代的。—卢西亚诺·拉马尔霍的《流畅的蟒蛇》

Iterables 是如此重要,以至于它们在许多地方被用于不同的目的。本文试图对 Python 中 iterables 的常见用例进行系统但非详尽的回顾。在回顾了这些使用场景之后,我希望您会对在 Python 项目中使用 iterables 感到更加舒适。

1.使用 For 循环的迭代

iterables 最明显的用法是在 for 循环中迭代 iterable 的每一项。在底层,每个 iterable 都被转换成一个迭代器(使用前面提到的iter()函数),迭代器通过调用next()函数将项目呈现给 for 循环。当然,当前的文章并不是要提供一个彻底的关于迭代是如何实现的机械论解释(如果感兴趣,请看这里的。相反,让我们看看 iterables 在迭代中是如何工作的。如下面的代码片段所示,常见的内置 iterables 都可以在迭代中使用。有两件事值得注意。

  • 字符串是可重复的,单个字符被认为是字符串对象的项目。
  • 默认情况下,字典会遍历它们的键。如果需要迭代它们的值和项(即键值对),就必须分别使用字典的values()items()方法。

迭代迭代

2.集合数据类型构造

我们可以使用 iterables 来创建集合数据类型,一些常用的类型包括列表、集合、元组和字典。在包含可管理数量的元素的简单场景中,我们可以使用文字来创建这些数据。如前一节代码片段的开头所示,我们只是指定了将要存储在这些数据容器中的单个元素。很直白,对吧?

然而,当我们需要创建包含大量元素的容器数据时,使用文字就不那么方便了。值得注意的是,每种集合数据类型都有自己的构造函数,使用各自的类名,并且它们可以简单地使用 iterables 来创建新的集合对象。下面的代码向您展示了我们如何做到这一点。

使用 Iterables 构建集合数据

如果你从事数据科学或机器学习,你可能对 NumPy 和 Pandas 包并不陌生。这些包中最基本的数据结构都是使用 iterables 构造的。下面的代码片段向您展示了一些基本用法。

使用 Iterables 创建结构化数据

3.理解和生成器表达式

Python 中一个特别有用的特性是理解技术。具体来说,我们使用理解来创建列表、集合和字典,这些技术被称为列表理解、集合理解和字典理解。它们有以下基本形式。

理解语法

如上所示,所有这些形式都包括单行迭代的使用。每个理解都可以有一个可选的条件评估—当它为真时,该项目将被发送到表达式。列表和集合理解都只有一个表达式,而关键字理解有两个表达式,一个表示关键字,另一个表示值。另一个显著的区别是使用方括号来理解列表,而对于其他两个列表,则使用花括号。你必须清楚这些相关技术的微妙之处,因为如果你混淆了这些语法,你可能会得到意想不到的结果或者在你的代码中产生错误。下面的代码片段向您展示了这些理解技术的用例。

理解示例

与这些理解技术相关的是生成器表达式,它用于创建生成器。像这些理解的输出一样,生成器表达式的输出(即生成器)也是可迭代的。与这些来自理解的可重复项不同,生成器可以在被请求时产生值,因此它们的内存效率很高。如果你想了解更多关于发电机的知识,你可以在这里找到更多的。下面让我们看看创建生成器的语法及其用法。

生成器与列表

如上所示,生成器只需要少量的内存,因为在这个例子中,它们不会将所有的元素都作为列表加载。重要的是,当我们使用内置的sum()函数计算这些平方和时,生成器和列表可以产生相同的结果。

4.列表和元组解包

当我们处理列表和元组时,我们通常需要使用数据的特定部分。常见的方法是使用索引/切片技术,这将允许我们获得单个元素或数据块。然而,索引和切片可能很棘手,因为所用的数字看起来很神奇(也就是说,有人可能很难理解为什么要使用特定的索引)。相反,我们可以使用解包技术,这涉及到按顺序将元素分配给特定的变量。下面我们来看一个微不足道的例子。

元件的拆包

在上面的例子中,我们使用了与 iterable 中元素数量相同的变量。然而,为了使解包技术更加强大,Python 支持使用无所不包的方法来解包。具体来说,如果我们使用的变量数量少于 iterable 中的元素数量,带星号的变量将捕获所有剩余的元素。值得注意的是,特定的变量将被创建为可迭代的(即一个列表对象)。让我们看看这个特殊的用法。

使用星号拆包

分别给first_numberlast_number分配列表的第一个和最后一个元素。有趣的是,middle_numbers捕获了中间的所有数字,并且有一个数据类型为 list

5.高阶函数

iterables 的另一个用例是它们是一些高阶函数的输入(即参数)和输出(即返回值)。涉及迭代的两个常见高阶函数是映射滤波器函数。对于过滤器函数,它需要一个 iterable 和一个过滤函数,这将应用于 iterable 的每个元素。当条件满足时,该项将被保存在迭代器中。让我们看看如何对 iterables 使用 filter 函数。如示例所示, filter 函数通过只包含可被 3 整除的序列来过滤序列。重要的是,生成的过滤器对象是一个迭代器,因此能够在迭代中使用。

Iterables:过滤函数

对于映射函数,它将采用一个映射函数和一个或多个 iterables。重要的是,iterables 的数量应该与映射函数接受的参数数量相匹配。iterable 中的每个元素都将被传递给映射函数进行处理。映射的项目将包含在输出映射对象中,该对象是一个迭代器对象。让我们在下面的代码片段中看看 map 函数是如何工作的。与过滤功能相比,映射功能是使用映射功能转换对象,而不评估包括哪些元素。

Iterables:映射函数

作为一个重要的旁注,即使我们可以在 map 和 filter 函数中使用 iterables,如果使用这些高阶函数来创建列表、字典、集合和生成器的整个目的,我们应该考虑使用相应的理解技术,因为它们更具可读性,被认为更 Pythonic 化。

结论

在本文中,我们回顾了 Python 中 iterables 的五个常见用例。它们是一个非常宽泛的概念,包括内置的数据类型(例如,字符串、列表和字典)。因此,更好地理解这些用法可以帮助您处理 Python 项目中涉及 iterables 的大部分工作。

感谢您阅读本文,祝您用 Python 编程愉快。

为什么用英语比韩语更容易分析社交媒体上关于寄生虫的讨论

原文:https://towardsdatascience.com/why-its-easier-to-analyze-social-media-buzz-about-parasite-in-english-than-korean-and-how-open-9b3cd0ebff92?source=collection_archive---------60-----------------------

以及开源文化如何改变这种状况

由 Theo Goetemann&hyun jae Cho

“换句话说,对于一个初学数据的科学家来说,用英语找到并使用开源库来分析围绕韩国电影《寄生虫》的基于文本的社交媒体比用韩语来分析更容易。”

**《寄生虫》不仅仅是商业上的成功,**它还是喜剧和语言上的挑战。影评人说,如果不是因为反映太平洋彼岸语义和文化的字幕质量,《寄生虫》不可能在美国大受欢迎。

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

图片来自维基百科

将剧本翻译成英文字幕的美国电影评论家达西·帕凯说,翻译过程涉及许多电子邮件,甚至花了更多时间与奉俊浩和他的团队一起写作和修改。他和 Bong Joon-Ho 不得不做出艰难的翻译决定,从妙语的表达到翻译“jjapaguri”,这是 Jjapaghetti 即食黑豆面和 Neoguri 即食辣面汤的令人上瘾的组合,面向讲英语的观众。

“jjapaguri”怎么翻译成英文?Ram-don =拉面和乌冬。一个新颖挑战的巧妙解决方案。如果两位专家捕捉《寄生虫》中幽默的细微差别如此困难,想象一下,为了让算法捕捉同样的细微差别,我们还需要走多远。

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

图片来自 Geolee 在istockphoto.com

**在数据科学和自然语言处理(NLP)中,**我们也面临着持续的灰色选择;几乎没有黑色和白色。例如,在知道数据中存在潜在偏差的情况下,如何使用历史警察逮捕数据创建预测性分析?在为主题分类创建训练数据集时,您如何在短项目时间表和精确度之间取得平衡?甚至当您开始您的第一个数据科学项目时,您已经在权衡使用哪些库的利弊,并且在这个过程中,正在深入研究作者在创建库时所做的主观选择。

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

图片来自克里斯蒂娜·莫里洛,佩克斯

作为一名初学数据科学家,要充分探索这些细微差别和决策,课程和培训可能会有所帮助,但最终,它们无法取代对在线开源库海洋的单独探索。开源库是任何人都可以自由重用、修改和发布的代码库。代码的作者可以在不同的许可下发布他们的作品,这决定了他们的代码如何被重用(例如,用于商业项目)。许多这些库也是有经验的数据科学家的关键构建模块,允许他们快速原型化和构建最小可行的产品,以及作为更大、更复杂项目的基础。

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

使用 City78 数据放置身份快照。作者图片

当 Hyunjae 和我第一次开始修改city 78’**s 代码来分析韩语文本时,**我们期望构建一组模块化的脚本作为原型,并插入到我们现有的流程中。我们计划使用开源的韩国 NLP 库来分析 Naver,该平台的搜索引擎占韩国所有网络搜索的大约四分之三,利用该平台的地理定位零售和公共评论来创建社区的场所身份快照。然而,我们发现,许多开源文本分析工具(例如,情感分析、分词器)——在英语中我们认为理所当然的工具——在青少年时期以韩语开源库的形式存在,而不是我们预期的即插即用。

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

Github,Naver 截图

虽然像 Naver 这样的大公司在内部肯定拥有一系列令人难以置信的 NLP 资源,并且确实为开源社区、包括 NLP 库、做出了贡献,但这些库的可访问性和易用性对于鼓励它们在传统的非数据科学领域的实施以及学生对它们的使用至关重要。

换句话说,对于一个初学数据的科学家来说,用英语找到并使用开源库来分析围绕韩国电影《寄生虫》的基于文本的社交媒体比用韩语来分析更容易。

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

图片来自 Arif Riyanto,Unsplash

**在我们尝试构建一个可以分析朝鲜语文本的快速原型的过程中,**我们了解到,对于许多刚刚进入朝鲜语自然语言处理领域的人来说,没有一条直接的道路。然而,随着用户生成的文本数据量继续以指数速度增长,自然语言处理技术对于理解消费者/公众/团体的观点、趋势等将至关重要。作为个人、社会和机构,我们有责任促进开源工具的发展,使学生和专业人士能够学习和创新。

本文旨在作为探讨机构和私营部门在围绕自然语言处理培养开源文化中的作用的对话起点,因为这一不断发展的学科的影响将塑造一代数据科学家、商业模式和世界各地处理文本数据的初创公司的可扩展性。

我们希望您能加入我们的对话,用非英语语言分享您自己的开源和 NLP 经验。

为什么 Keras 是领先的深度学习 API

原文:https://towardsdatascience.com/why-keras-is-the-leading-deep-learning-api-31e00dfa012c?source=collection_archive---------56-----------------------

了解 Keras 深度学习库

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

塞巴斯蒂安·沃特曼在的照片

Keras 是一个开源、用户友好的深度学习库,由谷歌深度学习研究员 Francois Chollet 创建。Keras 背后的用户友好的设计原则使用户可以很容易地将代码快速转化为产品。因此,它在工业界和学术界都有许多应用。

Keras 团队的任务是让机器学习民主化。这意味着它是按照特定的标准设计的,旨在使其高效、可靠,并能为大量受众所接受。在这篇文章中,我想探索 Keras 的关键特性(正如在 Keras 文档中概述的),回答为什么 Keras 是领先的深度学习工具包的问题。特别是,我将讨论 Keras 的三个主要特性:用户友好的设计、跨多个平台的轻松部署以及可伸缩性。

人性化设计

Keras 为神经网络模型构建过程的几乎每个方面都提供了易于使用的模块,包括模型、层、回调、优化器和损失方法。这些易于使用的功能支持快速模型训练、健壮的模型测试、快速实验和灵活部署,以及许多其他功能。

模型 API 包含顺序模型类(限于单输入、单输出的层堆栈)、模型类(支持任意模型架构)、模型训练方法(用于拟合、编译和评估)以及模型保存方法。这些模型方法允许您轻松地使用模型参数细节(如损失函数、层、节点、优化器和激活函数)来扩充模型对象。此外,它允许您以直观和易于阅读的方式调用实例化模型对象上的 fit 和 predict 方法。

例如,通常用于图像识别的卷积神经网络可以用 12 行简单的代码进行初始化、分层、训练和测试:

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

另一个例子是实现 LSTM 模型,它可用于语音识别任务。该系统可以通过 6 行代码来实现这一点:

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

模型方法还允许您保存和重新加载模型权重,这避免了在相同数据上重复重新训练模型的耗时任务。

层方法使得层的添加变得容易,这些层是神经网络的构建模块。要了解这一点,以添加卷积和 LSTM 层为例,如上所示。要添加卷积层,只需在模型对象上调用“add()”方法,并传入 Conv2D 方法作为参数:

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

要添加一个 LSTM 层,你可以在你的模型对象上调用“add()”方法,并传入 LSTM 方法:

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

总的来说,layers 方法包含通常用于各种神经网络架构的密集层、LSTMs 层、用于卷积神经网络的卷积和汇集层、递归神经网络层等等。它还包含激活层、规范化层和正则化层。LSTM 层和递归层可用于建立神经网络,该网络用于涉及序列的各种预测任务。这些包括时间序列预测、语音识别、语法学习、手语翻译等等。卷积神经网络使用卷积层,因此得名。他们从事各种图像分类任务,如自动驾驶汽车中的面部识别和物体识别。激活层 API 对于激活函数的快速实验是有用的,激活函数在神经网络层中对神经元触发过程进行数学建模。根据您的使用案例和数据质量,一个激活函数可能比另一个更有用。能够快速测试几个激活功能允许您快速生成结果并更快地构建准确的模型。例如,如果您想尝试在 LSTM 图层中使用校正线性单位(“relu”)激活函数,只需在 LSTM 方法的参数中输入 activation =“relu”:

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

或者,您可以通过更改很少的代码来尝试使用双曲正切激活函数:

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

此外,标准化层有助于确保神经网络模型根据正负特征值进行训练,并且这些值对学习的影响程度相似。最后,正则化层有助于防止神经网络过拟合。

Keras 的回调方法也特别有用,它允许用户在训练期间执行各种动作。例如,ModelCheckPoint 类允许您在训练过程中保存模型权重,以防中断。您还可以使用这个类来继续您离开的地方,并进一步微调您的模型。EarylStopping 允许您在绩效指标停止改善时停止训练。如果不及早停止,您可能会在不再提高模型性能的培训中损失很多时间。如果使用正确,这些回调类可以节省数小时的训练时间和计算资源。

优化器方法允许您无缝地实现优化器,如随机梯度下降(sgd)、Adam、均方根传播算子(RMSProp)、AdaDelta 和 adagrad。对于可能不知道 sgd 和 adam 之间理论差异的新研究人员或开发人员,Keras 允许快速测试两者,从而更快地生成结果。

Keras 具有概率损失和回归损失的损失方法,这两种方法都包含易于访问的损失函数套件。假定损失函数建议神经网络的训练过程,能够用不同的损失函数运行快速实验能够实现快速模型开发。该网络包括二元交叉熵和稀疏分类交叉熵,两个流行的分类损失函数。对于回归,损失 API 包括均方误差、平均绝对误差、平均绝对百分比误差等等。在回归和分类任务的情况下,对这一套功能的容易访问使得快速原型和实验成为可能。

总的来说,易于使用的神经网络组件的 API 允许容易的实验、更快的结果、有效的研究和容易的产品部署。所有这些功能意味着 Keras 可以让您设计高度可定制的工作流程,轻松快速地从想法到产品。

研究 &产业

Keras 在研究机构和行业中被广泛使用,大概是因为它的用户友好特性,可以实现高效的研究和原型制作。例如,具有最少编程和深度学习知识的研究和行业领域专家可以使用 Keras 快速构建和优化他们用例的模型。

在研究领域,CERN 和 NASA 等大型机构将 Keras 用于各种应用。CERN 通过深度学习将模式识别应用于粒子跟踪(研究单个粒子在介质中的运动)等任务,例如跟踪希格斯玻色子。CERN 还将深度学习用于一项名为 jet flavor tagging 的任务,该任务与粒子识别有关。美国宇航局将深度学习用于像系外行星发现、月球上的行星导航、智能机器人宇航员/机器人等等任务。

在纯粹的研究领域之外,Keras 也被证明在商业领域也很有用。像网飞这样的公司已经使用 Keras 建立推荐系统,根据过去的数据预测用户的偏好。对于网飞来说,这涉及到根据观众过去看过的电影和节目的数据训练一个神经网络,并随后预测用户可能喜欢哪个新节目或电影。优步还使用深度神经网络来预测骑手需求,估计接送的到达时间,寻找骑手/司机匹配,以及其他任务。此外,Uber Eats 使用基于神经网络的推荐系统向用户推荐吃饭的地方。其他公司,包括 Yelp、Instacart、Zocdoc 和 Square,也在各种应用程序中使用 Keras。

总的来说,虽然对于任何具有最低限度编程或深度学习经验的人来说,开始使用 Keras 都很简单,但 Keras 在研究和行业中的广泛采用表明,它能够实现许多强大的实际应用。

部署在平台上

Keras 也可以很容易地跨各种平台部署。例如,使用 Keras 构建的模型可以通过 Python 运行时部署在服务器上。像优步和网飞这样的公司使用 Node.js 来部署他们的许多深度学习产品,例如他们的推荐系统。Node.js 是一个 JavaScript 框架,对于希望使用 Keras API 进行模型开发而又不想学习新的编程语言的 JavaScript 开发人员来说特别有用。此外,Keras 模型产品可以部署在 Android、iOS、Raspberry Pi 等平台上。

Keras 在工业和研究领域的广泛采用使其成为深度学习领域的领先 API。此外,因为您可以跨多种平台部署 Keras,所以 API 非常灵活。Keras 相对平台不可知的事实意味着它可以用于各种 web 和移动应用程序。此外,Keras 的灵活性和用户友好性有助于软件应用程序开发的快速创新,特别是在数据驱动的行业。

Keras 可扩展性

Keras 是高度可扩展的,因为它本身支持 Tensorflow 分发策略 API。这使您可以轻松地在数千台 CPU 或 GPU 设备上运行您的模型。模型分发可以采取两种形式之一。第一个是数据并行,在多个设备上训练单个模型。第二种方法,模型并行,涉及在多个设备上训练单个模型的不同部分。Keras 支持分布式计算的数据并行性,这使得可伸缩的模型开发成为可能。可扩展的模型开发对于优化模型开发的生产率、最小化训练模型的成本、以及当单台机器上的资源稀缺时最小化人工介入或干预是至关重要的。

从产品开发的角度来看,可伸缩性对于产品的效率和质量至关重要。考虑一下网飞推荐系统的例子。随着网飞继续获得更多的付费会员,更多的人将使用该平台,这反过来增加了用于训练推荐系统的神经网络的计算负荷。随着用户数量的增长,需要存储更多的数据并用于训练神经网络模型。更多的用户意味着观看更多的电影和节目。这意味着观众偏好预测类型的数量增加,这将需要对更大的数据集进行更长的训练时间。测试也是如此。稳健测试成本高昂,可能需要大量的硬件资源。在这两种情况下,通过数据并行化进行扩展可以显著减少机器学习管道每个部分的时间和成本。

如果你正在用底层的深度学习技术创业,Keras 尤其棒,因为新业务具有最高的增长潜力。对于您的新业务,Keras 允许您通过分布式计算的本地支持来扩展计算。随着平台的不断增长,这允许您最大化模型开发的生产力,并最小化模型培训/测试的成本。

结论

Keras 是一个用户友好的工具包,大大降低了深度学习研究和开发的门槛。Keras 的低门槛是 Keras 团队为了使机器学习民主化而有意融入的设计原则。如果用 Keras 建立模型既不需要编程也不需要深度学习专业知识,那么来自各行各业、有不同想法和经验的人可以很容易地将深度学习应用于他们感兴趣解决的问题。Keras 在工业和研究中的广泛应用也说明了这些努力。例如,如果没有深度学习经验的化学物理学家想要将深度学习应用于化学中的一个新颖问题,他们可以很容易地学习如何使用 Keras 并开始测试想法。此外,如果一家缺乏数据科学团队的成长型零售公司试图使用消费者购买数据来预测对其产品的需求,他们可以很容易地开始使用 Keras。用户的低认知负荷、可扩展性以及易于访问和理解的功能是吸引大公司、初创企业和政府研究机构的研究团队的主要特征。我鼓励没有使用过 Keras 或者使用 Keras 的经验有限的读者了解更多关于这个库的知识,并尝试将它融入他们的工作和/或项目中。

为什么知道未来会导致经济崩溃

原文:https://towardsdatascience.com/why-knowing-the-future-would-crash-the-economy-92ba11b0768e?source=collection_archive---------32-----------------------

一个使用博弈论的思维实验解释了为什么我们不能知道自己的未来。

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

Michał Parzuchowski 的照片

T2:ame 理论是数学的一个分支,有很多应用。尤其是在经济学中,博弈论起着非常重要的作用。这就是为什么许多 T4 数学家被授予诺贝尔经济学奖的原因。一个广为人知的例子是约翰·福布斯·纳什,他的一生在电影《美丽心灵》中有所阐述。

正如“博弈论”这个名字所暗示的,这里涉及到一些种类的博弈。事实上“游戏”的定义非常宽泛。这意味着两个(或更多)完全理性的“玩家”必须做出某种决定。他们做出的决定决定了玩家的输赢。但是让我们来看一个实际的游戏。

让我们从简单的开始

有两个玩家,*爱丽丝和鲍勃以及一个游戏高手。*游戏工作原理如下。爱丽丝和鲍勃都可以选择要么给游戏主人 8 €,要么什么都不给。在不知道另一个玩家 *的决定的情况下,做出是否投资的决定。***接下来,游戏管理员拿走所有投入的钱,如果 Alice 和 Bob 都什么都没给,则为 0 美元;如果 Alice 或 Bob 投入但另一个玩家拒绝,则为 8 美元;如果 Alice 和 Bob 投入并提高 50%,则为 16 美元。所有的钱,包括游戏主人的利益,在两个玩家之间平均分配。

假设两个玩家都投入了 8 美元,那么总共投入了 16 美元。游戏主持人将奖金提高了 50 %,达到 24 美元。爱丽丝和鲍勃平分这笔钱后,两人都赚了 4 美元。然而,让 Bob 和 Alice 都投资只是一种情况。也有可能是爱丽丝或者鲍勃或者两个人都拒绝了投资。在数学中,我们不喜欢只是玩这样的游戏,我们想完全理解和解决它们,所以我们永远不会再看它们。所以我们开始吧。下表列出了所有四种可能的结果,以及 Alice 和 Bob 相应的利润或损失。

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

Alice 和 Bob 的每项策略收益

但是坚持住。这幅插图看起来有些可疑。假设鲍勃投资。爱丽丝的最佳策略是什么?*没落!*好吧,那我们就说鲍勃谢绝了。爱丽丝现在的最佳策略是什么?还在下降!然而,同样对鲍勃来说,最好的策略是永远拒绝

因此,在完全理性的数学世界里,鲍勃和爱丽丝不会投资任何东西,也不会赢得任何东西,尽管他们都有机会成为赢家。

有很多现实世界的场景可以用上面的游戏来部分描述。想一想学校里的一个团队项目,学生们因为害怕比别人做更多的工作而不愿意投入时间。然而,如果所有的学生都为这个项目做出贡献,他们将会从一个伟大的成果中获益。

再来一次!

现在,为什么我们的游戏是有趣的呢?这是爱丽丝和鲍勃的痛苦结局吗?还是在完全理性的世界里,他们有办法合作赚些钱?有,有!如果进行多轮游戏,神奇的事情就会发生。在这种情况下,可能的策略数量激增。例如,Bob 可以总是拒绝或总是投资,但是更复杂的策略也是可能的,比如每三次投资,每隔一次拒绝。因为 Bob 有很多策略可供选择,Alice 在不知道 Bob 的策略的情况下无法确定选择最佳策略。结果,出现了许多有时具有复杂模式的场景。

这个游戏要成功,最重要的要求是鲍勃和爱丽丝不知道最后一轮是什么时候。否则,我们将只剩下一轮比赛了。因为,比如说,我们打十回合,爱丽丝和鲍勃都知道。由于第一场提到的原因,他们都将在第十轮下降。因为第十轮基本上不存在,他们会在第九轮下降,等等。所以回合数必须保密。

这个游戏也发生在现实生活中。这是一个经济相互作用的理论模型,即社会市场经济中的就业市场体系,没有工作的人可以获得失业救济金。每个月一个人可以决定是否投资他们的时间。因为不知道哪一轮是最后一轮对我们的游戏很重要,在某种意义上,如果我们都知道我们的未来,我们的经济体系就会崩溃。

最佳解决方案

不管怎样,回到游戏本身。最佳策略的问题仍然悬而未决。存在无限数量的具有任何期望复杂性的策略。例如,策略可以是只有当当前回合数的质因数之和是 3 的幂时才投资。但是忘了那个吧。答案出奇的简单。

  • 首轮投资
  • 在所有其他回合中,做对方在回合之前所做的事情

为什么这是最优策略?假设鲍勃采用这种策略。如果爱丽丝总是拒绝,鲍勃只是在第一轮输了,但之后是安全的。如果爱丽丝总是投资,那么鲍勃也总是投资并赢钱。假设爱丽丝投资二十轮,然后拒绝二十轮,以此类推。Bob 的策略几乎与 Alice 的策略一致,唯一的区别是只差一轮。爱丽丝可以选择她想要的任何策略,在我们的策略下,鲍勃损失不超过 8 €,但如果爱丽丝也愿意投资,他就会赢钱。

觉得这个故事有趣?在 Medium 上关注我( Marcel )并查看下面的其他故事!请♡分享这篇文章吧!

多句中的一句证明

2020 年为什么要学数据科学?

原文:https://towardsdatascience.com/why-learn-data-science-in-2020-d3f54123b2e4?source=collection_archive---------16-----------------------

为什么是现在?我真的能在这个领域建立事业吗?

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

图片来自Unsplash.com

数据科学。大数据。机器学习。人工智能。这些都是强有力的词对。让我们看看真实的研究、数字和图像,为什么你应该考虑学习它们。

为什么要学数据科学或者机器学习?

哈佛商业评论将数据科学定义为 21 世纪最性感的工作*。全球知名求职网站 Glassdoor 将*数据科学评为 2019 美国最佳工作。彭博将 数据科学家视为新的超级英雄

数据科学家、机器学习工程师、数据工程师;所有这些头衔都有两个共同点:它们是目前最有吸引力的职业,它们都暗示着与数据打交道。

-需求-

这些角色的需求在最近几年大幅增加,而且很可能会继续增加,如下图所示。

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

近年来对数据科学家的需求增加。源顶源底

由于对这类人才的需求如此之高,在其中一个领域拥有足够知识的人可以在许多行业找到工作机会。

对能源市场感兴趣? 业内每一家知名公司都在寻找数据驱动的配置文件,以提高决策和流程效率。

享受顾问服务?所有的大公司(如麦肯锡、贝恩、波士顿咨询公司)都在招聘数据科学家和数据工程师来帮助他们的客户利用他们的数据。

想去科技公司工作? 谷歌、亚马逊、优步、脸书,都在寻求越来越多的数据奇才。

-薪水-

根据 Glassdoor 的数据,美国数据科学家的平均工资为117,345 美元/年,远高于全国平均水平,如下图所示,其他相关职位也相差不远。

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

美国不同职位的平均工资。来源

-这种美-

除了所有这些,这些工作还负责实施和构建正在彻底改变整个行业的技术,处于令人难以置信的新兴技术的核心,如自动驾驶汽车或先进的图像识别工具,这些角色将是工业和学术界许多即将到来的进步的关键驱动力。

人工智能市场是预期发展最快的市场之一,预计到 2025 年将达到 360 亿美元,如下图所示。

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

人工智能收入,世界市场。来源

所有这些进步都将对我们的社会非常有益,因此有机会在这些领域中的任何一个领域工作都意味着能够对世界和我们的生活质量产生很大的影响。有太多的事情可以而且将会用人工智能来完成,那些参与其中的人将会掌控塑造我们未来的方向盘。

总之,数据科学,机器学习和其他领域,是非常有前途的领域,令人兴奋,有趣,并有无尽的应用。

尽管有很多从业者,但这些领域缺乏合格的专业人员。如果你成为专业人士名单中的一员,你只能期待高质量和有挑战性的工作。

所有这些领域的需求都非常高,而且还在增长,薪酬也是一流的。

好吧,但为什么这一切都发生在现在?

机器学习并不是一个新领域。它的起源可以追溯到上个世纪。数据科学家也以不同的名字存在了一段时间。

那么为什么是现在呢?为什么近年来会有这类技能的说法?有两个主要原因:

首先,正在生成和消耗的数据量惊人增长。每天,越来越多的传感器收集各种数据,而我们,整天带着智能手机到处走,也是巨大的数据来源。互联网的不断成长也功不可没。

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

全球现有数据量的预期增长。来源

现在产生的数据比以往任何时候都多。如果不对这些数据进行分析或利用来为企业或组织提供价值,那么所有这些数据都是毫无用处的。它的正确处理允许更好的决策,过程自动化,洞察力发现,等等。

正因为如此,近年来,对能够很好地利用这些数据并最大限度地发挥其潜力的概要文件的需求急剧增长。

其次,可用计算能力的增加使我们有可能构建能够高效处理所有这些数据的系统,从而在合理的时间内获得结果。

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

1970-2020 年设备密度的摩尔定律图。来源

云计算、AWS、Cloudera、Microsoft Azure 等平台允许我们在世界任何地方的惊人大规模集群和机器上部署和构建智能解决方案,这也极大地促进了人工智能系统可行性的实际改善。

我真的能学到足够的知识来建立自己的事业吗?

你当然可以。有数以百万计的在线和离线资源,在那里你可以学到在这些领域发展职业所需的任何基础知识。

***不知道怎么编程?*不用担心,可以学习的地方有无限多,而且说实话,为了实现和构建机器学习模型,你不需要成为编程大师。

***不懂数学或代数?*那也行!有了一些基本的代数概念,你就足以生存,然而扎实的数学背景会有所帮助。同样,如果你想学习,有大量令人惊奇的教科书和资源。概率知识也很有用,并且不难获得足够的背景知识来为自己辩护。

***对数据科学或者机器学习一窍不通?*婴儿出生会走路吗?正如一切一样,学习这些领域是一个过程,你可以自己买书,做在线课程和程序,成为一名自学的数据科学家,或者你可以注册一个实际的学士或硕士课程。

每天都有越来越多的官方程序被提供,资源的数量几乎是无限的。有这么多的材料,有时很难区分好的和坏的资源,所以所有这些都必须小心谨慎。

这篇文章的目的不是列出好的资源或建议任何人如何学习,但是,如果你感兴趣,请随时联系我,我会尽力指导你。

结束语

一如既往,我希望你喜欢这个职位,并且我已经说服你至少考虑学习数据科学或机器学习。

如果你喜欢这篇文章,请随时在@jaimezorno 的 Twitter 上关注我。还有,你可以看看我其他关于数据科学和机器学习的帖子 这里 。好好读!

如果你想了解更多关于机器学习和人工智能的知识 请在 Medium 上关注我,敬请关注我的下一篇帖子!

在那之前,保重,享受人工智能!

*数据科学家(名词):根据那些知识可疑的人提供的不可靠数据进行精确猜测的人。**又见:*巫师,魔术师。

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

为什么有经验的优化者优于像 Adam 这样“手工设计”的优化者

原文:https://towardsdatascience.com/why-learned-optimizers-outperform-standard-optimizers-like-adam-5f617b3035d?source=collection_archive---------32-----------------------

反向工程学习优化揭示了谷歌大脑已知的和新的机制

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

图片来自 Pixabay像素

优化器,如 momentum ( Polyak,1964 )、AdaGrad ( Duchi 等人,2011 )、rms prop(tie leman&hint on,2012 )或 Adam ( Kingma & Ba,2014 )是几乎所有机器学习的算法基础。结合损失函数,它们是使机器学习能够工作的关键部分。这些算法使用源自直觉机制和理论原则的简单更新规则,这是一种衡量预测错误程度的数学方法,并将其调整为更好。

最近的研究思路集中在基于学习的优化算法上;他们称之为习得优化。已经表明,通过直接参数化和训练任务分布的优化器,学习的优化器优于“手工设计的”优化器,如 Adam(Andrychowicz 等人,2016;Wichrowska 等人,2017 年;吕等,2017;Bello 等人,2017;李&马利克,2016;梅斯等人,2019;2020 )。

尽管通过使用这些习得的优化器,性能得到了提高,但研究人员仍然缺乏对其工作原理的理解。研究人员强调,理解学习型优化器的底层机制可以提高鲁棒性( Wichrowska 等人,2017;Lv 等人,2017 )、元训练( Metz 等人,2019 )、学习型优化器的泛化( Metz 等人,2020 )。识别它们的操作缺陷,同时加深我们对关键机器学习机制为什么有效以及如何改进它们的理解。

对于 momentum 和其他标准优化器,状态变量是低维的,因此它们的动力学很简单,描述其行为也很简单。但相比之下,有经验的优化器具有高维状态变量,因此这些系统学习复杂的非线性动力学,这对于提取有经验的优化器的行为的直观描述是具有挑战性的。

多年来,研究人员一直使用常见的优化技术来调整优化器,如动量、梯度裁剪、学习速率计划和学习速率适应等技术。这些是直观的机制,已被证明有助于最小化参数上的损失函数。

有经验的优化者只是在学习已知技术的巧妙组合吗?或者他们发现了优化文献中尚未提出的全新行为?

这个谷歌大脑研究团队试图揭示这个问题。该团队开发了用于隔离和阐明非线性、高维学习优化算法中的机制的工具。这篇名为逆向工程学习优化器揭示了已知和新颖的机制的论文目前正在接受 ICLR 2021 的审查。

研究人员在三个快速训练的任务上训练了学习过的优化器,这对于元优化来说特别重要,并且覆盖了一系列损失曲面(凸和非凸,高维和低维)。这些任务是:

  • 随机线性回归问题(凸,二次)
  • 最小化 Rosenbrock 函数(非凸和低维)
  • 双月数据集(非凸高维)

他们将学习优化器的性能与调优的基线优化器 RMSProp、Momentum 和 Adam 进行比较。

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

在三个不同的任务上,有经验的优化者优于调整良好的基线。上排:任务示意图。底部一行:优化器性能。[ 来源

损失曲线中显示的优化器性能是 128 个随机种子的平均值、标准偏差误差。有经验的优化器在所有三个任务上都优于三个调优的优化器。

动力

在实验中,每个优化器收敛到动态的单个全局不动点。作者发现,有经验的优化者使用近似线性动力学来实现动量。当他们分析表现最好的学习优化器时,有一个在线性回归任务上的学习优化器表现稍差,但非常类似于经典动量。它恢复了特定任务分配的最佳动量参数。

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

有学问的优化者的动力。顶行:优化器状态在收敛点周围的投影。中间一行:沿着动力学的慢模式的更新函数的可视化。底行:在复平面中绘制的收敛固定点处的线性化优化器动态特性的特征值。[ 来源

渐变剪辑

随着梯度幅度的增加,学习优化器也使用饱和更新函数;这类似于渐变剪辑的一种柔和形式。事实上,削波效应的强度是与训练任务相适应的。例如,在线性回归问题中,学习的优化器主要停留在更新函数的线性区域内。相比之下,对于 Rosenbrock 问题,学习优化器利用更新函数中更饱和的部分。

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

学习优化器中的梯度削波。顶行:在初始状态计算的更新函数对于大的梯度幅度饱和。这种效果类似于渐变剪辑。底行:每个任务遇到的梯度的经验密度。[ 来源

学习费率表

随着优化的进行,我们经常调整学习率调度器来衰减学习率。作者发现,有经验的优化器可以使用自主动态实现调度器。当系统松弛到固定点时,它将特定的轨迹编码为迭代的函数。从下图中可以看出,在线性回归实验中,学习优化器最初会在 25 次迭代后提高学习率,然后线性衰减。

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

自主动力学调节的学习速率表。顶行:响应于零梯度(无输入)的已学习优化器的动态的低维投影。这些自主动态允许系统学习学习率时间表。底行:有效学习率是顶行中自主轨迹期间迭代的函数。[ 来源

学习速率适应

学习率自适应的目的是在遇到大梯度时降低优化器的学习率。这是通过根据当前梯度改变系统中的固定点来实现的。作者发现这些点在所有任务中形成一条 S 曲线;曲线的一个臂对应于负梯度,而另一个臂对应于正梯度。更新函数的斜率类似于 RMSProp 状态变化时观察到的变化。这允许优化器对于较小的梯度幅度增加其学习速率。

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

学习优化器中的学习速率适应。顶行:为不同梯度计算的动力学的近似固定点揭示了 S 曲线结构。中间一行:更新沿 S 曲线不同点计算的函数。底行:显示沿 S 曲线每条臂的有效学习率的汇总图。【来源

摘要

人们对有经验的优化者如何工作知之甚少。在这项工作中,提出的分析表明,学习优化能够学习几个有趣的优化现象;这些是常用的直观优化机制。理解学习型优化器是如何工作的,可以让我们在一个环境中训练学习型优化器,并且知道何时以及如何将它们应用到新的问题中。我们可以使用从更普遍的学习优化器和元学习算法的高维非线性动力学中提取洞察力。

[## 利用脑-机接口和机器学习改进青光眼评估

我的研究使用多任务学习来提供快速的护理点诊断,以检测周边视觉损失

towardsdatascience.com](/improve-glaucoma-assessment-with-brain-computer-interface-and-machine-learning-6c3b774494f8) [## 人工智能和神经科学之间的迷人关系

他们如何相互激励、共同进步、相互受益

towardsdatascience.com](/the-fascinating-relationship-between-ai-and-neuroscience-89189218bb05) 外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

为什么学习 Java 是未来大数据开发人员的起点

原文:https://towardsdatascience.com/why-learning-java-is-a-starting-point-for-big-data-developers-of-the-future-9a9b6d240dea?source=collection_archive---------18-----------------------

Java 是大数据科学家和开发者的好朋友。在这里,我要告诉你为什么会这样

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

弗兰基·查马基在 Unsplash 上的照片

考虑到过去 2-4 年大数据令人印象深刻的增长速度,很明显,数据科学的这一子集将主导未来的技术。在这篇文章中,我决定仔细看看大数据项目中广泛使用的技术。

在处理大数据项目时,Java 是一种领先的语言。下面是一个初学者学习 Java 来处理复杂的 BD 任务的原因和方法。

关于大数据目标的几句话

在讨论 Java 对未来大数据的影响之前,让我们来看看数据科学家在未来 3-5 年内将关注什么类型的项目。以下是我个人对大数据在不久的将来将会成熟的看法。

1.它将与分析融合

现在,企业可以收集每一个用户的万亿字节数据,跟踪现场行为、交流偏好和其他相关指标,公司比以往任何时候都更受鼓励投资分析。

举个例子,Gartner 预测,如果企业所有者在年底前不投资于报告工具,到 2021 年底,该公司将不再具有竞争力。

采用大数据算法将提高分析的精确度,并让企业主对品牌声誉和客户关系有更全面的了解。决策树、线性回归和其他可视化和预测方法的引入将帮助企业主预测客户需求,并提高品牌互动的质量。

2.大数据将有助于应对气候变化

虽然气候变化的影响是真实的,但科学家们对人类在未来 20 年将面临的最直接的威胁缺乏了解。大数据是研究界整合工作并通过一系列可靠的实时洞察保持联系的一种方式。

不用说,大数据工具处理大型数据集的能力将提高近似值的精确度以及人们基于这些见解制定应急计划的效率。

3.数据云的影响将会增长,但不会占据主导地位

据统计,预计到 2021 年底,全球云计算市场价值将超过 6230 亿美元。现在,越来越多的公司正在从内部解决方案转向云。

话虽如此,完全迁移到云是一个复杂的过程,更不用说信任拥有庞大数据集的在线第三方供应商所带来的安全问题了。

在大数据环境中,混合环境是一种常见的解决方案,云工具用于托管动态数据集,本地存储用于跟踪静态数据集。

为什么 Java 仍然是大数据项目的最佳选择?

如果你是一名考虑从事大数据职业的软件开发人员,学习 Java 应该是你的起点。让我们看看为什么说“Java 是大数据”并不夸张。

1.面向 Java 的大数据工具是可访问的

在考虑大数据实施时,大多数企业主都在寻找尽可能最便宜的技术组合。由于大数据中使用的大多数 Java 工具(Hadoop、Spark、Mahout)都是开源的,所以这样的技术栈是免费的,并且高度灵活。因此,大多数寻找大数据工程师的员工会关注 Java 熟练程度和使用该语言的工具的工作知识。

2.Java 是类型安全的

几乎所有的数据科学家都会确认,当要处理的信息非常庞大时,能够理解您在项目中处理的数据类型是至关重要的。作为一种类型安全的语言,Java 是相当一部分开发人员和企业所有者的首选,因为类型安全允许在单元测试上花费更少的时间,并且便于代码库维护。

3.Java 是可伸缩的

大数据专业人士从事的大多数项目都雄心勃勃,设计时都考虑了扩大规模。由于其健壮性、广泛的工具包、巨大的社区和跨平台兼容性,Java 在可扩展性方面是其他语言无法比拟的,非常适合设计复杂的大数据基础架构。

4.广泛的内置特性(更不用说库和框架了)

如果说大多数其他语言才刚刚开始认识到机器学习和数据科学的重要性,那么 Java 是第一个跟上潮流的语言。因此,与大多数替代方案相比,它拥有更多用于 DS 项目的工具,仅举几例:

除了库,这种语言在每个新版本中都变得更适合数据科学。比方说,Java 8 的 Lambdas 有助于使代码简明扼要,第九版重新引入了 REPL,使迭代开发更快、更有效。

无论你喜欢 Hadoop 还是 Spark,了解 Java 对于精通这两个平台都是至关重要的。为了充分利用 BD 工具,开发人员经常需要在源代码中添加新的特性——这就是 Java 知识至关重要的地方。

回顾大数据项目的 5 大 Java 工具

在解释了企业主从选择 Java 进行大数据项目中获得的好处,以及为什么开发人员应该以确保 Java 熟练程度作为数据科学职业生涯的起点之后,让我们来看看在大数据项目中使用最广泛的 Java 工具。

1.Apache Hadoop

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

通过 Data-flair.training 了解 Hadoop 生态系统及其组件

Hadoop 是大多数企业主的首选大数据处理技术,有几十个库和工具专门用于整理和存储大型数据集。尽管它很受欢迎,但在人才经理中,Hadoop 开发职位空缺被认为是最难填补的,因为大多数开发人员对 MapReduce 缺乏深入的了解。

尽管 Hadoop 是最复杂的技术之一,但精通它的收获绝对值得付出。据统计,Hadoop 开发人员的平均年薪是 103,000 美元。

2.火花

Spark 是一种常见的 Hadoop 替代方案,由于其高速度、灵活性和平滑的学习曲线,对开发人员很有吸引力。通常,对于大规模 SQL 项目、数据流和机器学习任务,Spark 比 Hadoop 更受青睐。

值得一提的是,Spark 并不完全是用 Java 编写的,而是用 Scala 编写的——然而,两种语言的接口是相似的(作为一名熟练的 Java 开发人员,你不需要花很多时间来掌握 Scala 的诀窍)。

至于工作机会,Spark 是一项需要掌握的有利可图的技术,因为一些技术领域的知名人士正在寻找该领域的专业人士——脸书、微软、苹果或 IBM。

3.象夫

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

来自鲍曼国家图书馆维基

由于大数据项目与机器学习紧密交织在一起,大数据开发人员经常与 Mahout 相遇,Mahout 是一个基于 Java 的开源 ML 工具库。由于其可伸缩性和大型数据处理工具集,Mahout 获得了大量的追随者。

通常,开发人员在了解 Hadoop 的功能后开始学习 Apache Mahout,这是有意义的(该库的基础设施中有相当一部分是由重新设计的 Hadoop 代码组成的)。

4.暴风雨

与 Hadoop 或 Spark 相比,Apache Storm 是一个较窄的大数据工具集,主要专注于实现实时分布式数据流。该平台配备了处理高容量和速度数据的功能,因其高可扩展性和容错能力而多次受到称赞。

除此之外,Storm 与大多数流行的排队和数据库系统的兼容性使得学习如何使用该平台成为大数据开发新手的必备技能。

5.深度学习 4j

Deeplearning4j 是神经网络开发人员所信赖的基于 Java 的工具。这个平台在很多方面都做得很好,从易用性到文档质量。Deeplearning4j 是可扩展的——你可以将其与 Apache Spark 集成,或者在 GPU 上运行该平台。该工具还支持微服务项目——它是少数几个拥有强大微服务基础设施的平台之一。

学习面向大数据的 Java 的资源列表

如果你打算在大数据领域发展事业,精通 Java 是必不可少的。然而,由于周围有如此多的语言学习资源,开发者常常很难区分好的和坏的。

下面是我多年来为我的学生整理的资源清单——在我看来,这些都是你从一个 Java 新手到专业人士所需要的工具。

编码游戏和课程:

1. Codegym

Codegym 是一个面向初级和高级 Java 学习者的游戏化平台。使用游戏化和实际任务来解释语言的核心概念,这个工具是你从第一天开始编码的方式。我的学生们一再称赞这个平台,说它提高了知识的保持力,并让他们清楚地知道他们所学的概念在工作中是如何有用的。

2.代号战斗

尽管 Code Combat 并没有给编程学习者提供一个坚实的理论框架,但是这个工具非常适合使用你的技能来完成现实生活中的任务。结合高质量的图形和智能情节,代码战斗是一个令人愉快的 RPG 游戏,你不会介意与你共度周末。

3.编码游戏

作为一名数据科学家和程序员,需要协作和团队精神。如果你对在办公室与同事协调感到焦虑,看看《编码游戏》。该产品背后的想法既简单又雄心勃勃——团结来自世界各地的开发者一起打造一款游戏。

当谈到向最好的 Java 开发人员学习并得到顶级员工的注意时,CodingGame 是一个不错的资源。

4.机器代码

乍看之下,这款复古风格的游戏似乎很基础——然而,这场机器人大战并不仅仅是它展示的那样。就个人而言,我喜欢这个平台,正是因为它是如此的原始和简单。除了享受机器人战斗,你还可以加入硬核挑战,并通过专门的论坛与其他开发者聊天。

在线课程

学习大数据 Java:

学习 Java 基础知识

学习大数据 Java:

论坛和社交媒体

为大数据学习 Java:

结论

就我个人而言,Java 和大数据总是结合在一起的。虽然我也承认 Python 的潜力,但根据我的经验,一个成功的数据科学家不应该选择其中一种——相反,你应该学习如何处理两种语言,并利用它们各自的优势。

由于 Java 是网上教得最好的语言之一,我相信,只要有足够的决心和对基本编程概念的理解,你就能很好地将它的工具用于 DS 项目。

希望我上面链接的资源将是一个很好的起点,为初学者的旅程提供燃料。祝您好运,发现 Java 的全部潜力,并在您的项目中使用该语言。

为什么封锁很重要:探索意大利的人口流动数据

原文:https://towardsdatascience.com/why-lockdown-matters-exploring-human-mobility-data-in-italy-8f60db04c022?source=collection_archive---------28-----------------------

关于新冠肺炎在义大利的传播,人口流动数据告诉了我们什么

2019 年底在中国武汉市出现的新型新型冠状病毒冠状病毒继续跨境传播。该流行病是近年来最大的健康危机之一,其后果仍不可预测,已蔓延到 160 多个国家,确诊病例近 500,000 例,死亡人数超过 22,000 人(截至 3 月 26 日)。这场流行病的规模是我们这个相互关联的社会近年来面临的最大挑战之一。

新冠肺炎教在意大利的传播

意大利一直是世界上受影响最严重的国家之一,自伦巴第省 Codogno 发现首例病例以来,报告病例呈指数增长。我们可以使用来自意大利民事保护局数据在下图中清楚地看到这一点。

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

图片来源:CARTO。来源:意大利民事保护局

尽管对这种病毒仍知之甚少,但很明显,中国实施的封锁政策减缓了传播速度,避免了卫生系统的崩溃。自 3 月 19 日以来,中国的新增病例已连续五天降至零。

封锁政策之所以有效,是因为它们限制了人类的流动性,而人类的流动性被认为是最重要的病毒盟友,因为潜伏期很长(潜伏期中值估计约为 5 天),并且可能有很大比例的无症状病例(但仍非常不确定)。政府如何面对这一巨大挑战?意大利和随后其他国家采取的第一步是减少大部分人口的流动性。

使用人员移动数据进行分析

在本帖中,我们使用了来自我们的合作伙伴 Unacast 的人员流动数据,分析了意大利疫情爆发前几周报告病例与旅行距离之间的关系。

查看数据,我们可以看到各省的平均行驶距离在 2 月 23 日开始下降。这与观察到当地疫情的所有城市实施第一批限制性措施的时间相关,包括关闭学校,伦巴第和威尼托暂停公共活动,以及建议远程工作。

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

图片来源:CARTO。来源:未发布

类似地,我们可以看到在封锁前平均行驶距离的增加,这是预料之中的,但直到 3 月 8 日才正式宣布,然后随着限制的实施,平均行驶距离急剧下降。

分析人群在流行病期间如何流动至关重要,这不仅是政府审查封锁政策有效性的监测工具,也是研究人类流动性和病毒传播之间关系的工具。

使用时空模型

接下来,使用 Unacast 提供的各省的平均旅行距离 i 和一年中的某一天 t ,d ij,以及各省的 it报告案例,我们可以拟合贝叶斯时空模型来表征它们之间的关系。

实现这样一个模型需要一些假设。首先,我们将假设这种关系不是瞬时的,因为潜伏期和测试的延迟。由于世卫组织在疫情开始时估计中国的中位报告延迟为 12 天,因此 t 日的报告病例数将与 12 天的滞后平均传播距离相关。此外,由于我们在此的目的是估计滞后流动性和报告病例之间的关系,而不是做出预测,我们将重点关注截至 2 月 19 日的期间(滞后流动性数据为 2 月 7 日,就在完全封锁之前)。

此外,我们需要考虑重要的人口统计学混杂因素:鉴于意大利政府实施的检测有限,在报告的病例中很可能存在年龄相关的偏倚。事实上,检测主要限于患有中度至重度症状的人,这些症状在某些年龄段发病率较高。为了估计各省的预期病例数,我们假设按年龄层划分的发病率与中国报告的发病率相同

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

其中 p ij 是从意大利国家统计局获得的 i 省的人口和年龄层 j 。观察到的计数被假定为有条件独立(零膨胀)的泊松变量,均值为 EIexpEit),对数相对风险采用贝萨格、约克和莫利( BYM )模型对空间分量和时间相关性的非参数趋势进行建模

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

在哪里

  • μ是总截距
  • f 是一个平滑函数,用于测量特定区域滞后迁移协变量的任何可能的非线性效应,假设在系数之前进行 2 阶随机游走
  • v 是代表非结构化随机效应的零均值高斯(区域 ii 的 IID 项),而 u 是表示附近区域相似的空间分量,由一阶固有高斯马尔可夫随机场模型给出( Rue and Held,2005,第 3 章)。在这里,根据 Simpson 等人(2017) ,我们使用了 BYM 模型的不同参数化,这使得参数可解释,并有助于分配有意义的惩罚复杂性(PC)先验
  • γ t 表示由 2 阶先验随机游走定义的时间平滑结构效应,ϕ t 是一年中某一天的 IID 项 t

使用集成嵌套拉普拉斯近似(INLA)及其相关 R 包 R-INLA 拟合模型。

如果我们观察时间平滑对时间的依赖性,我们可以看到类似指数的依赖性,通过将指数关系拟合到平滑平均值来证实。另一方面,如果我们观察流动性平滑,我们可以看到,对于 25 km 以上的平均行驶距离,行驶距离和对数风险之间存在正相关关系。相反,对于较小的旅行距离,对数风险和人类流动性的相关性是负的,这可能表明与人类流动性无关的其他因素,如当地公共卫生反应,可能作为隐藏的混杂因素发挥作用。

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

图片来源:CARTO

最后,我们可以绘制(平均)估计风险的动画地图

图片来源:CARTO

主要发现

利用最新的流动性数据,我们已经展示了人类流动性可能如何影响传染病的传播,例如新新型冠状病毒病毒。虽然这一初步分析的目的不是预测未来的病例数量,但它表明,人类的流动性与疾病的传播有关,最近的流动性模式应纳入任何用于预测疫情演变的流行病学模型。

你在回应或分析新冠肺炎的影响吗?CARTO 是来帮忙的

我们全力支持我们的社会,用我们的技术和服务战胜这场危机。我们已经组建了一个由空间数据科学家和工程师组成的专门团队,随时准备与公共和私营部门组织合作,抗击冠状病毒的爆发。位置情报不仅在了解新冠肺炎如何在我们的领土和社会群体中传播,而且在定义和执行响应运动以更好地管理卫生基础设施、确保更快的响应以保护我们最脆弱的公民以及改进社会距离政策的执行和遵循方面发挥着重要作用。

我们还积极地与地方和国家管理部门合作,开发用于自我诊断和数据收集的网络和移动应用,以减轻已经饱和的应急通信方法的压力,并给出明确的行动建议。

最后,我们正在通过我们的资助项目,向调查冠状病毒爆发的公共和私营部门组织提供其平台。

本文原载于 CARTO 博客

为什么对数在机器学习中如此重要

原文:https://towardsdatascience.com/why-logarithms-are-so-important-in-machine-learning-6d2ff7930c8e?source=collection_archive---------10-----------------------

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

蒂姆·福斯特在 Unsplash 上的照片

如果你住在一栋大楼的第 10 层,你是走楼梯还是乘电梯?

这两种情况的目标是一样的:在漫长的一天工作后,你想回到你的公寓。

当然,如果你是一个忙碌的人,没有时间去健身房,想把楼梯作为有氧运动的简化版,走楼梯会更好。但是,除此之外,你更有可能乘电梯。

我们再举一个例子。

假设你正试图去你的工作场所。不堵车的时候,开车 10 分钟,走路 50 分钟。

你可以选择开车或走路。你仍然会到达同一个目的地,但你想节省时间。你每个工作日都去工作,而不是一生中只去一次。因此,你可能需要定期就此做出决定。

你希望能够更快地去上班,这样你就可以有更多的时间和家人朋友在一起。你想开始那个副业。阅读你在当地书店买的书。观看你一直想要的讲座。

你不想花那么多时间去同一个目的地,而是想坐汽车或公共汽车去那里。这样,你就有更多的时间去做其他的事情。

使用对数的好处的例子

**使用对数也是一样:**你需要找到使损失函数最小化的参数,这是你在机器学习中试图解决的主要问题之一。

假设您的函数如下所示:

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

如果我们找到它的一阶导数,我们最终会得到下面的表达式:

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

有时,我们甚至需要找到二阶导数,因为我们需要知道函数是否是凸的。当一个函数是凸的,我们知道它只有一个极小值,所以每个局部极小值实际上都是全局极小值。

在我们的表达式中,我们将有以下内容:

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

如你所见,它变得相当杂乱,对吗?

而且,很繁琐。

同一函数的对数的一阶导数要简单得多:

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

二阶导数也更简单:

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

当你实际使用对数时,你不会得到相同的函数。

你不需要在走路和开车时走同一条路线。你有与行人分开的车道。但你实际上并不在乎。

这并不是说你对所有的兼职商店都很关心。你已经在家里吃了一点小吃,想直接去你的工作场所,这意味着他们无论如何都不重要。

你想最小化某些参数的损失函数。你需要最小化损失函数的参数。这正是一个函数和该函数的对数的共同之处:使损失函数最小化的相同参数。

你对这个函数和它的对数求导,就可以得到损失函数的最小值。

数学证明

让我们证明最小化一个函数的参数等于最小化那个函数的对数的参数。

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

让我们假设一个点 w* 是 g(w) = log f(w)的局部极小值,这意味着在 w* 的一个近邻中的任何参数 w 我们都有 g(w*)≤ g(w)。现在,既然 e 也通常表示为 exp 保留了单调性,我们就有:

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

换句话说, w* 也是函数 f 的最小值,这是我们想要证明的。

这意味着当我们将对数应用于任何函数时,我们保留最小值或最大值(即,使函数最小化或最大化的参数,但不是函数的实际值)。

我们还需要证明取对数并不能消除函数的极小值,但我们在这里跳过了这一点。

正如我们在上面的例子中看到的,这导致了更简单的计算和更好的稳定性。

如果你对此理解有困难,那么我们用一些情节来说明这一点。

让我们以下面的函数为例:

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

其图表的一部分如下所示:

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

它的对数是:

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

其图表的一部分如下所示:

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

正如你所看到的,在这两种情况下,当 x = 0.3 时,我们得到了函数的最大值。

是的,我们没有得到相同的函数,但我们仍然有相同的临界点,帮助我们最小化损失函数。

仅这一点在训练机器学习模型时就非常有帮助。

跟我上 推特

为什么机器学习工程师(或数据科学家)不是这场秀的主角

原文:https://towardsdatascience.com/why-machine-learning-engineers-or-data-scientists-are-not-the-stars-of-the-show-d91ec9c5256b?source=collection_archive---------36-----------------------

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

朱利叶斯·德罗斯特在 Unsplash 上的照片

意见

但仍然是任何成功员工不可或缺的组成部分

T 他的文章并不是对所有机器学习工程师或数据科学家的攻击。我是一名人工智能/计算机视觉工程师,这篇文章基于我在人工智能行业的观察和经验。

本文中的陈述都是基于观点的。

既然如此,我们可以开始了。

炒作是真实的

数据科学家的角色被称为 21 世纪最性感的工作,对人工智能工程师的需求在过去几年里呈指数增长。2019 年,job site 确实将计算机视觉工程师( 13 )、ML 工程师( 1 )和数据科学家( 22 )的角色列为美国前 25 名最佳工作。

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

美国最佳工作:2019 年

炒作是真实的,也是非常合理的,因为很明显,机器学习技术嵌入到几乎所有东西中,从车辆、智能手机甚至冰箱。

大肆宣传,需求,巨额工资和所有的关注可以使任何职业 ML 从业者感觉像一个超级巨星。

在实际的劳动力中,ML 从业者是珍贵的,尤其是当他们在工作中真的很有天赋的时候。也就是说,我们作为 ML 工程师的角色只是拼图的一小部分。

拼图是最终产品。

在大多数 ML 从业者的研究和学习阶段,我们被困在笔记本和 python 脚本中。

对于一些人来说,他们项目的范围是拥有一个可消费的 rest API 作为机器学习模型功能的接口。

但是在笔记本和 API 之前和之外还有一个世界。

以前的世界

在 ML 工程师或数据科学家参与项目之前,已经有几个其他的工作角色被包括在决策和其他过程中。

让我列举几个:

  • 市场研究员:分析产品针对的目标受众和消费者的数据。他们的工作决定了最终产品的形状或形式。
  • it 业务分析师:将业务需求转化为可操作的 it 规范。他们负责采取项目经理和利益相关者制定的一般行动,并将其转化为工程团队可执行的任务。
  • CEO :一把手。
  • 产品设计师:在实际开发开始之前,负责概述产品界面(UI)和交互(UX)的可视化。
  • 软件工程师:使用各种工具和编程语言创建软件产品,具体取决于产品将在哪个平台上运行。
  • 产品负责人:负责执行和监控关键利益相关者同意的产品关键功能的开发。

在项目的生命周期中,ML 从业者可能永远不会接触到与上面列出的角色相关的个人。

如果我们再看一下美国最受欢迎的 25 个角色。这些角色是所列角色的一部分,产品负责人、产品设计师和开发人员也是顶级角色。

他们为我们 ML 工程师和数据科学家设置了竞技场/舞台。

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

世界之外的角色

超越的世界

没有什么比实现一个模型并将其训练到在测试数据上使用时具有高水平的准确性和高效性能更好的感觉了(加分,如果您的模型足够小,可以在边缘设备上工作)。

不要从 ML 从业者那里拿走任何东西,但是商业产品的客户不会直接利用你的模型。事实上,他们很可能忘记了产品中涉及某种形式的机器学习。

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

朱利叶斯·德罗斯特在 Unsplash 上的照片

这不应该是一个惊喜。谷歌工具套件或网飞个性化系统背后的 ML 技术并没有被公开。倾向于有几个接口来创建产品复杂性的抽象。

是的,用户可能会对谷歌推荐了一篇关于他们之前对话的新闻感到震惊;或者惊讶于网飞再次通过推荐合适的可以狂欢的电视连续剧来吸引观众。

但典型的最终用户通常不会想知道嵌入式人工智能系统产品背后的语音识别或个性化算法是什么。

传销从业者是推动者。我们支持更广泛的产品生态系统。

如果我们成功地完成了我们的工作,对最终用户来说,这几乎就像魔术一样。

除了 ML 角色之外,在我们作为 ML 从业者扮演好自己的角色之后,还有其他几个角色紧随其后。质量保证测试人员、软件工程师、产品发布团队和市场营销人员,只是对产品或项目的成功做出贡献的其他角色的例子。

那么,谁是明星?

如果你已经走到这一步了,我告诉你谁才是真正的明星才是公平的。实际上有两颗星。

人工智能产品和产品背后的团队。

为了说明我的观点,即谁是“的真正明星,我将使用一家专注于人工智能的公司作为例子,但请注意,这一逻辑适用于大多数基于人工智能的公司或初创公司。

听说过 DeepMind 和他们的人工智能系统 AlphaGoAlphaZero 吗?+60 deep mind 团队和他们的人工智能产品是备受瞩目的实体。

DeepMind 团队无疑受到了一些关注,请注意,我没有提到团队中某个特定的人或角色。DeepMind 团队已经成为一个独立的实体,可以独立于成员而存在。也就是说,团队的好坏取决于其成员,DeepMind 拥有业内最优秀的人工智能人才。

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

deep mind 的一些团队成员

人工智能领域的天才们把这个行业推进了一点点。他们很受尊敬,他们的贡献和工作将被人们铭记多年。但是有一个实体无论在哪个时期都没有改变也没有消失。

而实体就是人工智能。

人工智能是这部剧的明星,而且一直都是。

有时候,人工智能背后的团队会分享聚光灯。

闭幕词

这篇文章并不是要贬低人工智能行业内任何人所做的工作。

目的是向更广泛的受众强调,基于人工智能的产品只有在个人和跨职能团队之间有效合作的情况下才有可能实现。

我们机器学习工程师和数据科学家是不可或缺的一部分。我们不是这部剧的主角,而是这部剧的明星的一部分。

不管是什么样的表演。

如果你喜欢这篇文章,下面还有一些你可能会感兴趣的文章。

[## 人工智能中的算法偏差需要讨论(和解决)

你在这件事上有责任…

towardsdatascience.com](/algorithm-bias-in-artificial-intelligence-needs-to-be-discussed-and-addressed-8d369d675a70) [## 机器学习工程师和研究人员之间的 7 个关键区别(包括工资)

包含有关期望薪资、工作量、可交付成果以及更多重要差异的信息。

towardsdatascience.com](/7-key-differences-between-machine-learning-engineers-and-researchers-salaries-included-b62c3aaebde9)

希望这篇文章对你有用。

要联系我或找到更多类似本文的内容,请执行以下操作:

  1. 订阅我的 YouTube 频道 视频内容即将上线 这里
  2. 跟着我上
  3. 通过 LinkedIn 联系我

为什么机器学习模型讨厌“改变”

原文:https://towardsdatascience.com/why-machine-learning-models-hate-change-f891d0d086d8?source=collection_archive---------36-----------------------

模型漂移,一种机器学习概念的介绍

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

Unsplash 上由 Aron 视觉拍摄的照片

目录

  1. 简介
  2. 什么是模型漂移?
  3. 模型漂移的类型
  4. 如何检测模型漂移
  5. 如何解决模型漂移

简介

“变化是生活中唯一不变的东西。”

这句话出自一位名叫赫拉克利特的希腊哲学家,它是如此有趣的一句话,因为它是唯一正确的。术语“恒定”被定义为*在一段时间内持续发生,*因此,你可以说变化是永恒的。这对机器学习模型提出了一个问题,因为模型是基于其创建时的变量和参数来优化的。

设想一个分类模型,用于检测几年前创建的网络钓鱼电子邮件(垃圾邮件)。当时,垃圾邮件看起来像这样:

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

你可以看出这是一封垃圾邮件,因为它包括一笔不切实际的金额(480 万美元),它包括电子邮件中的一个联系人,它要求你立即按照说明操作,或者“当你阅读此邮件时”

自那时以来,时代已经发生了变化,诈骗者正在创建更加复杂和现实的电子邮件,这使得区分变得更加困难。以下是最近一封网络钓鱼电子邮件的示例:

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

请注意,这封垃圾邮件与几年前相比有多么不同。您认为几年前创建的欺诈检测模型能够正确分类此电子邮件吗?可能不是因为网络钓鱼邮件的出现改变了模特不喜欢改变。创建模型时的一个主要假设是,未来数据将与用于构建模型的过去数据相似。

这是一个模型漂移的例子。在本文中,您将了解什么是模型漂移,模型漂移的类型,如何检测模型漂移,以及如何解决它。

什么是模型漂移?

模型漂移(也称为模型衰减)是指由于环境的变化,以及变量之间的关系,导致模型的预测能力下降。参考上面的示例,垃圾邮件呈现方式的变化会导致几年前创建的欺诈检测模型降级。

模型漂移的类型

模型漂移主要有三种类型:

  1. 概念漂移
  2. 数据漂移
  3. 上游数据变更

概念漂移是一种因变量性质发生变化的模型漂移。上面的欺诈模型是一个概念漂移的例子,其中“欺诈”的分类发生了变化。

数据漂移是一种模型漂移,其中独立变量的属性发生变化。数据漂移的例子包括季节性引起的数据变化、消费者偏好的变化、新产品的增加等

上游数据变化指数据管道中的运行数据变化。这种情况的一个例子是不再生成要素,从而导致丢失值。另一个例子是测量值的变化(如英里到公里)。

如何检测模型漂移

衡量模型的准确性

检测模型漂移最准确的方法是将来自给定机器学习模型的预测值与实际值进行比较。随着预测值越来越偏离实际值,模型的准确性越来越差。

数据科学家用来评估模型准确性的一个常用指标是 F1 分数,这主要是因为它包含了模型的精确度和召回率(*见下文精确度和召回率的直观表示)。*也就是说,根据具体情况,有许多指标比其他指标更相关。例如,类型 2 错误对于癌症-肿瘤图像识别模型来说是极其重要的。因此,当一个指定的指标低于一个给定的阈值时,您将知道您的模型正在漂移!

检测模型漂移的其他方法

有时监控模型的准确性并不总是可能的。在某些情况下,获得预测的和实际的配对数据变得更加困难。例如,设想一个预测上市公司净收入的模型。这意味着你每年只能从公司的季度收益报告中衡量 4 次模型对净收入预测的准确性。如果您无法将预测值与实际值进行比较,您可以依靠其他替代方法:

  • Kolmogorov-Smirnov (K-S)检验:K-S 检验是一种非参数检验,它比较两个数据集的累积分布,在本例中是训练数据和训练后数据。该检验的零假设表明两个数据集的分布是相同的。如果零被拒绝,那么你可以断定你的模型已经漂移。
  • 人口稳定指数(PSI):PSI 是一种度量标准,用于衡量变量的分布如何随时间变化。这是一种常用的度量标准,用于监控群体特征的变化,从而检测模型衰退。
  • Z-score :最后,您可以使用 Z-score 比较训练数据和真实数据之间的特征分布。例如,如果给定变量的多个实时数据点的 z 值为+/- 3,则该变量的分布可能发生了偏移。

如何解决模型漂移

检测模型漂移只是第一步,下一步是解决模型漂移。这样做有两种主要方法。

第一种是简单地按照预定的方式重新训练你的模型。如果您知道模型每六个月降级一次,那么您可能会决定每五个月重新训练一次模型,以确保模型的准确性不会低于某个阈值。

另一种解决模型漂移的方法是通过在线学习。在线学习简单地说就是让机器学习模型实时学习。这是通过在数据变得可用时立即按顺序接收数据来实现的,而不是用批量数据来训练模型。

更多类似的文章,请查看 Datatron 的媒体页面或他们的博客 https://blog.datatron.com/

感谢阅读!

如果你喜欢我的工作,想支持我…

  1. 支持我的最好方式是在媒体上关注我这里
  2. Twitter 这里成为第一批关注我的人之一。我会在这里发布很多更新和有趣的东西!
  3. 此外,成为第一批订阅我的新 YouTube 频道 这里!目前还没有视频,但它就要来了!
  4. LinkedIn 上关注我这里
  5. 在我的邮箱列表 这里报名。
  6. 看看我的网站,【terenceshin.com】

为什么机器学习验证集变得陈旧

原文:https://towardsdatascience.com/why-machine-learning-validation-sets-grow-stale-69fa043fd547?source=collection_archive---------36-----------------------

用这个心智模型提升你的直觉

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

Unsplash 上的 chuttersnap 拍摄

当你进入数据科学的世界时,你学到的第一件事就是拥有独立数据集来训练和验证你的机器学习模型的重要性。那么,为什么这个概念看起来如此难以掌握呢?

尽管我们为什么要对数据集进行分区有一个简单的直觉,但要深入理解这个行业仍然有一些障碍。一个是过时的经验法则的持续存在,如“70-30 列车测试分割”或大数据前黑暗时代的其他遗产。

另一个问题是,我们中的许多人在了解到除了测试集之外,我们还应该有一个单独的验证集,我们可以用它来进行超参数调优,但令人惊讶的是,这个问题没有好的答案。这个问题是:“如果我们可以通过调整超参数来适应测试集,难道我们不能适应验证集吗?”

答案是:可以,当然可以。最终,您将过度适应一个验证集,并且它将被认为已经“过时”今天我想探索一些思考为什么会发生这种情况的方法。我希望通过这样做,我们可以绘制出一条路径来更深入地理解过度拟合和数据划分,而不仅仅是人们期望在面试中知道的两个命题陈述。

首先,我们将探讨损失景观的概念,以及如何利用样本景观和总体景观之间的关系来理解验证集泄漏。在这个过程中,我们将基于一些简化的假设开发一个有用的心智模型。最后,我们将通过一个快速实验(代码包含在下面)来测试我们的理解。

让我们开始吧!

一个简单的想法被命名为:损失景观

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

二元函数。代码。

如果你熟悉机器学习,你可能会熟悉损失景观的概念。尤其是如果你已经研究过神经网络和梯度下降,并且读过那些关于基于梯度的优化的文章,其中有华丽的可视化和动画。

损失景观只是一个函数。具体来说,机器学习模型的损失或错误是其参数的函数。

如果你觉得这个想法太简单,不值得特别关注,我理解你的想法。但是“损失景观”确实是这类函数的名称,知道它可以让你轻松地查找各种酷的内容和与相关的研究,即使你已经理解了底层概念。

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

“风景”这个词唤起了我们的物理直觉。由 Fabrizio ContiUnsplash 拍摄

要点是损失景观是可以遍历的函数,无论是通过梯度下降还是通过其他方法(例如模拟退火、进化方法)。这样命名可以让我们从物理直觉的角度来看待它,即使你要处理的功能通常是在更高维的空间中。

虽然我们通常认为损失景观是模型参数的函数,但也可以将其视为超参数的函数。

请注意,虽然损失可以根据数据和模型参数明确计算,但损失和模型超参数之间的联系不太直接。如果这让你感到困扰,回想一下生物学家使用健康景观来思考生殖成功是遗传因素的一个功能。如果有必要的话,可以将损失视为超参数(和数据)的函数,视为“模型适应度景观”。

现在要认识到的关键思想是,数据集的每个分区都有单独的损失景观。训练集、验证集和测试集的损失情况都是不同的。如果数据已经被很好地分割,使得每个集合都是代表性的样本,那么希望非常相似,但是仍然不同。

最重要的是,手头上的所有数据都将有不同于外部数据底层“群体”的损失情况。我们同时拥有验证集和测试集的原因是,如果验证集确实随着时间的推移泄露了信息,我们仍然需要一些数据来对我们的模型在野外的表现进行无偏估计。

考虑超参数调优的一种方式是,作为超参数的函数,遍历验证集数据的损失情况。为了建立直觉,让我们从想象一个“理想”的景观开始。

走向心智模型:想象独立的超参数

当然,我们理想的损失情况是超参数是“独立的”我的意思是,在它们与损失的关系中,没有交互作用项。这种函数将具有不沿对角线突出的轮廓。这样更容易表达我的意思:

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

这一系列损失景观非常理想的原因是,在处理它们时,调整许多超参数的问题可以分解为一次单独调整一个超参数的行为。由于任何一个超参数的最佳值都独立于任何其他超参数的值,因此我们可以依次调整它们,而不是并行调整。

换句话说,把每个超参数想象成一个旋钮。我们所要做的就是触摸每个旋钮一次,直到我们找到每个特定旋钮的最佳位置,然后再继续。

与每个旋钮相关联的是损失场景的投影。我们函数的这一部分只有一个独立变量:我们正在调整的超参数。

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

这就是事情变得有趣的地方。回想一下,每个数据集都有自己的损失景观。现在想象将这些功能的投影叠加在每个被调谐的旋钮旁边。让我们选择用于确定最佳超参数值的验证数据的损失情况,以及全部数据的假设损失情况,这是我们真正希望我们的模型尽可能做到的,也是我们的测试集的估计值(如果采样正确的话)。

根据验证集数据,每次我们将旋钮调到最佳值时会发生什么?

很有可能,这两种亏损局面并不完全一致。每当我们调整一个值,使其验证损失部分达到峰值时,我们就有可能超过“总体”损失情况的峰值。我们调得越多,越过的峰值就越多。这导致验证集和真实世界(由测试集估计)性能之间的差距越来越大。

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

就是这样!这就是为什么验证集变得陈旧并泄漏信息,或者至少是一种有帮助的思考方式。

在这里,特别有洞察力的读者可能会问:“但是如果验证和人口损失景观总体上不一致,为什么峰值比其他点不一致?”这是一个很好的问题,它开始测试我们已经开发的心智模型的极限。

要回答这个问题,请考虑单个超参数的验证性能。现在,将目标函数中的每个值都看作是来自可概括特征的贡献,以及来自验证集数据的特性的贡献。

随着您向更优的值移动,这些组件的贡献可能会增加。为了提高验证性能而不降低测试集和野外的结果,需要这种提高只来自可推广组件。

作为回报,我也向您提出这个问题:如果您正在优化的超参数之一实际上与从数据中学习可概括的特征没有什么关系(例如random_state),该怎么办?对于类似这样的事情,优化验证损失会有什么影响?

说到底,我们在这里经历的是一个心智模型,因此服从著名的乔治·博克斯格言:

所有的模型都是错的,但有些是有用的。

在这种情况下,我希望这是一种有用的方式来思考如何过度适应验证集背后的机制。

弄脏我们的手:模拟验证集泄漏

作为一名数据科学家,不经过测试就阐述一个想法对我来说并不合适。要求超参数没有任何交互作用有点严格。虽然这对于开发一个心智模型是有用的,但如果能有一些实证结果来表明所开发的思想扩展到不太理想的场景,那就更好了。

下面,我运行了一个快速实验,将在梯度推进回归模型上执行的调优量,以及验证集和测试集性能之间的差距联系起来。我选择使用梯度增强,因为它们是一类具有大量超参数的流行模型。

根据我们对验证集泄漏的理解,我们期望看到的是,随着调优的增加,性能差距会越来越大。在我的实验中,“更多”调优是通过在 5 个不同的超参数中运行更多的随机搜索迭代来定义的。更多的迭代意味着在验证集上找到更优结果的机会更大。如果心理模型认为这种最优性的一部分来自验证数据的不可概括的怪癖是真的,那么我们预期不是所有这些性能的提高都会出现在测试数据中。

在展示我的结果之前,我想澄清这个实验偏向于支持我的论文的一个重要方面:

我使用少量数据进行训练和验证。当然,通过拥有大的验证集可以减轻验证集泄漏,因此选择小的 波士顿房价 数据集可以很容易地演示对小的验证集的过度调整。

除了我选择的特定数据集之外,您应该怀疑这些结果是否成立!我鼓励你提出自己的实验,并与我们其他人分享你的结果。

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

正如您所看到的,当我们投入越来越多的精力来优化我们的超参数并基于验证集性能选择模型时,验证和测试集性能之间的差距就越来越大。

如果我们已经调优了超参数的一个子集,然后回来使用另一个子集,或者尝试切换所使用的模型系列,这种情况会更加明显。数据样本(验证集)提供的每个决策都会慢慢地将样本的随机波动编码到我们的产品中。

结论

这实际上是我第二次尝试解释超参数调整和验证集过拟合现象之间的关系。对于一个具有相对简单的潜在直觉的想法来说,要详细解释是非常困难的。

我认为问题的一部分是我们的集体知识仍然被采访-回答风格的断言所支配,比如“你对验证数据过度拟合”和“验证集泄漏信息”,这些断言没有视觉或经验直觉的支持。

虽然这篇文章试图满足这种对更深入和简单的解释的需求,但仍然有更多角度和思考方式的空间。Cassie Kozyrkov 最近写了一篇关于数据集分区的有趣文章,用教学和憨豆先生做类比。我很高兴看到数据社区还能提出什么。

图表由我可爱的女朋友梅根提供。

为什么管理层喜欢过度拟合

原文:https://towardsdatascience.com/why-management-loves-overfitting-361175edcc3b?source=collection_archive---------88-----------------------

管理数据科学中决策者的期望

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

数据科学家的角色包括构建和微调模型,并改进各个业务领域的流程和产品。典型的使用案例包括营销活动、客户流失预测或欺诈检测。经过训练的模型不仅应该处理(看到的)训练数据,还应该处理新的(看不到的)真实世界数据。然而,这一要求对于大多数相关决策者来说并不明显,他们倾向于支持过度拟合的模型,并用难以置信的数字和承诺欺骗自己。当结果不一致时,问题总是在实施后立即出现。因此,正如我们即将推出的课程R中所涵盖的,正确管理预期并采用行业最佳实践是每个负责任的数据科学家的任务。

为了了解过度装配的问题,让我们看看著名的mtcars数据集中一辆汽车的重量(wt)与每加仑行驶里程(mpg,miles-per-gallon)之间的简单关系。显然,汽车越重,每加仑行驶的里程数越少(或者油耗越高)。我们已经使用 R 中的smooth.spline()函数对关系进行了建模,并使用平滑参数(spar)作为滑块中的参数。我们看到接近于零的spar似乎很好地模拟了关系(平滑)。通过增加模型的spar,它开始更紧密地拟合观察值,因此它的方差增加了。然而,一旦spar越来越接近一,花键开始失去其光滑的形状和之字形-这是过度拟合的迹象。

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

同样的现象可以在一个分类的例子中表现出来。我们使用基本的 K-最近邻模型,使用变量萼片长度/宽度和花瓣长度/宽度来区分 50 朵花中的 3 个鸢尾属物种。这三个类别可以很容易地从视觉上区分为三个区域。通过将邻居的数量移近 1,我们增加了模型方差,并观察到决策边界变得支离破碎。

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

即使更多的观察值可以在样本内正确分类,或者类似地,回归误差可以减少,我们也应该始终记住,模型性能只能由样本外数据来判断。因此,决策者应该始终更加关注模型是如何选择的,而不是报告的性能有多好。为了安全起见,如果有足够的数据可用,我们总是可以保留一个最终测试(对模型开发人员不可用)来评估实际性能——很像一场 Kaggle 竞赛。

所以我最后的建议是:

  1. 不要欺骗自己,诚实对待样本外的数据/性能。
  2. 管理好决策者的期望——现实一点。
  3. 如果你第一次尝试的结果看起来非常好——他们很可能是错的。

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

为什么数学对人工智能来说很容易,但园艺却不容易:莫拉维克悖论

原文:https://towardsdatascience.com/why-math-is-easy-for-ai-but-gardening-is-not-moravecs-paradox-99994b201d10?source=collection_archive---------19-----------------------

对于人工智能来说,进行高级推理很容易,但获得像样的运动技能却非常困难。

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

图片来源: Pixabay

介绍

人工智能(AI)系统,由海量数据和复杂算法提供动力——包括但不限于——深度神经网络和统计机器学习(ML)(支持向量机、聚类、随机森林等。),正在对我们的日常生活产生深远的变革性影响,因为它们进入了从金融到医疗保健,从零售到运输的各个领域。

网飞电影推荐器,亚马逊的产品预测,脸书展示你可能喜欢的东西的神秘能力,谷歌的助手,DeepMind 的 AlphaGo,斯坦福的 AI 击败人类医生。机器学习正在吃软件。这份清单还在继续…

然而,这些强大算法的一个共同特点是它们利用复杂的数学来完成它们的工作——对图像进行分类和分割,做出关键决策,提出产品建议,对复杂现象进行建模,或者从海量数据中提取并可视化隐藏的模式。

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

机器学习数学(来源:“数据科学基础数学”)

很简单,所有这些数学过程都超出了一个人(或一个团队)手动(甚至在计算机上)或头脑中思考的范围。这就是 AI/ML 系统的魅力所在——当与大量原始数据配对时,它们可以自动化复杂的数学推理任务(在概率模型和统计规则的帮助下)。

然而,在这篇文章中,我们将会看到,对于人工智能系统来说,并非所有类型的自动化都是容易的。

这些强大算法的一个共同特征是它们利用复杂的数学来完成工作。

推理自动化与运动技能

人工智能在数学方面做得很好

冒着有点轻视它的风险,我们可以把一个现代的人工智能系统想象成一个自动化的数学推理系统。

一直都是这样。即使在过去。

上世纪八九十年代,符号逻辑专家系统盛行。请记住,符号逻辑只不过是一种复杂的数学推理范式。

快进到 2010 年代和 2020 年代,我们正在开发和使用以庞大的线性代数解算器和统计分布建模器为核心的系统。

这种方法已经从基于符号的(演绎逻辑)转变为基于数据的,但共同点没有改变——人工智能系统在复杂的数学中工作得很好。

我们可以把一个现代人工智能系统想象成一个自动化的数学推理系统。

园丁和数学家谁更聪明?

这个问题当然是修辞性的,近乎冒犯。智力对不同的人有不同的含义,没有理由认为某一特定职业的从业者会比另一职业的从业者更聪明,即使平均而言也是如此。

毕竟,智力是非常难以定义的。

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

图片来源:Unspalsh

好吧。让我们倒退一点,用一个更严格的智力定义来工作。

毫无疑问,今天的人工智能系统是大规模计算系统。深度学习系统的训练是通过数百次重复通过处理大量矢量化数据的计算节点的堆叠层来进行的。在基本层面上,它可以归结为数十亿次简单的计算——比如乘法、加法或逻辑与/或。

因此,在狭义上,我们可以在计算次数和人工智能系统的推理能力之间建立等价关系。我们已经看到,从单隐层神经网络无法解决异或问题152 层 ResNet 能够以高精度分类数千种图像类别。

更多的层,更多的计算,更强大的人工智能。

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

图片来源:https://i1 . WP . com/www . michaelchementi . com/WP-content/uploads/2017/11/Deep-Neural-Network-What-is-Deep-Learning-edu reka . png

因此,如果我们把计算和智能联系在一起,也就是说,用更高程度的智能进行复杂计算的能力,那么数学家就拿走了蛋糕,不是吗?

因此,在狭义上,我们可以在计算次数和人工智能系统的推理能力之间建立等价关系。

至少,我们可以以某种方式说服自己,高水平的心理推理任务比一些卑微的体力劳动需要更多的计算,比如园艺,我们可以轻松地完成这些工作,而无需在大脑中进行任何复杂的计算。

事实证明,这将是一个错误的结论。

对一个人工智能系统来说,成为数学家比获得园丁的技能更容易。至少,对于现在的人工智能系统来说,情况似乎是这样的。

…我们可以以某种方式说服自己,高层次的心理推理任务需要比一些体力劳动多得多的计算。

莫拉维克悖论

汉斯·莫拉维克是出生于奥地利的美国机器人专家和计算机科学家,目前是卡耐基梅隆大学机器人研究所的兼职教员。

他因在机器人、人工智能方面的工作以及关于技术影响的著作而闻名。莫拉维克也是一位未来学家,他的许多出版物和预测都聚焦于超人类主义

在 20 世纪 80 年代,莫拉维克和其他先驱科学家,如马文·明斯基罗德尼·布鲁克斯,做了一个观察:“与传统假设相反,推理(人类的高级)需要很少的计算,但是感觉运动技能(人类相对低级)需要大量的计算资源”。

正如 Moravec 所写的,“让计算机在智力测试或玩跳棋时表现出成人水平的表现相对容易,而在感知和移动性方面,让它们拥有一岁儿童的技能却很难或不可能”。

虽然这种观察是在三十多年前进行的,并且在狭窄的图像分类领域中已经展示了人类水平的感知能力的 ResNet-50 模型之类的模型当时还没有开发出来,但是即使在今天,观察的准确性仍然很高。

我们都见过 OpenAI 的惊人程序在 Dota 的复杂比赛中放倒人类选手,但你见过单个机器人放倒哪怕是初级的国家级乒乓球选手吗?

机器人足球队对抗业余俱乐部队?一个完全自主的机器人园丁,可以修剪树叶,轻轻采摘花朵,完美无瑕地浇灌花园?

为什么不呢,我们想知道…

与传统假设相反,推理(人类的高级)需要很少的计算,但感觉运动技能(人类的相对低级)需要大量的计算资源。

人类技能的生物学基础

所有人类的技能都是通过自然选择过程设计的机器,从生物学角度实现的。这也是一个非常重视优化(能源支出)的过程。

想想人类的大脑。超过 800 亿个神经元在这个紧凑的处理器中工作,而的电力账单只有一个昏暗的灯泡(~ 20 瓦)。大量的优化使得这个 1400 克的海绵状粘性物质成为整个已知宇宙中最节能的处理器

因此,在整个进化过程中,人类的技能发展倾向于保留满足极其苛刻的优化标准的设计改进。但这种优化过程是缓慢的,需要很长时间来塑造和引导特定技能的进化。

因此,可以简单地理解为,技能越古老,自然选择就有越多的时间来改进设计。

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

图片来源:维基百科(知识共享许可)

抽象思维和高级数学推理只是最近才发展起来,因此,它的实现和机制预计不会特别有效。

因此,在整个进化过程中,人类的技能发展倾向于保留满足极其苛刻的优化标准的设计改进。

直到最近,高级推理才成为进化的宠儿

暂停一秒钟,想象自己是一个站在 20 万年前广袤的非洲热带草原或亚马逊雨林中的智人。

以下哪项技能是你最看重的?

  • 跑得更快以逃离一群鬣狗的能力(至少给自己一个生存的机会)
  • 识别和区分有毒植物和药用植物的能力
  • 加法和乘法的能力,或者想象一个美丽的故事告诉你的队友

我们这个物种的感官知觉和运动技能(与肌肉运动有关)确保了它在大部分历史中的生存。

直到 7 万年前所谓的认知革命。

人类学分析和化石记录表明,那时我们的物种发展了用符号和想象的实体来思考的能力。

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

【https://www.industry-era.com/augmented-human-10070.php】图片来源:

正如尤瓦尔·赫拉利在他的畅销书《智人》中指出的那样,智人之所以优于其他类人物种,最重要的一个原因是她能够以抽象的术语和想象的实体(如上帝、金钱、国家等)进行推理和思考。).

尼安德特人可以很容易理解新鲜水果或今天捕获的游戏的价值,但不能完全理解“建立信任”的想象效用,以便他们可以捕获更大的游戏,作为一个团队工作,明天**

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

图片来源:https://www.ynharari.com/book/sapiens/

抽象思维和数学推理很好地服务了我们这个物种。语言、数学、逻辑、艺术、科学、技术——一切都源于这种能力。

但这只是最近的发展。

在那之前的几十万年里,运动技能和感官知觉帮助了我们基因的生存和滋养。只有那些具有优越反射能力,能够从远处发现掠食者威胁,或者跑得更快,投掷目标更准的动物才能存活下来,并把它们的基因传递下去。

因此,我们的生物学确保了我们在头盖骨内携带了一个次优化的数字处理器和一个极其高效的运动皮层。

抽象思维和数学推理很好地服务了我们这个物种。语言、数学、逻辑、艺术、科学、技术——一切都源于这种能力。但这只是最近的发展。

(对人工智能而言)比下棋或做积分更难的活动

Moravec 认为,总的来说,“我们应该预料到对任何人类技能进行逆向工程的难度大致与该技能在动物身上进化的时间成比例”。

最古老的人类技能在很大程度上是无意识的,在我们看来是毫不费力的。因此,那些看起来毫不费力的技能,计算量很大,很难被人造人工智能系统逆向工程,这并不令人惊讶。

需要有意识努力的技能——下棋、做数学、写诗、弹钢琴、画画——对人工智能来说可能一点也不困难。

最近几天,我们都听说过弹钢琴、国际象棋和围棋冠军、绘画大师作曲或数学天才艾,不是吗?

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

图片来源:作者

但是,我们还没有听说过一个人工智能/机器人系统可以在狭窄的厨房里洗碗,而不会干扰周围的几十个器皿,对吗?

见鬼,甚至没有一个商业机器人能够感知并在我们的头盖骨周围施加适量的压力,给我们一个奇妙的头部按摩!如果你能买到这样的 AI,我打赌你会马上买一台。

这些是真正的难题。

我们应该预计,对任何人类技能进行逆向工程的难度,大致与该技能在动物身上进化的时间成正比。

早在 1997 年,国际象棋就被计算机征服了。一旦 AlphaGo 打败了 Lee Sedol只用了一年左右的时间就开发出了 AlphaGo-zero 。强大的定理证明器和逻辑合成引擎是在 50 年代和 60 年代开发的,编程和计算能力有限。

但是现实世界中机器人技术、视觉和听觉感知、运动技能仿真的发展速度一直很慢,而且极具挑战性。

这肯定不是在这些领域工作的专业人员和研究人员的过错。这些任务对于专注于数学推理和大规模线性代数求解器的狭义人工智能来说是不容易完成的。

最有力的证明?人工智能的历史

莫拉维克的观察不是物理定律。或许,它更类似于摩尔定律,毕竟,摩尔定律是一个敏锐的观察。

有人称之为悖论。然而,我相信在人工智能的发展史上,我们有充分的证据证明这个悖论。

甚至在人工智能和计算机科学的早期,研究人员已经成功地编写了程序,证明定理,解决代数和几何问题,玩像 T2 跳棋和国际象棋这样的游戏。所有这些都只需要适度的计算能力,而且几乎没有数据。

**这让他们相信,一旦这些“困难”问题被人工智能完全解决,那么“从照片中认出朋友的脸”或“在大学宿舍里走来走去而不翻倒”这些“简单”问题应该是在公园里散步。

正如罗德尼·布鲁克斯所说,智能事物“最能被描述为受过高等教育的男性科学家发现具有挑战性的事物”——国际象棋、符号整合、证明数学定理以及解决复杂的文本代数问题。四、五岁的孩子可以毫不费力地做的事情,如在视觉上区分咖啡杯和椅子,或用两条腿走路,或找到从卧室到客厅的路,都不被认为是需要智力的活动。**

天哪,他们错了!

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

图片来源:http://sitn . HMS . Harvard . edu/flash/2017/history-人工智能/

这些所谓的“简单”问题,与视听感知和运动/移动有关,结果却是最难解决的问题。

我们可以有把握地说,我们现在明白是怎么回事了。这是因为事实上,进化的大机器也一直在完善和优化我们物种的这些技能,比其他任何事情都更艰难和持久。

毕竟,生物学不会那么容易屈服于人工智能事业。

AGI 和未来的工作

模仿生物学是通向人工智能的正确道路吗(AGI)?

有人可能会说,也许我们应该建立模拟大脑回路的人工智能系统,并设计各种模仿进化作品的子处理器。通过这种方式,我们或许能够像人类进化那样,将适量的计算资源分配给合适的子处理器。

全脑仿真可能是通往 AGI 的一条可能的道路。围绕它的可行性和潜力有很多争论。有一个令人兴奋的项目是模拟人类大脑的整个新皮层。我们不是来讨论这些的。

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

图片来源:维基百科(创意通用许可)

目前,普遍接受的构建智能代理的方法是“模仿人类行为”。这相当于著名的图灵测试,人工智能代理通过测试的标准只是“‘在外部考官看来像人类,并迫使她这么认为’”。请注意,图灵测试并没有硬性要求人工智能代理在智能谱上与人类完全一样。它只需要代理人扮演一个伟大的模仿者。

只要我们按照那个原则设计人工智能系统,我们就可能会受到生物学的限制。与构建只解决数学推理问题的人工智能相比,构建模拟日常感知和运动任务的人工智能将需要我们更多的计算能力和创造力。

数学很容易,毕竟园艺很难。

未来的工作?

人们想知道这对未来的工作有什么影响。有很多关于白领工作被人工智能技术取代的猜测,就像工业革命如何取代大量体力劳动工作或汽车革命如何使马车过时一样。

另一方面,许多专家一直在宣布人工智能和机器人自动化带来的所谓的第四次工业革命将为劳动力市场带来转机和更光明的未来

无论情况如何,我们看到有一个强有力的科学论据来相信,许多涉及复杂身体运动和微妙感官知觉的工作(例如,园艺,理发,老人护理,儿童保育,体育,调酒,酒店和酒店)不太可能在短期内被任何机器人自动化所取代。尽管这些工作表面上看起来毫不费力,但它们依赖于通过数百万年的生物过程优化而完善的技能,并且需要比许多白领重复性工作多得多的计算,这些工作只依赖于高级推理,这是人类进化的相对较新的产物。

未来是不确定的,令人兴奋的。保持开放的心态…

大量涉及复杂身体运动和微妙感官知觉的工作不太可能在短期内被任何机器人自动化所取代。

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

图片来源:Pixabay

如果您有任何问题或想法要分享,请通过tirthajyoti【AT】Gmail . com联系作者。此外,您可以查看作者的 GitHub 知识库中的代码、思想和机器学习和数据科学方面的资源。如果你和我一样,对人工智能/机器学习/数据科学充满热情,请随时在 LinkedIn 上添加我在 Twitter 上关注我

*** [## Tirthajyoti Sarkar - Sr .首席工程师-半导体、人工智能、机器学习- ON…

通过写作使数据科学/ML 概念易于理解:https://medium.com/@tirthajyoti 开源和有趣…

www.linkedin.com](https://www.linkedin.com/in/tirthajyoti-sarkar-2127aa7/)***

为什么中位数(有时)比平均数好

原文:https://towardsdatascience.com/why-median-is-sometimes-better-than-mean-dcdf5377c9d1?source=collection_archive---------27-----------------------

以世界人口为例的简单统计。用熊猫。

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

Unsplash 上的 Louis Hansel @shotsoflouis 拍摄的照片

当然,从数据分析开始,我发现了解数据描述的主要统计方法是非常必要的。当我深入研究时,我意识到对我来说很难理解对给定的数据选择哪个集中趋势指标。因为,当然,你知道,有三种:均值,中值,众数。

所以我决定写这篇文章来帮助像我一样的这个领域的新手解决这个问题,不要害怕数据和统计。要知道,有时候是会发生的,但不应该成为一个人和他成为数据分析师的梦想之间的高墙。对我来说,这也是一个很好的机会,让我可以在我感兴趣的领域——世界、国家和他们的人口——做一个小小的研究。(为什么我觉得有趣——这是另一个故事。)

好,我们开始吧。第一,要拿数据去探索。我在 Kaggle 上发现了一个很好的数据集:这个国家统计。它代表了世界上所有国家的经济、社会、基础设施和环境指标。在我们的研究中,我们只需要这个数据框中的三列:国家名称、所在地区和人口。

让我们看一下数据:

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

现在我们可以转移到我们的问题:我们应该使用哪个中心趋势度量来探索数据,以及为什么。

最简单的部分是关于模式。它只是一行或一列中所有值中最常见的值,仅此而已。这是数据中最“流行”的数字。

我们对非数字值使用 mode,并且只对它们使用。为了找到它,我们必须计算特定单元在给定列中出现的频率。结果最大的单元就是我们要找的模式。

在我们的数据集中,我们可以将一个关于模式的问题仅应用于 region 列,这是表中该问题唯一有意义的列。因为在国家一栏中所有的值都是不同的,而在人口一栏中它们是数字。

事先,我清理了这个列,只留下了五大洲的名字(而不是东南亚,亚洲等等)。只是不要混淆我们。

区域列的模式为:

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

很好。这意味着大多数国家位于非洲大陆。这并不奇怪,对吗?

现在让我们转向均值和中值。这两个值都显示了行中间的数字。但是方式不同。

Mean 是平均值,我们可以通过将一行中的所有值相加,然后将结果除以它们的数量来计算它。让我们看看人口。为了计算平均值,我们应该将所有国家的人口值相加,然后将总和除以数据集中的国家数。幸运的是,熊猫可以为我们做到这一点。

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

这个数字表明,一个正常的国家平均生活着大约 3300 万人。让我们保持原样,移到中间。

中位数也向我们展示了一个平均数。但是它正好是一行中间的值。如果我们按从最小到最大的顺序排列人口值,在这个有序行的中间位置,中位数将是。

我们来计算一下。

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

Ups!按照中位数计算,一个国家的平均人口只有 550 万人左右。根据平均数,它比平均人口少得多。怎么会这样?

通常平均值和中间值非常接近。如果不是,问题就出在异常值上,即与行中所有其他值都非常不同的值。我们来做一个小小的图形。

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

人口分布直方图

我们看到大多数国家都集中在零附近。但是有些价值观与众不同。虽然这些点很小,但我们可以看到其中一些在 2 亿以上,两个在 14 亿附近。这些都是离群值。它们会影响平均值。因为这是平均值的本质——考虑一行中的所有值。而中位数则没有这个缺点。

因此结论是,虽然均值、中位数和众数被用来描述数据的中心趋势,但我们在探索中应该相当谨慎地选择一个。否则,我们会做出错误的决定。

现在我们也知道了,世界上充满了勇敢而美丽的小国。大部分在非洲。

这是描述我们周围世界的统计和编程方法的一个小例子。数据分析可以给我们提供更多信息,帮助人们获得问题的答案。

为什么平庸的数据科学永远无法服务于社会

原文:https://towardsdatascience.com/why-mediocre-data-science-cant-ever-serve-society-3cc346d3fb06?source=collection_archive---------61-----------------------

意见

疫情政治表明,需要透明、隐私、背景和不愚蠢的解释

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

是时候采用消费和处理数据的最佳实践了。在 Unsplash彼得 G 拍摄的照片

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传 T 疫情冠状病毒是一个完美的例子,说明当科学突然成为焦点,需要以极快的速度进行时会发生什么。虽然在疫情有许多好的和谨慎的数据科学的正面例子,但许多平庸的,甚至完全虚假的信息也充斥着我们的社交媒体。

不幸的是,即使领导人和新闻媒体是善意的,他们也经常提供误导性的信息。例如,他们往往只关注每个国家的官方数字,尽管它们只揭示了部分真相。或者,他们称赞那些似乎很好地处理了疫情的国家,但忘记了隐私泄露和其他问题点。所有这些都增加了人们对政府和现有新闻的困惑和不信任感。

良好的意图,不完整的信息

官方公布的死亡人数只揭示了真相的一部分。真正的数字可以通过超额死亡来更好地量化,这意味着将过去五年的平均死亡率与 2020 年的死亡率进行比较。

例如,当纽约市在 4 月 25 日统计大约 16,700 人因冠状病毒死亡时,超额死亡人数达到 20,900 人;因此,约有 4200 人在没有被确认为病毒受害者的情况下死亡。

对于确诊病例,这种差异可能更大。由于没有严重症状的人不会做太多的检查,未被发现的病例数量很可能比官方的高很多。

虽然在疫情持续期间很难估计,但总体而言,死亡率被认为在 0.5%到 1%之间。即使我们假设官方死亡统计是准确的(事实并非如此):在撰写本文时,全球官方死亡人数超过 50 万,这意味着我们应该已经统计了 5000 万到 1 亿例冠状病毒病例。这与三周前报道的大约 900 万例 T2 病例不可同日而语,考虑到测试和死亡之间的时间差

最后,追回案件的数量不仅被低估,而且在含义上有误导性。虽然康复患者的身份可能意味着患者已经离开医院,但许多人报告说,他们在接下来的几周甚至几个月里都在与后遗症作斗争。此外,越来越多的证据表明,冠状病毒能够在以前健康的个体中导致心脏病引发糖尿病

[## 新冠肺炎官方统计数据遗漏了一些关键的东西

即使你从新冠肺炎恢复过来,你也不可能全身而退

elemental.medium.com](https://elemental.medium.com/official-covid-19-statistics-are-missing-something-critical-155e1e153a2f)

换句话说,许多所谓的康复病人还没有恢复到疫情之前的健康状态。由于没有人知道针对 Covid 的免疫能持续多久,因此将它们归类为长期免疫还为时过早。

底线是:尽管超额死亡是估计死亡人数的唯一可靠的方法,但是从感染到死亡之间的时间间隔太长了,因此无法推断出当前的情况。因此,决策者和科学家需要将他们的模型建立在关于确诊病例的高度不完整数据的基础上。

关于这种病毒的许多基本信息仍然不为人所知,例如为什么人们对它的反应如此不同,他们能免疫多久,以及它是否已经显示出任何令人担忧的变异。数据科学家在建立模型时需要考虑所有这些不确定性,例如病毒的传播。

疾病预防控制中心给树立了一个好榜样:在死亡人数的预测中,它总是包括来自可信机构的多重模拟,因此显示了一系列可能的情况。这突出了一个事实,即基础模型是基于不同的假设,因此不能无限精确地预测未来。

不幸的是,当一些新闻媒体和政客制造浮华的标题时,这种不确定性的概念往往会被遗忘。因此,不仅是数据科学家,普通大众在阅读一个又一个标题时也需要非常谨慎。

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

不要让你的数据成为监控机器。 evUnsplash 上拍照

精确和隐私之间的微妙平衡

关于病毒的潜在假设并不是模型成败的唯一因素。如果不尊重基本的公民权利,数据收集和处理就无法进行,即使在疫情也是如此。

以韩国为例。最新披露显示,因应对冠状病毒爆发而受到称赞的国家一直在存储 2015 年 MERS 爆发以来的敏感健康数据。虽然这个数据集可能会为处理当前的疫情提供一些见解,但政府在使用后有法律义务删除这些数据,以降低泄露敏感数据的风险,并防止污名化。

不仅数据一旦被使用就必须被删除。把它捆绑起来也很重要,这样人们就无法通过组合不同的数据点来找出个体的身份。统计披露控制框架可以自动完成这项任务。

另一方面,人们也不应该过多地捆绑数据。例如,社交距离计分板忽略了重要的地方和地区差异,意义不大,因为它们没有考虑到的社会、人口和经济背景

一旦你在尊重隐私和捆绑数据之间找到了一个好的平衡点,你还需要检查你的模型的参数。添加更多参数可能会使您的模型更好地适应训练数据。但是你添加的越多,包含的不确定性就越多,你的发现就变得越不相关

警惕道德和数据来源技术

你做的每个分析都必须基于社会价值观。在电晕时代,这可能是公共卫生。在其他领域,这可能是可持续性、盈利性或生产率。如果一个模型被重新用于一个不同的问题,这些核心价值必须被重新评估。

这听起来很简单,但事实并非如此。考虑前面提到的社交距离记分卡:当然,人们可以收集数据,并建立一个社交距离随时间演变的预测模型。但是这真的有利于公共健康吗?鉴于地区和社会经济背景的不准确性,可能不会。

然而,如果获取数据的技术不理想,所有这些确定目的的方法都无济于事。例如,联系追踪应用程序远非完美。使用他们的数据的唯一合法方式是考虑所有的不确定性,并在展示你的发现时充分披露。

首先,接受不确定性意味着一件事:提出更多的问题,而不是给出明确的答案。虽然清晰的答案在短期内会成为更好的头条,但从长远来看,它们几乎肯定是非常错误的。

为了培养一种你可以问更多问题的文化,尝试在一个开放的生态系统中发布你的模型,在那里科学同行评审者、研究伙伴、企业和其他社区可以成为讨论的一部分。通过这个,你不仅证明了你并不知道所有的事情。你还暗示这是一个正在进行的调查,每个人都关心。

虽然上述所有这些在其他分支机构中已经很长时间了,但现在是时候将这种技能融入到当前事务中了。

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

培养一种开放的文化最终对每个人都有好处。卢克·波特在 Unsplash 上拍摄的照片

用上下文和心灵来引导

如果你读到这里,你可能会想,这一切听起来很好,但是很难向你的祖母解释。你没有错。数据科学及其伦理很难向公众解释清楚。但也不是不可能。

希腊为例。它在处理疫情方面的成功在很大程度上要归功于希腊卫生部发言人 Sotiris Tsiodras。作为一名科学家,他不仅解释了图形和曲线。每天晚上,他都上电视,在概述疫情发展的同时,他强调每一个病例,每一个死亡对这个国家的某些人来说都是人类的悲剧。

这是数据科学家在这种时候最终应该做的事情。这就是目前公共卫生数据、数据处理和建模的内容。不是 p 值黑客或者最漂亮的新算法。甚至不是让你奶奶明白流行曲线的来龙去脉。所有关于伦理、数据收集、隐私和目的的谈论都是为了一件事:尽你最大的努力确保你的奶奶不会死。

为什么如果你想成为一名成功的数据科学家、人工智能或人工智能工程师,导师是必不可少的。

原文:https://towardsdatascience.com/why-mentorship-is-essential-if-you-want-to-be-a-successful-data-scientist-ai-or-ml-engineer-b445112e53bb?source=collection_archive---------65-----------------------

你很有可能在这个领域靠自己获得成功,但这里有几个原因可以让你在导师的帮助下获得更多,做得更好。

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

制造者在 UnsplashNESA 的照片

导师是在你身上看到比你在自己身上看到的更多的天赋和能力,并帮助你发挥出来的人。 —鲍勃·普罗克特

学习成为一名数据科学家、人工智能或人工智能工程师可能非常困难,即使你有幸接受过正式的课堂教育。通常情况下,你会学到很多抽象的东西,以至于当你最终以专业人士的身份进入这个领域时,你会发现自己有所欠缺。把学习成为一名数据科学家、人工智能或人工智能工程师想象成在一个沙箱中,在那里你周围有一个受控的环境。无论您在沙盒中做什么,都不会影响现实世界中的生活,而且大多数情况下,您所从事的项目类型或用于这些项目的数据都已经准备好供您使用,在学习过程中不会遇到任何问题。然而,你发现作为专业或实践数据科学家、AI 或 ML 工程师的沙盒之外的生活是完全不同的。在现实世界中,您的行为会对您组织的业务或财务计划产生影响,您必须处理的数据未经预处理,您所从事的项目对您所在的任何机构的决策都至关重要。那么,你如何为自己的职业生涯做准备呢?很简单,给自己找个导师。不是任何导师,而是在这个行业中专业工作过的人,如果这个人现在还在工作,他擅长他所做的或者仍然在做的事情。让我们讨论一下为什么如果你想成为一名成功的数据科学家、人工智能或 ML 工程师,拥有一名导师是必不可少的几个原因。

你的导师让你做好准备

作为一个在行业中有如此丰富技术经验的人,你的导师会让你准备好在现实世界中会遇到什么,并通过从他们的个人经历、错误和缺点中教会你做正确的事情,引导你走上在该领域取得成功的正确道路。你的导师也把你们的关系作为一个机会来建议和激励你,即使是在生活中与工作和学习无关的方面。你的导师视你为朋友,甚至是弟弟妹妹,会尽一切努力帮助你成功。

你的导师挑战你

你的导师强调要确保你永远是比前一天更好的自己。凭借你的导师在行业内专业工作的所有知识和经验,你的导师会推动你走得更远,做得更好,知道得更多。你的导师知道你会从做得更多中获得什么,他们不会罢休,直到你成为他们更好的版本。

你的导师保护你

作为一个对你的幸福和事业成功充满热情的人,你的导师永远不会让你满足于低于你应得的。你的导师保护你不落入坏雇主的手中,不成为坏合同的牺牲品。

给我看一个成功的人,我会给你看一个对他或她的生活有真正积极影响的人。我不在乎你靠什么谋生——如果你做得好,我敢肯定有人在为你加油或指路。一个导师。 —丹泽尔·华盛顿

Notitia AI

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

Notitia AI logo 由诺贝特 Dziwornu

Notitia AI 是一个以培养非洲下一代数据科学家为愿景的组织,即使我们在培训和指导之间架起了一座桥梁。在 Notitia AI 注册可以让你进入一个虚拟的生态系统,其中包括一个人工智能驱动的学习和培训平台,一个坚实的工作空间和一个由来自非洲各地和其他地方的顶级专业人士作为导师的社区。Notitia AI 目前正在举办一个队列,但感兴趣的人可以通过填写此表格加入我们未来队列的等候名单。

你还怀疑师徒关系的重要性吗?你能指出我写这篇文章时可能漏掉的一些事情吗?在这篇文章的回复部分分享你的想法和观点。你也可以在 TwitterLinkedIn 上直接联系我。

在你成为世界级数据科学家、人工智能或人工智能工程师的旅途中,祝你成功!

我衷心感谢 安娜·阿依库 校对并纠正了我写这篇文章时犯的许多错误。

为什么数据越多并不总是越好

原文:https://towardsdatascience.com/why-more-data-is-not-always-better-de96723d1499?source=collection_archive---------23-----------------------

即使是“大数据”也有局限性

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

来源:图片来自 Pixabay

在过去的几年里,越来越多的人认为,数据越多,最终的分析就越好。

然而,正如人类会被太多的信息淹没一样,机器学习模型也是如此。

以酒店取消为例

最近,在反思我过去一年一直在做的一个副业项目时,我也在思考这个问题——用机器学习预测酒店取消预订**。**

我已经写了许多关于媒体主题的文章,很明显,在过去的一年里,酒店业的格局已经发生了根本性的变化。

随着对“居家度假”或当地假期的日益重视,这从根本上改变了任何机器学习模型在预测酒店取消时应该做出的假设。

来自 Antonio、Almeida 和 Nunes (2016) 的原始数据使用了来自葡萄牙酒店的数据集,这些数据集带有一个指示客户是否取消预订的响应变量,以及该客户的其他信息,如来源国、细分市场等。

在这两个数据集里,大约 55-60%的客户是国际客户。

然而,让我们假设一下这个场景。明年这个时候——酒店入住率恢复到正常水平——但绝大多数顾客都是国内顾客,这次是来自葡萄牙。为了这个例子的目的,让我们假设一个极端的场景,即 100% 的客户都是国内的。

这种假设将从根本上影响任何先前训练的模型准确预测取消的能力。我们举个例子。

使用 SVM 模型分类

SVM 模型最初用于预测酒店取消率,该模型在一个数据集(H1)上进行训练,然后使用测试集的特征数据将预测结果与该测试集(H2)进行比较。响应变量是分类变量(1 =预订被客户取消,0 =预订未被客户取消)。

以下是三种不同场景下混淆矩阵显示的结果。

场景 1:在 H1(完整数据集)上训练,在 H2(完整数据集)上测试

[[25217 21011]
 [ 8436 24666]]
              precision    recall  f1-score   support

           0       0.75      0.55      0.63     46228
           1       0.54      0.75      0.63     33102

    accuracy                           0.63     79330
   macro avg       0.64      0.65      0.63     79330
weighted avg       0.66      0.63      0.63     79330

总体准确率为 63%,而积极类(取消)的召回率为 75%。澄清一下,在这种情况下,召回意味着在所有取消事件中,模型正确地识别了其中的 75%。

现在,让我们来看看当我们在完整的训练集上训练 SVM 模型,但在我们的测试集中只包括葡萄牙的国内客户时会发生什么。

场景 2:在 H1(全数据集)上训练,在 H2(仅限国内)上测试

[[10879     0]
 [20081     0]]
              precision    recall  f1-score   support

           0       0.35      1.00      0.52     10879
           1       0.00      0.00      0.00     20081

    accuracy                           0.35     30960
   macro avg       0.18      0.50      0.26     30960
weighted avg       0.12      0.35      0.18     30960

准确率急剧下降到 35%,而取消类的召回率下降到 0%(这意味着该模型在测试集中没有预测到任何取消事件)。这种情况下的性能显然非常差。

场景 3:在 H1 进行培训(仅限国内),在 H2 进行测试(仅限国内)

但是,如果训练集被修改为只包括来自葡萄牙的客户,并且模型被再次训练,那会怎么样呢?

[[ 8274  2605]
 [ 6240 13841]]
              precision    recall  f1-score   support

           0       0.57      0.76      0.65     10879
           1       0.84      0.69      0.76     20081

    accuracy                           0.71     30960
   macro avg       0.71      0.72      0.70     30960
weighted avg       0.75      0.71      0.72     30960

准确率恢复到了 71%,召回率达到了 69%。在训练集中使用更少但更相关的数据使得 SVM 模型能够更准确地预测测试集中的取消。

如果数据是错误的,模型结果也将是错误的

如果大部分数据与您试图预测的内容无关,那么数据越多越好。如果训练集不代表现实,即使是机器学习模型也可能被误导。

哥伦比亚商学院(Columbia Business School)的一项研究将这一点列为 2016 年美国总统选举的一个问题,在这次选举中,民调显示克林顿牢牢领先于特朗普。然而,事实证明,有许多“特朗普的秘密选民”在民调中没有被计算在内——这使结果朝着克林顿获胜的方向倾斜。

顺便说一下,我不是美国人,在这个问题上保持中立——我只是用这个例子来说明,即使是我们经常认为“大”的数据也可能包含固有的偏见,可能不代表实际发生的事情。

相反,数据的选择需要和模型的选择一样仔细,如果不是更多的话。包含某些数据与我们试图解决的问题相关吗?

回到酒店的例子,当我们的目标是预测国内客户群的取消时,在训练集中包含国际客户数据并没有增强我们的模型。

结论

越来越多的人希望收集所有领域的更多数据。虽然更多的数据本身并不是一件坏事,但不应该认为盲目地将更多的数据引入模型会提高模型的准确性。

相反,数据科学家仍然需要确定这些数据与手头问题的相关性的能力。从这个角度来看,模型选择变得有点事后诸葛亮。如果数据代表了您在第一个实例中试图解决的问题,那么即使是更简单的机器学习模型也会产生强大的预测结果。

非常感谢您的阅读,欢迎在下面的评论中留下任何问题或反馈。

如果您有兴趣深入了解酒店取消示例,您可以在这里找到我的 GitHub 存储库

免责声明:本文是在“原样”的基础上编写的,没有担保。本文旨在提供数据科学概念的概述,不应以任何方式解释为专业建议。

什么是歧义厌恶?

原文:https://towardsdatascience.com/why-most-of-you-made-an-irrational-decision-aeeac532ef92?source=collection_archive---------6-----------------------

第 2 部分,共 3 部分——风险、不确定性和模糊性之间的区别

合理性问答中你选择了 A & C,A & D,B & C,还是 B & D

(不知道我在说什么?这可能是因为你没有先阅读 第一部分(一个 3 分钟的小测验) 就来到了这里,所以请在进一步阅读之前先这样做。你需要知道这些 X 事物的含义,其他的才有意义。)

我在网上放了一个可爱宠物的屏障,这样你就不会不小心看到下面的剧透了。当你读完第 1 部分时,滚动浏览它们。

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

大多数人选择什么?

如果你像大多数人一样,你选择了常年最喜欢的: A & D

唉,如果真是这样,说明你没有理性选择!是的,大多数人不喜欢,所以没必要难过。你在一个好公司里。各种不合理的决策是我们人类固有的,需要大量的训练来克服。

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

Twitter 上的投票结果与 20 世纪 60 年代以来无数的实验室研究结果一致。

你的结果是什么?

  • A & C理性,尤其是如果你喜欢粉色(或者认为我喜欢)。
  • B&D——理性,尤其是如果你不喜欢粉色(或者认为我喜欢)。
  • 抛硬币两次——理性的,尤其是如果你是一名训练有素的经济学家。
  • A&D——非理性但流行。科学认为它知道人们为什么这样做。
  • B&C——非理性和科学不理解你。😦

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

图片:来源

我的大多数读者都是数据科学专业人士和/或高级数据主管。当昨天的测验进行时,我很开心地收到了一堆评论,比如,“太简单了,给我们来点难的吧!”(如此虚张声势!我的手指发痒,想写一篇关于过度自信效应的文章。)

如果理性决策如此简单,为什么你们这些数学伙伴中有四分之三的人会犯错误?

也许这并不容易,数据科学课程也不能让你摆脱人类的弱点。也许数据科学家可以从行为经济学家和心理学家那里学到一些东西

非理性决策

总有一天,我会写一篇文章,聚焦于经济学家如何定义理性(并向你介绍冯·诺依曼–摩根斯坦理性的四个公理 …嗯,真想不到),但现在,让我们保持简单:

一个决定可能不合理的一种方式(以及其他方式)是不一致,这是压倒性流行的 A & D 答案所遭受的。

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

拿出手术刀,准备解剖!我们用理性案例做一点证明。

理性案例#1:行为经济学家做什么

我的本科专业是经济学,这使我有资格加入最冷血的群体——经济学家。对一个幼小的实验/行为经济学家的训练的一部分是被棍子打,直到我们学会对像这样的决定采取理性的态度。那么,在我们洗脑之后,我们更喜欢哪个答案呢——呃,我的意思是,训练已经成功扎根了?

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

图片:来源

我们。不要。关心。

完全理性的头脑不应该有任何偏好。当面对这些选择时,我们感到完全的、厚颜无耻的、好战的冷漠。所有四个 X&X 组合是相同的。

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

一个经济学家被训练来观察选择并分析可能性。我们问,“虽然我们知道有 30 个白色的球,但我们对其余 60 个球中黄色和粉色的分布有什么了解?”

最佳答案:什么都没有。

事实:我没有给你任何关于这方面的信息,你必须先了解我,才能知道我相对喜欢粉色还是黄色。如果你认为你知道我喜欢哪种颜色,那就是你在展示你的偏见。

所以,就一个训练有素的经济学家而言,有:

  1. 没有信息表明粉色比黄色多。
  2. 没有信息表明黄色比粉色多。

这意味着当我们计算数字时,没有理由区别对待黄色和粉红色,因此,以下是目前与《经济学人》头脑中的内容最一致的内容:

  • 30 白色
  • 30 粉色
  • 30 黄色

喜欢就试试自己跑数字得到解答:
赌 A: 30 个好球 vs 60 个坏球
赌 B: 30 个好球 vs 60 个坏球
赌 C: 60 个好球 vs 30 个坏球
赌 D: 60 个好球 vs 30 个坏球

这使得所有的捆绑(A&C、A&D、B&C、B&D)对经济学家来说都具有同等的吸引力,然后经济学家被迫任意挑选(或抛硬币)来减轻这种极度冷漠的痛苦。

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

理性案例#2:粉色的粉丝做了什么

如果你不能表现出完全的冷漠,你喜欢挑选一匹赛马只是为了好玩,让我们假设你喜欢粉红色,你想打赌粉红色比黄色多。(如果你被偏见所困扰,你会得到类似的答案,因为一些奇怪的原因,我会在桶里放更多的粉红色而不是黄色。)

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

我们将想象最温和的情况——让我们从这里开始,制作一个黄色球来改变忠诚,而不是相等的黄色-粉红色赔率。天平现在略微倾向于粉红色。

此刻在你的脑海里:

  • 30 白色
  • 31 粉色
  • 29 黄色

赌局 A: 30 个好球 vs 60 个坏球
赌局 B: 29 个好球 vs 61 个坏球
赌局 C: 61 个好球 vs 29 个坏球
赌局 D: 60 个好球 vs 30 个坏球

因为你会参加第一场比赛(A 对 B)或第二场比赛(C 对 D ),但不会两者都参加,所以尝试两面下注没有任何好处。如果你想要那 100 美元,你会赌更多的好球而不是坏球。这意味着你唯一合理的组合是 A&C。

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

现在尝试极端的全粉色案例:

  • 30 白色
  • 60 粉色
  • 0 黄色

赌局 A: 30 个好球 vs 60 个坏球
赌局 B: 0 个好球 vs 90 个坏球
赌局 C: 90 个好球 vs 0 个坏球
赌局 D: 60 个好球 vs 30 个坏球

还是那句话,必须是 AA&C。其他的都没有意义!

理性案例#3:讨厌粉色的人做了什么

如果你想赌黄色或者你确信我对小鸭子的喜爱,逻辑是一样的,但现在唯一有意义的答案是 B & D

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

大多数人选择了非理性选项 A&D…瓦特?!

尽管如此,在 Twitter 的民意调查中,我们有近 65%的人选择了非理性选项 A&D。从上面的逻辑来看,选择这两个选项是没有意义的。

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

这张截图是在上一张之前拍摄的,当时还没有解释和剧透,所以这些是我们在投票前无法先睹为快的情况下得到的结果。我很高兴地看到,当作弊成为一种选择时,事情并没有变得混乱。

A&D 是不一致的选项(如果 A 比 B 好,那么 C 应该比 D 好……事实上,这两组几乎是相同的赌博——我们所做的只是将相同的粉红色球移到线的另一边):

赌 A: W 好,休息不好
赌 B: Y 好,休息不好
赌 C: W +P 好,休息不好
赌 D: Y +P 好,休息不好

那种对称是华丽的…如果你在赌博 B 中赌黄色,理性建议你在赌博 d 中仍然应该这样做。但是人们不这样做。尽管事实上,如果你两次使用同一个铲斗,A&D 在一起将没有意义,尽管事实上选择是不合理和不一致的,人们仍然最喜欢它。

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

埃尔斯伯格悖论

是的,的确,这是一个悖论!事实上,它被称为埃尔斯伯格悖论,以决策理论家丹尼尔·埃尔斯伯格的名字命名,他想出了一个我们刚刚玩的小游戏,当时他正在哈佛大学写他 1962 年的博士论文——事实上,他的维基百科页面几乎没有提到他的另一个成名原因:泄露五角大楼文件(是的,你在尼克松水门丑闻的背景下听说过的那些

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

丹尼尔·埃尔斯伯格,我们埃尔斯伯格悖论中的人。请允许我小小的幻想一下,这些记者渴望了解更多关于效用理论和理性决策的知识。图片:来源

但这意味着什么呢?

大多数经济学家对这个难题的答案包括引入一个叫做“模糊厌恶”的新概念来解释这种怪异的选择模式。

让我们像埃尔斯伯格那样看待它。A&D 期权有什么共同点?是什么吸引了你?

如果你没有像我们一样把粉色和黄色的数字折叠起来,并且一直在未知的地方工作,这就是你的想法:

  • 30 白色
  • ??粉红色
  • ??黄色

喜欢就试试自己跑数字得到解:
赌 A: 30 个好球 vs 60 个坏球
赌 B:??好 vs??坏球
赌博 C:??好 vs??坏球
赌博 D: 60 个好球 vs 30 个坏球

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

图片:来源

这里有龙!这是伟大的未知!!哦,不。让我们坚持一些安全的东西,选择已知的赌博,而不是宇宙状态不确定的赌博…

“风险”意味着概率是已知的。“模棱两可”意味着他们不是。

什么是歧义厌恶?

简单地说,这个理论就是:模糊伤害了人类这个动物。我们不喜欢它。我们愿意做出次优的选择来避免它。

当事情有风险的时候,也不是那么糟糕。模糊更让我们害怕。

如果我们不太介意进行一两次概率计算,风险是我们可以处理的,但模糊性确实困扰着我们。与风险相比,模糊会带来不同的不适。一个更原始的。(“什么?!"我听到你在问,“难道 风险、 不是一回事吗?它们不是同义词吗?”如果你是一个行为经济学家,那就不是了。)

基本术语:

  • “风险”是指明确知道概率的决策。(A 和 D)
  • ****“模糊不清”指的是你毫无头绪,决策卡住的决策。(B 和 C)
  • 【不确定性】可以指中的任何一个,取决于你成长的领域和年代。*

当你在行为悖论中插入模糊厌恶的概念时,一切都变得完美了。如果你选择了 A&D,埃尔斯伯格在 60 年代提出的流行理论认为,正是这些问号让你止步不前。

心理学家认为,人类天生就觉得模棱两可很痛苦。

你不想处理这种模棱两可的痛苦,所以你选择了看起来更容易处理的选项…即使它们是非理性的和不一致的。对于生活在大草原上的生物来说,这是一个非常好的适应——小心那片黑色的高草丛……你永远不知道那里潜伏着什么,所以最好避开它。如果可能的话,呆在阳光充足的地方,在那里你至少可以看到你正在进行的赌博。

与新冠肺炎的相关性

也许你明白我的意思,也明白为什么在所有的头条都是疫情风味的时候,我会有灵感写下这个特定的话题……新冠肺炎早期的情感流失之一就是我们突然不得不面对的所有模糊。如果你相信厌恶模棱两可的经济学理论,并且因为对媒体每天警告你的新危险知之甚少而情绪低落,那么你至少可以解释一种困扰你的潜在压力源。

请在这里观看我正在撰写的一篇文章的链接,这篇文章是关于你可以做些什么来更好地应对你的模糊厌恶,但现在,我希望你能从理解模糊带来的额外痛苦是很正常的这一点上得到一点安慰。至少,如果这里一定有龙的话,它们现在有名字了。

我的新冠肺炎决策指南,见此链接

如果这里一定有龙,至少现在它们有名字了。

第 3 部分是为过分感兴趣的人准备的

如果你想深入了解单词不确定性的学术本质,这里有链接。

【附:对于那些必须知道我到底更喜欢哪种颜色的人来说,这里透露一下……这只猫在粉色和黄色之间是无所谓的。哈!这就是为什么我选择他们作为例子。埃尔斯伯格的原作使用了黑色(我最喜欢的)、白色和红色。】**

关于那些评论

这篇文章发表后,我收到了一些固执地为自己的选择行为辩护的人的暴躁评论。(称 mathy folk 为非理性类似于踢马蜂窝。)你可以在这里找到我的回复

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

对于那些好奇的人来说,这是剧透出来后的分数(“最流行的答案是不理智!”)但是在解释发表之前。我用最后的分数替换了上面的。

现在是完全不同的东西…

感谢阅读!如果你在这里玩得开心,并且对人工智能感兴趣,这里有一个初学者友好的介绍供你娱乐:

在这里欣赏整个课程播放列表:bit.ly/machinefriend

喜欢作者?与凯西·科兹尔科夫联系

让我们做朋友吧!你可以在 TwitterYouTubeSubstackLinkedIn 上找到我。有兴趣让我在你的活动上发言吗?使用表格取得联系。

为什么社交就像投资指数基金——我是如何通过参加活动结识多位面试官的

原文:https://towardsdatascience.com/why-networking-is-like-investing-in-an-index-fund-how-i-met-multiple-interviewers-by-attending-adf82df5b049?source=collection_archive---------41-----------------------

办公时间

在申请我的第一份数据科学工作时,我是如何了解我的面试官的。

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

图片来自 Unsplash

"网络是如此重要:建立联系的 8 个技巧!"当我在谷歌搜索上滚动时,标题是,“即使害羞也要学会交际”。即使读了 10 多篇这样的文章,我仍然不确定我能做什么。事实上,我仍然不明白“网络”作为一个动词是什么意思,更不用说用它来帮助我获得作为一名数据科学家的第一份工作了!

当我开始全职工作时,那是我对“网络”的理解状态。几年后,只是在事后,我也同意网络是建立职业生涯最重要的方式之一。例如,在面试我的第一份工作时,我已经见过多个最后一轮的面试官(他们也记得/认出了我)。但我不知道这能算作网络的结果,因为有这么多不同的定义。

既然我已经填补了困惑和理解之间的空白,我觉得我可以用真实的例子来说明网络是如何帮助我的。这就是为什么,在这篇文章中,我分享了我第一次寻找数据科学工作时如何涉及网络的详细过程,希望它一劳永逸地不再神秘。

社交就像投资指数基金

在我们进入例子之前,我想给你一个我在过去的经历中注意到的模式的鸟瞰图,我把它标记为“网络”。我去参加活动和会议,这些活动和会议本身可能没有回报,或者只有很少的短期回报。这就像把一小部分工资投入指数基金(或者储蓄账户,如果你不记得“指数基金”的话)。

在将少量资金存入投资账户的头几个月,余额的微小而逐渐的增加可能不会被注意到。只是时间长了,加上复利,你突然发现你的余额比预期高了!

有了这个类比,让我们直接看例子。这里我具体说说我硕士快结束找工作时的两次面试。两家公司都是大公司:一家是 AAA 视频游戏公司,拥有世界上最大的视频游戏特许经营权,另一家是加拿大最大的电信公司之一(根据一项内部统计,1/400 的加拿大人为他们或他们的子公司工作)。剧透:我收到了两个邀请。

我将在每一次面试中谈论人际关系网是如何帮助我的。顾名思义,我实际上是在其他地方遇到最后一轮面试官的,完全是巧合

AAA 视频游戏公司

网络——从本地游戏组织到旧金山

当时,严格来说,我是一名全日制学生,但我的业余爱好是开发一款视频游戏。与这个爱好相关的是,我参加了旧金山的游戏开发者大会,这是我每年都会花时间参加的一个活动。

退一步来说:我能负担得起参加这个会议的原因首先是因为我是多伦多 Dames 制作游戏的一员很长时间了,去参加他们的会议和活动。他们有一个我申请的奖学金项目,幸运的是,我收到了一张来自。因此,即使在游戏开发者大会之前,一般来说,一个要求是持续地参加当地的游戏开发者活动。

所以,听着:我参加这个会议是作为一种爱好,并不认为这是一个全职工作的任何形式的网络。在一次演讲后,我留下来向演讲者提问,他是一家拥有数百万玩家的大型视频特许经营公司的制片人。用非游戏行业的术语来说一点广义的上下文:制作人受到高度重视,是游戏演职员表中的顶级名字之一,类似于电影行业的一个导演。

几个月后,我幸运地进入了 said AAA 视频游戏公司的最后一轮面试,这家公司让我和其他候选人飞到了法国巴黎。令我惊讶的是,其中一位采访者正是我在会议上遇到的制片人!我无法强调这种情况发生的可能性有多大,因为这家公司规模庞大,更不用说是国际性的了。想想看:我,一个加拿大人,面试多伦多办公室。制片人在欧洲,但是我们在美国旧金山见面。

面试流程——免费飞往法国巴黎

作为奖励,我将谈谈这个特殊角色的面试过程。这是为了让你鸟瞰网络是如何有帮助的,以及“网络”是如何完全偶然的。想想指数基金的类比——小额存款只在未知的时间后显示(巨大的)回报。

  1. 提交简历:在这一点上,我没有使用任何员工推荐,尽管我确实认识公司里的一些人(也来自 Dames Making Games conferences),大多数是叙事设计角色。
  2. 打电话给招聘人员:招聘人员想了解我的背景,以及为什么我对那家 AAA 公司特别感兴趣。不出所料,我不得不解释为什么我有经济学学位,但对游戏感兴趣。“我是游戏玩家”并不能说服他们;他们听说的方式太多。副业/爱好,你好!
  3. 多伦多办公室的个人案例面试:1 小时做案例面试,2 小时左右解释我的结果,然后被面试官“盘问”。我指的是轻松,因为在采访中,我通常把它视为对话;面试官只是想了解我,看看我是怎么想的。他们不得不盘问我的想法。
  4. 在公司总部国家(法国)的最后一轮面试:飞往那里,前一天花了 6 个小时沿着塞纳河散步和观光,没有准备任何东西。这是为了充分利用这次免费旅行,克服时差,也为面试理清思路;没有懈怠!全天小组和个人面试,包括案例研究面试和自由提问。

在第4步中,我在会议期间遇到的制片人不仅出现在集体采访的采访小组中,他还是我在 solo,1 对 1 采访中的采访者。这是令人难以置信的运气——但我必须再次强调,这是我从未预料到或控制过的事情。我只是有一个爱好,那就是制作游戏,为此我去了美国参加了一个会议,在一次演讲后我问了一些问题…

现在,我知道你可能在想:“联网是不可能的,苏珊,你太幸运了!你让事情变得更复杂了!”不要担心——在这篇文章的最后,我会总结你如何创造你的运气,以及我如何相信我得到了这个幸运。因为这对我来说发生了很多次,这不仅仅是字面意义上的运气;请相信这是一种可复制和可习得的技能!

大型电信公司

网络——来自大学志愿服务的意外收获

在大学(滑铁卢大学),我曾在校园学生会中担任志愿者和领导职务。通过它,我认识了许多朋友,和许多人一起工作。那些朋友中的一个(姑且称她为 A )把我介绍给她的一个朋友( B ),她来自安大略省伦敦的另一所大学。(它甚至比这更复杂,甚至涉及更多的跳过连接,但简单来说,这就是友谊是如何形成的。)

这位来自安大略省伦敦的朋友向我们介绍了更多和他一样在商学院的朋友。因此,他们中的大多数进入了咨询或营销的全职岗位。他们中的几个人( C 等人)毕业后开始在一家大型加拿大电信公司或其子公司工作。

几年后,我在一家大型电信公司看到一份招聘启事。我问了 C 这件事,她同意介绍我。他不属于数据科学团队,但他向我概述了该团队的结构。几周后,有一次聚会,电信公司的人在会上发言。我把它记在日历上,然后就去了,尽管我没有意识到说话的是数据科学主管。

在会场上,我实际上遇到了一个我在滑铁卢大学时代就认识的人(姑且称她为 D ),她最终会把我介绍给数据科学团队的几个人(姑且称他们为 EF )。如果没有热情的介绍,我可能还会和 E和 F交谈,但是有了热情的介绍,肯定会容易得多。

在活动结束时,我有点不好意思向演讲者介绍自己,他是数据科学总监。然而,我刚认识的 E 鼓励我这样做,所以当导演要离开时,我去打了个招呼。我一点也不知道,几个星期后,经过几轮面试后,那个导演将是我最后一轮面试者之一!

面试过程——我作为数据科学家新手的第一个角色

我也将简要概述一下面试过程,帮助你鸟瞰(和后见之明)一下“关系网”是如何在这里发挥作用的。

  1. 我在一个朋友的员工推荐下在线申请了这个职位( C ,如上所述,他不在数据科学团队)。我还必须提交一段回答一些行为问题的视频。
  2. 然后,我接到了一个招聘人员的电话,他想了解我的背景和分析方面的一般经验。
  3. 在我通过之后,我有一个面对面的案例面试,我有一个小时的时间来完成。还有一些分析问题,比如 SQL 和线性回归。然后,我向一个三人小组展示了结果。
  4. 之后接下来是具体数据科学问题的现场面试,比如 Python 和统计学/机器学习问题。我的一些面试官是数据工程的,一些是数据科学的。然后,我和主任谈了谈,他就是我在聚会上遇到的那个人!

另一件幸运的事情是,我在聚会上遇到的团队中的某个人( F )已经用行为问题查看了我的视频记录,并接受我进入下一轮(见本节的1.)。

意外收获网络中的常见模式

我敢打赌,这两个例子包含了大量的信息,您可能会奇怪为什么我要如此详细地分享这些信息。在这里,我将找出常见的、可重复的线索,我希望你会发现更容易理解,因为你现在与上下文在同一页上,无论它看起来是偶然的而不是有意的。

在这篇文章的前面,我首先给你打了一个比方,把人际关系看做是投资一个指数基金。正如你所看到的,上面的两个例子,虽然是轶事,但都有相同的特点,即看不到立竿见影的效果,而是经过很长一段时间后的复合效果。

如果我没有一点一点地存钱(去参加活动,去见人),就不会有任何结果。毕竟,即使是 20%的利率,投资账户中的 0 美元仍然会产生 0 美元的收益。

在这两个非常成功的例子中,我没有意识到我在会议上与人见面的努力会被视为建立关系网。这就是为什么这么多文章说不要建立关系网,好像你是故意这样做的。事实上,在你读完我的故事后,希望你能理解网络是如何帮助我的,因为我没想到它会在面试中帮助我。翻译:你能做的最好的事情就是不断努力去见人

另一个重要的因素是,我没有集中精力去会见那些拥有我想要的职位的人。你可操作的任务是拓宽你的人际网络:在我的例子中,结识来自不同大学和专业的人,以及课外志愿活动导致了电信公司例子中的成功。如果我只专注于会见特定公司的数据科学家,这些成功故事都不会发生。

尽管运气似乎在其中发挥了很大作用,但主要的收获是:去参加会议和聚会,只是和人们交谈。你创造了你自己的“运气”。哪怕每次活动只认识一个新人,也是值得的!每次你这样做,你就在投资/储蓄账户里投入了 10 美元。

疫情时报注意:大量的在线社交活动、会议和聚会仍在进行!我仍然每周都会遇见新的人。只有你负责让自己置身于可以结识新朋友的情境中;这不会从天上掉下来。你可以报名参加在线活动,现在许多活动都是全球性的,而且免费/便宜,因为它们不在现场。

相关阅读:在一个新的行业或城市建立人际网络的 3 个技巧,从零开始——我在 6+城市生活的心得

3 个可行的步骤来建立你的关系网,创造你自己的运气

除了把人际关系想象成投资一只指数基金,以一致的节奏一点一点地投入,并在一段未知的时间后获得重大回报之外,你还可以采取以下具体行动:

  1. 报名参加一个会议或聚会,目的是在那里结识一个新朋友。你负责创造自己的“运气”。
  2. 扩大你的社交网络:你可以在活动中或 LinkedIn 上轻松做到这一点。不要只关注那些拥有你想要的职位的人。
  3. 坚持做上面的事情,开始把人际关系网(认识人和交朋友)当成一项你可以提高的技能。它不是你“与生俱来”才会有的东西;任何人都可以通过练习获得。

祝你在网络投资账户中持续投入 10 美元——当你最意想不到的时候,会有好事发生!

原载于 2020 年 8 月 16 日【https://www.susanshu.com】

为什么神经网络可以逼近任何函数

原文:https://towardsdatascience.com/why-neural-nets-can-approximate-any-function-a878768502f0?source=collection_archive---------10-----------------------

具有 PyTorch 代码和可视化工具的通用逼近定理的基本概述

在本文中,我将解释通用逼近定理,并用 PyTorch 代码展示两个快速示例,以演示神经网络学习逼近函数。如果你已经知道神经网络如何工作的基础知识,请随意直接跳到代码和可视化!

很多人一听到函数这个词,就想到高中代数和 f(x)=x 之类的关系,虽然我对高中代数没什么反感(我教了两年!),重要的是要记住,功能只是从输入到输出的映射,而这些可以采取多种形式。

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

UnsplashKitti Incédi 拍摄的照片

假设你想训练一个预测一个人衣服尺码的机器学习模型。(我最近用这样的算法估算了一下我穿夹克的尺码)。输入是人的身高、体重和年龄。输出是大小。我们试图做的是产生一个函数,将一个人的身高/体重/年龄组合(一个三元组的数字)转换为一个尺寸(可能是一个连续的标量值或像 XS,S,M,L,XL 这样的分类)。

根据机器学习,我们可以通过以下步骤来实现这一点:

  • 收集具有代表性的数据(大量人群的身高/体重/年龄数据,以及他们的实际服装尺寸)。
  • 训练模型以逼近将输入映射到训练数据输出的函数。
  • 在看不见的数据上测试你的模型:给它新人们的身高/体重/年龄数据,希望它能产生一个准确的服装尺寸!

如果服装尺寸只是输入变量的线性组合,那么训练模型将会很容易。简单的线性回归可以得到下式中 a、b、c 和 d 的正确值。

size = a*height + b*weight + c*age + d

然而,我们不能假设,一般来说,输出是输入变量的线性组合。现实生活中的情况很复杂。规则有例外和特例。像手写识别和图像分类这样的任务显然需要从高维输入数据中学习非常复杂的模式。

如果有一种方法可以逼近任何函数,那不是很好吗?根据通用逼近定理,只有一个隐藏层的神经网络可以做到这一点。

神经网络概述

出于我们的目的,我们将只研究具有一个输入层、一个隐藏层和一个输出层的全连接神经网络。在我们的服装尺寸预测器的情况下,输入层将有三个神经元(身高、体重和年龄),而输出层将只有一个(预测尺寸)。在这两者之间,有一个隐藏层,有一定数量的神经元(下图中有 5 个,但实际上可能有 1024 个)。

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

网络中的每个连接(线路)都有一些可调整的权重。训练意味着找到良好的权重,使给定输入集的预测大小与真实大小之间的差异很小。

每个神经元都与下一层的每个神经元相连。这些连接中的每一个都有一定的权重。每个神经元的值沿着每个连接传递,在那里乘以权重。然后所有的神经元都向前反馈到输出层,这给了你一个结果。训练该模型包括为所有连接找到好的权重。通用逼近定理的核心主张是,对于足够多的隐藏神经元,存在一些可以逼近任何函数的连接权重集——即使该函数不是像 f(x)=x 那样可以清晰地写下来的东西。即使是一个疯狂、复杂的函数,如输入 100x100 像素图像并输出“狗”或“猫”的函数,也包含在该定理中。

非线性

神经网络能够逼近任何函数的关键在于它们将非线性融入了其架构。每一层都与一个激活函数相关联,该激活函数将非线性变换应用于该层的输出。这意味着每一层不仅仅是与前一层的某种线性组合一起工作。一些常见的非线性激活函数是 ReLU、Tanh 和 Sigmoid,如下图所示。

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

ReLU 是一个简单的分段线性函数——计算量非常小。另外两个都涉及到求幂运算,因此评估成本更高。

我们现在已经有了所有的部分,可以开始研究一个通用近似定理的例子了。为了演示这一点,我将生成随机的输入和输出集,并让神经网络学习“功能”。当然,在这种情况下,没有任何功能!但我们应该期待的是,无论如何,该模型将符合随机数据,就好像它是由某种确定性函数生成的一样。

对于本文中的演示,我使用 PyTorch 中提供的高级神经网络功能。PyTorch 库只需几行代码就可以轻松构建一个基本的神经网络。它抽象出了许多技术细节,因此您只需处理大图。

示例 1:用曲线拟合一些点

神经网络可能面临的最基本的情况之一是从一个变量到另一个变量学习函数。例如,假设 x 值代表时间,y 坐标代表某条街道的交通量。没有理由认为这是一种线性关系,峰值和谷值在一天中的不同时间点出现。

下面的代码根据正态分布生成随机点,并训练一个将 x 坐标作为输入、y 坐标作为输出的网络。有关每个步骤的更多细节,请参见代码注释。

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

基于作为训练数据生成的随机点,该模型学会了逼近一个通过所有这些点的函数。注意右边的两点,模型没有学习完美。我们可以通过运行更多的训练步骤或增加隐藏神经元的数量来解决这个问题。

示例 2:二元分类

函数不一定是你在高中代数中看到的那种“一个数进去,另一个数出来”的函数。让我们尝试一个二进制分类任务。数据点有两个特征,可以归入两个标签中的一个。也许这两个特征是纬度和经度坐标,而标签是环境污染物的存在。或者,这些特征可能是学生的数学和阅读测试成绩,标签对应于他们是左撇子还是右撇子。重要的是,模型必须从两个输入到一个输出学习一个函数,要么是 0,要么是 1。

下面的代码与前面的代码非常相似。唯一的新东西是输入层现在有两个神经元,输出层之后是 Sigmoid 激活,它将所有输出压缩到范围(0,1)内。这为我们提供了一个很好的二进制分类,其中从输出到 0 或 1 的距离也为我们提供了模型在该分类中的置信度。

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

在单位正方形内随机均匀生成的点,随机分配给标签 0(蓝绿色)和标签 1(粉红色)。你能想出一个有趣的真实世界的例子来匹配这个数据吗?

我在单位正方形中随机生成了一些点,并将其随机分配到两个类别中的一个,标记为 0 和 1。如你所见,蓝绿色和粉色之间没有单独的直线或曲线。然而,该模型能够学习输入要素(x 和 y 坐标)和输出标签(类别/颜色)之间的关系。

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

这是在给定训练数据的情况下,模型如何在单位正方形中着色。与上图中的点进行比较。

过度拟合

在我们对这些结果过于兴奋之前,让我们退一步,问一问这些结果是否真的令人满意。这两个例子都说明了机器学习中一个非常重要的现象:过拟合。当模型很好地学习了训练数据的特性,以至于不能很好地概括看不见的数据时,就会发生过度拟合。

示例 1 中,让我们假设其中一个点是错误数据收集导致的异常值。鉴于可供学习的训练数据数量如此之少,模型变得过度适应这些数据,在实际上只是噪声的地方看到了信号。一方面,实际上令人印象深刻的是,模型能够学习一个考虑到这个异常值的函数。另一方面,当将该模型应用于真实世界的数据时,这可能导致不期望的结果,在该点附近产生错误的预测。

例 2 中,模型学习了一个漂亮的分类值拼布被子。然而,请注意最靠近右下角的蓝绿色点。尽管这是唯一的一点,但它导致模型将整个右下角标记为蓝绿色。仅仅几个错误的数据点就可能严重扭曲模型。当我们尝试将模型应用于测试数据时,它可能比预期的要差得多。

为了避免过度拟合,拥有大量代表模型预期面对的样本的训练数据是很重要的。如果你正在开发一个工具来预测普通人群的衣服尺寸,不要只从你大学时代的朋友那里收集训练数据。此外,还有先进的技术来帮助减少过度拟合(例如重量衰减)。

结论

总之,神经网络是强大的机器学习工具,因为它们能够(在理论上)学习任何功能。然而,这并不保证您可以轻松找到特定问题的最佳权重!在实践中,在合理的时间内训练一个准确的模型取决于许多因素,例如优化器、模型架构、数据质量等等。特别是深度学习涉及到具有多个隐层的神经网络,非常擅长学习某些困难的任务。

我个人喜欢用小例子可视化神经网络如何工作,因为对基础工作方式有一个坚实、直观的理解有助于我掌握更高级或抽象的概念。例如,虽然我知道过度拟合的技术定义,但我自己运行这些示例帮助我在更直观的层面上真正理解了它是什么。我希望你也学到了一些东西。我欢迎您的任何反馈,感谢您的阅读!

参考

[1]用实例学习 PyTorch。https://py torch . org/tutorials/初学者/py torch _ with _ examples . html

[2]普适逼近定理。https://en . Wikipedia . org/wiki/Universal _ approximation _ theory

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值