TowardsDataScience-博客中文翻译-2016-2018-三百二十六-

56 阅读1小时+

TowardsDataScience 博客中文翻译 2016~2018(三百二十六)

原文:TowardsDataScience Blog

协议:CC BY-NC-SA 4.0

我为什么开始学习机器

原文:towardsdatascience.com/why-i-got-s…

Photo by Franki Chamaki on Unsplash

因为我一直热爱技术,所以我有探索新技术的习惯。我喜欢阅读科技世界正在发生的事情,以及这些新技术如何颠覆当前的行业。

最近,当我在探索和广泛阅读最新技术对我们生活的影响时,我很快注意到有几个术语几乎随处可见:人工智能、数据科学、机器学习、深度学习。

虽然,技术上不对,让我们把这些技术统称为 AI(人工智能)。

我有点被迷住了,我开始漫不经心地阅读它们,因为这些技术很自然地似乎有可能颠覆任何可以想象的行业。我在 YouTube 上浏览了几个关于人工智能的视频,读了几篇文章,了解了它的一些应用,决定学习它对我来说太难了(相信我,它可能会令人生畏!)就是这样。

虽然这些术语在我脑海中停留了很长时间,但某种东西让我相信,进入人工智能世界的冒险对我来说太难了,我没有足够的潜力来完成它。由于这些假设,我甚至没有开始的方向。

那是 2018 年 4 月,我刚从电气工程专业毕业。我刚刚开始我的第一份(目前的)工作,是一名汽车工程师。几个月后,我和一个大学同学计划了一次见面。我们很自然的拍了几张自拍然后就发生了!Google Photos 在快照中认出了我的朋友,问我是否想给她加标签(它说,‘*想给 Muskan 加标签’或者可能是‘想和 Muskan 分享这张照片’,*之类的)。)!锦上添花的是,我最近买了一部新手机,它和那个人没有任何关系。

当我进一步调查此事时,我知道这是谷歌部署的深度学习算法,可以根据你的账户活动识别你快照中的人。更准确地说,当你用谷歌账户登录你的安卓设备并用它拍照时,如果你碰巧在这些照片中标记了这个人几次(只是几次),谷歌的算法就会识别这个人,即使你更换了你的设备并用以前的账户登录到一个新设备,谷歌的算法也能检测到他们。

现在,有些人(包括我)可能会说这是对个人隐私的侵犯,但我被这项技术的美丽和强大震撼了!这可能看起来没什么,因为脸书也有自动标签功能,但那一刻改变了我的想法。我现在确信我想让学会这些,在那一刻,我所有的幽灵都消失了。

我重新开始了我在学习人工智能领域的研究,通过不懈的努力,我学到了很多。我不会说我知道所有关于它的事情,但我知道的比几个月前还多。我比昨天知道的更多。我现在知道我能做到!我开始相信,任何拥有正确心态和专注努力的人都可以学习人工智能,并成为能够改变我们所知世界的技术的一部分。

我想列举几个人工智能领域的一些漂亮的应用,我相信它们可以激励这个领域的任何新手向前迈进:

推荐系统

你有没有注意到亚马逊是如何知道你想买什么,并向你展示这些产品的?或者,网飞怎么知道你喜欢看什么类型的节目/电影?这就是人工智能在起作用。这种被称为推荐系统的系统会记录你的活动历史,并产生对你来说意义重大且独一无二的见解。

现在,想象一下为亚马逊上的数十亿用户和网飞上的数百万观察者扩展这项技术。想象一下这个系统设计得如此美丽和复杂,以至于它的每个用户都有独特的体验。这种系统效率很高,如果实施正确,可以产生很好的效果,并显著增加利润。

‘Because you watched’ is AI at work

图像识别系统

正如我已经讨论过的,这是我最初开始的原因。正如我已经解释过的,人脸识别系统非常强大。这些是美丽的艺术品!

除了面部识别系统,这项技术还被扩展到设计这样的系统,它可以根据人的面部表情来检测人的当前情绪。一旦检测到情绪,这种系统可以根据它来设置空气,比如根据情绪播放音乐,或者根据情绪调节灯光。这一切都可以通过 AI 和物联网(IoT)的微妙结合来实现。

一个伟大的研究领域是让一个人工智能解释图片中发生的事情。这旨在为图片添加标题,就像人类一样(不是我们的 Instagram 标题!当心!我们现在有点太远了)。

下图就是一个例子:

Source

这就是我所说的!这简直太棒了!

现在让我们看看这个领域是如何改进的。

Source

在这张图片中,顶部的图片显示了旧人工智能的字幕,而底部的图片显示了字幕的改进程度。这太神奇了!

语音识别系统

你体验过 Siri 的机智吗?或者,有现成结果的谷歌助手?或许还有 Cortana …呃..用什么?所有这一切都是由基于自然语言处理的人工智能系统驱动的。

这里说得够多了。

自动驾驶汽车

不再需要人类司机的未来并不遥远。随着优步、特斯拉、Lyft 和谷歌等大公司投入数百万美元开发自动驾驶汽车,该领域的研究是目前最热门的研究之一。这种汽车将由核心的强化学习算法驱动。

一旦一个可靠的学习算法到位,人类将能够避免每年因道路事故造成的数百万人死亡。

道路会更安全,交通堵塞的问题也可以消除。

Source

这种运输方式是多么复杂啊!

卫生保健

这是一个本身就非常令人兴奋的领域。这是因为基于医疗保健的人工智能系统的目标不是最大限度地点击广告或标记照片中的人,而是以非常积极的方式直接影响数百万人的生活。

人工智能可以帮助文学拯救生命。研究表明,基于人工智能的机器人可以以最大的精度进行复杂的手术,因此由于人为错误造成的伤亡可以大大减少。人工智能在癌症等威胁生命的疾病的早期诊断方面显示出巨大的潜力。这种系统在大规模、有组织地临时准备和实施时,可以帮助拯救数百万人的生命。

人工智能研究人员声称,基于人工智能的系统是我们找到治疗癌症、阿尔茨海默病等痛苦和威胁生命的疾病的最安全和最快的途径。

在这个应用程序中,我个人喜欢的是,尽管医学科学本身是一个非常独特的研究领域,需要多年的努力才能掌握,但任何拥有正确人工智能技能的人都可以在基于人工智能的医疗系统中工作,并在拯救生命方面做出小小的贡献!多美啊!

Source

教育

人工智能具有颠覆教育行业的巨大潜力。一个非常好的应用是,基于人工智能的系统可以部署在机构中,以对学生的试卷和作业进行评分。这将帮助教师节省宝贵的时间,这些时间可以用来学习新概念或帮助学生取得进步。这也将减少学生之间的偏见。

*并非所有人生来都一样。*因此,自然地,我们都拥有不同的技能。但是传统的教育系统旨在给每个人提供相同的内容。这一直是一个问题,因为大多数人无法与课程保持一致,因此最终表现不佳,甚至可能从未意识到自己的潜力。基于人工智能的系统可以帮助消除这个问题。我们可以设计这样的系统,它可以根据各种指标评估学生的潜力或目标,然后推荐这样的课程/课程,帮助他们实现目标,而不是做一只绵羊。

A few advantages for students

最后的话

人工智能是一项在许多领域都显示出巨大前景的技术。以重复我自己为代价,我想说,任何人只要有正确的心态和努力的意愿,都可以学习人工智能,并为人类社会的发展做出贡献。

如果你刚刚起步,你不需要花一大笔钱从名牌大学获得硕士或博士学位。你几乎可以免费开始。有很多像 Coursera、Udemy、Udacity 等平台可以让你立刻进入这个领域。

谷歌搜索一下,你的旅程就开始了!

人工智能可以实现任何可以想象的事情。你所需要做的就是想象和工作!

如果你喜欢这篇文章,请留下一些掌声。有帮助!

感谢你读到这里,祝你的人工智能之旅一切顺利!

为什么我离开了我在投资银行的第一份工作?

原文:towardsdatascience.com/why-i-left-…

毕业后,我开始在一家领先的投资银行工作,担任金融分析师。这个角色令人兴奋;我过去常常与伦敦的交易部门联络,解释他们日常交易活动中的风险变化。

尽管如此,我还是在六个月后辞去了工作。虽然我很感谢我在银行获得的机会,但这并不符合我对新技术工作的热情。辞去一份好工作去寻找一些非常不同的东西可能违背传统智慧,但我不得不做出这个大胆的职业选择。

我的大学故事和第一份工作

我毕业于果阿比茨皮兰尼大学,获得数学硕士学位和机械工程学士学位。在我高三结束的时候,我为了我的第一份工作搬到了孟买。就这样和一些很有天赋的人开始了一段有趣的旅程。然而,仅仅几个月后,我意识到我的技能停滞不前了。此外,由于我对统计、优化和更新技术领域的浓厚兴趣,我被机器学习和人工智能吸引住了。

一个晴朗的日子,我决定暂停工作去追求我在这些领域的兴趣。

我的职业生涯中断了

一开始并不容易。在过去的几年里,我没有接触过编码。醒来后不去工作的这种突然的空虚感开始困扰着我。但是往好的方面想,我现在一天有 24 小时属于自己。

本人数学功底很强,大三大二的时候做过竞技编程。然而,没有计算机科学学位并试图从财务角色向技术角色过渡对我来说很困难。我开始做 Python 和数据分析库的在线课程,开始做 Jupyter/IPython 笔记本。

很快,我开始在吴恩达的 Coursera 上学习我的第一门机器学习课程。我还在 Udacity 上注册了一个纳米学位项目。几个星期后,我开始做 Kaggle、UCI 机器学习库和其他公共数据集的项目。我已经将我的大部分项目发布到了我的 GitHub 上。

我的对《权力的游戏》书籍的分析,是我在一个周末花了几个小时做的一个项目,在媒体数据科学出版物上出现,我从我的同事和熟人那里得到了积极的反馈。

我的求职

在熟练掌握监督和非监督学习算法、特征工程和模型评估之后不久,我就开始钻研 NLP 和深度学习。我开始在 Udacity 上做 Google 的深度学习课程,在斯坦福大学做 Christopher Manning 教授的 NLP 课程。

我也积极地开始寻找一个数据科学家 / 机器学习工程师的角色。具有深度学习的自然语言处理深深吸引了我,我的目标是解决该领域中一些最困难和最具挑战性的问题。我会继续学习,寻找机会。

开发商长期以来一直认为,求职者应该有一个强大的公共投资组合,因为通过自学和副业项目展示的经验可以解释相关学位的缺乏。我将继续在我的中型账户上添加我关于机器学习和 NLP 的想法和项目。

如果你有兴趣了解我的项目,或者你知道哪些公司正在寻找有激情的人,请给我发电子邮件到 shubhamagarwal328@gmail.com

我还将写另一篇关于我如何利用休息时间阅读、写博客和旅行的文章。你可以在 Medium 上关注我以了解最新消息。

干杯。

为什么我认为 AI 可以接管人类。

原文:towardsdatascience.com/why-i-think…

在听了一个关于云技术和 API 发展的内容丰富的演讲后,我感到非常幸运今天有 Google 在我们身边。作为一名本科生,我可以看到谷歌是如何让我的创造力向大量的想法敞开大门的。随着我想象力的拓展,谷歌已经通过使用他们的 API 简化了机器学习任务,而不需要理解算法是如何工作的。我创建了我的第一个项目,根据一个人的照片,给这个人的吸引力打分。整个程序是使用 2 个 Google Cloud APIs 开发的。谷歌的图像识别 API 从给定的图片中提取特征,机器学习 API 进行训练,给出提取的特征。看起来挺复杂的?

是的,这就是我想的。没有必要从头开始学习这些算法并重新创建循环。如果他/她想走艰苦的道路或继续在 Google 的基础设施上发展,现在完全取决于学生。

让我说明一下我的教育背景。我在印度的一所寄宿学校接受了中学教育。我记得我逃离数学,问自己,“我这辈子到底要在哪里用代数!”。由于接触互联网的机会有限,为了通过考试,我使用纸质材料,数学也学得很好。当我开始深入研究计算机时,我意识到我学的所有代数都不是多余的,它实际上是有意义的。我后退了一步,修改了一些重要的数学领域,现在我每天都在探索如何利用这些知识来帮助人们。在每天的旅途中,有一天我看到了下面这些新闻,

据《每日电讯报》报道, “英国儿童因‘肤浅’的学习而在数学方面落后” 《每日邮报》称,四分之三的离校生‘在数学和读写能力上苦苦挣扎’:公司需要数月时间来填补初级职位,因为许多青少年缺乏‘关键技能’”

技术的发展,尤其是互联网的发展,使得学生们可以很容易地找到问题的解决方案,而不会超出他们大脑思维能力的极限。现在,高度先进的计算能力以 API 的形式公开可用,这让我担心,这些 API 将如何影响学生学习计算核心基础的旅程?

看积极的一面,就像我前面说的,更多的机会和开阔的想象视野。通过 source 在线社区,学生可以获得最新的知识。在线工具使解决问题的过程变得简单而灵活。

另一方面,随着在线工具的普及,学生没有明确的路径可循,这增加了他们脱离正轨的机会。

虽然政府很重视这个问题,并制定了可能的指导方针来提高英国学生的数学技能。然而,这并不完全是一个实体或一家公司在关注这个问题。我认为这个问题是我们社会的一个毒瘤,如果不尽快解决,后果可能是严重的。为什么激烈?

根据 mirror.co.uk 的说法, “史蒂芬·霍金称人工智能可能通过接管人类来摧毁社会”

如果我在这里将这些点联系起来,高级计算系统由数学算法支持,一旦系统的关键开发人员停止工作,缺乏基本数学技能的学生将无法理解如何理解人工系统的工作。因此,机器将能够自我修改,而人类将与这一过程无关,因为他们的知识将远远低于他们能够理解该系统如何工作的程度。

正如我之前所说的,我认为这个问题是我们社会的毒瘤,每个人都有责任帮助促进学习的过程。政府正在努力制定有效的教学指导方针,但调查教师如何应用这些指导方针也很有趣。我被教导说,我的父母是我的第一任老师,学校的老师在他们之后。因此,首先,家长应该认真对待他们的孩子如何被灌输所需的数学技能,以及学校在保留和发展知识方面使用的教学方法有多有效,而不是仅仅记住并在考场上吐在纸上。然后,学校要尽一切可能满足家长的期望。

这不是我们一夜之间能解决的。这应该是一个由每一个关心地球、社会和家庭的人支持的过程。

为什么我要获得深度学习的(纳米)学位

原文:towardsdatascience.com/why-im-gett…

“活着吧,就像你明天就会死去一样。要像永远活着一样去学习。” ――圣雄甘地

深度学习已经出现在搜索、通信、广告、商业、金融、医学、媒体和许多其他领域。在未来的岁月里,它的影响力只会增加。当你意识到随着计算能力的激增而增强的大型数据集的可用性才刚刚开始,这让你想了解更多。

作为一名顾问、导师和投资者,我与任何愿意与他人分享知识的人都有联系。在大范围内,在互联网上,我们看到人们愿意分享每一个话题。有多种格式的内容可供使用,包括数兆字节的文本、数年的音频和视频。虽然互联网是一个巨大的知识来源,但对于特定的学科,它有助于遵循结构化的学习方法。

去年我参加了吴恩达教授的斯坦福/ Coursera 机器学习课程来更新一些旧的概念。在那之后,我在 Udacity 开始了一个类似的课程,当时他们宣布了一个新的深度学习纳米学位。虽然它不是免费的,而且意味着更大的时间承诺(它长达 17 周),但我决定复习一些自学的 Python 和几十年前的线性代数并注册。

这就是为什么我相信这将值得我的时间和金钱。

结构。

如果你像我一样,结构有助于在你迷失方向之前保持你的注意力。很容易发现自己在阅读一篇关于新的卷积神经网络应用的学术论文——毕竟每天都有新的新闻。但我更愿意学习什么是一个 CNN,如何在此之前自己实现一个。此外,这个结构帮助我提前计划我需要投入多少时间(晚上或周末)来和其他人保持同步。如果你落后了,FOMO 会狠狠地打击你,让你想要迎头赶上。

Structure is good

作业。

我喜欢作业的挑战,因为它们给你安慰,让你觉得你真的在学习。通过自己做一些事情,并看到结果是一种很好的感觉。这让我想起了我在大学里写的第一个程序。

My program can see!

向最优秀的学习。

技术有这个周期,每当有一个新的热门话题,所谓的专家、大师和忍者不知从哪里冒出来,试图通过重复流行词汇或无用的建议来赚钱。你已经看到聊天机器人的趋势了。这是一个很难的主题,所以没人能这么容易地愚弄人。但是我能直接从最优秀的人那里学到东西,这有多好?仅举几个:牛津大学的研究员,或者百度的首席科学家,或者 Udacity 的自动驾驶团队。

哦,我有没有提到 Siraj

社区。

来自世界各地的学生组成了一个超级充满活力的社区(不幸的是,☹️.仍然是男性主导的)因为这是一门基础课程,所以有不同层次的专业知识。你会发现年轻的学生或像我这样的人都在寻找新的知识,或者只是对这个主题感到好奇。一个松散的董事会让每个人都保持联系,虽然它可能有点混乱,但你可以让人们 24/7 询问和提供帮助。永远不会无聊。

Slack board for students

行业背景和人脉。

接近社区和在这个行业工作的人会让你对正在发生的事情有更好的了解。只要浏览科技新闻,就能看到自动驾驶汽车是现在的热门话题。深度学习领域的 Udacity 纳米学位可以让你快速进入自动驾驶汽车工程师纳米学位(第一批 250 个名额有 1.1 万名申请人。)仅此一点就吸引了许多人,他们认为这是在该领域尝试职业生涯的一个切入点。像宝马、滴滴、优步、Kaggle、梅赛德斯-奔驰这样的公司都在等待招聘最有才华的人。

更新: 我现在已经开始学习所有关于自动驾驶汽车的技术。截至 2018 年 1 月,我即将开始第三个也是最后一个学期的 自驾工程师纳米学位 。比我下面写的深度学习课程要复杂一点。课程开始类似于深度学习课程,但后来进入了计算机视觉、机器人和许多令人敬畏的科目。我毕业的时候会在 5 月份写一篇类似的文章。同时,享受阅读我完成的具体任务的乐趣:

为什么学术写作如此密集?

原文:towardsdatascience.com/why-is-acad…

我分析了 100K 篇论文来找出答案。

动机

最近,我很长时间没有在媒体上发帖了。斯坦福大学公共财政课程的第二部分是关于结构评估的。这些论文很容易就达到 100 页/张,而且充满了希腊字母和冗长复杂句子。

这一痛苦的经历让我思考:为什么研究人员没有动力写得更简单?

理论和可检验的预测

学术写作应该简单一点吗?

  • 理论 1: 你可能认为这是显而易见的——简单的写作更容易理解,这反过来会导致更多的引用。【是】
  • 不幸的是,同行评议出版游戏有时会相当混乱。作者可能会写冗长、复杂的论文来转移任何可以想象的批评。他们可能还会用复杂程度或篇幅来表明论文的质量——毕竟,没有人想读 100 页的希腊字母,即使是审稿人也不想。【否】
  • 理论三:一个更无伤大雅的观点是,复杂的文字对于表达复杂的思想是必要的。【否】

可检验的预测

  • 预测 1: 越简单的论文引用越多。
  • **预测二:**复杂论文获得更多引用。
  • **预测三:**引文不受写作风格影响。

结果预览

我找到了三种理论的证据:

  • 学术著作如此密集,因为引文似乎不受其影响。在某些情况下,研究人员甚至可能因此获得奖励,可能是因为这使得缺陷更难发现。
  • 基于主题和文化背景,有很多异质性。
  • 我的结果绝不是最终的——因为可能还有其他我没有考虑到的混杂因素。如果你对我如何使我的分析更严谨有任何建议,请给我留言。

我们开始吧:)

数据

为了回答这个问题,我使用了 2008 年 SIGKDD 论文 ArnetMiner:学术社交网络的提取和挖掘中的引用数据,该数据收集了 300 万篇论文的以下信息:

结果基于前 10 万篇论文

100K 样品

由于我的处理能力和内存有限,所以我把前 100K 的论文作为我的样本。如果你对复制我的分析感兴趣,我在这篇博客的结尾提供了我的 Python 代码。我们可以比较我们的结果,看看第一个 100K 的论文是否具有代表性。

可读性度量

