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

原文:TowardsDataScience Blog

协议:CC BY-NC-SA 4.0

帮助我在方找到工作的资源

原文:https://towardsdatascience.com/these-are-all-the-resources-that-help-me-land-a-fang-job-452341dd6bed?source=collection_archive---------1-----------------------

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

Photo by Sharon McCutcheon on Unsplash

(我的博客里也有这个帖子)

大约在去年的同一时间,我开始准备像 FAANG 这样的大型科技公司的面试。在我的一篇帖子中,我谈到了 Leetcode 在获得这份工作中的作用。我认为把我用来实现这一目标的所有资源列出来会更有帮助。

在方的面试中,系统设计变得越来越重要,因为雇主不仅想要一个程序员,还想要一个知道如何构建可扩展系统的工程师。候选人应该了解系统的不同方面,如存储、内存、网络等资源。候选人还应该谈论在做特定决定时的权衡。搜罗系统设计面试是目前为止最好的系统设计资料。它涵盖了相当多的常见设计主题和应用理论的例子。这门课程对初学者很有用。

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

这本书实际上打开了大型科技公司面试的大门。几年前我第一次接受方的电话采访时,买了这本书。它帮助我了解了面试流程,从人力资源筛选到在线评估、电话面试到现场面试。流程因公司而异。阅读第一章给了我很好的期待,因为它的细节非常棒。

这本书不仅演示了面试过程,而且还提供了技术编码问题类型的良好覆盖面。如果你已经学习了基本的数据结构和算法,这本书非常适合你去体验一下大型技术面试中的编码问题。我最喜欢的是作者给了你一些提示,告诉你当你陷入困境时应该如何处理这个问题。此外,你应该如何在面试中得到澄清也很重要。

数据结构和算法部分也很棒。更好的是,它对发布在 github 上的问题提供了有效的解决方案。这对于系统地逐主题学习非常方便和有益。

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

如果缺乏基础的算法和数据结构,可以从网络课程开始学习。就我个人而言,我更喜欢视频之类的视觉材料。所以我总是从免费的网络课程开始。但是一旦我想深入研究,我将不得不使用算法算法是一个很好的参考,它给了你在面试中将要使用的算法的深度和广度。

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

根据公司或职位级别的不同,可能会有一轮面向对象的设计面试。即使没有专门测试 OOD 的回合,也可以从你在编码面试时写的代码中体现出来。它也能显示你有多优秀。

探索面向对象设计面试从对象设计的角度来看,有很多构建系统的例子。像“建立一个 LinkedIn”和“建立一个脸书”这样的例子会让你知道需要什么对象以及对象之间的关系。将本课程与探索系统设计面试结合起来,可以帮助你对构建系统有一个完整的了解。因此,你可能会在面试中得到一个更完整的答案。这些课程的一个优势是作者不断更新内容。

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

如果你完全是设计模式的新手,Head First Design Patterns 是一个很好的介绍。这提供了非常直接的例子,有助于快速掌握常见设计模式的概念。不同模式的覆盖率也很高。这本书可以指导你根据需求选择合适的模式。这可以为你在面试时谈论你选择的模式加分。

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

著名的设计模式:可重用面向对象软件的元素是一本帮助你编写模块化可重用源代码的经典设计模式书。

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

  • 白板前,像在真正的面试中一样说话

这是你很容易忽略的一件事。在真正的面试中,能够表达你的想法是非常重要的。这是面试官寻找的关键能力。我买了这个白板,开始在一个哥们面前讲解解决方案。我很惊讶事情会变得如此糟糕,即使我已经有了清晰的解决方案。在白板前练习肯定能提高面试技巧。你会发现这在系统设计面试中更重要。我个人更喜欢壁挂板,而不是立式板,因为壁挂墙更类似于你将得到的东西。

  • 耐心和决心

不会一帆风顺的。如果拒绝来了,不一定说明你不好。请人力资源部门反馈原因。继续申请。我去过那里。最终,你需要的只是耐心和决心。这是最重要的一块。

以前的帖子:

系统设计面试:如何设计一个系统来处理长时间运行的作业

SQL(关系数据库)还是 NoSQL?the FAANG 系统设计面试

我关于 FAANG 访谈的帖子

我关于金融和科技的帖子

从 CRUD web 应用开发到语音助手中的 SDE——我正在进行的机器学习之旅

全栈开发教程:将 AWS Lambda 无服务器服务集成到 Angular SPA 中

全栈开发教程:用运行在 AWS Lambda 上的无服务器 REST API 提供交易数据

全栈开发教程:在 Angular SPA 上可视化交易数据

强化学习:Q 学习简介

这些是你能想到的自然语言处理中最简单的数据扩充技术——它们确实有效。

原文:https://towardsdatascience.com/these-are-the-easiest-data-augmentation-techniques-in-natural-language-processing-you-can-think-of-88e393fd610?source=collection_archive---------10-----------------------

简单的文本编辑技术可以为小型数据集带来巨大的性能提升。

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

Augmentation operations for NLP proposed in [this paper]. SR=synonym replacement, RI=random insertion, RS=random swap, RD=random deletion. The Github repository for these techniques can be found [here**]**.

数据增强通常用于计算机视觉。在 vision 中,您几乎可以翻转、旋转或镜像图像,而不会有更改原始标签的风险。然而,在自然语言处理(NLP)中,情况完全不同。改变一个单词有可能改变整个句子的意思。因此,我们无法为数据扩充制定简单的规则。或者我们可以吗?

我将向您展示用于提升文本分类任务性能的EDA:EasyDATAA增强技术(有关快速实现,请参见 EDA Github 库)。EDA 由四个简单的操作组成,它们在防止过度拟合和帮助训练更健壮的模型方面做得非常好。他们在这里:

  1. **同义词替换:**从句子中随机选择 n 个不是停用词的单词。用随机选择的同义词替换这些单词。
  2. **随机插入:**在不是停用词的句子中,找到随机词的随机同义词。将同义词插入句子中任意位置。这样做 n 次。
  3. **随机互换:**随机选择句子中的两个单词,互换位置。这样做 n 次。
  4. **随机删除:**以概率 p 随机删除句子中的每个单词。

这些技术真的有用吗?令人惊讶的是,是的!虽然一些生成的句子可能有点无意义,但在数据集中引入一定量的噪声对于训练更健壮的模型非常有帮助,特别是在较小的数据集上训练时。如【本文】所示,在 5 个基准文本分类任务上,使用 EDA 在几乎所有数据集规模上都优于常规训练,并且在少量数据上训练时做得更好。平均而言,在仅使用可用训练集的 50% 时,使用 EDA 训练递归神经网络(RNN)实现了与使用所有可用数据的正常训练相同的准确性:

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

Performance on text classification tasks with respect to percent of dataset used for training. Using EDA (easy data augmentation) operations significantly outperforms normal training on small datasets.

EDA 保存了扩充句的真实标签吗?

我知道你在想。你真的可以只做这些增强操作,同时保持增强句子的真实标签吗?让我们用可视化的方法来找出…

因此,你在正面和负面产品评论上训练 RNN,然后在常规和增强句子上运行它,提取神经网络的最后一层,并使用 tSNE 获得潜在空间可视化:

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

Latent space visualization of original and augmented sentences in the Pro-Con dataset.

事实证明,扩充句子的潜在空间表征紧紧围绕着原始句子的潜在空间表征!这表明生成的扩充句子很可能保持与它们的原始句子相同的标签。

这些操作都管用吗?

现在,让我们来看看每种数据扩充技术各自的效果。同义词替换有意义,但是其他三个操作实际上有什么作用吗?我们可以做一个测试,将每种技术分离出来,并在不同程度上使用它们,α是一个参数,大致意思是“句子中被改变的单词的百分比”:

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

Average performance gain of EDA operations over five text classification tasks for different training set sizes. The α parameter roughly means “percent of words in sentence changed by each augmentation.” SR: synonym replacement. RI: random insertion. RS: random swap. RD: random deletion.

您可以看到,对于小型数据集,性能提升特别大,约为 2–3%,对于大型数据集,性能提升不大(约为 1%)。然而,所有技术,如果在合理的增强参数下使用(不要改变句子中超过四分之一的单词),可以帮助训练更鲁棒的模型。

放大多少?

最后,我们应该为真实句子生成多少个扩充句子?这个问题的答案取决于数据集的大小。如果你只有一个小的数据集,过度拟合的可能性更大,所以你可以生成大量的扩充句子。对于较大的数据集,添加过多的扩充数据可能没有帮助,因为当存在大量真实数据时,您的模型可能已经能够进行概化。该图显示了每个原始句子生成的扩充句子数量方面的性能提升:

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

Average performance gain of EDA across five text classification tasks for various training set sizes. n_aug is the number of generated augmented sentences per original sentence.

现在怎么办?

我们已经证明,简单的数据扩充操作可以显著提高文本分类的性能。如果您正在一个小数据集上训练一个文本分类器,并且正在寻找一种简单的方法来获得更好的性能,请随意在您的模型中实现这些操作,或者从 Github 中提取 EDA 的代码。你可以在这篇文章中找到更多的细节。

