数据科学贸易技术是什么样的,为什么我们需要它
如何实现计算透明性的指南
在 Unsplash 上由 anyaberkut 拍摄的照片
对于许多不熟悉统计学或算法如何运作的公众消费者来说,数据科学可能会令人望而生畏。这些盲点会让最终用户不确定流程是如何工作的,或者呈现的信息是否有偏差 ***。***标准化计算分析 的发展将有助于增加技术过程的透明度,而这一过程并不容易被大多数消费者所理解。目前,各种组织发布显示数据的仪表板、统计数据和图表,这些数据不是以标准格式或普通客户可以理解的方法呈现的。透明度是必需的,以便消费者能够理解数据来自哪里,它是什么类型的数据,以及数据是如何被聚合以实现显示的结果。操纵数据或错误显示数据的方法有很多种;这些问题可能源于数据科学家的无能、缺乏经验或缺乏兴趣,因为缺乏执行这种严格性的标准。
新冠肺炎疫情强调了公开数据透明度和准确性的必要性。
马丁·桑切斯在 Unsplash 上拍摄的照片
2020 年 5 月,一名负责创建该州新冠肺炎仪表板的佛罗里达州数据科学家被解雇,因为她质疑该州官员对可访问性和透明度的承诺。Rebekah Jones 声称,她的上司坚持显示不正确的数据,以证明尽快在佛罗里达开业是合理的。她随后利用捐赠的资金创建了一个公开可用的新冠肺炎仪表板,该仪表板持续显示比佛罗里达州官方仪表板更高的新冠肺炎病例。从时间的角度来看,她的作品似乎已经得到了 **的验证。否则,那些有政治目的和不太正直的人很容易歪曲公共信息,如果他们愿意的话。
我花了 12 年时间,仿照 Rich Heuer 的结构化分析技术编写分析评估,并在大学研究他的工作,后来在国防情报局担任专业分析师职业教育(PACE)讲师。在过去的几年里,我作为一名数据科学家在国防部工作,这让我确信数据科学界将从标准化的结构和透明性中受益匪浅。国防部采用由情报界(ic)创建的被称为“结构化分析技术”的分析方法,以增加分析过程的系统性严谨性,并抵消认知偏差。这些方法采用工具和技术,帮助 IC 成员向决策者提供经过全面分析的信息。
数据科学依赖于完善的科学方法和严谨性。因此,它还应该使用科学界开发的所有方法和工具来记录、验证和证实自己的研究。
照片由 Aaron Burden 在 Unsplash 上拍摄
商业行业中使用的数据科学应用程序也应利用结构化分析技术,因为这些产品通常用于告知公众或帮助客户做出高级决策。在每种形式的信息收集中,数据的有效性、完整性和准确性都是重要的考虑因素。使用透明的计算分析可以满足消费者的这些顾虑,并使用户能够了解数据的来源和类型,以及如何汇总数据以产生呈现的结果。本文提供了在将数据科学应用于公共消费产品时实现必要的计算透明性的指导。
本文确定了数据科学从业者在生产发布产品时应该采用的五种方法。这些方法确保在数据科学流程中正确应用科学建立的贸易技巧和严谨性。每种方法都是针对情报部门指令 203“分析贸易标准”中规定的九种分析贸易标准中的一种或多种而制定的
透明计算分析
以下方法应用于计算机算法和数据可视化:
可重复计算
代码可用性描述
数据存档
解释基本原理
替代计算
可重复计算:
使用计算机计算的出版产品必须能被其他用户复制。代码透明性是可复制性的关键。如果在不同的硬件上运行,对用户的文件目录做出错误的假设,或者使用不同的设置编译信息,即使是相同的代码也可能无法产生相同的输出。因此,计算必须包括参考部分中所有相关数据的文档,包括文件和存储目录,以及与算法或可视化相关的代码,以确保产品能够准确再现。使用的实际代码、参数和数据的描述也使用户能够验证发布的结果是正确的,并且数据与发布的结果一致。
在没有查看基础数据和使用的算法的情况下,不应公布数字。关于如何提取用于计算的数据的文档也必须在参考部分注明。这使得其他人能够重新运行分析,再现结果,并重新使用数据来建立研究。同样,从计算分析中得到的产品必须为后续用户提供足够的信息,以便能够重现结果并访问代码及其数据,用于他们自己的分析。
代码可用性描述:
应始终提供“代码可用性声明”来描述如何访问代码或算法,以及是否存在任何访问限制。在有限制的情况下,代码仍应可供具有适当访问权限的个人使用。该声明还应提供请求访问的联系方式。
数据归档:
发布的产品中的数据应归档(即保存)在可共享的存储库中。此外,数据集应在关键点“冻结”,并记录为什么选择这些关键点,数据的连续版本应易于识别。数据科学家可以使用版本控制软件(如 Git 和 GitHub)记录和共享数据集的精确版本以及他们使用的工具,允许在必要时检索特定版本。与其他方法一样,访问数据归档文件的过程应在参考部分注明。
原理解释:
数据科学家应该就为什么选择他们特定的数据集和算法提供一个解释。如果使用了这种方法,它们应该清楚地描述使用了哪些数据来训练模型,以及为什么选择这些数据。对于数据可视化工具,数据科学家应该记录使用了什么数据、从哪里获得的数据、使用了什么代码(如果有的话)来处理数据,以及为什么选择最终的方法。如果在算法的公式中有假设,应该清楚地解释和记录它们,以及为什么选择和部署特定算法的原因描述。同样,如果对使用的数据有限制,应该列出这些限制的理由,以便用户了解这些选择。
替代计算:
最后,数据科学家应该为用户提供关于替代算法和计算的信息。在创建数据科学产品时,可以采用各种方法,分析师必须清楚地描述为什么使用或不使用各种替代方法。应提供类似的解释,说明在出版的产品中使用了何种统计方法进行计算。
在我们的社会中,虚假信息的使用越来越多,这迫切需要科学界在过程中变得更加透明,应用 Richard Huer 的历史悠久的科学方法是应对这些不断演变的社会问题的一种方法。虽然许多传统的分析贸易标准不能直接适用于数据的“处理”,但在检查复杂的数据集以及开发算法时,应该使用这些标准。这些由此产生的标准有助于使一个人的工作变得透明,以便没有创造该产品的人能够理解信息是如何获得的,以及结论是如何从中得出的。虽然社会可能正在处理日益突出的虚假信息,但在已发布的数据科学产品中采用透明的计算分析可以提供由科学界开发的可演示的方法,数据科学家可以遵循,消费者可以理解。
脚注:一、可再现的计算、代码可用性描述和数据归档方法解决了分析贸易标准一“正确描述潜在来源的质量和可信度”,七“解释分析判断的变化或一致性”,八“做出准确的判断和评估”。基本原理的解释涉及标准二“正确表达和解释与主要分析判断相关的不确定性”,三“正确区分潜在的情报信息和分析师的假设和判断”,六“使用清晰的逻辑论证”,九“在适当的情况下纳入有效的视觉信息”。替代计算解决了分析贸易标准四“合并了替代分析”的问题,尽管分析贸易标准五“证明了客户相关性并解决了问题”并不直接适用于计算机计算,但是从这些计算中得出的任何分析都是适用的。
参考文件:
国家情报总监办公室。2015 年 1 月 2 日。https://www . dni . gov/files/documents/ICD/ICD % 20203% 20 analytic % 20 standards . pdf
一个数据透明的工具包正在形成。2018 年 8 月 20 日。https://www.nature.com/articles/d41586-018-05990-5
塞布丽娜·洛洛,有限责任公司,佛罗里达州新冠肺炎仪表板的设计者,已经被撤职。CBS 12 新闻。2020 年 5 月 18 日。https://cbs12 . com/news/local/woman-who-designed-floridas-新冠肺炎-dashboard-has-removed-from-her-position。
史密斯,y,安布里特,瑟诺亚,约翰,M,嬉皮士,a,希利。数据科学家凯西·奥尼尔:算法是嵌入在代码中的观点。2017 年 8 月 26 日。https://www . naked capitalism . com/2017/08/data-scientist-cathy-oneil-algorithms opinions-embedded-code . html
斯塔尼兰,硕士(未注明)。自然研究期刊试用新工具加强代码同行评审和出版。2018 年 8 月 08 日。http://blogs . nature . com/of schemesandmemes/2018/08/01/nature-research-journals-trial-new tools-to-enhance-code-peer-review-and-publication
威尔逊,a .,施密特,m .,施密特,l;《哈佛数据科学评论》。2019 年 11 月 01 日。https://hdsr.mitpress.mit.edu/pub/qkgyckh8/release/2
Yenni,g .,Christensen,e .,Bledsoe,e .,Supp,s .,Diaz,r .,White,e .为动态数据开发现代数据工作流。2018 年 1 月 1 日。https://www.biorxiv.org/content/10.1101/344804v1
美国政府。贸易初级读本:提高情报分析的结构化分析技术。2018 年 3 月。https://www . CIA . gov/static/955180 a 45 AFE 3 f 5013772 c 313 b 16 face/trade craft-Primer-apr 09 . pdf
101 Dalmations 和机器学习有什么共同点?
提示和技巧
科学家可以使用至少 101 个机器学习数据的例子来创造有价值的见解。他们来了。
少年——一个非常好的 boi,由 Jim Ozminkowski 提供
最近,我被要求帮助一个组织为预期增加的需要人工智能的业务做准备。该公司的人工智能将专注于机器学习(ML)和深度学习,这是一种在人类指导下使用计算机的技术,可以在数据中找到模式,用于为工业和公共政策应用创造见解。
这个组织非常精通统计学、计量经济学和可视化。他们的实证工作与其他任何人不相上下,甚至更好,50 年来出色的公共政策研究、评估和咨询经验证明了这一点,特别是在联邦和州政府领域。为了帮助拓宽视野和扩展能力,我搜索并记录了许多可以增加他们工作的实证方法的例子。这些方法中的许多被计算机科学家使用,但是通常不与经济学或其他社会科学相关联,因此政策分析者和政策制定者可能不太熟悉。
没有免费的午餐(NFL)定理说明了为什么考虑许多分析方法是有价值的。Goodfellow 等人(2015)在他们关于深度学习的教科书中解释了这个定理的意义。他们引用了 WOL pert(1996)对 NFL 的定义,即“平均所有可能的数据生成分布,当对未观察点进行分类时,每个分类算法都具有相同的错误率。换句话说,在某种意义上,没有任何机器学习算法比其他算法更好”(第 113 页)。
然而,这种平等只存在于有限的范围内。事实上,有许多地方例外。在任何给定的情况下,Goodfellow 等人说,可能有一种或多种最大似然算法产生比其他算法更好的预测。此外,一组更好的预测指标可能会因研究而异。在我看来,这是最重要的一点,也是从他们对 NFL 的讨论中获得的教训:这意味着数据科学家和其他政策分析师应该寻找最佳的预测算法来解决他们的每个预测挑战。例如,它意味着对每个分类或回归问题使用某种形式的逻辑或线性回归可能并不理想,即使这些方法是分析家和决策者最熟悉的。即使对于推理工作来说也是如此,在推理工作中,关联或因果归因,而不仅仅是预测,是目标,并且潜在的因果机制是非线性的。
如果我们必须寻找最佳方法,并且如果我们对每种潜在的有价值的方法的熟练程度不一样,那么有一个指向许多有用的分析方法的快速和实用的参考将是有用的。本帖提供了这样一个参考。
几篇机器学习文章的注释列表
下面你会发现一个注释列表,里面有很多关于 ML 的文章链接。这些大多是博客或教程,所以不发表在同行评议的期刊上。然而,很多时候评论跟在文章后面,错误、疑问或问题经常由知识渊博的读者发布。许多作者都是各自领域的佼佼者,他们经常在 GitHub 或其他地方回答这些问题,或者提供他们方法的理由和细节。
这些文章阅读起来简单快捷,通常不到 15 分钟。有时读者会发现方程看起来很紧张,但它们通常描述得很好,潜在的直觉通常很清楚。许多作者使用可视化来阐明主要观点。
大多数策略分析师都使用受监督的模型,因此有许多链接指向关于这些模型的信息。还提供了一些集合模型讨论的链接,因为这些提供了监督方法的很大扩展。
然后我提供无监督模型的链接。这些文章中描述的聚类、可视化和数据简化技术可以帮助数据科学家使用大量不同的数据集来指定模型,以说明底层数据中的更多变化。还提供了一些因果推理模型的链接,因为近年来人们对从预测到评估因果关系的兴趣越来越大。注意到了局限性,以及将这些文章与其他来源结合使用以构建更好的模型的建议。
从今天(11/30/21)起,下面的每个链接都可以访问,但我不知道它们会活跃多久。
蒂姆·莫斯霍尔德在 Unsplash.com 的照片
监督学习
这是一种形式的归纳学习,它使用统计或其他模型来学习如何使用输入数据来生成对感兴趣的结果的正确预测。在经济学和其他社会科学的术语中,监督模型的输入数据被称为预测值、独立变量或解释变量。它们在计算机科学/工程/ ML 世界中被称为特征。在用于监督学习的数据中也可获得结果(即,从属)变量,允许统计包区分由 ML 模型做出的正确和不正确的预测。统计软件包还报告了 ML 模型使用几个模型性能度量来正确预测感兴趣的结果的能力。监督学习的重点通常是回归或分类问题。
在这一部分,你可以找到几篇关于各种形式的监督学习和相关主题的文章的链接。我们从描述一般方法论概念和问题的文章链接开始。然后我提供了描述几种预测方法的文章的链接。其中包括朴素贝叶斯、逻辑回归、支持向量机、线性判别分析和决策树,所有这些都可以用于对新对象进行分类或预测二元(是或否)结果。接下来是关于分位数回归、样条回归、岭和套索回归以及广义可加模型的文章链接,这些文章讨论了连续结果。然后我们转向用时间序列模型进行预测,我们用描述神经网络和深度学习方法的文章链接来结束这一长段,这些方法可用于预测二元或连续结果。
一些文章比较多种方法或描述集成应用,帮助分析师解决没有免费午餐的问题。在未来的文章中,我们将转向自动机器学习来促进这种比较。
高层次的方法问题:
这一部分包括几篇文章的链接,这些文章帮助数据科学家更好地理解如何使用 ML。我们从一篇关于将 ML 与人类专业知识相结合来制作更好的模型的文章开始。我读过的每一篇机器学习文本都强烈推荐 ML 的团队运动方面——人类应该指导这项工作,以确保它是相关的,并有可能产生有用的见解。这台机器旨在增强而不是取代人类的视角。
在这个链接之后,我们提供了一个描述笔记本技术在跟踪和描述我们的工作方面的实用性的链接。然后,我们将重点放在数据准备、编程语言以及其他工具和方法上,这些工具和方法有助于优化 ML 模型的使用和评估。之后,我们提供文章链接,
从哪里获取我们机器学习模型的数据,
特征(即独立变量)选择过程,
选择和解释模型时必须考虑的偏差-方差权衡,
如何使用莱姆、SHAP 和其他方法评估每个模型预测值的重要性,以及
如何创建仪表板来帮助不是专家的人解释 ML 模型的结果?
开始了…
1.J. Langston,机器教学:人们的专业知识如何让人工智能更强大(2019),在 https://blogs.microsoft.com/ai/machine-teaching/上。当人类指导机器工作时,机器会产生更多有用的结果。即使是自动化的 ML 方法也是如此,我将在以后的文章中再回到这一点。
2.S. Sjursen,使用 Juypter 笔记本作为数据科学工作编辑器的利弊(2020 年),载于https://medium . com/better-programming/Pros-and-Cons-for-jupyter-Notebooks-as-Your-Editor-for-Data-Science-Work-tip-py charm-is-possible-40e 88 f 7827 CB。笔记本用来存放代码,驱动机器学习的执行,并存储结果,以供将来参考。有一些竞争对手的笔记本电脑产品。Jupyter 是使用最多的一个。比较了它的替代方案。
3.主动向导,管理者的数据科学:编程语言(2019),https://www . kdnugges . com/2019/11/Data-Science-Managers-Programming-Languages . html本文介绍了几种用于监督 ml 模型的编程语言的优缺点。例子包括 Python、R、Scala、Matlab 等等。
4.五、Kashid 对于数据科学来说,Python 和 R 的主要区别是什么?(2020 年),在https://www . quora . com/What-is-the-major-differences of-Python-and-R-for-data-science。这是对 Python 和 R 的一个很好的高层次比较,这两种语言是工业界和学术界用于数据科学的主要编程语言。
5.C. D .,数据科学家最佳数据科学工具(2020),在https://towardsdatascience . com/Best-Data-Science-Tools-for-Data-Scientists-75be 64144 a88。描述了许多用于处理大量不同数据、构建分析数据集以及用于统计分析、机器学习、深度学习、模型部署以及报告和可视化的工具。
6.d,Johnston,一个数据科学家应该对优化技术研究到什么程度?(2019),上https://www . quora . com/How-deep-should-a-data-scientist-study-optimization-techniques/answer/David-Johnston-147?ch = 8&share = 64 abfe 6 f&srid = kag TN。每种有监督的 ML 方法通过解决优化问题来“学习”,优化问题通常被定义为最小化在现实生活中观察到的结果的实际值与由 ML 模型生成的那些结果的预测之间的差异。理解优化是如何工作的是很有帮助的(提示:它通常是基于使用你在微积分课上学到的链式法则的迭代方法)。除了这篇文章,YouTube 上还有一些很好的视频,描述了应用链式法则的反向传播。
7.T. Waterman,谷歌刚刚在 https://link.medium.com/5Ssd71u2y3 的发布了 2500 万个免费数据集(2020 年)。在我们开始机器学习的过程之前,我们显然需要表示感兴趣的结构、预测器和结果的数据。谷歌并没有真正发布 2500 万个数据集,他们拥有的数据中只有大约一半是免费的。然而,他们确实发布了许多数据集的可搜索元数据,这对于找到合适的数据集非常有帮助。
8.M. Dei,《让你的模型更好工作的变量转换目录》(2019),https://link.medium.com/PO7esQMJn4。有时需要对变量进行转换(例如,标准化、规范化、分类),以使机器学习模型运行得更好。本文描述了如何做到这一点。
9.张,理解机器学习中的数据规范化(2019),。这是关于在建模之前标准化变量的价值的初级读本,以减少模型训练时间并提高准确性。
10.T. Yiu,了解交叉验证(2020),关于https://link.medium.com/gEwvRFTE83。交叉验证是一种多次细分数据集的方法,每次都在保留一个子集的情况下训练模型,然后聚合所有模型的信息,以找到具有最佳预测能力的模型。这篇文章描述了它是如何工作的。
11.R. Agarwal,每个数据科学家都必须知道的 5 个分类评估指标(2019),关于https://link.medium.com/IMLmW0IrW3。这是关于分类分析的模型性能度量的初级读本——如何判断您的模型性能是否良好。
12.S. Kochlerlakota,《偏差与方差——穿越噪音》(2019),https://link.medium.com/XIhInRhIk3 上的。每一个用于预测现象或解释现象的机器学习和统计程序都必须平衡偏见的概念(例如,我们得到了正确的答案吗?)和方差(我们对此有多确定?).本文讨论了这种权衡。
13.B. O. Tayo,《机器学习中的错误来源》(2020),载于https://medium . com/towards-artificial-intelligence/Sources-of-Error-in-Machine-Learning-33271143 B1 ab。本文描述了机器学习模型中需要防范的十种错误。这些错误不是机器学习独有的;它们适用于所有类型的分析。
14.J. Zornoza,特征选择介绍(2020),载于https://towardsdatascience . com/An-Introduction-to-Feature-Selection-DD 72535 ecf2b。一旦有了数据,就该抓住有用的部分进行分析了。特征选择是为机器学习模型寻找独立变量的艺术。这可以用理论来指导,用计算机分析来辅助。
15.M. Grogan,Python 中的特征选择技术:预测酒店取消预订(2020),载于https://link.medium.com/H5MsJdIJn4。这里有更多关于寻找好的预测器的内容,包括一个例子和 Python 代码。
16.W. Koehrsen,Why Automated Feature Engineering Will Change the Way You Do Machine Learning(2018),https://link.medium.com/L8jojOVlJ1—Feature Engineering是获取数据集并构建解释变量(特征)的过程,可用于为预测问题训练机器学习模型。正如本文所描述的,这现在可以自动化了。
17.G. Hutson,feature terminator-一个从统计和机器学习模型中自动删除不重要变量的包(2021),在 https://www . r-bloggers . com/2021/07/feature terminator-a-Package-to-Remove-important-Variables-from-Statistical-and-Machine-Learning-Models-Automatically/。本文描述了几种类型的交叉验证,可用于消除无助于改进模型预测的变量。它还提出了避免多重共线性的方法,多重共线性会导致不稳定的预测。
18.J. Brownlee,《机器学习模型选择的温和介绍 (2019),在https://machinelingmastery . com/A-Gentle-Introduction-to-Model-Selection-for-Machine-Learning/。本文描述了如何根据您想要解决的问题,在众多机器学习方法中进行选择。
19.美国马赞蒂,SHAP 在 https://towardsdatascience . com/shap-Explained-the-way-I-Wish-Someone-Explained-it-to me-ab 81 cc 69 ef 30 上解释了我希望有人向我解释的方式(2020 年)。作者提供了一个很好的方式来理解 SHAP 如何被用来解释预测模型中各种特征(变量)的贡献。
20.D. Dataman,用 https://link.medium.com/Fjo6lzakY1 上的使用 KernelExplainer (2019)解释任何具有 SHAP 价值观的模型。机器学习模型有时看起来像是黑盒,不能显示预测变量的相对重要性。本文解释了如何通过使用一个新的 Python 实用程序来找出答案,并举例说明了许多不同类型的 ML 模型的结果。
21.P. Dos Santos,小心你的 SHAP(2020),在 https://medium . com/@ pauldos Santos/Be-小心-What-You-shap-For-AEC cabf 3655 c。作者指出,在结合了连续和二元预测的模型中,SHAP 会产生误导性的结果。
22.a .纳亚克,《莱姆和 SHAP 背后的想法》(2019),《关于 https://link.medium.com/13VS0JSmD2 的 T0》。本文介绍了另一种方法来估计预测变量(石灰)的相对重要性,并比较它与 SHAP。
23.M. Dei,每个数据科学家都应该知道的三种模型可解释性方法 (2019),在 https://towardsdatascience . com/Three-Model-expolability-Methods-Every-Data-Scientist-Should-Know-c 332 BDF 8df。这篇文章更深入地探讨了模型的透明性和可解释性。作者介绍了排列重要性的概念,并描述了部分依赖图的效用。他引用了一个新版本的 scikit-learn 库,可以帮助应用这些技术,SHAP 也是如此。
24.马赞蒂,你的哪些特征是过度适合的?发现 ParShap:一种先进的方法来检测哪些列使您的模型不符合要求(2021),在 https://towardsdatascience.com/tagged/tips-and-tricks?p=c46d0762e769 。这篇文章描述了他创建的 SHAP 的扩展,以找出哪些独立变量(特征)导致模型在采样数据上表现很好,但在新数据上表现很差。
25.美国马赞蒂,黑盒模型实际上比逻辑回归更容易解释(2019),在https://towardsdatascience . com/Black-Box-Models-is-Actually-More-an-a-Logistic-Regression-f263c 22795d。作者很好地解释了如何从复杂的模型中推导出概率,因此它们更容易解释。
26.H. Sharma,机器学习模型仪表板:创建仪表板以解释机器学习模型(2021),在 https://towardsdatascience . com/Machine-Learning-Model-Dashboard-4544 DAA 50848。Sharma 展示了如何创建一个仪表板来更好地查看模型的执行情况。
一些说明性的使用案例:
在文献中描述了成千上万的受监控的 ML 应用,并且/或者在全世界的工业和学术界中使用。这里只是展示 ML 如何提供有用的见解的几个例子。很有可能只要在谷歌上搜索一个描述你感兴趣的问题的短语和“机器学习”就能说明 ML 如何对你的应用有用。
27.什么是好的机器学习用例?(2019),论 https://link.medium.com/Ja4FUL3yG2。我们的客户要求我们解决的大多数经验性问题可能是 ML 的良好用例。即使对于推理工作也是如此,因为我们做出的程序影响估计或其他推理可以被视为对未来结果的预测,而 ML 擅长对他们关心的结果做出可靠的预测。还有许多其他用例,其中一些解决了内部管理挑战,如降低成本、降低风险和利润最大化。本文指出了这三个管理挑战。
28.J. Wang,数据科学与公共政策交汇处的思考(2017),https://towardsdatascience . com/Musings-at-the-crossover-of-Data-Science-and-Public-Policy-cf 0 bb 2 fadc 01。作者提供了一些关于数据科学在解决公共政策问题方面的效用和局限性的智慧之言。她包含了几个用例的链接。
29.J. Rowe,自然语言处理和机器学习如何帮助追踪冠状病毒(2020),https://www . healthcareitnews . com/ai-powered-health care/researchers-tap-ai-Track-spread-Corona Virus。这篇文章是关于自然语言处理和机器学习如何帮助跟踪冠状病毒的——这是一个有趣的用例,说明了这些技术的力量。
30.来自 arXiv 的新兴技术,机器学习已经揭示了莎士比亚戏剧有多少是由其他人写的(2019 年),在 https://www . Technology review . com/s/614742/Machine-Learning-has-reveal-Exactly-how-do-a-a-Shakespeare-play-is-Written-by-Someone/。这个用例与我们考虑的其他用例完全不同,但是这篇文章让我们看到了这样一个事实:ML 是一个灵活的工具,可以用于各种应用程序中。
32.J. Harris(与 M. Stewart 合著),环境科学中的数据隐私和机器学习,载于https://towards Data Science . com/Data-Privacy-and-Machine-Learning-in-Environmental-Science-490 fded 366 D5。这是 Jeremie Harris 采访哈佛大学环境科学博士生 Matthew Stewart 的播客。Matthew 经常为《走向数据科学》投稿,他的博士论文是机器学习和环境科学的结合点。他和他的同事专注于气候变化模型、碳排放和其他重要问题。在这个播客中,他重点关注数据隐私、个人观察的分析价值和模型偏差等问题之间的权衡。
Alexander Schimmeck 在 Unsplash.com 拍摄的照片
监督学习法:
33.J. Brownlee,机器学习算法之旅(2020),在 https://machinelingmastery . com/A-Tour-of-Machine-Learning-Algorithms/。我们以一位实用机器学习方法大师对许多类型的机器学习模型的精彩回顾作为开篇。
34.S. Patel,第 1 章:监督学习和朴素贝叶斯分类—第 1 部分(理论)(2017),关于 https://link.medium.com/VZlAzZKeK2 的。当用于生成二元结果预测的变量相互独立(即天真)时,朴素贝叶斯利用贝叶斯定理来帮助生成这些预测。这很容易做到,并提供易于解释的结果,因此朴素贝叶斯通常是一种受欢迎的初始方法。这篇文章描述了它是如何工作的。
35.S. Patel,第 1 章:监督学习和朴素贝叶斯分类—第 2 部分(编码)(2017),关于 https://link.medium.com/87CBHgWeK2。本文描述了如何在 Python 中实现朴素贝叶斯方法。
36.T. Yiu,Understanding The Naive Bayes Classifier(2019),onhttps://link.medium.com/OpjLwR7ZF4.这是关于 Naive Bayes 的另一个很好的初级读本,Naive Bayes 是一个分类器,通常概括得很好,并且易于使用。文章中的这句话概括了这一点:从高层次来说,朴素贝叶斯只是将贝叶斯定理的简化版本应用于基于其特征的每一个观察值(以及每一个潜在的类)。
37.M. Maramot Le,为什么数据科学中经常使用逻辑回归?(2019),在 https://www . quora . com/Why-is-logistic-regression-used-so-frequency-in-data-science/answer/Marmi-Maramot-Le?ch = 8&share = 7 E0 C7 B2 a&srid = kag TN。这很好地描述了逻辑回归的优点,它可能是许多行业中最流行的分类方法。
38.H. H. Strand,当评估逻辑回归时,解释 Brier 评分和 AUROC 评分的区别是什么?你什么时候会使用其中一个而不是另一个?有没有可能一个高分一个低分?(2019),在https://www . quora . com/When-evaluating-a-logistic-regression-When-the-differences-interpreting-the-Brier-Score-vs-the-AUROC-When-you-use-one-vs-other-Is-possible-a-high-Score-in-one-a-low-Score-in-the/answer/H % C3 % A5kon-Hapnes-Strand?ch = 8&share = d 7361 af 6&srid = kag TN。这里引用作者的一句话:ROC 曲线的 AUC 是分类模型最普遍适用的度量之一,但它只评估你预测的等级。Brier 评分计算概率预测的准确性。如果你只关心分类,AUC 很好,但是如果你想估计某件事的概率,那么 Brier 评分是一个很好的额外指标。
39.f .乔,使用 Scikit-learn 调整逻辑回归模型-第 1 部分(2019),关于和本文描述了调整逻辑回归模型以提高模型性能的方法。还与随机森林进行了比较。提供了 Python 代码。
40.S. Deb,朴素贝叶斯 vs 逻辑回归(2016),https://link.medium.com/UPGymGIfK2 的。由于朴素贝叶斯和逻辑回归是两种流行的、相对简单的、可解释的使用方法,本文描述了它们各自的优势。逻辑回归在大型数据集上占主导地位,但大多数数据集并没有那么大,很多时候朴素贝叶斯更快地生成准确的结果。描述了经验误差、概括误差和混杂误差,包括辛普森悖论。
41.M. Sanjeevi,带数学的支持向量机(2017),上https://medium . com/deep-Math-Machine-learning-ai/chapter-3-Support-Vector-Machine-With-Math-47d 6193 c 82 be。作者很好地描述了 SVM 是如何工作的,将图形和数学结合起来。这个应该会吸引那些有很强数学背景的人。
42.R. Pupale,支持向量机——概述(2018),载于https://towardsdatascience . com/https-medium-com-pupalerushikesh-SVM-f4b 42800 e989。这是对 SVM 的一个很好的介绍,用直观的图形来描述基础理论和 Python 代码。
43.开放数据科学——在 R(2018)https://link.medium.com/ztbUrFveK2上构建多类支持向量机。作者提供了理论,以及 SVM 在 R 中的应用,以结果变量中有多个类为例。
44.P. Nistrup,线性判别分析(LDA) 101,使用 R (2019),对 https://link.medium.com/WWlqD6xQN2。LDA 是分类分析的另一种形式,从这个意义上讲,它可以替代逻辑回归、决策树、朴素贝叶斯和其他方法。它也可以被视为主成分分析的替代方法或补充方法(参见下文关于主成分分析的无监督模型)。本文中有一些很好的可视化工具来说明 LDA,并附有 R 代码来看看如何进行试验。
45.《熵:决策树如何做出决策》(2019),https://link.medium.com/vXj620nRN2 上。本文描述了如何使用熵(纯度的一种度量)和信息增益来创建决策树。
46.P. Flom,分位数回归介绍(2018),https://link.medium.com/hcLvE9WoK2.与普通最小二乘法相反,分位数回归对残差的分布不做任何假设。当因变量是双峰或多峰时,它也比普通最小二乘法更好。本文提供了一个用分位数方法分析出生体重数据的例子,以及 SAS 代码。
47.C. Lee,分位数回归—第一部分(2018),https://link.medium.com/HtaBXw6oK2 的。本文描述了分位数回归的工作原理,并提供了使用 Tensorflow、Pytorch、Light GBM 和 Scikit-Learn 的示例。基于数学的理论也提供了。
48.M. Ghenis,分位数回归,从线性模型到树到深度学习(2018),在https://link.medium.com/arc6wSspK2.这篇文章将分位数回归与随机森林、梯度推进、普通最小二乘法和深度学习方法进行了比较。
49.S. Vyawahare,R (2019)中的样条回归,关于https://link.medium.com/T7IGk9QpK2.样条回归(也称为分段回归)是一种非参数技术,可以很好地用于非线性数据。它可以替代分位数回归。
50.M.S. Mahmood,利用一般加法模型拟合非线性关系(2021),https://towardsdatascience . com/Fit-Non-linear-Relationship-Using-generalized-Additive-Model-53a 334201 b5d。这是一篇很好的文章,描述了如何使用一般的可加模型来生成非线性关系的预测。结果被建模为输入变量的非线性函数的总和。提供了与样条和多项式回归的比较。
51.V. Sonone,Scikit-learn 监督学习的传统指南-稳健回归:异常值和建模误差-广义线性模型(2018),关于https://link.medium.com/UtGDO37BL2.稳健回归程序在异常值或其他数据问题存在时很有价值。
52.S. Bhattacharyya,Ridge and Lasso Regression:A Complete Guide with Python sci kit-Learn(2018),on https://link.medium.com/RGST954ii2—这篇文章中的引用很好地总结了它的重点: Ridge and Lasso regression 是一些简单的技术,用于降低模型复杂性和防止简单线性回归可能导致的过拟合。
53.A. Singhal,机器学习:详细岭回归(2018)【https://link.medium.com/KoK0E7Oxx3 上的。如题,这里有一个关于岭回归的更多信息。作者对过度拟合问题进行了很好的回顾,过度拟合导致模型在训练数据集上表现很好,但在用于全新数据时表现很差。他展示了如何使用岭回归来避免这个问题。
54.S. Gupta,各种机器学习算法的利弊(2020)上https://towardsdatascience . com/Pros-and-Cons-of-variable-classification-ml-Algorithms-3 b5 bfb 3c 87d 6。本文回顾了支持向量机、逻辑回归、朴素贝叶斯、随机森林、决策树、k-最近邻和 XGBoost 在预测练习中的优缺点。
55.E. Lisowski,最佳预测技术,或如何从时间序列数据进行预测(2019)https://link.medium.com/tR9OlYzpR1。本文描述了如何使用时间序列数据生成良好的预测。例如,考虑如何最好地预测在全国几个州使用的全付费(即,全保险)系统下支付给医疗保健提供者的费用。这里提到的 ARIMA 模型非常适合这个问题以及类似的问题。我在这篇文章的介绍中提到的公司为此开发了一个很棒的 ARIMA 模型,极大地提高了支付给几个州的提供商的公平性和准确性。
56.J. Nikulski,AdaBoost 的时间序列预测,Random Forests 和 XGBoost (2020)在 https://link.medium.com/RX2I64fLf5.发表这是对三种可用于时间序列数据的最大似然技术的一个很好的回顾。作者提供了关于如何测试这些模型性能的指导。时间序列模型的性能测试技术从根本上不同于其他类型的 ML,原因在文章中提到。
57.J. D. Seo,趋势,季节性,移动平均线,自回归模型:我的交互式代码时间序列数据之旅(2018),https://link.medium.com/n5qvZnKhY1 上的——这篇文章回顾了更多的模型,并有一些很好的可视化。
58.B. Etienne,Python 中的时间序列-指数平滑和 ARIMA 过程(2019),https://link.medium.com/IwSvpfzfn2 的-这本书有更多关于检查平稳性的信息,这是从时间序列模型中做出良好预测所必需的。还提供了获得平稳性的变换。提供了 Python 代码和可视化,以及关于如何从几个选择中选择一个时间序列模型,以及如何绘制预测的思想。
59.S. Palachy,时间序列分析中的平稳性(2019),https://link.medium.com/SLpze7QdI2 上的。对于那些喜欢大量理论和数学的人来说,这里是在平稳性属性的背景下对这些内容的描述,平稳性属性是使用时间序列数据进行预测的可靠方法的基础。
60.R. Kompella,使用 LSTMs 预测时间序列(2018),载于https://towardsdatascience . com/Using-lst ms-to-forecast-time-series-4ab 688386 b1f。也可以使用神经网络方法从时间序列中进行预测。本文描述了如何用 Python 实现这一点。
61.J. Brownlee,如何用 Python 从零开始用反向传播编码一个神经网络(2021),在 https://machine learning mastery . com/implement-back propagation-algorithm-Scratch-Python/。神经网络方法大致基于大脑中的神经元如何相互传递信息。这种生物过程激发了神经网络和深度学习模型,它们可以非常好地预测二元或连续的结果。本文解释了如何用 Python 生成神经网络模型,以及如何使用一种称为反向传播的技术来最小化模型误差。
62.答:是的,如果你不理解通用逼近定理(2020),在 https://medium . com/analytics-vid hya/You-dont-Understand-Neural-Networks-Until-You-Understand-the-Understand-the-Universal-Approximation-Theorem-theory-85b3e 7677126这个定理指出,如果使用类似 sigmoid 的激活函数,只有一个隐藏层且其中有足够神经元的神经网络可以以合理的精度逼近任何连续(线性或非线性)函数作者提供了一个很好的描述和一些例子。
63.S. K. Dasaradh,《神经网络背后的数学的温和介绍》(2019),https://link.medium.com/MDZLalMfI2 上的。虽然“温柔”是情人眼里出西施,但这篇文章描述了神经网络背后的直觉和数学。
64.V. Sethi,神经网络的类型(以及每种类型的作用!)解说(2019)【https://link.medium.com/hWRnjnJEY2 上的 。神经网络可用于回归或分类问题,因此可以替代上述链接中描述的任何方法。本文对不同类型的神经网络进行了高度的描述。
65.《走向人工智能团队,神经网络的主要类型及其应用——走向人工智能团队教程》(2020),https://link.medium.com/rgohjQrQG8。这是对 27 种神经网络模型的简短回顾。顶部的图片很好地展示了这些方法。
66.E. Hlav,深度学习中的激活函数:从 Softmax 到 Sparsemax——数学证明(2020),在https://link.medium.com/sul2IG8799.上本文描述了 Sparsemax,一种在神经网络中用于预测多类别结果的激活函数。
67.A. Bonner,什么是深度学习,它是如何工作的?(2019) 关于 https://link.medium.com/csFjYHHoR1—深度学习是一种基于神经网络的 ML 形式。虽然基本的神经网络只有一个位于输入数据和输出预测之间的“隐藏”层,但深度学习有两个或更多层。在复杂的成像、基因组或物理应用中,可能有数百、数千或数万个隐藏层,每个隐藏层都建立在前面的层上,以努力生成更好的预测。
68.M. Lugowska,当你用深度学习开始你的日志时的必读教程,作者 mag delna Lugowska(2019),在 https://blog . sky gate . io/A-必读教程-当你开始你的深度学习之旅时-5fa4da071510 。提供深度学习的介绍。还提供了一些关于如何处理隐藏层的建议,真正的工作是在隐藏层完成的。还提供了关于如何调整这些模型的建议。
69.D. Jangir,激活函数的需求和使用(2018),https://link.medium.com/dJYXxPbNf5.作者对神经网络中用于生成非线性数据预测的激活函数进行了很好的回顾。回顾了几种激活函数。
70.T. Folkman,如何利用深度学习即使是小数据(2019),https://link.medium.com/f57XSYHCB2 上。大多数人认为深度学习需要庞大的数据集,但事实并非总是如此,正如本文所解释的那样。
Manuel Nageli 在 Unsplash.com 拍摄的照片
合成和集成学习:
组合和集成学习指的是使用几种类型的机器学习来解决机器学习问题。
71.a .叶,组合学习是机器学习的未来(2020),上。当大型任务可以被分成有意义的、不同的部分时,使用组合学习,每个部分由不同的机器学习方法进行分析。
72.J. Roca,Ensemble methods: bagging,boosting and stacking (2019),https://link.medium.com/93kLZDWPS1—Bagging 是指同时运行许多(即 10 个、100 个或 1000 个)类似的模型。随机森林模型是装袋模型。Boosting 指的是按顺序运行模型,部分集中于利用以前模型的误差项。堆叠是指并行运行许多不同类型的模型,然后合并结果。
73.S. Glenon,决策树 vs 随机森林 vs 梯度提升机器:简单解释(2019),载于https://www . datascience central . com/profiles/blogs/Decision-Tree-vs-Random-Forest-vs-boosted-trees-Explained。随机森林(RF)是由许多决策树在全部生成后组合而成的。梯度推进机器(GBM)方法在建造采油树时一个接一个地组合采油树。提供了 RF 和 GBM 的一些优点和缺点。
74.W. Koehrsen,Python 中的随机森林(2017)【https://link.medium.com/zJEfiDWEB2 —随机森林是最受欢迎的方法之一,也是预测二元结果的最佳监督方法之一。它经常但不总是比逻辑回归、支持向量机、梯度推进或神经网络方法更好。RF 是一种决策树方法,它将 10 个或 100 个或 1000 个独立决策树的输出组合在一起。要使用的树的数量是由用户设置的超参数——有关超参数的更多信息,请参见下文。
75.答:Ye,When and Why Tree-Based Models(经常)优于神经网络(2020),https://towards data science . com/When-and-Why-Tree-Based-Models-ocely-perform-Neural-Networks-ceba 9 ECD 0 FD 8虽然没有免费的午餐原则保证没有特定的建模方法在每种情况下都占主导地位,但在某些情况下,随机森林和其他基于树的模型往往优于神经网络。看看里面为什么。
76.W. Koehrsen,超参数调优 Python 中的随机森林(2018),https://link.medium.com/TFvgX1DlD2 上的。—超参数是模型用来生成预测的设置。把设置想象成电子邮件或手机的设置。分析员告诉软件使用哪个超参数。超参数选择没有很好的理论指导;使用试错法和直觉来达到最终的超参数设置,其与最小模型误差相关联。这种搜索可以是自动的。
77.P. Patidar,机器学习中的超参数(2019),https://link.medium.com/VAVKbs6qi4 的。本文提供了关于超参数的另一个简要介绍。
78.t . S .5 分钟 AdaBoost 的一个数学解释(2020) |走向数据科学上https://Towards Data Science . com/A-Mathematical-explain-of-AdaBoost-4 b 0c 20 ce 4382。这是 AdaBoost 的简短说明,AdaBoost 是一种基于自适应 boosting 树的 ML 方法。提供了一个示例。
Jan Antonin Koler 在 Unsplash.com 拍摄的照片
无监督学习:
这是一种学习形式,包括在数据集内搜索模式,但没有标记结果变量的优势。许多无监督的方法被用于将相似的观察结果分组为更小的群。
可视化也是一种无监督学习的形式;请参阅下面关于拓扑数据分析(TDA)的文章作为示例。TDA 是一种以更完整的方式理解我们分析的数据的方法。
最后,创建数据的低维表示的努力也是无监督学习方法的例子。很好的例子包括主成分分析、因子分析和自动编码器,它们根据用户希望如何将几百或几千个变量中的信息减少到更少(也许只是几个)的变量而变化,以便更容易在 ML 中使用。
79.J. T. Raj,机器学习降维初学者指南(2019),在https://link.medium.com/wWOFkXNoe3这篇文章描述了如何将具有数百或数千个特征(即变量,或变量的函数)的数据集减少到一个更小的数量,而不会导致太多的信息损失。这使得用户可以利用庞大的数据集,同时仍然让模型收敛。
80.a .叶,《线性判别分析在四分钟内解释:概念、数学、证明和应用》(2020),载于https://medium . com/analytics-vid hya/Linear-discriminal-Analysis-Explained-in-Under-4-Minutes-e558e 962 c 877。LDA 是一种可用于监督或非监督分析的技术。本文更侧重于无监督的应用程序。
81.P Nistrup,线性判别分析(LDA) 101,使用 R (2019),在https://towardsdatascience . com/Linear-discriminal-Analysis-LDA-101-Using-R-6a 97217 a 55 a 6。这是一个很好的应用程序,展示了如何使用 R 统计软件进行 LDA。
82.M. J. Garbade,Understanding K-means Clustering in Machine Learning(2018),onhttps://link.medium.com/YAkPCunvp1.K-means Clustering 是一种方法,通过这种方法,用户可以决定他或她想要从源数据集(这是数字 k )创建多少个子集(聚类),软件可以计算出如何构建这些聚类,以便一个聚类内的观察结果相似,但不同于其他聚类中的观察结果。
83.C. Maklin,K-means 聚类 Python 示例(2018),https://link.medium.com/9Ro8ahOgn2 上的——作者很好地介绍了 K-means 聚类,有很好的可视化和 Python 代码。
84.A. Singh,用高斯混合模型建立更好更准确的聚类(2019),关于https://link.medium.com/Z0Ls9KUqW3.聚类分析有助于从未标记的数据中找出意义。本文描述了如何使用 GMM 通过对相似的观察结果进行聚类来更好地理解这些数据。
85.T. Yiu,Understanding PCA (2019),onhttps://link.medium.com/ZHwhuCajK2.主成分分析是一种将来自许多变量的信息组合成更多变量的技术,根据作者的说法,这“有助于我们揭示隐藏在数据中的潜在驱动因素。”这篇文章简单地、高层次地描述了这是如何发生的,并带有一些漂亮的视觉效果。
86.a,Dubey,主成分分析背后的数学(2018),关于https://link.medium.com/xz2bMKOhK2.这篇文章描述了 PCA 中使用的数学,将许多变量转换成许多更少的变量,同时在这个过程中保留尽可能多的信息。
87.T. Santos,因子分析和主成分分析之间的差异(2019),关于https://link.medium.com/LHtYPlmjK2.PCA 和 FA 都是数据简化技术,但 PCA 专注于在其创建的较小变量集中保留尽可能多的变化,而 FA 专注于将来自较大变量集的信息组合成较小的潜在(隐藏)因子集,这些因子可以解释观察到的较大变量集之间的相关性。
88.T. Ciha,PCA & auto encoders:Algorithms every one Can Understand(2018),onhttps://link.medium.com/eYPIiKdiK2.PCA 是一种基于线性代数的方法,将变量组合成更少的变量。自动编码器是一种基于神经网络的方法,用于将来自许多变量的信息组合成更少的变量。本文描述了每种方法的属性。
89.J. Brownlee,可视化主成分分析(2021),https://machine learning mastery . com/Principal-Component-Analysis-for-Visualization/?UTM _ source = drip&UTM _ medium = email&UTM _ campaign = Principal+component+analysis+for+visualization&UTM _ content = Principal+component+analysis+for+visualization大多数人使用 PCA 进行降维,但它对可视化数据也非常有用,如本文所述。
90.Z. Singer,拓扑数据分析-解开流行词(2019),https://link.medium.com/WKBRmTMjK2.TDA是一种理解数据集中变量如何相互关联的几何方法。TDA 的应用通常可以揭示隐藏的模式,从而导致对感兴趣的结果如何产生的关键理解。TDA 提供的可视化说明了数据的“形状”,可以帮助我们生成更好的预测或解释模型。这篇文章说明了 TDA 是如何在高层次上工作的。
91.V. Deshmukh,拓扑数据分析——一个非常简短的介绍(2019),关于 https://link.medium.com/yqlneOEjK2 的。这篇文章提供了更多关于 TDA 如何工作的信息。
因果推断:
介质上有很多关于因果推理的描述。一些是由经济学家和其他社会科学家,一些是由神经科学家,以及许多其他学科的代表。完全覆盖因果推理是不可能的。下面你会发现一些引起我兴趣的,从我几个月前写的一个概述开始。在 Medium 上搜索“因果关系”可以找到更多。关于经济学和其他社会科学中因果推理的三部伟大教科书已经由 Maziarz (2020)、Pearl 和 Mackenzie (2019)以及 Morgan 和 Winship (2015)编写完成。
92.什么导致了什么,我们怎么知道?(2021),在https://towards data science . com/what-causes-what-how-we-know-b 736 a 3d 0 eefb。这是一个由该领域的领导者确定的五种主要因果推理方法的综述,以及它们如何帮助我们思考当今主要的社会政治经济问题。
93.A. Kelleher,因果关系技术入门(2016),在https://medium . com/@ akelleh/A-Technical-Primer-on-Causality-181 db 2575 e41。这本关于因果关系的初级读本深入到基础概念中,直观且带有一些重型数学。它应该能满足那些对因果推理感兴趣的有许多不同背景和训练的人。
94.P. Prathvikuman,通过因果影响进行因果推断(2020),https://link.medium.com/rSFRdqmW66 上。这是一篇关于谷歌因果影响软件的短文——基本上是关于如何找到反事实,并在随机化不可行的研究中使用这些反事实来推断因果关系。许多客户将我们生成的项目影响或其他推断估计解释为因果关系,而回归系数并不总是符合因果推断的标准。设计问题,尤其是如何处理选择偏差,是需要讨论的关键问题。
95.P. Rajendran,使用差异中的差异、因果影响和合成控制的因果推理(2019),https://towardsdatascience . com/Causal-Inference-Using-Difference-Causal-Impact-and-Synthetic-Control-f 8639 c 408268。作者很好地介绍了寻找干预措施影响的三种方法,描述了每种方法的优点和缺点。
96.G. M. Duncan,上的因果随机森林 https://econ . Washington . edu/sites/econ/files/old-site-uploads/2014/08/Causal-Random-Forests _ Duncan . pdf .这是一个简短的 PowerPoint 演示,描述了用于因果推理的随机森林。
97.A. Tanguy,贝叶斯分层建模(或更多 autoML 还不能取代数据科学家的原因(2020),在 https://towards Data science . com/Bayesian-hierarchy-Modeling-or-more-reasons-why-autoML-cannot-replace-Data-Scientists-yet-d 01 e 7d 571d 3d。作者说,“贝叶斯网络允许人们对变量之间的因果关系进行建模,弥补数据提供的信息的不足。”
98.Ctaeh,什么是贝叶斯信念网络?(第一部分)(2016),上 https://www . probabilistic world . com/Bayes-Belief-Networks-Part-1/Bayes 信念网络通常被描述为利用条件概率和 Bayes 定理推断变量之间因果关系的努力。这里解释一下关于这些网络的直觉。
99.Ctaeh,什么是贝叶斯信念网络?(第二部分)(2016 年,在 https://www . probabilistic world . com/Bayesian-belief-networks-Part-2/在这一部分中,Cthaeh 通过展示 BBNs 背后的数学更深入一些。
100.C. Y. Wijaya,快速入门因果分析决策与 DoWhy:预测来自干预的因果效应(2021),载于https://medium . com/geek culture/A-quick start-for-Causal-Analysis-Decision-Making-with-DoWhy-2 ce 2d 4d 1 EFA 9。作者描述了微软开发的基于图论和反事实分析生成因果模型的 DoWhy 包。提供了 Python 代码。这篇文章的一个很好的姊妹篇是由 DoWhy 开发人员 Amit Sharma 和 Emre Kiciman (2020)撰写的论文。
101.H. Naushan,使用自然语言处理的因果推理(2021),载于https://towardsdatascience . com/Causal-Inference-Using-Natural-Language-Processing-da 0 e 222 b 84 b。这篇文章在机器学习、因果推理和自然语言处理之间提供了一个很好的链接。在本质上,NLP 可以被看作是包含文本数据的 ML,使用它从文本中得出因果推论是一个新颖而有用的想法。
限制:
虽然这篇文章覆盖了很多领域,但不可能在一篇文章中探索大量重要的机器学习主题。许多其他类型的机器学习值得花费时间和精力来理解它们。示例包括强化学习(即以目标为中心的学习)和迁移学习(为一个目的训练、验证和测试模型,然后利用它实现完全不同的目的)。还有许多其他的例子。机器学习实用方法的领导者 Brownlee (2019)定义和描述了这些和其他 ML 主题。他的许多书都物有所值。
我在这里关注的只是关于媒体、数据科学和其他方面的短文。这些都是非常有用的,因为他们的务实的方法。作者提供了清晰而简要的解释,通常将理论、数学和建模技巧与 Python、R 或 SAS 代码的列表或链接以及许多更详细的参考资料相结合。许多人在 GitHub 链接或其他可以找到代码和注释的地方提供了更多的细节。
尽管如此,这仍然留下了至少五个限制。首先,要找到并描述每一篇好文章是不可能的,即使是上面包含的简短的主题列表。鼓励读者用自己的搜索来补充这个列表,以充分研究感兴趣的主题。
第二,上面包括的简要描述并不意味着包括批判性评论。没有一篇文章是完美的,但是为了简洁起见,我选择不详述任何错误,把它留给读者。
第三,我选择不提供同行评审的方法论出版物和教科书的列表,这些出版物和教科书更详细地描述了 ML 理论和应用。这个决定只是为了节省空间,我强烈推荐阅读这样的材料。如果读者用同行评议的文章和教科书材料补充上述文章,他们会发现理论、深度解释和实用方法的结合将产生理解上的收获,值得投入时间。
第四,上面的链接描述了如何进行 ML 和深度学习模型的训练、测试和验证。我特意决定不关注模型部署(即,在本地或大规模工业应用中使用这些模型需要什么)。这是一个独立的领域。关于部署的更多信息可以在 Ted Malaska 和 Shivnath Babu (2019)的优秀 O’Reilly 出版物中找到。
第五,也是最后一点,上面描述的文章集中在 ML 的机制上。近年来,出现了一个平行且非常重要的焦点,描述如何负责任地使用 ML 模型。关于这个主题的更多信息可以在我最近的一篇文章中找到(Ozminkowski,2021),以及霍尔等人的另一篇伟大的 O’Reilly 出版物中找到(2021)。卡内基梅隆大学(2018)的数据科学和公共政策团队有一个名为 Aequitas 的优秀软件程序,该程序也促进了负责任的机器学习。Obermeyer 等人(2020)也提供了另一个关于如何避免机器学习中的偏见的很好的描述。
结论:
这篇文章提供了许多 ML 方法的链接,可以帮助数据科学家为他们的客户产生有用的见解。它是由没有免费的午餐定理激发的,该定理表明需要为任何分析寻找最好的学习者。这意味着测试许多不同的 ML 方法,以找到产生最佳(更准确、更敏感、更具体)预测的方法。
最近,人们对所谓的超级学习者进行了一些研究。这是一种结合来自许多不同 ML 模型的信息的方法,以产生更好的整体预测。超级学习者已经被证明能够更好地处理大量的输入 ML 方法。例如,可以使用上面链接中描述的许多方法作为超级学习者的输入。Romain Pirracchio (2016)提供了一个超级学习者如何在医疗保健分析中工作(即,预测在医院重症监护病房接受治疗的患者的死亡率)的很好的例子。介绍超级学习者的论文是由 Van der Laan 等人(2007)发表的,关于它的更多信息可以在那里找到。把超级学习者想象成应用于许多 ML 模型的 ML。
对于那些想以其他方式寻找最佳模型的人,Neo (2019)提供了许多其他关于 ML 和数据科学的网站的链接,这些网站也提供了价值。这些网站有些是免费的,有些不是。
机器学习和深度学习领域正在快速发展,跟上它的步伐是一项艰巨的任务。不可能在一篇文章中涵盖所有新的发展。我在这里的重点是许多永恒的方法,这些方法已经提供了价值,并将继续提供价值。我希望你喜欢阅读!
参考文献:
J.布朗利。机器学习中的 14 种学习类型(2019),在https://machinelementmastery . com/Types-of-Learning-in-Machine-Learning/
卡内基梅隆大学的数据科学和公共政策团队,Aequitas:一个用于机器学习的开源偏见审计工具包(2018 年),在http://www . datasciencepublicpolicy . org/our-work/tools-guides/Aequitas/
I .古德费勒、y .本吉奥和 a .库维尔,《深度学习》(2016 年),麻省剑桥:麻省理工学院出版社
页(page 的缩写)Hall,N. Gill 和 B. Cox,《负责任的机器学习》( 2021 年),塞瓦斯托波尔,CA: O’Reilly Media Inc .
T.Malaska 和 S. Babu,《通过现代工具重建可靠的数据管道》( 2019 年), Sebastopol,CA: O’Reilly Media Inc .
米(meter 的缩写))Maziarz,《经济学中的因果关系哲学》( 2020 年), Routledge-Taylor & Francis 集团,纽约
南 L. Morgan 和 C. Winship C,《反事实和因果推理:第二版》( 2015 年),剑桥大学出版社,英国剑桥
B.Neo,机器学习和数据科学 20 大网站(2019),https://link.medium.com/zwUcGQCvz3 上的
Z.Obermeyer,R. Nissan,M. Stern 等人,《算法偏差剧本》(2020 年),芝加哥布斯:应用人工智能中心。也在https://www . FTC . gov/system/files/documents/public _ events/1582978/algorithm-bias-playbook . pdf
R.Ozminkowski,垃圾进垃圾出:拯救世界只是解决这个普遍问题的一个好理由(2021 年),https://towardsdatascience . com/Garbage-in-Garbage-out-721 b5 b 299 bc1
R.Ozminkowski,什么导致什么,我们怎么知道?(2010 年),在 https://towards data science . com/what-causes-what-how-we-know-b 736 a 3d 0 eefb
J.Pearl 和 D. MacKenzie,《为什么之书:因果的新科学》( 2018 年),纽约基础图书公司
R.Pirracchio,基于超级 ICU 学习者算法(SICULA)项目 MIMIC-II 结果的 ICU 死亡率预测(2016),电子健康记录二次分析第 20 章,瑞士 Cham:麻省理工学院关键数据团队
A.Sharma 和 E. Kiciman,DoWhy:因果推理的端到端库(2020 年),载于 arXiv:2011.04216 v1[统计。我]2020 年 11 月 9 日
米(meter 的缩写))J. Van der Laan、E.C. Polley 和 A.E. Hubbard AE,《超级学习者》( 2007 年),加州伯克利,加州大学伯克利分校生物统计工作论文系列,第 222 页
BI 顾问实际上是做什么的?
我如何帮助公司将数据转化为洞察力
我从事数据工作已经超过 25 年了,尤其是在商业智能领域大约有 10 年。目前,我是一名商业智能顾问,帮助公司实现他们的项目,并将他们的数据转化为洞察力。
但是我的工作到底包括什么?BI 顾问实际上是做什么的?
和任何顾问一样,客户希望解决一个问题,但却没有必要的专业知识。因此,他们希望“咨询”专家。
对我来说,作为一名商务智能顾问,有两种典型的情况可以解释我从事的大部分工作。客户会联系我,要么是因为 a)他们当时没有任何商业智能(也就是说,他们还没有以任何有意义的方式分析他们的数据),要么是因为 b)他们已经做了一些报告,但他们希望从 Excel 或他们拥有的任何基本商业智能升级到更自动化、更具交互性和可共享性的东西。
处理这两种场景的方法几乎是相同的,所以我将和你一起回顾从开始到最终将项目交付给客户的过程。
从哪里开始?
你可能认为最好的开始是做一些数据审计,看看客户有什么数据,存储在哪里,如何存储等等。但是,事实上,开始这种 BI 项目的最佳地方实际上是在最后。让客户尽可能详细地向你描述他们项目的最终结果。因此,像这样的问题,报告或仪表板看起来像什么?他们想要监控和跟踪的 KPI 是什么?那么,他们希望在报告中加入什么样的交互选项呢?他们将与谁共享这些报告?怎么会?多久一次?
也是在这个阶段,我做另外两个重要的任务。首先,我从技术和预算两方面评估客户表达的可行性要求。
有时,客户想要实现甚至在技术上不可能实现的事情,无论是考虑到他们的数据设置方式,还是基于他们选择的 BI 工具的限制。有时,客户对工具的选择是基于他们的预算,这就是我所说的预算可行性。
所以我想你会称之为“管理期望”。我做的另一件事是利用我参与过许多不同项目的经验,提出客户可能没有想到,甚至不知道存在的改进或附加功能。这是你真正能挣钱的地方。你可以接受一个客户基本的、有限的初始需求,然后把他们的项目变成只唱不跳的东西。这是一个非常快乐的客户。
因此,一旦我让客户解释他们完成的项目看起来是什么样的,我已经管理了期望并提出了改进或附加功能,我们最终基本上确定了项目的总体范围。
对于那些熟悉项目管理的人来说,你会知道范围是构成“铁三角”的三个要素之一。另外两个是时间和成本。
在某些情况下,客户尚未选择特定的 BI 工具,定义总体范围有助于确定哪些工具适合项目,哪些工具可以排除在外——事实上,有些客户只需要您推荐满足其需求的最佳 BI 工具。正如我之前所说的,有些人可能选择了一个工具,认为它会做他们需要的一切,但只有当你理解了他们的需求,你才会发现它并没有。所以,你看,在继续下一步之前,首先定义范围是非常重要的。
范围和规格
一旦对项目的总体布局达成一致,就该更深入地挖掘并更详细地定义范围了。这通常意味着通过列出将包含在每个仪表板或报告中的所有查询以及每个查询的数据来自哪里来规范项目。如果它来自多个数据源,它们是如何连接在一起的?这有点像路线图和数据购物清单合二为一。
实际上,我创建了一个电子表格来做这个详细的规范,如果你有兴趣得到一份副本,我会在文章末尾留下一个链接。
一旦项目的规格已经确定,你就可以开始计算执行和交付项目所需的时间,并以此为基础计算其成本。
现在,我总是建议与客户讨论预算,甚至在任何规范完成之前。因为当预算不在的时候,完成所有的工作是没有意义的。因此,事先确保客户知道你的基本日薪或时薪是至关重要的。
计算成本
但是你如何准确地计算客户的项目成本呢?嗯,这不仅仅是将你需要构建的查询或可视化的数量乘以特定的时间长度。相反,它要复杂得多,要包含更多的变量。
甚至在开始项目本身之前,你必须考虑到你可能已经做的任何售前工作,与客户的最初通话,审查项目以检查某些查询和数据连接的可行性,诸如此类的事情。然后是合同前管理(创建项目规范,撰写建议书等)。
在开始构建仪表板之前,通常(尽管不总是)需要准备数据源。这可能很简单,只需将数据源连接到 BI 工具,并确保数据如您所期望的那样呈现。或者,您可能需要编写复杂的 SQL 查询来将数据连接在一起,并构建数据库的“视图”。还可能需要构建一个完整的数据仓库来为项目服务。
根据我的经验,我可以说,平均而言,BI 项目的数据部分占整个项目的 50%左右。创建数据可视化背后的查询,定制它并将其添加到仪表板中只需几分钟或点击一下。但是,要到达设置数据以交付您需要的结果的阶段,可能需要几个小时甚至几天。
事实上,我为一家跨国汽水公司工作过的一个项目只是一个简单的记分卡,上面有很多个位数的 KPI。我只花了大约一个小时来建造和设计。但是建立的数据在不同部门的不同数据库中,出于安全原因,我们不能直接连接到这些数据库。所以大概 95%的项目时间都花在了整理数据部分。这是一个很好的例子,说明 BI 项目不仅仅是构建仪表板。如果你想更多地了解这个项目,也许我可以写一个关于它的案例研究?让我知道。
在估算项目成本时,需要考虑的其他事情包括,估算项目期间你需要与客户会面的次数,以监控项目进展,并检查一切是否符合客户的要求。然后,您需要考虑在交付项目的初始草案后可能需要做的任何更正,以及可能没有预见到的任何意外情况。最后,您是否需要交付任何项目后材料,如培训或最佳实践指南,以充分利用报告等。?这些都是需要考虑的。
基本上,根据项目的复杂性和当时可用的项目详细信息的数量,您可以放心地将您认为产生项目可交付成果所需的时间乘以大约 1.6 到 2。如果信息有点粗略,而且细节不多,就有更多的出错或误解的空间,这可能导致必须重新做某些事情。你明白了。
如果客户问你一个大概的数字,那么这给你一个很好的指导。如果你不能算出一个数字作为起点,那么一个真正不科学的方法是计算客户希望你建立的报告中不同图表、图形和表格的数量,然后乘以 20 或 30 分钟。当然,前提是他们希望升级现有报告,并且可以向您展示这些报告。否则你只能尽力猜测。
选择正确的方法
所以。到目前为止,我们已经详细说明了项目,并为客户进行了成本核算。现在,在某些情况下,客户可能会对费用有所犹豫或保留。在这些情况下,有一个非常简单的解决方案可以让客户放松,也让你的生活稍微轻松一些。那就是提出一个基于 sprint 的项目。
如果你不熟悉什么是 sprints,它们是敏捷项目管理方法论的一部分。基本上,你把整个项目分解成不同的连贯部分,或迷你项目。然后你在规定的时间内完成一次冲刺,然后继续下一次。显而易见的好处是,客户可以看到你的工作和你管理项目的方式,而不必一次性投入他们所有的预算。所以本质上,降低他们的风险。在第一次 sprint 之后,客户可能还想改变他们对项目某些方面的想法,如果你在整个项目中工作,这将意味着更多的时间来纠正或重新调整事情。
总的来说,双方都没有太大的压力从一开始就把事情做好,这就给项目的有机发展留下了更多的喘息空间。
事实上,我会建议一开始就向客户提出一个基于 sprint 的项目(除非它整体上不是一个非常大的项目)。这可能是他们自己没有考虑过的方法,他们可能会看到这种方法的好处。
然而,你总是冒着在短跑中搬起石头砸自己脚的风险。为什么?因为一旦你交付了第一个 sprint(比如说一个特定的仪表板)。如果客户愿意,他们可以进入该工具,在幕后查看仪表板是如何设置的。他们可能会认为这实际上并不复杂,并决定自己完成剩下的工作。尤其是如果您已经完成了构建数据源的所有复杂工作。所以这可能会让你有点受冷落,从整个项目中获得的收入比你预期的少,这可能会有点令人讨厌和沮丧。
好了,一旦所有事情都达成一致(范围、成本和时间),你就可以开始项目了。至少在一开始,定期与客户会面,介绍目前为止已经生产的产品,并澄清任何你可能无法 100%确定的细节,这总是一个好主意。当你与客户保持密切联系时,他们总是感到放心。
除此之外,你只需要继续生产可交付产品。因为你一路上都在和客户保持联系,这不像是最后的某种“大揭露”。通常更多的是确认所有需要确认的事情,并将项目移交给客户,以及任何项目后的材料。然后,客户可以检查所有内容并签署项目。
不要被卡住
这最后一步非常重要。如果委托你做的事情没有得到最终的认可,总会有这样的风险,客户会回来说,“你介意把这个额外的图表添加到仪表板上吗?”或者“我们决定改变报告中某些内容的顺序。只需要一分钟,你已经完成了工作。”说到底,你是否不介意在项目交付后做这些小的附加工作,这真的取决于你,但我相信,与其免费做这些,不如尝试与客户达成某种项目维护协议。每月或每季度的经常性费用将包括这些小的额外费用,并确保一切正常工作。对我来说,这是迄今为止更专业的工作方式。
如果你想得到我的项目说明书电子表格,这里有链接:https://mailchi.mp/vitaminbi/project-spec-doc
如果你想订阅我的频道,你可以点击这里:【https://www.youtube.com/c/VitaminBusinessIntelligence
感谢阅读!
A/B 测试测量什么?
提示:这不是大多数人想的那样
作者图片
A/B 测试是客观衡量营销支出、网站功能(如语言、视觉效果、字体)和许多其他业务流程的黄金标准。这是你在商业中所能得到的最接近“物理实验”的东西。这也是许多困惑和误解的来源。在深入 A/B 测试实际测量什么之前,让我们先讨论一下什么是 A/B 测试。A/B 测试由我们想要测试的东西的两个版本定义,版本 A 和版本 B,有时也被称为测试和控制,它们将被暴露给随机选择的参与者。这是通过将参与者随机分配到测试组或对照组来实现的。一旦分配完毕,测试组的参与者将接触版本 A,而控制组的参与者将接触版本 b。然后将测量参与者对每个版本的反应,以确定两个版本之间是否有任何差异。
参与者的随机化对于正确的 A/B 测试至关重要,因为它保证了测试组和对照组的人口统计数据在统计上是相同的。例如,假设你是一家利用电视、广播和在线搜索进行营销的企业;你正在评估再营销广告(那些在互联网上跟随你的展示广告)增加销售的潜力。你要确定再销售广告是否会增加任何增量销售额,因为把钱花在已经转化的人身上只会增加你的每次收购成本,而不会增加任何新的销售额。不幸的是,不可能找到一群不看电视和广播,并且在寻找他们想买的东西时从不使用在线搜索的人。但是如果你随机将你网站的访问者分成测试组和对照组,你最终会得到两个看电视、听广播和上网搜索的群体,他们的方式在统计上是相似的。这意味着,在一切都相同的情况下,测试组和对照组将以完全相同的(统计上)速度产生销售额。如果测试组在一个月内产生 100 笔销售,那么对照组将产生几乎相同数量的销售(例如,99、100 或 101)。测试组和对照组之间的任何差异都是随机产生的。
现在,当你对再销售广告进行 A/B 测试时,你在测试组和对照组之间引入了一个重要的区别:测试组接触到了再销售广告,而对照组没有。这意味着人群之间的唯一区别是你引入的东西:对再销售广告的暴露。过了一段时间后,你计算测试组创造了多少销售额,并与控制组创造的销售额进行比较。如果销售数量相差很大,那么你可以确信,相对于控制组而言,接受再销售广告确实改变了测试组的行为。简而言之,这就是 A/B 测试的作用。
那么 A/B 测试到底测量什么呢?根据我的经验,大多数人会说 A/B 测试衡量的是哪个版本更好。不正确。A/B 测试衡量结果是否取决于接触版本 A 或版本 B;而不是哪个版本更好。结果可能是版本 A 更好或者版本 A 更差。A/B 测试只是衡量版本 A 和版本 B 之间有多大的差异,而不是哪个更好。这是一个微妙但重要的差异(我们将在一分钟内解释它为什么重要)。从技术上讲,统计学家会说 A/B 测试决定了“你是否应该拒绝或接受零假设。”什么是零假设?这是以下简单英语陈述的一个花哨术语:结果不取决于接触版本 A 或版本 B。如果 A/B 测试结果告诉你拒绝零假设,那么它告诉你结果确实取决于你接触的版本。
但是你如何确定结果是好是坏呢?在再销售广告 A/B 测试的例子中,你看销售的数量。如果测试组产生了 200 笔销售,而控制组产生了 100 笔销售,那么你知道接触再销售广告对销售有好处。但是如果测试组产生了 50 笔销售,而控制组产生了 100 笔销售,那么你就知道接触再销售广告对销售是不利的。A/B 测试不能告诉你结果是好是坏,只能告诉你测试和控制之间的差异是“真实的”;暴露于版本 A 或版本 B 确实会影响结果。在本例中,如果测试组获得 200 个销售,A/B 测试可能会告诉您拒绝零假设,如果测试组获得 50 个销售,它也可能会告诉您拒绝零假设。在这两种情况下,A/B 测试只是告诉你你看到的差异是“真实的”,而不是随机的。你必须看结果来决定它是积极的还是消极的(这取决于上下文)。
有些人可能会认为这是吹毛求疵。当然,也许 A/B 测试并不能直接告诉你版本 A 比版本 B 好还是差,但是听起来它确实是测试的直接逻辑结果。这是真的,除非业务用户经常会问这样的问题:*那么,如果 A/B 测试表明版本 A 比版本 B 好,置信度为 99%,那么实际上版本 A 比版本 B 差的概率是多少?是 1%吗?*肯定不是!如果考虑零假设(即,结果不依赖于暴露于版本 A 或版本 B ),那么结果告诉你的是,在 100 个相同的测试中,99 个会证明暴露于版本 A 会导致与暴露于版本 B 不同的结果,但是 100 个相同的测试中有 1 个会表明版本 A 和版本 B 之间实际上没有差异。使用再营销的例子, 你可能以 99 次测试结束,其中测试组产生了大约 200 次销售(在每次测试中),但在 100 次测试中的 1 次测试中,测试组只产生了 110 次销售(相比之下,对照组产生了 100 次销售),这意味着看起来再销售广告对结果的影响非常小,如果有的话。
没有真正的方法知道“版本 A 实际上比版本 B 差的可能性有多大?”不进行实验也不看结果。有一些技术可以让你感觉到这种可能性有多大,但这不是 A/B 测试的直接结果。您可以使用的一种技术是估计参数的置信区间,但这只能在 A/B 完成后进行。例如,再次使用再销售广告的例子,假设测试组产生了 200 笔销售,而控制组产生了 100 笔销售。人们可以得到每组的人数,然后用销售额除以每组的人数来计算“销售率”。例如,如果测试组的销售率为 20%,而对照组的销售率为 10%,那么您可以计算出测试组销售率的 95%置信区间为 15% — 25%,而对照组为 6% — 14%(这些数字是虚构的)。人们会有一种很好的感觉,实际上,再销售广告不太可能让事情变得更糟。
顺便说一下,对于那些更有技术头脑的人来说,关于为什么统计测试的结果不能直接告诉你参数的真实值的正式答案是,置信区间是参数空间的一部分,而统计测试的接受区域是样本空间的一部分。
数据块是做什么的?
平台概述及其使用体验
第四十二任在 Unsplash 上拍摄的
TL;速度三角形定位法(dead reckoning)
Databricks 是一个云数据平台,旨在帮助解决以下事实:
- 随着公司开始从许多不同的来源收集大量数据,越来越需要一个单一的系统来存储这些数据
- 使图像、声音和其他非结构化数据易于访问以用于训练 ML 模型需要不同的架构方法
现在,选择自己的道路 —想了解 Databricks 这个数据平台吗?继续章节 1️⃣想跳过来看看用起来是什么感觉?跳转到 2️⃣部分
1.Databricks 平台基础
为了理解 Databricks 做什么,首先理解用于收集企业数据的系统是如何发展的,以及为什么,这一点很重要。
🤷🏽♂️数据仓库,湖泊…和湖边小屋?
在之前,我已经写过关于集中存储数据的必要性,以便最有效地利用它。数据仓库旨在将组织中不同的数据源整合在一起。
数据仓库的概念早在 20 世纪 80 年代就已经存在[1]。其想法是,来自运营系统的数据将流入数据仓库,以支持业务决策。
几十年过去了,简陋的数据仓库有一些非常明显的局限性:
- 通常没有支持 ML 用例的内置功能——即使用数据提出更多预测性问题的能力。
- 在存储和检索新的、复杂的非结构化数据格式时,它们缺乏灵活性和可扩展性。
当然,Snowflake 和 Redshift 等现代云数据仓库(CDW)的出现有助于解决内部部署产品的“可扩展性”限制。
BigQuery 中类似于 BQML 的产品特性也开始迎合数据仓库中内置 ML 功能的缺乏。
但是,它们仍然没有解决如何存储、管理和洞察当今各种各样的数据类型的难题。
图 1:从数据仓库到 Lakehouse 的演变,Databricks 网站。
继续沿着图 1 中的进化尺度,数据湖紧随其后。它们提供了一种以原始格式存储大量结构化、半结构化和非结构化数据的方法。
它们在历史上是用商用硬件(存储和计算)构建的,与某种分布式处理框架(如 Hadoop )结合使用。
问题是数据湖有成为垃圾场的趋势,因为它们:
- 缺乏轻松管理和控制存储在其中的数据的功能;有些人甚至称之为“数据沼泽”!
- 不要支持事务的概念,也不要强制执行任何类型的数据质量标准。
为了不同的数据处理目的,您可以将大量的产品附加到一个数据湖中,这很快就会造成难以管理的体系结构混乱。
➡️ 进入数据仓库
为了解决我们到目前为止讨论的与数据仓库和湖泊相关的挑战,最近的“lakehouse”概念增加了几个关键的改进:
- 数据湖的元数据层 —这是一种跟踪表格版本、数据描述和强制数据验证标准的方法。
- 新的查询引擎设计在数据湖上提供高性能的 SQL 执行,例如 Apache Spark 。
- 数据科学和机器学习工具的优化访问—这使得处理后的数据可以以适合 ML 的开放数据格式提供,从而加快了模型的实验和开发。
Databricks 旨在在一个统一的、基于云的平台上实施数据湖库概念。
图 2: Databricks 数据平台高层架构,Databricks 网站。
Databricks 位于您现有的数据湖之上,它还可以连接到各种流行的云存储产品,如 AWS S3 和谷歌云存储。
分解 Databricks 数据平台架构中的层:
- Delta Lake 是为数据湖带来可靠性的存储层。Delta Lake 提供了 ACID 事务、可扩展的元数据处理,并统一了流式和批量数据处理。Delta Lake 运行在您现有的数据湖之上,并且与 Apache Spark APIs 完全兼容。
- Delta Engine 是一个优化的查询引擎,用于高效处理存储在 Delta Lake 中的数据。
- 此外,还有一些内置工具可用于支持数据科学、BI 报告和 MLOps。
上述所有组件都紧密集成在一起,可以从一个“工作区”用户界面(UI)访问,该界面可以托管在您选择的云上—下一节将详细介绍!
2.启动并运行
我总是试图“走自己的路”,所以我决定给 Databricks 一个旋转,作为我这篇文章研究的一部分…
👩🏾💻设置
Databricks 提供了 14 天的免费试用,你可以在你的云上运行。我使用谷歌云平台(GCP),因为我对它最熟悉,但它也可以在 AWS 和 Azure 上使用。
设置很简单,在 GCP 市场快速搜索“数据砖块”就可以进入一个页面,在那里我可以注册试用。
试用“订阅”完成后,您可以从 GCP 的 Databricks 菜单项获得一个链接,以管理 Databricks 托管帐户管理页面上的设置。
图 3:数据块的 GCP 市场设置
下一步是创建一个“工作空间”,它是访问您的资产和处理数据块的环境。您可以通过外部 Databricks Web 应用程序来实现这一点,它实际上是您的控制平面。
图 4:数据块—创建工作空间
“创建工作区”这一操作基本上是在您的 GCP 项目中启动一个三节点 Kubernetes 集群,使用 GKE 来托管 Databricks 运行时,也就是您的数据平面。
这一区别非常重要,因为您的数据始终驻留在数据平面的云帐户和您自己的数据源中,而不是控制平面中,因此您保持对数据的控制和所有权。
⚠️ 小心
Databricks 试用版仅涵盖您对其平台的使用,您仍然需要为创建工作空间和运行任何作业所消耗的任何云资源买单。
⚠️ 警告
随着我们的工作空间被提供,我们被提供了一个 URL,它将我们带到一个单独的 UI 来实际使用数据块。
图 5: Databricks Workspace UI —数据科学&工程背景
您可能想做的第一件事是通过上传文件、连接到受支持的数据源或使用合作伙伴集成在 Delta Lake 中创建表。
图 6:数据块—创建表格
接下来,为了创建 Delta Engine 作业或运行笔记本来分析您的数据,您需要创建一个“集群”。
Databricks 集群是一组计算资源和配置,您可以在其上运行数据工程、数据科学和数据分析工作负载。
请注意,这至少会增加三个虚拟机、一个驱动程序和两个工作人员(最多可扩展到八个)。
图 7:数据块—创建集群
集群上的 Databricks 运行时是基于 Apache Spark 的。事实上,Databricks 中的大多数工具都基于开源技术和库。他们甚至以开源方式发布了关键组件,如 Delta Lake 和 MLflow。
🚨顶尖提示
如果您只是在自掏腰包,请确保减少“在 n 分钟不活动后终止集群”的时间,以节省您的云消耗成本。另外,如果您已经完成了试验,不要忘记删除集群和工作区。
🚨顶端提示
群集配置需要几分钟时间,然后您可以将其“连接”到笔记本电脑或将其用于“新工作”任务。
总的来说,我发现用户体验干净、直观,而且试用起来相当顺畅。
🤖数据块上的机器学习
Databricks UI 有一个漂亮的小上下文切换,这取决于用户的角色和他们想从平台中得到什么。
图 8:数据块—在工作空间中切换用户上下文
我从之前的“数据科学和工程”背景中切换出来,快速浏览一下“机器学习”提供了什么。
图 9: Databricks Workspace UI —机器学习上下文
从这里我们可以:
- 创建笔记本,
- 使用 AutoML 或
- 管理实验、特征存储和训练模型
我决定使用“钻石”样本数据集尝试一下他们的 AutoML 功能,如果您运行“快速入门教程笔记本”(见图 5),就会创建该数据集。
您必须编辑并重新启动之前创建的集群,使其成为使用“Databricks Runtime for ML”的集群,或者创建一个新的集群。
除此之外,实验配置非常简单——选择最大似然问题类型(在撰写本文时是分类或回归)、数据集、预测目标,然后开始。
图 10:数据块—配置 AutoML 实验
AutoML 功能的透明度给我留下了非常深刻的印象。我用过的一些 AutoML 工具可能有点像“黑箱”,因为你不知道具体的步骤,比如数据处理在后台进行。
图 11: Databricks — AutoML 实验进度指示器
Databricks 会自动生成一个数据探索笔记本,阐明准备步骤,如数据分析、缺失值和相关性。我觉得这很棒。
图 12:数据块—数据探索笔记本
随着实验的进行,不同训练运行的细节被添加到表格中,包括使用的模型和特定参数。
图 13:数据块— AutoML 实验运行
一旦实验完成,根据优化目标,表格按产生最佳结果的运行排序——在本例中为 RMSE 。
与数据探索步骤类似,您也可以深入到代表特定运行的笔记本中。它将展示构建模型的所有步骤,甚至包括使用诸如 SHAP 这样的可解释库来突出变量的重要性。
这是对常见的 AutoML 产品的一个很好的改进,对于那些刚接触 ML 的人来说,这也是一个很好的方法来学习以迭代和交互的方式训练一个模型的步骤。
⚖️初步印象
我从未打算写一篇全面的产品评论😅。但是我想至少说明一下 Databricks 是做什么的,并分享一下我使用它的简短经验!这里有一个总结:
设置:
我不能代表其他的云,但是在 GCP 的安装相对来说没有什么痛苦。从 marketplace 进行一次点击订阅和设置,然后所有其他事情都在 Databricks 帐户管理或工作区 UI 中进行。
易用性:
我发现用户界面干净直观。我可以轻松地执行我想要完成的任务,而不需要参考文档。
它也有一些不错的东西,如 AutoML 实验生成的数据探索和实验运行笔记本。
成本:
对我来说,当我将数据块与 GCP 已经非常强大和集成的数据科学和 ML 用户体验(如 Vertex AI )进行比较时,数据块的成本并没有真正增加。然而,并不是每个人都使用 GCP。
Databricks 不是无服务器,也没有“完全托管”选项,因此与某些云平台上的原生产品相比,准入门槛相对较高。但是我想这是不可知云的代价。
总体:
Databricks 是从数据湖到分析和 ML 的真正统一的体验。我还没有看到任何其他的东西像这样符合所有的条件。入门的成本很高,但它确实为一个古老的问题提供了一个云不可知的解决方案。
鉴于其在该生态系统中的根基,它也非常适合那些想要从更传统的 Spark 环境过渡的人。
希望这篇文章对你有用,如果有用,请分享。我也很想知道你对这篇文章的看法,所以请使用下面的评论或 twitter 联系我们!
📇参考
[1]维基百科,数据仓库,https://en.wikipedia.org/wiki/Data_warehouse#History
📚有用的资源
伦理人工智能到底是什么意思?
播客
莎拉·威廉姆斯在 TDS 播客
要选择章节,请访问 Youtube 视频这里。
编者按:这一集是我们关于数据科学和机器学习新兴问题的播客系列的一部分,由 Jeremie Harris 主持。除了主持播客,Jeremie 还帮助运营一家名为sharpes minds的数据科学导师初创公司。可以听下面的播客:
毫无疑问,人工智能伦理最近受到了很多应有的关注。但是问普通人什么是道德人工智能,你很可能得不到一个茫然的眼神。我认为这在很大程度上是因为每一个数据科学或机器学习问题都有独特的伦理背景,所以很难确定概括一大类人工智能问题的伦理原则。
幸运的是,有研究人员专门关注这个问题——我今天的嘉宾莎拉·威廉姆斯就是其中之一。莎拉是麻省理工学院建筑与规划学院城市规划副教授和城市数据设计实验室主任。她的工作是研究数据科学在城市规划中的应用,并与决策者合作,以道德的方式应用人工智能。通过这个过程,她提炼出了几个具有实际意义和可操作性的通用人工智能伦理原则。
这一集引发了广泛的讨论,从我们的意识形态如何影响我们的数据分析,到政府在试图监管人工智能时面临的挑战。以下是我在对话中最喜欢的一些观点:
- 有许多方法可以分析数据集、训练模型和解释任何数据项目的结果。因此,一个给定的数据集可以很容易地用于论证相互不相容的结论——这就为分析师、数据科学家或模型构建者的激励和先验信念留下了很大的空间,以确定对该数据的哪些解释是有利的,并最终采取行动。
- 这些激励和信念可以采取不同的形式,并由数据科学家自身的意识形态观点和经验形成。在这种背景下,我们讨论了两个不同但相关的问题:第一,科技领域的多样性问题(从种族和性别多样性的角度来看),第二,意识形态多样性问题(科技公司中进步派和保守派的不平衡)。
- 政府目前通过对当天的重大问题做出反应来监管人工智能,但随着人工智能的进步步伐不断加快,这种策略似乎不太可能奏效。相反,预期监管可能是必要的,但这将要求政府变得更懂数据,更了解机器学习和人工智能的前沿发展。
你可以在 Twitter 上关注莎拉,或者在 Twitter 上关注我
播客中引用的链接:
- 莎拉的书名叫数据行动:利用数据造福公众。你可以在这里找到它。
- 麻省理工学院城市设计实验室的网站。
章节:
- 0:00 介绍
- 1:16 思域数据设计实验室工作
- 3:27 与决策者的互动
- 7:22 拦截搜身项目
- 17:06 对城市数据分析感兴趣
- 18:25 算法偏差
- 21:41 现场多样性
- 23:00 政治思想
- 28:00 变化的速度
- 34:29 隐私问题
- 42:03 互联网上的私人垄断
- 44:32 总结
请查看下面的文字记录:
Jeremie (00:00):
欢迎大家回来。我叫 Jeremie,这是“走向数据科学”播客。现在,毫无疑问,人工智能伦理最近受到了很多应有的关注。但是如果你问普通人人工智能伦理到底意味着什么,你很可能不会得到一个茫然的眼神。现在,我实际上认为这在很大程度上是因为每个数据科学或机器学习问题都有独特的伦理背景。因此,很难确定能够概括更广泛的人工智能问题的伦理原则。
Jeremie (00:26):
幸运的是,现在有研究人员专门研究这个问题,我今天的嘉宾莎拉·威廉姆斯就是其中之一。莎拉是麻省理工学院建筑与规划学院城市规划副教授和城市数据设计实验室主任。她的工作是研究数据科学在城市规划中的应用,并与政策制定者合作,以道德的方式应用人工智能。
Jeremie (00:48):
现在,通过这一过程,她提炼出了几个可概括的伦理原则,这些原则在人工智能的背景下具有实际和可操作的意义。所以,这一集我们将会谈到这一点。我们还将对一切进行广泛的讨论,从我们的意识形态如何影响我们的数据分析,到政府在试图监管人工智能时面临的挑战。我真的很喜欢这次谈话,希望你也一样。好的,莎拉,非常感谢你参加我的播客。
莎拉(01:13):
是的。非常感谢邀请我。来到这里我真的很兴奋。
Jeremie (01:16):
我认为你正在一个服务水平低下的领域工作,这是一个数据科学领域的人们不太关心的领域,但它也是我们生活方式的基础。这是一个政府政策制定面临困难的领域,它迫使我们比其他人更直接地面对人工智能伦理问题。这就是城市规划的理念。你现在在麻省理工学院的城市数据设计实验室。首先,我想了解一下您在那里的日常工作,以及它与数据和数据科学的关系。
莎拉(01:51):
城市数据设计实验室的本质是思考我们如何利用数据来改变政策。我们做这项工作的主要方式之一是通过数据可视化和交流数据的洞察力。但为了做到这一点,显然我们必须进行数据分析。我们还建立了团队,与政府、政策制定者、社区利益相关者合作,以真正确定我们正在寻求答案的问题。做定量分析,然后把它公之于众。
Sarah (02:35):
我认为这可能是与数据科学领域其他学者略有不同的一点,即并非所有类型的分析都适用于所有人。为了真正对数据采取行动,我们需要让数据更容易获取并传达给广大公众,如新闻和媒体,以及社区成员和不同的政策团体,这些人正在做出政策决定,以便他们可以采取行动。
耶雷米(03:05):
是啊。我发现这本身就是一个迷人的想法,而且我认为这是在翻译中迷失的东西,因为这种专注于机器学习,工程,缩放,强大的人工智能系统,所有类型的技术细节。人们有时会忘记,数据科学最终必须被应用才有价值。这涉及到一个沟通的部分,就像没有它,你最终真正在做什么?
Jeremie (03:27):
在某种意义上,这让我想到了你在书中讨论的一个主题,顺便提一下,如果有人感兴趣,这本书叫做《数据行动:利用数据造福公众》。实际上,这是一项非常有趣的工作,涉及我们今天将要深入探讨的一大堆主题。但其中一个主题是,你用来看待数据的视角,做分析的人的动机通常会影响到结果,结果的建议,以及结果的洞察力。你能就此谈一点吗,然后谈谈这如何影响你与政策制定者的互动?比方说,你如何确保给那些决策者一个合理的、平衡的观点?
莎拉(04:10):
超级棒的问题。我很高兴你问了,对吧?我的意思是,我们经常把数据等同于真理或知识。这是事实,我们怎么可能有任何偏见呢?但是,当然,数据是一种工具,就像笔在纸上或颜料在画布上一样,它确实代表了有意或无意使用它的人的目标。
莎拉(04:33):
我的意思是,它对我们有很大的说服力,人们可能会将数据集推到某个特定的区域,以获得他们想要的结果。所以,当我的学生在看数据分析时,我总是告诉他们的一件事是,询问谁制作了这些数据,出于什么目的,对吗?那么,他们创建这种特定分析的目标是什么呢?他们有可能以某种方式从中受益吗?
莎拉(05:11):
数据很复杂。我们用事实创造它,当我们看到图表时,我们几乎立刻就相信了它。所以,就像,也许更多地审问它。然后我告诉数据科学家的一部分是询问你自己的目标,对吗?你可能没有意识到你正在试图做什么来说服人们,因为当你把你的算法放在一起时,你会带着它,这对许多人工智能模型来说是真的,它们充满了我们所有的偏见。因此,要真正地询问这些偏见,以确定它们可能会产生什么样的危害。
耶雷米(05:52):
是啊。很有意思。像数据科学这样的任何类型的高维问题中的一个隐含问题是过度拟合是一个问题。你有这么多的数据,我想,我不知道这是不是马克·吐温说的,但像你这样的人可以用统计数据证明一切,除了事实。差不多就是这样。
莎拉(06:11):
我喜欢这句话是马克·吐温说的。
Jeremie (06:16):
我肯定我在某种程度上破坏了这一点,但你有所有这些虚假的相关性,这是一个层面。这就像一个事实,如果你仔细观察,你会发现鞋带的价格与过去 10 年或类似的时间里天空中的云量相关。但是还有一个单独的问题,如果你打算做一个特定的案例,你实际上有效地 P-hack。我的意思是,这是你所描述的,还是在更广泛的学术界类似于 P-hacking 的东西?
莎拉(06:47):
是的。我的意思是,当然你可以添加尽可能多的变量,可以得到你想要的回归分析,所以真的要质疑。但我也认为你提问的方式也可能会无意中造成伤害,或者你应用数据的方式。我只是在想,同一个数据集可以有两种不同的用途,甚至是两种不同的目的。
莎拉(07:22):
我在想我们在书中谈到的一个项目,即查看 stop 和 frisk 数据。最终,纽约市警察局公布了拦截搜身数据,这是一份公开记录,美国公民自由联盟对其进行了分析,发现警方确实过度压制了非裔美国人和西班牙裔美国人。因此,我们能够对此进行数据可视化,以证明该政策在种族貌相方面存在严重问题。
莎拉(08:07):
但是在警察局的另一边,同样的数据集被用于种族貌相,对吗?因此,他们使用这些数据和分析来确定要去的区域,进行更多的拦截和搜查,在美国公民自由联盟进行这些数据可视化后,这在美国被视为非法搜查和扣押。所以,我认为这也是你使用数据集或进行分析的角度?对吗?
莎拉(08:36):
所以,一方面,警方利用它来思考针对特定社区的策略。另一方面,美国公民自由联盟将其颠倒过来,并将其作为揭露种族主义行为的一种方式。所以,这只是考虑做分析的人的目标。
耶雷米(08:59):
在你自己看来,你是如何分析出其中的相关因果关系的?例如,我想,这是这个领域的一个常规辩论。有些人会说,“嗯,这些社区因为他们的种族,或者他们的肤色,或者他们的人口特征而成为目标。”有人说,“那里的犯罪率更高。这就是为什么你需要更多的警力。这就是为什么会发生这种情况。”所以你基本上有一个反馈回路。我并不是说反馈循环是可取的,但这至少是这方面的论点。你如何将这两者分开,并在上下文中寻找原因和结果,而不是没有关联?
萨拉(09:34):
是的,我的意思是,我认为这项政策明确针对少数族裔社区,是的,也许这些社区的犯罪率更高。但事实是,他们有特定的目标…也许我要退一步说,我认为警方数据的一个特别之处是,他们经常去有更多犯罪的地方,但他们没有考虑它背后的系统性问题,例如可能缺乏职业培训计划,或更好的教育系统,或更好的社会服务。
萨拉(10:20):
所以,我也认为,当我们查看这些数据集时,思考为什么这些社区可能有更多的犯罪也是一件重要的事情。所以,我发现使用警方数据来说,“哦,我们有一个热点。现在,让我们去那里,并把更多的警察,“有问题,因为它实际上并没有解决问题。更确切地说,问题是许多社区持续的贫困导致了这些犯罪的增加。
耶雷米(10:52):
这很有趣。这就好像有一个单独的步骤,好的,我们有这个可视化,它似乎邀请我们跳到一个特定的结论。但是还有一个额外的步骤,几乎是决策说,好吧,相关性不一定是因果关系。这里可能会有一个更有趣的故事。
撒拉(11:08):
正是。
耶雷米(11:09):
让我们看看。是啊。有意思。
撒拉(11:12):
对。我们不经常讨论因果关系,对吧?就像我们说的高犯罪率,所以去那个社区。但实际上是什么导致了那些街区的高犯罪率却很少被提及。
耶雷米(11:26):
所以,我对人类的失败模式很感兴趣,这种模式让我们看到我们的外部群体以非理性的方式思考。举个例子,在这种特殊情况下,对吗?很明显,有一群人会说,“哦,那里的犯罪率很高。我要进去把它踩出来。”
耶雷米(11:49):
然后另一组人可能会看着它说:“哦,好吧。这是你不怀好意的表现。”所以,很有趣的是,在我看来,就像你在书中描述的那样,镜片非常重要。你可以看着同样的过程,同样的数据,然后说,“哦,这是一个完全不同的故事。”
撒拉(12:11):
对。绝对的。是啊。我的意思是,这就是数据分析的棘手之处,也是为什么我认为随着时间的推移,它被用于好的和坏的目的,更简单地说。所以,这是我在这本书的最后,谈论的七个行动数据的原则之一。第一件事是真正质问你做分析的原因,以及它是否可能对任何人造成伤害。
莎拉(12:42):
所以,我认为对于警察部门来说,我真的希望他们能考虑一下以这种方式使用数据会有哪些意想不到的后果。我认为,不幸的是,数据驱动的警务现在在我们的社会中是如此根深蒂固,以至于很难真正改变这种想法。但我认为,最近夏天的对话确实有助于努力突出这一点。
萨拉(13:15):
所以,这些关于解除警察经费的对话是在谈论将警察经费转移到社会服务中,对吗?这是同一个论点。看看系统的问题,而不是我的…如果我们能够思考如何帮助人们摆脱贫困,我们可能真的能够做一些事情。我真的被一些事情所鼓舞。我的意思是,我不认为我们有必要解除对警察的资助,但我认为应该把钱分配到这些系统性的原因上,而不是仅仅派警察去这些相同的社区。
萨拉(13:53):
我们一遍又一遍地做同样的事情,这不就是疯狂的定义吗?所以让我们想一个新的系统。我也喜欢这些数据如何把你带到那里,因为它可以告诉你那些社区需要帮助,就像它告诉你它们有高犯罪率一样。
耶雷米(14:10):
是啊。令人着迷的是,当我们看到一个可视化或一个情节时,它几乎就像是我们进行更深层次分析的责任的一部分被抽象掉了,我们看着它,我们就像,“哦,有…”回到同一个例子,“有一个热点”。因此,让我尽我所能画出最直接的因果模式或故事的直线。”
耶雷米(14:35):
我想象这种情况正在各地发生。我是说,我在我的公司里亲眼见过,对吧?我们会看到一些使用模式,就像,“哦,不。人们不注册或一些可怕的事情正在发生。”你妄下结论,结果发现你完全错了。你如何建议人们开始审问这个思维过程?我的意思是,有没有具体的步骤可以让人们后退一步,并努力确保他们正在这样做?
撒拉(14:58):
是啊。我很高兴你问了这个问题。这也是我在这本小册子中谈到的原因之一,将团队聚集在一起,实事求是地对待你的结果,而不是实事求是地对待你的结果,做实事求是地对待你的结果。我的意思是,实际上看到你所说的是真的。但我认为社区成员、政策专家或该领域的利益相关者会关注你的分析是否真实。我几乎总是发现,当我第一次做分析时,当我把它带给一群人时,他们会说,不,不,不,不,你没有看到它的这个方面。这是这样的。
莎拉(15:40):
所以,我认为这种编辑过程非常重要,特别是在政策领域,因为总有一个盲点,我们可能会忽略,而这个盲点非常有帮助。我认为在过去,在 50 年代和 60 年代,当我们在城市规划中大量使用数据时,我们确实只是做直线,某种程度上,穿过城市的最有效的方法是建造穿过这个社区的高速公路。这是直线,这是数据告诉我们的。我们没有考虑到所有其他种类的,比如说,副作用。如果我们把这些分析带到社区,询问他们对它的看法,我想我们可能会得到,比方说,一个更微妙的高速公路系统。
耶雷米(16:32):
是的,不,我相信在很多领域都是如此。当我们定义问题时,在优化方面留下的东西太多了,这很可怕,我想这是关于狭义地定义问题,或者至少有,这就像用一个太有限的功能集来表示世界。我们说这就是问题所在。这些是重要的特征,不管我的模型怎么说,这是告诉你自己,“好吧,我有一个损失函数,”或者,“我有一个优化函数”的能力。只要这个数字上升,我就很高兴。如果不行,我就不行,这就是故事的结尾。”有点冒险的生意。
莎拉(17:06):
是的。我的意思是,这让我感到害怕,因为有这么多伟大的人对城市数据分析或政策数据分析感兴趣,但可能不精通城市问题或其他类型的政策问题。所以,他们可能会想出这个优化问题的答案,却没有意识到有人已经在过去做过了,结果出了岔子。
莎拉(17:33):
所以,这也是为什么我认为数据科学家总是与该领域真正的专家配对,帮助他们编辑和验证他们的结果是如此重要。但是,是的,我们不希望历史重演。
耶雷米(17:54):
现在,在分类账的另一面,我想我看到了这个有趣的讨论。事实上,我在 Twitter 上看到过 OpenAI 和 OpenAI 政策团队之间的对话。我想阿曼达·阿斯克尔最近在推特上提到了这件事。我认为这是一个有趣的观点。她强调了这样一个事实,即也有一种趋势,即找到一个反对特定系统的道德部署的论点,并利用该论点的存在来含蓄地完全驳回该部署。
耶雷米(18:25):
所以先验地说,“好吧,这个算法有某种形式的偏见,”或者“不可避免地,所有算法在伦理上都有某种缺陷,因此我们不应该部署它。”你认为平衡日志的方法有哪些?你如何决定,道德上的负面影响是否大于正面影响?显然这是一个复杂的问题,但是你会如何开始考虑它呢?
萨拉(18:51):
是的,我的意思是,我认为这是一个很好的问题。自从蒂姆尼特·格布鲁被谷歌解雇后,我一直在思考这个问题。我认为谷歌内部有一个道德团队真正酷的地方是真正找出你的偏见所在,并纠正它们,或试图纠正它们,或解决它们,对吗?而不是把它们扫在地毯下,让某人进去内部调查你的工作道德,这只会让你成为一个更好的公司,因为你在未来会做出更好的算法。
萨拉(19:35):
所以,你要朝着那个目标努力。我认为数据分析是一个迭代的过程。我们从来没有第一次做对。对吗?这是我们的基础。所以,我相信,我们可以在这些经验的基础上创造出更有道德的人工智能。所以,我真的很惊讶,很明显,那里有很多政治,我肯定还有其他事情。但是我认为脸书和谷歌会做出更好的产品,如果他们有人质疑他们的道德的话,因为这样他们就可以回头让它变得更道德。
莎拉(20:18):
所以,我想这是一种冗长的方式来说,我认为我们可以朝着它努力,但我们应该不断地询问我们的工作。
耶雷米(20:31):
你是如何看待那种,我想你在书中提到了它,你使用了意识形态的语言,这很有趣。所以,我们数据分析的意识形态,我认为这是一个迷人且完全正确的看待它的方式。因为那真的是…我们都被我们的意识形态所控制。我们都有一个自己的版本,我们进入时是无意识的,不是分析性的。这就是群体思维等等。
耶雷米(20:54):
你认为像谷歌这样的公司是否存在持续的问题。你有一定数量的人以某种方式思考这个问题,我的意思是,特别是人工智能伦理。我的意思是,我认为公平地说,这是一个领域,例如,有不成比例的人会从亲技术的角度思考。就像,你会叫它什么?就像技术加速主义者,可能更,比如说,更面向社会之类的。
耶雷米(21:27):
你认为在这个领域本身的层面上有没有问题,在处理这些问题的方式上,它需要考虑更多的意识形态多样性?如果是的话,我的意思是,据你所知,有没有积极的措施朝着这个方向发展?
撒拉(21:41):
我的意思是,完全正确。我想你说对了。没错。这不仅仅是质疑算法的道德,而是确保在这个领域有不同的人在工作。特别是,确保少数群体 BIPOC 小组在这个领域开展工作,以带来…因为我确实认为技术领域一直被一种意识形态观点所主导,这种观点可能对数据中存在的所有不同的人并不总是那么敏感,对吗?因为所有的数据都代表人。当它分析一类群体时。
莎拉(22:32):
所以,这就是为什么像黑人生活数据这样的组织开始出现,他们正在想办法确保我们在这个领域的多样性。超级重要。我认为这也有助于我们质疑算法,但创造和产生从一个非常不同的角度看待数据集的新方法,也许也是从那些边缘人的角度。
耶雷米(23:00):
你也从政治意识形态的角度来考虑这个问题吗?我的意思是,以硅谷为例,从历史上来看,这是一种常见的抱怨,你会在很多场合听到,你怎么称呼它?国会的科技听证会。对吗?所以,典型的共和党参议员或众议员会说,“嘿,脸书缺少保守派。”在脸书工作的人中,左翼人士和思想更加自由的人占了压倒性的多数。
耶雷米(23:30):
这是一个不同的轴,对不对?我们有这样的想法,是的,一个单一种族或一种种族的大多数,一种在这些公司工作的自然人。然后我们有意识形态的差异,硅谷的一个很大的差异是,如果你看看民意调查,压倒性地倾向于一个方向而不是另一个方向。你认为这也是值得解决的问题吗?还是你认为这是另一个问题的一部分?
萨拉(24:02):
嗯,我是说,我认为这是个好问题。我认为,至少在政治领域,我们已经看到保守派和共和党在选举中以同样的方式平等使用数据。我的意思是,剑桥分析丑闻就是一个很好的例子,就像保守派真的在部署数据。有些人可能会说剑桥分析与脸书有太多联系,他们真的在为那个特工工作。当然,马克·扎克伯格会说,“嗯,这些是脸书以外的人,他们基本上是在发展,保守的广告,保守的目标。
萨拉(24:56):
所以,我想说我不确定我是否完全同意这是一个完全自由的领域。或者更好的说法是,我绝对认为他们为我们两党的目标而工作。有些人可能会说,他们更倾向于保守派,而不是更倾向于自由派。
耶雷米(25:26):
是的。我的意思是,这是一个有趣而复杂的领域。我对这两个职位之间的映射很感兴趣,人们会说,“嗯,这归结于组成组织的人。”如果这些人有特定的观点,不管是因为肤色、性别还是政治意识形态。我对这些不同的轴之间的区别很感兴趣,我们应该注意和谨慎,显然这是一个复杂的问题。
撒拉(25:55):
是啊。我的意思是,这很复杂,因为我认为在一天结束时,脸书,谷歌,他们的上帝是钱,对不对?赚钱。
耶雷米(26:07):
优化函数。
莎拉(26:09):
他们有钱,对吧?所以,我认为他们会把自己卖给出价最高的人,不管他们现在是自由派。但我同意,这些公司里可能有更多的自由主义者。但同样,我认为他们经常朝着其他目标努力,而这些目标可能不在此列。我想说,共和党人系统地使用数据已经有很长时间了。甚至我会说,自从第一次人口普查在 70 年代出来,他们看到了这个数字普查。
萨拉(26:44):
实际上有一个叫托马斯·霍弗勒的人,他基本上重新划分了美国的大部分地区,并且从早年开始一直是共和党重新划分选区的负责人,他系统地使用数据来推动国会选区向共和党多数派靠拢。他经常被称为不公正选区划分的米开朗基罗,因为他非常擅长移动这些数据集。但是,人们经常谈论奥巴马的当选归因于他非常热衷于使用数据分析来瞄准可能没有投票的新人口。所以,我的意思是,你的问题更多的是,我在思考我们使用的数据的意识形态观点。但是
耶雷米(27:40):
我认为你说的也很有道理。这是一种神奇的力量,它可以进入任何…就像我们必须小心使用它一样。是啊,实际上与此有关。现在,我确实想问一下你的互动,事实上,和政策制定者的互动,因为我猜你已经和他们中的一些人谈过这些问题,具体的道德问题。
耶雷米(28:02):
所以,我有一个问题。我们谈论政策。我们谈论政府。我不会把政策和政府联系在一起的词是速度。我不倾向于考虑快速,快速的反应。在这样一个世界里,我们看到 GPT 3 号即将发射,GPT 4 号也即将发射,谁知道其他地区接下来会发生什么?随着时间的推移,我们越来越多地拥有这些能力。变化的步伐正在加快。我想,在政策领域,你对响应时间有什么看法?你的体验是不是速度确实比较慢?我错了吗?我很可能是。
萨拉(28:37):
是的,不,政策绝对是缓慢的,因为它会削弱不同的派别,让人们加入你的团队。仅仅是向人们推销你的特殊观点或想法就有很多工作要做。所以,我认为政策工作总是需要很长时间,我认为这是因为需要建立这种关系。
萨拉(29:17):
我认为人们也在谈论政府内部进行这些数据分析的速度。我认为,特别是彭博,我知道他在纽约市真的花了很多…他是一家数据公司,所以当他成为市长时,他真的想创建这个数据分析团队。他非常成功地帮助部署和使用数据来帮助政府的许多领域,但仍然经历了这种基于政策和政治的障碍,这种障碍将永远存在。
莎拉(30:00):
我认为数据分析只是其中的一种工具,对吗?我们可以利用它。它真的有助于让我们相信某些策略和想法。它可以说是政策分析师的工具。我希望我正在做的是,我是麻省理工学院城市科学项目的负责人,这是计算机科学和城市规划的结合,是教规划者和政策专家做他们自己的数据分析,并且能够…如果我们有更多的政策制定者可以自己做这些,也许我们可以加快一些进程。但是我认为不管这些,比如说,建立关系的东西会存在。
耶雷米(30:46):
这很有趣。这说明了问题的架构,让政府决策者真正开始为自己利用这些工具,而不是,我猜,让外部顾问进来告诉他们,“嘿,我看了数据,这是图表。”希望这有助于他们在内部证明这一点。这就是他们有这种灵活性的想法吗?
莎拉(31:05):
是的。他们能做到,甚至能读懂顾问在做什么,对吗?因为顾问有时并不关心选民,或者顾问并不…所以,学会做数据分析,也许他们不做,但他们知道如何更快地评论这项工作,并询问它的准确性。
萨拉(31:29):
但我看到,即使在过去的 10 年里,许多城市规划者也知道如何使用绘图软件和计算机绘图软件,这些软件过去需要交给技术人员,现在他们可以非常快速地绘制这种社会人口统计地图。即使在 COVID 的领导下,我们也看到了很多工作在进行,看看哪些社区被边缘化了,哪些没有。许多工作正在公共卫生部门内部进行,这些部门现在也有统计专家。
耶雷米(32:01):
是的。这似乎是一件非常重要的事情,让政府在这方面更加灵活和宽松。我想这也是一个挑战,首先要接近他们,让他们相信,“嘿,这是有价值的。”因为你面临冷启动问题,不是吗?我的意思是,你去找政府,你说,“嘿,你有一堆数据。它可以发挥杠杆作用,用于一系列伟大的事情。”但是政府,我想,可以理解,会说,“哇,哇,别碰我们的数据。之前你需要向我展示价值。”但是你之前不能向他们展示价值,因为你没有数据。当你开始从事这些事情时,这是一个循环吗?
撒拉(32:35):
是啊。你所说的有趣之处在于,我们经常假设政府拥有大量数据,而实际上,通常他们并没有。他们试图从谷歌、脸书和推特等私人公司获取信息。他们需要购买的其他数据集就像房地产投资公司。所以,我认为政府很乐意在数据分析方面做这件事,然后想办法与一些私人组织合作,以便能够进行他们想要的分析。
莎拉(33:10):
想想房地产的价值。这些数据集是由私人公司创建的,但对于理解这座城市的动态和经济动态性质非常有用。所以,我认为城市很难支付这样的数据集。为什么我不说,并不是所有的部门都是数据贫乏的,像警察局有大量的钱来购买这种数据,因为我们为此分配了大量的资源。
莎拉(33:46):
但有趣的是,他们并没有与规划部门分享这些信息。不管怎样,我们又回到了政治上。对吗?但我还想说,我认为另一个原因是,比方说,城市无法启动这些分析是因为他们没有内部人员来推动这些工作。我确实看到,我们开始看到城市更多地尝试这种方式。彭博是其中之一,费城和波斯顿有一些小团队,他们试图在内部进行真正的实验,并建立这种过程。但这是我们需要建立的东西。
耶雷米(34:29):
我想考虑到城市和政府也有访问非常隐私的数据的潜在特权,隐私在这里成为一个真正的问题。在一个城市、州和国家最终会越来越多地部署这种东西的世界里,你如何看待隐私的演变?
撒拉(34:46):
是啊。再说一次,关于隐私问题,我认为政府确实有很多我们的私人数据。我认为他们实际上有很多,比如说,法律来帮助维护隐私。我认为我们没有相关法律的地方在于这些私营公司拥有的数据。我们签字放弃我们所有的隐私,然后他们可以利用这些数据做很多事情。
萨拉(35:12):
我想大概一年前在《纽约时报》上,他们有一篇关于你可以买到的所有手机数据的文章。你甚至可以知道人们在白宫或五角大楼的什么地方。这是一个很棒的故事,因为你可以从第三方经销商那里买到这些数据。他们没有给我们你的观点本身,或者这是约翰或杰里米。但是你可以很好地跟踪人们。
萨拉(35:42):
这些数据根本没有受到监管。目前还没有隐私法。我认为这是我们没有注意到的巨大差距。对吗?我们总是谈论什么是政府…政府有很多法律,所以他们经常从私营公司购买这些数据集。而且它有严重的隐私问题。
萨拉(36:09):
所以,我认为另一种解释是,我们要求私营公司进行自我监管,但这样做并不符合他们的最佳利益。对吗?当他们的业务建立在我们所有的数据之上时,他们为什么要这样做。另一方面,政府应该进行监管,但他们没有这样做,因为他们可以购买数据,不受监管对他们有利。
萨拉(36:36):
他们还说这推动了商业发展。因此,在这种僵局中,我们对我们的隐私有一些严重的担忧,因为这些团体中没有一个致力于思考这个问题。所以,这就是我真正认为数据中介的角色发挥作用的地方。我认为我们需要有一个团体,组织来帮助制定更多的目标和隐私标准,为隐私法游说。
莎拉(37:08):
以及如何将私人数据用于公共利益。如果政府确实想使用这种非常详细的点,这个数据集,他们能把它聚集到一个你不能识别某人的点,然后它可以更有用吗?因此,我认为这是我们未来将会看到的东西,这种私人组织和政府之间的中介的想法有助于维护数据集的隐私。
耶雷米(37:39):
这是一个非常有意思的想法,尤其是在 2000 年,我不知道我是什么时候加入脸书的,我认为隐私问题会越来越多。2008 年或 2009 年,我泄露了一大堆我的私人信息。当然,2008 年,2009 年大概是 AlexNet 出来的三年前。突然间,我们有了可靠的可以识别人脸的计算机视觉。
耶雷米(38:04):
在我知道机器学习可以从我的数据中提取如此多的见解之前,我就把我的数据给了脸书。所以,这甚至不仅仅是我同意放弃我的数据,这是我含蓄地同意脸书或其他任何人,做任何技术和时间允许的数据。这似乎是普通消费者不喜欢的事情,政府必须更有远见,成为某种中介。在这种情况下,它也开始变得有意义了。
莎拉(38:34):
是的,绝对是。我的意思是,我认为还有一个问题是,技术的发展速度往往超过政府的速度。毫无疑问,关于脸书的听证会是国会议员不了解其运作的基本方式的一个例子。所以,我认为这也是这些中介变得重要的地方。他们正在教育我们的政策制定者他们需要解决的问题。试着以你所说的方式更有前瞻性。
萨拉(39:08):
但这也是为什么我认为当我们处理数据时,我们必须提出自己的道德实践标准,因为在这段时间里,政府不会保护我们,而公司正在尝试新事物。因此,我们需要思考超出我们自身用途的道德规范。因为这是前所未有的新事物。对吗?
耶雷米(39:36):
对于像这样的应用,我提到了面部识别的事情。我的意思是,感觉我们的机器学习能力一直呈指数增长,我觉得我们应该期待他们这样做。我们可能会到达这样一个点,即技术在公司内部开发和最终由政府监管之间的时间差是可能会发生非常糟糕的事情的时间。
耶雷米(40:03):
你认为我们会走向这样一个世界吗?在这个世界里,政府不得不,比如说,制定前瞻性的法规,甚至强制对计算机基础设施进行瓶颈控制,比如让 KYC 了解你的客户之类的法规,强制 AWS 说,“好吧,你想用我们的服务器做什么?那是什么来着?你想用它们做什么?”在他们允许之前?你认为这是我们的长期目标吗?
萨拉(40:31):
是的,我的意思是,我看不到这一点,因为我看到有人说这会阻碍创新。我确实认为我们需要制定更多的,比如说,规章制度,就像我们对,比如说,电力所做的那样。因此,它的使用方式、分发方式或数据分发方式。我肯定地认为,有一套特定的规则需要沿着这些路线制定到位。
莎拉(41:13):
也因为我认为政府绝对必须这样做,因为现在私营公司比他们拥有更多的数据。众所周知,数据就是力量。所以,在某种程度上,这些机构正在成为许多领域的管理机构,对吗?因为他们树立了实践的标准。制定实践标准的不是政府。所以,我确实认为这种,这可能是你想说的,就像,制定一些实践标准,政府说要在这个国家运作,你至少需要遵守这些道德标准。我认为这对于确保公众安全至关重要。
莎拉(42:03):
真的是因为当私营公司真的在运营一切的时候,我不知道你是否…当谷歌宕机发生的时候,我这周在网上。我不知道你是否在线。
耶雷米(42:17):
是的,我想知道是不是……所以,我用超人作为我的电子邮件,很抱歉让大家听到。我讨厌成为另一个超人。但是我的超人倒下了。我想弄清楚到底发生了什么。然后我去了 Gmail,我说,“哦,Gmail 坏了。哦,我的上帝。”后来就严重了。
撒拉(42:33):
对吗?我的意思是,他们运行我们的基础设施,这就像这些垄断,这真的很可怕。我在非洲做了很多工作,最疯狂的是,那天早上我们在内罗毕接到一个电话。我们实际上正在内罗毕建设基于社区的无线基础设施。但是我们整个团队都被封锁了,因为谷歌在非洲操作许多交换机。
撒拉(42:57):
因此,欧洲大陆的许多地方陷入黑暗。我的意思是,我们也陷入黑暗,但它让你意识到它们是我们日常基础设施的一部分,是政府过去运营的东西。我的意思是,政府从来没有运行互联网,但同样的方式,我们有其他类似的道路等等。这就是为什么我觉得它在那方面很像电。这是公益事业。我们每天都依赖电力。我们依赖互联网。这是一项公益事业。我们需要它来维持我们目前的生活。
莎拉(43:37):
所以,我认为采取更多的措施来保护我们是绝对重要的。
耶雷米(43:49):
好吧,希望我们能解决这些问题。我相信,当它到来的时候,你也会成为这一努力的重要组成部分。
撒拉(43:53):
是啊。我的意思是,我认为这就是我们现在看到这些垄断案件出现的原因。对吗?
耶雷米(44:00):
耶。这也很有趣,因为现在有很多关于什么是垄断的问题?当你看着亚马逊,他们会说,“哦,我们在所有这些不同的领域只有 40%的市场份额。”但是你看起来像,是的,它是所有这些不同的区域。我的意思是,你可以在一个地区降价到另一个地区。因此,无论如何,你必须重新定义垄断的潜在含义。
撒拉(44:23):
是的。是啊,基本上。
耶雷米(44:23):
好的,谢谢你全面的谈话。我想没有什么话题是我们没有触及的。如果有人对你们感兴趣,我想再次推荐这本书,顺便说一下,各位,这是《数据行动:利用数据造福公众》。这是这本书的名字。但是你能分享你的推特账号或者其他网站吗?
莎拉(44:43):
是的,当然。你可以在 data see 找到我,所以 data see,我的首字母。但也是缝纫吧,我猜。看看 civicdatadesignlab@mit.edu 的市民数据设计实验室网站。
耶雷米(44:59):
真棒。莎拉,非常感谢。真的很感激。
萨拉(45:03):
是啊。非常感谢邀请我。很高兴和你聊天。
公平是什么意思?衡量和理解公平
值得信赖的人工智能
让我们将公平从抽象的目标转化为机器学习模型的现实。
机器学习在面部识别和在线广告等应用中无处不在——然而,这些 ML 模型中的许多都显示出无意和有害的种族和性别偏见的明显证据。因此,机器学习系统中的公平性是当今的一个热门话题。获得人工智能效率优势的企业也必须特别小心和专业,以确保他们的模型是准确、可信和公平的。
很难准确定义“公平”的含义。从根本上来说,公平需要对公平平衡的渴望。由此,自然会出现这样的问题:我们要在谁之间实现公平?公平是指群体之间总体上的平等结果吗?还是个体之间?我们如何在数学上将“公平”定义为一个量?
在实现现实世界模型的公平性时,我们确定了三个关键原则:
- 重要的是要考虑个人和群体的公平观念。
- 公平不仅仅是一个衡量标准。公平是(a)的工作流程识别偏差(两个或两个以上群体完全不同的结果);(b)执行根本原因分析以确定差异是否合理;以及©采用有针对性的缓解策略。
- **公平性指标不是一刀切的。**使用公平指标的分类法,我们可以挑选那些最适合当前特定场景的指标。
在这篇博文中,我们将讨论如何将公平从抽象的目标转化为机器学习模型的现实。
个人和群体的公平观
通常,公平被认为是一个在两个群体之间实施的概念。一个被广泛引用的例子是 ProPublica 对 NorthPointe 公司提供的犯罪风险评估的分析。ProPublica 对 NorthPointe 预测的评论显示,与白种人相比,预测被监禁的人是否会再次犯罪的算法对非洲裔美国人有偏见。该算法错误地将黑人被告标记为未来的惯犯,其错误识别白人被告的比率几乎是白人被告的两倍。白人被告更经常被错误地认定为未来犯罪的风险较低。
这种公平的概念作为群体之间的一个概念,可以进一步阐述,以分析子群体。例如,麻省理工学院的研究人员表明,主要技术提供商的面部识别软件在分析深色皮肤女性的图像时会有明显更高的性别识别错误,这表明了性别和肤色交汇处的子群在模型有效性方面的差异。
群体公平至关重要,但这也只是难题的一部分。回想一下苹果卡的调查,在卡发行后不久,女性声称她们获得了较低的信用额度,甚至被拒绝使用苹果的信用卡,而她们的丈夫(他们与他们混合了资金)却被接受了信用额度,通常是较高的信用额度。在这种情况下,算法的个体公平性受到质疑。在这种情况下,我们希望通过比较各种具有相似特征的男性和女性来衡量批准算法的公平性,而不是看该模型是否在群体层面上存在歧视(女性对男性),而是看它是否专门伤害了具有相似财务特征的个人(在这种情况下是配偶)。这种类型的分析,由 Dwork 等人创造的个体公平性,试图确保相似的个体被模型以相似的方式对待。
苹果卡的情况也是一个例子,公平和人工智能的另一个大挑战,模型可解释性,是不可分割地联系在一起的。不仅财务状况相似的个人似乎有着大相径庭的结果,信用卡的发行者苹果和高盛也无法快速简单地解释算法是如何工作的,为什么它会产生完全不同的结果,以及这些结果是如何证明的。感知到的不公平和无法解释一个模型会产生严重的后果。在开始发行信用卡的短短几个月内,苹果和高盛发现自己受到了金融监管机构的调查。
根本原因分析和明智的缓解措施
假设我们建立了一个信贷决策模型来决定个人是否应该获得贷款。该模型基于不使用任何特定人口统计特征(如性别或种族)的数据进行训练。然而,当事后评估结果时,可以看到该模型发现支持率和种族之间存在轻微的相关性。这是一个不公平的结果吗,因为该模型通过其他变量,如邮政编码或姓氏,来构建种族的代理?或者这个结果是合理的和公平的,因为模型使用了一组合理的特征,并且恰好存在相关性?
重要的是,通过根本原因分析彻底调查任何可能的不公平。利用像 TruEra 这样的人工智能质量解决方案,其中包括公平性分析,模型构建者不再对模型或数据的底层问题视而不见。深入研究这种差异的特征级驱动因素对于确定模型的行为是否合理至关重要。地理数据推动了特定种族人口的高接受率吗?还是模型以合理的方式使用了像收入这样的特征,但恰好收入与种族相关?通过执行根本原因分析,将抽象的公平性指标与模型及其输入数据联系起来,数据科学家或业务主管可以确定模型的决策是否合理,如果不合理,从哪里开始缓解流程。
选择一个组公平性度量
公平是一个敏感的概念。决定用哪种群体公平指标作为模型的基准,就定义了我们所向往的世界。我们是否希望确保男性和女性获得完全平等的机会?还是相反,我们想要确保被模型接受的不合格者的比例在性别上大致相等?这些细微的差别对一个模型的公平性有着巨大的影响,使得度量标准的选择成为一个必要的和有意的行为。
虽然有几十种公平指标的定义在某些情况下可能都是有效的,但出于本文的目的,我们将缩小一点,简要谈谈这些公平指标如何描述不同的理念。
一套内在对立的世界观是所见即所得(所见即所得)和我们都是平等的 (WAE)区别。让我们考虑一下 SAT 分数的情况。所见即所得的世界观假设观察(你的 SAT 分数)反映了完成任务的能力(在学校表现良好),并认为这些分数非常有助于预测大学的成功。然而,WAE 的世界观可能会断言,由于社会原因,SAT 分数存在结构性偏差,平均而言,所有群体都有同等的能力在大学里取得好成绩,即使我们无法通过 SAT 分数观察到这一点。如果你相信所见即所得,那么一个完全准确的模型必然是公平的,因为它将与你手头的标签/观察相匹配。相反,WAE 的信徒会试图确保结果在群体中的平等分布,不管他们观察到的标签是什么,因为在他们看来,准确性并不需要公平。
在 WAE 和 WYSIWYG 之间有一个滑动的尺度,许多度量标准位于这两个对立的公平概念之间。这两个阵营之间有一种天然的紧张关系,因为两者不可能同时得到满足。在现实中,公平指标通常是不相容的。明智的做法是后退一步,而不是盲目地将一个模型与各种公平指标进行对比。对于您的问题,您认为什么目标是“公平”的?哪一个公平指标能够体现这一目标?这是一个有意的、通常也是困难的选择——在考虑端到端公平工作流时,这一点极其重要。
把所有的放在一起
在这篇博文中,我们讨论了创建全面公平工作流以确保更公平的机器学习模型的三个关键点。为建立更好更值得信赖的模型干杯!🍻
Russell Holz 对本文有贡献。
学数据科学到底意味着什么?
你什么时候结束?
本·怀特在 Unsplash 上的照片
2019 年初,我看了一场 TED 演讲,让我对数据科学产生了兴趣。一位教授在谈论他的一个学生,他使用机器学习来生成歌词。
那是我学习旅程的开始。已经两年半了,我几乎每天都在学习新的东西。我一直在学习数据科学,就像世界各地成千上万(甚至更多)的人一样。
但是,学习数据科学到底意味着什么呢?
数据有什么好的?
我们首先需要了解我们可以用数据科学做什么。这肯定会是一个很长的列表,我们需要页面来解释数据科学的范围。
数据科学可以有许多不同的定义,但我最喜欢的一种是数据科学使用数据创造价值。价值的形式可以是改进流程、预测性维护、需求预测、评估 x 射线图像等。
如果我们能够以系统的方式收集数据,数据科学提供了创造价值的潜力。因此,令人惊讶的是,第一个要求是收集数据。
然后呢?
原始数据通常不是最合适的格式,而是经过某种形式的处理。原始数据的大小通常很大。因此,我们需要软件工具来传输和处理它。
所需的工具会根据您希望保存数据的方式和位置而变化。另一个关键的决策点是如何访问存储的数据。
一旦您已经准备好正确有效地维护数据,就该将它转化为价值了。这就是算法和统计发挥作用的地方。
统计学让我们理解和探索数据。从数据中获取有意义的见解,对于创建强大而准确的产品至关重要。
尽管基本概念和原则是相同的,但是将数据科学应用于不同领域的方式可能会有所不同。因此,领域知识是将数据转化为价值的过程中的重要资产。
最后但同样重要的是,如果解释不清楚,你的结果或你创造的价值就不会有影响力。您将需要使用工具来交付结果并演示整个过程。对于这一步,数据可视化工具是很好的资源。
我试图简要解释创建数据产品的典型工作流程中的主要步骤。当然,每一步都有更多的细节,但我只想画一个简单的流程图。
在我看来,学习数据科学意味着能够执行我们刚刚提到的步骤中的任务。根据你工作的公司,你将负责所有这些步骤或其中的一部分。
你需要学习的东西可以分为两组。一个是理论知识,另一个是将理论应用于数据的工具。两者都需要实现解决方案或创建可靠的产品。
每个步骤都使用了软件工具和软件包。你总是有多种选择。例如,Tableau 和 PowerBI 都是常用的数据可视化和报告工具。你不必学所有的,这实际上是不可能的,因为太多了。
那么,学习什么时候结束?
学习数据科学永无止境。这是一个相当连续的过程。就工具和理论而言,数据科学仍在不断发展。
不仅引入了新的工具,而且正在改进现有的工具。因此,不可能跟上所有的改进。然而,你需要密切关注与你的工作相关的问题。否则,很难保持竞争力。
最后的想法
我试着画了一张图来展示学习数据科学涉及的内容。这幅画没有详细描述。就当是低分辨率的照片吧。但是,你知道这意味着什么。
学习数据科学需要时间、努力和奉献。请记住,你将永远需要学习让自己跟上时代。这听起来像是一次彻底的旅行,但绝对有趣。我很高兴自己转行成为了一名数据科学家。
感谢您的阅读。如果您有任何反馈,请告诉我。
成为一名优秀的数据产品负责人需要具备哪些条件?
技术和软技能之间的平衡是关键
约书亚·福布斯在 Unsplash 上的照片
基于数据和分析的新
商业模式和服务有许多不同的途径。利用数据和分析服务赚钱也有不同的方法。很明显,第一小时的
数据科学家正在成为越来越多的“数据业务所有者”。但是,作为一名优秀的数据产品所有者,到底需要具备哪些条件?下面这篇文章可能会给你一些有帮助的见解。
技术和数据架构之间的恰当平衡
数据产品所有者不仅必须认识到并利用数据的价值,还必须对他们处理数据集的业务成功负责。因此,正确选择技术和数据架构在这里起着重要的作用。
这背后的原因是,数据和分析平台的具体设计对性能、可扩展性和用户体验以及运营成本有着决定性的影响。因此,数据产品所有者必须做出重要决策,决定使用何种技术来创建最适合公司特定需求的数据架构。
专家谈到关键和数字
一个好的数据产品所有者永远不会忘记销售和利润的实现。成功的产品经理在整个生命周期中都控制着他们的数字。
他们知道何时以及如何应对不利趋势,无论是通过重新培训销售人员、调整价值主张,还是其他与产品相关的措施。因此,当谈到关键和数字时,他们必须是公司内部的专家[1]。
最佳沟通
一个好的(数据)产品所有者知道如何与他们各自的目标群体沟通。无论是不同的公司部门,甚至是管理层:产品负责人的重要角色是知道需求是什么,以及如何为他们提供合适的解决方案。此外,数据产品所有者必须创建简单易懂的数据计划和策略,这些计划和策略结构清晰,没有任何误解。
解决冲突和寻求妥协
数据产品所有者还必须具备解决冲突和寻求妥协的能力,因为不合理的利益相关者和困难的需求或敏感且不愿意工作的团队等问题每天都会发生。因此,拥有解决分歧的能力,并作为一个调停者或谈判者,将有助于消除利益相关者和开发团队成员之间的敌意。在这种情况下,妥协的技巧也发挥了作用,因为大多数冲突可以通过在相关各方之间找到一个中间立场来解决[2]。
结论
数据产品所有者在公司中扮演着重要的角色,因为他们负责正确处理数据集和由此产生的行动过程。因此,为了取得成功,他们必须在技术和软技能之间取得良好的平衡。除了了解公司的每个人,一个好的数据产品负责人在与公司不同部门和管理层沟通时,还必须对自己的外表有信心。
资料来源和进一步阅读
[1]伊恩·伦恩(Ian Lunn),理想产品经理——10 个特征(2021)
[2]克拉拉·德克尔(2017)
成为亿万富翁需要什么?
这里有一个关于如何成为亿万富翁的分析解决方案。
简介:
看了标题你可能会兴奋。“亿万富翁”——多么花哨的词,对吧?
我有什么资格写这个话题呢?我是亿万富翁之一吗?—显然,不是!!。但我希望我是一个。
我写这篇文章是为了给你一些成为亿万富翁的财务建议或忠告吗?没有。
那么,我是谁?我们在这里要做什么?——我是福布斯亿万富翁历史数据集的分析师。我们将研究这些数据,并回答 10 个最关键的问题。
你想知道我们将要找到答案的所有问题是什么吗?让我们开始吧。
- 哪个行业领域的亿万富翁最多?
- 大学学历是成为亿万富翁的必要条件吗?
- 去哪里学习成为亿万富翁?
- 哪个年龄段的亿万富翁人数最多?
- 有多少亿万富翁是白手起家的?
- 更年轻的亿万富翁住在哪里?
- 大部分亿万富翁的关系状况如何?
- 亿万富翁为他们的国家贡献了多少亿?
- 哪个城市的亿万富翁更多?
- 亿万富翁家庭有多少?
我们来分析一下数据,想出这些问题的答案。这是下载数据集的链接— 点击这里。这里是 Github 链接,查看项目代码— 点击这里。
1。哪个行业领域的亿万富翁最多?
上图清楚地描绘了大多数亿万富翁都在房地产行业。有些人可能认为房地产是一个被高估的术语。但数据显然在讲述相反的故事。看看你的行业是否成功跻身前 10 名。
2.成为亿万富翁需要大学文凭吗?
你没想到会这样,对吧?这个输出可能会让您感到震惊。我们都听说过,大学文凭并不是赚钱的必要条件。但我们可以清楚地看到,47.5%的亿万富翁完成了学士学位,32.9%的亿万富翁完成了硕士学位,7%的亿万富翁完成了博士学位。所以,不要被那些励志演讲误导了。数据显示情况正好相反。
3.去哪里学习成为亿万富翁?
哇哦。令人震惊的事实。我们经常听说,一个人不一定要在最好的学校学习才能成为亿万富翁。好吧,没有证据的谚语有意义吗?这里有证据试图说明我们被愚弄了。当然,它们被认为是最好的机构是有原因的。
4.哪个年龄段的亿万富翁最多?
我们可以看到,目前五六十岁的亿万富翁更多了。这是有道理的,因为我们知道积累财富需要一些时间。
你可能想知道那个 10 多岁的亿万富翁是谁!他就是凯文·大卫·莱曼(18 岁)。在从父亲 Guenther Lehmann 手中获得德国连锁药店 dm 的股份后,他以 33 亿美元的净资产成为世界上最年轻的亿万富翁。
5.有多少亿万富翁是白手起家的?
图表显示,约 66%的亿万富翁是白手起家,约 33%的亿万富翁不是白手起家(从家里拿钱)。
6.年轻的亿万富翁住在哪里?
正如所料,这可能是一个显而易见的答案。美国拥有最多的年轻亿万富翁(年龄在 35 岁以下)。
7.大部分亿万富豪的关系状况如何?
甚至超过 90%的亿万富翁都结婚了。所以,不要说“我想专注于我的事业。我不想结婚,失去自由。”
8.亿万富翁为他们的国家贡献了多少亿?
仅在美国,每个亿万富翁的总净资产就达到 45000 亿美元左右。中国亿万富翁排在下一位。
9.哪个城市的亿万富翁更多?
图表显示,大多数亿万富翁居住在中国北京。其次是美国纽约市。
10.亿万富翁家庭有多少?
有 335 个亿万富翁家庭,也就是说有 335 个家庭是亿万富翁,不像单个人是亿万富翁。
结论:
看完这些问题的结果,你是不是很难受?
“我没有在顶级学校学习”,“我没有住在北京、纽约或其他顶级城市”,“我没有在房地产或金融领域工作”。但是我的目标是有一天成为亿万富翁。
放心吧!我们刚刚看到了数据的最高百分位数。有许多“白手起家”的故事在上面的图表中没有显现出来。你可能是其中之一。
同样,这里有下载用于执行该分析的数据集的链接— 点击此处。这里是查看项目代码的 Github 链接— 点击这里。如果你有更多的问题需要回答,你可以浏览这些数据,并提出你正在寻找的见解。
联系我:
我会做很多这样的分析。请随时关注我。
在 Linkedin 上与我联系—www.linkedin.com/in/-hari-prasad/
赢得卡格尔比赛需要什么?让我们听听获胜者本人的意见。
与 Dmitry Gordeev 的对话:数据科学家和 Kaggle 竞赛大师
作者图片
在这一系列采访中,我在 H2O.ai 展示了一些知名数据科学家和 Kaggle 大师的故事,他们分享了自己的旅程、灵感和成就。这些采访旨在激励和鼓励那些想了解成为一名 Kaggle 特级大师的人。
在这次采访中,我将分享我与卡格尔世界**中 Dmitry Gordeev、又名dott的互动。他是 Kaggle 竞赛的特级大师和资深 数据科学家在 H2O.ai 。Dmitry 曾就读于莫斯科州立大学,毕业时是应用数学/数据挖掘专业的专家。在 H2O 之前,他在维也纳的 UNIQA 保险集团工作,主要从事信用风险管理。**
****Dmitry 和他的团队最近在 Kaggle 上赢得了 室内定位&导航比赛 ,与其他团队相比有相当大的优势。凭借这场胜利,Dmitry 现在在全球 Kaggle 比赛中排名第五。有趣的是,Dmitry 和 Philipp Singer -目前 Kaggle 上的第一名(截至日期)和 H2O.ai 的数据科学家同事-在过去的许多 Kaggle 比赛中合作并赢得了金牌。这对搭档以团队代号 **The Zoo,**的身份参赛,这个代号成了获胜的代名词,并经常登顶 Kaggle 排行榜。“动物园”的标志性成就之一是赢得了 NFL 第二届年度大数据碗。他们是 Kaggle 网站上 2038 份参赛作品中的获胜者,最高奖金为 5 万美元。
2019–2020 年大数据杯冠军 Dmitry Gordeev 在印第安纳波利斯发表演讲 |图片提供:Dmitry Gordeev
NFL 数据分析总监迈克·洛佩兹(Mike Lopez)发现他们的方法非常周到,甚至评论说:“拥有一种能够从历史数据中归纳出他们以前没有见过的比赛的算法是一件很难的事情。”
在这次采访中,我们将更多地了解 Dmitry 最近赢得的 Kaggle,他对 Kaggle 的热情,以及他作为数据科学家的工作。以下是我与菲利普对话的摘录:
祝贺您在 Kaggle 上赢得了最近举行的“室内定位&导航”比赛。你能和我们分享一下你的方法和你从比赛中学到的东西吗?
Dmitry: 对我来说,这是一场相当激动人心的比赛,主要是因为它触及了一个新的主题和一种我以前从未处理过的新型数据。简而言之,该比赛致力于改善购物中心的手机导航。GPS 通常可以很好地解决这些任务,但只适用于户外,因为它需要户外曝光才能获得最佳精度。然而,在多层购物中心里,它不能充分地帮助你。在这场比赛中,微软研究院鼓励我们利用用户允许他们的手机收集的数据,来帮助识别一个人在哪里,以及一个人走了哪条路。这些数据包括 wifi 信号及其强度的记录,这有助于确定位置,以及传感器数据流,以重建一段时间内的运动轨迹。
我们设法以第一名的成绩结束了这场比赛,并以显著的优势击败了所有的竞争对手。我们的预测比第二名团队准确 30%以上。
首先,我需要提一下我那些不可思议的队友。比赛的成功完全是由于团队的杰出努力。比赛需要的工作量是一个人几乎不可能完成的。与典型的 Kaggle 竞赛相比,该解决方案非常复杂,因为它包含多个步骤,每个步骤都需要定制的数据科学方法。我在这里简单总结一下,但是我们也详细描述过,并且在 GitHub 上开源了整个代码。
我们把问题分成多个块。其中最核心的包括:
- 基于 wifi 信号记录预测位置(我们主要依靠 KNN 和 GBM 分类器),
- 基于传感器数据重建轨迹(使用一系列 CNN 和 RNN 模型),以及
- 结合两者结果的优化程序。
我们解决方案的关键特性是离散优化,它帮助我们获得了如此显著的精度提升。由于数据收集的特殊性,预测点形成了一个离散的网格,我们依赖于一个改进的波束搜索优化算法。我们的解决方案还依赖于一个高度复杂的例程,该例程注入额外的网格点来覆盖训练数据集中没有出现的购物中心的新区域。
你在高尔夫比赛中一直表现出色。你和 Kaggle 的幽会是如何开始的,是什么让你有动力一次又一次的比赛?
德米特里: 大约在 7-8 年前,我发现 Kaggle 是一个竞争平台,但最重要的是,它可以学习更多关于机器学习的知识。我参加的第一次比赛给了我很棒的经历。这是我第一次在实际数据上拟合随机森林模型,也是我第一次发现适当交叉验证的重要性。这是一个陡峭的学习曲线,但我设法在前三场比赛中获得了铜牌、银牌,甚至金牌。然而,这非常耗时,需要长时间的工作。很明显,我不能以这样的节奏持续太久,所以我决定离开 Kaggle 一段时间。
大约两年半前,我第二次在 Kaggle 上积极参赛,与我的同事 Philipp Singer 合作。
“拥有一个可靠而热情的队友是成功的关键。分享想法,让多人编码并尝试,分工的能力是绝对重要的。但是,最重要的是,在如此多的想法失败后,团队精神激励你一次又一次地尝试;这就是帮助我们一次又一次登顶的原因。”
你能告诉我们一些你的背景吗?你为什么选择数据科学作为职业?
德米特里: 我有莫斯科国立大学的数据挖掘背景,对应的是硕士学位,但我的职业生涯相当一段时间专注于信用风险管理。然而,Kaggle 帮助我回到了通用数据科学领域。竞争和学习帮助我改变了职业道路,对此我非常高兴和感激。我花了很多年才做出这个改变,这些年包括了很多熬夜学习、阅读和编码。它们一点也不容易,但它们是值得的。
您还参加了每周一次的 COVID19 全球预测挑战赛,表现非常出色。你从中学到了什么?
Dmitry 在一次会议上展示新冠肺炎分析 wave 应用 |提供:H2O.ai****
德米特里: 新冠肺炎全球预测挑战赛是我和我的队友在疫情启动时将我们的技能和知识应用到一些有价值的事情上的一种方式。我们把所有的空闲时间都花在了寻找一种能够对疾病传播做出可靠预测的方法上。但是我们面临一个问题,根本没有可用的数据,这些数据可以可靠地转化为世界正在经历的事情。在这一系列比赛中,我们的模型在排行榜上取得了高分,但结果的准确性远远低于我的期望。
任何喜欢的 ML 资源(MOOCS、博客等…)您愿意与社区分享吗?
Dmitry: 如今,跟上数据科学的发展很难,更不用说要关注的主题越来越多了。自然语言处理、计算机视觉、强化学习、可解释性等领域的进展。在过去的几年里,取得了显著的成绩。为了跟踪最新的发展,拥有关于研究论文、新的开源存储库、竞赛和解决方案的多种可靠信息源是很有帮助的。Kaggle 绝对是一个重要的工具,因为它是一个学习哪些方法对某些问题有效,哪些方法无效的好地方。在 Twitter 和其他社交媒体渠道上关注你最喜欢的人和公司,阅读 H2O.ai 博客和其他受欢迎的博客也是富有成效的。
我正努力跟上尽可能多的数据科学主题,因为它们经常以你可能意想不到的方式联系在一起。我最喜欢的例子是 NLP 方法,它在化学和体育分析任务中非常有效,尽管不涉及文本。
作为 H2O.ai 的数据科学家,你的角色是什么,你在哪些具体领域工作?
Dmitry: 在我的日常工作中,我帮助我们的客户为他们的数据科学问题或尚未使用数据解决的问题找到最佳解决方案。这些客户来自不同的行业,如金融、医疗保健、零售、生产等。尽管用例初看起来似乎没有关联,但解决它们的最佳方法通常依赖于相同的数据科学方法。
除此之外,我们还在不断寻找突破性的想法,并努力将它们变为现实。任何可以帮助我们向前迈进的东西,尤其是在社会和医疗保健领域,都是我致力于研究的课题。我们正与多个合作伙伴合作,引入数据科学模型和方法来帮助改善医疗保健。我们试图通过我们的新冠肺炎预报模型及其准确性评估做出一点贡献。不用说,这些活动不仅关注模型本身,还关注如何使它们可靠、健壮、可解释,从而在帮助做出关键决策时值得信赖。
你通过 Kaggle 学到的最好的东西有哪些是你在 H2O.ai 的专业工作中应用的?
德米特里: 没有人知道一开始解决问题的最好方法是什么。一半都没有。这是一个反复测试、失败、从失败中学习和重复的过程。
“常见的方法和最先进的模型通常足以实现令人印象深刻的结果。但是如果你想做得更好,你必须跳出框框思考。这是一个充满无限创意机会的领域。”
一瞥德米特里的卡格尔之旅
我认为这个想法是我从 Kaggle 那里得到的,我将它应用到我的专业工作中。对于许多数据科学问题,已经有一个成熟的方法或已知的最先进的模型架构。我们需要准备现有的数据,根据需要调整模型,并对其进行调整。所有这些步骤几乎不需要任何思考过程,因此应该是自动化的。适合您的数据的最先进的模型应该成为一种商品。实际的工作应该从那里开始,集中于得到一个更好的解决方案,找到一个新的方法,以及一个如何解决问题的全新的想法。
可解释的人工智能正成为一种需要,而不是一种选择。你觉得会对现在的 AI 格局产生多大的影响?社区
人工智能的可解释性和可解释性一直是重要的话题,最近也越来越受到关注。我认为它们将永远与机器学习的所有未来发展齐头并进。人们试图解释甚至是最复杂的模型,以理解仅仅依赖模型的缺陷和风险。我认为这将仍然是可解释人工智能的一个关键目标——以透明的方式展示一个模型如何在给定的环境下得出预测。这有助于了解模型如何适用于感兴趣的案例。它还有助于将模型置于审查之下,以搜索当模型由于训练数据或模型架构和设计中的缺乏或偏差而表现出意外时的特定情况。如果可能的话,它将揭示可用于攻击模型的缺陷,或者如果环境发生变化(这是不可避免的),它将导致模型急剧恶化。这种对抗性测试将成为可解释的人工智能工具包的标准组成部分,在做出最终决定之前,它将始终应用于一个模型。
数据科学领域正在快速发展。你是如何设法跟上所有最新发展的?
德米特里: 阅读过往 Kaggle 竞赛解答是必须的。每当我面临一个新问题时,我都会查看最近在相同或相似领域的竞赛,寻找最好的方法和行不通的想法。论坛、社交媒体、博客和群聊也是跟踪我可能错过的研究论文和公告的好方法。最后但同样重要的是,参加比赛。没有比亲自尝试更好的学习方法了。
给刚刚开始或希望开始数据科学之旅的数据科学和 Kaggle 有志人士一点建议?社区
德米特里: 数据科学是一个广泛且不断发展的领域,所以很难感到无聊。我认为仍有大量的突破即将发生,所以它只会越来越好。最让我惊讶的是工作主题的多样性。今天可以看看 NFL 的统计数据,下周再分析 mRNA 分子的结构!
“对于那些开始他们的旅行的人来说。我羡慕你。不要误会我;我的道路包含了大量的汗水和泪水。老实说,这并不容易。但是我珍惜我过去成功的每一个瞬间,你也一样。好好照顾自己的心理健康。它的重要性怎么估计都不为过。有时候需要休息一下,去散散步。”
外卖食品
在这个非常有见地的采访中,德米特里谈到了他生活中的几个重要方面。他的故事充满了激情、努力和耐心。从处理机器学习问题到创建解决方案,Dmitry 强调了一致性和创新思维的必要性。他还讨论了人工智能需要更多的可解释性,以灌输对我们创建的模型的信任。他的旅程已经并将继续鼓舞人心,我们迫不及待地想看到他在未来的日子里还有什么里程碑。
阅读本系列的其他采访:
-
在 Kaggle 上遇见无法停止胜利的数据科学家
NISQ 是什么意思?
它的含义是什么?
量子机器学习要不要入门?看看 动手量子机器学习用 Python 。
作者图片
量子计算是一种不同形式的计算。一种可以改变解决问题的复杂性,使问题变得容易处理的形式。但是这种不同形式的计算带来了自己的挑战。数字计算机需要区分两种状态:0 和 1。
电路需要区分高电压和低电压。只要有高电压,就是 1,有低电压,就是 0。这种离散化意味着误差必须相对较大才能被注意到,然后可以实现用于检测和纠正这种误差的方法。
与数字计算机不同,量子计算机需要非常精确。它们保持连续的量子态。量子算法需要对连续变化的参数进行精确操作。
然而,在量子计算机中,错误可能小到无法检测,但它们的影响仍然会累积到破坏计算。
作者图片
这种脆弱的量子态非常容易受到来自量子比特周围环境的噪声的影响。噪声可能来自控制电子设备、热量或量子计算机材料本身的杂质,也可能导致难以纠正的严重计算错误。
但是为了实现量子计算机的承诺,我们需要容错设备。我们需要计算肖尔因子分解算法的设备。我们需要设备来执行所有其他已经在理论上开发出来的算法,这些算法解决了数字计算机难以解决的问题。
但是这种设备需要数百万个量子比特。这种开销是纠错所必需的,因为大多数这些复杂的算法对噪声极其敏感。
目前的量子计算机有多达 65 个量子比特。尽管 IBM 力争在 2023 年前实现 1000 量子比特的计算机,但我们预计在不久的将来,量子处理器将达到 100 量子比特。即使它们超过了这些数量,它们仍然相对较小且噪音较大。这些计算机只能执行短程序,因为程序越长,与噪声有关的输出错误就越多。
作者图片
然而,运行在超过 50 量子位的设备上的程序已经变得很难在经典计算机上模拟了。这些设备可以做传统计算机做不到的事情。
这就是我们即将进入的时代。这个时代,我们可以建造量子计算机,虽然不具备容错能力,但可以做经典计算机做不到的事情。这个时代是由术语“嘈杂的中尺度量子”——NISQ来描述的。
嘈杂是因为我们没有足够的量子位来进行纠错。“中等规模”是因为量子比特的数量太小,无法计算复杂的量子算法,但又足够大,可以显示量子优势甚至优势。
结论
我们今天拥有的最好的量子计算机是 NISQ 设备。这些设备需要不同的算法、工具和策略。
例如,变分量子经典算法已经成为考虑近期量子设备量子算法的一种流行方式。在这些算法中,经典计算机对它们从量子计算机上运行某些难以计算的计算中获得的信息执行整体机器学习任务。
整个算法由经典部分和量子部分之间的闭环组成。它有三个部分:
- 预处理
- 印刷质量控制系统
- 后处理
作者图片
量子算法基于经典算法提供的一组参数产生信息。因此被称为参数化量子电路(PQCs) 。
这些 pqc 相对较小,寿命较短,因此适合 NISQ 设备。
量子机器学习要不要入门?看看 动手用 Python 学习量子机器 。
在这里免费获得前三章。
“AI 安全”中的“安全”实际上是什么意思?
三个复杂的问题
在 TDS 播客的最近一期节目中,嘉宾 Rosie Campbell 是 AI Partnership on AI 的安全关键 AI 负责人,他与 T2 的 Jeremie Harris 聊起了发表前沿人工智能研究的潜在风险。我承认,在听他们的对话之前,这是我从未想过的问题;首先,我绝对是而不是人工智能研究者,所以我从来不需要这么做。
然而,一个更深层次的原因是我多年来构建的关于危险的人工智能可能会是什么样子的心理图像。流行文化已经让我(我猜想,你们中的许多人也是如此)习惯于想象一个像 HAL 9000 那样邪恶的没有身体的意识,或者一个看起来傻傻的、可能致命的星球大战机器人。相比之下,现实世界、当今的人工智能风险更加抽象,也更加广泛。
如果你和我一样,想了解更多关于这些风险的各种形式,这里有一些我认为特别有用的 TDS 资源,虽然不多,但很有效。
照片由 Huy-Hung Trinh 在 Unsplash 上拍摄
所有的 AI 研究都应该发表吗?
我上面提到的 TDS 播客插曲探索了人工智能研究社区必须导航的内在张力:一方面,使知识可访问和自由流动的愿望;另一方面,在坏人试图利用新技术进步达到邪恶目的的情况下,降低风险的竞争需要。Rosie Campbell 和 Jeremie Harris 以 OpenAI 的 GPT-2 及其棘手的初始版本为例开始了对话,并继续就人工智能学术出版中的道德实践进行了更广泛的讨论。
AI 的民主化
作为普华永道(PricewaterhouseCoopers)人工智能的全球负责人, AnandSRao 非常清楚大规模人工智能的潜在好处和风险。随着人工智能在组织中变得越来越容易获得,Anand 注意到滥用的媒介也在增长:
即使是由高素质工程师设计的最复杂的人工智能系统,也可能成为偏见、可解释性问题和其他缺陷的牺牲品。由没有经过适当培训的人构建的人工智能系统,或者在没有适当控制的情况下运行的人工智能系统,可能会产生非常危险的东西——引入歧视或严重错误。更糟糕的是,问题可能直到系统实施后才变得明显,让公司争先恐后地安抚利益相关者,消除损害,修复技术。
他提出的解决方案是一个微妙的民主化框架——一个考虑到技术、商业和不同利益相关者之间复杂相互作用的框架。在这里不可能做到公正,所以只要跳到 Anand 的帖子里去更详细地了解它。
全球人工智能竞赛和战略平衡
非专家读者(是的,我说的是我自己)可能需要进行一些思维跳跃,才能理解学术研究的发表会产生不可预见的负面结果。人工智能的军事用途并非如此,当前的危险与我们科幻小说中的想象惊人地重叠。夏洛特·利维最近的帖子深入探讨了全球利用人工智能获得军事力量的争夺战——以及其他人限制其鲁莽、毁灭性行为潜力的尝试。
如果你从事人工智能安全方面的工作,我们很乐意听到你的意见——请在评论中留下你的工作的链接,或者更好的是— 为 TDS 写点东西!关于人工智能安全和风险的其他深思熟虑的讨论,前往 TDS 播客。
关于马来西亚的环境,这些数据告诉了我们什么?
涵盖碳排放、林业和水污染统计
介绍
环境数据集往往不是一个有利可图的研究主题,但它是研究人员或数据科学爱好者可以关注的问题。
根据我们所处的位置,被监控的内容通常会有所不同,但是如果我们能够得到一个并开始使用它们,我们通常会为我们的当地社区带来令人惊讶的发现。
从马来西亚的开放数据门户网站,我设法获得了空气污染物排放、林业和河流污染的时间序列数据。我会尝试调查马来西亚的环境状况,看看我是否能为社区增加一些价值。
数据和文件
加载数据和函数
#Env
myco2e = 'co2e-my-1998-2019.csv'
myforest = 'forest-my-1947-2018.csv'
myriver= 'river-pollutant-my-1998-2018.csv'colors = [
'#2C947A',
'#83553E',
'#7A2A34',
'#A2D3C2',
'#658E9C',
'#4D5382',
'#514663',
'#A83375',
'#FF1F87',
'#40B7F2',
]
堆积面积图
def make_stacked_area(df, ylist, colorlist, title, legend=True, height=1000, width=800):
ys = ylist
colors = colorlist
x = df.Yearfig = go.Figure()
for i in range(len(ys)):
fig.add_trace(go.Scatter(
x = x,
y = df[ ys[i] ],
name = ys[i],
mode= 'lines',
line= dict(width = 0.5,
color = colors[i]),
stackgroup='one',
groupnorm='percent',
))fig.update_layout(
title= title,
xaxis_tickfont_size=14,
yaxis=dict(
title='',
titlefont_size=16,
tickfont_size=14,
),
legend=dict(
x=1.02,
y=0.98,
bgcolor='rgba(255, 255, 255, 0)',
bordercolor='rgba(255, 255, 255, 0)',
),
showlegend= legend,
height= height,
width= width,
)return fig
线形图
def make_line_plot(data, xdata, ydata, cdata, title, legend=True, width=900, height=600):
import plotly.express as pxfig = px.line(data,
x= xdata,
y= ydata,
color= cdata,
symbol= cdata,
)fig.update_layout(
title= title,
xaxis_tickfont_size=14,
yaxis=dict(
title='',
titlefont_size=16,
tickfont_size=14,
),
legend=dict(
x=1.02,
y=0.98,
bgcolor='rgba(255, 255, 255, 0)',
bordercolor='rgba(255, 255, 255, 0)',
),
showlegend= legend,
height= height,
width= width,
)
return fig
污染物排放
EPA 已经将六种污染物确定为“标准”空气污染物,因为它通过开发基于人类健康和/或基于环境的标准(基于科学的准则)来设定允许水平,从而对它们进行管理。这六种污染物是一氧化碳、铅、氮氧化物、地面臭氧、颗粒污染(通常称为颗粒物)和硫氧化物。
原始数据没有具体说明记录或监测的污染物是什么。
df = pd.read_csv(PATH + myco2e)ylist = ['Industrial', 'Power plant', 'Mobile vehicle', 'Others'] make_stacked_area(df, ylist, colors, 'CO2 emission share by source, Malaysia (1998-2018)')
将数据转换为长格式
df_long = (pd.melt(df, id_vars=['Year','Total co2e (Tonnes)'], value_name='emission'))
df_long.rename({'variable': 'source'}, axis=1, inplace=True)make_line_plot(df_long, 'Year', 'emission', 'source', 'CO2 emissions by source, Malaysia (1998-2018)')
备注:
- 排放量以吨为单位。
- 错误地将柱状图和图表命名为碳排放。原始文件:空气污染物包括臭氧(O3)、一氧化碳(CO)、二氧化氮(NO2)、二氧化硫(SO2)和小于 10 微米的颗粒物质(PM10)。
绝大多数记录在案的排放物来自机动车辆。该国的污染物排放量估计值应该高得多,因为许多其他通常具有高排放量的来源(例如:农业、石油生产、废物管理)并未显示为可用来源。
总的来说,全国的污染物排放总量似乎呈上升趋势。
森林面积和伐木活动
df = pd.read_csv(PATH + myforest)
原始数据集有一些缺失值,如果希望做进一步的时间序列分析,如协整检验或 VECM 模型,这可能会导致一些问题。这可以通过插值很容易地解决,尽管必须弄清楚“幻影”值被引入。
# Fill missing valeus for time series
df = df.interpolate(method= 'linear', limit_direction= 'forward')
df
有了这个,我们就可以开始制作图表了。
fig = go.Figure()fig.add_trace(go.Scatter(
x= df.Year,
y= df['Forest Area (hectare)'],
name = 'Forest Area (hectare)'
))fig.add_trace(go.Scatter(
x= df.Year,
y= df['Production of Logs (cubic metre)'],
name = 'Production of Logs (cubic metre)',
#yaxis= 'y2'
))fig.add_trace(go.Scatter(
x= df.Year,
y= df['Number of Workers in Wood Industry'],
name = 'Number of Workers in Wood Industry',
yaxis= 'y2'
))###############
fig.update_layout(
xaxis=dict(
domain=[0, 0.95]
),
yaxis=dict(
title="Forest Area (hectare)",
titlefont=dict(
color="#1f77b4"
),
tickfont=dict(
color="#1f77b4"
)
),
yaxis2=dict(
title="Number of workers in logging industry",
titlefont=dict(
color="green"
),
tickfont=dict(
color="green"
),
anchor="x",
overlaying="y",
side="right",
),
height= 600,
width= 900,
title= "Available forest area & logging activity, Malaysia (1947-2018)"
)
马来西亚有记录的森林面积多年来一直停滞不前。20 世纪 80 年代左右森林面积的激增可能是由于观察面积的增加。这意味着在我们的森林面积时间序列中有一个结构突变模式。在这种情况下,这将意味着今天的马来西亚的森林面积比几十年前更少。
原木产量在 20 世纪 90 年代达到历史最高水平,此后产量逐年下降。1960-1990 年间伐木活动的增长与同一时期森林面积的减少相一致。
木材行业的工人数量有一些剧烈的波动,可能是由于记录或记账不良。也就是说,尽管伐木活动减少,工人数量仍然达到历史最高水平。这是因为木工或工匠等工作被包括在内。
协整检验
既然我们已经做了插值,我们不妨做一个协整检验,看看森林面积的扩展、伐木活动和木材业工人之间是否有任何稳定或长期的关系。
由于结构性断裂无处不在,我们并不期待由此产生任何重大结果。但是如果你想做,你可以这么做。
plt.figure(figsize= (12,18) )plt.subplot(4,1,1)
plt.plot(df['Production of Logs (cubic metre)'], label= 'Logging activity')
plt.plot(df['Number of Workers in Wood Industry'], label = 'workers')
plt.plot(df['Forest Area (hectare)'], label = 'forest')
plt.legend()# Spread 1
plt.subplot(4,1,2)
plt.plot(df['Forest Area (hectare)'] - df['Number of Workers in Wood Industry'],
label='Forest - Workers')
plt.legend()# Spread 2
plt.subplot(4,1,3)
plt.plot(df['Forest Area (hectare)'] - df['Production of Logs (cubic metre)'],
label='Forest - Logging')
plt.legend()#plot spread
plt.subplot(4,1,4)
plt.plot(df['Production of Logs (cubic metre)'] - df['Number of Workers in Wood Industry'],
label='Logging - Workers')
plt.legend()plt.show()
作者图片
由于所有 3 个不同时间序列的水平数据不具有 0 均值且包含趋势,在我们的后续函数中,我们将使用“线性趋势”作为估计参数。
from statsmodels.tsa.vector_ar.vecm import *temp = df
temp.set_index('Year', inplace=True)lag_order = select_order(data= temp[1:],
maxlags=10,
deterministic="li",
# linear, inside
seasons=0)
lag_order.summary()
print(lag_order)
作者图片
识别等级(协整关系的数量)
rank_test = select_coint_rank(temp[1:],
det_order=1,
k_ar_diff=0,
method="trace",
signif= 0.05)rank_test.rank
rank_test.summary()
作者图片
秩等于 1,意味着只有一个稳定的三个变量的线性组合(即:3 个不同时间序列的 1 协整关系)。
# Parameter estimation
model = VECM(temp[1:],
deterministic="li",
seasons=0,
k_ar_diff= lag_order.bic, #bic for easier interpretability
coint_rank= rank_test.rank)vecm_res = model.fit()
vecm_res.summary()
作者图片
预测
vecm_res.plot_forecast(steps= 15, plot_conf_int=True)
作者图片
格兰杰因果关系:
X 格兰杰原因 Y 如果使用****X 的当前和过去值以及Y 的当前和过去值来预测 Y 的未来值的模型比仅使用 Y 的当前和过去值来预测 Y 的模型具有更小的预测误差。
换句话说,格兰杰因果关系回答了以下问题:
变量 X 的过去是否有助于提高 Y 未来值的预测?
瞬时因果关系:
X 瞬时导致 Y 如果使用 X 的当前、过去和未来值以及 Y 的当前和过去值来预测 Y 的模型比仅使用 X 的当前和过去值以及 Y 的当前和过去值的模型具有更小的预测误差
换句话说,瞬时格兰杰因果关系回答了这个问题:
知道 X 的未来是否有助于提高对 Y 未来值的预测?
g_cause_forest = vecm_res.test_granger_causality(caused="Forest Area (hectare)", signif=0.05)
g_cause_forest.summary()
作者图片
g_cause_log = vecm_res.test_granger_causality(caused="Production of Logs (cubic metre)", signif=0.05)
g_cause_log.summary()
作者图片
g_cause_wood = vecm_res.test_granger_causality(caused='Number of Workers in Wood Industry', signif=0.05)
g_cause_wood.summary()
作者图片
i_cause_forest = vecm_res.test_inst_causality(causing= 'Forest Area (hectare)')
i_cause_forest.summary()
作者图片
i_cause_log = vecm_res.test_inst_causality(causing= 'Production of Logs (cubic metre)')
i_cause_log.summary()
作者图片
i_cause_workers = vecm_res.test_inst_causality(causing= 'Number of Workers in Wood Industry')
i_cause_workers.summary()
作者图片
在这两个变量中都找不到格兰杰因果关系。在这两个变量中也找不到任何即时的因果关系。
然而,如果 alpha 上升到 0.10 ,变量Forest Area
和Production of Logs
都可以被识别,以瞬间引起其他变量的未来值。(例如,如果我知道森林面积或原木产量的未来值,我就可以合理地预测其他变量的未来值。)
脉冲响应
irf
函数返回对VEC(p–1)模型中每个变量的一个标准差冲击的动态响应,或脉冲响应函数 (IRF)。
脉冲响应试图追踪一个变量的冲击对系统中所有变量响应的影响。
num_periods = 15
ir = vecm_res.irf(periods= num_periods)ir.plot(plot_stderr=True)
作者图片
备注:
- 我要警告不要对这种协整分析的任何结果进行解读。时间序列数据太不可靠,包含太多结构突变,粒度太大。
- 由于 Choleski 分解,脉冲响应函数(IRF)对 VAR 中内生变量的排序(即列的排列)很敏感。在实践中,通常使用不同的排序来测试 IRF 对变量排序的敏感性。
河流污染状况
ylist = [
'Biochemical oxygen demand (polluted)',
'Biochemical oxygen demand (slightly polluted)',
'Biochemical oxygen demand (clean)',
]ylist2= [
'Ammoniacal Nitrogen (polluted)',
'Ammoniacal Nitrogen (slightly polluted)',
'Ammoniacal Nitrogen (clean)',
]ylist3=[
'Suspended solids (polluted)',
'Suspended solids (slightly polluted)',
'Suspended solids (clean)',
]river_plot1 = make_stacked_area(df, ylist, colors[-3:], 'Share of rivers polluted (biochemical oxygen demand),<br>Malaysia (1998-2017), n=140', height= 600)river_plot2= make_stacked_area(df, ylist2, colors[-3:], 'Share of rivers polluted (Ammoniacal Nitrogen),<br>Malaysia (1998-2017), n=140', height= 600)river_plot3= make_stacked_area(df, ylist3, colors[-3:], 'Share of rivers polluted (Suspended solids),<br>Malaysia (1998-2017), n=140', height= 600)
注意事项:
- 监测的河流数量从 120 条开始,2005 年增加到 140 条。
生化需氧量
生化需氧量(BOD)是衡量需氧细菌分解过程中去除水中废弃有机物所需氧气量的指标。水中有机物的衰变被测量为生化或化学需氧量。
某些环境压力,如肥料的引入,会减少水体中溶解氧的含量,从而对当地水生生物造成压力。
马来西亚所有河流的生化需氧量都严重污染。近十年来,没有一条河流在这方面被记录为干净的。受污染河流的份额从 10%增长到了顶峰时的 85%。
氨态氮污染
氨是工农业的副产品。常见的形式包括空气污染,由腐烂的农业泥浆或渗入河流的化肥排放的氨气造成。
在水生环境中,氨会导致含氮需氧量、富营养化和鱼类健康的变化。溶解氧在硝化过程中被消耗,与氨反应,导致依赖它的生物可利用的 O2 减少。
硝化作用还会释放硝酸盐,导致陆地环境中的富营养化。嗜硝藻类和大型植物在死水中产生了大量的水华。
几乎所有的马来西亚河流都有氨态氮污染的问题。污染河流的份额多年来保持稳定,这可能表明以前污染的河流仍然受到污染。
悬浮体
悬浮固体是指作为胶体或由于水的运动而悬浮在水中的小固体颗粒。颗粒尺寸越小,单位质量颗粒的总表面积(克)越大,因此可能携带的污染物负荷就越高。
悬浮固体由于其相对较大的尺寸,可以通过沉淀去除。它可以作为水质、污水浓度或一般废水的指标。
悬浮固体污染似乎对马来西亚的河流更有利。也就是说,近年来污染问题似乎又回来了。
编后记
虽然我不是环境专家来建议任何政策,但事实是我们的环境是我们所有人都有责任照顾的。
监测更多的环境数据以确保我们有一个健康的地球来生活总是值得的。
我希望马来西亚政府能改善他们的环境数据集,为研究开辟更多的进展,并发现其中一些见解是可行的。
喜欢你看到的吗?如果你已经打算要一个,考虑在 Medium 上跟随我或者使用这个 推荐链接 获得 Medium 的会员资格。
如果你想从我做的其他工作中获得更多帮助,也可以考虑订阅我的个人博客QED Insight。
同时,这是我在 Medium 上完成并发表的一些其他项目。
https://medium.com/alpha-beta-blog/key-findings-from-world-banks-global-findex-data-fee8d7505355
h 指数告诉了我们什么,没有它我们无法知道?
对 h-index 包含的、在引用总数中找不到的额外信息的理论和实证研究
为了对研究人员进行相互比较,我们需要一个衡量标准,用一个数字来表示他们的影响力和成功程度。一种方法是查看他们的文章被引用了多少次,并计算他们的总引用次数( N )。一种更复杂的方法是计算他们的 h 指数 ( h ),这也应该考虑到这些 N 引用是如何在一名研究人员的论文中分布的。
最近和几个朋友的一次讨论让我思考 h 指数以及它的真正含义。我开始做一些有趣的计算,最后从谷歌学术收集数据来测试我的假设。我主要关心的是理解引用总数 N 和 h 指数 h 如何相互关联,以及 h 指数包含多少额外信息。
下面,我首先从理论上讨论一下 h 和 N 之间的关系。然后,我对来自计算神经科学、机器学习和高能物理 3 个不同领域的 1500 名研究人员的数据做了简要分析,并表明我们的理论直觉与经验数据一致。
h 指数?曲线下的正则化区域
什么是 h 指数?
如果一个研究人员的 h 指数是 h ,那么这意味着 h 是“他或她有 h 篇文章至少被 h 次引用”这句话成立的最大数。形式上,给定一个研究者,我将引用函数定义为 f : ℕ → ℕ 其中 f(n) 表示该研究者第 n 篇被引用最多的论文的引用次数。那么,对应于该函数的 h 指数是最大值 h ,我们有f(h)≥h——见图 1。换句话说, h 是可以放在 f 下面的最大正方形的边。这种解释是我们在本文剩余部分所关注的。
**图一。**黑点表示函数 f(n),绿色方块的边长表示对应的 h 指数。照片取自维基百科,公共领域。
曲线下的面积
函数 f 下的面积等于引用总数 N 。这让我们很快得出结论, h 以 citations⁴总数的平方根为界,即 √N. 注意,这个界是紧的:如果 N 篇引用在第 1 篇 √N 篇论文之间平均分布,那么这个界就达到了,我们有 h=√N. 在这种情况下, f(n) 本身就是一个正方形,等于
从这个角度来看, h 可以看作是曲线下的正则化区域,它既取决于曲线的形状,也取决于曲线下的真实区域( N )。不严格地说,h 指数喜欢大的 N 值以及形状类似于正方形的曲线,例如,没有长尾的曲线或二阶导数较小的曲线。
在下一节中,我问是否有可能将这种正则化显式化,并将 f 的形式的效果与其面积( N )分开?
将形式的影响与引用数量的影响分开
**重要提示:**为了简化分析,在本节中,我删除了 f 从 ℕ 到 ℕ ,的约束,并使用从ℝ⁺到ℝ⁺.的 f 的插值版本因此, N 等于 *f、*和 h 的积分,表示 f 与 y=x 线相交的位置。
一个卡通例子:线性引用函数
在进入一般情况并获得一些直觉之前,让我们考虑一个简单的例子,其中 f 具有线性形式 f(n) = max{ a - bn,0 } *,*其中 a > 0 和 b > 0 是自由参数。如果我们假设知道 N ,那么我们可以找到 a 作为 N 和 b 的函数,并且通过找到 f 与 y=x 线的交点,我们也可以找到 h-index 作为 N 和 b 的函数
方程式 1。 h 为 b 和 N 的函数,为线性情况
关于情商有趣的一点。1 是可以因式分解的,可以写成 h(b,N) = k(b)√N ,其中
- 第一项, k(b) ,只是斜率 b 的一个函数,它描述了引用是如何在论文中分布的,无论有多少引用。
- 第二项, √N ,只是引用总数的函数,与它们在论文中的分布无关。
图 2 显示了当 N 等于 10000 时作为 b 的函数的 h 指数,以及对于 *b 的 3 个不同值的 f(n) 的三个示例。*当 b=1 时达到最大 h 指数。对于 b < 1 来说,引用次数很少的论文太多,而对于 *b > 1、*来说,被多次引用的论文很少。因此,h 指数更倾向于那些被广泛引用的论文数量和引用次数都相当多的情况。
**图二。**对于 f(n) = a-b.n 的情况:左起第一个面板显示了当 N 假定为固定值且等于 10’000 时,h 指数作为 b 的函数;接下来的图显示了三个不同 b 值的 f(n)(实线)(对应于第一个图中的星号)。每个黑色虚线框显示 f(n)下的最大正方形,边长等于 h 指数,灰色虚线框显示 N=10’000 的最大可能正方形。这个图形是作者画的。
找到一般情况下的相同因式分解
情商。1 表明,可以通过简单的因式分解将 N 的影响与 b 对 h 指数的影响分开。对于一般的引用函数,有可能找到类似的公式吗?我的答案是肯定的!但是要找到它,我们首先需要定义来自的的概念——它可以充当一般引用函数的参数 b 的角色。
我说引用函数 f₁ 和 f₂ 具有相同的形式如果存在一个正α使得对于每一个 n≥0
方程式 2。 f₁ 和 f₂ 的形式相同
根据这个定义,两个线性引用函数具有相同的形式,当且仅当它们具有相同的斜率b——这与我们的直觉一致。
使用 Eq。2,我们可以很容易地证明,如果 f₁ 和 f₂ 具有相同的形式,那么 N₂= α N₁ 和 h₂= α h₁ ,这就让我们得出结论,只要两个引用函数具有相同的形式,我们就有 h₂/h₁=√N₂/√N₁.根据这个推理, h 可以写成
方程式 3。 h 作为形式和 N 的函数
其中 k≤1 相对于 N 是常数,仅取决于 f 的形式;这与我们在 Eq 中看到的一致。1 其中 k是 b的函数*。取等式两边的对数。3,我们以*
**方程式 4。**对数版 Eq。3
情商。4 同时回答我们所有的问题:h 指数的对数有两个分量:
- 第一个分量,log k(b) ,仅仅是形式 f 的函数,并且独立于 N、
- 而第 2 个分量,log √N ,只是引用总数的函数,与形式无关。
第一部分是 h-index 包含的附加信息,是上一节讨论的正则化的显式表达式。为了了解这些信息在不同研究人员之间的相互比较中有多重要,我们需要了解引用函数的形式在实践中的可变性。
在下一节中,我将分析经验数据,并比较不同研究领域中的形式 f 和 N 对 h 指数的贡献。
我们在数据中看到了什么?
我从计算神经科学(CN)、机器学习(ML)和高能物理(HP)三个不同领域的 1500 名研究人员的谷歌学术页面中提取了 h 和N——有关分析的详细信息,请参见附件代码。图 3 总结了这些信息。
我分别为每个字段将 logh = a+blogN的幂律形式拟合到该数据中。根据等式。4、我们必须有 b =0.5 独立于场;与这个理论预测一致,我发现 CN,ML,HP 分别为b= 0.47±0.01,b= 0.50±0.04,b= 0.50±0.01。拟合曲线的相应 R 平方应该显示出 N (与 f 的形式相比)在解释 h 指数中的主导地位;我发现 CN、ML 和 HP 的 R 平方值分别为 0.75、0.21 和 0.73。这些结果表明,引用函数形式的可变性在不同领域是不同的;特别地,形式信息似乎在解释 ML 中研究人员的 h 指数中占主导地位,而在解释 CN 和 HP 中研究人员的 h 指数中并不重要。⁵
**图 3。**2021 年 3 月 16 日摘自《谷歌学术》的计算神经科学(左栏)、机器学习(中栏)、高能物理(右栏)领域 500 名研究人员的引用信息——共计 1500 名研究人员。第 1 行和第 2 行分别以线性和对数标度显示了作为引用数量(N)函数的 h 指数。每个点对应一名研究人员,黑色实线对应理论界限(即 N 的平方根),灰色虚线对应数据拟合的幂律曲线。第三行显示拟合的残差直方图,即真实 h 指数和幂律曲线预测的 h 指数之间的差异直方图。图为作者所作。
结论
当 N 是引用函数下的区域时, h 可以被视为引用函数下的正则化区域。通过对形式的适当定义,这种正则化可以变得显而易见,这使我们能够将引用数量的影响与引用函数的形式对 h 指数的影响分开。此外,对经验数据的分析证实了理论的预测,并表明 h 指数的有用性取决于研究领域。
承认
我很感谢伯芬·辛塞克和伊萨克·福尔克,他们发人深省的讨论让我写下了这篇文章。
代码:
脚注:
在这里,我不是在讨论为什么我们想要或需要比较研究人员,也不是在讨论是否有可能定义一个标量测量来捕捉关于一个研究人员的影响力和成功程度的所有必要信息。然而,我想强调的是,如果我们想要建立一个公平的科学界,这些问题是至关重要的,不能被遗漏和低估。
在写这篇文章的时候,我发现有很多有趣的论文讨论了 h 指数的不同方面。感兴趣的读者可能想看看 J. E. Hirsch 在 2005 年第一次介绍 h-index 的原始文章,或者看看其他许多关于 h-index 的很酷的研究中的三个例子,比如 T2 的伊格莱西亚斯(Iglesias)&佩查罗曼(2007) 、米纳斯尼等人(2013) 或巴恩斯(2017) 。
这里,我不区分有一篇 0 次引用的论文和没有那篇论文。
⁴如果 √N 不是整数,那么上界就是它的整数部分。
⁵回归分析的细节见附图。原始数据也可以在同一个存储库中获得,我非常乐意看到和讨论其他人的分析结果。😃
欢迎通过alireza . modirshanechi @ epfl . ch联系我
变形金刚自我关注其实看的是什么?
深入探究伯特的注意力
背景:变形金刚、自我关注、伯特
在过去的几年里,自然语言理解的进展已经爆炸,这主要归功于被称为转换器的新型神经网络架构。Transformer 模型的主要架构创新是广泛使用所谓的、【自我关注】、,以至于介绍该模型的论文被命名为、。自我注意机制将每个输入编码为所有其他输入的函数,帮助算法化语言中上下文的直观概念。
使用 GitHub Copilot 实例化一个复杂的对象,只需要查看它的类签名和前面的样板文件。Copilot 是通过在 Github 的开源代码上训练一个变压器模型而创建的。(GitHub copilot 能为数据科学家做些什么?)
自 2017 年推出以来,变压器架构已经分为多个子家族,最著名的是因果解码器种类( GPT-2 、 GPT-3 ),它们被训练来预测序列中的下一个字,以及编码器种类(伯特、 T5 、μm),它们被训练来在序列中的任意位置填空。每一种都有自己的优点和缺点,但是为了本文的目的,我们将把重点放在各种编码器上,尤其是 BERT。
伯特建筑进修
BERT 被设计成一个非常通用的语言编码器模型,它可以用于许多不同类型的任务,而不需要改变它的架构。它通过以单词标记*的一般形式接收输入来实现这一点,在开始处有一个特殊的[CLS]标记,在每段文本之后有一个特殊的[SEP]标记。(*技术上讲文字块令牌)
然后,该输入序列被转换为向量嵌入,向量嵌入通过自关注机制(稍后将详细介绍)相对于彼此被重复重新编码,随后的每次重新编码都保持相同的序列长度。
通过这种方式,任何接收多个输入的任务,比如一段文本+一个关于文本的问题,都可以自然地作为[SEP]划分的标记序列传入。类似地,任何期望进行分类的任务,例如“输入是消极情绪还是积极情绪?”可以通过最后一层的[CLS]令牌嵌入自然输出。
伯特如何消化输入“男孩骑着马”+“很有趣”的图示。输入令牌被转换成嵌入,然后由每一层重复重新编码。特殊[CLS]令牌的最终嵌入可以用于执行分类。(图片由作者提供)
对于基本 BERT 模型,有 12 层,每层包含 12 个注意头,总共有 144 个注意头。注意力操作有些复杂(详细的演练见插图:自我注意力),但重要的是要知道,对于每个注意力头:
- 每个输入被赋予三个向量:一个键、一个查询和值
- 为了确定我应该“关注”输入 j 多少,我们取输入 I 的查询向量与输入 j 的关键向量的点积,重新调整它,并通过一个 sigmoid 传递它。
- 然后,我们使用这个结果注意力分数来加权输入 j 的值向量。
好了,介绍完了,我们终于可以进入有趣的部分了。
伯特的注意力(不要)看什么
通常,当你听到对伯特注意力的高层次描述时,接下来是“这使得注意力头能够自己学习经典的 NLP 关系!”接下来是这样一幅挑衅性的图形:
BERT 的第 5 层注意力头之一执行共指解析。“它”最受其相关名词短语“狗”的关注。(图片由作者提供,使用 BertViz 生成)
虽然一些注意力集中的人确实学会了表现这样美好的可解释的关系,但大多数人没有。 Kovaleva 等人(2019) 将 BERT 的注意力焦点分为 5 种类型:
- 垂直:所有记号都强烈关注同一个其它记号,通常是[SEP]记号。
- 对角线:所有的记号要么强烈地关注它们自己,要么关注一个具有恒定偏移量的记号,例如紧随它们自己之后的记号。
- 垂直+对角线:前两种图案的组合。
- 块:令牌强烈关注其[SEP]划分的块内的其他令牌,而不关注该块之外的任何令牌。
- 异质:更复杂、不明显的图案。
每个网格代表特定输入的特定注意头的行为。网格中的位置(I,j)表示表征 I 对表征 j 的注意力强度。此处显示的是展示 5 种特征注意力模式的输入。(科瓦列娃等人,2019 )
有趣的是,当你看到这些注意力模式有多普遍时,你会发现异质+阻断模式,也就是唯一能做任何有趣事情的模式,只解释了注意力头的一半的典型行为。更奇怪的是,在所有情况下都盯着同一个标记的垂直模式,占据了 注意力头部的三分之一。
产生每种注意模式的输入部分。每个条形代表一组不同的输入,所有这些输入都是来自 GLUE 数据集的任务。(科瓦列娃等人,2019 )
当您深入研究垂直模式时,您会发现大多数单个标记都是[CLS]、[SEP]和标点符号。那么,究竟为什么像伯特这么聪明的模特会花费这么多宝贵的注意力资源在这些毫无意义的符号上呢?
关于这里发生的事情的理论是,当一个注意力头盯着这些停止标记之一时,它的行为就像一个不操作。因此,如果一个特定的注意力头所调谐的任何语言结构在输入中不存在,这就允许它“关闭”。
Kobayashi et al. (2020) 进一步挖掘这一奇怪的发现,发现虽然这些代币上的注意力得分很高,但正在与注意力得分相乘的值向量的范数很低。如此之低,以至于最终产品接近于零。
每一层中给予不同标记类型的注意力权重。左:天真的注意力得分,右:由价值向量的范数加权的注意力得分。(小林等人,2020
真正有趣的是,因为有太多的这些注意力头基本上什么都不做,所以实际上你可以通过移除某些注意力头来提高模型的性能!事实上,对于像【MRPC】(确定两个句子是否等价)和 RTE (确定一个句子是否暗示另一个句子)这样的任务,随意去掉一个头更有可能帮助表现而不是伤害它。
禁用不同注意头时的任务绩效。橙色线表示未改变的 BERT 模型的准确性。y 轴上显示图层编号,x 轴上显示头部编号。左:MRPC 任务的性能,右:RTE 任务的性能。( Kovaleva 等人,2019 )
有用的注意力模式呢?
回到第一部分的图:的确,在 BERT 中有一些注意力头,它们似乎被调整来执行可识别的 NLP 子任务。那么,这些头是什么,它们能做什么?**
发现一些注意头编码与依存解析树中特定边相同的关系。特别地,对于给定输入(忽略[CLS]和[SEP])的最强注意力分数始终被给予具有 T20 特定依赖关系的成对单词。
BERT heads 编码特定的依赖关系。左:直接宾语关系,中:限定词关系,右:所有格修饰语关系。(克拉克等人,2020 )
许多 NLP 系统的另一个复杂而重要的任务是共指消解。这就是确定一个句子中的两个词何时指代同一个实体的问题。要理解为什么这是一个如此困难的问题,考虑一下句子“莎莉给莎拉一颗曼妥思,因为她的口气不好。”在这种情况下,“她”指的是“莎拉”,但做出这一决定需要知道曼妥思是用来减轻口臭的,而不是某种道歉礼物。
这种对世界知识的依赖使得这成为一项非常重要的任务,然而 Clark 等人发现,第 5 层中的 Head #4 以 65%的准确度正确地识别(即,最强烈地关注)共同参照,相比之下,选择最近的提及作为共同参照的系统只有 27%的准确度。
我们可以走的另一条路是观察所有注意力头总共学到了什么。还记得前面的依赖关系解析树吗?我们可以问的一个问题是:对于一个给定的词对,如果我们考虑由网络中所有注意力头的产生的注意力分数,我们能在依存分析中计算出它们是否应该由一条边连接吗?**
通过聚合所有 144 个注意力头的注意力分数,为给定的词对创建全网络的注意力向量( Coenen 等人,2019 )
事实证明,答案是肯定的,以这种方式构建的分类器可以以 85.8%的准确率预测依存解析中的边缘,远高于 chance ( Coenen et al .,2019 )。虽然正如 Rogers et al. (2020) 所指出的,当在这样的高维表示之上构建分类器时,并不总是清楚有多少知识包含在底层表示中,而有多少知识是由分类器注入的。
最后的想法
关于这个主题有许多研究,我还没有时间触及,例如不同的架构决策在确定 BERT 的能力方面有什么作用(Ontaón 等人,2021 ),在 BERT 的不同层内正在进行什么样的推理( Tenney 等人,2019 ),以及注意力头部下游的单词嵌入编码是什么( Hewitt & Manning,2019 )。
许多头条论文都是关于这些巨大的神经网络模型所拥有的突破性能力,但这个领域最让我感兴趣的是这些模型是如何在引擎盖下工作的。我认为,特别是在这种情况下,我们发现备受吹捧的注意力机制花了大量时间来寻找无用的标记,我们意识到我们对这些模型的理解是多么贫乏。我认为这种神秘的气氛让他们更酷。
作品引用
[1] J. Alammar,插图变压器(2018),GitHub 博客
[2] R. Karim,插图:自我关注(2019),走向数据科学
[3] J. Vig,解构 BERT,第 2 部分:可视化注意力的内部工作方式(2019),走向数据科学
[4] A .科尔提,GitHub copilot 能为数据科学家做些什么?(2021),走向数据科学
[5] J. Devlin,M. Chang,K. Lee 和 K. Toutanova,BERT:用于语言理解的深度双向转换器的预训练(2019),ArXiv.org
[6] A. Rogers,O. Kovaleva 和 A. Rumshisky,《伯特学入门:我们知道伯特如何工作》( 2020 年), ArXiv.org
[7]K·克拉克、u .汉德尔瓦尔、o .利维和 C. D .曼宁,《伯特看什么》?伯特的注意力分析(2019),ArXiv.org
[8] O .科瓦列娃、a .罗马诺夫、a .罗杰斯和 a .拉姆什基,《揭露伯特的黑暗秘密》(2019),ArXiv.org
[9] G. Kobayashi、T. Kuribayashi、S. Yokoi 和 K. Inui,《注意力不仅仅是重量:用向量范数分析变形金刚》( 2020 年),ArXiv.org
[10] A. Coenen,E. Reif,A. Yuan,B. Kim,A. Pearce,F. Viégas 和 M. Wattenberg,可视化和测量 BERT 的几何形状(2019),ArXiv.org
[11]s . Ontaón、J. Ainslie、V. Cvicek 和 Z. Fisher,《让变形金刚解决作曲任务》(2021),ArXiv.org
[12] I. Tenney,D. Das,E. Pavlick,Bert 重新发现经典的 NLP 管道(2019),ArXiv.org
[13] J. Vig,变压器模型中注意力的多尺度可视化(2019),ACL 选集
[14] C. D .曼宁、K·克拉克、j .休伊特、u .汉德尔瓦尔和 o .利维,《通过自我监督训练的人工神经网络中的自然语言结构》(2020 年),《美国国家科学院院刊》
[15] J. Hewitt 和 C. D Manning,在词表示中寻找句法的结构性探索(2019),计算语言学协会
[16] M. Marneffe、B. MacCartney 和 C. D. Manning,从短语结构语法分析生成类型化依赖语法分析(2006),Lrec
[17] D. Jurafsky 和 J. H. Martin,语音和语言处理,第二版(2014 年),培生教育
[18]普遍依赖关系,UniversalDependencies.org
顶点 AI 是做什么的?
机器学习的一站式商店
Clark Van Der Beken 在 Unsplash 上拍摄的照片
TL;速度三角形定位法(dead reckoning)
在这篇文章中,我介绍了典型的机器学习工作流中的常见任务,以及 Vertex AI 如何在一个统一的用户界面(UI)下整合所有需要的工具来实现这些任务。
🤔我们为什么需要一套“统一的”工具呢?
今天,数据科学家努力应对手动拼凑机器学习(ML)点解决方案的挑战。
这会使模型开发和实验变得复杂和缓慢,导致很少的 ML 模型进入生产。
不仅仅是数据科学家希望获得 ML 功能…
应用程序开发人员、数据分析师,甚至商业用户都开始看到这些能力的价值,并希望利用 ML 增强他们的工作流程或产品。但是他们不一定具备创建 ML 模型所需的专业知识。
为了应对这些挑战,Vertex AI 将用于构建 ML 的谷歌云 (GCP)服务整合在一个统一的 UI 和 API 下,以简化大规模构建、训练和部署机器学习模型的过程。
🧩顶点人工智能如何适应 ML 工作流程
下图(图 1)说明了 Vertex AI 如何将您需要的所有工具整合在一起,以实现典型 ML 工作流中的常见任务。我将简要介绍每个任务,特别是 Vertex AI 为您做了什么。
图一。ML 工作流中的常见任务和相应的 Vertex AI 产品。作者插图。
从 GCP 控制台选择 Vertex AI 时,您首先会遇到的屏幕之一是如下所示的仪表板(图 2)。在这里,您可以完成一些常见任务,例如创建数据集、查看您最近训练的模型以及最近批量预测作业的结果(稍后将详细介绍)。
图二。顶点人工智能仪表板—入门
⏭现在,让我们深入了解具体的工作流程任务。
1.摄取和标记数据
ML 工作流的第一步通常是加载一些数据。假设您已经完成了必要的数据准备步骤,Vertex AI UI 会引导您完成创建数据集的过程。这也可以通过一个 API 来完成。
下面的屏幕截图(图 3)显示了在创建数据集的过程中可用的选项。您可以选择类型:图像、表格、文本和视频。UI 还会根据您想要解决的问题的目标或类型来指导您,并最终指导您从哪里上传数据。在我们的例子中,我选择了图像对象检测。
图 3。顶点 AI —创建数据集、数据类型和目标
在训练一个 ML 模型来预测一些事情之前,你需要标记你的数据,这样模型就有了可以学习的例子。
图四。顶点 AI —创建数据集,向数据集添加图像
假设您的目标是对图像中不同类型的车辆进行分类。如上所示(图 4),您需要提供您期望模型分类的对象的示例图像。这些图像需要被标记,以便模型知道一个对象类和另一个对象类之间的差异。
顶点 AI UI 让你创建注释集。注释集包含与数据集中的文件相关联的标签。在我们的例子中,它是对应于我们想要分类的不同车辆的标签。
当使用 AutoML 的图像数据时,建议每个标签大约有 1000 个训练图像。每个标签的最小值是 10,但是您提供的训练示例越多,在进行预测时模型的准确性就越高。
如果数据集中的文件还没有一组对应的标签,也可以在 UI 中交互完成。例如,在我们的用例中,我们可以围绕我们想要在训练图像中检测的车辆绘制边界框,如下所示(图 5)。
图 5。顶点 AI——数据集标记,围绕对象绘制边界框以进行分类
如果您没有时间标记数据集中的文件,您还可以请求人类数据标记服务。
💡你可以在这里 阅读更多关于如何准备每种类型的数据集,你需要多少训练数据的指导方针,以及如何标记它们 。
2.模特培训
基本上有两种方法可以在 Vertex AI 中训练模型。这很大程度上取决于你的经验水平。下面的屏幕截图(图 6)显示了基于我们在上一步中加载的车辆数据集的可用模型训练选项。
如果您想在使用已经加载的数据集训练模型的过程中得到指导,而不需要编写任何代码,请使用 AutoML 。它还将为您处理任何数据准备步骤,例如特征工程。
图 6。顶点人工智能——模型训练选项
另一方面,如果你是一个更高级的用户,希望对培训过程有更多的控制,并且你已经在 TensorFlow、PyTorch、sci-kit learn 或 XGBoost 中预先构建了 ML 模型,请使用自定义培训选项。
在您可以使用 Vertex AI 上的自定义训练选项训练您的模型之前,您的代码需要被容器化。你可以从 Vertex AI 提供的预建容器图像中进行选择,或者你可以使用自己的自定义图像进行更精细的控制……在这一点上,我假设如果你正在考虑自定义路线,你可能知道自己在做什么!
🧐你可能已经注意到还有第三个选项: AutoML Edge 。对于与视觉相关的目标(图像和视频),您还可以训练一个模型,该模型可以导出以在移动设备或内部部署系统上使用,这些设备或系统不一定具有互联网连接。
📌旁注📌
边缘计算
我不会在这里详述,但是边缘计算越来越受欢迎。这基本上是一个概念,指的是在离行动发生地更近的地方用计算机做智能的事情。
以我们的车辆检测用例为例。想象一下,你管理着一个地方政府机构,但你的高速公路上没有基础设施或连接来建立一个可以连接到云的监控站,以从你的模型中获得预测。
如果您将 AutoML Edge trained 模型与连接到小型摄像机的 Raspberry Pi 或 Coral EdgeTPU 等低成本、低功耗的边缘计算设备相结合,它会突然赋予您在任何地方使用 ML 的能力!
👩🏻💻想试一试,但不确定从哪里开始?我哥哥用 TensorFlow Lite 和一个边缘 TPU 写了一个示例应用程序。
📌边注📌
3.估价
在你将你的 ML 模型投入使用之前,评估它是否适合你的目的,或者更确切地说,它是否预测了你所期望的值,这是一个好主意。
下面的屏幕截图(图 7)显示了在之前的车辆数据集上训练 AutoML 模型的评估输出。它显示了模型没有正确分类为“汽车”的对象,即“假阳性”,以及如何改进模型的提示-在这种情况下,向数据集添加更多的训练图像并重新训练。
图 7。顶点 AI —模型训练评估输出
Vertex AI 中的可解释的 AI 功能可以帮助你理解为什么你的模型会做出某些预测,显示哪些特征是最重要的,哪些特征归因于特定的结果。
下面的屏幕截图(图 8)显示了一个完全不同的模型和数据集的示例输出。具体来说,它使用了贷款违约数据集中的表格数据,目标是客户是否违约=“1”或=“0”。
图 8。顶点人工智能——基于表格数据的分类模型的可解释人工智能输出。
要素重要性图表告诉我们,在影响模型预测时,哪个数据列(或要素)的影响最大。
关于可解释人工智能的更多信息,请参见推荐阅读部分。
4.部署
因此,您已经训练了您的模型,并且您对输出感到满意。现在您需要一个地方来部署它!
如果您选择了 AutoML 路线,Vertex AI UI 为您提供了一个选项,您只需点击几下鼠标就可以将训练好的模型部署到一个端点,如下所示(图 8):
图 8。顶点 AI —模型部署选项,定义端点。
如果您走自定义路线,同样可以使用预构建或自定义的容器映像来服务预测请求,或者可以将模型部署到端点
对于 AutoML 和定制型号,您可以:
- 通过在部署期间定义流量分配,在模型之间进行试验。如果你想做一些 A/B 测试,这是很方便的。
- 微调您的模型将使用的资源(图 9)并利用自动缩放,通过定义您希望顶点 AI 向上扩展的最大计算节点数。
图九。顶点人工智能-模型部署选项,模型设置。
测试您的部署的机制将根据您的目标而变化,例如对于图像识别,您可以上传测试图像,UI 将显示预测的标签和置信度。
对于定制模型,您需要将您的容器化模型部署到一个端点。如果您使用一个预构建的容器来提供使用 TensorFlow、scikit-learn 或 XGBoost 的预测,那么您的预测输入实例需要格式化为 JSON。如果您使用自定义容器映像进行部署,情况类似。
5.获得预测
这就是“橡胶上路”的地方,您部署的模型已经准备好服务于预测,那么您如何得到它们呢?
从 Vertex AI UI(图 10)中,您可以选择一个模型并创建一个批量预测,即发送一组您希望模型在某个时间点(异步)返回预测的数据。在这种情况下,您不需要一定已经部署了模型。
将您的数据上传到云存储桶并选择它进行预测,显然数据类型会因型号而异。
图 10。顶点 AI —批量预测,新的批量预测。
您还可以获得在线预测,即发送您想要立即预测的单个实例或数据行(同步)。您可以通过从模型页面选择部署&测试选项卡或者从您的应用程序或网站调用 API 来实现这一点。
我们现在已经到达了 ML 工作流程的末尾。但希望你现在理解了 Vertex AI 在创建 ML 模型所需的最常见任务的上下文中做了什么——从数据摄取到将其投入生产。
📑总结和后续步骤
这篇文章的目的是在常见 ML 工作流任务的背景下提供顶点 AI 的简化解释。关于 Vertex AI 的内容比我打算在这里写的要多得多,所以我建议你看看推荐阅读部分。
总而言之,我喜欢 Vertex AI 的三点是…
- 易上手 —用户界面干净直观。将您需要的一切都集中在一个地方。从创建快速实验到支持完整 MLOps 管道所需的所有螺母和螺栓。
- 有多个入口点 —无论你的技能水平和经验如何,无论是使用 AutoML,还是使用完全定制的代码,你都可以在几分钟内开始使用 Vertex AI 创建模型。
- 可扩展的基础设施 —托管服务的优势之一是,您可以根据需要在试验期间花费尽可能少的资金,但有信心知道您的模型可以在生产中轻松扩展。
仍然不确定下一步该做什么,我创建了下面的决策树(图 11)来帮助指导你如何用 Vertex AI 创建你的第一个 ML 模型。
没有硬性规定,但如果你的回答大多是“不”,那么考虑自动路线,反之亦然。
好运和快乐的模型建筑!
图 11。顶点人工智能决策树——作者举例。
📚进一步阅读
- AutoML 入门指南,谷歌云,Vertex AI 文档
- ML 新手:顶点人工智能上的学习路径,伊万·纳迪尼,谷歌云
- 什么是可解释的人工智能?,奥马尔·马哈茂德,走向数据科学
- 在谷歌云上实现机器学习的最佳实践