我计算每篇论文摘要的 [Linsear-write](http://linsear write) 分数。我选择 Linsear-write 是因为据说它是由美国空军开发的,用来计算他们的技术手册的可读性,而不是一些随机的学术构造。

我含蓄地做了两个假设:

  • 摘要的复杂性很好地代表了论文的复杂性。
  • Linsear-write 是衡量文本复杂性的一个很好的方法。

相关系数:

  • Corr[# of 引文,可读性] : -0.026。
  • Corr[年份,可读性] : 0.013

**

观察

***引文数量和 Linsear 可读性分数之间的关系是非线性的,并且高度可变:*在 10 年级理解之前,引文数量随着写作复杂性而增加;十年级后的理解,引文数量随着写作的复杂性而减少。但是这种关系似乎很弱——因为在十年级左右有很多变化。

【Linsear 分数和年份的关系就不那么明显了:随着时间的推移,每年都有更多的论文被发表。因此,容易试卷的数量和难试卷的数量都增加了。相对于简单试卷的数量,硬试卷的数量增加更多。随着时间的推移,硬纸变得越来越硬。

因果解释

相关!=因果关系

是什么阻止我得出复杂的写作导致低引用率的结论?让我检查一下我是否陷入了因果推理陷阱:

  • ***反向因果关系:*低引用导致文风复杂?
  • ***巧合关联:*关联是由于随机的偶然性。鉴于样本量大,不太可能。但是严谨一点,我可以做 t 检验。
  • 第三个因素导致了复杂的写作风格和低引用率。

遗漏变量偏差是一个真正的问题。导致复杂写作风格和低引用率的第三个可能因素是:

  • ***例 1:理论领域术语更硬,研究人员更少。*但是由于这些术语被该领域的所有研究者普遍使用,它们不会给读者带来太多负担;低引用率仅仅是因为该领域很少有研究者引用它们。
  • 例 2: 随着时间的推移,领域变得更加高级和专业化。更高级的概念可能需要更复杂的写作,更专业的问题可能产生更少的引用。
  • 解法: (1)对于每篇论文,用当年期刊平均值贬低引文量和复杂度。(2)计算每个期刊贬低的引用和贬低的复杂性之间的相关性。
  • 注意:我的解决方案处理了我认为最重要的两个被忽略的变量偏差。可能还有其他我漏掉的混淆因素。

贬低的相关系数

对于每份期刊,我计算了贬低的引用和贬低的可读性之间的相关性。这是 1584 份期刊的相关系数分布。

观察结果:

平均而言,一篇比同行更复杂的论文被引用的次数略少。但是效果真的很小——这表明学术人员不会因为写了深奥的论文而受到处罚。

***有大量的异质性:*我们有很多负相关、零相关和正相关的期刊,为这三个理论都提供了证据。

追问:正相关、零相关或负相关的期刊有哪些?

点击此处查看完整列表。

经济学

对我来说不幸的是,这个样本中仅有的两个顶级经济期刊有真正的正相关关系:

  • 经济理论杂志:0.18
  • 游戏和经济行为:0.35

这与复杂的论文更难发现缺陷的观点一致,更多的读者会购买结论并引用它。这证实了该领域资深研究人员的许多轶事。

计算机科学

大多数计算机械协会(ACM)期刊都有很强的负相关性。这是意料之中的——因为大多数后续论文需要重复其结果。如果很难理解,后面的论文可能就不想复制了。

词云

更正[可读性,引文] < -0.22:底部四分位数

Corr[可读性,引文] > 0.18:前四分位数

观察:

  • ***作者是否因写复合句而受到处罚取决于主题:*第一个词云的特点是更实用的主题,而第二个词云的特点是更抽象的主题。
  • 有重要的文化差异。来自亚洲,我可以证明老师们非常重视写复合句和使用新奇的词汇。当我第一次来到美国的时候,我不得不抛弃我的许多旧习惯。

结论

我找到了三种理论的证据:

  • 学术著作如此密集,因为引文似乎不受其影响。在某些情况下,研究人员甚至可能因此获得奖励,可能是因为这使得缺陷更难发现。
  • 基于主题和文化背景,有很多异质性。
  • 我的结果绝不是最终的——因为可能还有其他我没有考虑到的混杂因素。如果你对我如何使我的分析更严谨有任何建议,请给我留言。附录:Python 代码

附录:Python 代码

让我们导入一些 Python 模块:

**import* re
*import* json
*import* numpy *as* np
*import* pandas *as* pd
*import* matplotlib.pyplot *as* plt
*from* wordcloud *import* *
*from* textstat.textstat *import* textstat*

将 JSON 对象加载到 Pandas 数据框中:

*df = pandas.read_json('inPath',lines=True)
df = df.head(100000)*

删除缺少数据的行:

*df1=df.dropna()*

统计引用次数:

*df['num_citation']=df['references'].apply(*lambda* x: len(re.split(',',str(x))))*

使用 Linsear 度量计算摘要的可读性。

*df['linsear'] = df['abstract'].apply(*lambda* x:textstat.linsear_write_formula(x))*

根据可读性绘制引用数量图:

*plt.plot(df['linsear'],df['num_citation'],'ro')
plt.ylabel('# of citations')
plt.xlabel('linsear')
plt.title('# of citations vs. linsear')
plt.show()*

贬低引用和可读性:

*demean = *lambda* df: df - df.mean()
df1=df.groupby(['venue', 'year']).transform(demean)
df['demeaned grade level']=df1['grade level']
df['demeaned citation'] = df1['num_citation']
correlations = df.groupby('venue')['demeaned grade level','demeaned citation'].corr().unstack()
correlations = correlations['demeaned grade level','demeaned citation'].sort_values()*

标绘文字云:

*neg_corr=correlations[(correlations<-0.22)]
pos_text=pos_corr.index.str.cat(sep=',')
neg_text=neg_corr.index.str.cat(sep=',')
common_set = set(pos_text.lower().split()) & set(neg_text.lower().split())
common_list=[]
*for* e *in* common_set:
    *for* w *in* re.split('\W+',e):
        *if* w!='':
            common_list.append(w)
common_list=common_list+['Review','Letters','Application','Personal']

wc= WordCloud(stopwords=common_list).generate(neg_text)
plt.imshow(wc,interpolation='bilinear')
plt.axis('off')
plt.savefig('your path to word cloud with negative correlations')*

为什么大家都在说人工智能?

原文:towardsdatascience.com/why-is-ever…

没有什么可以阻挡 AI

Courtesy of: SpaceX

现在每个人都在谈论人工智能,实际上,如果你看看网上的搜索和人工智能的提及,你可以看到一个明显的指数趋势。人工智能并不是新的,它实际上在 65 年前就开始了,但今天我们终于有了一种经济高效的方式来存储、传输和计算大量数据,这是以前从来不可能的。

2017 年,我一直在想人工智能行业的增长,我必须告诉你,我对人工智能最近受到的关注感到非常惊讶。在某个时候,我意识到,每当我收到电子邮件时,我订阅的所有技术通讯,几乎每次都有关于人工智能的新闻。

到处都在发生。

几乎所有的高科技杂志。

开发者都在说 AI。

工程师都在说 AI。

数据科学家在谈论人工智能。

记者们正在传播关于人工智能的消息。

企业家们正在集思广益,想出应用人工智能改善业务的新方法。

商人正在人工智能的基础上寻找新的商业模式。

我说的是 AI。

也许你也在谈论人工智能。

这里有一些消息给你:

——中国的 AI 觉醒

人工智能可能是在西方发明的,但你可以看到它的未来正在世界的另一端成形。

把人类放在 AI 的中心

谷歌云首席科学家费-李非表示:“为了制造更有帮助、更有用的机器,我们必须恢复对上下文的理解。”

AI 需要学习什么才能掌握外星战争

人工智能代理需要新的想法来竞争流行的策略游戏星际争霸。

——哈里·瓦尔波拉梦想着一个由美丽的人工智能头脑组成的互联网

这位芬兰计算机科学家表示,他已经解决了人工智能的根本问题:如何制造会规划的机器

微软正在让人工智能变得无聊,这要么很棒,要么很可怕

Slack CEO:我们将如何利用人工智能来减少信息过载

斯图尔特·巴特菲尔德讲述了机器学习如何帮助你提高工作效率。

——《伊顿公学》:机器人老师会意味着每个人都获得精英教育吗?

好的,电话:我的庄稼长得怎么样?

——艾预言的七宗罪

错误的推断、有限的想象力和其他常见的错误会分散我们对未来更有成效的思考。

一项惊人的人工智能进步让谷歌的智能管家听起来更好

脸书为 AI 机器人悄悄进入星际大战,输了

AI 学习的未来会更依赖先天还是后天?

阿里巴巴的目标是“掌握人工智能的规律”,让虚拟助手无处不在

这家电子商务巨头的首席技术官表示,其 150 亿美元的新研究院将探索人工智能、金融科技和量子计算。

什么?你求我停下来吗?好吧,我明白了。你也可能认为这些新闻是有偏见的?也许吧,但我会让你自己判断。所有这些有时可能会令人不知所措,但这可以用来证明一个概念,即人工智能将永远存在,无论是好是坏,没有什么可以阻止人工智能赢得的关注。

为什么是现在?

人工智能大受欢迎的主要原因是:

  • **更强的计算能力:**人工智能需要强大的计算能力,最近已经取得了许多进展,复杂的深度学习模型可以部署,使这成为可能的一项伟大技术是 GPU。
  • **更多数据:**为了让一个有用的人工智能代理做出明智的决定,比如告诉你网上购物时下一件商品应该推荐给你,或者从图像中对一个物体进行分类,人工智能在大型数据集上接受训练,大数据使我们能够更有效地做到这一点。
  • **更好的算法:**最先进的算法大多数基于神经网络的思想,不断得到更好的结果。
  • **广泛投资:**大学、政府、创业公司和科技巨头(谷歌、亚马逊、脸书、百度、微软)都在大力投资人工智能。

人工智能作为一个研究领域和一种经济正在迅速发展。

学术视野中的人工智能

从科学领域的角度来看,每天都有新的研究在进行,每天都有新的思想实验和新的想法出现,关于我们如何才能建立更好的人工智能来为人们的生活服务。除此之外,没有人可以否认这样一个事实,即有许多来自学术界和工业界的人正在努力推动我们今天所知道的边界和人工智能的现状,我们所知道的世界变化如此之快,我们都想看看未来会有多棒。

人工智能是全球经济的助推器

根据普华永道周三的一份报告,到 2030 年,人工智能将为世界经济贡献 15.7 万亿美元。这比中国和印度目前的总产量还要多。你可以在下面找到更多人工智能将为全球经济增加 15.7 万亿美元由于人工智能,到 2030 年全球经济将增加 16 万亿美元。

  • 普华永道称,由于人工智能,2030 年全球 GDP 将增长 14%。
  • ‘人和机器在一起可以比人更好’。

毫无疑问,科技行业正在发生许多事情,日复一日,我们看到并将看到许多以人工智能为核心的尖端创新。敬请期待!

在你走之前!

如果你喜欢这些作品,请留下你的掌声👏推荐这篇文章,让别人也能看到。

J .大卫福莫!

愿原力与你同在!

为什么会有生命?而且和 AI 有什么关系?

原文:towardsdatascience.com/why-is-ther…

Dust devil in Mongolia. By Texasbob (Own work) [CC BY-SA 3.0 (creativecommons.org/licenses/by…)], via Wikimedia Commons

我喜欢我的老问题得到解答。二十年前,我醒着躺在床上,想知道生命为什么存在。现在看了[薛定谔,1944],[泰格马克,2017],[卡罗尔,2016]这样的书,我想我明白了。生活是一个非魔法的物理过程。生活就像小尘暴;物质的小漩涡开始运转,但偶然有一种结构允许它们持续运转超过应有的时间。当然,尘暴不是活的,因为它们不会繁殖,但它们很好地提醒了我们生命是一个怎样的过程。

生命因为存在而存在。这听起来像禅宗公案,但我的意思是,一旦一个进程偶然开始,并具有继续下去的属性,它继续下去,正是因为它有这种属性。如果这个过程碰巧也具有自我复制的特性,那么保持它继续运行的特性就会传递给它的副本,甚至会有更多。当然,这些复制品并不完美。复制品中有一些小的缺陷,而这些缺陷中的一些会导致变异,这些变异可以继续下去,甚至复制得更好。这导致了更多的变异,以及由此产生的更多变异,结果是细菌、树木、人类、蜘蛛和鸡。

这和智力有什么关系?尘暴的一些变种恰好具有这样的特性,它们朝着让它们继续前进的事物移动,而避开让它们熄灭的事物;我们称之为智慧。在某些情况下,更多的智能可以让尘暴持续更长时间,在更多样化的环境中,所以它可以制造更多的尘暴和尘暴的变体。

我们人类尘暴现在正试图人工构建智能。我们正在自上而下地建造它,努力实现人类的目标。相比之下,大自然自下而上地构建智慧,没有目标,变异一个接一个地积累。这种区别可能是为什么人工智能(AI)从业者普遍比其他人更不害怕 AI 的原因。我们把它视为工程,就像制造更好的烤面包机或洗碗机。从外面看 AI 的人不把它当工程看;他们看到人工制品表现得像活着一样,做着人类做的事情,比如驾驶汽车和识别照片中的猫。对他们来说,自然的问题是,“当它变得比我们更聪明时,我们将如何控制它?”

我们自上而下地构建我们的人工智能,因为我们现在需要它有用,也因为我们不了解自然智能的基本原理。这种自上而下方法的结果是一种肤浅的体现。我们构建的智能没有被具体化,或者即使它们被具体化了,我们也试图直接跳到构建能够处理与人类文化相关的概念的智能,而不需要潜在的管道。结果是,我们得到了给不识字的学生论文打分的程序,我们有了不知道路是什么就能制造汽车的机器人。

相比之下,自然智能始于具有简单形态的生物,这些简单的身体形状提供了有限的感知输入空间和有限的行动空间,导致从简单输入做出简单的决定。通过进化,生物体的形态和智能共同发展,这导致了深度体现的智能。例如,我们人类在行走方面如此高效,因为我们利用了我们腿部的动力,并将它们视为钟摆[Clark,2008]。我们的感觉运动例程使我们能够做像制作三明治这样的事情,同时通过允许我们使用目光在正确的时间从正确的环境中获得正确的信息来最小化内存需求[Ballard,2015]。我们在动作和内部模拟中都使用我们的深度化身。当我们想象踢一个物体时,我们用大脑中实际踢的部分进行想象[Bergen,2012]。许多不同的能力以特定的方式共同作用,导致了支配我们行为的心理社会[明斯基,1988]。

因为我们希望我们的人工智能立即有用,所以我们建造了具有复杂形态学的机器人,这些机器人可以拾取物体,识别图像中的猫,并根据情感对电影评论进行分类。最近,我们在深度学习甚至遗传算法方面取得了很多成功,但当谈到建立常识,我们称之为人工通用智能 (AGI)时,我们遇到了困难。这种缺乏进展源于在较低水平的能力之上构建的困难。

人类的一般智力是建立在低级的、前语言概念上的[Feldman,2006 年],[Mandler,2004 年]。为了理解像“我们的创业公司带我们踏上了一段漫长的旅程”这样的语言和句子,我们将它们映射到物理体验,例如实际上走在一条漫长的道路上[Lakoff & Johnson,1980]。为了建立真正的理解,我们可能需要在执行底层物理模拟的实际代码之上建立抽象概念。我们有可以进行导航的自动驾驶汽车;也许我们需要直接在导航代码的基础上建立更高层次的抽象,这样机器人就可以理解创办公司是一次“旅程”

虽然我们有目的地试图自上而下地构建人工智能,但我们的经济和计算机基础设施可能会允许人工智能自下而上地出现。我们的计算机程序本身经历了一种进化。运行良好的计算机程序运行很多,就像持续运行的尘暴。当他们逗留期间,他们积累了来自吉拉门票的变化和来自 GitHub 上的叉子的变化。代码开始时是自顶向下设计的,具有漂亮的抽象,但随着时间的推移,变化越来越多,变得越来越难以理解,但更适合其环境。

我们也在慢慢地将我们的项目融合在一起,这样它们就接近一个心智的社会。过去完成任务所必需的任务,如排序或运行 CNN 分类器,现在可以简单地调用,让程序员专注于更高层次的问题。我们正在通过 makefiles、微服务、API、GitHub repos 和 Apache Maven 慢慢构建更复杂的系统。这些思维的小团体现在变得如此复杂,以至于代码经常被捆绑在一个 Docker 容器中,这样每个用户就不必为组件的不同变体之间的版本不兼容而斗争。因为这些功能是建立在更简单的功能之上的,所以我们在网络世界中得到了某种深度的体现。Twitter bot 建立在通过 TCP/IP 发送数据包的所有代码之上。

我们的智能机器会成为像你我一样的生命体,对世界有着丰富的理解甚至意识吗?我们不知道如何让 Docker 容器有意识,但我们的计算机技术可能正在沿着一条类似于导致我们有意识的自下而上的道路前进。尽管如此,至少还有两个谜团。我们只看到沙尘暴的一个变种发展出丰富的语言和它所带来的文化的复杂性,我们不知道我们是如何做到的,甚至不知道它是如何工作的。意识的第二个奥秘甚至更深。我们不知道它是否有必要,或者是海市蜃楼,或者是基于数学原理。一旦我们解决了这两个谜团,我们将对超级智能机器的可能性有一个更好的想法,除非他们先解决它们。

参考

【Ballard,2015】Ballard,D. 作为分层抽象的大脑计算

【卑尔根,2012】卑尔根,B. K. 比言语更响亮

【卡罗尔,2016】卡罗尔,S. 大局

【克拉克,2008】克拉克,A. 超大型思维

【费尔德曼,2006】费尔德曼,J. 从分子到隐喻

【约翰逊,1987】约翰逊,M. 头脑中的身体

我们赖以生存的隐喻。

心理的基础。

【明斯基,1988】明斯基,M. 心智的社会

【薛定谔,1944】薛定谔,E. 生命是什么?

【泰格马克,2017】泰格马克,M. 生命 3.0

为什么很难培养一种对话式的 Alexa 技能

原文:towardsdatascience.com/why-its-har…

2019 注 : 本文提及的技术方案截至目前不再有效。亚马逊采取了一个有争议的方向,这实际上禁止技能开发者制作像这里描述的对话技能。据我所知,没有任何变通办法可以让技能理解用户的自由文本或任何相近的内容(不, 这个 甚至都不相近)。可悲的是,唯一的选择似乎是完全放弃这个平台,转而使用谷歌助手。

大多数 Alexa 技能似乎符合执行用户命令的简单模式。这些命令中的一些可能有参数,如歌曲名称或城市名称,但通信通常不会超出这个范围。但是如果你想在你的技能范围内进行一次真正的对话,有趣的事情就会发生。在接下来的部分中,我将分享我们的经验和一些提示,它们可能会帮助您解决将要面临的一些问题。您还将看到人类与机器对话时使用的语言。

注:本文原载于 Infermedica 博客。这里有一个稍微更新的版本。Lukasz Przywarty 拍摄的图片。

症状检查技能

我们已经发布了一个 Alexa 技能,要求你说出你的症状并进行一个简单的采访,以确定你健康问题的可能原因。这项技能是使用我们的 API 构建的,它具有症状检查引擎和 NLP 功能(捕获英文消息中提到的症状)。该技能旨在作为概念验证,鼓励其他人使用我们的 API 产品开发自己的语音应用程序。

在这一过程中,我们遇到了一些障碍,这些障碍超出了我们的预期。请注意,我们甚至没有尝试处理完全自由形式的对话;我们的对话结构或多或少是固定的。然而,这种固定的流程对于传统的技能设计过程来说已经是一个挑战。

对话不友好

你可能会觉得亚马逊不鼓励你与用户交流。在他们的开发者门户上列出的十个例子中,只有一个是对话性质的(玩危险游戏)。剩下的归结起来就是按照一个简单的要求行动,然后放弃(查找简单的答案,吐出一条新闻,或者控制灯光或音频播放器)。

“亚马逊可能已经预料到,给开发者太多自由会导致持续缺乏理解,最终,这将归咎于 Alexa 本身。”

我能想到两个可能的原因。首先,这些应用被认为是增强主要体验的附加技能,从而给人一种主要对话发生在特定应用之外的印象。其次,亚马逊可能已经预料到,给开发者太多自由会导致持续缺乏理解,最终,这将归咎于 Alexa 本身。

意图和位置

Alexa 的交互模式不是对话友好的。用 Alexa 的话来说,这种互动可以通过使用“定制技能”类型来实现。然而,如果你期望找到一个方便的框架来实现自定义聊天,你会失望的。即使在使用“自定义技能”时,你也不得不列举一组固定的意图,让用户表达出来。意图可能是想要点咖啡或找到电影名称。确认(回答问题时说“是”)和否认(“否”)也是意图。一些意向可能有用于参数的,比如城市名称或咖啡类型。您必须指定每个插槽的类型;您可以使用一种预定义的类型,或者您需要—您猜到了—枚举一组固定的值。很难想象一次随意的聊天会有这种程度的严谨。

“Alexa 的交互模式对对话不友好。”

现在想象一下,你正试图创造一种技能,可以阅读你的症状并缩小其最可能的原因(就像我们所做的那样)。虽然输入我们的医学知识库中目前定义的超过 1,400 种症状的名称在技术上是可行的,但是不可能为每个值提供多个同义表达(例如,“耳痛”、“我耳朵痛”、“耳朵疼”)。即使这是可能的,保持这种独立于主要知识库的列表会立刻扼杀任何现实生活中的项目。

你能做什么

有一个行之有效的解决方法。你需要做的是迫使 Alexa 认为:

  1. 无论用户说什么,都符合一个唯一的包罗万象的意图。
  2. 这个意图本身就是一个巨大的SearchQuery类型的槽。这种类型是我们通向自由的门票——它使得捕捉任何文本成为可能。

注意,要使技能被认可,你还需要加入三个强制性的意图:呼救、取消当前动作和要求气缸闭嘴。

菜谱有两部分:意图模式样本话语。通过这种方式,你可以有效地防止 Alexa 试图捕捉用户话语中的意图和片段,让你通过 Alexa 语音服务获得从用户语音转录的完整原文。这意味着你只能独自处理非结构化的文本信息,而你的应用程序应该会发送回文本回复。进入聊天机器人的世界!

处理听错的话

尽管有各种宣传和荣耀,但底层语音识别平台 Alexa Voice Services 相当令人失望。一个已知的问题是有不标准的口音。但实际问题似乎远不止于此。

“我们应该预料到一些错误会出现,特别是如果话语不典型或者很短——没有足够的上下文来消除歧义。”

对自然语言处理感兴趣的读者应该知道,没有大规模的统计语言建模,现实生活中的语音识别是不可能的。声音信号是高度不明确的,系统需要大量已知的一个接一个单词的模式来决定实际上在说什么。如果这对你来说似乎有悖常理,试着回忆一下你最后一次试图通过电话告诉别人姓氏、地址或 wifi 密码是什么时候。像这样的信息交流是很困难的,因为接收者的大脑没有足够的语言模型。

这就是说,我们应该预料到一些错误会出现,尤其是如果话语不典型或者很短——没有足够的上下文来消除歧义。

你是电子邮件还是电子邮件?

缺乏上下文是一个常见的问题。在我们采访的某些时候,我们需要了解用户的年龄和性别。后一个问题引起了惊人的麻烦。如果答案是“男性”,那就根本没这么理解。最常听到的(错误的)回答是“mail ”,然后是一些更长的短语,如“I a mail ”,甚至是“can you mail”。由于我们无法获得语音记录,我们只能猜测用户想说什么。日志中出现的一些意想不到的单词可能来自喃喃自语,甚至来自房间中的多人说话。Alexa 的语言模型在解释“女性”方面问题较少,但在文字记录中看到“电子邮件”并不罕见。

我们如何处理这些?嗯,在这个简单的二选一问题中,我们硬编码了最常见的模式,并假装没有什么不寻常的事情发生。

当曲解的话语是开放式问题的答案时,一个更大的问题出现了。是的,当我们试图理解用户健康问题的描述时,这种情况经常发生。对匿名日志的一次挖掘发现了许多关于“棺材”和“咖啡”的投诉(咳嗽?).这些采取各种形式,例如,“我有一个驱动棺材发烧”(干咳和发烧?),还有一个戏剧性的表白:“我是咖啡”(我在咳嗽?).我们还发现了 Alexa 对迪士尼的怪异亲和力(头晕,或许还有呼吸困难)。

我们仍然没有找到解决这个问题的好办法。这个问题本身就是我们的技术名声不好的主要原因。相比之下,我们的谷歌助手集成受到了称赞,尽管两者是由完全相同的语言理解后端驱动的。

最好的语言模型是领域相关的

这些问题中的许多都可以用特定于领域的语言模型来解决。不幸的是,Alexa 只提供了一个通用的语音识别器,无法注入额外的语言环境。一个理想的解决方案将允许我们从几个预先训练好的特定领域模型中选择一个,如医疗领域、IT 和管理、休闲八卦和生活方式等。能够提高某些预期短语(例如“女性”和“男性”)的概率也是有帮助的。我们希望两者最终都能在所有主要的语音平台上提供。

谷歌语音识别引擎的出色表现表明,训练数据的规模和可变性确实会产生影响。

语音交流鼓励更自由的语言

聊天语言随意。在聊天机器人的例子中,通过使用即时响应模板,用户的语言被部分驯服。此外,一些聊天机器人会给出冗长的介绍,为接下来的对话定下基调。

Poncho bot giving verbose suggestions. You can’t afford this on Alexa!

语音界面的本质鼓励随意的日常语言。技能设计者可能会使用介绍和插曲来引导对话者使用机器友好的语言,但不要让用户厌烦得要死,这是一项棘手的任务。Alexa 缓慢的语速加上我们不断缩短的注意力持续时间几乎没有解释的余地。

这种表达的自由让我们的用户更难理解,尤其是因为有些话根本就是听错了。

如何比较语言变体

让两个对话代理执行同一种健康检查使我们能够比较与 Alexa 对话时使用的语言和与聊天机器人打字时使用的语言,至少对于这个特定的领域是如此。

症状(网络聊天机器人)和症状检查器 Alexa skill 都有类似的对话流程。在对话的第一阶段,用户被要求用自己的话描述他们的症状。我使用这些描述(记录在匿名日志中)来寻找这些语言的不同之处。

比较两个语言样本以发现相似性和差异是语料库语言学和词典学的一个基本问题。虽然原则上有更多的东西,但它通常被简化为比较词频来发现不规则性。如果你对这个话题感兴趣,最好的起点是已故的 Adam Kilgarriff 的开创性论文。

口语单词、打字单词

口语和书面语是不同的,这不足为奇。但是到底有多大的不同,这对系统有什么影响呢?让我们来比较一下,在对聊天机器人打字时,哪些单词更受欢迎,在对 Alexa 说话时,哪些单词更受欢迎。下面的可视化显示了最能区分聊天机器人和语音症状检查器所用语言的单词。一个单词的大小反映了它对这些语言变体的具体程度(使用对数似然比度量计算)。红色单词更频繁地对 Alexa 说(根据 Alexa 听到的),而蓝色单词更频繁地输入到 Symptomate 聊天机器人。

Words used in communication with the chatbot (blue) and with the voice assistant (red).

Alexa 收到了更直接、更个性化的语言。你可以在人称代词的出现中看到这一点(我的)。此外,疼痛更经常用动词伤害(我的胃痛而不是胃痛)来描述。聊天机器人见过更多的医学术语和正式语言(如腹部呼吸困难压力难度)。

平均而言,我们的聊天机器人可以比我们的 Alexa 技能多理解 13%的故事(粗略估计)。很难说这有多少是由于语音识别错误,又有多少是由于我们的 NLP 系统对正式语言的偏好。

摘要

在这篇文章中,我已经指出,建立一个对话式的 Alexa 技能是相当困难的。首先,Alexa 技能套件的设计在这方面并没有真正的帮助。您需要滥用技能配置来将您的应用程序从僵化的意图中解放出来——否则会扼杀任何自由形式的对话。然后,您需要处理底层语音识别技术的错误,或者等待并希望这将随着时间的推移而改善。你的技能将为每一个语音识别错误受到指责,用户甚至不会知道不是你的技能没有理解简单的语言,而是亚马逊的平台。你的领域越开放,你就越有可能面临这些问题。最后但同样重要的是,你的用户将会使用比他们在聊天机器人上打字时更随意的语言。

所有这些观察都是在发展我们的症状检查技能时进行的。请随意尝试,并自己判断我们是否已经设法克服了这些困难。

为什么训练一个具有动态结构的神经网络不再困难!

原文:towardsdatascience.com/why-its-not…

TLDR;最后,开源社区解决了神经网络中动态结构的需求。在过去的 3 个月中,我们看到了 3 个支持动态结构的主要库版本。

  1. 张量流折叠(谷歌)
  2. 达内 (CMU)
  3. Pytorch (Twitter、NVIDIA、SalesForce、ParisTech、CMU、数字推理、INRIA、ENS)

Innoplexus ,我们从结构化、非结构化和半结构化来源收集信息,以帮助我们的客户做出实时决策。为了达到这个速度,我们将自然语言中的文本从非结构化的源转换成适当结构化的表示。由于速度是一个主要的瓶颈,我们的 NLP 系统是基于语言的递归结构,这是由于工具的可用性和计算在多台机器上的分布。

随着时间的推移,我们意识到递归方法的局限性,如 LSTM 和 GRU 试图将递归自然语言纳入一个序列框架。这导致在信息处理任务中语法信息的丢失。但不幸的是,从头开始实现递归神经网络可能会变成一场噩梦,因为它涉及到以非常高的精度编写复杂的反向传播代码。

大多数 ML 库,如 Tensorflow、Torch 或 Theano,允许创建静态网络,该网络限制了作为输入函数的网络结构的变化。这被证明是自然语言处理/理解中的重大限制,其中句法信息被编码在作为输入文本的函数而变化的解析树中。像句法分析机器翻译情感分析这样的许多应用需要句法信息和语义信息。由于没有任何框架可用,开发人员不得不在 Numpy 中实现培训过程。这被证明是非常容易出错的,并且是必须以高精度执行的单调乏味的任务。

我们在 Innoplexus 实现实体提取器时遇到了类似的问题。它使用语义统一的递归神经网络,具有树状结构。由于没有任何支持动态结构的框架,我们最终在 Tensorflow 中实现了它。这给我们的计算图带来了沉重的负担,使得我们的训练过程缓慢,内存效率低下。此外,决定批量大小来刷新图表成为训练过程中的一个关键问题。正当我们准备在 Numpy 中重写整个训练过程以加快速度时,我们遇到了 Dynet。

DyNet(原名 cnn )是由卡耐基梅隆大学和其他许多人开发的神经网络库。它是用 C++编写的(使用 Python 中的绑定),设计为在 CPU 或 GPU 上运行时都很有效,并且适用于具有针对每个训练实例而变化的动态结构的网络。

我们在 Dynet 中重构了代码,对 Tensorflow 代码做了微小的修改。就可用功能而言,Dynet 不如 tensorflow 成熟,因此我们最终为 Tensorflow 编写了实现。另一方面,PyTorch 更加成熟,并得到了更广泛的社区的支持。您可以创建这样的动态图形:

PyTorch: Dynamic Graph Construction

Google 最近推出了 Fold,它包含了比 tensorflow 更广泛的 Python 对象。它提供了对结构化数据的支持,比如嵌套列表、字典和协议缓冲区。这克服了 Tensorflow 的静态图形限制。它的方法与 PyTorch/Dynet 完全不同。它使用动态批处理来并行化多个实例图中的操作。仔细看看,这很酷。简而言之,它是这样工作的:

Tensorflow Fold: How it works.

在自然语言处理领域,语言可以有不同的表达长度,因此动态计算图是必不可少的。人们可以想象语法是如何被解析来实现对堆栈和动态内存以及动态计算的需求的。Carlos E. Perez 在他的文章中恰当地总结了这一重大进展。

随着这一发展,预计深度学习架构将走过与传统计算相同的进化道路将是合理的。也就是从单一的独立程序到更加模块化的程序。引入动态计算图就像引入过程的概念,而以前只有“goto”语句。正是过程的概念使我们能够以可组合的方式编写程序。当然,有人会说 DL 架构不需要堆栈,但人们只需要看看最近对超网络和拉伸网络的研究。在研究中的网络中,像堆栈这样的上下文切换似乎是有效的。

我们正在使用这些库来重构我们的代码,以便通过较小的修改从递归系统转移到递归系统。这极大地改进了我们现有的模型,并使我们能够解决以前无法解决的问题。我希望这能帮助你实现和我们一样的转变!

快乐黑客:D

为什么 Kaggle 不会让你成为伟大的数据科学家

原文:towardsdatascience.com/why-kaggle-…

想成为老鹰或 Kaggle 数据科学家?

Want to be an Eagle or Kaggle data scientist ?

毫无疑问,Kaggle 是一个学习数据科学的好地方。有许多数据科学家在 Kaggle 上投入了大量时间。太棒了。

但是你不应该仅仅依靠 Kaggle 来学习数据科学技能。

以下是原因

数据科学不仅仅是关于预测

卡格尔只关注那些需要预测的问题。然而,现实世界中有许多问题与预测无关。

例如,许多公司有兴趣知道客户流失的最常见途径是什么。这些类型的问题要求人们理解不同的数据类型和客户接触点,例如 web 导航、计费、呼叫中心交互、商店访问。然后,您需要识别重要事件,如超额计费或导航错误。一旦您确定了所有事件,您需要应用路径算法来了解导致客户流失的常见路径。这些类型的问题不能仅用预测算法来解决。他们需要能够从事件中构建时间线的算法。

类似地,除了预测性问题解决之外,还有许多其他这样的问题需要技巧。知道如何解决预测性问题是件好事,但作为一名数据科学家,你需要解决多种类型的问题。现实世界有更大类型的问题要解决。你将不得不在 Kaggle 之外寻找解决现实世界数据科学挑战的技能

你不会发展图形算法技能

社交网络分析、影响者预测、社区分析、欺诈者网络分析,所有这些都是数据科学家需要解决的非常有趣的分析问题。这类问题需要图形算法方面的知识,比如 Pagerank、模块性、最短路径、特征中心性等等

网络或社区类型的问题在 Kaggle 很少见。图形和网络风格的问题需要节点和链接数据的概念,这不是 Kaggle 中大多数数据可用的方式。

当然你可以把一个问题转换成使用图算法,但是这种情况很少见。缺乏这种类型的竞争代表着在 Kaggle 和数据科学家期望在企业中解决的问题之间的巨大差距

你不会把精力放在算法的可解释性上

算法的可解释性变得非常重要。你可以有一个非常复杂的方法和最复杂的算法,但如果算法不能解释它是如何得出预测的,这在企业中是一个大问题。这种莫名其妙的算法被称为“黑盒”算法。

黑盒算法会让人对使用它失去信心。此外,从法律角度来看,这可能会产生问题。比方说,你开发了一套非常精确的算法来预测信用风险。在生产时,它将开始预测信用风险。有些人会得到低分。被拒绝的人,根据法律,有权知道为什么他们的申请被拒绝。如果算法决定无法解释,它可能会产生一个法律问题

在 Kaggle 竞赛中,赢家是基于准确性的衡量,而不是可解释性。这意味着参与竞争的数据科学家可以使用非常复杂的算法来提供非常高的准确性,而不必关心可解释性。这种方法可以赢得竞争,但在企业数据科学项目中可能无效

投资回报分析缺失环节

公司正在大力投资数据科学技能。他们期望数据科学项目能够带来 ROI(投资回报)。通常,成功的分析项目是那些将数据科学算法与 ROI 联系起来的项目。

一个这样的例子是预测性维护,即预测设备故障的概率。比如一台设备有 10%的故障概率,你需要派维修人员去检查机器吗?答案可能是否定的。如果失败的概率是 95%,那么答案是肯定的

然而,在实际情况下,大多数百分比是 55%,63%……答案不是很明显。如果公司向所有这样的设备派遣维护人员,这可能意味着巨大的成本。如果他们不发送,就有失败的风险

那么门槛百分比应该是多少呢?这就是 ROI 计算发挥关键作用的地方。对于数据科学家来说,得出这个阈值也是非常重要的,它可以帮助公司决定具体的行动。

Kaggle 不处理这类分析。工作范围只是达到预测,但没有考虑如何将数据科学的结果付诸行动,从而带来投资回报

你不会接触到模拟和优化

所有数据科学家的工具箱中都应该有模拟和优化算法,如系统动态模拟、基于代理的模拟或蒙特卡罗模拟。许多问题,例如财务优化、路线优化、定价,是数据科学家期望解决的不同类型的问题

如果你以价格预测为例,你可以使用机器学习技术,根据季节、日期、地点、竞争对手价格等各种特征来预测产品价格..但是机器学习算法预测的价格是最优价格吗?也许不是。为了确定最优价格,你需要首先确定一个优化目标。一个这样的优化目标可以是利润优化。在这种情况下,你需要确定一个能产生最佳利润的价格范围。为了留住顾客,这样的价格不能太高。同时,为了有好的利润率,它也不应该太低。

所以你需要优化算法来确定最优价格区间。如果预测价格落在该价格范围内,则机器学习的结果可以被接受,否则应该被拒绝

用 Kaggle,一般不给出利润优化等优化目标。因此,这个问题仍然局限于机器学习,优化的范围没有探索

无法经历部署和操作化

好了,你有了一个让你在 Kaggle 排行榜上升很高的模型。但是,模型的有效部署是完全不同的另一回事,这是 Kaggle 无法体验的

模型的有效部署可能涉及诸如 docker、kubernetes 或创建微服务之类的技术。虽然数据科学家不需要成为 docker 和 kubernetes 专家,但是至少他们应该能够熟练地使用它。例如,数据科学家被期望使用 docker 来创建评分管道。

操作化和部署还包括定期监控模型性能,并在需要时采取纠正措施。比如你有一个产品推荐的模型。并且在某个时间点观察到由于推荐的销售正在减少。突然开始给出糟糕建议的模型有问题吗?还是问题出在别的地方?

数据科学家需要参与这种情况,以获得真实而丰富的体验

所以超越“通常的数据科学”。尝试解决需要技能的问题,如算法的可解释性、ROI 估计、优化和这里解释的其他技能。这将是一次非常丰富的经历。通过解决各种有趣的现实世界的问题,你会有掌握数据科学世界的感觉

做一只鹰。高飞。对不同类型的数据科学问题有一个有利的观点。不要做一个目光短浅的人

额外资源

网站(全球资讯网的主机站)

*你可以访问我的网站进行零编码分析。【experiencedatascience.com *

订阅每当我发布一个新的故事时,请随时关注。

* [## 每当 Pranay Dave 发表文章时,您都会收到电子邮件。

每当 Pranay Dave 发表文章时,您都会收到电子邮件。通过注册,您将创建一个中型帐户,如果您还没有…

pranay-dave9.medium.com](pranay-dave9.medium.com/subscribe)

你也可以通过我的推荐链接加入 Medium。

[## 通过我的推荐链接加入 Medium—Pranay Dave

作为一个媒体会员,你的会员费的一部分会给你阅读的作家,你可以完全接触到每一个故事…

pranay-dave9.medium.com](pranay-dave9.medium.com/membership)

Youtube 频道 这里是我的 Youtube 频道的链接 【www.youtube.com/c/DataScien… *

为什么要学习对象角色建模?

原文:towardsdatascience.com/why-learn-o…

对象-角色建模(ORM)是一种为高精度数据/本体建模而设计的概念建模语言。

在过去的 40 年里,ORM 在信息通信技术领域鲜有建树;人们更喜欢使用像实体关系图、属性图模式和 UML(统一建模语言)类图这样的方法。

我认为这是因为使用后者更容易与他人交流思想。

这就是我们开发波士顿的原因;概念建模软件,让您创建概念模型作为对象-角色模型,并轻松地将这些模型转换成实体关系图和属性图模式。

人们自然会问:“为什么要学习对象-角色建模?为什么先做 ORM 里的模型?”

原因是多种多样的,但是最有用的答案是 ORM 比现在存在的几乎所有其他概念建模语言更具语义表达性。由于语义更加冗长,将 ORM 图翻译成 ERD 或 PGS 图很容易,但反过来就不那么容易了。事实上,用 ERD 和 PGS 图来表达一些东西是不可能的,因为用 ORM 来表达它们是标准的做法。

从逻辑上讲,很容易将 ORM 的注入或满射映射到其他建模语言,但是(在许多情况下)反过来是不可能的。

ORM 是一种基于事实的建模(FBM) ,概念建模语言家族,包括 FCO-IM(流行于荷兰,逻辑之乡)。

无论是从自然语言还是从基于逻辑的角度来看,FBM 语言都比大多数其他概念建模语言更具表现力。

通俗地说,与其他建模语言相比,使用 ORM 可以做更多的事情,这就是 ORM 和其他基于事实的建模语言受到概念建模专家欢迎的原因,这些专家一看就知道质量。

这并没有减损应急关系司/PGS 的效用,而只是肯定了 ORM 的效用。

在 Viev(【www.viev.com】T2),我们相信,从更广泛的实用角度来看,像实体关系图和属性图模式这样的语言更重要;因为更多的人理解他们,并能容易地与他们联系起来。不可否认,实体关系图和 PGS 图直接映射到广泛使用的数据库结构(关系数据库和图形数据库)。

我们还认为,从建模专业人员的角度来看,ORM 更重要,他们希望在概念建模方面得到最好的东西。

多模型数据库

我们认为,当世界正朝着包含关系模型(由 er 图充分服务)和图模型(由属性图模式充分服务)的多模型数据库发展时,试图用一种或另一种语言来支配思维共享是没有意义的。现代多模型数据库(如 SQL Server 2017)需要关系和图形模型的建模。波士顿允许你同时为其中一个或两个做模特。

当您学习 ORM 时,您可以在一种建模语言中为关系数据库、对象关系数据库和图形数据库建模。

这就是为什么我们觉得学习对象角色建模很重要。

例子

我所讲的一个简单的例子将展示你可以在 ORM 中做的事情,这些事情你在几乎所有其他概念建模语言中都做不到。

以下面的概念模型为例,表示为属性图模式。

在我们的波士顿建模软件中,你[控制]-点击一个节点类型来查看它的属性。

该模型是一个话语世界(UoD ),我们正在寻找一个电影院的座位预订设施。

电影院有成排的座位和放映电影的时段。一个人可以在电影院预订一个或多个座位,以便他们可以去观看预订的电影(在一个会话内)。

下面以实体关系图的形式显示了相同的模型:

PGS 模型和 ERD 模型都缺少重要的信息,这是一个约束条件:

如果某个预订有一些座位,那么该预订是在某个电影院的某个时段,该电影院包含包含该座位的某个行。

即,在没有放映该人想要观看的电影的电影院预订座位是没有意义的(在一个会话内)。

这个约束是作为子集约束在 ORM 图中创建的,由子集约束符号表示:

Subset Constraint Symbol in ORM

相应的 ORM 图如下所示:

我们相信任何有理性的人都会说属性图模式是最容易可视化的(就所分析的概念而言)。接下来是实体关系图。但是 PGS 和 ERD 都没有抓住关键的限制因素:

“如果一些预订有一些座位,那么该预订是针对在一些电影院的一些时段,该电影院包含包含该座位的一些行”。

在开发和测试 IT 系统以满足我们的影院预订需求时,这些关键约束可以节省宝贵的时间。

因为 ORM 是基于自然语言和专门的谓词逻辑的,虽然图表很有用,但是点击约束并让基于 ORM 的软件用自然语言表达约束的意思是无价的。

Verbalisations in Boston

业务分析师可以用 ORM 开发模型,并用自然语言表达系统的需求。

子集约束是可以在 ORM 中表达的八种不同约束之一。ORM 中的一些约束有许多变体,涵盖了八种主要类型之外的各种场景。

本文中提供的例子说明了为什么您可能喜欢学习对象-角色建模。使用像 Boston 这样的软件,您将模型表示为属性图模式或实体关系图的愿望得到了尊重,如果您正在使用多模型数据库,Boston 就是专门为您的需要而设计的。

我希望这有所帮助。如果时间允许,我会写更多关于 ORM、ERDs 和 PGS 的文章。

注意:对象-角色建模版本 2 (ORM 2)的图形符号有其局限性,我将在本文中讨论这些局限性:对象-角色建模和模糊性

NB 本文表达的模型原始版本版权归 DataConstellation 所有,在 GitHub 上的 ActiveFacts 项目下共享:【github.com/cjheath/act…

— — — — — — — — — — — — — — — —

为什么机器学习是世界上最好的领域

原文:towardsdatascience.com/why-machine…

很迷人,很多样,不魔幻,很有创意,很科学,很自由!

几年前,当我还是一名初级软件工程师时,我和我们的一名算法开发人员一起解决了一个问题。我以为我找到了突破点:有一个算法做错了。我问开发者为什么算法会这样做,我得到的答案是:

“我不知道”

“你不知道”是什么意思?这是你写的,对吗?让我换个说法:有一个你创造的机器,它做一些你无法解释的事情?

当然,有时在软件开发中,我们会遇到难以解释的事情。但是在这种情况下,没有调试它的选项:一步一步慢慢地让图片变得更清晰。在这种情况下,有一行代码返回了一些值,但不可能(或者很难)知道为什么。

让我目瞪口呆。创造一些你无法解释的东西的能力让我着迷。在那一天,我决定我要做一些对我来说很难解释的事情。

今天,我知道机器学习(或深度学习,人工智能,数据科学和计算机科学)是最好的领域。造成这种情况的原因有很多,让我着重讲这六个:

太迷人了

正如我上面提到的,在远非简单的系统上工作,能够执行真正非凡的任务,是非常令人兴奋的。以“文本”为例。今天,我们拥有能够理解我们所说或所写的系统/代理。好吧,不是很明白,但它能够代表我们的语言,可以帮助我们完成许多任务,如翻译、问答、分类(如垃圾邮件检测)等等!我们许多人认为机器为我们做的事情是理所当然的。当然不仅仅是在“文本”中。在许多其他领域,机器解决了我们的许多问题/任务(稍后将详细介绍)。身处这场革命的中心给我们带来了最有趣的挑战。

多种多样

今天,机器的能力是无限的。很难找到一个领域不受益于机器学习(如果有,它会变得有趣得多)。如今,自然语言、图像、医疗数据、广告、人力资源等领域越来越多地使用机器学习。机器可以玩游戏、雇人、交易加密货币、驾驶汽车、帮助诊断疾病、在你的手机上推荐应用程序、在脸书上给你看广告、帮助你开车到达目的地等等。通过进入机器学习领域,你几乎可以在任何其他领域工作。

这不是魔法

技术和魔法可能看起来有些相似,但它们有一个关键的区别。当你看到伟大的技术和很酷的魔术时,一开始你会感到惊讶。然后,你很好奇想知道引擎盖下。在大多数情况下,当你理解了魔术的工作原理,你会对它的愚蠢和简单感到失望。然而,对于技术,当你更好地理解它是如何工作的,它会让你更加惊讶。在机器学习中,解决方案是卓越的和创造性的,这让我想到了我的下一个观点:

它包含了无限的创造力

在许多领域都是如此,尤其是在数学和计算机科学领域。在机器学习中,有无尽的解决问题的方法和无限的想法可以尝试和研究。一开始你什么都没有。你从一张白纸/文件开始。你开始从零开始构建你的系统/代理/模型。你可以使用以前尝试过的许多方法中的一种,你可以修改和改进它们,使它们更适合你的任务,或者你可以从事一些全新的工作。解决方案并不简单,很多时候,为了达到最佳效果,我们必须非常有创意。

这是科学

无论你是否通过积极的研究和发表你的工作积极地为科学做出贡献,当你处理机器学习时,你必须跟上最新的进展。而且还有很多。像 ICML 和 NeurIPS 这样的会议以及来自谷歌、脸书和其他研究实验室的论文带来了许多科学进步。这个科学领域很“活”。有很多方法可以跟上最新的报纸。让它成为“科学”的是这样一个事实,即每天我们都会发现一些关于我们世界的新东西。适用于重要领域的新方法,改进算法的新技术。这是真正的进步,它改变了我们的生活。

它是开源的

就像软件开发一样,你的大部分资源(除了计算能力)都是免费的!工具、框架、ide 等等。想想 sci-kit learn,tensorflow,keras,jupyter noteook 等。所有这些免费工具让我们的生活变得更加轻松,让我们专注于真正重要和有趣的部分。但不仅仅是工具。所有的知识都是免费的。今天,你可以通过使用不同的 MOOCs、免费书籍和数百万博客帖子和教程,免费获得所有相关资源。只要在谷歌上搜索一些你想学的话题,你就会得到无穷无尽的资源

我总结一下,机器学习很可能并不适合所有人。我肯定还有其他人喜欢其他事情,但对我和更多人来说,机器学习是世界上最好的领域。

为什么机器学习在边缘?

原文:towardsdatascience.com/why-machine…

“A view from the orbit on an artificial satellite over white clouds on the ocean” by NASA on Unsplash

软件工程可能很有趣,尤其是当与志同道合的人朝着共同的目标努力时。自从我们开始了微控制器(MCU)人工智能框架 uTensor 项目,许多人问我们: 为什么要在 MCU 上进行边缘计算?云与应用处理器还不足以构建物联网系统吗? 深思熟虑的问题,确实如此。我将尝试在这里展示我们对这个项目的动机,希望你也会感兴趣。

TL;MCU 上的 AI 使更便宜、更低功率和更小的边缘设备成为可能。它减少了延迟、节省了带宽、提高了隐私性并支持更智能的应用。

An image of a Mbed development board (source)

什么是 MCU?

MCU 是非常低成本的微型计算设备。它们通常位于物联网边缘设备的中心。每年出货 150 亿个 MCU,这些芯片无处不在。它们的低能耗意味着它们可以依靠纽扣电池运行数月,并且不需要散热器。它们的简单性有助于降低系统的总成本。

未利用功率

在过去的几十年中,MCU 的计算能力一直在增加。然而,在大多数物联网应用中,它们只不过是将数据从传感器转移到云中。MCU 的时钟频率通常为数百 MHz,封装有数百 KB 的 RAM。鉴于时钟速度和 RAM 容量,转发数据是一件轻而易举的事。事实上,MCU 大部分时间都是空闲的。下面我们来举例说明:

A representation of MCU’s busy vs idle time for typical IoT applications

上图区域显示了 MCU 的计算预算。绿色区域表示 MCU 处于忙碌状态,包括:

  • 建立工作关系网
  • 传感器读数
  • 更新显示
  • 定时器和其他中断

蓝色区域代表闲置的、未开发的潜力。想象一下,现实世界中部署了数百万台这样的设备,集合起来就是大量未被利用的计算能力。

向边缘设备添加人工智能

如果我们能利用这种力量呢?我们能在边缘做得更多吗?事实证明,人工智能非常适合这里。让我们看看我们可以在边缘应用人工智能的一些方法:

推理

Projection into a 3D space (via PCA) of the MNIST benchmark dataset. (source)

可以在边缘设备上完成简单的图像分类、手势识别、声音检测和运动分析。因为只传输最终结果,所以我们可以在物联网系统中最小化延迟,提高隐私性并节省带宽。左图显示了投影空间中的经典手写数字数据集 MNIST。

传感器融合

An image of the super sensor, including accelerometer, microphone, magnetometer and more (source)

使用机器学习和其他信号处理算法,不同的现成传感器可以组合成一个合成传感器。这些类型的传感器能够检测复杂的事件。与基于摄像机的系统相比,这些传感器成本更低,能效更高。超级传感器的一个很好的例子可以在这里找到。

自强产品

An illustration of federated learning (source)

设备在现场部署后可以不断改进。谷歌的 Gboard 使用了一种叫做联合学习的技术,这种技术涉及每一个设备收集数据并做出个人改进。这些单独的改进被集中在一个中央服务上,然后每台设备都用组合的结果进行更新。

带宽

神经网络可以进行划分,以便在设备上评估一些层,而在云中评估其余层。这实现了工作负载和延迟的平衡。网络的初始层可以被视为特征抽象功能。随着信息在网络中传播,它们会抽象成高级功能。这些高级功能占用的空间比原始数据少得多,因此更容易通过网络传输。物联网通信技术,如 Lora 和 NB-IoT 的有效载荷大小非常有限。特征提取有助于在有限的有效载荷中打包最相关的信息。

An illustration of the Lora network setup for IoT (source)

迁移学习

在上面的带宽示例中,神经网络分布在设备和云之间。在某些情况下,只需改变云中的层,就可以将网络重新用于完全不同的应用。

A graphical representation of transfer learning (source)

云中的应用程序逻辑很容易更改。网络层的这种热插拔使得相同的设备能够用于不同的应用。修改网络的一部分以执行不同任务的实践是迁移学习的一个例子。

生成模型

作为上述带宽和迁移学习示例的补充,通过仔细的工程设计,可以根据从数据中提取的特征来重构原始数据的近似值。这可以允许边缘设备以来自云的最少输入生成复杂的输出,以及在数据解压缩中具有应用。

包装

人工智能可以帮助边缘设备变得更加智能,提高隐私和带宽利用率。但是,在撰写本文时,还没有已知的在 MCU 上部署 Tensorflow 模型的框架。我们创建了 uTensor,希望推动边缘计算的发展。

低功耗和低成本的 AI 硬件像 MCU 一样普及可能还需要一段时间。此外,随着深度学习算法快速变化,拥有一个灵活的软件框架来跟上人工智能/机器学习研究是有意义的。

uTensor 将继续利用最新的软件和硬件进步,例如 CMSIS-NN,Arm 的 Cortex-M 机器学习 API。这些将被集成到 uTensor 中,以确保 Arm 硬件的最佳性能。开发人员和研究人员将能够使用 uTensor 轻松测试他们的最新想法,如新算法、分布式计算或 RTLs。

我们希望这个项目能把对这个领域感兴趣的人聚集在一起。毕竟,协作是在尖端领域取得成功的关键。

在 Medium 和 Twitter 上关注我,了解即将发布的事件文章。

了解更多信息

uTensor 文章(即将发布) uTensor . ai 奥莱利人工智能大会 FOSDEM 2018 演示视频 量化博客

为什么许多重要人物都认同人工智能的生存风险

原文:towardsdatascience.com/why-many-im…

Photo by Arif Wahid on Unsplash

埃隆·马斯克(Elon Musk)一直在就人工智能给人类物种带来的生存风险敲响警钟。他是一位杰出的领导人,拥有公众眼中最敏锐的思维,因此,对他来说,对我工作的领域感到担忧,并感觉不到这种存在风险,已经造成了相当大的认知失调。我本能地不同意像他这样的人,以及像尼克·博斯特罗姆、斯蒂芬·霍金斯和比尔·盖茨这样的人,这让我很好奇。他们都更关心这个话题(至少在媒体上),而不是像全球变暖这样突出的问题。

尼克·博斯特罗姆(Nick Bostrom)写了畅销书《超级智能》(Super Intelligence),描述了一个机器智能主宰人类智能并以我们的灭绝而告终的世界。尽管这种世界观令人沮丧,但博斯特罗姆用理性和宽松的时间表来接近它。他为研究人工智能控制问题提出了一个强有力的论点,在这个问题上,如果人工智能行为不当,我们人类有能力轻易关闭它。博斯特罗姆的书激发了许多讨论、会议和知名人士的参与,并使这个假设的问题合法化。这已经成为一个新的研究领域。

未来生命研究所发布了一封人工智能公开信,警告人工智能的风险,并鼓励确保系统有益于社会的研究。签名的科学家数量惊人,包括 Deepmind 的联合创始人 Yann LeCun、Yoshua Bengio 和 Geoffrey Hinton。

下面总结了我在与这种认知失调作斗争并得出解决方案后的分析。

首先,一些快速定义:

人工通用智能(AGI) 是机器的智能,它可以做人类能做的任何任务。

超级智能(SI) 是一种能力远远超过最聪明和最有天赋的人类思维的智能体。

为什么他们是对的

智能是信息处理的一种功能。我们的大脑是一个信息处理发电站,我们并不完全了解,但我们知道如果我们把大脑切成两半,我们的智力会下降,因为核心信息路径被破坏了。

摘自《关于健壮有益的人工智能研究重点的公开信》(Russell 等人):

随着这些领域和其他领域的能力跨越从实验室研究到有经济价值的技术的门槛,一个良性循环开始形成,即使很小的性能改进也价值不菲,从而刺激更多的研究投资。现在有一个广泛的共识,即人工智能研究正在稳步前进,它对社会的影响可能会增加。

我们在技术上建立的信息处理系统在不断改进。这个领域有一个改进和再投资的最佳时机,可以产生越来越强大的信息处理和情报能力。像比尔·盖茨和埃隆·马斯克这样的人比大多数人更了解复利,并从从业者和研究人员可能没有的角度观察了人工智能领域的这一现象。

近年来深度学习和强化学习的产量,产生了像 AlphaGo,Alexa 等系统。已经表明,我们不仅发展了系统,我们还把系统发展到了我们还没有完全理解的程度。我在周末看了 AlphaGo 关于网飞的纪录片,有所收获。我们已经在狭窄的领域建立了几个真正比我们自己更聪明的系统,要理解为什么这个系统会做出任何给定的选择是很困难的。在任何一种复合增长中,我们将建立信息处理系统,在足够多的领域超越我们,被认为是“一般智能”。

与此同时,研究人员会争辩说,我们现在不知道如何训练、教授或编程这样的系统。我每天都在训练深度学习模型,我不认为自己会在短期内意外训练出 AGI。关于神经科学、学习理论和智力,我们有太多东西要学,以至于我们不可能知道什么时候我们会知道得足够多。

我敢打赌,他们对此的回答是,我们目前在哪里并不重要,重要的是改进的速度。

AGI 问题是不对称的

随着我们在这一领域的技术进步,那些支持博斯特罗姆关于人工智能构成生存风险的观点的人将增加他们正确的概率。即使从 0.000000001 到 0.000000002,这仍然是 100%的概率改善。如果你想在 continuum 中站在正确的一边,你应该站在博斯特罗姆和他的公司一边。

如果 100 年后:

  • 我们还没有建成一个 AGI,他们会说,“嗯,我们比以往任何时候都更接近了”
  • 我们已经建立了一个,但这不是一个问题,他们可以说,“唷!我们的努力得到了回报!我们很高兴我们给这个领域带来了足够的关注,因此我们建立的人工智能对社会有益”
  • 我们已经建立了超级智慧,导致了大规模的人类痛苦和死亡,他们将是正确的,并将成为我们的光和真理的灯塔。如果他们变得甚至像神一样,我也不会感到惊讶。
  • 我们已经建立了导致我们灭绝的超级智能,那么一切都不重要了。

像埃隆·马斯克和比尔·盖茨这样的名人有兴趣站在历史的正确一边,因为他们已经在未来几个世纪的书籍和传说中永垂不朽。埃隆·马斯克(Elon Musk)经营着一家销售无人驾驶汽车的汽车公司,他甚至有更多的理由保持警惕和彻底的偏执。由恶意或不了解的力量控制的自动驾驶汽车的联网信标可能是灾难性的。从个人的角度来看,他偏执的唯一坏处是因为偏执而受到指责。一个短期的好处可能是,他的员工在为特斯拉和 Space X 制造的车辆设计安全的自主系统时,会把他的担忧放在心上。

总之,高调的相关人士对此有可怕的看法越来越重要,但这并不意味着它们是真的。是的,这种可能性可能在缓慢前进,但是很少有显著的进步预示着即将到来的普遍智能。一般来说,你不必担心马斯克和扎克之间的争论,因为他们在社会和历史中的角色是他们争论的关键。马斯克站在历史的角度,而扎克站在当下。事实上,如果您在不同的时间跨度内度量正确性,它们的语句都可能是正确的。

然而,随着人工智能系统比以往任何时候都更加自主地训练和部署,理解和控制这些系统的任务变得巨大,因此风险也很高。在人工智能安全的不同问题领域,大量的研究正在蓬勃发展,许多聪明人正在从事这项工作。我猜测,未来三到五年,顶级科技公司对这些研究人员的需求会很大。如果关于 AGI 的耸人听闻的无法证实的说法产生了涓滴效应,导致了这项急需的研究,这可以被视为净效益。这里有一篇很棒的文章关于人工智能安全中的一些具体问题,在这里你可以触及一个停飞的研究领域的表面,而不是把它的头埋在沙子里。

为什么元数据很重要

原文:towardsdatascience.com/why-metadat…

通过将元数据放入区块链来解决科学的数据缺失问题

Photo by Tobias Fischer on Unsplash

当我们想到区块链的主要特征——它的去中心化、不可改变和普遍可及的性质——就很容易理解为什么人们对改进科学的潜力感到兴奋。区块链技术正在快速发展,为科学和科学家带来了新的机遇。

在 Frankl,我们对不久的将来的可能性感到兴奋。但是,我们当前关注的是提供今天可以实施的务实解决方案。

我们走向区块链化科学的第一步涉及元数据。这里我们指的是关于的数据数据(收集时间,使用的软件,存储位置等等),而不是实际的数据本身。

这听起来很简单——而且可能很无聊。但是,将元数据放在区块链上最终是解决科学中最大、最古老的问题之一的一个非常有效的方法。

数据都去哪了?

当我们审视影响当今科学的问题时,最紧迫的问题之一是数据的消失。

科学数据可能会因为许多不同的原因而“擅离职守”:

  1. 科学家没有正确归档他们的数据,他们失去了对这些数据的跟踪,无法理解这些数据,或者他们的硬盘驱动器坏了,他们没有备份。这种情况令人惊讶地(也令人尴尬地)经常发生。
  2. 科学家开始了一项研究,但由于缺乏资金、初步结果不乐观或其他优先事项,在完成之前放弃了这项研究。这些数据与其他研究的数据结合起来可能会有用,但它本身是不能发表的。
  3. 科学家有选择地发布支持某一特定理论的数据。不方便的数据被悄悄遗忘。
  4. 科学家们试图发布数据,但没有成功,因为科学期刊认为这些结果不够有趣。
  5. 科学家们知道发表一个无效的结果有多困难,所以他们优先撰写那些能给他们带来更多可发表结果的研究。

最终结果就是众所周知的“文件抽屉问题”。发表的科学文献只代表了实际进行的研究的一小部分有偏见的样本。其余的被塞在隐喻的文件柜后面。

这里有很多浪费的工作——收集数据,然后不使用。但是更大的问题是《T3》出版的《T2》中的偏见。

行动中的出版偏差

这种“发表偏见”的一个例子来自我自己对自闭症的研究。

2011 年,我和我的同事发表了一项研究,我们给一组大学生一个简单的“视觉搜索”任务,包括在复杂的显示器中定位小物体。我们发现,具有高度类似自闭症的人格特征的学生在这项任务中表现得比这些特征较少的学生更好。

这是一个有趣的发现,因为许多研究表明,实际临床诊断患有自闭症的人在这类任务中表现也很好。因此,我们的结果与自闭症存在于一个逐渐消失在普通人群中的连续统一体中的想法是一致的。

西澳大利亚的另一个小组大约在同一时间报告了类似的发现,所以我们确信这是一个真实的影响。但是几年后,我被邀请对剑桥大学研究人员的一项 T4 研究进行同行评议。他们完全遵循了我们的方法,但使用了更大的样本——而且没有发现任何效果。

在这一点上,我开始询问该领域的其他研究人员,他们是否研究过同样的问题。原来,几个实验室已经这样做了,但没有公布他们的结果,因为他们没有发现一个效果。

多余的研究

这只是一个例子。但是发表偏倚是整个科学界的一个主要问题。如果我们想知道一种影响是否真实——这种影响是否涉及自闭症特征的关联或最新癌症药物的疗效——我们需要看到数据的整体混乱。我们不仅仅想要讲述一个好故事的数据。

科学家在实际上多余的研究上浪费了大量的时间和金钱——因为研究已经完成但被认为是不可公开的,或者因为它试图建立在本身经不起审查的研究上。

在 2016 年对 1500 多名科学家的调查中,发表在自然上的“选择性报道”被评为导致不可复制结果的最重要原因。

第一步是我们需要知道关于所有的数据。这就是区块链可以发挥真正重要作用的地方。

区块链的元数据

在 Frankl,我们正在开发通过设计促进开放科学的应用程序。使用 Frankl 应用程序收集的数据将被动态存档(不再依赖不可靠的硬盘)。这样,共享数据就变成了更改访问权限的简单练习。

数据的归档位置和形式取决于多种因素,包括数据文件的大小、其私有或公共性质,以及任何道德和法律考虑因素,如 GDPR 合规性。这自然会因项目而异,并且会随着技术的发展而发展。

但是无论实际数据发生什么情况,默认设置都是将元数据写入区块链。每当使用 Frankl 应用程序收集数据时,应用程序中的智能合约会向区块链发送一条短信。这可能包括:

  • 数据收集的时间和日期
  • 研究人员的身份证
  • 用于收集数据的 Frankl 应用程序的标识和版本号
  • 指向存档数据的指针(例如,存储库的 URL)
  • 实际数据的散列

[哈希是从数据中导出的短字符串。您无法从哈希中恢复数据。但是如果有数据,您可以将它与元数据中的哈希进行匹配,并确认它没有被更改。]

为什么元数据很重要

将元数据写入区块链是简单易行的第一步。它只依赖于现有的技术(不依赖于仍处于测试版本的技术)。元数据本身很小,因此写入区块链所涉及的成本(即“气体”)也很小。因为绝对没有任何东西可以让任何人识别研究的对象,所以不应该有伦理或隐私问题要争论。

然而,即使是这小小的一步也具有难以置信的力量。因为区块链是公共的和不可变的,所以不能假装不方便的数据不存在。如果科学家从他们报告的分析中排除数据,他们必须证明这一点。

公共的、不可变的元数据有助于防止实际数据消失。这使得将不同研究的结果结合起来进行荟萃分析变得更加容易,这些研究着眼于相同的效果(现在可以包括尚未发表、也许永远不会发表的研究)。它还提供了一种机制,科学家可以通过这种机制展示他们对合作项目的贡献。

元数据的魅力不仅仅在于它的简单性,还在于它的通用性。不管相关的数据文件有多大,如何组织,存储在哪里,甚至是属于什么科学领域,我们都可以对元数据采用相同的结构。

区块链上的元数据可以是链接所有 Frankl 项目的线索,是所有未来开发的基础。这是迈向区块链化科学的第一小步,但却是重要的一步——远离正常的科学。

在 Frankl,我们的使命是让开放科学对科学家来说变得容易和有益。如果你想了解更多,最好从我们的 中页 开始。

您也可以阅读我们的 白皮书 ,查看我们的 网站 ,关注我们的 脸书

我们喜欢反馈(正面的和负面的),所以请让我们知道你的想法——写一个回复或者点击♥按钮,与朋友和同事分享这篇文章。

为什么有重要变量的模型可能是无用的预测器

原文:towardsdatascience.com/why-models-…

理解你的回归

Photo by Rakicevic Nenad from Pexels

统计模型中的重要变量不能保证预测性能

在数据科学或实验科学课上,你首先要学习(或应该学习)的一件事是解释模型和预测模型之间的区别。解释模型通常测试关于变量之间关系的假设,例如它们是否显著协变,或者组之间是否存在显著的数值差异。另一方面,预测模型关注的是经过训练的模型能够在多大程度上估计出未在训练中使用的结果。不幸的是,在解释模型中有多个重要变量并不能保证预测模型的高准确性。

这两种模型类型经常被混为一谈,例如将回归模型中的自变量描述为“预测”因变量。专注于统计建模的研究人员也可能假设这种高显著性(例如 p <.001 in="" their="" variables="" may="" be="" an="" indicator="" of="" prediction="" ability="" the="" model.="" this="" confusion="" permeates="" not="" only="" class="ae mk" href="science.sciencemag.org/content/355…" rel="noopener ugc nofollow" target="_blank">社会科学以及其他数据丰富的科学学科,如遗传学神经科学)。

如此多的研究人员仍然将这两者混为一谈的原因之一可能是他们经常通过文本示例而不是数字示例来了解二者的区别。为了说明模型中的显著性如何不能保证模型预测,这里有一个快速模拟,它创建了一个合成数据集来显示假设检验模型中的显著变量如何不能用于预测实际结果。

首先,让我们加载所需的库并生成一些合成数据。我们可以使用 sci-kit learn 的[make_classification](https://scikit-learn.org/stable/modules/generated/sklearn.datasets.make_classification.html)功能轻松做到这一点。我们有意通过翻转 80%的 y 标签来使分类变得困难。将有 1000 个样本和 3 个特征,其中 3 个特征将在它们与 y 变量(0 和 1)的关系中提供信息。我们还将人工数据分为训练集(80%)和测试集(20%)。

%matplotlib inline
%config InlineBackend.figure_format = 'retina'
import numpy as np, pandas as pd, matplotlib.pyplot as plt
from sklearn.datasets import make_classification
from sklearn.model_selection import train_test_split# Generate synthetic data
X,y = make_classification(n_samples=1000, n_features=3, n_informative=3, n_redundant=0, n_classes=2, n_clusters_per_class=1, flip_y=.8, random_state=2018)
colnames = ['X'+str(col) for col in range(X.shape[1])]
X_train, X_test, y_train, y_test = train_test_split(X,y, test_size=.2, random_state=1)df_train = pd.DataFrame(np.concatenate([X_train,np.expand_dims(y_train,axis=1)],axis=1), columns = np.concatenate([colnames,['y']]))
df_test = pd.DataFrame(np.concatenate([X_test,np.expand_dims(y_test,axis=1)],axis=1), columns = np.concatenate([colnames,['y']]))

现在让我们以散点图的形式可视化数据,其中轴代表变量。每个点代表一个样本,颜色表示 y 标签,0 或 1。

from mpl_toolkits.mplot3d import Axes3Dfig = plt.figure()
ax = fig.add_subplot(111, projection='3d')
ax.view_init(elev=45., azim=45)
for _y in [0,1]:
    ax.scatter(X.T[0,y==_y],X.T[1,y==_y],X.T[2,y==_y],alpha=.3,s=10,label=f'y{_y}')
plt.legend()
plt.tight_layout();

散点图看起来很乱,但正如预期的那样,因为我们使分类变得困难。为了查看变量中是否有任何显著的组差异,让我们分别绘制每个变量的分布。我们还可以进行简单的假设 t 检验,以确定两组在这些变量上的差异。

from scipy.stats import stats
kwargs = dict(histtype='stepfilled', alpha=0.3, density=True, bins=60)
f,axes = plt.subplots(1,len(colnames),figsize=(20,4))
for ix, x_label in enumerate(colnames):
    y0 = df_train.query('y==0')[x_label]
    y1 = df_train.query('y==1')[x_label]
    ax = axes[ix]
    ax.hist(y0, **kwargs,label='y0')
    ax.hist(y1, **kwargs,label='y1')
    ax.axvline(np.mean(y0),color='b',alpha = .5)
    ax.axvline(np.mean(y1),color='r',alpha = .5)
    # Run t-test between groups 
    t, p = stats.ttest_ind(y0,y1, equal_var=False)
    title = f"{x_label} group difference \n t: {t:.2f}, p: {p:.2e}"
    ax.set(xlabel=x_label,ylabel='counts',title=title)
plt.legend()
plt.show();

从显示组均值和 t 检验结果差异的直方图中,我们可以看到,两个变量 X0 和 X2 显示了两组之间的统计学显著差异。

作为一个更稳健的测试,我们通过用 X 变量拟合关于 y 的逻辑回归建立一个解释模型,假设 X0 和 X2 在估计 y 的值时显著相关

import statsmodels.formula.api as smf
formula = 'y~'+'+'.join(colnames)
mod = smf.logit(formula=formula,data=df_train)
res = mod.fit()
print(res.summary())

咻,我们的假设被证实了,X0 和 X2 显示出与 y 标签的显著关系。因为我们有两个重要的预测变量,一个是 p <.05 and="" the="" other="" p="" one="" might="" assume="" that="" we="" can="" do="" really="" well="" in="" class="nl">预测 y 标签。

我们来看看是不是这样。

为了测试我们的 Xs 是否能够很好地预测 y 标签,我们在训练集上拟合了一个逻辑回归模型,但在测试集上评估了它的预测准确性。

from sklearn.linear_model import LogisticRegressionclf = LogisticRegression(solver='lbfgs')
clf.fit(y=df_train['y'], X= df_train[colnames])
print("Training Accuracy:", clf.score(df_train[colnames],df_train['y']))
mean_score=clf.score(df_test[colnames],df_test['y'])
print("Test Accuracy:", clf.score(df_test[colnames],df_test['y']))>> Training Accuracy: 0.58625 
>> Test Accuracy: 0.55

我们的结果显示准确性(55%)略高于偶然性(50%),但没有当你看到 p <.01./>

Let’s look at what these performance look like graphically in a 混淆矩阵ROC(接收器操作特性)曲线时肾上腺素激增那么令人印象深刻。

from sklearn.metrics import confusion_matrix, roc_curve, aucdef plot_confusion_matrix(cm, classes,
                          normalize=False,
                          title='Confusion matrix',
                          cmap=plt.cm.Blues):
    """
    This function prints and plots the confusion matrix.
    Normalization can be applied by setting `normalize=True`.
    """
    import itertoolsif normalize:
        cm = cm.astype('float') / cm.sum(axis=1)[:, np.newaxis]
        print("Normalized confusion matrix")
    else:
        print('Confusion matrix, without normalization')
    plt.imshow(cm, interpolation='nearest', cmap=cmap,vmin=0,vmax=1)
    plt.title(title)
    plt.colorbar()
    tick_marks = np.arange(len(classes))
    plt.xticks(tick_marks, classes, rotation=45)
    plt.yticks(tick_marks, classes)fmt = '.2f' if normalize else 'd'
    thresh = cm.max() / 2.
    for i, j in itertools.product(range(cm.shape[0]), range(cm.shape[1])):
        plt.text(j, i, format(cm[i, j], fmt),
                 horizontalalignment="center",
                 color="white" if cm[i, j] > thresh else "black")plt.ylabel('True label')
    plt.xlabel('Predicted label')
    plt.tight_layout()

cm = confusion_matrix(y_true = df_test['y'], y_pred = clf.predict(df_test[colnames]))
plot_confusion_matrix(cm, classes=clf.classes_,normalize=True)

如果这是一个非常好的模型,我们会在混淆矩阵的对角线上看到强烈的深色细胞。单元格之间缺乏区分说明了我们的模型在区分标签方面表现不佳。它在 54%的时间里准确地预测了 0 标签,而对标签 1 的预测只有 43%。

绘制 ROC 曲线是说明模型的敏感性和特异性的一种方式,其中一个好的模型将由偏离对角线最远的曲线来说明。

y_score = clf.decision_function(X_test) fpr, tpr, thresholds =roc_curve(y_test, y_score) roc_auc = auc(fpr,tpr) plt.plot(fpr, tpr, lw=1, alpha=0.3,label='ROC test (AUC = %0.2f)' % (roc_auc)) plt.legend() plt.plot([0, 1], [0, 1], linestyle='--', lw=2, color='r', label='Chance', alpha=.8); plt.axis('square');

我们的 ROC 线几乎没有与对角线分开,再次显示了它的糟糕表现。

最后,由于机会本身并不是模型显著性的良好指标,让我们测试一下随机模型与其他随机可能模型相比表现如何。

from sklearn.model_selection import KFold, RepeatedKFold
from sklearn.linear_model import LogisticRegressionCVnp.random.seed(1)
kfold = RepeatedKFold(n_splits=5, n_repeats = 5)
n_permute = 200
permuted_scores = []
count = 0 
for train_ix, test_ix in kfold.split(X):
    X_train, X_test = X[train_ix], X[test_ix]
    y_train, y_test = y[train_ix], y[test_ix]
    train_df = pd.DataFrame({'y':y_train})
    for permute_ix in range(n_permute): 
        count+=1
        if count%100==0:
            print(count,end=',')
        y_train_shuffled = train_df[['y']].transform(np.random.permutation)
        clf = LogisticRegressionCV(cv=5)
        clf.fit(X_train,y_train_shuffled.values.ravel())
        score = clf.score(X_test,y_test)
        permuted_scores.append(score)
train_shuffled_score = np.mean(permuted_scores)
score_percentile = np.mean(mean_score < permuted_scores)
title = f'True score percentile : {score_percentile}'
f, ax = plt.subplots() 
plt.hist(permuted_scores,bins=15)
ax.axvline(train_shuffled_score,color='k',linestyle='--',label='Chance')
ax.axvline(mean_score,color='r',linestyle='--',label='True classification score')
ax.set(xlim=[0.1,.9],xlabel='Accuracy (%)',ylabel='Count',title = title)
plt.legend();

我们 55%的比机会更好的准确性证明并不比其他随机模型好多少(p=.0812)。这最终表明,解释性模型中有重要的预测因素并不能保证预测模型的性能。

我们学到了什么

上面的例子说明了解释或假设检验模型的重要变量可能无法保证预测的重要性能。当然,会有重要模型确实提供良好预测的情况,但重要的是要记住这种模拟并不总是如此。

结论

下次你的假设检验朋友告诉你,他们不需要运行预测模型,因为他们的变量非常重要,确保你用模拟数据的例子向他们说明,他们在模型中的重要变量根本不能保证预测的准确性。

标签:[machine-learning](http://jinhyuncheong.com/tag/machine-learning) [significance](http://jinhyuncheong.com/tag/significance) [permutations](http://jinhyuncheong.com/tag/permutations) [analysis](http://jinhyuncheong.com/tag/analysis) [data](http://jinhyuncheong.com/tag/data) [prediction](http://jinhyuncheong.com/tag/prediction) [simulation](http://jinhyuncheong.com/tag/simulation) [python](http://jinhyuncheong.com/tag/python)

原载于 2018 年 12 月 12 日jinhyuncheong.com

为什么大多数公司错过了数据革命(以及他们可以做些什么来跟上)

原文:towardsdatascience.com/why-most-co…

世界上 90%的数据是在过去两年内创建的,到 2020 年,将有超过 340 亿个对象产生数据(1,2)。我们正处于一个信息爆炸的时代,其规模之大,常常令人难以理解。它已经完全改变了我们的运作方式。试着想象一个没有 Yelp 评论、Waze 导航或烂番茄配乐的简单电影之夜。数据分析已经迅速渗透到我们日常生活的方方面面。

图 1:生成的全球累计数据总量(来源:IDC /凯捷)

对企业来说,这种影响是革命性的。数据对商业决策变得如此重要,以至于《经济学人》最近宣称它是世界上最有价值的资源(3)。数据智能是新的竞争优势。毫不奇怪,五个最有优势的数据经纪人——苹果、Alphabet、微软、脸书和亚马逊——是目前世界上最有价值的五家上市公司(4)。

公司的适应能力最终将更少取决于技术技能,而更多地取决于他们阅读和解释统计结果的能力。正如马克·吐温所说,有“谎言、该死的谎言和统计数据。”员工将越来越多地根据数据中的故事做出决策,因此他们拥有确定这些故事是否真实的工具至关重要(你可以在下面测试你的技能)。

每个人现在都是数据科学家

最近数据爆炸的一个有趣结果是越来越多的人将自己归类为数据科学家。

该职业用于描述在机器学习、统计和面向对象编程方面具有独特的跨职能专长的个人。现在,它似乎包含了所有了解 SQL 和 Tableau 的人。

从许多方面来看,这是一个积极的发展。当组织拥有专门的数据科学团队时,这些团队可能很难理解其问题的完整业务背景。具有基本分析技能的业务经理可以通过向数据科学团队传达意义,或者只是通过自己运行分析来弥合差距。

在未来五年,对这些支持分析的业务经理的需求预计将远远超过对核心数据科学家的需求。普华永道估计,到 2020 年,美国商业分析工作的数量将达到 235 万(5)。

图 2:需求是具有分析技能的商务人士,而不仅仅是数据科学家(来源:普华永道/ BHEF)

这种发展的不利方面是,数据解释需要比通常理解的更多的训练。核心数据科学家通常拥有统计学博士学位,以帮助辨别有意义的趋势和随机差异。支持分析的经理通常不会。他们可能有提取和可视化数据的技能,但他们通常缺乏正确解释数据所需的专业知识。

从噪音中分离出信号的困难

考虑一个简单的场景。一位销售经理正在尝试对有限的资源进行优先排序,根据下表,他决定将所有新的营销活动集中在产品 A 上。毕竟,数据显示产品 A 的成交率比产品 b 高得多。

然而,分部观点揭示了相反的事实。推动成交率的真正因素不是产品,而是客户群。一旦你将这个因素标准化,很明显产品 B 实际上有更好的成交率。把新的活动集中在产品 A 上会被误导,而且代价高昂。

这是尤尔-辛普森效应的一个例子,一种损害数据解释的偏见。当统计趋势的方向取决于数据的汇总方式时,就会出现尤尔-辛普森效应。

像这样的偏差在统计分析中非常普遍。其他例子包括确认偏差(无意中想要证明一个假设,而忽略相反的证据),选择偏差(意外选择一个非代表性的数据样本),或异常值管理(不恰当地包含或排除极端数据点)。

分析训练应该专注于意义,而不仅仅是机制

对于企业管理者来说,培养分析能力是绝对值得的。数据分析的重要性在未来几年只会越来越大。懂得如何利用数据洞察力的公司和员工将会蓬勃发展。那些无法适应的人将会被抛在后面。

不幸的是,分析培训项目通常专注于数据分析、提取和可视化的方法——但排除了数据解释的微妙策略。这是适得其反的。这相当于教一个青少年如何开车,但不解释一般的道路规则。

由于各种各样的原因,像上面这个例子这样的误解时有发生。此外,由于数据分析有助于增加员工决策的份额,这样的错误无疑将变得更加普遍和更具影响力。假设一位人力资源经理试图辨别好的表现者和好的表现者。数据可能会讲述某个故事,人力资源经理需要确定这个故事是否真实。人力资源经理读取数据的准确程度会决定一名员工是被提升还是被解雇。

在 Correlation One,我们帮助公司正确使用数据。

期望每个支持分析的经理都成为统计大师是不现实的。但是我们可以教管理者如何避免最常见的思维和数据推断错误。对于任何在分析软件工具上投入大量资金的公司来说,尤其如此。如果你正在为你的员工配备工具以做出更好的决策,你需要确保他们知道如何正确使用这些工具。

点击下面的链接,根据几个示例测试问题来衡量您自己的数据解释技能,并取得联系,了解如何提高您组织的决策能力。

测试自己的技能


来源:

www-01.ibm.com/common/ssi/…

2)http://www . business insider . com/IOT-生态系统-物联网-预测-商机-2016-2

3)https://www . economist . com/news/leaders/21721656-数据-经济-需求-新方法-反垄断-规则-世界-最有价值-资源

4)截至 2017 年 8 月 24 日

5)www.pwc.com/us/dsa-skil…