[## jasonwei20/eda_nlp

用于提高文本分类任务性能的简单数据扩充技术。- jasonwei20/eda_nlp

github.com](https://github.com/jasonwei20/eda_nlp) [## EDA:提高文本分类性能的简单数据扩充技术

我们提出 EDA:简单的数据扩充技术,用于提高文本分类任务的性能。EDA 包括…

arxiv.org](https://arxiv.org/abs/1901.11196)

欢迎在我的【个人网站】上阅读我的作品,并给我发邮件。祝你好运!

它们都失败了:所有新数据科学家最容易陷入的陷阱

原文:https://towardsdatascience.com/they-all-fall-down-the-most-common-pitfall-all-new-data-scientists-fall-for-206bee548735?source=collection_archive---------20-----------------------

几年前,面向数据科学家的专门培训课程很少,行业往往由来自三个共同领域(计算机科学、物理科学和数学)的人主导,他们通过自学转向了数据科学。

快进到现在,快速搜索一下谷歌就会发现各种各样的专业课程。微软有自己的学习路线,使用 T2 的 edX 课程,一些网站提供为期一年的培训(收费),并“保证”你在培训结束后有一份工作,最重要的是许多大学都提供为期一年的数据科学硕士课程。

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

Photo by Magic Keegan on Unsplash

有问题吗?

当然不是!事实上,我认为它可能非常好。有些培训课程不会给你提供真正好的体验,纯粹是利用对数据科学家的需求,但公认的学术和行业机构正在推广和开发课程,这意味着初露头角的数据科学家进入该领域的压力较小。

感觉有个“但是”要来了

然而,这些课程都很短。看看 most 的课程内容,会发现教授的技能范围令人印象深刻,但他们只有一年的时间来教你一名数据科学家的所有技能(通常是九个领域和一个为期三个月的项目),这意味着尽管你接触并学习了一系列技能,但只有很短的时间来积累经验。

我还发现,有一个领域似乎没有被涵盖,那就是申请人在技术面试中一直没有注意到的领域。我的面试技巧不是让申请人背诵数学或算法如何工作的技术细节,因为这只会让你俩成为对同一件事最了解的人,也可能是运气。我有一个糟糕的长期记忆,这也缓和了我的情绪。问我两年前用过的一个统计数据,我不会背诵数学,但我会知道它的作用以及去哪里学习更多。这很适合我,也适合你希望仔细检查和查找你的计算的任何关键应用程序(没有人会根据某人的记忆将火箭送入太空)。基本上,给一个足够聪明的人足够的时间,他们可以学习背诵给你,但我认为这并不倾向于测试什么是一个好的数据科学家。

优秀数据科学家的特质是:

  1. 至少在高层次上了解数据科学中存在什么。
  2. 能够向非专家解释?
  3. 出色的问题解决能力。

这是我在面试时试图测试的三个方面。但是我说的这些区域是什么意思呢?

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

Photo by Kristopher Roller on Unsplash

1.知道存在什么

“你这是做了什么?”

“哦,我们想计算这个的传播,所以我创建了一些代码来引导一个答案。好诶?”

“你知道这个有一行计算吗?”

这一点我在同行评审工作时见过一次又一次。当工具已经存在时,花费了大量的时间和精力来重新发明轮子。仅仅掌握最新的技术并知道它可以用来做什么,可能是你大脑档案柜中的一个重要工具,而不是详细了解每一个工具(如果你想有时间做其他事情,这实际上是不可能的)。

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

Photo by Priscilla Du Preez on Unsplash

2.解释事情

最容易与之讨论数据科学的人是另一位数据科学家。他们往往很快理解你在做什么,给你建设性的批评。他们倾向于理解,在构建最终解决方案之前,您将花费 80%的时间来获取、理解和探索数据。谁不会呢?一般来说,付钱给你的人。高管、客户和顾客往往不是数据科学专家,因此你需要能够以更容易理解的方式解释事情,并传达重要信息。

这有时是一个学术背景很高的人(我可以保证这一点)在没有实践的情况下也能应付的。请某人解释一个神经网络,使用“特征”和“反向传播”这些词而不解释它们是不会有帮助的,而且会让人们感到难堪(人们不喜欢觉得自己很愚蠢)。

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

Photo by NeONBRAND on Unsplash

3.问题解决

数据科学在很大程度上依赖于如何处理给你的问题,让你得到满意的解决方案。你看着数据,你理解它的来源和意义,然后你看着创造一个解决方案,充分涵盖你已经设置的问题(理解确切的问题本身是另一种艺术)。

对我来说,这种以可理解和有条不紊的方式解决问题的能力至关重要。通过这样做,你可以在团队中与志同道合的人更好地合作,你会更好地完成任务。要做到这一点,最好的开始方式就是问问题,而且要问很多问题!

太好了。那么陷阱是什么呢?

假设我是你的新老板,我告诉你,我已经检查了我们的数据,我们建立了一个模型,但它不起作用,这就是为什么他们雇用你来修复它。你是做什么的?

几乎每个人都会浏览给他们的代码并修改模型,可能会在这里或那里调整一些位,同时阅读所有的评论。这是新的数据科学家容易摔倒的地方,他们沉迷于代码和定义模型的最后几行,但他们忽略了最重要的信息来源之一,老板。你可以问他们各种各样的问题,关于他们做了什么和覆盖了什么,如果你问得足够多,也许你会发现他们使用的数据不是他们应该使用的。

这是一个陷阱,新的数据科学家总是要解决数据中有答案的问题。这意味着他们从不考虑他们使用的数据是否正确。在我设置的问题中,我将使用两个数据集,一个用于生产,另一个用于不同的培训。这应该代表这样一个事实,即他们的数据来自不同的领域(可能一个来自向所有员工发出的问卷,另一个来自实际客户),并且不具有代表性,这就是为什么该模型在开发中有效,但在生产中无效。

听起来难以置信?我在现实中不止一次发现这一点,因为在开始时没有数据可用,他们收集任何旧数据,并且以一种不受控制的方式,这意味着它永远不能代表最终的真实数据。

拿走

该数据是否适合该工作?

如果您是数据科学的新手,只需考虑有时您的数据来自哪里,以及它是否是解决问题的正确数据。如果你参加了任何较新的数据科学课程,这可能是你以前从未想过的问题,它将让你在同等经验的同龄人中领先一步。

对任何事情都要提问,甚至对人也要提问。听起来很傻,但是你自己想过这个问题吗?

**注:**这当然是我自己的看法,有很多流派。仅仅因为这是我发现的工作,并不意味着这是唯一的解决方案或最好的一个。

我学到的关于随机森林机器学习算法的东西

原文:https://towardsdatascience.com/things-i-learned-about-random-forest-machine-learning-algorithm-346554fba37c?source=collection_archive---------25-----------------------

第一课概述:来自 Fast.ai 的机器学习课程随机森林介绍

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

Forest in Autumn (Image by Valentin Sabau from Pixabay)

几个月前,我在悉尼参加了一个聚会,会上, fast.ai 向我介绍了一个在线机器学习课程。那时我从未注意过它。本周,在参加一个卡格尔竞赛,寻找提高分数的方法时,我又碰到了这个课程。我决定试一试。

这是我从第一堂课中学到的东西,这是一个 1 小时 17 分钟的关于 随机森林 介绍的视频。

虽然讲座的主题是随机森林,但 Jeremy(讲师)提供了一些一般信息以及使用 Jupyter 笔记本的提示和技巧。

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

Laptop Screen with code (Photo by Clément H on Unsplash)

杰里米谈到的一些重要的事情是,数据科学不等同于软件工程。在数据科学中,我们建立模型的原型。虽然软件工程有自己的一套实践,但是数据科学也有自己的一套最佳实践。

模型构建和原型制作需要一个交互式的环境,并且是一个迭代的过程。我们建立一个模型。然后,我们采取措施改善它。重复,直到我们对结果满意为止。

随机森林

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

Photo of Forest (Photo by Sebastian Unrau on Unsplash)

我听说过随机森林这个术语,我知道它是现有的机器学习技术之一,但说实话,我从未费心去了解更多关于它的知识。相反,我总是渴望了解更多关于深度学习技术的知识。

从这个讲座中,我了解到随机森林确实很牛逼。

它就像一种通用的机器学习技术,可用于回归和分类目的。这意味着你可以使用随机森林来预测股票价格,并对给定的医疗数据样本进行分类。

一般来说,随机森林模型不会过拟合,即使它过拟合,也很容易阻止它过拟合。

随机森林模型不需要单独的验证集。

随机森林只有很少的统计假设。它既不假设您的数据是正态分布的,也不假设关系是线性的。

它只需要很少的特征工程。

因此,如果你是机器学习的新手,这可能是一个很好的起点。

其他概念

维数灾难是一个概念,数据的特征越多,数据点就越分散。这意味着两点之间的距离意义要小得多。

杰里米保证,在实践中,情况并非如此,事实上,你的数据拥有的特征越多,就越有利于训练模型。

没有免费的午餐定理是一个概念,没有一个模型可以完美地适用于任何类型的数据。

提示和技巧

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

Little girl doing a magic trick (Photo by Paige Cody on Unsplash)

  1. 你可以通过包含**来痛击 Jupyter 笔记本中的命令!**在命令面前。
!ls
!mkdir new_dr

2.Python 3.6 中追加字符串的新方法。

name = 'Sabina'
print(f'Hello {name}')no_of_new_msg = 11
print(f'Hello {name}, you have {no_of_new_msg} new messages')

3.不用离开 Jupyter 笔记本就可以了解 python 函数。用**?**在函数名前获取其文档。

from sklearn.ensemble import RandomForestClassifier?RandomForestClassifier.fit()

4.如果想看源代码,可以用 double **?**在函数名前面。

from sklearn.ensemble import RandomForestClassifier??RandomForestClassifier.fit()

5.使用 to_feather 方法保存处理过的数据集,将数据集以其存储在 RAM 中的格式保存到磁盘中。您可以使用 read_feather 方法从保存的文件中读回数据。注意,为了使用这些方法,你需要安装 羽毛格式 库。

import pandasdf = pd.DataFrame()
df.to_feather('filename')saved_df= pd.read_feather('filename')

如果你有兴趣深入这个话题,这里有一个到讲座视频的链接。

请在下面留下你的想法。如果你确实想去看看这门课程,请告诉我你是怎么去的。

点击这里 阅读我其他关于 AI/机器学习的帖子。

以下是该主题的一些进一步阅读材料:

[## 面向程序员的深度学习——36 小时免费课程

点按视频右下角的方块以全屏观看。有关本课的更多信息,请访问…

course18.fast.ai](http://course18.fast.ai/lessonsml1/lesson1.html) [## 了解随机森林

该算法如何工作以及为什么如此有效

towardsdatascience.com](/understanding-random-forest-58381e0602d2)

快速高效地分析大型复杂数据集的秘诀是什么?约束。

原文:https://towardsdatascience.com/things-i-learned-in-my-phd-1-productive-data-analysis-through-constraint-4bc28de8b149?source=collection_archive---------23-----------------------

TL:DR:有时候你有太多的数据,你可能会浪费几个小时去探索,而没有回答重要的问题。我分享了关于如何通过约束自己来有效地分析大型复杂数据集的 5 个技巧。

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

The joys and stresses of too much data. Photo is me!

如今,研究人员经常能接触到大量数据。你可能正在分析有数百个变量和数万名受访者的欧洲社会调查。或者你自己收集了大量的数据;你可以做一项研究,参与者做大量的测试,给你留下每个人大量的数据。

你如何着手分析这美丽的混乱?

好吧,我来告诉你什么 要做:

一头扎进去,开始关联、绘图和构建多层模型,然后意识到你可能必须控制一些变量,然后你得到一个结果,但它会随着协变量 B 和 C 而消失,但不是当你也添加 A 时,然后你发现一些看似稳健的东西,但你现在已经测试了 15 种东西,所以可能是假阳性,所以你了解交叉验证,我到底在这里做什么,什么时候变成星期五了?!?

但是说真的,有时候我们的数据比我们知道的要多。还有更糟糕的问题,我承认,但这一直是我读博期间的一个问题。我花了一整天的时间在大数据集中挖掘。抛开 p-hacking 的问题(我通常会尝试验证在新数据集上发现的任何结果,您也应该这样!),这真的能吃进你的时间。

当你的目标是“从里到外了解数据”时,你也可能会陷入这种困境。我们经常听到统计学家建议我们做更多的探索性数据分析,绘制我们的数据等等。这很有价值,但没必要了解欧洲社会调查的每一个角落。看到一个模型如何被 10 个不同的与因变量几乎没有关系的协变量所影响通常是没有意义的。你必须在某个地方划清界限,说“够了”!

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

Graph by the author

我非常支持这样一种观点,即对我们选择的约束可以是一种解放。如果这听起来自相矛盾,这些伟大的文章[ 这里这里将解释它。我发现,在数据方面,选项越多并不总是越好。

解决方法

1。被问题驱动 在看你的数据之前,决定你的主要问题是什么。这些是你将要开始回答的问题,然后你会停下来(至少直到你写完论文/章节)。有哪些问题一旦得到解答就可以发表?不是太愤世嫉俗,但在学术界,论文是游戏的名字。论文通常不是装订在一起的有趣观察的集合。他们很专注,你也应该如此。

以令人满意的方式(即通过检查结果的稳健性,排除替代解释)完成回答一个纸张大小的问题所需的所有分析,然后停止。数据中的所有其他问题都不重要或不太重要。你可以随时回来找他们。

2。与同事或实验室成员讨论数据 通过你的数据和分析与他们交谈会在你的头脑中澄清它。通过向他人解释来加深理解的想法通常被称为费曼技巧,我是它的忠实粉丝。他们也许能够建议数据中什么是有趣的,什么是不有趣的。

记住,你是在努力创造对你的领域有价值的知识。因此,询问该领域的一些成员是否认为你的分析有价值是有意义的。

3。详细记录你所做的尝试 有这么多的 t 检验和回归模型,你可能会忘记你之前做过的一些分析,然后再次运行它!此外,有时模型不会单独产生洞察力,而是与其他模型结合使用。

比如你运行模型 A,预测器 A1 显示一个你不理解的效果。所以你可以看到 A1 是否与其他一些东西相关,这也许可以解释它。你建造了 B 型车和尤利卡!现在记录你做了什么。在进入下一个测试之前,解释每一个测试。不要不管三七二十一就去做测试,而不去想它们意味着什么。为了好玩而运行测试是发现假阳性的好方法。如果你做笔记,并在过程中解释发生了什么,那么每一次测试都会真正教会你一些关于数据的东西。

4。给分析设定一个时间限制 给自己设定一个完成分析的时间。截止日期,即使是自己设定的,也有助于理清思路。有几年时间读博士不是浪费时间的借口。过了这段时间没有完成的数据将不得不等待另一天。如果你错过了一些重要的东西,这没什么大不了的,因为你的主管/同事/最终论文的评审员会找到他们。当你有更多的时间时,你甚至可以回到数据集,花几天时间研究它。这也具有返回到刷新的数据的优点。给自己一个时间限制。不要只是悠闲地在数据中徘徊。

5。预注册 以一种正式的方式约束你要做的分析。在看数据之前,写下你要做的分析。Aspredicted 是一个很好的工具,可以帮助你做到这一点。预注册还有很多其他的原因:谷歌一下,阅读这篇文章,或者向当地的开放科学方法警察询问更多信息(如果你在曼彻斯特大学,那很可能就是我!).

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

结论

数据是美丽的,许多数据是崇高的,但要警惕陷阱。希望我学到的教训对你有用!和我所有的博客帖子一样,如果其他人指出愚蠢的论点、拼写错误或说了我认为对其他人有价值的话,我会更新它。干杯!

如果你喜欢这篇文章,请在 Twitter 上关注我

他们在 Python MOOCs 介绍数据科学中没有(但应该)涉及的内容

原文:https://towardsdatascience.com/things-they-dont-but-should-cover-in-intro-data-science-with-python-moocs-c28550bb6c27?source=collection_archive---------19-----------------------

如果你正在读这篇文章,你可能已经上过一些在线课程,(有时被称为 MOOC),题目听起来像是“Python 数据科学导论”这些课程中有一些东西,是这些课程中没有涵盖的,我认为应该涵盖。

在大多数课程中,你要么被告知下载 Anaconda,要么演示如何下载。然后他们会讲解使用 Jupyter 笔记本的基本知识,然后向您展示如何使用 pandas/numpy/sk learn/matplotlib 的组合。虽然这一切都很好(这些是数据科学家的基本技能),但入门课程中缺少一些东西,这些东西会使您的数据科学项目更干净、更成熟、更专业。

管理您的环境和安装软件包

如果你想做多个项目,你必须关心环境。假设你有两个项目,都需要熊猫和 sklearn,只有一个需要 keras。第一个项目需要 pandas(版本 0.24.2),第二个项目需要 pandas(版本 0.23.1)。使用 keras 的项目必须使用 Python 3.6,但另一个项目必须使用 Python 3.5。一个环境(“虚拟环境”的缩写)将帮助您管理这些依赖关系(依赖关系是其他包所依赖的包)。

首先让我们创造一个环境。我们将在 anaconda navigator 中通过单击 Environments 选项卡中的“Create”按钮来实现这一点。

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

接下来,选择您想要使用的 python(和/或 R)版本,并为您的环境选择一个名称,我选择了“test _ enviornment”

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

你现在有两个环境,一个叫 base,你一直都有。另一个是您刚刚创建的。现在要安装一个包,你需要进入命令行。要在特定的环境中安装软件包,您需要首先进入那个环境。这可以从 Anaconda Navigator gui 中完成,但是能够从命令行控制您的环境是非常有用的。使用“conda activate[environment-name]”切换到新环境。现在,您应该在命令提示符的括号中看到您的环境的名称。

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

现在要在这个环境中安装一个特定版本的包,我们需要使用 pip。Pip 代表“pip 安装包”,可以从命令行使用。键入“pip install pandas==0.24.2”来安装 pandas 版本 0.24.2。

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

使用 API

每个数据科学项目都需要数据。在我见过的大多数数据科学 MOOCs 入门课程中,你会得到一个 csv,在这个 CSV 中,你用熊猫读取你的数据。然后你继续你的项目。在现实世界中,大多数数据不会以 csv 的形式提供给你。API 允许您从某个来源请求数据。我将带你了解如何从打开电影数据库发出请求。

首先从 OMDb 请求一个 API 密匙,这是你想要保密的。如果有人拥有您的 API 密钥,他们可以像您一样与 API 进行交互,如果您拥有敏感数据,这可能会很糟糕。您的密钥将通过电子邮件发送给您,您需要回复电子邮件来激活它。

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

我们将需要使用 python 中的请求库和 json 库。这两个库都是 Python 标准库的一部分,所以不需要从命令行安装它们。只需在你的笔记本/程序顶部添加“导入请求”和“导入 json”即可。

与 API 通信有 4 个基本函数。

  • GET:用于获取数据
  • POST:用于发送数据
  • 上传:创建或更新资源
  • 删除:用于删除资源

我们将只使用 get 方法。我们对所有包含 API 密钥的请求使用相同的基本 url。我通常把它保存在一个叫做 base 的变量中。在“&”后面包括您想要的参数和值。查看 API 文档,了解所有可能的请求和参数。以下是我们在请求中可以做出的一些选择。

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

下面是一个请求电影《钢铁侠》数据的示例。用加号替换所有空格。最后,我们使用。json()将我们从请求中获得的数据转换成 python 字典。现在,您可以通过引用它们的键从字典中获取所需的值。该词典中可能嵌套了其他词典或列表。

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

希望这为您提供了足够的信息,让您开始从入门课程过渡到完成数据科学项目。完成项目是学习任何编程概念的最好方法,我鼓励你找到你感兴趣的东西,并开始为之努力。

使用 Julia 进行机器学习之前需要知道的事情

原文:https://towardsdatascience.com/things-to-know-before-using-julia-for-machine-learning-487744c0b9b2?source=collection_archive---------13-----------------------

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

Julia 是一种高级动态编程语言,它本身有一些有趣的特点和特性,这使它成为一种真正有趣且非常独特的语言,值得学习和利用。作为一名数据科学家,没有什么比学习一种新的编程语言来编写人工智能更令人兴奋的了。但是在 Julia 中有一些重要的事情需要注意,有些事情你应该在尝试使用它之前就知道。

让这句格言安息吧。

“像 Python 一样走路,像 C 一样奔跑”

我认为关于 Julia 的许多误导性的事情之一是一个源于语言的想法的术语,并且不一定是没有根据的。然而,我相信这个术语给这门语言的新来者提供了很多不准确之处,因为 Julia 的经常用户会说这绝对是对 Julia 的不准确描述。朱丽亚确实是一个特立独行的人。不仅仅是因为它不同的书写语言,还因为它有许多有趣的,有时甚至是令人震惊的怪癖。

首先,Julia 的语法有点类似于 Python,但这种相似性可以在大多数编程语言中找到,尤其是统计语言。如果我,作为一个相当有经验的程序员,必须将语法与任何特定的语言进行比较,我会说微软的 Basic。没错,我们六岁时写的那种愚蠢的语言类似于麻省理工学院新发现的开源编程语言。这也没有太多的注意事项,真的就是这么简单。我对此最大的支持因素可能是 Julia 中函数和方法的实现方式。不相信我?看一看一个小小的对比:

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

A Function from Microsoft Basic

这是用 Julia 写的同一个函数。(注意我忘了退货)

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

A Function from Julia

不是面向对象的?

没错,Julia(技术上)不是面向对象语言。对我来说,这是茱莉亚最大的怪癖,也可能是学习茱莉亚最大的学习曲线。所有的方法都包含在 Julia 库或模块中,不是构造函数。

比如像 model.fit()函数这样的东西,在 Julia 里是不可以存在的。相反,通常模型有一个 fit 方法,该方法采用一个构造的数据类型,该数据类型通常包含更多的数据。因为我为 Julia 写了一个机器学习和统计模块,你可以看看这里的我将使用它的源代码来解释这在实践中是什么样子,以及到底发生了什么。这里是一个样本 笔记本 它概述了使用测试,火车分裂,并拟合一个模型 使用车床在朱莉娅

mutable struct meanBaseline
    y :: AbstractArray
end

这些行是模型的构造函数,只需调用一个与之相等的变量,

y = 1,5,3,6,8
model = models.meanBaseline(y)

这个模型中没有 X 的原因是因为它只是一个均值基线模型,它将为我们提供连续特征的基线精度,其他模型完全相同,只是有一个 X。

因此,通常在面向对象的语言中,如 Python、 在拟合我们的模型后,我们会使用 model.fit(x,y)方法,但是因为 Julia 中的构造函数不包含方法,所以我们必须在模块的根处使用单独的方法来拟合我们的模型。为此,我使用条件来确定输入模型的()类型。

function predict(m,x)
if typeof(m) == TurtleShell
        y_pred = pred_turtleshell(m,x)
    end    
if typeof(m) == majBaseline
        y_pred = pred_catbaseline(m,x)
    end    
if typeof(m) == LinearRegression
        y_pred = pred_linearregression(m,x)
    end    
if typeof(m) == meanBaseline
        y_pred = pred_meanbaseline(m,x)
    end    
return(y_pred)
end

因此,预测模型看起来像这样:

models.fit(model,xtrain)

这就产生了拟合模型对 x 的预测值。

所以在我看来,对于数据科学来说,这是一个有趣的命题。有时不得不为每件事调用一个方法可能有点烦人,但对我来说这是受欢迎的,因为它非常不同而且有趣。

对这类东西的担心只是它对一个典型的数据科学家有多大价值,特别是对于像投资组合或任何严肃的项目这样的东西。不面向对象意味着 Julia 可能需要使用 PyCall 才能接近 Python 的通用性。即使这样,在 Julia 中创建任何类型的应用程序肯定也不是万无一失的方法。相对于 R,甚至 Scala,Python 最伟大的事情之一就是它有这么多奇妙的库可以做任何事情。你可以用 DjangoFlask 开发 web 应用程序,这些应用程序与 SQL 数据库一起工作,用多种框架为桌面计算机和移动设备开发应用程序。这变得更容易,主要是因为 Python 是面向对象的。我很想知道 Julia 是否会把它带到任何地方,或者让它保持原样。

这些缺点可能有点关键,因为这并不是这种语言的真正目的。我喜欢把它看作是 Python 和 Spark 之间的桥梁。它在精确操作方面非常出色,像 Python 一样简单,是 Python 的机器学习基础,但具有 Spark 的大数据处理能力。在开始 Julia 数据科学之旅时,这绝对是需要注意的事情。

关闭中

值得注意的是,Julia 实际上仍处于起步阶段,刚刚走出 1.0 版本。当使用 Julia 时,经常会感觉很陌生,有点过于开源,如果你明白我的意思的话。它给人一种精致、清新的感觉,但与此同时,它可能会让人觉得有点滑稽,尤其是与那些已经被搁置了 15 年以上的语言相比。

由于从 1.0.4 版本开始,Julia 的功能不够全面,这无疑会给 Julia 的未来带来更多的变化。我喜欢思考 Python 和 C++的早期版本,这是一个缓慢而艰苦的过程,但是随着越来越多的人开始使用、喜爱和接受 Julia,它可能会作为数据科学的标准工具被更广泛地接受。

这就是为什么我一直在为 Julia 开发预测建模和统计库,用更强大的文档和具有简单输入和输出的简单函数使转换变得更容易。我真的很兴奋看到朱莉娅在未来几年将走向何方,谁知道呢?也许 5 年后我们的 Python 帽子就不会这么缝上了,我们会用 Julia Flux 代替 Python 张量。无论如何,对于预测建模、可视化、统计和机器学习来说,Julia 绝对是一个令人敬畏的独特工具。

认为你的数据不同

原文:https://towardsdatascience.com/think-your-data-different-ddc435f70850?source=collection_archive---------14-----------------------

了解 node2vec 如何工作,以及它捕获了哪些 word2vec 没有捕获的信息——包括案例研究

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

在过去的几年中,深度学习(DL)已经成为许多领域应用的主要使能因素,例如视觉、NLP、音频、点击流数据等。最近,研究人员开始成功地将深度学习方法应用于社交网络、推荐系统和生物学等领域的图形数据集,这些领域的数据本质上是以图形方式构建的。

那么图形神经网络是如何工作的呢?我们为什么需要它们?

深度学习的前提

在涉及图形数据的机器学习任务中,我们通常希望以某种方式描述图中的每个节点,以允许我们将其输入到某种机器学习算法中。如果没有 DL,人们将不得不手动提取特征,例如节点拥有的邻居数量。但这是一项费力的工作。

这就是 DL 的闪光点。它自动利用图的结构来提取每个节点的特征。这些特征被称为嵌入。

有趣的是,即使您完全没有关于节点的信息,您仍然可以使用 DL 来提取嵌入。图的结构,也就是连接模式,包含了可行的信息。

那么我们如何利用这个结构来提取信息呢?图中每个节点的上下文真的能帮助我们吗?

从上下文中学习

一种仅使用上下文提取实体信息的著名算法是 word2vec 。word2vec 的输入是一组句子,输出是每个单词的嵌入。与文本通过单词周围的单词描述每个单词的上下文类似,图形通过相邻节点描述每个节点的上下文。

在文本中,单词以线性顺序出现,而在图表中却不是这样。相邻节点之间没有自然的顺序。所以我们不能用 word2vec…还是可以?

像一个坏蛋数学家一样还原

我们可以将数据的图形结构简化为线性结构,这样图形结构中编码的信息就不会丢失。这样做,我们将能够使用好的旧词 2vec。

关键点是在图中执行随机行走。每一步从一个随机节点开始,执行一系列的步骤,每一步都到一个随机的邻居。每一次随机游走都形成了一个可以馈入 word2vec 的句子。这个算法叫做 node2vec 。过程中还有更多细节,你可以在原创论文中读到。

个案研究

Taboola 的内容推荐系统收集了大量的数据,其中一些可以用图形方式表示。让我们检查一种类型的数据,作为使用 node2vec 的案例研究。

Taboola 推荐出版商网站上显示的 widget 中的文章:

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

每篇文章都有命名的实体——由标题描述的实体。例如,项目“地球上最可爱的狗”包含实体“狗”和“星球”。每个命名实体可以出现在许多不同的项目中。

我们可以按如下方式使用图来描述这种关系:每个节点将是一个命名实体,如果两个命名实体出现在同一项中,则两个节点之间将有一条边:

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

既然我们能够以图形化的方式描述我们的数据,让我们运行 node2vec,看看我们可以从数据中了解到什么。你可以在这里找到工作代码

在学习节点嵌入之后,我们可以将它们用作下游任务的特征,例如 CTR(点击率)预测。虽然它可能有利于模型,但很难理解 node2vec 学到的品质。

另一种选择是使用 K-means 将相似的嵌入聚类在一起,并根据相关的聚类给节点着色:

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

酷!node2vec 捕获的集群似乎是同质的。换句话说,图中彼此靠近的节点在嵌入空间中也彼此靠近。以橙色集群为例——它的所有命名实体都与篮球有关。

你可能想知道使用 node2vec 比传统的图形算法有什么好处,比如社区检测算法(例如,格文-纽曼算法)。捕捉每个节点所属的社区肯定可以使用这样的算法来完成,这没有什么错。实际上,这正是特征工程。我们已经知道 DL 可以节省您精心制作这些功能的时间。那么为什么不享受这个福利呢?我们还应该记住,node2vec 学习高维嵌入。这些嵌入比仅仅是社区归属要丰富得多。

采取另一种方法

在这个用例中使用 node2vec 可能不是第一个想到的想法。有人可能会建议简单地使用 word2vec,其中每个句子都是单个项目中命名实体的序列。在这种方法中,我们不将数据视为具有图形结构。那么这种有效的方法和 node2vec 有什么区别呢?

如果我们仔细想想,我们在 word2vec 方法中生成的每个句子都是我们之前定义的图表中的一个环节。node2vec 还定义了同一个图上的遍历。所以它们是一样的,对吗?让我们看看通过 word2vec 方法得到的集群:

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

现在,“basketball”集群不那么同质了——它包含橙色和蓝色节点。例如,命名实体“Basketball”是橙色的,而篮球运动员“Lebron James”和“Kobe Bryant”是蓝色的!

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

但是为什么会这样呢?

在这种方法中,图中的每个遍历仅由出现在单个项目中的命名实体组成。这意味着我们被限制在从起点到终点的距离不超过 1 的步数。在 node2vec 中,我们没有这个限制。由于每种方法使用不同种类的行走,学习嵌入捕获不同种类的信息。

为了使它更具体,考虑下面的例子:假设我们有两个项目-一个具有命名实体 A、B、C,另一个具有 D、B、e。这些项目导致下面的图形:

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

在简单的 word2vec 方法中,我们将生成以下句子:[A,B,C]和[D,B,E]。在 node2vec 方法中,我们也可以得到类似于[A,B,E]的句子。如果我们将后者引入训练过程,我们将了解到 E 和 C 是可互换的:前缀[A,B]将能够预测 C 和 E。因此,C 和 E 将获得相似的嵌入,并将聚集在一起。

Takeway

使用正确的数据结构来表示数据非常重要。每种数据结构意味着不同的学习算法,或者换句话说,引入了不同的归纳偏差。

识别您的数据有一定的结构,因此您可以使用正确的工具来完成这项工作,这可能是一项挑战。

由于如此多的真实世界数据集自然地表示为图形,我们认为图形神经网络是我们作为数据科学家的工具箱中的必备工具。

原载于由我和 佐哈尔·科马罗夫斯基

想着自学机器学习?提醒自己这 6 件事

原文:https://towardsdatascience.com/thinking-of-self-studying-machine-learning-remind-yourself-of-these-6-things-b55a5f2b6c7d?source=collection_archive---------2-----------------------

我是一名自学成才的机器学习工程师,如果我重新开始,我会这样告诉自己

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

Where most of my self-study takes place. Photo from: Daniel Bourke on YouTube.

视觉上学得更好?YouTube 上有这篇文章的视频版本

我们在澳大利亚举办了一个机器人会议,现在是提问时间。

有人问了个问题。

“我如何从不同的背景进入人工智能和机器学习领域?”

尼克转过身,叫着我的名字。

“丹·伯克在哪里?”

我在后台和亚历克斯聊天。我走过去。

“他在这里,”尼克继续说,“丹来自健康科学背景,他学习营养学,然后驾驶优步,在网上学习机器学习,现在作为机器学习工程师与马克斯·凯尔森一起工作了一年。”

尼克是布里斯班科技公司 Max Kelsen 的首席执行官和联合创始人。

我站着,一直听着。

“他在网上记录了他的旅程,如果你有任何问题,我相信他会很乐意帮忙。”

问题问完了,我回到了食物上。

Ankit 过来了。他告诉我他正在进行的项目,该项目使用机器学习来更好地理解学生的学习。他综合了课堂出勤率、在线学习门户花费的时间、测验结果以及其他一些东西。他甚至建立了一个前端门户网站来与结果互动。

Ankit 的作品启发了我。这让我想做得更好。

然后又有几个人开始过来问如何进入机器学习的问题。都来自不同的领域。

这是最难的部分。我仍然认为自己是一个初学者。

但是最好的导师是比你年长 1-2 岁的人。一个刚刚经历过你将要经历的人。再久一点,建议就会变得模糊。你想要新鲜的。

我哥哥正在研究机器学习。以下是我一直对他说的话(还有我自己,如果我要重新开始的话)。

a)获得一些 Python 基础知识(3-4 个月)

语言并不重要。可能是 R,Java,Python,随便什么。重要的是选择一个并坚持下去。

如果你是初学者,你会发现使用 Python 很难出错。

如果你想进入应用机器学习领域,代码是必修课。

从网上选择一门基础课程,坚持几个月。如果它同时面向数据科学教学,则加分。DataCamp 在这方面非常出色。

有时会很难,但这是关键。学习编程语言就像同时学习另一种语言和另一种思维方式。

但是你以前做过。记得你三岁的时候吗?大概不会。但是你周围的人都在使用你从未听过的词汇和声音。过了一段时间,你也开始使用它们。

b)当你还没准备好的时候就开始做东西

尽快应用你所学的知识。

不管你完成了多少门课程,你永远不会 100%准备好。

不要被引诱去完成更多的课程作为能力的标志。

如果我回到过去重新开始,这是我要改变的一件事。

找一个你自己的项目去做,从错误中学习。

回到三岁的自己。你说的每三个字都是错的。没有句子结构,也没有语法。一切都浮出水面了。

c)外面有很多,所以减少混乱

外面有很多课程。他们都很棒。

很难找到不好的。

但问题是。既然有这么多,可能很难选择。另一个可以阻止你的陷阱。

为了解决这个问题,我设立了自己的人工智能硕士学位。我自己的定制赛道。

想抄就抄吧。但是我鼓励你花几天时间做自己的研究,看看什么最适合你。

作为提醒,我发现最符合我日常工作的三个资源是:动手机器学习书籍fastai 机器学习课程和 Coursera 上的应用数据科学与 Python 课程。

在你有了几个月的 Python 经验之后,把这些收藏起来。

d)研究是必要的,但如果你不能应用它,那就毫无意义

你会看到每天都有关于新的机器学习方法的文章和论文出现。

别理他们。

没有办法跟上他们,这只会阻碍你打好基础。

大多数最好的机器学习技术已经存在了几十年。发生变化的是计算能力和数据可用性的提高。

不要被新事物分散注意力。

如果你刚开始,坚持先打好基础。然后根据项目需要扩展你的知识。

e)每天一点

3 岁的你是学习机(机器学习者?).

在几年的时间里,你从不说话变成了和已经说了几十年的人说话。

怎么会?

因为你每天都练习一点。

然后复利就起作用了。

每天好 1% =年底好 3700%。

如果你错过了一天,没关系,生活发生了。能恢复就恢复。

很快你就会开始说数据语言了。

f)不要因为不知道某事而责备自己

“你建过推荐引擎吗?”

“没有。”

“我们有一个项目需要一个作为概念验证,你觉得你能解决吗?”

“当然可以。”

大多数人认为高中或大学毕业后学习就停止了。并没有。

上面的场景发生在几周前。我从来没有建立过推荐引擎。然后我做了。

如果你在以前做过的事情上失败了,失败并不是坏事。你一生都在走路,但当你自己绊倒时,你不会自责。它发生了。你继续走。

但是在新事物上失败是艰难的。你以前从来没做过。

学习机器学习是这样的。

第一年:你真差劲。

第二年:你比前一年更好,但你认为自己更差,因为你意识到自己有多少不知道。

第三年:????(我还没到那一步)

拥抱吮吸。

因为不知道某事而痛打自己对你学习更多有多大帮助?

零。

学习新事物需要时间。每天都是第一天。

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

Learning isn’t linear.

三岁的你会对不认识一个单词有什么反应?

你会笑的。把手举起来,然后爬一会儿。

现在也一样。除了你能走路。

如果没有那些创建课程并分享他们所学的伟大的人们,我所做的一切和我所学到的一切都是不可能的。

有更多问题吗?在推特、 LinkedInYouTube 上联系。

这篇文章最初是作为 Quora 上的一个回答出现的。

想转行做开发者?这里有几个你可能会问的问题和答案

原文:https://towardsdatascience.com/thinking-of-switching-careers-to-a-developer-d4c8f772ef83?source=collection_archive---------13-----------------------

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

如果你没有计算机科学的背景,并且一直在考虑转换到数据科学家的角色(或任何开发人员的角色),我知道你在想什么。这么多问题…“我连计算机专业的学位都没有,怎么找工作?”、“我一行代码都没写过,怎么可能做出来?”,“我现在尝试闯入是不是太晚了?”。

如果你正在考虑转行,很可能你已经处于一个不舒服的境地,所有这些问题会让你变得更加艰难。我知道因为我在那里。我毕业时获得了化学工程学位,在一次实习后不久,我意识到并鼓起足够的勇气接受这一特定职业不适合我,并最终决定追求我一直着迷的东西:人工智能和计算机可以用数据做什么。然而,当我做出决定的时候,所有这些疑虑开始蔓延,让我质疑我的决定。“如果这个职业同样不令人满意呢?”“没有经验和正规教育,我还有什么价值?”。

我想说的是,如果你打算沿着这条路走下去,你可能会有类似的疑虑。所以这篇博文是为了让处于这种情况的人放松心情。但在我开始之前,我必须为你决定这样做的勇气鼓掌。

我有答案。但是怎么做呢?

我知道你在想什么:我怎么会有答案?我可以从经验上说,但作为一名有抱负的数据科学家,我要展示数据科学如何让任何决策过程变得更容易,并确保您做出正确的决策。

我将使用 2018 年 stackoverflow 调查的数据。stackoverflow 的 2018 年度开发者调查收到了来自 183 个国家和地区的超过 100,000 份回复,是有史以来对软件开发者进行的最全面的调查。调查了开发人员体验的所有方面,从职业满意度和求职到教育和编码时的合理偏好。让我们开始吧!

问题 1:开发人员的职业生涯有多令人满意?

如果你正在考虑一份新的职业,无论是像我这样的数据科学家还是其他类型的开发人员,很可能你对目前的工作或职业不满意。当你做出这个重大决定时,考虑一下你的新职业是否会以同样的方式发展是很正常的。在进入一个新的领域之前,重要的是要知道它是否会和以前一样,或者给你真正的满足感。所以让我们来看看世界各地的开发人员对他们的工作是什么感觉。

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

看起来相当大比例的开发人员对他们的工作和职业都很满意,超过 18%的人对两者都很满意。

因此,如果你热爱编码,热爱开发人员面临的所有其他挑战,你很可能会对你的工作和新职业感到满意!