为什么 OpenMined 成为开源项目的榜样

原文:towardsdatascience.com/why-openmin…

这不是我第一次写关于 OpenMined 的文章,这是一个关于加密和分散人工智能的开源项目。在我开始写我对他们的 GitHub 库的深入研究之前,我想把这篇文章献给他们的发展,不仅仅是他们的软件开发,还有他们的社区。我是在 2017 年 7 月多伦多的一次活动中首次了解到 OpenMined 的。不到 3 个月,他们的成长让我惊讶,我真的认为未来的项目可以从观察他们的步骤中受益,不仅是他们正在开发的东西,还有成为 OpenMined 项目的一部分意味着什么。

什么是露天开采?

我在以前的帖子中写过关于它们的文章。简而言之,这是一个开源项目,旨在构建软件来促进数据所有权的去中心化,以及无需成为这两个领域的专家就可以使用或构建的机器学习和深度学习库。为了实现他们的目标,该项目基于三个支柱:

  • 去中心化:通过区块链技术。
  • 所有权(隐私):通过同态加密。
  • 智能:通过机器学习和深度学习。

世卫组织露天开采?

一个多样化、分布式、开源的社区,拥有超过 1259 名成员,分别来自 GitHub 上的 Slack58 名贡献者19 个库。贡献者不仅仅在软件上工作,还包括设计、交流等等。每个人都在自己最感兴趣的领域和力所能及的地方提供帮助。

OpenMined Team Map

你为什么要加入 OpenMined?

出于实际原因:我认为他们的工作涉及非常相关的领域,这些领域的结合使得这个项目极具创新性。我知道有一些困惑和避免流行词的倾向,但与区块链、加密或人工智能一起工作是目前强烈推荐的职业选择。它碰巧也是 GitHub 和 Python 上最流行的项目之一。对于开发人员来说,为开源项目做贡献是展示技能或学习新东西的最好方式,同时,最重要的是,从中获得乐趣!

Trendy projects on GitHub

还有其他原因:除了社区以惊人的速度增长之外,我个人觉得 OpenMined 的社区比我所在的任何其他社区都要温暖得多。也许是特拉斯克对表情符号的热爱(还有真正好玩的表情符号!),也许是因为每一个关闭的拉动请求都受到了欢迎,也许是因为 Slack 上的每一个新成员都受到了热烈欢迎,也许是因为成员们的响应非常积极。谁知道呢?可能以上都有吧!

Emoji love ❤

但最重要的是,OpenMined 需要你!o(>ω

为什么重叠的置信区间对统计显著性毫无意义

原文:towardsdatascience.com/why-overlap…

“两组的置信区间重叠,因此差异在统计学上不显著”——很多人

上面的说法是错误的。重叠的置信区间/误差线对统计显著性没有任何意义。然而,许多人错误地推断缺乏统计学意义。可能是因为相反的情况——非重叠的置信区间——意味着统计意义。我犯了这个错误。我认为它如此普遍的部分原因是,它经常没有解释为什么你不能比较重叠的置信区间。在这篇文章中,我将尝试用直观的方式来解释这一点。提示:这与我们如何跟踪错误有关。

设置 1 —不正确的设置

  • 我们有两组——蓝色组和绿色组。
  • 我们正试图了解这两个群体之间是否存在年龄差异。
  • 我们对各组进行抽样,找出平均年龄 x̄和标准误差σ,并为每组建立一个分布:

Distribution of Mean Age

  • 蓝色组的平均年龄为 9 岁,误差为 2.5 岁。格林组的平均年龄是 17 岁,误差也是 2.5 岁。
  • 阴影区域显示了 95%的置信区间(CI)。

根据这种设置,开头引用的同一批人会错误地推断,因为 95% ci 重叠,所以各组之间在年龄上没有统计学显著差异(在 0.05 水平),这可能是正确的,也可能是不正确的。

设置 2 —正确设置

  • 我们不是为每个组建立一个分布,而是为各组之间的平均年龄差异建立一个分布。
  • 如果差异的 95% CI 包含 0,那么组间年龄没有差异。如果不含 0,那么组间有统计学显著差异。

Distribution of Difference in Mean Age

由于 95%置信区间(阴影区域)不包含 0,因此差异具有统计学意义。

为什么?

在第一个设置中,我们绘制分布,然后找出差异。在第二个设置中,我们找出差异,然后画出分布。两种设置看起来如此相似,以至于我们得到了完全不同的结果,这似乎违背了直觉。差异的根本原因在于错误传播——这是我们跟踪错误的一种奇特方式。

错误传播

假设你试图估算一个边长为 L W 的矩形的周长 P 。用直尺测量边长,估计每边的测量误差为 0.1(σ_ L =σ_ W = 0.1)。

为了估计周长的误差,直觉上你会认为它是 2(σ_L + σ_W) = 0.4,因为误差会累加。几乎是正确的;误差相加,但是它们以正交方式相加 (平方然后取和的平方根)。换句话说,误差相加的方块。要了解为什么会出现这种情况,请看这里的证据。*

盘旋回来

我们从 2 个设置中得到不同结果的原因是我们如何传播年龄差异的误差。

Sum of 2 positive numbers is always greater than their sum in quadrature

在设置 1 中,我们简单地添加了每组的误差。

在设置 2 中,我们添加了正交误差,即平方和的平方根。

对于任何两个正数,它们的和总是大于它们的正交和。

因此,我们高估了第一次设置中的误差,错误地推断没有统计学意义。

作者简介 我是 NYU 的一名博士生,研究信息系统。你可以在推特上关注我@prasanna _ parasu。**

*脚注 零假设:x̄_B = x̄_G.

** 假设它们的误差相互独立

参考文献 1。错误传播en.wikipedia.org/wiki/Propag…

2.why Error add in Quadraturehttps://www . Colorado . edu/physics/phys 2150/phys 2150 _ fa12/2012 f % 20 why % 20 independent . pdf

3.重叠置信区间http://www . cscu . Cornell . edu/news/stat news/ST news 73 insert . pdf

为什么民调戏剧性地未能预测 2016 年美国大选。

原文:towardsdatascience.com/why-polling…

TL;如果要更好地理解复杂的人类事件和情况,预测必须采取更全面的方法。

为什么所有的民调对 2016 年美国大选的预测都如此错误,这说明了数据是如何被使用的?

无论你对 2016 年美国大选结果的政治立场如何,很明显,当天最大的失败是政治预测。绝大多数民调,甚至晚至周二下午都预测希拉里·克林顿将当选下一届美国总统。

这一事件清楚地说明了在没有完整背景的情况下查看数据是多么容易被误读。这显然导致了错误的结果或预测。当我们试图通过数据更好地理解更广阔的世界时,承认这一错误并寻找根本原因是至关重要的。

公众对这种(数据丰富的)方法的信任对于接受未来跨多个领域的公共和私人工作至关重要。迫在眉睫的危险是,除非采取更好、更全面的方法,否则许多类似的(基于数据的)错误将在未来发生。

我们似乎正处于“大数据”时代,但还不完全是“大洞察力”时代。

面对有限的数据

我们已经变得过度依赖那种“干净的数据”,这种数据是在选举期间作为真实世界事件的事实描述而呈现的。目前可以收集的数据范围仍然有限。考虑到这一点,它应该用于说明部分情况,而不是讲述整个故事。虽然根据容易收集的数据进行预测很有诱惑力,但记住哪些数据不能收集也非常重要。

信息少的图片看起来有多完整,有可能知道真正需要的是什么吗?

民调可以提问吗?

对每日甚至每小时民调结果的关注给人一种错误的印象,即候选人的行动会立即反映在数据中。随着事情的发生,这种变化应该被捕捉和分析。然而,需要认识到的是,大多数人的生活并不与 24 小时的新闻周期相联系。无论这次选举中的许多新闻故事多么令人愤慨,都不应该假设人们对这些事件的了解和兴趣是普遍的。

量子物理学规定,一个数据点在被观察到之前同时以两种状态存在。投票也是如此。根据一条新信息有目的地问一个投票问题的行为,在最坏的情况下,明确地突出了突发新闻事件的内容。最好的情况是,它提醒人们有明确的理由改变观点或投票。因此,提出问题的行为改变了结果。当然,问题的措辞和方式也会产生影响。

理解背后的原因

就像每小时邀请人们去户外记录天气不会改善长期预测一样,政治预测也是如此。当结果的潜在原因不明确时,数据量的增加不会改善预测。

当预测飓风的可能性时,分析气压、风向、温度等数据。所有这些都有助于预测可能的结果。然而,这些数据只有在清楚了解事件发生的原因时才有用。不理解飓风形成的(科学)原因,任何单一的气候数据都是没有用的。投票时影响决策的因素都需要知道,而不仅仅是那些显而易见的因素。

要真正理解任何情况都需要更充分的参与和观察。

风景变了

与四年前相比,整个形势已经发生了变化。假设社交媒体、新闻报道或任何全球政治形势都是僵化不变的,这很奇怪。

政治候选人应该说什么、做什么或做什么的“规则”都在不断变化。自上次选举以来,沟通、事实或信息传达的方式也发生了巨大变化。

数据背后的框架不会改变的想法是一个危险的假设,因为这样就很容易不对任何数据的核心重要性提出新的问题。如果我们不再关注选举中发生的所有组成部分,那么我们最终会缺乏洞察力,即使我们有更多的信息。

随着时间的推移,大部分人类参与其中的事件总是容易发生变化。

昨天可能是正确的,明天不一定是正确的。

故事和情感很重要

数据中最难捕捉的东西之一是让我们所有人都如此人性化的情感。将我们的人文主义倾向提炼为机器可读的状态仍然很困难,因为计算机在很大程度上对世界持二元观点。可以从理论上说,像挑选下一任总统这样的决定归结为权衡一组客观事实与另一组客观事实,以得出合理的结果。然而,被选举的人也是一个领导者,通过投票人的情感、经历和自身利益被置于那个位置。情绪当然在选举中发挥了作用,但在投票中没有得到应有的重视。

讲故事也是如此,讲“正确”的故事以引起最多选民的共鸣仍然是竞选活动的核心。虽然可以围绕选民的偏好收集更多数据,但机器学习在构建故事方面仍然表现不佳。讲故事仍然是我们最大的(人类)天赋之一,不应该被忽视。事实只有在故事的背景下才能被阐明,才有意义。

当数据运行良好时,它应该被接受,当它达不到期望的结果时,它应该被承认和解释。数据不需要告知每一个决定,情感和讲故事仍然有空间与观众联系起来。

真正理解投票

随着时间的推移和更多的研究,人们会更好地理解为什么有人会以某种方式投票的所有原因。随着这种情况的发生,任何政治家都将能够更好地为这个群体服务,这要归功于对个人和他们所居住的社会的更好理解。最终的结果应该是投票的公众得到更多对他们来说重要和相关的东西。在许多方面,消费品市场也出现了同样的情况。当提出正确的问题时,对“真正”想要什么的更好的洞察会带来更好的产品和服务。这就是市场如何能够准确地给我们更多我们想要的东西。就民主而言,这当然反映了大多数人的愿望。就消费品而言,这既取决于个人品味,也取决于购买力。

随着时间的推移,我们将最终阻止一个数据驱动的世界接近我们所渴望的世界。

未回答的问题

应该问的最大问题是为什么投票率如此之低。为了选举一个人当总统,在 19 个月里花费了超过 6 . 9 亿美元。

在有资格投票的人中,只有 56%的人决定行使他们受宪法保护的投票权。这充分说明了政治体制、公民参与和现代民主进程的作用。43%的人对谁将成为下一任美国总统没有意见或兴趣,这指向了更大的问题。

合格选民总数为 231,556,622 100%

投票的合格选民人口 13174.15 万 56.8%

未投票的合格选民人口 99,815,122 43.2%

希拉里·克林顿的总票数 60,071,781 47.7%

唐纳德·特朗普的总票数为 59,791,135 47.5%

美国选民投票率在 35 个经合组织国家中排名第 31 位。理解这种情况的原因不仅有助于未来的政治家(他们应该希望接触到更多的观众),也有助于整个社会。

通过更明智地使用数据来更好地代表所有美国人口,应该有可能扩大与公众的接触。预测为什么有人会以这种或那种方式投票远不止是简单的二元选择。要真正了解现代选民,我们需要了解什么对他们来说是重要的,他们如何思考,以及他们如何行动。虽然对数据采取更全面的方法肯定会面临许多挑战,但它最终会为任何复杂的情况提供更清晰的画面,而不仅仅是选举投票。

人是复杂的。在试图考虑任何给定情况的所有方面时,记住这一点最终将导致更清晰的画面、更好的预测和对我们之所以为人的更大理解。

延伸阅读

http://www . pewresearch . org/fact-tank/2016/02/03/2016-electrius-will-be-the-most-diversity-in-u-s-history/

https://www . the guardian . com/news/data blog/2016/oct/29/voter-turnote-us-election-2016-register

http://heavy . com/news/2016/11/eligible-voter-vout-for-2016-data-Hillary-Clinton-Donald-trump-Republican-Democrat-popular-vote-registered-results/

http://www . demos . org/publication/why-are-5100 万-合格-美国人-未登记-投票

http://www . nytimes . com/2016/11/10/technology/the-data-said-Clinton-won-why-you-should-believe-it . html?ref =技术

http://www . politico . com/story/2016/11/is-Nate-silver-538-right-230734

https://www . quanta magazine . org/2016 11 08-why-Nate-silver-and-Sam-Wang-are-error/

http://www.bbc.com/news/election-us-2016-37949527

为什么 Quizlet 选择 Apache Airflow 来执行数据工作流

原文:towardsdatascience.com/why-quizlet…

四部分系列的第二部分

在关于奎兹莱特的 前后寻找最佳工作流管理系统的这个系列的第一部分中,我们描述并激发了对工作流管理系统(WMS)的需求,作为超越 CRON 等任务调度框架的自然步骤。然而,我们主要指出了 CRON 在处理复杂工作流方面的缺点,并提供了一些指南来确定一个伟大的 WMS 应该是什么样子。事实证明,可用的工作流管理器前景广阔。当我们评估候选人时,我们提出了一个梦想中的工作流管理器应该包括的特性列表(大致按重要性排序):

Figure 2.1: An example data processing workflow.

1.智能调度。调度任务执行显然是 WMS 的最低标准。然而,我们也希望任务执行更加“数据感知”因为一些任务的完成时间可能比它们的执行时间表更长(想象一个每小时调度一次的任务,其中每个任务需要 3 个小时执行),所以我们希望确保我们使用的任何框架在调度依赖任务时能够考虑到这些不一致的时间段。

2.依赖关系管理。这是我们与 CRON 完全不同的地方。我们需要一个简单、简洁的界面来定义任务间的依赖关系。依赖性管理不仅要处理任务执行的依赖性,还要处理失败和重试。我们还想要一个系统,它可以利用任务间任何缺乏的依赖性来提高工作流效率。例如,在系列第一部分中介绍的工作流示例中,图 2.1 中最左边的五个任务(用虚线标出)都是相互独立的,可以并行执行。此外,可以有一个任务,许多其他子任务依赖于它的完成。在这种情况下,我们希望父任务尽早执行。我们还想要一个可以考虑单个任务优先级的系统。

3.韧性。如上所述,工作流总是会意外运行,任务会失败。我们需要一个能够重试失败任务的框架,并提供一个简洁的界面来配置重试行为。此外,我们希望能够妥善处理超时,并在出现故障或任务执行时间超过正常时间时(即违反服务级别协议或 SLA 条件时)向团队发出警报。

4.可扩展性。随着 Quizlet 扩大其用户群并继续开发更多数据驱动的产品功能,工作流的数量和复杂性将会增加。通常,这种类型的扩展需要更复杂的资源管理,其中特定类型的任务在专门分配的资源上执行。我们需要一个框架,它不仅能满足我们当前的数据处理需求,还能随着我们未来的增长而扩展,而不需要大量的工程时间和基础架构变更。

5.灵活性。我们的梦想框架将能够执行一个多样化的(好吧,无限的!)任务范围。此外,我们希望系统是“可被黑客攻击的”,允许我们根据需要实现不同类型的任务。我们还希望避免将工作流局限于特定类型的文件系统(例如 OozieAzkaban )或预定义的操作集(例如仅 map-reduce 类型的操作)。

6.监控&交互。一旦我们的 WMS 启动并运行,我们希望它提供对任务状态、登陆时间、执行持续时间、日志等信息的集中访问。该诊断信息不仅应该是可观察的,还应该潜在地是可操作的:在同一个界面上,我们希望能够做出影响管道状态和执行的决策(例如,对特定任务的重试进行排序,手动设置任务状态等)。).我们还希望对诊断信息的可配置访问和工作流交互对所有数据利益相关者可用。