对工作的满意度不仅仅取决于你在哪里工作或者你做什么工作。你在工作中建立的关系也很重要。所以让我们来看看开发者之间的关系。

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

很高兴知道超过一半的受访者对其他开发人员有一种亲切感。像 stackoverflow 这样的开发人员在线社区就是一个证明。在工作中得到同事的支持和帮助是很重要的。

只有大约 27%的开发者有竞争的态度,这不一定是一件坏事。员工之间的良性竞争可以产生巨大的效果。

最后,大多数开发人员不同意他们认为他们的同龄人比他们优秀的观点,这意味着他们对自己的能力充满信心。

问题 2:待遇怎么样?

所以接下来,你可能会想这是否值得。如果有经济回报的话。这个问题的答案取决于很多因素。你的技能和技术能力,你的编码经验,以及某种程度上你的正规教育。但其中一个最大的因素可能超出了你的控制范围:你的地理位置。

那么我们来看看一些国家的开发者年薪分布是什么样的。

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

这里有很多东西需要解开,但关键的要点是:

  • 美国开发人员的平均工资最高,其次是英国。印度对开发者的平均工资相当低。
  • 在这 9 个国家中,大多数开发人员的工资都低于该国开发人员的平均工资。

最近搬到了澳大利亚,看到那里开发人员的平均工资相对较高,我很受鼓舞。只需要现在就闯进去!

一个开发者的工资不仅仅取决于国家,还取决于他们在做什么样的工作。在这里,我们将构建一个函数,它将给出任何国家任何类型的开发人员的年薪分布。所以我建立了一个函数,它给出了你想在你的国家成为什么样的开发者的年薪分布。

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

我刚刚搬到澳大利亚从事数据科学职业,我很想知道我未来的工资会是多少…

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

澳大利亚数据科学家的平均工资和一般开发人员的工资差不多。此外,这里大多数数据科学家的工资都低于平均水平。

问题 3:先学什么语言?

现在你已经有了一些答案,让你确信要继续做这个决定。你必须开始学习。开始这样做可能会让人不知所措。你可能会发现自己在思考的一件事是你必须知道哪种语言。让我们先看看世界各地不同的开发人员使用什么来解决这个问题。

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

调查结果共有 38 种语言,其中 Javascript、HTML、CSS 和 SQL 被广泛使用,而 Hack 和 Julia 是最少使用的两种语言。虽然了解全局很好,但这里的结果对我们帮助不大。不同的语言用于不同的编程应用。

下面的函数给出了你想进入的领域中最常用的 10 种语言。

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

我再次用它来看看数据科学家的结果是什么样的…

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

Python 是数据科学家使用最广泛的语言,SQL 和 HTML 排在第二和第三位,而 R 没有被广泛使用。对我来说,这是一个令人惊讶的发现,因为我看到许多招聘信息都要求 R 作为一项要求。

谢天谢地,我的确是从 Python 开始的,但是我这样做的决定并没有备份我的数据。只有几篇互联网文章,事实上我开始使用的 MOOC 是 Python 语言。一路走来,我也学会了 SQL。从这个分析的结果来看,我需要尽快开始学习一些 HTML 和 Javascript!

因此,如果你正在考虑进入数据科学领域,你知道现在什么语言是重要的。如果您想成为其他类型的开发人员,只需使用该功能,并找出什么是重要的!

问题 4:我会“成功”吗?

最后,我们来看一个最难回答的问题。当你考虑转行时,我完全理解你脑海中的所有疑虑,特别是如果你没有任何编程经验或在该领域的正规教育,很多时候这些东西会决定你是否能进入该领域并在其中茁壮成长。因此,为了让你放松,我建立了一个预测模型,考虑到你的年龄、教育和编码经验等因素,并告诉你是否“成功”。这很了不起,不是吗?一台预测你未来的机器。这不再是遥不可及的了。有了正确的方法和足够的数据和计算能力,机器可以预测任何事情。未来就在这里!

但是在我们开始之前,我们将首先定义“制造”是什么意思。“成功”没有固定的定义,因人而异。为了这个模型的目的,我们将它定义为获得超过全球开发人员平均水平的年薪。

然而,这个模型的准确率刚刚超过 81%。通过使用 gridsearch 调整模型的一些超参数,这个模型肯定可以变得更好。然而,由于计算能力有限,我无法做到这一点。

当然,我想在模型中输入我的详细信息,看看我是否能作为一名数据科学家在澳大利亚“成功”,无论我拥有什么资格和经验。手指交叉!

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

呜哇!看起来就像这样,我能做到!然而,该模型只有 82%的准确性,我的情况可能是假阳性。所以我会祈祷好运,继续努力!

如果你想在模型的细节上有一个高峰,前往这个项目的 github 仓库。当你在那里的时候,如果你正在考虑作为一名开发人员开始一个新的职业生涯,并且在我开始的时候为同样的事情烦恼,请随意使用这个模型。

如果您确实使用了这个模型并得到了否定的结果,请记住以下几点:

  • 这是一个非常简单的模型,准确率只有 81%。
  • 你可能是假阴性。
  • 这里使用的“制造它”的定义并不完美。
  • 如果你热爱你的工作并努力工作,你就会成功。

希望这里的一些内容能够让你放心,并帮助你更容易地做出决定。你已经有了你需要的所有事实,你已经有了考虑这条道路的勇气。现在你需要做的就是继续接受这个挑战并战胜它。我祝你万事如意。

这个人工智能可以用来生成 GTA 6 图形

原文:https://towardsdatascience.com/this-ai-could-be-used-to-generate-gta-6-graphics-71299b0dfc09?source=collection_archive---------14-----------------------

在视频游戏中设计虚拟世界是一项耗时耗力的任务。像侠盗猎车手 (GTA)这样的开放世界游戏拥有巨大的虚拟环境,玩家可以自由导航,即使是大型游戏工作室,构建这些视觉效果也需要长达 4 到 5 年。因此,发布新游戏的周转时间往往相当长。这就是深度学习算法可以帮助减少开发时间的地方,它接管了创意艺术家设计和渲染游戏视觉效果的任务。在这篇文章中,我将回顾两篇最先进的研究论文,它们可以帮助执行在 GTA 这样的游戏中设计和可视化虚拟世界的任务。

具有深度学习的图像合成

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

Left: A semantic label map depicting the objects appearing in this scene. Right: A fake image synthesised by a Deep Neural Network from this semantic label map. [source]

我们可以训练一个神经网络来学习我们希望包含在游戏虚拟世界中的各种对象或资产的外观。然后,如果我们给它一个语义标签图(如上所示)来描述这些对象的位置,它可以呈现出逼真的视觉效果。

这项任务被称为使用语义标签的图像合成,这个研究领域在过去几年里有了很多新的发展。我今天要介绍的一篇在这项任务中表现出色的研究论文名为 vid2vid。

视频到视频合成(vid2vid)

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

麻省理工学院和英伟达的研究人员发表了一篇题为“视频到视频合成的论文,该论文能够从高分辨率、时间一致的图像中合成视频。它使用一种特殊的 GAN 架构来确保视频中的合成帧看起来逼真,并且不同帧之间具有视觉一致性。

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

The GAN architecture used in vid2vid.

vid2vid 网络的生成器不仅使用了我们想要转换的当前语义图,还使用了以前帧的少量语义图。此外,它使用来自其先前输出的最终合成帧,并将这些帧组合在一起以计算 F 低图。这提供了理解两个连续帧之间的差异所需的信息,因此能够合成时间上一致的图像。在鉴别器方面,它使用 I 图像鉴别器来控制输出质量,除此之外,它还使用视频鉴别器来确保合成图像的逐帧序列根据流程图是有意义的。这确保了帧之间几乎没有闪烁。最重要的是,它采用了一种渐进增长方法,首先完善较低分辨率的输出,并利用这种知识逐步提升,以产生更高分辨率的输出。看看下图中这个网络的惊人结果。

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

Short clip of fake virtual city synthesised by the vid2vid network trained on cityscapes dataset. [source]

基于 GAN 的方法的问题

虽然 vid2vid GAN 网络的视觉质量令人印象深刻,但如果我们想在游戏中实际使用它,还有一个实际问题。你一定注意到了像 GTA 这样的游戏有一个昼夜循环,它改变了虚拟世界的外观。此外,雨和雾等其他天气效应完全改变了这个世界的面貌。这意味着任何试图渲染虚拟世界图形的神经网络也必须能够根据它们的照明和天气效果对不同的视觉风格进行渲染。然而,由于模式崩溃的现象,用 GANs 产生不同外观的图像是一个问题。

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

Mode Collapse in GANs resulting in synthesised images unable to produce visually diverse outputs.

vid2vid 中 GAN 的模式崩溃

想象在某个更高维的坐标空间里有一堆训练图像,我们在上图中简单的用二维表示。这些点中的一些代表白天的样本,一些代表夜晚的图像。现在,当我们开始训练无条件 g an 时,我们首先生成一组随机图像,这些图像将通过生成器推送。现在,训练过程基本上试图将这些假图像推向训练图像,以便它们看起来是真实的。这导致了一个问题,其中一些训练图像可能被遗漏并且永远不会被使用。随着训练的进行,这将导致生成器只产生相同类型的图像。因此,GANs 遭受模式崩溃,并且由这种方法生成的图像在本质上不能是视觉多样的。

这就是我如何看到这篇旨在使用最大似然估计来解决这个问题的研究论文。

使用条件 IMLE 的图像合成

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

Berkeley 的研究人员发表了论文“通过条件 IMLE 从语义布局进行多样化图像合成”,旨在通过基于 GAN 的 vid2vid 网络训练过程解决上述问题。它不是专注于提高输出帧的质量,而是专注于能够从完全相同的语义地图中合成不同的图像。这意味着我们可以使用这种方法在任何光照或天气条件下渲染相同的场景,而不像 GANs 那样一个语义标签只能产生一个输出。本文展示了如何使用隐式似然估计或 IMLE 来实现这一点。让我们试着理解为什么在这个特殊的用例中,IMLE 看起来比甘斯做得更好。

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

Uncondiitonal case of Implicit Maximum Likelihood Estimation (IMLE) training process.

它首先选取一个训练图像,然后试图将一个随机生成的图像拉近它。请注意,这个过程与 GANs 中的工作方式相反。接下来,它选取另一个训练图像,并向它拉另一个随机图像。重复这个过程,直到我们覆盖了所有的训练图像。这意味着,我们的训练过程现在涵盖了所有白天和夜晚的图像,因此,我们的生成器被强有力地训练以产生不同风格的图像。现在,注意,这是 IMLE 的无条件情况,其中我们从随机噪声图像而不是语义标签图开始,但是训练过程对于两种情况都是相同的。当我们使用语义图时,唯一改变的是输入编码,所以让我们来看看。

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

Conditional case of IMLE, where input is the semantic label and not a random image like we saw before. A random input noise channel is added to the input encoding which is used to control the visual style of the network’s output.

我们没有使用 RGB 语义标签作为输入,而是将地图分解成多个通道。每个通道对应于贴图中的一种对象类型。接下来是这篇论文最重要的部分,我个人认为也是最有趣的部分。它使用一个额外的噪声输入通道来控制输出风格的外观。因此,对于该通道中的一个随机噪声图像,输出将遵循固定的输出风格,如白天效果。如果我们改变这个通道到一些其他随机噪声图像,它将遵循另一种风格,像可能是夜间效果。通过在这两幅随机图像之间插入,我们实际上可以控制输出图像中的时间。这真的很酷,很迷人!

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

Day-and-night cycle of a virtual world imagined by a Deep Neural Network [source]

试用这个 AI 来渲染 GTA 5

我试图从游戏 GTA 5 的一个短片中重现这种效果。我用一个图像分割网络获得了游戏的语义标签,然后通过 IMLE 训练过的网络运行它。考虑到是完全相同的发生器网络能够产生 GTA 的白天和夜晚片段,结果令人着迷!

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

你可以在我的 Youtube 频道上观看更多这些视频格式的结果,视频嵌入在下面。

结论

在我们今天看到的两篇论文中, vid2vidIMLE 基于图像合成,我们可以真正看到我们在基于人工智能的图形渲染方面走了多远。在我们开始试验这种新的基于人工智能的图形技术之前,我们只需要清除几个障碍。我预测从今天起大约十年后,像侠盗猎车手这样的游戏将会有某种基于人工智能的资产渲染来帮助减少游戏的开发时间。游戏开发的未来令人激动!

参考

  1. 视频到视频合成
  2. 通过条件 IMLE 从语义布局合成多样图像
  3. 语义切分

感谢您的阅读。如果你喜欢这篇文章,你可以关注我在媒体GitHub 上的更多作品,或者订阅我的 YouTube 频道

基于漏斗图的电力商业智能异常检测

原文:https://towardsdatascience.com/this-article-is-about-identifying-outliers-through-funnel-plots-using-the-microsoft-power-bi-d7ad16ac9ccc?source=collection_archive---------19-----------------------

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

这篇文章是关于使用微软 Power BI(可视化工具)通过漏斗图识别异常值的。在我们继续之前,让我们看看什么是离群值,以及为什么识别它们很重要。

离群值是那些位于总体分布模式之外的数据点&检测离群值最简单的方法是通过图形。箱线图、散点图有助于轻松检测它们。

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

在进行异常值分析之前,我们应该对为什么我们需要发现异常值以及我们将如何处理这些异常值的问题有一个答案。这种专注将帮助我们选择正确的分析、绘图或绘图方法。例如,如果异常值表明存在风险或威胁,则应该处理这些元素。如果一个异常值表示一个异常的结果,企业可能希望对它们执行进一步的分析,以识别这些异常值的独特方面。

对于离群点检测,我们可以用 R/Python 绘制图表,这需要一些编码技巧。同样的事情也可以在 power BI 中实现,在 Power BI 中进行分析的优势是不需要编码,我们还可以应用所需的过滤器,快速分割数据,以查看各种条件下的异常值。

在本例中,我们使用 Power BI 中的漏斗图(自定义视图)来识别异常值。漏斗图是散点图的变体,有助于通过识别异常值来评估和可视化监测数据。这些图用于许多行业,如医疗健康分析、比较组织绩效等。漏斗图中的异常值基本上是漏斗外的点。

漏斗图使用一种称为统计过程控制的方法,该方法将普通原因变异与特殊原因
变异区分开来。普通原因变化是任何系统中发生的正常随机变化(噪声),而特殊原因变化表明有异常情况发生。

漏斗图在垂直轴上显示指标值,在水平轴上显示人口。正如我们在下图中看到的,基准值(平均值/中值)是穿过图表中心的水平线。漏斗位于基准点的两侧,漏斗被有效地称为控制极限(置信区间)。漏斗形状的形成是因为随着人口数量的增加,控制界限变窄。

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

从根本上来说,这些图是由置信限、几个聚类(一组点)和异常值形成的。漏斗图通常显示两个漏斗,内部深灰色线代表两个标准差(95%置信水平),外部浅灰色线代表 3 个标准差(99.8%置信水平)。基本上,这些极限代表数据点落在这些线所描绘的区间内的概率。我们通常使用内部漏斗来决定价值是否与基准显著不同。如果一个点位于漏斗内,那么我们可以得出结论,它与基准没有明显不同,如果它位于漏斗外,那么它可能明显更差(红点)或更好(绿点)。这些红色/绿色的数据项是异常值,根据业务需求,我们可以进一步分析这些异常值。

Power BI 桌面中的漏斗图

假设您对 power bi 有基本的了解,我将直接绘制漏斗图。在这个例子中,我使用包含各地区癌症死亡率统计数据的表格作为绘制漏斗图的输入数据。

一旦我们将数据加载到 Pobwer BI 中,我们可以看到它有 4 列。“人口”一栏是该地区的总人口,“人数”表示死亡病例数。

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

Power BI 使用 R 代码来绘制漏斗图,我们应该在我们的系统中安装 R 来工作,并且当我们第一次使用漏斗图时,它会要求安装几个 R 包。

跟随链接了解在 Power BI Destkop 中绘制漏斗图的步骤。

一旦我们画出了漏斗图,它看起来如下,让我们向前看,并试图理解漏斗图实际上是如何工作的。这里,在这个可视化中,X 轴代表人口,并相对于流感死亡率绘制在垂直轴(Y 轴)上。您可以选择以百分比或比率显示的 Y 轴。

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

图中的水平蓝线称为基线。默认情况下,绿色实线表示置信度为 0.95,红色虚线表示置信度为 0.99。基本上,这些极限代表数据点落在这些线所描绘的区间内的概率。

每个点代表一个区域,我们可以将鼠标悬停在任何点上,以查看给定输入参数下的区域、人口和死亡率。我们可以看到,格拉斯哥市的死亡率为 31.09,考虑到人口规模,这被归类为异常值,并绘制在漏斗之外。这种不对称性有助于用户对该地区进行更多的研究和调查。

正如我前面提到的,我们可以在我们的地块上应用所需的过滤器,我在右上角包含了一个人口过滤器,使用它我们可以将我们的人口限制在所需的数量,地块将相应地/立即改变。这些切片和切块选项对于业务用户从不同角度查看数据非常有用,因此有助于获得更好的洞察力。

这就是这篇文章的全部内容,如果你喜欢,请鼓掌。提前感谢。

这项发明用你的声音来显示你的长相

原文:https://towardsdatascience.com/this-invention-uses-your-voice-to-show-what-you-look-like-eb5b473b7dd6?source=collection_archive---------29-----------------------

麻省理工学院的研究人员开发了一种人工智能,它可以仅根据你的声音来预测你的外貌。所以他们已经有了如何在日常生活中使用这项发明的想法。

我想象你正坐在一个商务会议上。你不认识的人通过电话从外面连接。通话几秒钟后,一张他的脸的复制品出现在屏幕上——是根据来电者的声音生成的。

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

这不是科幻小说,而是美国麻省理工学院(MIT)研究人员成功研发的一项发明。例如,他们创建了一个神经网络,一个人工智能,并向它输入了来自 YouTube 的数百万个视频序列。这使得网络能够学习各种关于面孔和语言之间关系的信息。

然后,研究人员试图找出人工智能现在可以仅根据声音重建多少关于说话者面部的信息。他们使用神经网络通过声音编码器破译声音及其面部特征,并通过面部解码器创建合适的肖像。

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

研究人员做得很好。

六秒钟的录音足以让人工智能创造出与原始录音惊人相似的图像。特别是,年龄和性别,以及种族背景或关于脸部形状的信息通常都可以被识别。

与此同时,研究人员根据原始照片创建了一幅肖像,以中性的面部表情描绘被描绘者,并注视着相机。与基于声音的图像相比是惊人的。

当然,结果还不完美。此外,人工智能有时也会出错:例如,当一个亚洲人说英语时,可能会有困难。但是不仅仅是种族,还有性别和年龄都弄错了。

然而,麻省理工学院的科学家并不是第一个处理这个话题的人。之前的研究也使用人工智能来破译声音。然而,他们总是搜索预定义的信息,例如,说话者的年龄或性别。

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

麻省理工学院的研究人员采取了不同的方法:

他们想知道一般可以从语言中获得哪些关于面部的信息。根据他们的陈述,他们是第一个成功地直接从声音中识别出一张脸的人。
研究人员已经有了如何利用这一发展的想法:例如,可以根据声音创建的肖像来创建个性化的卡通。该功能还可以用于为机器生成的声音分配类似的外观——例如,来自虚拟助手的声音。

“这是 CS50”:开始数据科学教育的愉快方式

原文:https://towardsdatascience.com/this-is-cs50-a-pleasant-way-to-kick-off-your-data-science-education-d6075a6e761a?source=collection_archive---------6-----------------------

为什么 CS50 对巩固你的软件工程基础特别有用

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

CS50 professor David Malan teaches over 800 students on CS5 — from Youtube

所以你想进入数据科学领域

祝贺你!数据科学是一个最热门、最艰难、最具挑战性、最有回报且充满顶尖人才的职业。你的旅程一定会充满乐趣、挑战、启迪和成就(或大或小)。每天甚至每小时都有新论文发表。新技术和实验定期开发。新的思维方式成为新的规范。和以前看起来不可思议的事情,都被证明是可行的。

但是你不知道从哪里开始

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

Photo by Ben White on Unsplash

但是进入数据科学并不容易。远非如此。学习曲线是残酷的。要学的东西太多了:线性代数、微积分、统计学、Python、SQL、机器学习、算法、优化、数据争论、数据可视化、软件工程、devo PS……不胜枚举。

有些人可能有一些数学或者统计方面的背景,肯定会有帮助。然而,你仍然需要一个坚实的软件工程基础,以便在你的职业生涯中高效和成功。但这不是问题,你说。毕竟我们生活在一个在线教育蓬勃发展的时代。有很多付费和免费的课程可供我们选择。没错,但这正是问题所在。如今,自我教育面临的最大挑战不是缺乏教育资源,而是很难找到最好的或最相关的资源。

输入 CS50。如果只允许你修一门 CS 课程,那就修 CS50。

WCS50 是什么帽子?这是在哈佛大学由大卫·j·马兰教授讲授的计算机科学入门课程。这是哈佛最大的班级,有 800 名学生,102 名员工和专业的制作团队。它提供校内和网上课程。我参加了网络课程,但这已经是我遇到的最好的计算机科学课程了。让我告诉你为什么:

  • 学习曲线设计的太好了,就像在看一部很棒的悬疑电影

CS50 的工作人员有能力在每次讲座之前准确地知道你做了什么和不知道什么(因为他们没有专家盲)。所以演讲不会提到任何你不熟悉的东西。它平稳地引导你通过计算机科学的关键概念,并使它看起来很明显。它不时地提出问题,然后通过更深入的概念解释来解决这些问题。你会有很多“啊哈”时刻,感觉就像在看一部悬疑电影。

  • 涵盖了计算机科学的核心和重要基础,并为您留下了足够的空间来深入挖掘

该课程涵盖了大多数重要的计算机科学元素:C 语言、Python、数据结构、算法、软件工程、资源管理、Web 开发等。它挖掘得足够深,所以你可以理解所有的基本概念,同时也知道如果你想挖掘得更深,应该去哪里找。

  • 编排各种方式教你挑战/无聊的概念,绝不觉得无聊

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

What is an array? Let’s find out! — thecrimson.com

CS50 有很多方法可以教你并让你保持参与。您将玩一个游戏来了解不同的排序算法,收到一只橡皮鸭来体验著名的橡皮鸭调试,观看“灯光阵列”的实验🚥学习数据结构,甚至吃一顿美味的早餐🍞同时探索伪代码的概念。(我最喜欢的一个例子是,戴维·j·马兰(David J. Malan)用一本黄页电话簿来解释二分搜索法,然后撕下一半扔掉。CS50 的决定性时刻。)

  • 互动、有趣、吸引人,时间过得飞快,一旦课程结束,你会惊讶于你所能做的事情

学习的经历如此有趣,你会感觉时间在不知不觉中飞逝。它给出的一些问题很有挑战性,但并非不可能。一旦你成功了,你会为自己感到骄傲。你可能会爱上解决问题的快乐。如果你被困住了,几乎每个社交网络平台上都有一个在线社区(Twitter、Reddit、Stack Exchange、脸书等。)在那里可以得到帮助。

  • 课外活动让你熟悉“开发者文化”,这对你未来的职业生涯至关重要。

谜题日、办公时间、CS 50 展会、最终项目“通宵”黑客马拉松(如果你熬夜的话,可以在 IHOP 吃免费早餐),许多活动旨在让你熟悉“开发者文化”,并为你进入软件工程世界做好更好的准备。

  • 最先进的课程软件助您入门

如果他们不用自己开发的软件工具,一门计算机科学课程有多伟大?多年来,CS50 的工作人员开发了一系列工具/软件来帮助学生编写代码提交作业检查他们的代码质量/语法整理代码风格,甚至生成 PDF 格式的彩色代码文档!正如大卫·j·马兰所说,这些都是简洁而有用的“训练轮”,将会帮助你提高速度。

但是,请不要只相信我的话,看看 YouTube 首席执行官 Susan D. Wojcicki 对她的经历是怎么说的:

这对数据科学也很有帮助