7.程序化管道定义。大量的工作流管理器使用静态配置文件(如 XML、YAML)来定义工作流编排(如詹金斯达特Fireworks )。一般来说,这种方法不是一个问题,因为大多数工作流的结构是相当静态的。然而,许多工作流的目标(例如文件名、数据库记录)通常是动态的。因此,在给定我们的数据仓库的当前状态的情况下,能够以编程方式动态地生成工作流将是相对于静态的基于配置的方法的一个优势。

8.组织&文件。出于显而易见的原因,我们优先考虑那些有可靠的未来路线图、足够的文档和示例的项目。

9.开源/ Python 。Quizlet 的数据科学团队在数据处理和工作流的所有权和执行方面发挥了很大作用。我们也以分享和贡献开放项目为荣,每个人都可以使用和学习(包括我们自己!).如果我们能够有一个同样植根于 Python /开源社区的框架,那将是一个巨大的进步。

10.包含电池。Quizlet 需要它昨天的数据!当今的商业世界瞬息万变,商业智能宜早不宜迟。如果数据科学团队忙于实施基本的工作流功能,就无法提供这些见解。我们想采用一个相当即插即用的框架,上面的大部分功能都已经内置了。

为什么我们选择气流

使用上面的愿望清单作为评估 WMS 项目的指南,我们能够从这些项目中选择三个主要候选人: Pinterest 的 Pinbal l、 Spotify 的 LuigiApache Airflow

这三个项目都是开源的,都是用 Python 实现的,到目前为止一切顺利!然而,在研究了 Pinball 之后,我们对他们的路线图的重点和他们社区背后的动力并不信服。在写这篇文章的时候,Pinball Github 项目有 713 个明星,但只有 107 个提交,12 个贡献者,在过去的一年里只有少数几个提交。相比之下,Github 对 Luigi/Airflow 项目的统计细分分别如下:Stars: 6,735/4,901;提交:3410/3867;投稿人:289/258。因此,Luigi 和 Airflow 都拥有我们一直在寻找的活跃的开发者和活跃的开源社区。我们的首要决定是在 Luigi 和 Airflow 之间做出选择。

Luigi 和 Airflow 在很多方面都很相似,都从我们的愿望清单上勾选了很多选项(图 2.1 )。这两个项目都允许开发人员定义任务之间的复杂依赖关系,并配置执行优先级。两者都允许并行执行任务,重试失败的任务,并且都支持历史回填。这两个项目都支持一系列数据存储和接口,包括 S3、RDBs、Hadoop 和 Hive。两者都可以使用pip轻松安装,而且一般来说,功能相当丰富。也就是说,这两者之间有一些明显的差异,这促使我们选择了 Luigi 上空的气流。

Figure 2.2: Side-by-side Comparison of Airflow and Luigi. Each row ranks Airflow and Luigi on their implementation of various features and functionality. Ranking ranges from no checkmarks (worst) to three checkmarks (best).

首先,Airflow 的未来路线图似乎更加集中,开发社区的势头目前似乎比 Luigi 的更强。虽然最初是由 AirBNB 开发的,但 Airflow 项目已经成为 Apache 孵化器项目,这增加了它未来成功和维护的概率。

我们也更喜欢很多由气流而不是 Luigi 选择的设计惯例。例如,与 Luigi 的基于源/目标的方法相比,我们更喜欢 Airflow 的基于时间表的任务执行策略,这种策略更“设置好就一劳永逸”,因为 Luigi 的基于源/目标的方法需要用户与工作流执行进行更多的交互。我们还认为,通过定义新的操作符(我们很快就会谈到操作符)来扩展 Airflow 更加直接,而不是像 Luigi 那样必须从一组特定的基类继承。

气流还提供了许多 Luigi 所没有的功能。具体来说,Airflow 的 UI 提供了广泛的功能,允许监控多个元数据来源,包括执行日志、任务状态、登陆时间、任务持续时间等等。一个巨大的优势是,相同的用户界面还可以用于管理实时工作流的状态(例如,手动强制重试、成功状态等)。).这是一个非常强大的范例,因为它不仅使诊断数据容易获得,而且允许用户基于对数据的洞察直接采取行动。相比之下,Luigi 也提供了一个简单的 UI,但它的功能远不如 Airflow 丰富,并且不提供与活动进程的交互功能。

Airflow 提供但 Luigi 没有的一些其他功能包括定义多个专门工作流的能力、在工作流之间共享信息的能力、动态编程工作流定义、资源池(在 Airflow 中称为“队列”)和 SLA 电子邮件。因此,Luigi 能够从我们的愿望列表中选择框 1-5 和 9-10,但是 Airflow 也能够选择其余的框。所以我们决定全速前进!

这一系列博客文章的其余部分详细介绍了我们在 Quizlet 这里获得气流并运行的经验。特别是,第三部分通过实现本系列的第一部分中介绍的工作流示例,展示了 Airflow 的一些关键概念和组件。第四部分记录了一些与 Quizlet 部署气流相关的实际问题。

为什么随机森林是我最喜欢的机器学习模型

原文:towardsdatascience.com/why-random-…

发现现实世界中随机森林的优点和缺点

“green trees on foggy forest” by Julien R on Unsplash

“模特就像一副护目镜。它让某些事情成为焦点。”—我的数据科学导师。

在选择机器学习模型时,没有单一的算法占主导地位。有些在大型数据集上表现更好,有些在高维数据上表现更好。因此,评估模型对特定数据集的有效性非常重要。在本文中,我将对随机森林的工作原理做一个高层次的概述,并讨论这种模型在现实世界中的优缺点。

从本质上讲,如果您想要高性能且较少需要解释,随机森林是一个很好的模型。

在回归模型之后,随机森林总是我的首选模型。让我告诉你为什么。

什么是随机森林?

随机森林是打包的决策树模型,每次分裂时在特征子集上分裂。这是一个很长的话题,所以让我们先看一个单独的决策树,然后讨论袋装决策树,最后介绍对一个随机特征子集的分割。

决策树

本质上,决策树根据数据的特征将数据分割成更小的数据组,直到我们得到一个足够小的数据集,其中只有一个标签下的数据点。让我们看一个例子。下面是一个人是否应该打网球的决策树。