B 作为一门很棒的课程,CS50 与数据科学也非常相关。它帮助您为未来的职业生涯打下坚实的软件工程基础:

  • 它教你 C 语言。更重要的是,通过 C 语言,你了解计算机的基本原理,如内存如何工作,什么是指针,数据结构等。
  • 如果你会写 C,那么你就能很快学会用 C++写。C++是事实上的低级、高性能语言,用于 Numpy、Pandas、Sk-Learn 等数据科学库。
  • 它教授 Python,Python 是机器学习和数据科学的主要高级语言。
  • 它教授 SQL,这是数据科学中使用最广泛的语言。
  • 它还教授 web 编程,当您试图将您的模型部署到生产中时,这很有用。

因此,从本质上讲,这门课所教授的东西对你都没有多少用处,它帮助你建立的基础将大有裨益。

CS50 及以上!

O 学完本课程后,您将更加博学和自信地继续您的数据科学之旅,我将从这里为您指出几个可能的方向:

CS50 用 Python 和 JavaScript 进行 Web 编程

由才华横溢的 TF 余腾渤教授你最相关和先进的 web 编程工具,如 CSS、Javascripts、React、Flask/Django。链接这里

的 Fast.ai 课程,开始一种“自上而下”的 ML 方法

Fast.ai 奇妙而独特。它使您能够在第一课中用不到十行代码构建最先进的深度学习模型。然后,它越来越深入地探究如何和为什么。唯一的先决条件是一年的编码经验,CS50 已经为你准备好了。

吴恩达 在 Coursera 上的机器学习课程

另一个很棒的机器学习课程,但是是“自下而上”的风格。它首先流畅地解释数学基础,然后逐渐积累知识,从零开始拼凑复杂的机器学习模型。我有一篇文章解释了吴恩达杰瑞米·霍华德的不同机器学习教育方法之间的差异,并推荐了一种潜在的高效学习方法。

科里·斯查费的 YouTube 频道,Python 和 OOP 教程

尽管 CS50 很好,但它只涵盖了 Python 的一般和基本概念。您将需要更深入的知识来为您的数据科学项目高效编码。为此,我推荐科里·斯查费的 YouTube 频道。他是我遇到的最好的 Python 教育者之一,他用清晰明了的方式解释了复杂的思想。他的视频一秒都没有浪费。内容简洁,切中要害,高度浓缩。他有基本的 PythonSQLMatplotlibGit面向对象编程的播放列表。

结论

L 学习数据科学从来都不是一件轻而易举的事情,我希望这篇文章能对减轻这种痛苦有所帮助,让你的旅程变得更高效、更有趣。你可以在 edX 上访问这个链接获取所有 CS50 相关课程(只需搜索‘CS50’)。如果您知道其他也很棒的课程和资源,请随时留下您的回复,这样其他人也可以看到。谢谢!

觉得这篇文章有用?在 Medium 上关注我(李立伟)或者你可以在 Twitter @lymenlee 或者我的博客网站wayofnumbers.com上找到我。你也可以看看我下面最受欢迎的文章!