Image courtesy of science.slc.edu/~jmarshall/…

在上面的例子中,决策树在多个特征上分裂,直到我们得出结论“是”,我们应该打网球,或者“否”,我们不应该打网球。沿着树的线条来确定决策。例如,如果天气阴沉,那么“是的”我们应该打网球。如果天气晴朗,湿度高,那么“不”我们不应该打网球。

在决策树模型中,这些分裂是根据纯度度量来选择的。也就是说,在每个节点,我们希望信息增益最大化。对于回归问题,我们考虑残差平方和(RSS ),对于分类问题,我们考虑基尼指数或熵。我不会在这方面讲太多细节,但是如果你有兴趣了解更多,可以看看这个讲座

袋装树

现在采用决策树概念,让我们应用自举原理来创建袋装树。

Bootstrapping 是一种抽样技术,我们从数据集中随机抽样替换。

旁注:自举时,我们只使用了大约 2/3 的数据。大约 1/3 的数据(“袋外”数据)没有在模型中使用,可以方便地用作测试集。

Bagging 或 bootstrap aggregating,是我们通过创建 X 数量的决策树来创建袋装树,这些决策树在Xbootstrap 训练集上进行训练。最终的预测值是我们所有 X 决策树的平均值。一个单独的决策树具有很高的方差(倾向于过度拟合),因此通过将许多弱学习者打包或组合成强学习者,我们将方差平均掉。这是多数票!

Image courtesy of www.kdnuggets.com/2016/11/dat…

随机森林

随机森林对 bagging 进行了改进,因为它通过引入对特征随机子集的分割来使树去相关。这意味着在树的每次分裂时,模型只考虑特征的一个小的子集,而不是模型的所有特征。也就是说,从可用特征集合 n 中,随机选择 m 个特征的子集(m =的平方根)。这一点很重要,这样方差就可以被平均掉。考虑一下如果数据集包含一些强预测因素会发生什么。这些预测器将始终被选在树的顶层,所以我们将有非常相似的结构树。换句话说,这些树是高度相关的。

综上所述,随机森林是袋装决策树模型,在每次分裂时分裂特征子集。

为什么随机森林这么酷?

令人印象深刻的多功能性

无论您有回归或分类任务,随机森林都是满足您需求的适用模型。它可以处理二元特征、分类特征和数字特征。需要做的预处理非常少。数据不需要重新缩放或转换。

可并行化

它们是可并行化的,这意味着我们可以将流程拆分到多台机器上运行。这导致更快的计算时间。相比之下,增强模型是连续的,需要更长的时间来计算。

附注:具体来说,在 Python 中,要在多台机器上运行它,需要提供参数“n _ jobs =-1”。-1 表示使用所有可用的机器。更多详情见 scikit-learn 文档。

高维度大

随机森林非常适合高维数据,因为我们处理的是数据子集。

快速预测/训练速度

它比决策树训练更快,因为我们只处理这个模型中的一个特征子集,所以我们可以轻松地处理数百个特征。预测速度明显快于训练速度,因为我们可以保存生成的森林供将来使用。

对异常值和非线性数据稳健

随机森林通过本质上的宁滨处理离群值。它对非线性特征也漠不关心。

处理不平衡数据

它有平衡类总体不平衡数据集中的误差的方法。随机森林试图最小化整体错误率,因此当我们有一个不平衡的数据集时,较大的类将获得较低的错误率,而较小的类将具有较大的错误率。

低偏差,中等方差

每个决策树都有很高的方差,但偏差很小。但是因为我们平均随机森林中的所有树,我们也平均方差,所以我们有一个低偏差和中等方差模型。

弊端

  1. 模型的可解释性:随机森林模型并不都是可解释的;它们就像黑匣子。
  2. 对于非常大的数据集,树的大小会占用大量内存。
  3. 它可能会过度拟合,所以您应该调整超参数。

为什么随机森林优于决策树

原文:towardsdatascience.com/why-random-…

说明了两个直观的原因

Pine forests at Rampart Lakes. Photo by @sakulich

随机森林由多个单独的树组成,每个树都基于训练数据的随机样本。它们通常比单一决策树更准确。下图显示了随着更多树的添加,决策边界变得更加准确和稳定。

Decision boundary from random forests (as more trees are added)

这里我们将提供随机森林优于单决策树的两个原因。

特征空间中更高的分辨率

树木未修剪。虽然像 CART 这样的单个决策树经常被修剪,但随机森林树是完全生长和未修剪的,因此,自然地,特征空间被分成更多和更小的区域。

树木多种多样。每个随机森林树是在随机样本上学习的,并且在每个节点上,考虑一组随机特征用于分裂。这两种机制都创造了树木的多样性。

下图显示了两个随机树,每个都有一个分割。对于每棵树,可以给两个区域分配不同的标签。通过组合这两棵树,有四个区域可以被不同地标记。

未修剪的和多样的树导致特征空间中的高分辨率。对于连续要素,这意味着更平滑的决策边界,如下所示。

处理过拟合

单个决策树需要修剪以避免过度拟合。下面显示了来自未修剪树的判定边界。边界更平滑,但会出现明显的错误(过度拟合)。

那么随机森林如何在不过度拟合的情况下建造未修剪的树呢?

对于下面的两类(蓝色和红色)问题,两个 splits x1 = 3 和 x2=3 都可以完全分开两类。

然而,这两种分裂导致了非常不同的决策界限。决策树通常使用第一个变量进行拆分,因此训练数据中变量的顺序决定了决策边界。

现在考虑随机森林。对于用于训练树的每个随机样本,样本中丢失红点的概率为

因此,大约三分之一的树是用所有蓝色数据构建的,并且总是预测蓝色类。另外 2/3 的树在训练数据中有红点。由于在每个节点都考虑了随机的特征子集,我们预计大约 1/3 的树使用 x1,其余 1/3 使用 x2。这两种树的分割如下图所示。

通过聚合这三种类型的树,下面显示的决策边界现在对于 x1 和 x2 是对称的。只要有足够多的树,边界应该是稳定的,不依赖于变量的排序等无关信息。

随机森林中的随机性和投票机制很好地解决了过度适应问题。

虽然随机森林是准确的,但它们被认为是黑盒模型(很难解释)。这篇文章阐述了如何解读它们。

dataanalyticsbook.info 可以找到我的书的更多内容。

为什么房地产估价需要计算机视觉

原文:towardsdatascience.com/why-real-es…

在最近的一篇文章中,我介绍了一个抵押贷款申请分析工具,它使用 AI 来验证申请。读完那篇文章后,我们去年的一位客户(文·沃梅罗福克西·艾的创始人)联系我,看我能否写一篇类似的文章,介绍我们为他们做的房地产估价工作。

我们去年研究的问题是一个令人惊讶的问题:房价估计很糟糕。房源一直被高估或低估,房屋的估价不仅对买方和卖方来说是一个关键因素,对以房屋为抵押的抵押贷款的承销商来说也是如此。金融机构经常使用自动估价模型(AVM)来做出从房屋净值贷款到信用卡限额的一切决策。不仅仅是房屋销售。理解房屋的价值对于减轻损失和信用风险管理至关重要。

What’s the best way to assess the value of a home?

我们生活在一个快速技术变革的世界,采用人工智能不再是一个选项。相反,这是竞争的需要。很快,没有一定人工智能水平的估值模型就会过时。

引用 Talla 的首席执行官兼联合创始人 Rob May 的话,“令我惊讶的是,一些公司在采用人工智能方面进展缓慢,因为他们不确定在哪里应用它,或者它将如何工作。我认为他们不明白,当这些事情被弄清楚的时候,他们会落后很多。”

Zillow 宣布他们已经将图像分析整合到他们的 Zestimate 中,强调了这一点。世界各地使用的反车辆地雷需要改进很多,因为它们到目前为止客观上一直很糟糕。人工智能在价格预测方面可以提高 15%的事实表明了传统模型迄今为止的表现有多差。

The condition of a home goes beyond the number of bedroom and bathrooms, and the square footage. A valuation model needs to SEE the listing.

为什么房屋估价不好?他们依赖旧数据、数字数据、人口普查数据、IRS 数据以及州/地区销售数据,这些数据可能无法反映房屋投资。即使将所有这些数据源结合在一起,有时也会给出一个不完整的画面。尽管传统的 AVM 模型快速而便宜,但如果不真正查看资产,它们就无法真正考虑资产的质量和状况,从而限制了金融服务业中一个关键工具的准确性。

为什么这是一个难题?传统的计算机算法喜欢用公式来处理数字,而不是房屋的图片。清单上没有“屋顶上的一块木瓦不见了”这一栏。为了做到这一点,人工智能模型必须查看图片,并理解图片如何影响价格。更具体地说,模型需要了解它正在查看的房间,理解纹理、颜色和室内/室外对象。把这个解决方案想象成一个约会网站创新,直到现在,没有人能看到人们的个人资料照片,相反,他们只能看到他们的身高、体重和其他生物医学数据。显然,一张图片胜过千言万语。

将图像数据整合到房屋估价中的问题非常适合人工智能解决方案。即使作为人工智能解决方案来实现,让一个回归模型理解关于一个清单的如此多的数据,并让它理解所有特殊情况和例外,也有点像噩梦。我将跳过建造 AVM 有多困难的技术解决方案细节,而是专注于福克西人工智能带来的新颖用例。

清单上的图片可以告诉我们一个关于房地产估价的故事,它可以通过与房地产清单相关联的传统数字、分类和文本数据来增强。例如,花岗岩柜台表明房子里放了钱。一些微妙的因素,比如墙上油漆的状况,会告诉我们很多关于上市的预期售价。用于训练 AVM 的数据集基本上是传统 AVM 所基于的正常类型的数据集,但增加了来自图片和其他来源的大量额外数据。

我们去年交付了一个初始原型。我们为福克西人工智能开发的原型现在已经变得更加成熟,并在一个真正令人惊叹的数据集上进行了训练。现在,由于算法和计算能力的进步,我们可以以一种前所未有的方式利用工具。了解数百万房产的质量梯度现在已经成为现实。

福克西人工智能研究院现在已经将这种新颖的 AVM 方法推向市场,结合计算机视觉和深度学习,来评估住宅房地产的质量和状况。整个系统通过 API 公开,这样你就可以把它放在你正在使用的其他东西上面。该产品使用先进的训练技术和一套内部预测模型对所提供的图像集的房间类型进行分类,并确定目标物业的质量和状况,以提高估价准确性。

API 展示了一些非常有趣的方法,比如将图像转换为矢量的端点,找到可比较属性的方法(代理喜欢这种东西),以及检测对象、装饰、场景和其他东西的系统。因此,您可以决定使用 API 从现有列表中提取特性,或者只是使用 API 来获得更好的估价数据。

如果你依赖于传统的反车辆地雷,并且你已经接受了不准确的估价,这可能是一个非常有趣的技术解决方案。事实上,这关系到数十亿美元,因此,即使是很小的准确性提高也会影响降低贷款风险、提高贷款能力等方面的关键绩效指标(KPI)。如果你想亲自体验神奇, 报名参加 私测。

这里有一个在 medium 上的到福克西的链接,我希望你能明白为什么它这么酷。这项技术开辟了新的可能性,如模拟一个想象中的房子会卖多少钱,并以此作为承包商进行拆卸和建筑估价。有相当漂亮的计算器功能,只是到现在才存在。解决方案都包含在一个简单的 API 中:www.foxyai.com/doc-api/#ap…

因此,总而言之,动静脉畸形正在被破坏,金融机构应该注意到这一点。

如果你喜欢这篇关于人工智能房地产估价的文章,那么按下关注按钮,拍拍这个东西,看看我过去读过的一些文章,比如“如何为人工智能项目定价”和“如何聘请人工智能顾问”另外,看看福克西艾。除了与业务相关的文章,我还准备了一些关于寻求采用深度机器学习的公司所面临的其他问题的文章,如“没有云和 API 的机器学习

在下一篇文章中,我将介绍我们已经研究了很长时间的东西,它可以帮助企业在内部审计期间自动分析非结构化报告。

下次见!

丹尼尔

daniel@lemay.ai ←打个招呼。 LEMAY . AI 1(855)LEMAY-AI

您可能喜欢的其他文章:

为什么小数据是人工智能的未来

原文:towardsdatascience.com/why-small-d…

在过去的 8 个月里,我一直在为人工智能解决方案出谋划策。我经常遇到一些商界人士,他们在过去十年里一直在学习数据的重要性。然而,这意味着我的服务经常与数据分析和大数据咨询混为一谈。从业务人员的角度来看,他们的问题很简单:“我们拥有所有这些大数据。你能进来给我们赚更多的钱吗?”

我觉得这令人沮丧,原因有二。首先,人工智能技术的潜力远远不止于分析大数据集。有很多成熟的技术来分析大数据集,也有很多成熟的顾问。第二,对于大多数存在的人工智能问题来说,没有可供使用的大数据集

许多致力于真正新颖解决方案的人工智能公司不得不手动收集这些解决方案的数据集。对人工智能初创公司的资本投资中有很大一部分被投入到收集使他们的产品工作所需的数据集。

例子

让我们以一个不断增长的人工智能用例为例:基于人工智能的律师合同审查(例如 Blue Jay Legal、eBrevia、Kira Systems、Law Geex 等..).为了做到这一点,你所需要的是一个大的合同数据集,上面有律师反馈的注释。这可能包括指定看起来对一方或另一方不利的条款,对于这种类型的合同来说非常不寻常的条款,不寻常或不清楚的语言等等

然而,众所周知,律师的工作方式很守旧。如果你幸运的话,你可能会发现一些律师事务所保留了带有红线的合同草案,如果你的产品需要做的只是复制红线,这将会很有用。然而,如果你想在合同上得到更多的定性反馈,你就没那么幸运了。即使你设法从律师事务所过去的工作中积累了这个数据集,那也不会是大数据。最多,您可能能够获得 10000 或 20000 份经过审查的合同,这与人们今天谈论的“大数据”的规模相差甚远,后者通常具有数百万、数十亿和数万亿条目的规模。

为了实现这一点,人工智能合同审查初创公司必须让他们的技术与他们可以访问的数据集规模相适应。他们必须能够处理少量数据。

小数据为什么难?

人类能够从小数据集学习——为什么机器不能?答案很简单——人类实际上并没有从一个小数据集里学习。自从我们出生以来,我们就一直在从通过我们的五种感官不断输入的数据中学习。

当前最大的图像处理数据集 Image-Net ,包含大约 1400 万张图像。如果我们保守估计,让我们假设一个人每 30 秒看到一次清晰的图像。当一个人在 25 岁左右开始职业生涯时,他们已经看到了:

= 25 年* 365.24 天/年16 小时/天 60 分钟/小时* 2 张图像/分钟

= 17,531,520 个不同的图像

当我们进入职业生涯时,我们每一个人都已经接触到了一个更大的视觉数据集,这是人工智能研究人员可以获得的最大数据集。除此之外,我们还有来自外部感官的声音、嗅觉、触觉和味觉数据。总之,人类有很多关于人类世界的背景。我们对人类的处境有一个常识性的理解。在分析数据集时,我们将数据本身与我们过去的知识相结合,以便得出分析结果。

典型的机器学习算法没有这些——它只有你向它显示的数据,而且这些数据必须是标准化的格式。如果数据中不存在某个模式,算法就无法学习它。信号必须大于噪声。

所有的活动都将在这里进行

对于人工智能社区来说,这可能是一个令人沮丧的事实。对于许多(如果不是大多数)专业工作来说,社区中没有可用的大数据集。收集一个大数据集来表示这项任务可能会非常昂贵。假设您试图收集一个数据集来自动对一个小企业进行会计审计。使用当前的最佳实践技术,可能需要几个数据集(这纯粹是推测):

  • 对 50,000 份会计报表中的“危险信号”和“关注领域”进行了注释
  • 与公司员工进行了 250,000 次对话,要求提供交易的支持文档
  • 100,000 个案例,其中一份支持文件已针对给定交易的有效性进行了分析
  • 50,000 份关于审计的最终报告

尽管这个数据集没有超过一百万个条目,你已经可以看到它变得多么昂贵。如果我们假设一个审计员每小时收费 150 美元,审计一个小企业需要 20 小时的时间,那么这个数据集将花费高达 1.5 亿美元。毫不奇怪,我们还没有看到任何人工智能初创公司解决耗时的会计审计过程。构建人工智能审计器的唯一方法是以某种方式开发能够处理更小数据集的技术。事实上,我们试图自动化的绝大多数单调乏味的工作都有同样的基本问题。一旦低悬的 AI 果实被用完,我们如何向上移动到中间的果实?我们如何到达树顶的水果?我们如何破解小数据集?

输入迁移学习

不知何故,我们需要能够给我们的人工智能系统提供关于人类世界的通用知识——就像人类一样。迁移学习是一种新兴的技术,它允许我们将在一个数据集中学习的知识迁移到另一个数据集中。

直到最近随着深度神经网络的兴起,迁移学习在机器学习社区中一直处于次要地位。与大多数其他机器学习技术相比,深度神经网络极其灵活。它们可以被训练、分解、修改、再训练,通常只是以各种方式被滥用。这导致了我们可以应用迁移学习的各种新情况。

  • 在文本处理中,我们可以使用一个名为 word2vec 的浅层神经网络,通过从互联网上读取数百亿行文本,尝试将单词的含义编码为矢量。这些向量可以应用于更具体的任务
  • 在图像分类中,我们可以在非常大的图像网络数据集上训练神经网络,然后在较小的数据集上重新训练它,对于较小的数据集,我们可能只有几千幅图像。

然而,最近更雄心勃勃的迁移学习的例子被证明是成功的。就在几个月前, Google Brain 发布了对他们的多模型的研究。在这项研究中,他们同时对 8 项不同的任务训练了同一个深度神经网络。在他们的研究中,他们发现系统性能在处理小数据集的任务时有所提高。虽然还处于早期,但这项研究提供了一个诱人的机会,让我们可以让我们的人工智能系统了解世界,让它们能够理解小数据集。

那么下一步是什么?

我认为大数据正接近其炒作的顶峰。随着越来越多的公司在收集和使用大数据集方面达到成熟,他们将开始问:“下一步是什么?”我相信越来越多的公司会将使用小型数据集的自动化作为其数据策略的下一阶段。

对于每个有 10 亿个条目的数据集,有 1,000 个有 100 万个条目的数据集,有 1,000,000 个只有 1,000 个条目的数据集。因此,一旦低挂的果实已经用尽,唯一可能的前进方式将是爬树,建立可以用越来越少的数据工作的系统。

本文原载于www . electric brain . io

这就是为什么这么多数据科学家离开他们的工作

原文:towardsdatascience.com/why-so-many…

数据科学家的挫折!

**是的,**我是一名数据科学家,**是的,**你的确没看错标题,但总得有人说出来。我们读到了很多关于数据科学是 21 世纪最性感的工作和作为一名数据科学家可以赚到的诱人的金钱的故事,这似乎是绝对的梦想工作。考虑到这个领域有大量高技能的人在解决复杂的问题(是的,“极客”是一件积极的事情),这份工作有着令人喜爱的一切。

但事实是,数据科学家通常“每周花 1-2 个小时找新工作”,正如英国《金融时报》的这篇文章所述。此外,文章还指出,“机器学习专家在表示正在寻找新工作的开发人员中排名第一,占 14.3%。数据科学家紧随其后,占 13.2%。这些数据是 Stack Overflow 在基于 64,000 名开发人员的调查中收集的。

我也有过这样的经历,最近也换了一份数据科学的工作。

那么,为什么这么多数据科学家在找新工作呢?

在回答这个问题之前,我应该澄清一下,我仍然是一名数据科学家。总的来说,我喜欢这份工作,我不想阻止其他人成为数据科学家,因为这很有趣,很刺激,也很有回报。这篇文章的目的是唱反调,揭露这份工作的一些负面。

从我的角度来看,我认为许多数据科学家对他们的工作不满意有四大原因。

1.期望与现实不符

大数据就像青少年性行为:每个人都在谈论它,没有人真正知道如何去做,每个人都认为其他人都在做,所以每个人都声称他们正在做……—丹·艾瑞里

这句名言太贴切了。我认识的许多初级数据科学家(包括我自己)都想进入数据科学,因为它完全是关于用酷的新机器学习算法解决复杂问题,这些算法对业务产生了巨大影响。这是一个机会,让我们觉得我们正在做的工作比我们以前做过的任何事情都重要。然而,事实往往并非如此。

在我看来,期望与现实不符是很多数据科学家离开的最终原因。这有很多原因,我不可能列出一个详尽的清单,但这篇文章基本上是我遇到的一些原因的清单。

每个公司都是不同的,所以我不能代表他们所有人,但许多公司雇佣了数据科学家,但没有合适的基础设施,以开始从人工智能中获得价值。这导致了 AI 中的冷启动问题。再加上这些公司在聘用初级员工之前没有聘用资深/有经验的数据从业者,你现在就有了一个让双方都失望和不愉快的关系的配方。数据科学家可能会编写智能机器学习算法来推动洞察力,但不能这样做,因为他们的首要工作是整理数据基础架构和/或创建分析报告。相比之下,该公司只想要一张可以在每天的董事会上展示的图表。然后,公司会感到沮丧,因为他们没有看到价值被足够快地驱动,所有这一切导致数据科学家对自己的角色不满意。

Robert Chang 在他的博客文章《给初级数据科学家的建议中给出了一个非常有见地的引用:

评估我们的抱负与我们所处环境的关键路径的契合程度非常重要。寻找关键路径与你的最匹配的项目、团队和公司。

这突出了雇主和数据科学家之间的双向关系。如果公司不在正确的位置,或者目标与数据科学家的目标不一致,那么数据科学家找到其他工作只是时间问题。

对于那些感兴趣的人来说, Samson Hu 有一个关于如何在 Wish 建立分析团队的精彩系列,我也觉得很有见地。

数据科学家幻灭的另一个原因与我对学术界幻灭的原因类似:我相信我能够对任何地方的人产生巨大影响,而不仅仅是在公司内部。在现实中,如果公司的核心业务不是机器学习(我以前的雇主是一家媒体出版公司),那么你所做的数据科学很可能只会提供少量的增量收益。这些可以累积成非常重要的东西,或者你可能幸运地发现了一个金矿项目,但这并不常见。

2.政治至高无上

《政治》杂志已经有一篇精彩的文章专门讨论这个问题: 数据科学中最难的事情:政治 我劝你读一读。那篇文章的前几个句子基本上概括了我想说的内容:

当我早上 6 点起床学习支持向量机时,我想:“这真的很难!但是,嘿,至少我会变得对我未来的雇主非常有价值!”。如果我能拿到德罗林,我会回到过去,叫“公牛**t!”在我自己身上。

如果你真的认为知道大量的机器学习算法会让你成为最有价值的数据科学家,那么回到我上面的第一点:期望与现实不符

事实是,商界最有影响力的人需要对你有一个好的认识。这可能意味着你必须不断地做一些特别的工作,比如在正确的时间从数据库中获取数字给正确的人,做一些简单的项目,以便正确的人对你有正确的看法。在我以前的地方,我不得不经常这样做。尽管令人沮丧,但这是工作中必要的一部分。

3)你是任何数据的最佳人选

在做任何事情来取悦正确的人之后,那些拥有所有影响力的人往往不理解“数据科学家”是什么意思。这意味着你不仅是分析专家,还是报告专家,别忘了你还是数据库专家。

不仅仅是非技术高管对你的技能做出过多假设。技术领域的其他同事认为你了解与数据相关的一切。你对 Spark、Hadoop、Hive、Pig、SQL、Neo4J、MySQL、Python、R、Scala、Tensorflow、A/B 测试、NLP、任何机器学习(以及你能想到的任何其他相关数据)了如指掌——顺便说一句,如果你看到一份写有所有这些内容的工作说明书,请保持清晰。它散发着一家公司的工作规范的味道,这家公司不知道他们的数据战略是什么,他们会雇用任何人,因为他们认为雇用任何数据人员都可以解决他们所有的数据问题。

但不止于此。因为你知道所有这些,而且你显然可以访问所有的数据,你应该在……之前得到所有问题的答案。嗯,它应该在 5 分钟前到达相关人员的收件箱。

试图告诉每个人你实际上知道并掌握的东西可能很难。这并不是因为任何人实际上都不会看不起你,而是因为作为一名缺乏行业经验的初级数据科学家,你会担心人们会看不起你。这可能是相当困难的情况。

4)在一个孤立的团队中工作

当我们看到成功的数据产品时,我们通常会看到专业设计的用户界面,具有智能功能,最重要的是,有用的输出,至少可以被用户理解为解决相关问题。现在,如果一名数据科学家只花时间学习如何编写和执行机器学习算法,那么他们只能成为团队中的一小部分(尽管是必要的),而这个团队可以让一个项目取得成功,生产出有价值的产品。这意味着孤立工作的数据科学团队将难以提供价值!

尽管如此,许多公司仍然有数据科学团队,他们提出自己的项目并编写代码来尝试解决一个问题。在某些情况下,这就足够了。例如,如果所需要的只是一个每季度生成一次的静态电子表格,那么它可以提供一些价值。另一方面,如果目标是在定制的网站建设产品中优化提供智能建议,那么这将涉及许多不同的技能,这不应该是大多数数据科学家所期望的(只有真正的数据科学独角兽才能解决这个问题)。因此,如果项目由一个孤立的数据科学团队承担,它最有可能失败(或者花费很长时间,因为在大型企业中组织孤立的团队进行协作项目并不容易)。

因此,要成为一名高效的行业数据科学家,仅仅在 Kaggle 竞赛中表现出色并完成一些在线课程是不够的。幸运的是(不幸运的是)(取决于你如何看待它),这涉及到理解商业中的等级制度和政治运作。在寻找能满足你需求的数据科学工作时,找到一家与你的关键路径一致的公司应该是一个关键目标。但是,您可能仍然需要重新调整对数据科学角色的期望。

如果任何人有任何其他意见、问题或异议,请随时发表评论,因为建设性的讨论对于帮助有抱负的数据科学家就其职业道路做出明智的决定是必要的。

我希望我没有影响你的工作。

感谢您的阅读:)

为什么要取连续目标变量的对数?

原文:towardsdatascience.com/why-take-th…

数据科学是一个阴谋。

“嗨,我叫鲍勃,我是你们的教练。我将教你如何开车。打开第 147 页的书,让我们了解不同类型的排气歧管。这是基本的波义耳定律的公式……”

这永远不会发生,对吗?

然而,在数据科学的教学中,阐述复杂的主题是很常见的,而对基础知识却不感兴趣。没有人告诉我们什么时候加速,什么时候减速。但是几乎每个人似乎都准备好带领我们完成实数的构造。

在这篇文章中,我们将看看一个简单但有用的概念,它经常被忽视。但是首先让我们考虑对数的一个有趣的性质。

加法就是乘法

想象你是泡泡世界里的一个泡泡。你刚刚开始,你的尺寸只有 0.69,相当于自然对数 2。

你完成了一个 NPC 巫师的任务,他会给你一种药剂,让你的体型翻倍,不管你有多大。

那很好。药剂所要做的就是将你的尺寸乘以 2 来得到你的新尺寸 4。如果你是 3 号,你会长到 3 乘以 2 等于 6。

但是如果药剂唯一能做的操作就是加法呢?现在事情变得更加棘手。巫师给你一种药剂,可以让你的体型从 2 到 4 增加 2 倍。但是如果你第二天喝了药水,而你已经是 3 号了,那该怎么办呢?3 加 2 等于 5,所以药剂没有兑现它的承诺!

看起来这是无解的。幸运的是,巫师很老,也很聪明。她给你的不是增加你体型 2 的药剂,而是增加 log(2)的药剂。

你掂量着手中的小瓶子,看上去并不确信。向导对你露出灿烂的笑容,向东北方向走去。

你在同一天服用了这种药剂——你像预期的那样长到了 4 码。

由于不信任巫师,你在喝下药剂前进行了一次豁免。为了看看会发生什么,你决定只在你长到 3 码的时候才喝。

嗯,也许巫师预料到了你会这么做,并在药剂中设置了一些计时机制,一段时间后它会给你的尺寸增加 3 而不是 2。你决定扔给巫师一个曲线球。

Written in tiny print on the label: “Beware floating point arithmetic — use allclose”

嗯。

魔术有哪些规则适用于模特?

让我们考虑随机森林。

想象你看着一把你的泡泡可以装备的剑,并且想根据它的颜色和形状来预测力量调整值。

如果剑蓝->增加+2 预测力量。如果剑是圆的,加-3。

一个随机森林既不能加也不能减,但它所学到的东西会产生类似上述规则的效果。当一棵树长大后,它会查看示例的特征并选择要分裂的示例。

它试图将具有相似目标变量值的例子分组在一起。一个分支内的相似性越大,树做出正确预测的机会就越大。

但是我们如何衡量相似性呢?一种方法是考虑价值的绝对差异——一瓶 20 美元的葡萄酒与 40 美元的葡萄酒相差 20 美元。一瓶 100 美元的威士忌和 200 美元的相差 100 美元。

以这种方式来看价格,威士忌之间的差异是 5 倍之大。但是如果我们用相对的角度来看,距离是一样的!在这两对瓶子中,第二瓶的价格是第一瓶的两倍。

没有一种衡量相似性的方法是普遍更好或更差的。根据具体情况,其中一个可能比另一个更有用。

答案就在问题中

让我们想象一下,我们想了解一些关于汽车的知识。

我们可能想知道什么?举个例子,如果我们给一辆车装上空调,它的价值会增加多少?

事实证明,我们非常幸运——我们的数据集很简单,只包含兰博基尼和菲亚特。

Tom Hanks by a Fiat 126p.

“似乎给菲亚特加装空调平均会使其价格增加 307 美元,给兰博基尼加装空调平均会增加 12 000 美元,所以让我来做一件唯一合理的事情,预测给汽车加装空调会使其价格增加(12 000 美元+ 307 美元)/ 2 = 6 153.50 美元。”

但这将意味着,如果我们为菲亚特 126p 配备空调,它将升值数倍于其基价!这是我想从事的行业。

退一步说,这不是一个很好的答案。

或者,如果我们问一辆车的价值相对于它的基价会增加多少呢?这可能是一条更有用的信息。

但是我们的模型无法回答这个问题!它所拥有的是绝对的距离。

进入明智的向导。在 numpy 变体的一个咒语之后,我们的目标变量变成了对数。

我们的模型现在可以根据添加或删除这个或那个功能来了解汽车价值相对于基价的变化量。

如果你觉得这篇文章很有趣并且想保持联系,你可以在 Twitter 上找到我 这里

为什么团队建设对数据科学家很重要?

原文:towardsdatascience.com/why-team-bu…

无论你是刚毕业的学生还是已经工作了一段时间的人,你可能或早或晚都听说过“**团队建设”**这个术语,你想知道为什么你个人或整个团队需要这种团队活动。

嗯…你并不孤单。

既然我已经讨论了关于我进入数据科学的旅程,并给出了一些关于如何进入数据科学的实用指南…

让我们回到真实的工作环境。

在这篇文章中,我将谈论一家公司中数据科学团队的典型组成以及为什么团队建设对数据科学家很重要。

如果你是一名有抱负的数据科学家,或者只是对了解更多关于数据科学团队如何与团队建设的补充一起工作感兴趣,那么这篇文章适合你。

请注意,根据每个公司的要求,每个公司的数据科学团队的组成是不同的。因此,这里的分享绝非详尽无遗,主要基于我的工作经验和外卖。

在这篇文章的最后,我希望你能看到数据科学团队如何作为一个整体一起工作的重要性,以及团队建设如何能够将团队的凝聚力带到一个积极的结果。

我们开始吧!

数据科学团队的典型组成

我不确定团队建设对其他公司的其他团队有什么作用。

但有一点是肯定的,团队建设对数据科学家来说非常重要,因为他们不是一个独立的实体,他们将项目付诸实施。

是的,单飞可能适用于 Kaggle 比赛,但不幸的是,在现实世界中并不适用。参加 Kaggle 比赛无疑是向全球专家学习如何执行数据预处理、特征工程、模型构建和优化的最佳方式之一。然而,这一步只是解决现实世界中整个难题的一部分。

毫不奇怪,大多数现实世界的项目需要不同专业和技能的人(数据工程师、数据科学家、数据分析师、软件工程师/开发人员、项目经理等)。)以便端到端地完成项目。

但也有例外。

一些早期的创业公司只雇佣一名数据科学家,负责从构建数据流和数据收集的数据管道到将模型投入生产的所有工作。

随着时间的推移,创业公司在成长,数据科学团队(或数据团队——团队名称其实并不重要)的形成也是如此。因此,您可能已经注意到,数据科学团队主要由以下人员组成(他们中任何人的组合):

  • 数据工程师
  • 数据科学家
  • 数据分析师/商业智能
  • 软件工程师/开发人员
  • 项目经理/协调员

为什么团队建设对数据科学家很重要?

(Source)

在这篇文章中,团队建设的重要性主要集中在数据科学家的角度,但它完全适用于其他工作角色,以使团队建设更加有效。

1.互相了解,以便更好地交流

是的,你说得对。第一个目标是在更深的层次上真正了解对方,以便更好地交流。

当我第一次加入我的组织时,我非常幸运地参加了为期两天的团队建设活动。你知道吗?那次团队建设是我经历过的最难忘的团队建设,更不用说我遇到的热情友好的团队成员了,尽管我们来自不同的地方。

通过团队建设,我们在背景、文化和经历方面更加深入地了解了对方。随着彼此在个人层面上的理解,这将减少冲突的发生,从而为学习和分享带来更有利的工作环境。

这种好处绝对可以扩展到公司的任何其他团队,这使得团队建设更加有效。

2.培养团队凝聚力和团队精神

我喜欢团队建设的另一件事是根据团队成员的需求定制团队建设活动。

尽管团队建设活动的时间很短,但我们能够通过活动培养团队凝聚力和团队精神。每项活动的设计都是独一无二的,目的是让团队成员意识到团队合作的重要性,并引发思考。

如果没有团队凝聚力,我们每一个人都将只是一块支离破碎的拼图。

没有团队合作,我们每一个人都不会有一个共同点来最终达到和实现我们的共同目标。

请记住,数据科学项目不是单人游戏,需要不同的主题专家(SME)作为一个数据科学团队将各自的专业知识带到桌面上。这只有在一个团队团结一致之后才会发生,这也让我想到了团队建设的另一个重要性。

3.鼓励协作以提高团队生产力和绩效

协作。句号。

关于团队建设的最好的事情之一(至少对我来说)是我们通过性格测试和与辅导员的讨论以及我们之间的讨论了解彼此的优势和劣势

由于不同的团队成员有自己独特的优势和劣势、社会偏好和技术知识,因此能够了解这些方面对于提高团队生产力和绩效非常有帮助,尤其是在数据科学团队中。

怎么会?

不是每个人都知道一切,但每个人都知道一些事情。只有在一起,他们才能把事情做得更大。

您可能是一名数据科学家,专门从事模型构建和优化,但对数据工程的样子却没有什么概念。总有一天,你会想了解更多关于数据管道和架构的技术方面,以执行某些任务。与其在 Stack OverflowQuora 上搜索疯狂地独自寻找答案,你可以向任何在这方面有经验的团队成员寻求建议,并向他/她学习。

瞧!有时答案就在一个问题之外。

快速完成任务是提高团队生产力和绩效的一个步骤,这个例子只是众多例子中的一个。

最后的想法

(Source)

给你。感谢您的阅读。

我希望你在这里找到有用的东西。事实上,独自成为一名数据科学家既有趣又富有挑战性,同时也很有收获。能够作为一个团队与他人一起工作更为重要,也更有回报。

你以前在你的团队中有过团队建设的经历吗?我很想知道你过得怎么样,也很想了解你的经历。请在下面的评论中告诉我!!

一如既往,如果您有任何问题或意见,请随时在下面留下您的反馈,或者您可以随时通过 LinkedIn 联系我。在那之前,下一篇文章再见!😄

关于作者

Admond Lee 目前是东南亚排名第一的商业银行 API 平台Staq**—**的联合创始人/首席技术官。

想要获得免费的每周数据科学和创业见解吗?

你可以在 LinkedInMediumTwitter脸书上和他联系。

[## 阿德蒙德·李

让每个人都能接触到数据科学。Admond 正在通过先进的社交分析和机器学习,利用可操作的见解帮助公司和数字营销机构实现营销投资回报。

www.admondlee.com](www.admondlee.com/)

Javascript —代理

原文:towardsdatascience.com/why-to-use-…

最近,我在阅读一些不太出名的 Javascript 特性,发现了 Javascript 代理。

在探讨为什么这很重要之前,让我们先了解一下它是什么。如果你已经知道了,可以跳过几段。

Proxy are magic methods

代理是 javascript 中的一个对象,它封装了一个对象或一个函数,并通过一个叫做目标的东西来监控它。而不管包装的对象或函数是否存在。代理类似于其他语言中元编程。

在继续之前,我们需要了解 3 个关键术语:

  1. **目标:**被代理的对象或功能。
  2. **处理程序:**对被代理的对象或函数做某些事情的函数。
  3. **陷阱:**这些是一些用来作用于目标的函数。点击这里阅读更多关于陷阱的信息。

下面是我们对它的定义

Syntax

我们使用 ES6 中的代理类,参数,目标是包装对象,处理程序将是使用陷阱在目标上执行某些操作的函数。

下面是一个 简单的 用法的例子

Basic example for proxy

我们制作了两个对象,分别叫做 target 和 handler,target 是一个带有消息键的简单对象,handler 是一个带有 get 键的对象,该键带有一个与之相关联的函数。我们在代理类中传递 2 个对象,作为回报,我们接收一个代理对象,通过它我们可以访问目标对象的消息属性。

下面是一个如何使用它对对象值的 验证 的小例子

Validation of object key’s

我们使用一个空对象作为目标对象,并使用一个处理程序在目标对象上设置陷阱并进行验证。很简单对吧!

让我们看看如何使用它来制作 API 调用包装器

我们已经使用了 axios ,然后用我们的基本 URL 创建了一个实例,为一个代理创建了一个处理程序,它返回一个要使用的 get、post、put、delete、patch 函数的对象,最后创建了一个 API 对象,它是一个空对象目标的代理对象。

然后,我们可以将它用作:

Calling API proxy object

这可以扩展到验证、值修正、跟踪属性访问、未知属性警告、负数组索引、数据绑定、访问 restful web 服务(方法调用)、可撤销引用、监控异步函数、类型检查等等,阅读此处了解更多信息

我个人发现 javascript 代理在 restful web 服务、验证、监控异步功能中非常有用。我会探索更多。

边注 :使用的例子可以优化。

你可能也会喜欢我的其他文章

  1. Javascript 执行上下文和提升
  2. Javascript —生成器-产出/下一个&异步-等待🤔
  3. 理解 Javascript‘this’关键字(上下文)
  4. 带有映射、归约、过滤的 Javascript 数据结构
  5. Javascript- Currying VS 部分应用
  6. Javascript ES6 —可迭代程序和迭代器
  7. Javascript —作用域

如果你喜欢这篇文章,请随时分享,帮助别人找到它!

谢谢!

由于这个令人难以置信的独特原因,普遍基本收入是必要的

原文:towardsdatascience.com/why-univers…

答案在于鸡……

反对普遍基本收入的一个最常见的论点是,它将允许数百万工人变得懒惰并退出劳动力市场,从而导致经济的巨大下滑。

虽然普遍基本收入确实有许多细微差别和技术细节,并且公然声明它是好是坏是非常幼稚的,但我不认为 UBI 会引起大规模的懒惰转变。

原因是鸡。

让我们假设。想象一下,所有人的财物都被拿走,换成一只鸡。

50%的人饥饿、烦躁、易怒,会把鸡杀了当晚餐吃。

大约 48%的人会忍饥挨饿,等待鸡生蛋。他们现在会有源源不断的食物供应。

剩下的 2%会坚持更长时间,找到一只异性的鸡,孵化出更多的鸡。最终,他们不仅可以从鸡那里获得源源不断的食物,还可以发展出一个鸡肉帝国,向 50%没有任何鸡肉的人出售煮熟的鸡肉。

如果你认为 UBI 是共产主义的一种形式,它会导致每个人懈怠,这个例子说明了为什么它不会。

总会有一小部分人愿意推迟即时满足,努力壮大他们的(鸡)帝国。这些是鸡的精英。

还有一些人明白这个想法,但不了解全部情况,他们用鸡来下蛋,但并不总是吃饱,因为下蛋需要时间。这是小鸡中产阶级。

最后,有些人无法控制即时满足感,也无法规划未来。他们立即吃他们的鸡,在第一天有一个伟大的盛宴,但此后永远在饥饿中匍匐前进。这就是鸡穷。

这个类比可以用来证明 UBI 是无用的,因为每个人都将回到他们的阶级——穷人到穷人,中产阶级到中产阶级,精英到精英,但是有一个问题。

有成千上万的人,通过正确的教育和机会,可以成为像鸡精英。问题是,他们一开始就没有“鸡”。

这就是 UBI 如此重要的原因。随着自动化的到来,夺走了非熟练工人甚至一些熟练工人的工作,那些没有我们认为理所当然的机会如良好的教育、互联网接入和工作的人将无法生存。

重要的是人要有成功的机会,不能多,也不能少。

给定一份基本收入,那些有成功欲望的人可以战略性地利用它去他们想去的地方,而真正懒惰的人会留在原地。

在各自领域的专家中,越来越多的公众认为普遍基本收入是未来的发展方向,我希望这个类比能帮助你理解为什么。

你对 UBI 有什么看法?如果你能回复我,我会很高兴的。

感谢阅读,

¯_(ツ)_/¯

萨尔瓦夫

看看我的其他故事吧!

你一直在使用完全错误的介质https://medium . com/swlh/You ve-be-use-medium-complete-error-52 df 28 f 95876

你是不是完全低估了 AI?—https://medium . com/swlh/are-you-complete-低估-ai-96c7083cfd50