** [## 一枚硬币的两面:杰瑞米·霍华德的 fast.ai vs 吴恩达的 deeplearning.ai

如何不通过同时参加 fast.ai 和 deeplearning.ai 课程来“过度适应”你的人工智能学习

towardsdatascience.com](/two-sides-of-the-same-coin-fast-ai-vs-deeplearning-ai-b67e9ec32133) [## 我完成了吴恩达的机器学习课程,感觉棒极了!

好的,坏的,美丽的

medium.com](https://medium.com/datadriveninvestor/thoughts-on-andrew-ngs-machine-learning-course-7724df76320f)**

这就是强化学习的工作原理

原文:https://towardsdatascience.com/this-is-how-reinforcement-learning-works-5080b3a335d6?source=collection_archive---------10-----------------------

(什么会让你建立你的第一个人工智能)

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

2017 年底,谷歌推出了 AlphaZero ,这是一个人工智能系统,它从头开始自学如何在四个小时内掌握国际象棋、围棋和日本象棋。

短时间的训练足以让 AlphaZero 击败世界冠军国际象棋程序。

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

(Andriy Popov / Alamy Stock Photo)

最近,OpenAI 证明了强化学习不仅仅是虚拟任务的工具。 Dactyl ,它的拟人机器人手已经学会自己解魔方。

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

谷歌 AlphaZero 和 OpenAI Dactyl 是强化学习算法,除了游戏规则之外没有任何领域知识。一些人工智能专家认为,这种方法是实现人类或超人人工智能的最可行的策略(AGI)。

在我们之前的文章中,我们介绍了强化学习的构建模块。

[## 不要再忽视强化学习了

监督或无监督学习并不代表一切。每个人都知道。开始使用 OpenAI 健身房。

towardsdatascience.com](/dont-ever-ignore-reinforcement-learning-again-4d026ee81371)

现在,我们将深入探讨人工智能代理使用的机制,以教会他们自己如何采取正确的行动流程来实现一个全球回报的目标。

什么是策略?

让我们考虑一下 OpenAI 冰冻湖,一个简单的环境,其中代理控制一个角色在网格世界中的移动。网格的一些瓦片是可行走的,其他的导致代理人掉进水里。代理人因找到一条通往目标方块的可行走路径而获得奖励。

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

即使对于这样相当简单的环境,我们也可以有各种各样的策略。例如,代理可以总是向前移动,或者随机选择一个动作,或者通过检查先前的向前动作是否失败来尝试绕过障碍,或者甚至有趣地旋转来娱乐。

策略的直观定义是,它是一些控制代理行为的规则集。不同的政策可以给我们不同的回报,这使得找到一个好的政策变得很重要。

形式上,策略被定义为每个可能状态的动作的概率分布:

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

最优策略𝛑*是使期望值函数 V 最大化的策略:

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

价值函数 V(s) 是状态 s 贴现后的预期长期回报,与短期回报相对。价值函数表示代理所处的状态有多好。它等于代理人从该状态开始的预期总报酬。换句话说,在状态 s 中采取行动 a 的一步奖励的总奖励通过v(𝑠定义。

如何选择最佳动作?

值函数取决于代理选择要执行的操作的策略。学习最优策略需要我们使用所谓的贝尔曼方程

让我们通过考虑下面的例子来直观地介绍一下贝尔曼方程。代理可以执行动作 1、2、…N 。这将把代理带到一个未来状态 S1、S2、…SN 。代理将相应地获得奖励 r1、r2、…rN 。每个未来状态的预期长期回报将是 V1、V2、…VN

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

如果代理在处于状态 S0 时采取动作 a=i ,则状态 S0 的预期长期回报或值由下面的等式给出,其中γ是常数。

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

最优策略将帮助代理选择最佳的可能
动作。为此,代理需要计算每个可能动作的结果值 a=1,2,…,N ,并选择最大可能结果。

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

以上方程称为确定性贝尔曼方程。如果对于一个给定的动作,主体可以以不同的概率达到一个以上的未来状态,那么它可以成为一个随机方程。这种情况如下图所示。

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

这种一般情况下产生的随机贝尔曼方程如下所示。

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

我们提供了一个贝尔曼方程的实现,以选择给定状态下的最佳可能动作。您需要加载必要的必备库,如我们之前的文章所述。

AI 智能体如何通过值迭代学习?

在上一节中,我们解释了如何找到提供最大长期价值的最佳行动。如果我们能对所有的状态都这样做,我们将获得价值函数。我们还将知道在每种状态下应该执行什么操作(最优策略)。这个算法叫做值迭代

值迭代算法随机选择一个初始值函数。然后,它在迭代过程中计算新的改进的价值函数,直到它达到最佳价值函数。最后,它从最优值函数中导出最优策略。

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

在 4x4 的冰湖环境中,值迭代算法在所有 16 个状态和 4 个可能的动作上循环,以探索给定动作的奖励,并计算最大可能的动作/奖励,并将其存储在向量 V[s]中。该算法迭代,直到 V[s]不再显著改善。

最佳策略 P 则是每次都采取行动,以达到具有最高 V 值的状态。

下面的函数在 4x4 冰湖环境中实现了值迭代算法。

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

上面得到的数组说明了价值迭代函数如何成功地计算出 16 个州的长期回报。该算法进行了 7 次迭代。

代表一个洞的状态( H )的值为 0,而代表冻结块的状态( F )的值较高,尤其是如果这些块处于朝向目标 G 的有希望的路径上。

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

下面的函数提供了使用热图的可视化结果。箭头显示了使用最优策略 P 提供最佳总报酬的行动流程。

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

下面我们在一个 8×8 的冰湖环境下运行数值迭代算法。

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

AI 智能体如何通过策略迭代学习?

在上一节中,我们介绍了价值迭代算法,并举例说明了一个代理人将如何走过一个冻结的湖洞,以达到目标。

策略迭代算法中,我们从随机策略而不是随机值函数开始。然后我们找到该政策的价值函数。接下来,我们基于先前的值函数找到新的(改进的)策略。经过多次迭代,这将产生一个最优策略。

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

下面的函数实现了策略迭代算法。

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

正如我们所观察到的,两种算法产生了相同的结果。虽然值迭代算法在每次迭代中不断改进值函数,直到值函数收敛,但是策略改进定理向我们保证由策略迭代算法找到的策略比原始随机策略更好。

这两种方法实现了相同的目标,策略迭代在计算上更加高效。

如何调 AI 智能体的学习率?

值和策略迭代算法都依赖于超参数γ (gamma ),它定义了值或策略更新期间的学习率。

在这里,我们尝试不同的 gamma 值,并讨论 gamma 对训练的影响。

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

这些图显示了值如何随着 gamma 的增加而增加。不同的 gamma 值(0-10)会产生不同的策略。较低的 gamma 值将更重视短期回报,而较高的 gamma 值将更重视长期收益。

最佳伽玛取决于任务的领域。在冰湖的情况下,寻求短期收益是没有意义的(例如,落入洞中导致的负面奖励实际上不如后来收到的相同惩罚有价值,在很长一段时间没有下落之后)。我们更希望尽可能地向前看。

结论

在本文中,我们提供了如何实现值迭代和策略迭代算法的实践技巧,以便在强化学习中找到最佳策略。

Andrej Kaparthy 的这篇文章提供了关于这些技术的进一步见解。

当代理知道关于环境模型的足够细节时,值和策略迭代算法都工作。在自动驾驶、医疗或股票交易等几个场景中,学习或提供过渡模型可能很难。在这种情况下,无模型方法更合适。我们没有在本文中涉及它们。

Q-learning 是一种无模型学习,当代理不知道环境模型,但必须利用其与环境交互的历史通过反复试验来发现策略时使用。

状态-行动-奖励-状态-行动(SARSA)是另一种算法,其中代理与环境交互并根据采取的行动更新策略。本帖将给出更多关于无模型算法的有趣见解。

感谢阅读。

你还饿吗?下面查看我最全面最简单的深度学习入门。

[## 深度学习为什么有效:解决一个农民的问题

在开始是神经元:梯度下降,反向传播,回归,自动编码器,细胞神经网络…

towardsdatascience.com](/why-deep-learning-works-289f17cab01a)

这就是你在数据科学里放数据的方式!

原文:https://towardsdatascience.com/this-is-how-you-put-the-data-in-data-science-5411c8a45122?source=collection_archive---------8-----------------------

数据科学不断发展。这 2000 万个数据集就是证明。

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

(Er, wrong Data search tool.)

谷歌搜索家族中我最喜欢的新成员之一是数据集搜索。是的,你没听错。您可以像搜索图像一样搜索数据集!

您现在可以像搜索图像一样搜索数据集了!

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

You can play with Dataset Search here.

关于公众的数据素养,数据集搜索说明了什么

如果没有人使用谷歌的垂直搜索引擎,如谷歌图片谷歌学术,它们不会持续很久,所以它们的多样性告诉你一些人们倾向于在互联网上寻找什么。图像、视频和新闻都不足为奇。但是数据集呢?你暗示说,处理数据集不仅仅是遥远冰屋里三个孤立的教授的事。它很大。…而且越来越大。

有什么条件?没有了。这真的和用谷歌图片或谷歌学术搜索是一回事,但是是针对数据集。超过 2000 万(!)数据集目前已编入索引并可供使用……而且该索引正在快速增长。

今天,它让 2000 万个数据集唾手可得…明天还会有更多。

既然你知道它的存在,你可以在这里玩它或者你可以留下来讨论数据集搜索是如何工作的,以及它对数据科学职业和整个人类意味着什么。

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

A screenshot from my most recent Dataset Search session. Back when I was in grad school I would have groveled shamelessly for clues about where to beg for access to data like these. (That’s literally what we had to do to get it: write long emails begging other laboratories to cough it up, usually to no avail. Give me a moment while I get misty-eyed over how easy the new way is.)

加速分析领域的一场革命

分析是数据科学的一部分,是关于快速获得灵感的。与统计学或机器学习不同,分析学的最高优点是速度。(为了安全起见,优秀的分析师会形成一种免疫力,不会在跟进新数据之前就妄下结论。)

更快的数据访问为您提供了更强大的分析能力。

你知道当数据集很容易找到时你会得到什么吗?更快的分析!数据集搜索对于所有的专业分析师和数据科学家来说,这是一个令人难以置信的速度提升。(但是,如果你有把你的灵感当真的危险,一定要记得用统计方法更仔细地跟进。)

是啊,但是到底有什么问题呢?

如果你生长在一个数据集稀少、珍贵,并且经常由教授或数据提供商管理的世界——就像我们大多数人一样!—你可能会有一点无意识的偏见:你认为给你数据的人会对数据的质量负责(可能还藏着一两个博士学位)。如果你主要在学习或科学环境中使用数据集,你可能会形成这样的印象,数据集在到达你面前之前被亲切地处理过。

现实生活中的数据科学是一片丛林,而不是由你的教授们管理的神圣空间。

暂且把这种偏见放在一边,考虑一个不同的问题:外行人对数据崇拜的有害影响。任何倾向于用大写字母“D”来表示数据的人可能会认为所有以结构化形式包装的信息都是有用的和真实的。嘿,这不是魔法。不要相信你读到的一切,也不要相信每一个数据集。点击了解更多关于数据和数据崇拜的本质

如果你的生活中,大多数给你数据的人都是有名望的,并且/或者你被教导要崇拜数据和科学,那么你会受到严重的打击。你猜怎么着!数据集可能是一堆结构化的垃圾。它可能会坏掉。可能是编造的。可能是六十亿个零。什么都有可能。就像文字一样!

“书上写的,一定是真的……”

说到文字:“书上写的,一定是真的……”对吧?不对!更惨:“如果是网上写的,那肯定是真的……”看到你刚才拉的那张脸,我爱死了。很好。你持怀疑态度。你应该害怕。现在怎么样“如果写在数据集中,那一定是真的……”

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

A book! It must be true.

那里有很多垃圾,因为任何人都可以写他们想写的东西。你知道不该相信它。相反,你需要花点时间去思考它的来源。太好了,因为这个习惯也会让你在数据领域保持安全。

如果你习惯于相信数据而不是文字,那就小心你自己。

如果你习惯于相信数据而不是文字,那你就要小心了。你可能已经有了这个习惯,却没有意识到。不要把数据视为神圣的东西。重新定位你的街头网络习惯,也就是你在搜索谷歌图片或网络时经常使用的习惯。你知道谷歌并不拥有或编辑那些猫的照片或隐形药水的配方,当你友好地询问时它会提供给你。(你知道那些隐形药水不管用吧?)你知道质量各不相同,在你相信你读到的一切之前,你要对来源进行批判性的思考。你知道网上有各种各样的东西,你早就不容易受骗了。嗯,大部分是。即使是我们中最优秀的人偶尔也会点击那些“一个奇怪的把戏”链接或稀奇古怪的新闻故事。

如果你把你通常对街头互联网搜索的怀疑态度应用到数据集搜索上,那就没什么问题了。

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

像对待任何其他互联网搜索结果一样对待数据集搜索结果。该工具将帮助您筛选干草堆,但要由您来仔细检查猫拖进来的东西的质量。

但是,嘿,如果让我在一个巨大的可搜索的不同质量的猫图像的聚宝盆和一个 3 个精心策划的猫图像的小相册之间选择,我会选择前者。(嗯,实际上我会两个都选,因为我很贪婪……你也可以。这些搜索工具不需要你的一夫一妻制。)

互联网大部分是由垃圾邮件组成的

不是所有的东西都对你有好处。也就是说,谷歌确实尽力打击垃圾邮件,并优先考虑合法结果。是的,人们会把垃圾数据集放在那里来吸引你的注意力,是的,我们对它进行排名是为了给你提供更好的东西。就像常规搜索一样。但是你不应该期望这些事情是完美的。

要使数据集可搜索,只需将 schema.org 中的元数据添加到描述数据集的每个网页中。

要使数据集可搜索,只需将 schema.org 中的元数据添加到描述数据集的每个网页中。谁都可以做,就像谁都可以写博文一样。它可能是垃圾(也许这篇博文是……啊哦),所以批判性地思考一下来源。

如果你打算消费自由放养的数据,你需要保持警惕。不要相信你读到的一切。

它是如何工作的,什么是 schema.org?

schema.org 的想法是在 2011 年由一个财团提出的,这个财团来自通常的嫌疑人:谷歌、必应、Yandex、微软和雅虎。他们厌倦了猜测抓取的网页的内容,所以他们决定创建一个公共词汇表,提供商可以用它来告诉他们什么是什么。这个词汇表嵌入在 HTML 中,表示哪些位描述了一个事件、一个地址、一个食谱等等。它是一个小模式(因此得名!)描述不同类型的信息。当您选择将 schema.org 的 T2 添加到您的页面,并告诉它该页面有一个数据集时,该数据集就有资格显示在数据集搜索结果中。

数据提供者使用 schema.org告诉我们在他们的页面上有一个数据集,并描述关于它的一些元数据。

这不是谷歌特有的魔法;这是一个开放的社区标准,任何人都可以为之做出贡献。许多公司多年来一直在幕后使用它。谷歌特有的功能是你用数据集搜索来搜索数据集的新能力。我们让数据提供者使用schema.org告诉我们在他们的页面上有一个数据集,并描述关于它的一些元数据。数据集搜索与常规搜索非常相似,但搜索结果仅限于声称拥有数据集的页面。简单又有用。

如何参与共享数据

当数据完全来自少数几个负责仔细管理每一个数据的大型提供商(如政府和大学)时,较小的参与者缺乏分享他们数据的渠道。

想象一下这个场景:一群高中女生正在进行一个课外机器人项目。他们正在收集大量数据,这些数据可能对有类似爱好的人有用。他们甚至愿意分享(他们真好)。他们在他们高中的网站上放了一个链接。他们的数据恰好是你需要的,来帮助你的原型制作。现在怎么办?

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

All-girls Afghan robotics team. Image: SOURCE.

如果他们的数据集不可搜索,你永远也找不到它。如果他们的数据必须由馆长(比如政府)托管才能被访问,他们会被告知要排队…他们可能永远也不会排到前面。花费稀缺资源进行大量监管的提供者只有有限的时间和注意力集中在优先资源上。结果如何?你永远不会知道你错过了什么。

这就是为什么我觉得这整个数据集搜索范式如此漂亮。共享数据(没有中介告诉你迷路)意味着人们可以找到并提供很好的资源,即使他们有小众的品味…或模糊的高中网站。

参与共享可搜索数据:

  1. 你需要有数据。
  2. 你需要表明你有通过schema.org 的数据。(你可以自己做,或者你可以把它放在一个像 Zenodo 这样的仓库里。)

另一个陷阱

我希望你不要惊讶,满足这两个条件的倾向因领域而异。政府是第一批索引其数据集的,所以他们倾向于收集的数据集类型(天气数据,有人知道吗?)是你疯狂进食的绝佳对象,而收集起来代价高昂的专有数据将很少有人能得到。也就是说,每天都有更多的数据被添加进来,搜索为免费和付费数据打开了大门。(有点像 Google Images 里那些带水印的专有图片。)由你来选择你想通过哪些门,以及这些费用是否值得。

人类更大的图景

像数据集搜索这样的大型用户群是人类在数据科学和数据素养方面进步的象征。我们作为一个物种正在成长,并扩展了我们运用感官的方式以及我们与信息交流的方式。

数据分析正在成为每个人的游戏。

我们曾经对在互联网上打开单个页面的能力印象深刻,然后对在我们的浏览器中打开 50 个标签的能力印象深刻——每个数据点一个——以观察混乱的模式。现在我们渴望更多。我们希望数据集可以用为这项工作而构建的代码工具(如 PythonR )快速成型和总结。数据流社区现在已经达到了临界质量;我们中有足够多的人拥有理解数据的技能,我们不再满足于图片覆盖的书面页面。(就是你现在盯着的那种。哈。)

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

Image: SOURCE.

读写能力的进化

要从像你此刻正在阅读的资料中获取信息,你需要一种特殊的素养。你的大脑需要能够围绕书面文字进行思考。这是你认为理所当然的技能。如果很少有人有这个技能,这篇博客就不会存在了。谷歌可能也不会存在。

数据集搜索代表了数据扫盲民主化的一个上升趋势。

同样地,数据集搜索代表了数据素养民主化的一股浪潮。这整个发展是一种攀登到山顶的方式,并唱着*“处理数据不再是一个完全适合的技能!”不再局限于几个抄写员在泥板上雕刻象形文字。(哦,等等,那是写。不过,想法一样。)*

在线数据集为自我表达提供了一种新的载体,它遵循与互联网其他部分相同的规则。

数据集搜索有助于您在聊天中发现精华。

数据集正在成为一种广泛的交流形式——一种美丽的新语言,我们许多人都能流利地说,还有更多人每天都在学习。对于我们这些从小就说数据的人来说,能够用我们的语言获得搜索结果是一种极大的解脱。

这就是为什么我对数据集搜索的感觉是直截了当的:“最终!”

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

娱乐技术详情:

bit.ly/dataset_search试用。

感谢阅读!人工智能课程怎么样?

如果你在这里玩得开心,并且你正在寻找一个为初学者和专家设计的有趣的应用人工智能课程,这里有一个我为你制作的娱乐课程:

Enjoy the entire course playlist here: bit.ly/machinefriend

喜欢作者?与凯西·科兹尔科夫联系

让我们做朋友吧!你可以在 TwitterYouTubeSubstackLinkedIn 上找到我。有兴趣让我在你的活动上发言吗?用这个表格联系。

这才是一份好的数据简历应该具备的!

原文:https://towardsdatascience.com/this-is-what-a-good-data-resume-should-have-582f7dfa40e0?source=collection_archive---------9-----------------------

数据招聘人员会在你的简历中寻找什么——建议、技巧和诀窍

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

我们的世界被数据淹没了。

利用数据洞察的机会从未像现在这样多。但是我们没有足够的熟练员工来帮助我们理解这一切。因此,如果你想成为一名数据人,在未来的 5-10 年里与数据打交道,那么这是你的机会。去赢得那些工作吧!

当你每天都在寻找那份疯狂的高薪工作和令人兴奋的挑战时,这个关于在简历中写些什么的小指南可能会有点用。

为实习或工作申请写简历很少有乐趣。在工作申请截止日期前畏缩不前当你终于开始整理东西时,你会意识到更多的是在一页纸上。大部分的责任在于把所有正确的事情都写在你的一页简历上。当简历通常是工作申请流程的第一层时,越过这道关卡到达招聘人员或招聘经理的手中是一项繁重但重要的工作。

两个月前,当我参加今年的格蕾丝·赫柏庆典时,我遇到了大约 100 多名招聘人员,他们在讨论我的简历,以及我在这一点上有多好,我如何才能在我的个人资料上做得更好。在所有这些疯狂的狂热中,我有幸与迪士尼动画的一位女士进行了一次深入的讨论,她建议对我的简历进行一些编辑和调整,这实际上帮助我更好地传达了我的努力!(感谢那位女士,她的名字我现在不记得了😅)

当招聘人员浏览你的简历时,第一印象是你的简历应该准确反映出你在那一天所做的工作。

你的作品本身就说明了一切,不需要提及,但它确实说明了一切。最近,我参加了一次面试,面试官在整个面试中对我过去的所有努力进行了全面深入的介绍。无编码问题,无伪码可写,纯简历讨论!

因此,

60 多份申请,24 份回复,7 次面试,2 份录用通知……

这才是一份好的数据简历应该具备的!

1.选择一个微妙的模板

我们都被告知外表没有实质重要,但就你的简历而言,这是不正确的。理想的简历设计是干净整洁的,有效地、有策略地使用留白。记住你的简历是你的营销工具。这是潜在雇主对你的第一印象。

有时,我看到一些简历,作为一个读者,有太多的信息需要掌握,有时你会迷失在博学的海洋中,偏离重要的东西。

  1. 你应该考虑用更多的要点来增加对雇主的影响。
  2. 如果雇主看到太多长的文本,他们可能会发现很难集中在最重要的信息上。
  3. 还应该考虑子弹的大小和类型。
  4. 放开职业目标。客观陈述被认为是过时的。如果需要的话,用一行职业总结代替。我个人也没有职业总结。
  5. 申请“大”公司时,简历的风格要更加经典、低调!

要在独特的简历设计中取得成功,创建你的简历,并使用免费网站上的创意简历模板来支持它,如 NovoresumeZetyCreddleCanvaVisualCVCVMKRSlashCV ,甚至是谷歌文档简历模板。

2.技能

数据是一个跨越多个学科的领域,比如医疗保健、金融、食品和饮料、服装、技术、电影、电子商务、歌曲,甚至网飞!从事数据工作的人需要掌握他们所从事领域的各种技能。

也许数据专家最突出的技能是能够分析信息。

作为一名数据人员,她每天可能会开发算法或训练模型,分析数据以了解科学过程,可视化市场趋势,并处理风险管理统计数据。他们必须能够理解模式和趋势,并知道所有这些模式意味着什么。所有这些都需要强大的统计、分析、数学、编程、报告技能等等。

  1. 大数据、批判性思维、数据分析、数据操作、数据争论、数据挖掘、数据建模、数据可视化、数据研究、风险建模、机器学习和测试假设可能是一些好的 技术技能 要具备的。
  2. 适应性、决策、创造力、逻辑思维、解决问题、独立工作以及团队合作、沟通(书面和口头)、领导、汇报、演示、培训、监督都可以 良好的软技能 具备。
  3. 线性代数,多变量微积分,统计学对一个数据科学家来说是很好的 数学必读

在你的简历上

你的简历应该至少有下面列出的技能范围,不限于或不一定是这个。

语言 : C,C++,C#,HTML,Java,JavaScript,Python,R,PHP,SAS

数据库 : SQL Server,MySQL,NoSQL,Oracle DB2,PostgreSQL,MongoDB,CouchDB,Hadoop

可视化工具 : Tableau,PowerBI,MS Excel,MATLAB,Octave

**版本控制:**GitHub/git lab

**devo PS:**AWS/Floyd hub/Digital Ocean/Flask

3.项目

当我与招聘人员谈论他们对优秀候选人简历项目的理想期望时,常见的答案是:

我想听听他们最近参与的一个项目。我问他们这个项目是如何开始的,他们如何确定这个项目值得他们花费时间和精力,他们的过程和他们的结果。我还问他们从这个项目中学到了什么。他们为什么选择那个特定的项目?

招聘人员从这个问题的答案中获益匪浅:如果他们能讲述一个故事,这个问题如何与大局相关,以及他们如何解决做某事的困难。

把与你申请的职位最相关的项目放在你的简历上。例如,我是一名金融科技爱好者,参与了大约三个与金融术语相关的项目。现在,当我面试一家金融公司时,我会确保这三个可视化项目中的一个被放在我的简历上。

接下来,如果我申请一家医疗保健公司,我会提出一个可视化项目,谈论保单索赔或预期寿命比率等结果。

4.专业经验

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

Image Source: Zety

多少工作经验应该放在简历上?

  1. 高级职位候选人=列出长达 15 年的相关工作经验
  2. 初级到中级的候选人=包括你所在领域相关职位的详细工作描述,以及其他职位的简要介绍:实习、临时工作、自由职业
  3. 列出并描述你做过的所有有报酬的工作,包括实习、兼职或临时工作、自由职业、独立项目
  4. 没有专业工作经验的候选人(学生)=包括所有有偿和无偿工作经验:在学生组织中的角色、实习、无偿实习、志愿者经历

一些值得关注的好建议

  1. 避免在简历中写不相关的经历
  2. 包括更多的关键词和技能,帮助你成为更强的候选人
  3. 不要过度使用对你的简历没什么价值的单调词汇。如果需要的话,尽量使用同义词
  4. 使用更多的强有力的动作动词和令人信服的语言来概括典型的成就
  5. 把你的工作经历放在正确的位置
  6. 每个工作描述不要超过 5 个要点
  7. 出来做一个成功者,而不是实干家
  8. 按时间倒序在简历中列出工作描述;从你现在或最近的工作开始,接着是上一份,然后是上一份,以此类推。
  9. 使用积极的语言:通过协商定价和费用,削减了 30%的工资/福利管理成本,同时确保服务的持续和增强而不是仅仅被动地对待你所做的工作:与供应商谈判合同

5.证书

当你在寻找一些额外的东西来为你的简历增色时,执照和证书是一个东西。列出所有适用于工作描述的相关课程。认证通常被认为是对你当前技能的测试标准。

但是,不要将认证与在线课程混淆。在线课程是大学课程的同义词,不一定表明你擅长某项技能。认证可以是谷歌云开发者,谷歌数据工程师,IBM 数据科学专业人士之类的。

几乎每个职业都有你可以获得的认证。无论你是为星巴克、微软还是塔吉特百货工作,简历认证都是证明你拥有技能和知识的重要手段。

如果你还没有,MOOCs 是一个不错的选择。Coursera,Udemy,Udacity,DataCamp,LinkedIn Learning 有很多课程和认证可以查。对于数据人来说,Data Camp 和 Coursera 提供了一些非常酷的东西!

如何在简历中列出证书?

  1. 认证名称
  2. 认证机构或团体的名称
  3. 获得日期
  4. 位置(如果适用)

注意:如果您的认证有截止日期,您也需要添加该日期。不要在简历上列出已经过期的证书。

6.奖励/认可

这是一个非强制性的部分,但可以为有东西要填写的人创造奇迹。

当招聘人员看到我的简历时,我会确保他们阅读了我的奖励和认可。当你在职业生涯中取得了堪称典范的成就时,一定要把它写下来。然而,只有当它不能作为你的教育或工作经历的一部分被提及时,才把它作为标题**。**

我不鼓励在黑客马拉松中加入一等奖获得者。那完全没有必要。如果成就足够显著和令人印象深刻,只在单独的部分列出。你的整个简历应该是关于你的成就,而不仅仅是其中的一部分。总是试着把成就和你的工作经历、教育甚至爱好放在一起。但是如果需要增加一个奖项,在列举你的成就时要非常具体。

随着时间的推移,我从招聘人员那里学到了这六个要点,我的简历无疑改善了它的外观,它的表现和我发出简历时的自信。奇怪的是,当你接到一个面试电话时,你的简历将是一个巨大的证明,这个电话是你全力以赴写的简历。

感谢您的阅读!如果你喜欢这篇文章,点击拍手按钮,让我知道你是否打算修改你的简历。或者如果你是招聘人员,你怎么看!

了解你的作者

Rashi 是一名研究生,也是一名数据分析师、用户体验分析师和顾问、技术演讲者和博客作者!她渴望建立一个组织,将商界女性与资源海洋联系起来,让她们对工作和世界充满热情,无所畏惧。请随意给她留言这里

该职务公告不存在

原文:https://towardsdatascience.com/this-job-posting-does-not-exist-837d25bc849b?source=collection_archive---------17-----------------------

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

今年早些时候,OpenAI 发布了 GPT-2(Generative pre trained Transformer),这是当前最先进的文本生成模型,可以从小提示中生成一些连贯的段落。自从 OpenAI 发布了其中一个较小模型的模型权重,我就一直渴望测试它的能力。

除此之外,我最近一直在看招聘信息,其中一些要求相当高。每当看到这样的招聘启事,我总会想“有人校对过这个吗?他们怎么认为这是合理的?这是机器人做的吗?”所以我决定测试一下,如果我把一堆招聘信息输入到 GPT-2 模型中,会发生什么情况,看看它们会有什么样的比较。GPT-2 能产生一个连贯的招聘启事吗?GPT-2 会产生更荒谬的招聘信息吗?我的目标是训练一个模型,能够为各种各样的职位发布招聘信息。

这篇文章将介绍如何在自定义数据集上微调 GPT-2,从通过网络搜集获取数据到调整设置和运行模型,并附有相关解释和示例。我将工作发布数据用于我的特定应用程序,但是这篇文章的内容可以应用于其他文本生成任务和数据集。

GPT-2 号的背景

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

如果你不熟悉 GPT-2 ,它是 OpenAI 发布的最新语言模型,也是 OpenAI 的 GPT 模型的继任者。GPT-2 模型在超过 800 万个网页上进行训练,或者来自 Reddit 的出站链接的大约 40GB 的文本数据,这些链接包含各种各样的主题。虽然由于这种预训练,该模型在一般文本生成方面表现良好,但如果您想在自己的特定任务中训练和使用该模型,您仍然需要自己的小数据集来执行迁移学习和微调最后一层的权重。作为创建我自己的数据集的一部分,我求助于网络抓取来快速获得我想要的数据。

给我看数据

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

数据集统计 :
*总大小:~210 MB
*职位数量:~450 个职位
*每个职位发布的数量:~100 个
*获取数据的时间:~1 小时

因为我想让 GPT-2 为各种工作创建职位发布文本,所以我从这个博客收集了 450 个职位名称,并将这些值写入一个csv文件。我选择为每个职位获取大约 100 个职位发布,因为我想测试有效训练模型所需的最小数据量。为了相对快速地获得这个有点全面的数据集,我使用了BeautifulSoupasyncio库和一个 bash 脚本,该脚本使用多处理来抓取 Indeed 网站,允许 webscraping 。你可以看看我用来获取数据的脚本这里这里作为一个例子,看看带有BeautifulSoupasyncio和多重处理的 webscraping 脚本是什么样子的。如果你决定也创建自己的数据集并执行网络搜集来完成,我强烈推荐使用asyncio和多个流程来减少时间。

让我们进入正题

一旦你准备好了一个数据集,我会建议分叉这个出色的回购已经有了一个在 TensorFlow 中训练 GPT-2 模型的方法。由于我没有自己的个人 GPU,如果没有必要,我也不想花任何钱来培训这个,所以我决定使用我的本地计算机。虽然有其他选项提供免费的 GPU 使用(Google Colab 或 Kaggle 内核),但这些选项都有使用时间限制。由于我想通宵训练模型,所以我不想担心 GPU 关闭,而是选择在本地训练模型。为了使用存储库中的代码,我必须遵循说明并设置环境,包括安装所需的库和下载模型(117M 和 345M)。从现在开始,这篇文章将引用回购中的脚本。

在训练模型时,我选择使用具有 1.17 亿个参数的模型,以及我从存储在data/job_postings目录中的实际上是中获取的数据集(由于数据的大小,它不在 repo 中)。为了训练模型,我在 repo 的主目录中使用了以下命令。

PYTHONPATH=src ./train.py --model_name ./models/117M --dataset ./data/job_postings --run_name job_postings_6_20_19

在这里,我指定了我使用的模型(117M),数据集,以及存储模型权重的目录名(job_postings_6_20_19)。因为训练模型直到它产生合适的结果可能需要一段时间,所以我让模型运行了大约 8 个小时。然后,我将模型权重从job_postings_6_20_19目录复制到models/117M目录,使用下面的命令进行测试。

python ./src/interactive_conditional_samples.py --top_p 0.9 --model_name 117M

在这里,我使用了--top_p命令进行核心采样,这就像使用动态k的 top-k 采样。Top-k sampling 是一种方法,在这种方法中,每次生成一个单词时,从k个单词中选择一个最有可能被选为下一个单词的单词。--top_k标志的缺省值是 40,但是如果你想有更多的可变性,你可以很容易地使用一个更大的值,或者如果你想让它更具确定性,你可以使用一个更小的值。使用 nucleus (top-p)采样,您设置了一个概率阈值p,这样您就可以考虑有多少个词累积起来将达到被选择的概率阈值。这样,在模型确切知道下一步要选择什么的情况下,你可能只考虑一个词,但如果模型不确定,你可能会考虑更多。这种细胞核取样防止模型产生过度重复的序列。

键入该命令后,出现以下输出:

Model prompt >>>

此时,您可以输入任何想要的起始文本。在我的例子中,我输入了职称以获得我的模型的回报。以下是一些精选的结果。

结果

在这里,我将通过 4 个例子来说明模型在哪些地方表现良好,哪些地方表现不佳。

所以当我输入提示Data Scientist的时候,这是我得到的结果。

Gather and analyze all outputs of activities and operations. Provides guidance to ensure timely calibration, understanding and calibration of data, and to support overall execution of execution plan. Provides guidance on various operational goals, critical metrics, and activities carried out through the conversion of data (data sheets, charts, graphics, charts and tables) to and from mainframes and delivery schedules. High level of expertise and service delivery at a cost efficient manner. Prior experience under management associated with data support contracts.        Benefits        Receive support from multiple disciplines, including Clinical, BPO, Healthcare, Information Technology, CRM, In-GPO, IBM, NASA, Data System Engineering, and others.       Compensation & Benefits In a typical first year position, Microsoft offers a reasonable compensation package (down to $30,000-$40,000 depending on the type of position). Basic benefits include Medical, Disability, and Pension. If this option is available for you, you will receive fair compensation and benefits, including up to two full-time and part-time days in a year. We are looking for someone who:  Relies on excellence in the HR and data science fields  Works hand in hand with colleagues and with Microsoft’s colleagues to enable innovation in a company-wide, engineering-driven culture      Leadership and leadership skills in achieving goals, keeping customers interested, and helping each other  The Microsoft HR team is a team based in Redmond, WA and provides full-time, part-time and occasional holiday leave. The team is comprised of engineering, business and other development specialists.     Maintains strict confidentiality and confidentiality policies while dealing with employees in all activities related to the company’s external business.   Provides technical support to external vendors in connection with the Company’s internal business activities.   Conflicts of interest / Ethics     Maintains a strict ethical code of conduct, including the following:    No (non-indirect) contact with the employee, including but not limited to, a publication of unsolicited business tactics, actions or representations. No appearance of undue influence on our internal or external vendors, vendors, staff, or the Executive team  No unlawful communication of information to the employee, including posting on LinkedIn in an effort to influence the employee to choose those indicated by the employee in conversations with the Executive team.

至少,这种模式产生了一个有点令人信服但毫无吸引力的招聘信息(因为报酬低)。

下面是我放入标题Accountant得到的。

Benefits & Duties
        Estimates and analyzes information received from users, employees, clients and vendors. Makes recommendations to manage and improve the business, financial status and business operations of the enterprise and manages and provides service to individual client/ vendor groups. Assesses future compliance requirements to ensure success for the company.Comprehensive Coordination of Strategy, Product Management, Business Development and Process Development, Demography, Manager Development, Information Assurance, Remediation, Cost Accounting and Risk Management. Conducts budgeting audits to ensure alignment with overall company budgets and objectives.      Manages transactional relationships with other departments and programs.   Is helpful with weekly recurring updates and Budgeting etc.     Acts as a liaison with senior team leaders.     Acts as the information or research advisor to all members of the company. Acts as a front-line caseworker or an internal consultant on any product, plan, initiative or project.  At least 4 years of experience dealing with varied budgets.        Experience with Salesforce, Salesforce Hadoop or Equation, CRM, MySQL, Puppet or Redshift, CRM Software, CRM Storage, Data SaaS or Any other software or scripting language.       Experience with SQL.    Experience with the SQL Server Standard Database (SSD). Experience with assisting vendors in data warehousing.  Proven record in the ability to manage and address the following activities for a variety of operational tasks as well as tasks and processes within an enterprise.        Benefits        We offer monthly or weekly 401k plan, 24/7 live chat, Senior management and the ability to setup a monthly IRA.    The opportunity for advancement in this position is open to all employees with similar experience and ability to perform the duties as required.   Job Type: Full-time     Salary: $60,000.00 to $60,000.00 /year  Experience:     Scheduled B2B or B2C: 3 years (Preferred)  Location:       San Francisco, CA (Preferred)   Work authorization:     United States (Required)        Benefits offered:       Paid time off   Health insurance  Dental insurance Retirement benefits or accounts Commuting/travel assistance     Paid Training:  Yes     Pay Frequency:  Bi weekly or Twice monthly<|endoftext|>

除了技术要求(MySQL、Puppet、Redshift 等)之外,这实际上看起来像是一个会计岗位。).

不幸的是,并不是所有我给模型的提示都很成功。这是我输入标题Data Engineer后得到的结果。

Keywords: Customer Relations, Relationship Management, Sr. Service, Sr. Education, Service, Sr. Data Management, Sr. Data Analysis, Sr. Technical Support, Sr. User Experience, Sr. Service, Sr. Customer Relationship Management, Sr. Data Analysis, Sr. Quality Assurance, Sr. Products & Services, Sr. Business Development, Sr. Management, Sr. Director, Sr. Legal, Sr. Manager, Sr. Counsel, Sr. Account Executives, Sr. Employees and Accounts, Sr. Regulations and Rules, Sr. Business Development, Sr. Business Development, Sr. Business Development, Sr. Business Development, Sr. Business Development, Sr. Business Development, Sr. Business Development, Sr. Business Development, Sr. Business Development, Sr. Business Development, Sr. Business Development, Sr. Business Development, Sr. Business Development, Sr. Business Development, Sr. Business Development, Sr. Business Development, Sr. Business Development, Sr. Business Development, Sr. Business Development, Sr. Business Development, Sr. Business Development, Sr. Business Development, Sr. Business Development, Sr. Business Development, Sr. Business Development, Sr. Business Development, Sr. Business Development, Sr. Business Development, Sr. Business Development, Sr. Business Development, Sr. Business Development, Sr. Business Development, Sr. Business Development, Sr. Business Development, Sr. Business Development, Sr. Business Development, Sr. Business Development, Sr. Business Development, Sr. Business Development, Sr. Business Development, Sr. Business Development, Sr. Business Development, Sr. Business Development, Sr. Business Development, Sr. Business Development, Sr. Business Development, Sr. Business Development, Sr. Business Development, Sr. Business Development, Sr. Business Development, Sr. Business Development, Sr. Business Development, Sr. Business Development, Sr. Business Development, Sr. Business Development, Sr. Business Development, Sr. Business Development, Sr. Business Development, Sr. Business Development, Sr. Business Development, Sr. Business Development, Sr. Business Development, Sr. Business Development, Sr. Business Development, Sr. Business Development, Sr. Business Development, Sr. Business Development, Sr. Business Development, Sr. Business Development, Sr. Business Development, Sr. Business Development, Sr. Business Development, Sr. Business

那……肯定不太对劲。不幸的是,细胞核取样在这里似乎没有帮助。我猜这份工作真的想强调数据工程的高级业务开发部分。

这里有一个职位为Hairdresser的招聘启事。

(Bon Appétit)Weekends:Monday-Friday 8:30am-6:00pm 9:30am-6:00pmPacific Crest:Monday-Friday:9am-5pmSaturday:8:30am-5:00pmSunday:Sunday (Saturdays)LeasingPlace:DeKalb CityWest RdSuite 1Roof and Mountainen AvenueRoofloomTalk, Portland (Parker and Union)Classic per H&R Block & Perk Parking standing space,hence a classification plan on top of downtown.Signed off on per week specials for entire week:Shipping directly to the studio, resupply on weekends through outship.Trash coasters, pots, microwaves, polishing and several other applications.Comfortable with special requests, and have a personable attitude to being so passionate about who we are, what we do and what we do not do.Registered Shift Coordinator with little or no day time schedule. Problem solve immediately after shift departure is preferred.One hour shift and are paid $10 an hour. This is a great opportunity for a respected, experienced shift coordinator who has a sense of humor and a creative spirit. If you are a quick learner (starting at age 5) who can handle a lot of other people or live in a city with a lot of low-paid companies, this is the job for you.Profit Sharing expense. Is paying a server a 50% or 75% discount on pizza when you are a client. The Best Option for someone who wants to start in the world. We are your dream employer. All sales are privately owned and open to all candidates and we're a super fun job.We provide full service for both our clients and staff. We treat each client with dignity and respect.We are welcoming and responsible for all activities and expenses. Ensure reasonable accommodations for other clients and employees when applying.We work hard to give you the best possible business experience that reflects our highest standards. We have a tough time accepting positive but not hostile feedback.We can do better than that.Please send an email to the ideal candidate.
Required:
If you are not currently an Employer with your private hire preference, please send this info along with your preferred picker:
Yes (Please Subject Link an Email with the relevant info). Please include:
Yes (Please Subject Link an Email with the relevant info). Please include: Yes (Please Subject Link an Email with the relevant info).
Rec

这是我个人最喜欢的之一,因为它是如此的荒谬。我特别喜欢We are your dream employer.If you are a quick learner (starting at age 5) who can handle a lot of other people or live in a city with a lot of low-paid companies, this is the job for you.这两句台词,它们是对招聘广告中一些台词的滑稽模仿;如果我不知道的话,我会说写这个的人在喜剧界有前途。

想法&建议

虽然我没有任何严格的统计数据来说明为什么某些招聘信息不尽如人意,但我怀疑这要么是因为缺乏数据,要么是因为培训不够。职位列表中有不少带有“工程师”字样的职位,包括Biological EngineerChemical EngineerDevOps EngineerChief Engineer等。我怀疑这个模型不能用所提供的数据量来区分不同的工程职位。或者,数据可能已经足够了,但是在 CPU 上训练 8 个小时可能还不够。如果你决定训练你自己的 GPT-2 模型,我建议你获取比我更多的数据,或者训练比我更长的时间以获得更好的结果。

看起来,至少 GPT-2 学会了招聘启事的一般结构和表层语义理解,但似乎缺乏对什么适合或不适合招聘启事的更深层次的理解。虽然这些精选的样本肯定不比网上的好,但很难判断其中是否有一些是假的,而且对其在更广泛的社会中使用的担忧似乎是相当合理的。

因此,我最初问题的答案似乎是(至少是轶事般的)是的,GPT-2 可以产生一个连贯的招聘启事,是的,GPT-2 可以产生比已经存在的更荒谬的招聘启事。

如果你想知道更多关于 GPT-2 如何工作的技术细节,看看这篇博客文章,它有一个很容易理解的解释和更多的技术细节资源。

像往常一样,如果您有任何问题或建议要改进,请告诉我。

这种随机的生活

原文:https://towardsdatascience.com/this-stochastic-life-5146368bfd59?source=collection_archive---------23-----------------------

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

Source: Wikimedia Commons under CC BY-SA 3.0

我们日常生活中有趣的随机线索

现在是早上。我的咖啡杯装得太满了。我心不在焉地盯着从杯子边上滴落的一滴水。它沿着一条曲折的道路努力到达底部。有那么一会儿,我支持它,然后我注意到时间,开始行动。那天早上晚些时候,我开车去上班,停好车,走出停车场,然后撞上了一位久违的朋友。我和我的朋友都不知道,我们的眼睛以一种看似随机的几何图案扫描对方的脸几十次,直到大量的相互识别出现。中午时分,我在附近的一家餐馆又赶上了他。这个地方又挤又吵。灵光一现,我打开手机上的谷歌科学杂志应用程序,开始记录我周围的分贝水平。三十分钟后,我停止录音,把手机放回口袋,付了账。我们走出餐厅,握了握手,并承诺很快会再这样做,我们走在下午的阳光下。

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

Noise level in dB measured at a restaurant over a period of 30 minutes (Image by Author)

当谈到将随机性编织到我们的生活中时,大自然选择了长线。无论是蜿蜒的一滴咖啡,还是当我们扫描一张脸时眼睛追踪的模式,或者是房间里的噪音水平,或者是我们每天早上喝咖啡的次数,或者是淋浴的时间,或者是我们花在通勤上的时间,或者是我们每天发送的电子邮件数量,我们永远都在编织一系列又一系列的随机事件。

然而,尽管有这些随机性,我们的生活并不是一团乱麻。我们的生活有一个结构,并且有相当多的可预测性。

要了解原因,我们必须仔细观察这些随机现象。当我们仔细观察时,我们会发现一些有趣的特征。

有界性

首先容易发现的是,我们所谓的随机实际上是在 a 值范围内有界的。当然,有几天交通拥堵得令人麻木,但在大多数日子里,我每天都在同一时间到达工作地点,相差 30 分钟。

相同分布

在现实生活中,影响某种特定随机结果的不同因素,比如我周一上午会议的持续时间,从一个周一到下一个周一不会有太大变化。

我发现我的工作场所会议的持续时间会受到出席人数、议程上的主题数量、主题类型以及其他一些因素的影响。在任何一天,都会有很多相同的因素。

这个性质的实际后果是,随机变量,星期一会议的持续时间,具有与下星期一会议相同的可能性分布,以此类推。我们说随机变量——周一会议持续时间——是同分布的。每个随机值都是从相同的值分布中抽取出来的。

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

(Image by Author)

独立(或不独立)

另一个值得注意的特点是,以前的结果并不总是影响今天的结果。例如,我昨天午餐吃了多少口,通常不会影响我今天吃多少口三明治。两个随机变量:昨天的叮咬和今天的叮咬是相互独立的。

但这种类型的独立并不总是可见的。例如,当餐馆里的吵闹声越来越大时,人们开始大声说话以使自己被听到,然后其他人不得不通过扩音器更大声地说话以使自己被听到,等等。随机变量——餐馆的分贝水平——不具有独立性。事实上它是 自相关

这种相关性的实际后果是,我的手机一秒钟前记录的分贝水平可能被用来预测下一秒钟将记录的值。

人们可以将前两个属性合并成一个新属性。

独立同分布变量

当序列中的随机变量具有相互独立的结果,并且它们也具有相同的概率分布时,它们被称为独立同分布变量。

I.i.d .变量似乎在很多情况下都会突然出现。如果你花一分钟时间凝视一条繁忙的街道,记下路过的每辆车的品牌,你将构建一个随机序列,如下所示:

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

A random sequence of vehicle occurrences by brand. Random variable = vehicle brand (Image by Author)

这里的随机变量是经过的车辆的品牌。在这一秒钟里,你会看到一辆尼桑、一辆福特、一辆吉普或任何其他品牌的汽车,这并不取决于前一秒钟经过的是哪一个品牌的汽车。所以变量的结果是相互独立的。

此外,在这一秒看到尼桑或福特或吉普的概率与在下一秒分别看到尼桑或福特或吉普的概率相同,并且在之后的第二秒分别相同,以此类推。因此,变量也同样分布。它们的结果都来自同一个分布。

其他 id 序列的例子有一系列的硬币投掷,任何种类的随机噪音,如电话线上的嘶嘶声,以及在公共汽车站排队的人的年龄。

但是在现实生活中, i.i.d .变量很少。如果一个人足够深入地观察这一现象,他通常可以发现某种因果关系或某种相关性的证据。但是如果一个人愿意在纯粹性标准上放松,那么 i.i.d .变量序列确实到处都可以找到。

那么 i.i.d .变量有什么大不了的?

I.i.d .原则被用来发现你辛辛苦苦构建的预测模型是否值得你骄傲。这种确定工作如下:

  1. 创建模型。
  2. 使其符合训练数据。
  3. 生成残差的时间序列。
    残值=观察值减去模型预测值。
  4. 检查残差的时间序列是否满足 i.i.d .的标准,即残差值不是自相关的,而是同分布的。
  5. 如果满足这些标准,特别是独立性标准,残差的时间序列代表纯噪声,并且您的模型是您数据集的最佳模型。
  6. 另一方面,如果剩余时间序列不满足 i.i.d .属性,这意味着剩余时间序列中仍有一些您的模型无法检测到的“信号”。因此你需要改进你的模型。

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

A simple way to use i.i.d. variables in time series forecasting (Image by Author)

一些常见的随机过程

我们注意到随机序列的惊人特性:无论产生这些序列的环境有多么不同,它们中的许多都有惊人的相似之处。正是这些相似性让我们能够非常详细地研究随机序列。我们首先把它们分成这样或那样的类型。

让我们看看一些常见的序列类型以及它们出现的情况。

我的伯努利通勤

在我每天上班的路上有一个我习惯性避免的坑。事实上,我的路线上有许多坑洼,但我现在会谈论这一个。

为了避开坑洞,我不得不把车开到坑洞的左边,或者右边。在任何一天,我采取的策略取决于我的速度、接近角、我的车旁边是否有车辆等等。但影响我策略的总是同一套因素。如果每天我都记下我是导航到了坑洞的左侧还是右侧,我会得到这样的时间序列:

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

A Bernoulli Sequence (Image by Author)

这是一个伯努利序列的例子。

一个特定的伯努利序列是伯努利过程的一个实现,伯努利过程由同 i.d .随机变量组成。

序列中的每个结果,如左或右,都是一个伯努利试验的结果。

对于一个符合伯努利试验的结果,左和右两个可能的结果都需要有一个固定的概率:p 和(1-p)。如果我们将值与左和右的结果相关联,如下所示:左=0,右=1,伯努利序列的图将如下所示:

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

A 0–1 Bernoulli Sequence (Image by Author)

我想要的只是一个简单的伯努利通勤,但我得到的是一个…计划??

尽管我已经把它理解成一门近乎完美的科学,但有时我还是会忘记那个坑,直接开车去撞它。所以在现实生活中,我的伯努利过程是多值,它看起来像这样:

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

A Bernoulli Scheme (Image by Author)

像这样的多值伯努利过程被称为伯努利方案

如果我们将值-1 赋给左边,0 赋给凸起,1 赋给右边,我们将得到这样一个随机序列:

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

(Image by Author)

伯努利方案也是独立同分布变量的随机时间序列。但是在伯努利方案中,每个变量可以取许多值 v1,v2,v3…vn 中的一个,每个都有固定的概率 p1,p2,p3…pn ,比如所有概率之和等于 1.0。

因此,伯努利方案可以被认为是伯努利过程的推广。

随意走到浴室

下次你看到树叶在微风中沙沙作响,或者旗帜在风中飘扬,或者你的雨伞在暴风雨的日子里在你的头上被扔来扔去,想想随机漫步过程。树叶或旗帜或雨伞上的任何一点所采取的几何路径是三维的随机行走。

如果你想知道的话,你每天早上从床上到浴室的东倒西歪并不是随机漫步。我们一会儿就知道为什么不是了。

同时,简单的一维随机行走可以被认为是伯努利过程的简单扩展。要计算随机行走序列中下一个点的值,需要做三件事:

  1. 进行一次伯努利试验,其中两个结果中的一个赋值-1,另一个赋值+1。
  2. 将您刚刚获得的随机结果的值添加到您正在构建的随机行走序列的当前值中。这将给出序列中的下一个值。下一个值现在成为序列中的当前值。
  3. 根据需要多次重复步骤 1 至 3。

实际上,RW 序列中的下一个值是迄今为止所有伯努利试验结果的标量或矢量和。

下图显示了使用上述程序人工生成的 1-D 随机行走序列:

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

A 1-dimensional random walk (Image by Author)

这种一维随机游走,如果持续很长一段时间,有回归到平均值的趋势,这是…你猜对了!零。

现在去我的浴室怎么样?

在自然界中,纯粹的随机漫步是罕见的,原因与纯粹的伯努利序列是罕见的一样。看起来像随机漫步的序列通常不是这样。

因此,你会被原谅,因为你相信每天早上当你的脚带着你的身体离开床走向浴室时,它们所走的路是随机的。即使这看起来像是随机漫步,但事实并非如此,原因如下。

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

My morning stagger (Image by OpenClipart-Vectors from Pixabay under Pixabay license)

请注意,当你的脚落在地板上的某个地方时,你的身体向那个方向倾斜,导致你的大脑让你的另一只脚落在一个位置,以补偿这种倾斜,从而防止你翻倒。

因此,在一个时间步中,你的脚在地面上的位置与你另一只脚在上一个时间步中的位置相关。

因此,即使单个脚的位置可能来自相同的分布,两只脚的位置也很难相互独立。换句话说,你的早晨错开是一系列结果(可能)是同分布的,但绝大多数肯定不是独立的。因此不是随机漫步!

正是这些细微之处使得大多数类似随机漫步的过程无法成为真正的随机漫步。

股票好像赚不到钱。它们肯定都是随机漫步吗?

被认为是随机游走的一个著名例子是股票价格的上下波动。有人认为股票价格是以随机游走的方式运动的。根据这一假设,通过在短时间内进行高频率交易,不可能在股票市场上赚很多钱。但是这个观点被争议

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

FTSE-100 index 1984–2014 (Source: Wikimedia Commons under CC BY-SA 3.0)

现在回顾一下随机过程的一些基本性质

  1. 随机过程是随机变量的有序序列。
  2. 随机变量可以相互独立,也可以不相互独立。
  3. 随机变量可以具有或不具有相同形状的分布。
  4. 随机过程要么是平稳的,也就是说,用外行人的话来说,它不表现出任何趋势,要么,它可能表现出各种趋势,如周期、季节性或特定的局部或全局趋势。
  5. 如果一个随机过程由独立同分布的随机变量组成,那么它就是一个严格的平稳过程。它没有表现出任何趋势。
  6. 随机序列是随机过程的实现

记住这几点,让我们再来看一个随机过程。这是令人难以置信的普遍和非常有用的…鼓作用…泊松过程。

泊松过程

泊松过程由一系列随机变量组成,每个随机变量遵循泊松分布。这就引出了一个问题,什么是泊松分布?我举个例子解释一下:

假设你是一名城市规划者,任务是计算出你所在城市的一些街道要加宽多少,以便它们能够支持未来 5 年的交通增长。就其中一条街道而言,交通预测显示,五年后,平均每分钟将有 40 辆车来往该街道的各个方向。

请注意,您拥有的预测数据是针对 平均 流量的。因此,从现在起 5 年后,*在任何给定的分钟内,*在那条道路上行驶的车辆的实际数量可能是 0、5、20、32、44……几乎是道路的最大物理容量的任何随机值。

那么你应该拓宽街道以容纳每分钟 45 辆车,还是每分钟 50 辆车,还是 55 辆车…?

如果有人告诉你,流速是每分钟 45,或每分钟 50 或 55,等等,会对你有所帮助。然后,您可以决定只规划出现概率比平均值大 2 个标准差的交通流率。

在这个例子中,随机变量’ X’ 是每分钟的车辆数。如果你假设这个随机变量具有泊松分布,你将通过使用下面的公式得到你需要的概率信息:

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

Formula for the Poisson distribution (Image by Author)

其中 X =表示流速的随机变量。
P_X(k)是每分钟看到 k 辆车流量的概率。
λ=平均流量。在我们的例子中:λ=每分钟 40 辆车。

上述公式被称为泊松分布的概率质量函数(PMF ),产生以下概率曲线:

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

(Image by Author)

红线标出了在 2 个标准偏差处的流速,即 0.037295,远离该分布中发生的平均可能性 0.009901。该点比平均概率 0.009901 大两个标准差,对应于每分钟 45 至 46 辆车的流量。

现在根据你得到的道路宽度表的流速,你现在可以建议道路加宽,比如说,每边 12 英尺。从现在起,这应该涵盖大约 95%的可能流速。

是不是很酷?

既然我们知道泊松分布是多么的有用,让我们重新关注泊松过程,我们之前说过它是一个泊松分布的随机变量序列。

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

A sequence of Poisson distributed variables (Image by Author)

上图中, X_0,X_1,X_2,…X_k 是个体随机变量,每个都有一个泊松分布。

但是泊松过程不仅仅是一系列的泊松变量。

泊松过程还可以告诉你从测量开始到某个时间 t 某个事件发生的频率。

换句话说,我们需要定义一组新的随机变量 X(0),X(1),X(2)…X(t) ,使得:

X(0)= t = 0 时发生的事件数。这个值通常被认为是零,这是序列的初始值。
【X(1)= t = 1 时发生的事件数,依此类推,直到,
X(t)= t 时发生的事件数。

正是这些随机变量: X(0),X(1),X(2)…X(k)…X(t) 实际上构成了我们认为的泊松过程。每一个都表示在一段时间 t 内已经发生的事件的数量

那么对于 X(0),X(1),X(2)…X(k)…X(t) 的分布我们能说些什么呢?

神奇的是,而且这一点都不明显,至少对我来说不是,可以非常优雅的证明 X(0),X(1),X(2)…X(k)…X(t) 也服从泊松分布!

这一发现再次证实了我们最初对泊松过程的定义,即泊松分布变量的集合。

泊松过程无处不在,在超市的收银台,在麦当劳的免下车窗口,或者在你医生的候诊室。或者甚至在一个非常小的尺度上:从你打开开关的时刻到某个时间 t,通过导体横截面的电子数量,可以用泊松过程来建模。

何时使用泊松模型

在对时间序列现象进行建模时,当您注意到以下情况时,应该考虑基于泊松过程的模型:

  1. 事件发生的 平均 速率你是知道的。例如,平均每小时有 20 辆汽车到达免下车窗口。
  2. 在任何时间间隔内发生的事件的实际数量恰好围绕平均速率随机波动。
  3. 在任何时间间隔内发生的事件数量与任何其他不相交时间间隔内发生的事件数量无关。用技术术语来说,该过程被称为具有独立增量的属性。
  4. 最后,假设任何时间间隔内的事件分布为泊松分布,并且您怀疑该分布的形状仅取决于所考虑的时间间隔的长度,例如 10 分钟、1 小时、1 周、30 秒等。换句话说,分布的形状不取决于序列中区间的位置。这是过程静止的标志。

还有许多其他有趣的随机过程,我们在日常生活中会不知不觉地遇到。一些众所周知的是:

二项式过程——想想在 n 次掷硬币中得到 k 个人头的概率的实验,

马尔可夫链其中下一个事件依赖于(并且依赖于)前一个事件的值。换句话说,这与我们之前讲的伯努利序列完全相反,在伯努利序列中,每个事件都完全独立于其他事件,

和维纳过程,后者本质上是随机行走的推广。这基本上是一个非常微小的步伐随机行走。布朗运动可能是维纳过程最著名的例子。

所以下次你发现一些看起来随机的东西,退后一步,看看它是否是一个更大的随机难题的一小部分,一个可以通过这些美丽的过程之一来建模的难题,从中会出现有趣的预测。

相关阅读

[## 泊松分布公式的直觉

这是二项式的极限。但是为什么呢?

towardsdatascience.com](/the-intuition-for-the-poisson-distribution-formula-34c5e52f4e04) [## 泊松过程:你需要知道的一切

并学习如何使用 Python 来模拟它

towardsdatascience.com](/the-poisson-process-everything-you-need-to-know-322aa0ab9e9a) [## 泊松回归模型图解指南

和使用 Python 的泊松回归教程

towardsdatascience.com](/an-illustrated-guide-to-the-poisson-regression-model-50cccba15958) [## 负二项式回归:逐步指南

外加一个关于负二项式回归的 Python 教程

towardsdatascience.com](/negative-binomial-regression-f99031bb25b4)

如果您喜欢这篇文章,请关注我的Sachin Date以获得关于回归、时间序列分析和预测主题的提示、操作方法和编程建议。

这个东西叫做重量衰减

原文:https://towardsdatascience.com/this-thing-called-weight-decay-a7cd4bcfccab?source=collection_archive---------0-----------------------

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

介绍

在我之前的文章中,我提到过数据增强有助于深度学习模型很好地推广。那是在数据方面。事情的模型方面呢?在训练我们的模型时,我们能做些什么来帮助他们更好地概括。

我们做 重量衰减

模型的参数

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

我们从上面的图片开始。我们看到我们有一堆数据点,我们不能用一条直线很好地拟合它们。因此,我们使用一个二次多项式来这样做。我们还注意到,如果增加多项式的次数超过某个点,那么我们的模型就会变得太复杂,并开始过度拟合。

这意味着为了防止过度拟合,我们不应该让我们的模型变得太复杂。不幸的是,这导致了深度学习中的一个误解,即我们不应该使用大量的参数(为了防止我们的模型变得过于复杂)。

重量衰减的起源

首先,真实世界的数据不会像上面显示的那样简单。真实世界的数据是复杂的,为了解决复杂的问题,我们需要复杂的解决方案。

拥有更少的参数只是防止我们的模型变得过于复杂的一种方式。但这实际上是一个非常有限的策略。更多的参数意味着我们神经网络各部分之间更多的相互作用。更多的互动意味着更多的非线性。这些非线性帮助我们解决复杂的问题。

然而,我们不希望这些交互失去控制。因此,如果我们惩罚复杂性。我们仍然会使用很多参数,但是我们会防止我们的模型变得太复杂。体重衰减的想法就是这样产生的。

在我关于协同过滤的文章中,我们已经看到了权重衰减。事实上,fastai 库中的每个学习者都有一个参数,叫做权重衰减。

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

这个东西叫做重量衰减

惩罚复杂性的一种方法是将我们所有的参数(权重)添加到损失函数中。嗯,那不太管用,因为有些参数是正的,有些是负的。那么如果我们把所有参数的平方加到损失函数中。我们可以这样做,但这可能会导致我们的损失变得如此巨大,以至于最好的模型是将所有参数设置为 0。

为了防止这种情况发生,我们将平方和乘以另一个更小的数。这个数字叫做 重量衰减wd.

我们的损失函数现在看起来如下:

Loss = MSE(y_hat, y) + wd * sum(w^2)

当我们使用梯度下降更新权重时,我们执行以下操作:

w(t) = w(t-1) - lr * dLoss / dw

既然我们的损失函数有两项,那么第二项的导数 w.r.t w就是:

d(wd * w^2) / dw = 2 * wd * w (similar to d(x^2)/dx = 2x)

也就是说,从现在开始,我们不仅要从权重中减去learning rate * gradient,还要减去2 * wd * w。我们从原来的重量中减去一个常数乘以重量。这就是为什么它被称为重量衰减。

决定 wd 的值

一般来说,wd = 0.1工作得很好。然而,fastai 的人在这方面有点保守。因此 fastai 中重量衰减的默认值实际上是0.01

选择这个值的原因是,如果你的体重下降太多,那么无论你训练多少,这个模型都不会拟合得足够好,而如果你的体重下降太少,你仍然可以训练得很好,你只需要稍微早一点停止。

我已经在这个 jupyter 笔记本中演示了这个概念。

这是一个多类别(而不是多标签)分类问题,我们试图预测植物幼苗的类别。

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

我使用了 3 个重量衰减值,默认值0.01,最佳值0.1和一个大值10。在第一种情况下,我们的模型需要更多的时期来适应。在第二种情况下,它工作得最好,而在最后一种情况下,即使在 10 个时期之后,它也从来没有完全适合。(参见差异 b/w 培训和验证损失。)

这就是本文的全部内容。你可以在这里了解其他正规化技术

如果你想了解更多关于深度学习的知识,可以看看我在这方面的系列文章:

[## 深度学习系列

我所有关于深度学习的文章的系统列表

medium.com](https://medium.com/@dipam44/deep-learning-series-30ad108fbe2b)

~快乐学习。

这是在哥本哈根举行的 2019 年第 13 届推荐系统会议

原文:https://towardsdatascience.com/this-was-the-13th-conference-on-recommender-systems-2019-in-copenhagen-db438e1495c2?source=collection_archive---------19-----------------------

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

Image with Courtesy taken from https://recsys.acm.org/recsys19/

9 月是全球推荐系统社区繁忙的一个月——这两周充满了来自学术界和工业界的最新科学见解和应用,约有 1000 人聚集在丹麦和瑞典。作为推荐系统研究的领先会议,第 13 届 ACM 推荐系统会议于 9 月 15 日至 20 日在哥本哈根举行。它以周日的博士研讨会开始,随后是三天的主要会议,最后两天是大量的研讨会和辅导。就在北边 230 公里处,一周前哥德堡举办了关于推荐系统的 ACM 暑期学校,作为主要会议的预备项目,该学校也提供了大量的见解。

RecSys 2019 中的几个数字…

  • 909 名参与者:73.4%来自工业界,26.6%来自学术界
  • 主要会议:2 场主题演讲,7 场论文会议,每场 6 场演讲,以及 2 场行业会议
  • 6 次辅导和 12 次研讨会
  • 36/189 份长篇论文被接受(19%)
  • 40/165 篇短文被接受(24%)
  • 提交最多的前三名国家:美国(22.0%)、中国(9.3%)、德国(7.1%)

RecSys 研究的责任、可重复性、进展和影响

今年的 RecSys 创下了新的参与者记录,并提供了有见地的主题演讲、论文、海报和行业演示,以及一个大的交流空间。它还充满了对推荐系统研究的科学实践、严谨性、相关性和影响的合理和建设性的批评。这种批评是由外部演讲者和深入研究社区的人提出的。

主要会议的第一天以米蕾尤·希尔德布兰特关于“从行为主义者的梦中醒来”的主题演讲开始。方法论的完整性与 GDPR 的“T1”。作为一名职业律师以及布鲁塞尔和奈梅亨的教授,她致力于法律和技术的交叉领域(参见她的书:计算机科学家的法律)。她以功能失调的行为广告为例,将行为搜索、广告和推荐系统的结合与打开潘多拉魔盒相比较。她提倡更科学的严谨性,并质疑推荐系统所带来的反馈循环。她的演讲引发了一场关于定量研究的相关性的有趣讨论,如果定量研究过于主导,可能会破坏研究的其他相关方面,如以可证伪的方式正确呈现假设

“不做假设,我们甚至不能把脚抬离地板.”

她结束了自己的演讲,主张降低研究速度,但提高质量(为了好的方面)。

她的演讲只是对推荐系统研究者的一系列令人耳目一新的忠告之一。今年的最佳长论文奖颁给了作品“我们真的有很大进步吗?对最近神经推荐方法的令人担忧的分析。他们对近年来在顶级会议(KDD、SIGIR、WWW、RecSys)上发表的 18 篇提出神经网络方法的论文进行了批判性评估。在他们的论文中,他们专注于两个标准,可重复性和进展。不仅他们只能复制 7 篇论文,即 39%,而且他们可以用简单的基线击败大多数结果,这一事实让观众感到惊讶,并强调了担心的必要性。
这篇论文是建设性的,除了批评之外,它还为更具可重复性和竞争力的未来研究提供了建议。此外,它承认数据集、评估协议、指标和基线的变化使得很难找到共同点。就个人而言,我认为我们都认识到深度学习在推荐系统中非常有用,它已经成为推荐系统不可或缺的一部分。但它的有用性取决于数据量和稀疏性,以及神经模型预测上下文、顺序和边信息的程度。处理多模态是深度学习的一个巨大优势,不言而喻的是,这些数据——如果可用的话——应该被用来更好地个性化(另见
Twitter 上的这个讨论)。因此,我认为这些批评更多地是对以下几点的个人建议:

  • (更好地)证明根据上下文使用评估协议的合理性(这在已经“神经前”的时代被认为是有问题的)
  • 提供您的结果所基于的代码、数据和模型
  • 共享用于预处理、超参数优化、评估和基线的代码,以允许独立验证
  • 通过选择正确调整和完整描述的适当基线算法,避免神经网络方法的虚幻进展
  • 不要仅仅因为其他神经模型的复杂性,就想当然地认为它们是竞争性基线
  • 利用适当的技术来促进可重复的研究,如打包、虚拟环境和虚拟化

特别是,关于最后一点,我强烈推荐 PyCon 的这个演讲。Valerio Maggio 关于“机器学习中的再现性和选择偏差”的 DE 2018。它包括关于如何使您的作品可复制的实用建议:

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

Slide from “Reproducibility, And Selection Bias In Machine Learning” by Valerio Maggio at PyCon.DE 2018

缺乏可重复性似乎不仅是 RecSys 研究中的一个明显问题,在其他与人工智能相关的领域也是如此。截至 2019 年,NeurIPS 的第一个再现性主席遇到了这个问题,并要求提交者检查机器学习再现性清单,作为论文提交过程的一部分。这也有利于 RecSys 会议为可重复研究寻找共同基础。

然而,最终,我们应该避免将草率的科学实践与深度学习的潜在劣势混为一谈,并努力使我们的结果稳健而持久。这种分离和严格性也确保了深度学习或其他有前途的方法不会不公平地归因于糟糕的结果。

最后但同样重要的是,明尼苏达大学教授、著名的 GroupLens 研究实验室负责人约瑟夫·康斯坦(Joseph Konstan)在关于推荐系统影响的第一次研讨会的主题演讲中分享了他的愤怒。

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

Slide from Joseph Konstan’s Keynote on “Recommending for Impact: Intentions, Algorithms, and Metrics”

这与之前 RecSys 会议上提出的批评如出一辙,即太多方法只关注排名指标的优化。但是他们有更多的目标——如果处理得当——也可以预见到很多对个性化的社会批评。例如,这涉及到更多样化、更偶然的推荐和更高的公平性。然而,我相信这种主题多样性至少在研讨会中获得了更多的关注,例如,谷歌首席科学家 Ed Chi 在关于多利益主体环境中的建议的研讨会(RMSE) 中发表了关于“从阿罗不可能定理到多利益主体、多任务和更具包容性的建议”的主题演讲。

一些亮点

尽管有这些批评,但还是有光明。社区用来自多年深入研究的声音来质疑自己。在我看来,社区层面的自我批评和告诫强调了研究社区的健康。结合推荐系统日益增长的相关性及其在指导行动中的影响和责任,我们面前有大量的工作要做。围绕深度学习和强化学习,尤其是 bandit 算法,有许多伟大的贡献。但是该领域也变得更加多样化,如上所述,在多目标、多任务和多利益相关方方法方面做出了贡献。总会有令人耳目一新的方法和领域出现,例如都柏林大学的 Berndsen 等人的最佳短文奖“Pace My Race:recommended for Marathon Running”。他们的方法为马拉松运动员提供实时指导,调整和解释建议,以确保他们到达终点并保持理想的配速。

特别是,关于建议的强化和稳健估计器的展示研讨会是会议结束时的一个亮点。Craig Boutilier 就推荐系统的强化学习的一些挑战发表了颇有见地的主题演讲还宣布了 RecSim:一个可配置的推荐系统模拟平台。这是继去年发布的 reco-gym 之后,Criteo 推出的在线广告产品推荐强化学习环境。紧接着,Criteo 还宣布了它的 RecoGym Challenge 将于 10 月 1 日开始,持续两个月。

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

Data Flow through components of RecSim (from the RecSim Whitepaper)

网飞、、Spotify 和脸书的附加演讲概述了当前行业中的热点研究问题。一个值得注意的贡献是由 Christakopoulou 等人提交的关于“对一个被遗忘的推荐者的对抗性攻击”的论文,该论文展示了用对抗性例子欺骗推荐者的不同方法的有趣分析。我也很欣赏 Yves Raimond(网飞)关于如何理解当今推荐者的信息成分的建议:

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

Yves Raimond from Netflix on a new Perspective towards Recommender Information Components (taken from https://twitter.com/ACMRecSys)

接下来,关于 RecSys Challenge 2019 的研讨会提供了更多实用的见解,五个最佳团队在来自全球酒店搜索平台 trivago 的真实数据集上展示了他们基于会话和上下文感知推荐的解决方案。许多与会者称赞数据集的丰富性和结构,我们希望它将很快公开,以丰富会议和背景感知环境中的研究。

除此之外,RecSys 还在一天的会议之后提供了大量的精彩活动。因此,我们可以在周一的第凡尼欢迎招待会上继续交流,地点在哥本哈根历史悠久的市中心游乐园,喝点好酒。随后,周二在一个旧的机车车间举行了节日宴会,之后按照一个古老的习俗举行了卡拉 ok 之夜。周三,Twitter 邀请参加一个体面的酒吧会议,随后是 Zalando 的 RecSys Afterparty。因此,在顶部有许多伟大的讨论和聚会,而不仅仅是一个会议日,人们不仅享受科学,也享受他们自己。

期待 RecSys 即将举办的活动和会议

这一审查可以无休止地继续下去,但它应该是一个概述和总结。因此,以此为切入点,在 RecSys 2019 的计划中寻找更多内容,或查看会议记录 —确保在论文被放入 ACM 的付费墙之前尽快下载目录下引用的论文。

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

Image with Courtesy taken from https://recsys.acm.org/recsys20/

写完这篇文章后,让我们来展望一下 RecSys 日程上即将举行的活动。10 月,将在巴西福塔莱萨举办拉丁美洲推荐系统学校。它是定于 2020 年 9 月 22 日至 26 日在里约热内卢举行的 RecSys 2020 的预备项目。与此同时,看看 2019 年 11 月 29 日在阿姆斯特丹举行的第 18 届荷兰-比利时信息检索研讨会——阿姆斯特丹也是 2021 年第 15 届 RecSys 的举办城市。此外,除了所有这些事件,同时跟踪 Arxiv 的 IR 频道上发布的内容。

那些种族主义机器人…

原文:https://towardsdatascience.com/those-racist-robots-c31306d6627f?source=collection_archive---------18-----------------------

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

Photo by Alex Knight on Unsplash

人工智能(AI)是最热门的话题之一,尤其是关于机器人是否有可能接管世界的整个辩论。不管我们认为人工智能是我们历史上的一项实际进步,还是只是积累知识的又一次鲁莽、笨拙的整合,大多数人都对这个话题感兴趣。

人工智能在机器人技术中是必不可少的,尤其是在建造人形机器人方面。这包括数据的深层表现,通常以基于机器学习的方法,使机器人*“做机器人的事情”*。不可否认的是,机器学习(即当今人工智能的适用领域)彻底改变了我们思考和操作技术的方式。不管我们是否意识到,在这个网络环境中,人工智能和机器学习无处不在。

毋庸置疑,人工智能模型在某些方面可以超越我们的思维能力。例如,我们倾向于以基于形状(甚至线性)的方式思考,这可以解释为什么我们喜欢可视化数据而不是以原始形式查看数据。然而,在包含大量非线性任务的应用中,我们几乎不可能在寻找输出/结果时记住所有变量。例如,这很容易通过人工神经网络来实现。

然而,困扰许多人的一个问题是,我们在人工智能领域的进展有多快。因为这相对来说是主观的,所以在做出决定之前仔细检查事实是很重要的。所以这个讨论值得自成一系列。

泛化就是种族主义吧?

潜意识里,我们可以用*“为什么要一概而论?”。*从根本上说,种族主义是对某些人的笼统描述。不管该声明的虚假性如何,它是种族主义的,主要是因为它是一种概括。

在不同的背景下,概括采取不同的形式。机器学习的本质是手头的模型或应用的可推广性。这指的是应用程序对于它以前从未见过的输入能给出多好的输出。这就是机器学习的优势所在。通过正确的模型训练,我们可以构建一个应用程序,在某些方面使我们的生活变得更容易。

由于数据是任何机器学习的主要部分,因此获取这方面的信息非常重要。这对于任何机器学习模型的适用性都是不可或缺的,因为 ML 是建立在泛化的概念之上的。

我们反对现实生活中的一般化,但我们正在把它教给未来的工具——机器人。

想想这可能是一个苛刻的声明。然而,它揭示了我们作为人类参与构建人工智能并控制它能做什么和不能做什么的重要性。这种对我们自己的应用程序的控制力,就是在**“数据的技术表现”**和“**种族主义机器人”**之间划出的界限。这就是为什么需要适合我们应用程序的干净数据,而不是任何可用的数据。但是,什么是干净数据呢?

社交媒体偏见

我们举个例子。如果我们正在构建一个基于文本的人工智能应用程序,让从社交媒体数据中“学习”,我们必须考虑某些方面。社交媒体直接展示了我们日常生活中发生的事情,包括我们已经学会在网络上相处的部分——冒犯性内容、亵渎性语言、种族主义言论等等。如果我们只将亵渎的文本输入到我们的模型中,它将学习如何生成亵渎的文本——因为这是它所知道的全部。在机器学习中,这是应用程序的福音,也是诅咒。有了正确的数据,你就能做出正确的模型。这正是处理社交媒体数据的风险所在。事实上,很多算法,尤其是在情感分析中,处理的是某些词相对于其余词的“强度”。这可能会导致模型将世俗术语去语境化,并将它们作为手边文本中闪亮的特征。

不光彩的提及——tay tweets

几年前,微软不得不关闭了一个天才人工智能项目——Tay为了对会话理解进行研究,Tay 是一个能够讲笑话、评论图像等的机器人。然而,Tay 能力中最有趣的任务是用她自己的语言重复陈述。通过大量的喜剧性即兴表演,Tay 能够学习如何个性化她对内容的反应。

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

当 Twitter 用户开始意识到她能够在自己的评论中重复他们的推文,以及她无法识别自己何时做出冒犯性评论时,Tay 成为了新闻的焦点。当她开始评论特朗普的隔离墙和大屠杀等问题时,这成了一个严重的问题。

如果我们是种族主义者,他们也是

Tay 是一个滥用我们技术进步的直接例子,因为他相信我们的同类会把应用程序教成正确的东西。当涉及到人工智能时,我们不能仅仅依赖某些类型和来源的数据。社交媒体就是其中之一。没有我们的直接参与,任何有能力学习的机器人都会跟随潮流。这是他们的天性。机器学习算法中的泛化决定了这一事实。那么,我们如何才能控制数据源这个令人讨厌的问题呢?

教你的机器人你教你的孩子

在一个种族主义和虚假种族优越的世界里,我们应该努力让我们的“机器人”受到我们希望它们受到的鼓舞,而不仅仅是了解世界上正在发生的任何事情。此外,重要的是教会他们不要做什么,如何不行动。微软未能让 Tay 认识到攻击性,所以他们不得不将其从网上删除,尽管其中使用了大量与人工智能相关的知识。

事实上,每天发生在我们周围的事件能够恶化我们机器人的道德裂缝。我们在那里,监管能够学习的人工智能应用程序中公共数据的利用比首先制作应用程序更重要。我们不能再忍受种族隔离和公众仇恨了。更不用说它是建立在可用数据的可编程变形的基础上,寻找即使是我们中最聪明的人也无法以如此快的方式理解的潜在模式。

当人工智能开始构建人工智能时,我们人类的参与就停止了。这种参与对于正确利用数据是不可或缺的。基于人工智能的应用从重复的数据模式中学习,捕捉趋势等等。如果我们为他们提供正确的数据,确保我们的生活得到改善,他们就会成功,我们也会成功。如果我们向他们提供在网络上漫游的任何东西,攻击性的内容和负面的评论,我们将和我们的机器人一起进一步堕落。让我们永远记住,我们应该利用技术来解决我们的问题,而不是仅仅因为我们足够聪明,已经提出了一种人工智能形式,就放大这些问题。

你不应该害怕机器人

原文:https://towardsdatascience.com/thou-shalt-not-fear-automatons-6d0c7395f6e7?source=collection_archive---------20-----------------------

在这篇文章中,我将表明,不像专家希望你认为的那样,我们应该害怕的是我们的无知,而不是机器的智能。

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

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

人工智能迫在眉睫的危险与机器变得过于智能无关。这与机器继承了人类的无知有关。

背景

关于人工智能带来的巨大变化,我们应该相信谁?吴恩达说人工智能是下一个电,或者弗朗索瓦·乔莱说它更像是人类语言的发明?当埃隆·马斯克(Elon Musk)说我们需要害怕机器奴役我们,解决办法是将机器嵌入我们的大脑时,我们应该认真对待吗?如何兰德公司谈论人工智能作为下一个核军备,或弗拉基米尔·普京认为霸权是他的谁有最好的人工智能?Roko 的蛇怪怎么样,如果我没有在这里提到它,我会为我的永恒的痛苦铺平道路吗?谁是对的?我们应该满怀希望,还是害怕,或者两者兼而有之?

为了回答这些问题,在本文中,我将用简单易懂的术语建立三个简单的论点:

  1. 虽然我们不能确定机器有多聪明,但我们肯定知道人类有多愚蠢
  2. 谈论人工智能的伦理没有谈论人类的伦理重要
  3. 人工智能现在和将来(至少在几十年内)都是关于过程自动化,而不是自治

作为奖励,我将展示我们是如何在某种程度上被令人难以置信的愚蠢机器所统治的。由缺乏积极性的初级工程师和想要成为数据科学家的人创造的机器,在目光短浅的销售人员和风险资本家的影响下工作。

人类不擅长做(好的)决定

虽然我们不能确定机器有多聪明,但我们肯定知道人类有多愚蠢。

没错。我们不擅长做决定。考虑丹尼尔·卡内曼在系统 1 上的工作和我们对迷走神经的理解。迷走神经是我们大脑的一部分,已经存在很长时间了。至少几亿年了。见过蜥蜴受到惊吓后迅速逃跑的吗?这是迷走神经在起作用。简而言之,卡尼曼在他获得诺贝尔奖的作品中表明,无论我们认为我们的决策过程有多么理性,当我们做出决策时,我们经常会忽视所有深思熟虑的结果(即使可能需要数年时间),并选择任何“感觉”正确的选项。卡内曼称之为“快速思考”或系统 1,与我们认为自己正在思考的方式相反,卡内曼称之为“缓慢思考”或系统 2。理解这一点的一种方式是,在我们大脑的更表层部分,我们有很大的理性处理信息的能力,但很少有权力使用这些信息来做决定。在我们大脑深处迷走神经所在的地方,我们没有理性能力,但是有很多权威。不仅仅是卡尼曼。心理学领域是由和他一样的理论组成的。事实上,你可能很难找到理论来证明我们人类擅长做决定。这让我们想到了与人工智能相关的一个关键风险;人类做出关于基于人工智能的决策系统的决策。

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

人工智能解决方案可以归结为两个方面;数据输入和处理输入的方法。这两者是给定系统产生结果的原因。简而言之,给定系统的结果完全取决于与该系统相关的输入和流程。从根本上说,总有一种算法支撑着计算机系统做出的决定。各种计算机系统都是如此。考虑一个简单的 Python 示例:

1 + 1

在这种情况下,基于算法,系统决定输出整数 2。每一个计算机系统,不管它有多“人工智能”,都可以归结为这个基本原则:输入+处理=决策。计算机做决定的方式一点也不像人类。这是冷酷的理性,是能力和权威的完美结合。换句话说,能力和权威是不可分的。

上述例子与基于现代深度学习的机器智能系统的一个重要区别是,人类无法像我们审计前者那样审计后者。当我们考虑到我们人类的缺点时,这是一件大事。这是为什么呢?我们可以称这个问题为“转移无知”我们把我们的非理性引入到一个被期望做出理性决策的系统中,你猜怎么着,这个系统会开始做出非理性决策。当我们不知道事实是这样的时候,问题就来了;在计算机系统中,非理性很容易伪装成理性。因为一个典型的基于深度学习的自动决策系统的输出是我们无法验证的(就像我们可以验证 1+1=2),并且我们不知道为什么我们会得到那个结果,我们可能最终成为我们非理性的受害者。以这种方式来架构人工智能的问题是一个重要的起点,因为这个问题变得可以管理;我们非常清楚自己的非理性。制衡可以到位,以避免我们的负面品质遗传给机器。问题很简单:

我们如何规范我们自己的行为,以最大限度地减少我们的非理性向那些被期望做出理性决策的系统的转移?

在这里,理解我们无法精确知道为什么深度学习模型中的某些东西会以这种方式工作的事实,正是我们想要的,这一点非常重要。这就是我们如何超越我们人类自己所能做到的。对于一个我们可以审计和解释的系统,它需要比我们审计和解释的能力更简单。这不是我们想要的!

接下来,考虑建造金字塔的过程。据估计,这需要多达 20 万名工人,在此过程中有数千或数万人伤亡。这是一个由人类痛苦和生命损失推动和促成的过程。再来看看迪拜,世界历史上一些最雄心勃勃的建筑项目就在这里。大多数项目都是零伤亡完成的,许多项目持续数百天没有发生事故。据报道,900 米高的哈利法塔导致一名建筑工人死亡。

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

Many construction sites in Dubai go hundreds of days without any accidents

怎么会这样这是因为,在过去的几千年里,我们不怕超越我们人类在特定时间点所能做的。我们不害怕扩展我们的能力。人工智能与其说是与我们分离的东西,不如说是扩展我们能力的东西。能够这样思考人工智能将会非常有用。当我们明白这是关于扩展我们的能力时,我们的希望变得更有意义,我们的恐惧变得更具体。例如,我们明白,将我们的无知转移到我们创造的系统中存在着真正的风险,结果,我们以人为的无知告终。当一种新的东西被发明出来,或者很久以前发明的东西开始起飞时,我们经常会得到令人惊讶的结果。我们越是无法理解(或审计)一个给定的系统,就越有可能出现令人惊讶的结果。有时候惊喜是不愉快的。让我们以医疗保健领域为例。

像任何其他系统一样,医疗保健是一个由相互关联的行为组成的网络。例如,如果您引入一个关注重症监护患者总天数的指标,您将最终导致更多的死亡,因为系统将优化使患者更早离开重症监护病房。这正是上世纪 80 年代管理顾问将基于博弈论的流程优化引入医院时,许多西方医院发生的情况。实际上,性能指标是简单算法的一个例子。我不怀疑这些想法背后的人真诚地相信它们会起作用。算法设计深受博弈论零和原则的影响。接下来让我们考虑一个拥有全民医疗保健平台和债务缠身的国民经济的民族国家。在这样的国家,决策者有大量的时间、资源和客观的压力。

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

到目前为止,这些国家的决策者应该已经得到了他们在人工智能炒作中的份额。说“人工智能是下一个电力”的问题在于它如何让我们思考电力以及我们从中获得的所有好处。如果你在医疗保健行业工作,风险在于思考“看看电力对医疗保健的改变有多大”,然后影响你对人工智能的态度。这是导致灾难的原因。就人工智能所能实现的功能而言,它与电力相去甚远。在某种程度上,它带来了积极和消极的结果,远远超出了电力的范围,我怀疑世界上是否有人真正“理解它”从另一个角度来看,人工智能只是另一种电力驱动的东西。在这两种情况下,说人工智能是新的电力是完全错误的——而且是危险的误导。新的电力将会提供光、热、运动等等。

回到国家医疗保健的例子…

个人和由个人组成的委员会,他们现在正在就机器智能在国家医疗保健系统中的使用做出决定,承受着巨大的交付压力。一般来说,他们面临着违背经济目标和国家健康结果的压力。典型的职业政治家几乎不懂医疗保健(或经济学),因此除了极少数例外,他们对人工智能完全不知所措也就不足为奇了。他们受什么影响?没错,所有的炒作正是影响他们的。很难想象在这种情况下,被自称的人工智能专家无休止的炒作轰炸的非专家如何能够做出正确的决定。另一方面,很容易看出他们是如何最终犯下所有错误的。

关于系统,有一些重要的东西需要理解;当你改变某件事时,负面影响可能会在 10 年、20 年或 100 年后出现。一般来说,系统越复杂,变革项目越雄心勃勃,就越是如此。我们不应该专注于绝对最坏的情况,比如超级智能毁灭人类,而是应该非常担心无数愚蠢机器的微妙、往往隐藏的系统性影响。

人工智能中的道德和伦理

谈论人工智能的伦理没有谈论人类的伦理重要

就像我们设计的机器智能解决方案一样,继承了我们的非理性和愚蠢,它们继承了我们的不道德和缺乏道德。就目前情况来看,我们真的有制造人为不道德的风险。看待道德主题的一种方式是通过两部兼容的著作,伊曼纽尔·康德的《绝对命令》和科尔伯格的《道德发展模型》。康德在他的《绝对命令》中将其解释为“只根据那条准则行事,据此你可以同时将它变成一条普遍法则。”

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

在科尔伯格的作品中,我们可以体会到按照康德道德律令的标准生活是多么艰难。在一个组织环境中(关于人工智能的决策将主要在这里做出),超越第四阶段(左图)可能会特别棘手,偶尔会瞥见第五阶段。不幸的是,很多选择都是在第 1 阶段的前提下形成的;如果我这样做,会不会对我个人产生负面影响。

非理性和不道德之间有一个关键的交叉点。它们放大了一个和另一个的有害影响。为了解决这一问题,并正式训练自己消除非理性和不道德,世界上的智者曾经非常重视对哲学的研究。最重要的是道德、本体论(什么是认识)、认识论(什么是存在)和逻辑学。这种方法将是人工智能研究人员和开发人员的有用伴侣。

莱布尼茨有句名言:

没有数学,我们就无法深入理解哲学。没有哲学,我们就无法深入数学。没有这两者,我们就无法深入了解任何事物。

政治家约翰·亚当斯说:

我必须学习政治和战争,这样我的儿子们就可以自由地学习数学和哲学。

在医疗环境中,没有一个相关的利益相关者——政府和医疗专业人员,也没有计算机和数据科学家——接受过道德培训,并且经常缺乏对本体论、认识论和形式逻辑的最基本的理解。而且,这不只是一个 AI 相关的问题;在物理学界,关于哲学的作用以及它是否有任何意义的争论越来越激烈。这里我们发现我们应该害怕的第二件重要的事情;把新思想的发现从哲学中分离出来的风险,因为哲学是发现和思想的科学。

我们已经看到了人类不道德行为转移到决策系统的结果。我们已经通过金融市场、在线广告和其他算法决策的早期拥抱者的例子看到,我们如何倾向于以所谓的贪婪算法结束,这些算法无情地朝着给定的目标优化,而不关心其他任何事情。与医疗保健专业人员等不同,这种算法不怕因做出错误决定而失去生计和声誉。最终可能会伤害他人的决定。我们应该担心的正是这种类型的风险,而不是想要主宰或消灭人类的超级智慧。一些最疯狂的幻想甚至试图让我们确信,我们看到一种超级智能将首先消灭人类,然后扩展到整个银河系,这只是一个时间问题。

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

自主谬论

人工智能现在和将来(至少在几十年内)都是关于过程自动化,而不是自治

人工智能恐惧传播的核心是自主超级智能的混乱概念。我们在两个基本方面犯了严重的错误;我们已经开始用自主这个词来代替自动化,我们已经忘记了计算机程序的工作方式。作为一个参考点,看一看深度学习社区的阶段。大部分工作集中在简单的流程自动化和创建更复杂的方法,以提高训练预测模型的自动化的最新水平。虽然用几行 Keras 代码可以做的事情非常不可思议,但在最终的预测模型中,人类的智能就像烤面包机一样多。无论如何,深度学习模型的自动化程度远远高于烤面包机。可以公平地说,深度学习模型扩展人类能力的方式远远超出了烤面包机的能力。但是,深度学习模型中是否存在烤面包机中没有的超级智能的固有属性?这是一个基于深度学习的拼写检查器对深度学习的看法。

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

深度学习可能是一颗种子,具有更多的倾向,甚至是我们还无法想象的某种形式的智能,但它只是一种倾向。就像一颗苹果种子需要土壤、水分、营养和阳光才能有机会长成新芽一样,超级智慧也需要让它显现的原因和条件。没有人能令人信服地解释这些原因和条件是什么。在电脑游戏中赢人类与此无关。事实上,大部分恐慌都集中在最糟糕的情况上。想想核武器;在历史上,它们只被使用过一次。你能找到一些其他的技术进步,其中最坏的情况实际上已经实现了吗?

说到超级智能,我们甚至不知道我们是否有这种能力。在这一点上,我不得不同意马克·安德森的观点。

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

我们所知道的是,我们的无知和不道德有一个可识别和可解决的问题。此外,我们有明确的证据表明,我们倾向于将它转移到我们创造的系统中。这是我们应该担心的,我们应该非常担心。

自主性怎么样,深度学习模型中的自主性比烤面包机中的自主性多吗?我不会说我是从事人工智能研究的最聪明的人之一,但我是一个小团队中的一员,这个团队多年来一直致力于自主性的基础研究。我的观点是,就目前而言,深度学习模型和烤面包机在自主性方面几乎没有区别。简单来说,深度学习模型中没有类似于自主性的东西。创造一个自主版本的烤面包机将是一个比创造一个自主版本的深度学习模型更合理的目标。在深度学习模型中,抽象的对象是经过训练的模型,而在烤面包机中,抽象的对象是烤面包。在这两种情况下,我们通过实现一定程度的自动化来做一些繁琐的事情并简化过程。已经建立起来的与人工智能相关的最高抽象层次与超参数优化有关。在超参数优化中,我们将模型的超参数配置作为抽象对象,而不是只获得一个模型,而是获得许多模型。这里我们避免了寻找最佳超参数的繁琐过程。有一些关于自动机器学习的新兴工作,它将所有已建立的东西包装成一个单一的解决方案。它仍然只是过程自动化。有一个新兴领域关注超参数优化过程的优化。这是我自己正在做的事情之一。我不能肯定地说太多,但我可以从理论上说,展开的是一个无限的回归,其中每一级抽象都充当前一级抽象的解算器。甚至那也仅仅是建立在自动化之上的自动化。那里也没有自主权。我认为——这是我们没有文献记载的——希望通过自动化的无限回归找到自主性就像希望从苹果籽中得到烤面包一样好。

我们一无所有;除此之外,关于自主人类灭绝银河系探索超智能的无稽之谈没有其他依据。而且,当你看到一个著名的 AI 公司创造了一个在给定游戏中击败最优秀的人类玩家的 AI,你应该问这个解决方案有多普遍的适用性?是因为公司投入了如此多的资源和人力去解决一个特定的问题,以至于不可避免地会得到他们想要的结果。我们没有任何其他的技术发展轨道,似乎在这里丝毫相关的考虑。我完全同意弗朗索瓦·乔莱说的话:

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

我们需要问自己的与人工智能相关的最重要的问题甚至与人工智能无关。最重要的是,我们必须提出关于系统性影响的问题。回到医疗保健,我们可能会认为对药物的过敏反应是副作用的一个很好的例子,但许多副作用需要几年、几十年甚至几个世纪才会出现。由于因果分析的难度,我们一般无法精确地知道是什么促成了某种结果。这意味着,在某些情况下,几乎不可能知道一个给定的人工智能解决方案是在长期内做出积极贡献,还是只是提高短期效率,并在长期内造成损害。即使我们先等了几十年。这可能在未来 100 年内成立,或者只要理解长期因果关系就成立。对因果关系的分析似乎是人工智能专家系统更有趣,也更少讨论的用途之一。

额外收获:被一千种算法杀死

取代天网的是,我们正迅速走向一个由无数愚蠢的机器统治我们的世界。这些机器是由缺乏积极性的初级员工(工程师和潜在的数据科学家)创建、维护和优化的,他们在巨大的压力下工作,并受到销售人员和风险资本家短视的影响。更糟糕的是,他们倾向于每两年换一次工作,而且通常不关心或没有能力理解工作带来的系统性变化。那些算法已经无处不在。超过一半的金融市场交易都是基于简单的零和算法的决策,这些算法被称为“底部馈电器”,其唯一目的可能是在市场中制造噪音。从现在起的几年内,超过一半的广告是基于算法进行交易的,这些算法以牺牲互联网用户的利益为代价,与“每次印象成本”等指标相互竞争。我们在社交流、互联网搜索、视频推荐、相关新闻和购物网站中看到的内容完全由被称为“收益优化器”的算法控制。在所有这些例子中,算法都是简单的自动机,为创造和控制它们的人的短视利益服务——本质上主要是金钱利益。以“收益优化器”为例,该算法的目标是捕捉尽可能多的互联网用户的注意力和时间,将其转化为广告收入。从某种意义上说,这是一种认知收获。一个非常愚蠢的算法收获人类认知能量的过程,让一个公司赚钱。换句话说,由于我们的无知和不道德,我们创造了无知和不道德的算法,使我们更加无知。

一些精神食粮。

在这里阅读关于自动研究代理人的信息。

PS。感谢您的宝贵时间!如果你还有几秒钟,请分享。

PS。如果你对我和 AI 一起做的工作感兴趣,可以看看的

关于统计建模两种文化的思考

原文:https://towardsdatascience.com/thoughts-on-the-two-cultures-of-statistical-modeling-72d75a9e06c2?source=collection_archive---------7-----------------------

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

(Source)

准确性胜过可解释性和其他来自 Leo Breiman 的《统计建模:两种文化》的内容

在论文中:“统计建模:两种文化”利奥·布雷曼随机森林以及装袋助推集合的开发者——描述了两种截然不同的统计建模方法:

  1. **数据建模:**根据对数据生成机制的直觉,选择一个简单的(线性)模型。重点是模型的可解释性和验证,如果要做的话,是通过拟合优度来完成的。
  2. **算法建模:**选择预测验证准确率最高的模型,不考虑模型的可解释性。

在 2001 年撰写本文时,Breiman 估计 98%的统计学家属于数据建模团队,而 2%(包括他自己)属于算法建模文化。这篇论文旨在呼吁统计学家停止仅仅依赖数据建模——这会导致“误导性结论”和“无关理论”——并采用算法建模来解决大规模数据集产生的新的现实世界问题。Breiman 是一名学者,在 Berkely 做了 21 年的统计学家,但他之前做过 13 年的自由顾问,这让他对统计如何在工业中有用有了很好的看法。

布雷曼感到沮丧,因为他知道数据模型无法解决大规模数据收集带来的新挑战,他觉得学术统计学由于拒绝采用新工具而变得无关紧要:预测性能高但可解释性低的复杂算法。虽然自这篇论文发表以来的 18 年里,机器学习和统计学已经发生了变化(我不知道 98/2 的分裂是否仍然成立),但提出的几个有趣的观点仍然与今天实践机器学习有关,特别是对于那些从学术界向工业界过渡的人。这些要点包括:

  1. 具有不同特征的模型通常产生相似的预测准确度。
  2. 在机器学习中,模型可解释性和性能之间存在权衡。
  3. 更多的特性可以提高复杂算法模型的性能。
  4. 随着我们收集更多关于世界的信息,科学从简单模型发展到复杂模型。

这篇论文的总体经验与我在工业中应用机器学习所学到的一致(在Cortex Building Intelligence)😗*首先关注模型的准确性,只有在建立了高性能模型之后,才考虑解释它。**一个无法完全解释的高度复杂、精确的模型比一个我们完全理解的没有预测精度的简单线性模型更有价值。

以下是我对 Breiman 论文的一些想法。请记住,这些都是基于比 Breiman 撰写的经验少得多的经验——在学术环境中的 1 年(2018 年)和在行业中的 1 年多一点(2018 年至今)。我建议阅读文章(以及其中包含的批评)来形成自己的观点。请随意将关于论文或机器学习相关主题的评论或经验添加到本文中。尽管机器学习似乎发展得令人难以置信地快,仍然可以从旧的论文和书籍中学习到有价值的信息,尤其是那些由 Breiman 这样的人物撰写的,他在塑造该领域方面发挥了关键作用。

统计建模的两种方法

在我们讨论什么是好的模型之前,我们必须理解建模的两个目标:

  1. **预测:**根据一组新的独立变量(特征)估计结果(目标)
  2. **信息:**了解一些关于自然(数据生成)过程的知识

这两个目标的精确平衡取决于具体情况:如果你试图预测股票,你可能只关心模型是否准确。在医疗环境中,了解疾病的原因可能是建立模型的主要焦点。Breiman 认为,对于这两个目标,算法方法实际上比数据建模方法占了上风。

数据建模

使用数据建模方法(Breiman 认为数据模型是用于回归的线性回归和用于分类的判别分析或逻辑回归)的研究人员首先构建一个关于数据如何生成的合理机制。也就是说,研究人员根据直觉、经验或领域知识,想出一个将自变量(特征)与因变量(目标)联系起来的线性方程。

模型中的系数(特征权重)是通过将其拟合到数据集而得到的。由此产生的线性方程代表了实际的数据生成机制——自然通过这个黑盒生成因变量和自变量的值。系数被用作变量重要性的度量,显示特征对响应的影响。

数据建模中的验证(如果发生的话)是通过拟合优度度量(如 R 或残差分析)来完成的,这两种度量都是在训练数据集上进行的。很少考虑预测的准确性。相反,重点是模型如何解释正在研究的现象。如果系数上的 p 值足够低,那么它们是“显著的”,用 Breiman 的话来说,该模型“成为真理”,从该模型得出的任何结论都是可靠的。整个过程由直觉和主观决定引导:研究人员没有让数据说话,而是通过选择,如使用哪些特征和哪些数据点作为异常值丢弃,来强加他们自己的个人理论。

Breiman 引用了 Mosteller 和 Tukey 的一本教科书来总结他对数据建模的失望:“指导回归的整个领域充满了智力、统计、计算和主题方面的困难。”换句话说,用简单的线性模型和直觉进行数据建模并不是从数据中学习的客观方式。然而,根据 Breiman 的调查,这是 98%的学术统计学家采用的方法!难怪他对自己的领域感到沮丧。

算法建模

算法建模方法围绕着一个问题:模型在验证数据上的表现如何?在选择模型时,不考虑模型是否代表生成数据的潜在机制,只考虑模型是否能够对新的(或持续的)观察值做出可靠的估计。Breiman 将算法文化的兴起归功于新算法的发明,如随机森林(他自己的工作)、支持向量机和神经网络。至少在当时,这些模型在理论上还没有得到很好的理解,但却产生了非凡的预测准确性,特别是在大型数据集上。

算法社区的一个中心思想是,自然是一个黑箱,我们的模型也是一个黑箱,尽管它可以根据新的观察结果给我们预测。试图解释一个不准确的模型是没有用的,所以在集中精力从模型中学到任何关于自然的东西之前,首先要集中精力建立一个具有最佳性能的模型。一个精确的模型,不管有多复杂,对预测(清晰地)和信息收集都更有用,因为一个简单的、可解释的低精度模型不能捕捉到任何关于问题的有用信息。

算法文化不是从学术统计中发展出来的,而是来自“年轻的计算机科学家、物理学家和工程师加上一些年老的统计学家。”换句话说,那些不怕采用甚至发明新技术来解决新问题的人。这些是实践者而不是理论家,他们使用神经网络和随机森林来解决从医学到基因组学到股票市场到天文学等领域的问题。

作为一名顾问,Breiman 看到了算法建模的价值,采用最好的工具来解决问题。他开始将计算机视为一种无价的工具,因为它们能够将复杂的技术应用于大量的数据。回到学术界后,他对依赖数据模型和不重视预测准确性感到失望。即使你的主要目标是通过建模提取关于自然的信息,首要任务也应该是准确性。一个复杂、精确的模型可以告诉我们问题域,因为它一定已经捕获了特征和目标之间的关系的某个部分。此外,算法建模社区通过解决问题已经有了一些有趣的发现。

1.模型的多样性:许多具有不同特征集的模型具有几乎相同的预测准确性

我在工作中建立的最初几个模型,我被一个重复出现的模式所困扰。我试图通过测量验证分数来选择“最佳”特性,但是,每次我尝试不同的子集时,总的验证分数几乎保持不变。这令人困惑,但却反复发生:改变特性,甚至尝试不同的超参数值都会产生相似的性能。Breiman 说这没什么可担心的:对于大多数问题,当使用复杂模型时,有许多特征和超参数给出大致相同的性能。换句话说,单一最佳模型的想法是虚构的,所以我们不应该担心找到它。

虽然这不应该是算法模型的问题,但它给任何依赖数据模型的人带来了令人不安的问题。因为简单的线性模型不能很好地处理许多特征,它们需要广泛的特征选择,通常是通过直觉和形式方法的结合。从特征到目标的映射是通过选择特征和通过拟合计算系数来创建的,假设该映射代表地面实况,即数据生成过程。然而,如果实际上有许多组特征将给出相同的性能,那么仅仅一组特征怎么可能是事实的最终来源呢?在现实中,有许多同样好的模型,所以只选择一个并不能准确地代表问题。

是什么导致了模型的多样性?我自己建立模型的经验告诉我,这是由于相关的特征(当两个变量一起增加或减少时,它们正相关)。尽管线性回归假设输入变量是独立的,但在现实世界的数据集中,几乎所有要素都有一定程度的相关性,通常非常高。因此,一个特征可以替代模型中的另一个特征,而不会降低精度。构建一个单一的数据模型,并将其称为事实的来源,会忽略所有其他同样有效的模型。算法建模者不应该担心选择特征:只需将它们全部交给你的随机森林,让它来决定哪些是重要的。训练后,认识到拟合模型只是从特征到目标的映射的一种可能的表示。

2.机器学习的权衡:简单性和准确性

这是该论文(也是从 2001 年开始)显示其年龄的一个领域。Breiman 提出了一个共同的主张,即更复杂的机器学习模型是完全无法解释的(特别是随机森林和神经网络)。当选择一个模型时,他说我们总是需要用可解释性来换取更高的准确性。然而,过去几年在解释复杂模型方面取得了重大进展,特别是 SHAP 值局部可解释模型不可知解释(LIME) 。这些操作的一般原则是建立一个复杂的模型,然后使用一个简单的模型(如线性回归)来解释它的一小部分(局部)。

(关于可解释机器学习的课程,参见 Kaggle 的机器学习可解释性)。

这些模型解释技术可以与任何模型一起工作,从随机森林到神经网络,并为单个模型预测提供合理的解释。在 Cortex,我们使用 SHAP 值来解释我们对建筑物启动 HVAC(供暖或空调)的理想时间的估计。我们的建议被广泛采纳,部分原因在于这些简单易懂的解释。

Breiman 对缺乏可解释性的担忧是有道理的,但是,正如新算法被发明来处理更大的数据集一样,新技术也被开发来窥视复杂的黑盒机器学习模型。这是一个算法发展速度比解释快得多的问题。这是有道理的——在试图解释算法之前,我们需要确保算法是准确的。解释一个不准确模型的预测是没有什么意义的。现在,模型解释技术已经赶上了算法,我们可以同时拥有预测背后的推理和高预测准确性。

当我们谈到解释的时候,我们应该提到人类在解释他们的决定方面是很糟糕的。我们确实给出了个人选择的原因,但这些原因不可能包含环境、遗传、处境、情绪、神经递质等的全部组合。真正影响决策。当我们问别人为什么上班迟到时,他们告诉我们“因为我走了不同的地铁路线”,我们接受这个事实,通常就此打住。我们没有深究其中的原因,也没有询问详细的后续问题,这将导致更多的后续问题。我们需要知道一个人的整个生活史来完整地解释他们做出的一个选择,所以很明显我们无法从人类那里得到完整的解释。

我发现人们想要任何解释,不管多么站不住脚,而不是没有解释。即使这是一个同义反复(男孩就是男孩)或者循环推理(我犯了很多拼写错误,因为我的拼写很差)人们也会接受任何一种理由。与人为原因相比,机器学习模型输出的 SHAP 值更全面,显示了分配给与单个预测相关联的每个变量的准确权重。在这一点上,我更喜欢这些模型解释技术得出的数字,而不是人类给出的误导性理由。

与其担心模型的可解释性,也许我们应该处理更困难的问题,弄清楚人类的决策!我们在解释机器学习输出方面取得了更多进展,而不是在找出个人特定行为背后复杂的影响网络方面。(我有点掉以轻心了。我认为模型解释是机器学习中最有前途的领域之一,我对向非技术观众解释机器学习的新工具感到兴奋。我的主要观点是,自论文发表以来,我们在解释模型方面已经走了很长的路。)

3。有了算法模型,更多的特性可以提高性能

在研究生数据科学建模课上,我的教授们花了大量时间使用像方差膨胀因子互信息这样的技术进行特征选择。在实验室中,我看到了大量的功能选择,几乎总是由直觉而不是标准化的程序来指导。原因可能是合理的:线性模型往往不能很好地处理许多要素,因为它们没有足够的能力对来自要素的所有信息进行建模-但所使用的方法往往是主观的,导致模型更多地由人驱动,而不是由数据驱动。

相比之下,算法模型可以从更多的特征中获益。Breiman 指出,更多的变量意味着更多的信息,一个有效的模型应该能够从噪音中挑选出信号。像随机森林这样的 ML 方法可以提供具有许多特征的准确预测,即使当变量的数量超过数据点的数量时,正如在基因组数据集中经常发生的那样。我们可以给算法模型所有的特征,让它找出与任务最相关的特征,而不是花费时间试图凭直觉留下重要的特征。此外,我们可能实际上想要创建附加特性,从现有变量中设计它们,以帮助模型提取更多信息。

直觉在算法建模文化中没有位置,不像在数据模型中,它可能通知进入模型的特征。如果我们真的想从数据中学习,那么我们必须相信数据,而不是我们的主观意见。算法建模不需要我们执行任何任意的特性选择:相反,我们保留所有的特性,甚至添加更多,并以更少的努力获得更好的性能。

4.科学从简单到复杂

最后一个要点实际上来自布雷曼对批评的回应(见下文),但这是至关重要的一点。随着我们对世界的认识不断进步,我们需要更复杂的模型来预测和学习信息。

早期的宇宙模型将地球置于中心,然后在确定我们当前的观点之前,将太阳置于中心,银河系只是巨大(可能是无限)宇宙中数十亿个星系中的一个。在每一步,模型都变得更加复杂,因为我们收集了更多不符合现有模型的信息。牛顿的万有引力定律在数百年间一直运行良好,直到进一步的观察揭示了它的局限性。现在,我们需要爱因斯坦的相对论(狭义和广义)来确保我们的卫星不会从天上掉下来,因此我们的 GPS 系统仍然准确。

随着其他领域开发出更复杂的模型来应对新的困难(原子的模型是另一个例子),当旧的线性模型不再有用时,统计学应该抛弃它们。数据模型适用于一小部分问题,但是我们现在在数据科学中面临的挑战要大得多。用于解决它们的技术应该相应地扩展。如果科学的其他部分正在走向更大的复杂性,我们为什么要假设统计学可以继续在最简单的模型中运行?有很多令人兴奋的问题,开发和解决它们需要使用任何最合适的工具,甚至发明新的技术来应对新的障碍。

批评

按照最好的科学传统,Breiman 将 4 位统计学家的大量批评作为论文的附录,然后对反馈做出回应。通读批评和观察来回(民事)争论是值得的。科学通过公开讨论而进步,因为没有一个人有所有正确的答案。正是通过一个反复的过程,提出一个想法,对其进行批评,作为回应改进想法,收集更多的数据,并展开更多的讨论,科学才取得了巨大的成功。以下是一些阻力。

1.简单的模型仍然有用

这是 Breiman 愿意承认的一点:在某些情况下,线性模型可能是合适的。例如,如果我们将距离建模为速率的函数,那么这是一个线性关系:距离=速率*时间。然而,自然界中很少有现象遵循如此好的机制(甚至上面的例子在现实世界中也几乎不成立。)线性模型可以在具有很少特征的非常小的数据集的情况下工作,但是当在诸如天文学、气候变化、股票市场预测、自然语言处理等领域中处理较新的问题时很快就过时了。其中数据集很大并且包含成千上万或更多的变量。

算法文化不是放弃数据模型,而是在任何情况下使用最合适的模型。如果线性模型在数据集上记录了最高的预测准确性,则选择该模型。Breiman 的观点是,我们不应该提前假设哪个模型是正确的。算法建模是一种以上的建模方法。

2.过度适应验证数据

过拟合是机器学习中的一个基本问题:参数总是在一些数据集上学习,这并不表示该问题的所有数据。通过选择具有最佳验证分数的模型,我们可能会无意中选择一个对未来数据概括较差的模型。这不是算法模型独有的问题(尽管用更复杂的模型可能更容易过度拟合,因为它有更多的自由参数要训练)。

解决方案不是回到更简单的模型,而是使用更健壮的验证。我更喜欢交叉验证,使用多个训练/测试子集,这样性能就不会因为一个随机选择而有所偏差。该模型可能仍然是过度拟合的(这应该被称为 Kaggle 效应,因为它几乎在每个比赛中都发生),但是一个健壮的验证设置应该在新数据上给出一个体面的性能指标。监控模型在生产中的持续性能也很重要。定期检查模型的准确性没有下降,这将允许您捕捉模型或数据漂移。一旦发生这种情况,你需要建立一个新的模型,收集更多的数据,或者重新开始解决问题。过度拟合是一个严重的问题,但可以通过正确的方法解决。

3.特征重要性

Breiman 关于从复杂模型中提取信息的大部分观点依赖于特征重要性的思想。这在实际的论文中没有定义,但在 Breiman 对批评的回应中有所涉及。他的定义建立在准确性的基础上。一个特性的重要性是通过这个问题来衡量的:在模型中包含这个特性能提高性能吗?

传统上,变量重要性是由线性模型的系数决定的。然而,我们已经看到,多个特征可以产生相同的性能,因此使用学习到的权重作为重要性的度量并不能捕捉任何单一的基本事实。

重要性可变的领域仍未解决。当变量共线(高度相关)时会出现问题,因为要素重要性可能会在要素之间分割。目前还没有一种令人满意的方法来确定哪些变量是最重要的,但基于准确性的方法比基于权重的方法更不主观。SHAP 值还提供了可变重要性的预测测量,使我们可以通过观察输出来了解每个特征值的确切影响。预测特征重要性可能不是某个特征在本质上的“真实”相关性,但它可以给我们变量之间的相对比较。

4.建模的目标

一些统计学家瞄准了建模的目标是预测的想法,主张更加重视信息收集。我的回答是一个没有预测准确性的模型不能提供任何关于这个问题的有用信息。它可能会提供模型权重,但如果它们不能导致准确的预测,我们为什么要试图从中学习呢?相反,我们应该首先关注准确性——这样我们就知道我们的模型学到了一些有用的东西——然后试图弄清楚模型是如何运行的。一个模型必须准确,才能给我们有用的信息!

试图理解一个无法超越简单的无机器学习基线的线性模型是没有意义的。以准确性为目标,然后花尽可能多的时间解释模型。一个没有解释的精确模型要比一个产生废话但给出清晰解释的模型好得多。

结论

这篇文章对我从学术数据科学环境转向工业环境是有用的。最初,我花了很多时间试图理解模型背后的理论或通过直觉解决问题,而不是以准确性为目标,让数据决定模型。最终,我通过经验了解到了这篇论文最重要的一点:先关注准确性,再关注解释。一个模型在值得用于知识提取之前必须具有高预测性能。

这在实践中意味着什么(特别是对那些在工业中的人来说)很简单:集中精力建立一个健壮的验证方案,并找到表现最好的模型。不要花太多时间担心模型背后的理论,直到你知道它是可行的。此外,经验表明,许多模型可以通过不同的特征集产生相同的准确性,附加特征可以提高复杂算法的性能,并且在模型可解释性和准确性之间存在平衡,尽管新技术已经在很大程度上缩小了差距。

当我们看到一个预测或决定时,我们都希望得到解释。然而,我们必须承认,当我们的知识和大脑限制我们时:我们根本无法处理我们现在面临的数据量,我们必须依靠机器来为我们进行大部分推理。机器学习是一种用来解决数据问题的工具,我们应该尽可能使用最好的工具。统计学是一个古老的领域,但这并不意味着它必须停留在过去:通过采用最新的算法,统计学家,甚至是学术界的统计学家,可以解决建模中出现的具有挑战性的新问题。

一如既往,我欢迎任何反馈和建设性的批评。可以通过 Twitter @koehrsen_will 找到我。

【A股温度计】www.agwdj.com 镜像版程序V1.0说明 •通过数据可视化技术,将复杂的A股市场数据转化为直观的图形界面,帮助投资者快速把握市场脉搏。 【核心功能】 •全景视角:突破信息碎片化局限,快速定位涨跌分布,一眼锁定今日热点板块 •板块排序:基于申万行业分类标准,对31个一级行业和131个二级行业实时动态排序 •硬件适配:智能适配不同分辨率屏幕,4K以上屏幕显示信息更多(视觉更佳) •智能缩放:A股全图让大A市场5000+个股同屏显示(支持鼠标滚轮及触摸设备5级缩放) 【三秒原则】 •三秒看懂:通过精心设计的视觉图形,让用户在三秒内看清市场整体状况 •三秒定位:智能算法让大成交额个股和热点板块自动靠前,快速定位机会 •三秒操作:极简的界面,让用户减少操作 【使用场景】 •盘前准备:快速了解隔夜市场变化,制定当日策略 •盘中监控:实时跟踪市场动向,及时把握当日机会 •盘后复盘:全面分析当日市场表现,总结经验教训 【适合人群】 •个人用户:快速了解市场整体趋势变化,辅助决策 •专业人员:获取每天市场的数据云图支持研究工作 •金融机构:作为投研系统的可视化补充组件 •财经媒体:制作专业市场分析图表和报道 【市场切换】 •默认加载"A股全图",可切换单独显示的类型如下: •上证A股/深证A股/北证A股/创业板/科创板/ST板块/可转债/ETF 【程序优势】 •运行环境:纯PHP运行(无需安装任何数据库) •数据更新:实时同步→A股温度计→www.agwdj.com •显示优化:自动适配8K/4K/2K/1080P等不同分辨率的屏幕 •设备兼容:对市面上主流的设备及浏览器做了适配(检测到手机/平板/电视等默认Chrome/Firefox/Edge内核过低的情况会自动提示) 【其他说明】 •A股温度计程序演示网址:https://www.agwdj.com
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值