TowardsDataScience 博客中文翻译 2020(五百一十六)

原文:TowardsDataScience Blog

协议:CC BY-NC-SA 4.0

疫情(新冠肺炎)期间的巨大潜在投资机会

原文:https://towardsdatascience.com/huge-potential-investment-opportunities-during-a-pandemic-covid-19-14013803eba4?source=collection_archive---------13-----------------------

识别大幅折价的股票,在管理风险的同时重新思考投资策略

在这样一个前所未有的时代,这篇文章旨在揭示当前市场的一些趋势/机会,让任何潜在投资者具备他们的 数据驱动决策 。每个投资者的风险偏好都是独特的,本文的目的是 告知 (而非建议)你的投资策略。

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

来源 : AZ 报价,彼得·林奇

“25000 年了,人性没怎么变。有些东西会从左场出来,市场会下跌,或者上涨。波动将会发生,市场将继续出现这些起伏——我认为这是一个很好的机会,如果人们能够明白他们拥有什么的话”。

《我爱波动》

—彼得·林奇对塔可钟的投资在 6 年内获得 600%的回报。

科技泡沫正在破裂,市场已经开始走下坡路,我可以自信地说,这不是任何人认为他们会走的路。在担心天文数字的初创企业估值会拖垮初创企业经济后,一个全球化的疫情正威胁要这样做。裁员在加速,股价在暴跌,普通民众中存在不确定性。对经济来说,这是绝望的时刻,然而,正是在这样的时刻,机会就在那里。问题是,你打算怎么办?

价值投资背后的动机

我的背景是工程学,尽管我可能擅长数字,但我上了一堂金融分析课,才意识到金融知识是多么基本和重要。当我想到投资市场时,主要是投资 ETF(因为本质上我想模仿市场,并与市场一起增加投资),关于新冠肺炎的新闻爆发了。所有人突然开始呆在家里,寻找温度计、口罩和卫生纸。

在做研究、与其他投资者交谈和狂看 YouTube 视频时,我意识到这可能是一个不常出现的机会。虽然新闻充斥着对哪些股票需要关注的预测,而且推理可能是有效的,但作为一个新手投资者,不可能试图预测短期内会发生什么。 因此,我决定专注于长期价值投资。从逻辑上来说,我把注意力集中在世纪之交的公司上。(这个股市指数衡量在美国证券交易所上市的 500 家大公司的股票表现。)投资这类公司的理由是 ,因为它们不太可能去任何地方 。它们对经济至关重要,如果情况出现,政府最好会出手救助它们。

收集数据和了解 S&P

为了我的分析,我使用了下面的维基百科页面 *来收集所有的股票名称及其符号。

**注:从维基百科页面*收集了 502 个公司名称

从维基百科抓取信息的 Python 代码

我分析的第一件事是 S&P 投资组合指数由多少个行业组成,以及它们各自的代表性。

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

按部门表示指数。按作者分类的图表

使用雅虎金融的 API,使用相应的股票代号来摄取从 2019 年 12 月 1 日到当前日期的每日股票价格。选择特定的日期没有任何特定的原因,这个想法是为了获取足够的历史数据来了解崩溃前发生了什么。2020 年 1 月和 2 月初是股市最好的阶段之一。在分析回报时,我想确保尽最大努力捕捉市场波动。

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

来源:雅虎财经,符号——AAPL

收集每日股票价格的 Python 代码

计算回报

每只股票的调整后收盘价用于计算该股票的每日回报。这个价格准确地反映了股息后的股票价值,被认为是股票的真实价格。财务回报,简单地说,就是在一段特定的时间内投资所赚或赔的钱。

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

计算回报的公式

关于退货需要注意的关键事项:

  1. 在这个分析中,回报是以股票价格的百分比变化来计算的
  2. 正回报代表盈利,负回报代表亏损

在计算了每天的回报后,我决定检查股票回报最低的那几天的频率。

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

2020 年 3 月滴滴最多也就不足为奇了。一半的公司在 2020 年 3 月 16 日(T1)经历了最低的回报率。出于好奇,我决定找出当天的新闻头条

  1. 布伦特原油自 2016 年以来首次跌破每桶 30 美元
  2. 世界各地的公司都缩减了活动
  3. 美联储将利率下调至零
  4. 亚洲和欧洲的国债收益率下降,股市暴跌

这个练习是检查计算和分析输出的好方法。这些数据有助于证实,新冠肺炎确实影响了 S&P 指数中几乎所有的基础资产。

Python 代码计算回报并确定最低回报

识别机会——股票价格折扣

这一分析的主要驱动力是识别熊市中的潜在机会。作为一名投资者,我希望这些信息能指引我走向正确的方向。这些数据应该能够回答一些问题,

  1. 我现在应该买什么股票?
  2. 有没有另一只股票的估值更低?
  3. 相比之下,它的竞争对手表现如何?

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

照片由杰米街Unsplash 拍摄

对每只股票的调整后每日收盘价进行了分析。我没有查看从最高价到最低价的变化,而是决定查看股票的第三个四分位数值与其最低值的差值。通过这种方式计算,估算的折扣更为保守。

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

计算股票价格折扣的公式

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

谷歌调整后收盘价的方框图。按作者分类的图表

在相应的调整后收盘价方框图中,谷歌股价的第三个四分位值为1447.07 美元,跌至最低1056.52 美元

通过应用上面提到的公式,谷歌目前的交易折价为 26.9%

对其余的股票进行了类似的操作,并计算了它们的折扣价。

Python 代码来计算股票的折价

按部门的折扣

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

按部门比较折扣。按作者分类的图表

从上图可以看出,能源类股的平均折让率最高,约为 66% ,相比之下,消费类股仅下跌了 28%这一信息符合当前市场的行为。

  1. 医疗保健和消费品等行业目前面临巨大压力,这些领域的专业人士在这段时间不知疲倦地工作。但这反过来意味着这些业务正在产生稳定的现金流。
  2. 谷歌和苹果等公司分别隶属于通信服务信息技术。利用当前的技术,这些巨头会发现远程工作的创新方式,并相应地改变他们的商业模式。相比之下,对他们业务的负面影响不会那么严重。
  3. 另一方面,能源行业和非必需品行业的公司受到了严重影响。随着社交距离措施和消费者限制支出,这将直接影响这些企业的日常运营。

下面给出的是每个行业的前 3 只折价股票。他们强调了在各自的行业中哪些公司目前正以巨大的折扣进行交易。

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

每个板块 3 只折价最多的股票。按作者分类的图表

量化风险

每一个机会都有一定程度的风险。金融领域最大的挑战之一是能够准确量化这种风险。对于本文, 波动率 内的每只股票的收益被用来作为风险的度量。

  1. 波动性代表一种资产的价格在均值附近波动的幅度——这是对其回报率离差的一种统计度量
  2. 在这个分析中,我用回报率的标准差来衡量波动性
  3. 波动性越高,资产风险越大

Python 代码计算收益的标准偏差

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

一段时间内亚马逊的回报率。按作者分类的图表

亚马逊(股票代码:AMZN)回报的标准偏差是 0.0252,这意味着亚马逊股票价格的每日变化幅度为 2.5%

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

波音航空公司在这段时间内的收益。按作者分类的图表

波音航空公司(股票代码:BA)收益的标准差是 0.0696,这意味着其股票价格的每日变化大约为 7 %

从上面的图表可以看出,亚马逊的可变性低于波音,这意味着亚马逊是一个 风险较低的投资选择。

按部门划分的风险

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

按部门比较风险。按作者分类的图表

与折扣趋势类似,可以看出,能源和非必需消费品等风险行业的波动性较高,而消费品和医疗保健的波动性较低。能源行业的平均波动幅度为 6.38% ,而另一方面,消费品行业的平均波动幅度为 3.36%

有趣的是,折扣和风险之间有很高的相关性。大幅折价的行业(如能源)也面临更高的风险。这种分析的目的是 观察这些高折价股票,挑选风险较低的股票。

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

每个板块 3 只风险最小的股票。按作者分类的图表

从上图可以看出,亚马逊、威瑞森和 Charter Communications 等巨头构成了最稳定的股票。这进一步加强了市场的理解,即这类企业拥有坚实的商业模式和强大的传统,能够在这一动荡时期继续前行。

结论

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

折扣与风险。按作者分类的图表

当我接近这篇文章的结尾时,下面给出了我在研究过程中获得的一些重要知识,我想总结一下,以供大家参考。

  1. 从上面的数据可以看出,贴现和风险之间有一个趋势。就投资策略而言,同样的风险,选择折价较高的股票更有效率。
  2. 一家公司的股票价格反映了该公司未来的预期价值。有些公司的股价高于竞争对手是有原因的,作为投资者,理解这一点很重要。
  3. 个人对风险的偏好是不同的,这些指标只能指导你的研究。如何投资由你自己决定。
  4. 所有伟大的投资者(如沃伦·巴菲特、比尔·盖茨等)都有一个共同的投资秘诀——购买股票意味着你也在购买该业务的一部分。你必须了解这个行业,并且熟悉它的商业模式。
  5. 能够编码并不意味着能够进行这种分析或处理数字。一个数学模型的好坏取决于你的专业水平。编程的真正力量在于分析的可重复性和可伸缩性。对我来说,手动收集和分析这些数据非常耗时。我现在可以在未来的任何时候重用这些代码,节省我的时间、精力和精力。

注: 公司的完整列表及其折扣、风险和当前价格以 excel 表格形式提供,供您自己参考 此处

个人投资策略

我的专业领域和背景是信息技术和通信服务行业。所以我决定把我的注意力集中在这些领域。从上面的分析中,我直观地知道这两个行业都没有被严重低估,因此波动性相对较小。

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

所需行业的报告指标

从上表可以看出,与信息技术相比,通信服务的平均折扣更高,波动性更小。我决定在试图识别当前提供重大投资机会的股票时,给予 同等权重的折扣和风险 。使用期望的权重,我得出一个分数来排列这些股票,下面给出的是这个自定义评分的输出。

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

指标排名的表格结果

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

我会投资的潜在股票组合。按作者分类的图表

该图显示了这两个行业中每只潜在股票的机会与风险。泡沫的大小是股票的相对股价。根据评分标准,这些股票是每个领域的前 5 名。我个人已经跟踪了一些公司,但现在我会在下一次投资决策时考虑其他公司。

GitHub 链接,谢谢

谢谢你一直读到最后。我希望这篇文章能在这样的时候给你一些鼓励,并为你在下一步投资旅程中提供思考的食粮。我祝你一切顺利,对此的任何反馈都将不胜感激。

所有的图表和代码都可以在我的 GitHub 资源库中找到,请随意下载并分析您的用例信息。

[## 有线服务/数据科学

存放我所有杂物的地方。通过在…上创建帐户,为 wiredtoserve/datascience 的发展做出贡献

github.com](https://github.com/wiredtoserve/datascience/tree/master/PortfolioTheory)

编者按: 走向数据科学 是一份以数据科学和机器学习研究为主的中型刊物。我们不是健康专家,这篇文章的观点不应被解释为专业建议。

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

皮特·佩德罗萨Unsplash 上的照片

基于感性工学和人工智能的人性化产品设计

原文:https://towardsdatascience.com/human-centric-product-design-with-kansei-engineering-and-artificial-intelligence-f38cb3c0f26d?source=collection_archive---------17-----------------------

感性工程过程介绍,随后是通过人工智能和大数据捕捉消费者情感和情绪的进步。

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

作者根据 Ackerman 和 Wavebreakmedia 提供的图片

“设计师不是从一些先入为主的想法开始的。相反,这个想法是仔细研究和观察的结果,而设计是这个想法的产物。”-作者保罗·兰德

大多数产品/解决方案的最终目标是为最终用户/客户提供最佳利用率和满意度。顾客的满意度和喜好很可能是由人类的情感和情感决定的。感性工学(由长町光雄于 1974 年创立)的概念旨在捕捉顾客的心理感受,并将其带入产品或社交系统的设计中。这个意义上的心理感受包括想要、需要、美感(美丽、优雅等)等概念。),品味好等。感性工学从观察顾客的行为开始,使用心理学量表掌握他们的情绪和情感,并使用几个统计分析来分析情绪,以引导产品或系统的设计规范。

首先,我们试着对感性的概念有一个直觉。下图是两件艺术品,一件叫卢蒙巴,一件叫塔科特。光看图像,你能说出他们是 Lumumba 还是 Takete 吗?

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

两件名为 Lumumba 和 Takete 的艺术品(图片由作者提供)

你们中的大多数人会把左边的锯齿状艺术(A)命名为 Takete,把右边的弯曲艺术(B)命名为 Lumumba。同样,Ramachandran 等人[1]对大学生和本科生进行了一项实验,结果是 98%的人选择左为武田,右为卢蒙巴。这表明人类大脑能够从形状和声音中提取抽象属性,它们最有可能与心理感受相关联。

以上是一个了解人类心理感受的简单实验,但在现实世界中,关注的主题(领域)可以是新的手机、体育项目、网站甚至人工智能产品,而不是艺术。因此,感性工学是一种捕捉人们(特别是目标消费者)的情绪和情感并转化为产品设计和解决方案的方法(或艺术)。

传统感性工学流程

感性工学过程从一开始就被用于许多产品领域的开发,如家居用品、园艺工具、汽车、服装。下图描绘了感性过程的传统观点。

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

感性工程流程架构(图片由作者提供)

原则上,我们对每个感官都有一个情感(情绪)反应和一个理性(认知)反应。也就是说,当接收到感官输入时,人类将构建某种类型的意识,从而产生情感和情绪。有时,很难解释为什么会产生这种情绪,因为与武田和卢蒙巴的例子相似,它是非常主观和隐含的。但大多数时候,消费者会根据第一印象来决定产品,因此,了解消费者的思维过程非常重要。另一方面,人类也会对感官知觉建立理性的理解。这是一个寻求人类对他/她对产品的看法做出理性反应的过程。没有必要两种反应都一样,但在产品设计中,感性工学过程会将两种反应都考虑在内,以推动最终的产品设计。

因此,感性工学的流程可以根据下面的流程图来理解。在开始时,定义了,这是描述产品背后的整体思想的上下文。这包括理解和定义预期的目标群体和用户类型,市场定位,和产品组的问题。

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

感性工学工艺流程(图片由作者提供)

然后从两个不同的方面描述该域。一个是语义空间,一个是产品的属性/规格。语义空间可以用语义表达式(词)定义的某个向量空间来描述。这可以通过收集大量从语义角度描述领域的词汇来实现。这些词被称为感性词。例如,要描述一部手机,可以选择酷炫、优雅、美观、方便等词语。

应用程序的空间可以通过理解对用户真正重要的属性来定义。这可能是关键特征,并选择产品属性进行进一步评估。这些特性可以从不同的来源识别,如现有产品、客户建议、可能的技术解决方案和设计概念。

下一步是感性工学特有的,是两个空间的合成。在最近的文献中,诸如类别分类法、心理量表法、多变量统计分析和感性粗糙集模型等技术被用来进行这一步骤。以手机设计为例,这一步将分析什么样的应用规范可以驱动语义空间指标,如酷、方便、美观,反之亦然。下面简要介绍几种广泛使用的合成应用和情感空间的技术。进一步的细节可以在这篇研究文章中找到,作者是感性工学过程的创始人长町光夫教授【2】。

(1)品类分类方法:首先确定新产品领域:(如网上商城、无线加速度计)。想象产品并写下顾客的情感,例如,想象顾客需要什么样的财产,然后写在一张纸上。然后,使用卡片创建一个树状结构,如第一类、第二类等等。在这个阶段可以使用“鱼生图”。

(2)心理量表法:收集感性(情绪)词后,你用那些感性词创建一个 Likart 型量表(或 SD 量表)。在这种情况下,5 或 7 级非常受欢迎。在这种方法中,我们通常会查看产品的真实样品,并在秤上检查感觉。接下来,使用多变量统计方法分析这些记录。

(3)使用多变量统计方法的分析:计算因子分析得到相似意义组作为因子结构,从研究中删除无意义的感性词。主成分分析、数据挖掘方法等都是有用的。JMP (SAS)分析对从顾客情感中寻找设计项目是最有用的。

(4)感性粗糙集模型:粗糙集模型是波兰 Zdzislaw Pawlak 教授开发的一种独特的数学模型,能够明确隐藏的情感与设计项目之间的关系。

在综合步骤之后,进行验证建模步骤,以检查预测模型是否可靠、真实和合适。在预测模型失败的情况下,有必要更新属性空间和语义空间,从而改进模型。

基于感性工学开发的产品

许多大公司都采用了这种感性工学工艺,特别是在日本和瑞典。丰田、本田、马自达、松下、三洋、三星、索尼、小松、雅马哈等公司是少数使用感性工艺的世界知名公司。这些产品包括夏普的新冰箱设计(1979 年)、马自达的 MX5 乘用车(1987 年)、现代的索纳塔 2(1995 年)、波音 787 的内部设计(2008 年)和 Vf Lee 的 Urban Rider 牛仔裤(2014 年)。

马自达 MX5 (1987 年)是一个有趣的案例——马自达首席执行官构思的一款概念车,将成为年轻一代的运动型轿车。

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

图片来自 Pixabay

正如 Nagamachi 等人的原始文章[2]中所详述的,一组年轻驾驶员被选为用户群。取了两组驱动程序。第一次发生在年轻司机旁边的座位上。司机开车时拍摄了一段视频。第二个是研究人员站在十字路口,启动摄像机,如果任何司机看起来像年轻司机。调查结束后,所有 R&D 成员聚集到一个研究室,写下司机的情绪或行为,每个人在一张小卡片上看视频节目。这就是所谓的类别分类法。然后,他们收集一组卡片,如果它们被认为是同一类的话。之后,R&D 成员用这些卡片制作一个树状结构,就像鱼出生的图表一样。看树形结构,设计师分组联动卡意为设计元素。

用人工智能和机器学习增强感性工学过程

传统的感性工学过程是使用个性化体验样本进行的,其中包括 10-100 名消费者。然而,随着大数据的激增,如今大量数据可以免费公开获取。例如,Twitter、脸书、Instagram 等社交媒体平台包含数以百万计的情绪,这些情绪可以从公众中提取出来。此外,产品评论网站(如在线产品评论)和在线论坛(如惠而浦在线论坛)也包含大量的人们的意见、表达和评论。此外,在超市安装的大量监控摄像头可以捕捉不同产品购买者的面部表情和情绪。利用这些海量的大数据,肯定会使感性工学过程更上一层楼。因此,我们通过使用人工智能和大数据作为以下模型架构,扩展了传统的感性工程流程架构。

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

通过人工智能和大数据增强的感性工程流程(图片由作者提供)

考虑开发一种新的可穿戴智能手表,它可以捕捉人的惯性测量。我们可以简单地设计一个虚拟现实(VR)应用程序,让用户在通过摄像机捕捉用户行为(捕捉表情)的同时,对产品进行实验,而不是设计原型。此外,语义空间可以通过在线社交媒体、产品评论和类似产品的论坛来捕捉,以确定公众的看法。应用空间同样可以被这样的在线媒体捕获。之后,通过关西工程流程,可以改进和实现产品设计。

具体化从在线社交媒体数据中提取的情感可以用于多个领域,因为它提供了以更好的方式理解客户/利益相关者的机会。最近,数据分析和认知中心团队开发了患者报告信息多维探索(PRIME)框架,旨在识别数字患者护理中的情感计算方面【3】。除了社交媒体数据之外,许多来自图像和视频数据的人类活动识别和情感检测方法也是可用的,它们可用于导出关于用户的情感信息[4]。

下面的视频显示了情绪研究实验室的面部识别软件在测试酸奶时实时捕捉消费者的情绪。

情绪面部识别产品测试

最后的想法

尽管有许多产品设计和开发方法,但我对感性工学过程很着迷,它能带给顾客想要、需要、美感(美丽、优雅等)等心理感受。),好品味,融入到产品的设计中。感性工学过程从一开始就被用于许多产品领域的开发,如家居用品、园艺工具、车辆、服装等,并被许多世界领先的行业如丰田、马自达、索尼、三星、松下等所采用。简而言之,感性工学过程在产品设计中考虑了消费者情感(语义空间)和对应用规范的认知理解(应用空间)。

感性工学过程的传统实现考虑使用有限数量的消费者进行体验测试(由于可行性原因),然而,随着大数据的出现和激增,如今可免费公开获得的大量数据可被利用来生成语义空间和应用空间的更好、可靠和复杂的视图。如今,有几种工具和技术可以最大限度地利用这种大数据平台。因此,将这些工具和技术与感性工学过程相结合,有可能设计出面向大众市场的消费者友好型产品、系统和解决方案。

参考

[1] Ramachandran,Vilayanur S .,和 Edward M. Hubbard。“听颜色,尝形状。”《科学美国人》288.5(2003):52–59。

[2]永町,光雄。"感性工学的历史和人工智能的应用."国际应用人因与工效学会议。施普林格,查姆,2017。

[3] Adikari,Achini 等,“在线支持团体能解决癌症患者的心理病态问题吗?基于人工智能的前列腺癌轨迹调查。”《公共科学图书馆·综合杂志》 15.3 (2020): e0229361。

[4] Nawaratne,Rashmika,等人,“用于人类活动识别的具有短暂性的分层双流增长自组织映射” IEEE 工业信息学汇刊 (2019)。

使用深度学习的人类情感和手势检测器:第 1 部分

原文:https://towardsdatascience.com/human-emotion-and-gesture-detector-using-deep-learning-part-1-d0023008d0eb?source=collection_archive---------16-----------------------

情感手势检测

了解如何从零开始构建具有深度学习的人类情感和手势检测器。

有没有人曾经疑惑地看着某人,试图分析他们有什么样的情绪或他们试图做出什么样的手势,但你最终被弄糊涂了。也许有一次你试图接近一个长得像这样的婴儿:

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

资料来源:科林·梅纳德-恩斯普拉什

你以为它喜欢你,只是想要一个拥抱,结果你抱着它,然后就发生了这种事!

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

来源:Brytny.com-Unsplash

哎呀!这并没有按计划进行。但现实生活中的使用可能不像上述情况那样简单,可能需要更精确的人类情感分析以及手势分析。这一应用领域在任何部门都特别有用,在这些部门中,客户满意度或仅仅知道客户想要什么是极其重要的。

今天,我们将揭示几个深度学习模型,正是这样做的。我们今天将开发的模型可以识别一些人类情感以及一些手势。我们将尝试识别 6 种情绪,即愤怒、快乐、中性、恐惧、悲伤和惊讶。我们还将识别 4 种手势,即失败、胜利、超级和出拳。我们将进行实时表演,我们将得到模特的实时声音反应。

情绪模型将使用卷积神经网络从头开始构建,对于手指手势,我将使用 VGG-16 架构的迁移学习,并添加自定义层来提高模型的性能,以获得更好、更高的准确性。情绪分析和手指手势将为每个动作提供适当的声音和文本响应。我们将使用的衡量标准是准确性,我们将努力实现情感模型 1 的验证准确性至少为 50%,情感模型 2 的验证准确性超过 65%,手势模型的验证准确性超过 90%。

数据集:

现在,让我们来看看可供我们选择的数据集。

1。 Kaggle 的 fer2013 数据集 该数据集是一个开源数据集,包含 35887 张各种情绪的灰度图像,这些图像都被标记,大小为 48x48。面部表情识别数据集在机器学习国际会议(ICML)期间发布。这个 Kaggle 数据集将是本案例研究中用于情绪分析的更主要和更重要的数据集。

数据集在中的 excel 表格中给出。csv 格式并提取像素,在提取像素并预处理数据后,数据集看起来像下面发布的图像:

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

来源:作者图片

(如果第一个链接不工作,请参考该链接)。

2。 野外挑战中的第一个影响 这可以是本案例研究考虑的第二个数据集。第一个在野外影响的挑战是设计先进的深度神经架构,包括 AffWildNet,它允许我们利用 AffWild 数据库来学习特征,这可以用作实现维度和分类情感识别的最佳性能的先验。在下载链接中,我们会找到一个 tar.gz 文件,它包含 4 个文件夹:视频、注释、盒子和地标。然而,对于我们的情感识别模型,我们将严格地只考虑 fer2013 数据集。

3。 美国手语字母数据集 这将是手指手势检测的主要数据集。“美国手语”字母表数据集由来自美国手语的字母表的图像集合组成,被分成 29 个文件夹,这些文件夹代表各种类别。训练数据集包含 87,000 幅 200x200 像素的图像。

共有 29 类,其中 26 类用于字母 A-Z,3 类用于*空格、无。*这 3 个类对实时应用和分类非常有帮助。然而,对于我们的手势识别,我们将使用来自该数据的从 A 到 Z 的 4 个类,用于手指的一些适当的所需动作。该模型将被训练识别这些特定手势中的 4 个,即 A(出拳)、F(超级)、L(失败)和 V(胜利)。然后,我们将训练我们的模型来识别这些手势,并相应地对以下每一项做出适当的声音响应。

4。自定义数据集— 对于情感分析和手指手势检测,我们还可以使用自己、朋友甚至家人的自定义数据集来识别各种情感和手势。拍摄的图像将被灰度化,然后根据我们的要求调整大小。

预处理:

对于我们的情绪模型,我们将使用 Kaggle 的 fer2013 数据集,并将使用 ASL 数据集进行手势识别。我们可以开始执行模型所需的预处理。对于情感数据集,我们将查看预处理所需的库。

Pandas 是一个快速、灵活的开源数据分析库,我们将使用它来访问。csv 文件。

Numpy 用于多维数组上的处理。对于我们的数据预处理,我们将使用 numpy 来制作像素特征的数组。

OS 模块为我们提供了一种与操作系统交互的方式。

cv2 模块是计算机视觉/open-cv 模块,我们将使用它将像素的 numpy 数组转换成视觉图像。

tqdm 是一个可选的库,我们可以用它来可视化处理速度和每秒位数。

现在让我们使用 pandas 来读取 fer2013.csv 文件。

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

我们使用 pandas 读取 fer2013.csv 文件。fer2013 是面部表情识别。Kaggle 的 csv 文件。在。csv 文件我们有 3 个主要栏目-情感,像素和使用。情感栏由标签 0-6 组成。像素行包含数组格式的像素图像。使用列包含培训、公共测试和私有测试。让我们仔细看看这个。

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

标签在 0-6 的范围内,其中:

0 =生气,1 =厌恶,2 =恐惧,3 =开心,

4 =悲伤,5 =惊喜,6 =中性。

像素由像素值组成,我们可以将其转换为数组形式,然后使用 open cv 模块 cv2 将像素数组转换为我们可以可视化的实际图像。Usage 列由 Training、PublicTest 和 PrivateTest 组成。我们将使用训练来存储训练数据集的位置,剩余的 PublicTest 和 PrivateTest 将用于存储验证文件夹中的图像。

现在让我们相应地提取这些图像。在下面的代码块中,我将展示一个类的训练和验证。在这个代码块中,我们将从 pixel 的列中提取图像,然后我们将创建一个可以从 Usage 列中跟踪的 train 和 validation 文件夹。对于每个训练和验证目录,我们将创建所有 7 个文件夹,其中包含愤怒、厌恶、恐惧、快乐、悲伤、惊讶和中立。

我们遍历数据集,将像素从字符串转换为浮点,然后将所有浮点值存储在 numpy 数组中。我们正在转换尺寸为 48x48 的图像,这是我们想要的图像尺寸。(这一步是可选的,因为给定的像素已经是期望的大小。)

如果用法是作为训练给出的,那么我们为每种情绪制作一个训练目录和单独的目录。我们将图像存储在正确的情感目录中,可以通过情感栏的标签找到该目录。

对于我们认为使用值为 PublicTest 和 PrivateTest 的验证目录,类似地重复这些步骤。情绪由情绪栏中的标签分类,类似于火车目录的工作方式。

在这个步骤之后,现在完成了用于训练情绪的所有数据预处理,并且我们已经成功地提取了情绪识别模型所需的所有图像,现在我们可以继续进行进一步的步骤。幸运的是,我们不必为手势数据做大量的预处理。下载 ASL 数据集,然后创建 train1 和 validation1 文件夹,如下所示:

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

train1 和 validation1 目录有 4 个子目录,如图所示。我们将用字母“L”代表失败者,“A”代表重击,“F”代表超级,“V”代表胜利。总结下面的字母和手势:

L =失败者| A =出拳| F =超级| V =胜利

ASL 数据集包含每个字母的 3000 幅图像。因此,我们将使用前 2400 幅图像进行训练,其余 600 幅图像用于验证。这样,我们将数据分成 80:20,训练:验证比率。将每个字母“L”、“A”、“F”和“V”的前 2400 个图像粘贴到 train1 文件夹中它们各自的子目录中,并将剩余的 600 个图像粘贴到 validation1 文件夹中它们各自的子目录中。

探索性数据分析(EDA):

在开始训练我们的情绪和手势模型之前,让我们看看预处理步骤后我们手中的图像和整体数据。首先,我们将研究情绪数据的 EDA,然后我们将研究手势数据。从情绪数据开始,我们将绘制一个条形图和散点图来查看数据集是平衡的、相当平衡的还是完全不平衡的。我们将查阅列车目录。

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

条形图:

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

散点图:

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

我们可以注意到,这是一个相当平衡的模型,除了“厌恶”的图像相对较少。对于我们的第一个情绪模型,我们将完全放弃这种情绪,我们将只考虑剩下的 6 种情绪。现在让我们看看情感数据集的训练和验证目录是什么样子的。

火车:

列车数据的条形图和散点图如下所示:

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

每个数据集的训练图像如下所示:

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

验证:

列车数据的条形图和散点图如下所示:

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

每个数据集的验证图像如下所示:

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

分析完我们的情绪数据集后,我们可以继续分析手势数据集,执行与上面类似的分析,并理解手势数据集。由于用于训练和验证的手势数据的数据集是完全平衡的,因此分析它们更容易。手势数据集的训练和验证数据将在下一部分进行分析,类似的图像也将显示出来。

这就完成了我们对情绪模型的探索性数据分析。我们现在可以开始建立我们的情感识别模型。首先,我们将使用图像数据增强来建立情绪模型,然后我们将建立手势模型。稍后,我们将直接从。csv 文件,并尝试获得更高的准确性。最后,我们将创建一个最终模型来运行整个脚本。

情绪模型-1:

在模型 1 中,我们将使用数据增强技术。数据扩充的正式定义如下-

数据扩充是一种策略,使从业者能够显著增加可用于训练模型的数据的多样性,而无需实际收集新的数据数据扩充裁剪、填充和水平翻转等技术通常用于训练大型神经网络。

参考:bair.berkeley.edu

我们现在将继续导入所需的库,并指定训练模型所需的一些参数。

导入所有重要的所需深度学习库来训练情绪模型。
Keras 是一个应用编程接口(API),可以运行在 Tensorflow 之上。
Tensorflow 将是我们用来构建深度学习模型的主要深度学习模块。
imagedata generator 用于数据扩充,模型可以看到模型的更多副本。数据扩充用于创建原始图像的副本,并在每个时期使用这些变换。
将使用的训练层如下:
1。输入 =我们传递输入形状的输入层。
2。 Conv2D =卷积层与输入结合,提供张量
3 的输出。 Maxpool2D =对卷积层的数据进行下采样。
4。批量标准化 =这是一种用于训练深度神经网络的技术,它将每个小批量的输入标准化到一个层。这具有稳定学习过程和显著减少训练深度网络所需的训练时期的效果。
5。 Dropout = Dropout 是一种在训练过程中忽略随机选择的神经元的技术。它们是随机“退出”的,这防止了过度拟合。
6。密集 =完全连接的层。7。展平 =将整个结构展平为一维数组。
模型可以建立在类似模型的结构中,也可以按顺序建立。
使用 l2 正则化进行微调。
所使用的优化器将是 Adam,因为它比该模型上的其他优化器执行得更好。
Numpy 用于数值数组类运算。
pydot_ng 和 Graphviz 用于制作剧情。我们也在导入操作系统模块,使其与 Windows 环境兼容。

num_classes 定义了我们必须预测的类别的数量,即愤怒、恐惧、快乐、中性、惊讶和中性。
从探索性的数据分析中我们知道图像的维数是:
图像高度= 48 像素
图像宽度= 48 像素
类别数= 1 因为图像是灰度图像。
对于图像增强的训练,我们将考虑 32 的批量大小。

为存储的图像指定序列和验证目录。
train_dir 是包含用于训练的图像集的目录。
验证目录是包含验证图像集的目录。

数据扩充:

我们现在来看看数据扩充代码:

ImageDataGenerator 用于图像的数据扩充。
我们将复制和制作
原始图像的转换副本。Keras 数据生成器将使用副本和
而不是原件。这对于每个时期的训练都是有用的。

我们将重新缩放图像,并更新所有参数,以适应我们的模型。参数如下:
1。重缩放 =重缩放 1。/255 来归一化每个像素值
2。旋转 _ 范围 =指定旋转的随机范围
3。 shear_range =指定逆时针范围内每个角度的强度。
4。 zoom_range =指定缩放范围。
5。 width_shift_range =指定扩展的宽度。6。 height_shift_range =指定延伸的高度。7。水平 _ 翻转 =水平翻转图像。8。 fill_mode =根据最近的边界填充。

train _ data gen . flow _ from _ directory 取目录路径&生成批量增广数据。可调用属性如下:
1。训练目录 =指定我们存储图像数据的目录。
2。 color_mode =我们需要指定图像分类方式的重要功能,即灰度或 RGB 格式。默认值为 RGB。
3。 target_size =图像的尺寸。
4。 batch_size =流水作业的数据批次数。
5。 class_mode =确定返回的标签数组的类型。
“分类”将是 2D 一键编码的标签。
6。无序播放 =无序播放:是否无序播放数据(默认值:True)
如果设置为 False,则按字母数字顺序对数据进行排序。

情绪模型-1:

现在,我们将着手构建模型。

我们将为我们的模型使用一个顺序类型的架构。我们的顺序模型总共有 5 个块,即三个卷积块、一个全连接层和一个输出层。我们将有 3 个卷积块,其滤波器的大小分别为 32、64 和 128。内核大小将是(3,3)并且内核初始化器将是 he_normal。我们也可以使用 l2 规范化的核正则化。我们首选的激活是 elu,因为它通常在图像上表现得更好。输入形状将与我们的每个训练和验证图像的大小相同。
批处理规范化层-批处理规范化是一种提高人工神经网络的速度、性能和稳定性的技术。最大池用于缩减数据采样。脱落层用于防止过度配合。
全连通块由 64 个滤波器的密集层和一个批处理归一化组成,后面是一个丢弃层。在通过密集层之前,数据被展平以匹配维度。
最后,输出层由带有 softmax 激活的密集层组成,根据 num_classes 给出概率,num _ classes 代表要进行的预测的数量。

模型图:

这是我们建立的整体模型的样子:

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

回访:

我们将导入培训我们的模型所需的 3 个回调。3 个重要的回调是 ModelCheckpoint、ReduceLROnPlateau 和 Tensorboard。让我们看看每个回调函数执行什么任务。

  1. ModelCheckpoint —这个回调用于存储我们的模型在训练后的权重。通过指定 save_best_only=True,我们只保存模型的最佳权重。我们将使用准确性指标来监控我们的培训。
  2. ReduceLROnPlateau —该回调用于在指定数量的时期后降低优化器的学习率。这里,我们将耐心指定为 10。如果准确度在 10 个时期后没有提高,那么我们的学习率相应地降低 0.2 倍。这里用于监控的指标也是准确性。
  3. tensor board—tensor board 回调用于绘制图形的可视化,即绘制精度和损耗的图形。

编译并拟合模型:

我们正在最后一步编译和装配我们的模型。这里,我们正在训练模型并将最佳权重保存到 emotions.h5,这样我们就不必重复地重新训练模型,并且可以在需要时使用我们保存的模型。我们将对训练和验证数据进行训练。我们使用的损失是 categorical _ crossentropy,它计算标签和预测之间的交叉熵损失。我们将使用的优化器是 Adam,学习率为 0.001,我们将根据指标准确性编译我们的模型。我们将在增强的训练和验证图像上拟合数据。在拟合步骤之后,这些是我们能够在训练和验证损失和准确性上实现的结果。

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

图表:

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

观察:

该模型能够很好地执行。我们可以注意到,训练和验证损失不断减少,训练和验证精度不断提高。在深度学习模型中没有过度拟合,并且我们能够实现大约 51%的准确度和大约 53%的验证准确度。

这是第一部分,伙计们!我希望你们都像我写这篇文章一样喜欢阅读这篇文章。在下一部分中,我们将介绍手势训练模型,然后研究第二个情绪训练模型,我们可以使用它来实现更高的准确性。最后,我们将创建一个最终管道来实时访问模型,并从模型中获得关于特定情绪或手势的声音响应。我还将发布完整代码、脚本和构建模块的 GitHub 库。敬请期待下一部分,祝你有美好的一天!

使用深度学习的人类情感和手势检测器:第 2 部分

原文:https://towardsdatascience.com/human-emotion-and-gesture-detector-using-deep-learning-part-2-471724f7a023?source=collection_archive---------42-----------------------

情感手势检测

深入探究人类情感和手势识别

大家好!欢迎回到使用深度学习的人类情感和手势检测器的第 2 部分。如果你还没有看过,在这里 **看看第一部分**在本文中,我们将介绍手势模型的训练,并探讨如何提高情绪模型的准确性。最后,我们将使用计算机视觉创建一个最终管道,通过它我们可以访问我们的网络摄像头,并从我们训练的模型中获得声音响应。事不宜迟,让我们开始编码并理解这些概念。

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

资料来源:法国-v-unsplash

为了训练手势模型,我们将使用迁移学习模型。我们将使用 VGG-16 架构来训练模型,并排除 VGG-16 的顶层。然后,我们将继续添加我们自己的自定义层,以提高精度和减少损失。我们将尝试在我们的手势模型上实现大约 95%的整体高准确性,因为我们有一个相当平衡的数据集,并使用图像数据增强和 VGG-16 迁移学习模型的技术。与我们的情绪模型相比,这项任务可以很容易地实现,并且在更少的时期内实现。在以后的文章中,我们将介绍 VGG-16 架构是如何工作的,但现在让我们继续分析手头的数据,并对手势数据集进行探索性数据分析,类似于我们在提取图像后对情感数据集进行的分析。

探索性数据分析(EDA):

在下一个代码块中,我们将查看 train 文件夹中的内容,并尝试计算出 train 文件夹中每个手势类别的总类别数。

火车:

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

我们可以查看 train1 文件夹中的四个子文件夹。让我们直观地看看这些目录中的图像数量。

条形图:

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

我们可以从条形图中注意到,每个目录都包含 2400 个图像,这是一个完全平衡的数据集。现在,让我们开始可视化火车目录中的图像。我们将查看每个子目录中的第一个图像,然后查看这些文件夹中每个图像的尺寸和通道数。

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

图像的尺寸如下:

图像的高度= 200 像素
图像的宽度= 200 像素
通道数= 3

类似地,我们可以对 validation1 目录执行分析,并检查我们的验证数据集和验证图像看起来如何。

验证:

条形图:

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

我们可以从条形图中注意到,每个目录包含 600 个图像,这是一个完全平衡的数据集。现在,让我们开始可视化验证目录中的图像。我们将查看每个子目录中的第一个图像。这些文件夹中每个图像的通道尺寸和数量与列车目录相同。

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

至此,我们完成了手势数据集的探索性数据分析(EDA)。我们可以继续构建姿势训练模型以进行适当的姿势预测。

手势训练模型:

让我们看看下面的代码块,以了解我们正在导入的库,并设置类的数量及其维度和各自的目录。

导入所有重要的所需深度学习库来训练手势模型。
Keras 是一个应用编程接口(API),可以运行在 tensorflow 之上。
Tensorflow 将是我们用来构建深度学习模型的主要深度学习模块。
从 tensorflow,我们将提到一个名为 VGG-16 的预训练模型。我们将使用带有定制卷积神经网络(CNN)的 VGG-16,即我们将使用我们的迁移学习模型 VGG-16 以及我们自己的定制模型来训练一个整体准确的模型。keras 的 VGG-16 模型使用 imagenet 权重进行预训练。

ImageDataGenerator 用于数据扩充,其中模型可以看到模型的更多副本。数据扩充用于创建原始图像的副本,并在每个时期使用这些变换。
将使用的训练层如下:
1。输入 =我们传递输入形状的输入层。
2。 Conv2D =卷积层与输入结合,提供张量输出。
3。 Maxpool2D =对卷积层的数据进行下采样。
4。批量标准化 =这是一种用于训练深度神经网络的技术,它将每个小批量的输入标准化到一个层。这具有稳定学习过程和显著减少训练深度网络所需的训练时期的效果。
5。 Dropout = Dropout 是一种在训练过程中忽略随机选择的神经元的技术。它们是随机“退出”的,这防止了过度拟合。
6。密集 =全连接层。
7。展平 =将整个结构展平成一个一维数组。

模型可以构建在如该特定模型所示的模型状结构中,或者可以以顺序方式构建。在这里,我们将使用一个类似功能 API 模型的结构,它不同于我们的情绪模型,情绪模型是一个顺序模型。我们可以使用 l2 正则化进行微调。
所使用的优化器将是 Adam,因为它比该模型上的其他优化器性能更好。我们也正在导入操作系统模块,使其与 Windows 环境兼容。

我们有 4 类手势,即出拳、胜利、超级
和失败者。
每个图像具有 200 的高度和宽度,并且是
RGB 图像,即三维图像。
我们将使用 128 的 batch_size 进行图像数据扩充。

我们还将为存储的图像指定序列和验证目录。
train_dir 是包含用于训练的图像集的目录。
验证目录是包含验证图像集的目录。

数据扩充:

我们将查看手势数据集的图像数据增强,它类似于情绪数据。

ImageDataGenerator 用于图像的数据扩充。我们将复制和制作原始图像转换的副本。Keras 数据生成器将使用副本和
而不是原件。这对每个时期的训练都很有用。

我们将重新缩放图像,并更新所有参数,以适应我们的模型:
1。重新缩放 =按 1 重新缩放。/255 来归一化每个像素值
2。旋转 _ 范围 =指定旋转的随机范围
3。 shear_range =指定逆时针范围内每个角度的强度。
4。 zoom_range =指定缩放范围。
5。 width_shift_range =指定扩展的宽度。
6。 height_shift_range =指定延伸的高度。7。水平 _ 翻转 =水平翻转图像。8。 fill_mode =根据最近的边界填充。

train _ data gen . flow _ from _ directory 取目录路径&生成批量增广数据。可调用属性如下:
1。训练目录 =指定我们存储图像数据的目录。
2。 color_mode =我们需要指定图像分类方式的重要功能,即灰度或 RGB 格式。默认值为 RGB。
3。 target_size =图像的尺寸。
4。 batch_size =流程操作的数据批次数。
5。 class_mode =确定返回的标签数组的类型。
“分类”将是 2D 一键编码的标签。
6。无序播放 =无序播放:是否无序播放数据(默认值:True)
如果设置为 False,则按字母数字顺序对数据进行排序。

在下一个代码块中,我们在变量 VGG16_MODEL 中导入 VGG-16 模型,并确保我们输入的模型没有顶层。
使用没有顶层的 VGG16 架构,我们现在可以添加自定义层。为了避免训练 VGG16 层,我们给出下面的命令:
Layers . trainiable = False。我们还将打印出这些层,并确保它们的训练设置为假。

手指手势模型:

下面是我们正在构建的手指手势模型自定义层的完整代码

我们正在建立的手指手势模型将通过使用
迁移学习来训练。我们将使用没有顶层的 VGG-16 模型。
我们将在 VGG-16 模型
的顶层添加自定义层,然后我们将使用这个迁移学习模型来预测
手指手势。
定制层由输入层组成,基本上是 VGG-16 模型的
输出。我们添加一个卷积层,它有 32 个滤波器,
kernel_size 为(3,3),默认步长为(1,1),我们使用激活
作为 relu,he_normal 作为初始化器。
我们将使用池层对来自
卷积层的层进行下采样。
在样品通过展平
层后,两个完全连接的层作为 relu 激活使用,即
密集结构。
输出层有一个 softmax 激活,num_classes 为 4,
预测 num_classes 的概率,即 Punch、Super、
Victory 和 Loser。
最终模型将输入作为 VGG-16 模型
的起点,输出作为最终输出层。

回调类似于前面的情感模型,所以让我们直接进入手势模型的编译和训练。

编译并拟合模型:

我们正在最后一步编译和装配我们的模型。这里,我们正在训练模型并将最佳权重保存到 gesturenew.h5,这样我们就不必重复地重新训练模型,并且可以在需要时使用我们保存的模型。我们正在训练和验证数据。我们使用的损失是 categorical _ crossentropy,它计算标签和预测之间的交叉熵损失。我们将使用的优化器是 Adam,学习率为 0.001,我们将根据指标准确性编译我们的模型。我们将在增强的训练和验证图像上拟合数据。在拟合步骤之后,这些是我们能够在训练和验证损失和准确性上实现的结果。

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

图表:

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

观察:

该模型能够非常好地执行。我们可以注意到,训练和验证损失不断减少,训练和验证精度不断提高。深度学习模型中没有过度拟合,我们能够实现超过 95%的验证准确率。

奖金:

情绪模型-2:

这是我们将要研究的另一个模型。通过这种方法,我们可以用完全相同的模型获得更高的精度。经过一些研究和实验,我发现我们可以通过使用 numpy 阵列中的像素并训练它们来实现更高的精度。有一篇精彩的文章作者使用了类似的方法。我强烈建议用户也去看看那篇文章。这里,我们将把这种方法用于定制的顺序模型,看看我们能够达到什么样的精度。导入与前面的情感模型相似的库。更多信息请参考本文末尾的 GitHub 资源库。下面是为模型准备完整数据的代码块。

num_classes =定义了我们必须预测的类别的数量,即愤怒、恐惧、快乐、中性、惊讶、中性和厌恶。
通过探索性的数据分析我们知道图像的尺寸为:
图像高度= 48 像素
图像宽度= 48 像素
通道数= 1 因为是灰度图像。我们将考虑该型号的批量为 64。

我们将用这种方法将像素转换成一个列表。我们把数据按空格分开,然后把它们作为数组,再把它们整形成 48,48 的形状。我们可以继续扩展维度,然后将标签转换为分类矩阵。

最后,我们将数据分为训练、测试和验证。这种方法与我们以前的模型方法略有不同,在以前的模型方法中,我们只利用训练和验证,因为我们以 80:20 的比例划分数据。这里,我们以 80:10:10 的格式划分数据。我们将使用与我在上一部分中使用的相同的序列模型。让我们再次看看这个模型,看看它在训练后的表现如何。

我们能够对所有 7 种情绪实现的最终准确度、验证准确度、损失和验证损失如下:

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

图表:

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

观察:

该模型能够很好地执行。我们可以注意到,训练和验证损失不断减少,而训练和验证准确性不断提高。深度学习模型中没有过度拟合,我们能够实现超过 65%的验证准确性和几乎 70%的准确性,并减少整体损失。

录像:

在本节中,我们将制作模特声音反应所需的录音。我们可以为每一个模型和每一种情绪或手势创建定制的录音。在下面的代码块中,我将展示一个分别记录一种情绪和一种手势的例子。

了解导入的库:

  1. Google Text-to-Speech 是一个 python 库,我们可以用它将文本转换成语音翻译响应。
  2. playsound =这个模块对于直接从指定路径播放. mp3 格式的声音很有用。
  3. 这个模块提供了几个对文件和文件集合的高级操作。具体而言,提供了支持文件复制、移动和移除的功能。

在这个 python 文件中,我们将为情绪和所有手势创建所有需要的语音记录,并将它们存储在 reactions 目录中。我展示了一个例子,展示了如何在代码块中为每种情绪或手势创建定制的语音记录。录音的全部代码将在本文末尾的 GitHub 资源库中发布。

最终管道:

我们最终的管道将包括加载我们保存的模型,然后使用它们来预测情绪和手势。我将在 GitHub 库中包含 2 个 python 文件。final_run.py 接受用户的选择,运行情感或手势模型。final_run1.py 同时运行情绪和手势模型。随便用哪个对你们来说更方便。我将使用从第一情绪训练模型和训练手势模型保存的模型。我们将使用一个名为Haar cascode _ frontal face _ default . XML的附加 XML 文件来检测人脸。让我们试着从下面的代码块中理解最终管道的代码。

在这个特定的代码块中,我们导入了所有需要的库,我们将使用这些库来获得模型对预测标签的声音响应。 cv2 是计算机视觉(open-cv)模块,我们将使用它来实时访问和使用我们的网络摄像头。我们正在导入时间模块,以确保我们仅在 10 秒钟的分析后得到预测。我们加载保存的情绪和手势模型的预训练权重。然后,我们指定用于检测人脸的分类器。然后,我们分配所有可以通过我们的模型预测的情绪和手势标签。

在下一个代码块中,我们将查看情绪模型的代码片段。有关完整的代码,请参考本文末尾的 GitHub 资源库。

在这个选择中,我们将运行情绪模型。当检测到网络摄像头时,我们将读取帧,然后当 haar cascade 分类器检测到人脸时,我们将继续绘制一个矩形框(类似于边界框)。为了更好的预测,我们将面部图像转换成与训练图像相似的 48、48 维的灰度。仅当 np.sum 检测到至少一个面部时,才进行预测。keras 命令 img_to_array 将图像转换为数组维数,如果检测到更多图像,我们将扩展维数。预测是根据标签做出的,录音会相应播放。

让我们看看运行手势模型的代码片段。

在这个选择中,我们将运行手势模型。当检测到网络摄像头时,我们将读取帧,然后在屏幕中间绘制一个矩形框,这与情绪模型不同。用户必须将手指放入所需的框中,以进行以下工作。仅当 np.sum 检测到至少一个手指模型时,才进行预测。keras 命令 img_to_array 将图像转换为数组维数,如果检测到更多图像,我们将扩展维数。预测是根据标签做出的,录音会相应播放。至此,我们的最终流水线完成,我们已经分析了构建人类情感和手势检测器模型所需的所有代码。我们现在可以开始释放视频捕获并销毁所有窗口,这意味着我们可以停止运行计算机视觉模块正在运行的帧。

结论:

我们终于完成了对整个人类情感和手势检测器的检查。完整代码的 GitHub 库可以在这里找到。我强烈建议尝试各种参数以及我们已经建立的所有 3 个模型中的层,并尝试实现更好的结果。各种记录也可以根据用户的需要进行修改。也有可能尝试各种迁移学习模型或构建您的定制架构,并实现整体更好的性能。尽情体验和尝试不同的独特的模型吧!

最终想法:

我非常喜欢写这个 2 部分的系列,它绝对是一个爆炸。我希望你们都像我写这篇文章一样喜欢阅读这篇文章。我期待着在未来发布更多的文章,因为我发现它非常令人愉快。因此,任何关于未来文章的想法或任何你们想让我涵盖的话题都将受到高度赞赏。感谢每一个坚持到最后的人,祝你们度过美好的一天!

人类智能、计算和通用机器

原文:https://towardsdatascience.com/human-intelligence-computation-and-the-universal-machine-f8e78c93355f?source=collection_archive---------21-----------------------

数学和计算的流动性

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

大多数人对人类认知只不过是计算的概念感到不舒服。毕竟人类目前在大多数任务上远远优于机器。用某种干巴巴地将输入转化为输出的符号搅动机器来框定人类思维的能力,似乎太局限了。

但是关于为什么会这样的争论似乎总是不了了之。人类的思维有什么不同?如果人类的智力不仅仅是计算,那么这更多的 T1 来自哪里?

我认为人们对机器类比的厌恶源于他们对计算本身的误解。当计算被视为某种僵硬的、机械的构造时,人和机器之间的对比是明显的。但是计算绝不是固定和僵化的。它比大多数人意识到的更有表现力,甚至创造力。

要理解计算不仅仅是程序输出,我们需要了解机器是如何做出决策的,以及普适性的概念。更重要的是对哥德尔和图灵发现的东西的欣赏和理解。

只有理解数学和计算的流动性和创造性,人们才能充分理解计算类比,并从这个基础上正确地开始他们的论点。在选择辩论的任何一方之前,我们必须认识到计算的核心是什么。

本文旨在帮助提供这一基础。

我将在整篇文章中使用术语计算“类比”(带引号),但而不是作为人类认知不同于计算的声明(即只是的一个类比)。一个人不能把结论放进他们的前提,否则他们的写作就是循环。因此,我使用计算“类比”只是为了比较人类和机器的思维。

框定问题

最近,⁴写了两篇文章,认为基于计算的普遍性,人们不可能比其他人更聪明,并邀请我对这一观点发表意见。事实证明,比较智能方法是一种将人类和机器并列的好方法。因此,我不会对特里尚克的文章中提出的观点进行评论,而是利用这个机会来阐述我们将人类认知与计算进行比较的问题。

概观

  • 敏捷
  • 机器思维
  • 从符号洗牌到普遍性
  • 数学和计算的创造力
  • 论计算类比的有效性
  • 速度即熟悉度
  • 天才神话

我们开始吧。

敏捷

对许多人来说,有些人比其他人“聪明”的想法似乎是显而易见的。有些人似乎能够更快地得出答案*、和/或给出更好的*答案。

但是一个人比另一个人“更聪明”的想法是值得怀疑的,原因有很多。首先,智力可以被描述为与逻辑、理解、意识、推理、计划等有关。说我们可以观察到一个人在所有认知范畴中超越他人是一种戏剧性的过度简单化。

我们还知道,像智商这样的智力单一定义在统计学上和科学上都不成立,尽管心理学家(和在线测试者)一直在推动它。我还没有看到反对参考文章的论点不是逻辑谬误或者缺乏对统计、概率和科学的正确理解。

但是,在试图通过智力来比较人们时,人们可能会采取另一个角度。也许比较智力可以通过在人类认知和计算之间画出平行线来挽救?

从计算的角度思考是有吸引力的。可以说,掌握计算“类比”(记住,故意引用)比试图挖掘统计/概率错误或理解复杂和简单现象之间的根本差异更容易。机器和人类认知之间似乎有一种直观的联系,即使对于那些将这种相似性视为被迫的人来说也是如此。

当人们用计算类比来论证“智能”时,他们在某种意义上是在谈论 处理 能力。计算机将输入转化为输出的能力有多强,有些人能比其他人更好地完成这种转化吗?人们可能会寻找有形计算组件的心理类似物,如 RAM、硬盘驱动器和 CPU。当然,已知会影响计算的概念有物理版本,如接口内存吞吐量并行性和缺陷

但是当你在更基础的层面上理解计算时,就没有必要诉诸个体之间的物理差异。计算最终是不可知的,其原因在本文中将变得显而易见。计算是关于数学、符号和信息,以及当复杂性达到一定程度时,这些结构所提供的矛盾的自由。

如果我们要在人们的认知能力之间进行比较,使用计算作为类比,那么我们需要理解“思维”在计算中是如何建模的。

机器思维

首先,我们将看看机器如何解决问题,为此,我们必须了解问题解决本身的性质。这就把我们带到了计算中问题是如何建模的。

决策问题

在计算中,决策建模的方式是通过使用所谓的决策问题。决策问题是带有是/否答案的问题,并且构成了计算复杂性理论的主要部分。

当人类在决策中引入更多的 主观性 时,我们需要围绕一些精确的东西开始我们的比较。我们将在后面看到,机器也通过利用过去的“经验”和使用近似值来得出它们的解决方案,从而引入了“主观性”。

决策问题根据其复杂程度进行分类。两个最著名的复杂性类是 PNP 。p 代表多项式时间, NP 代表非确定性多项式时间。把这些想成是迅速解决了分别迅速验证了P 既可以快速求解又可以快速验证,而 NP 只能(?)被迅速验证(不太对,但留在我身边)。

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

图 2 决策问题的两种最常见的复杂性类别

注意 NP 复杂性类的“慢慢解决”旁边的问号。我们并不确切知道 NP 问题是否只能慢慢解决,但是从来没有人找到一个 NP 问题的快速而精确的解决方案(对于一个合理输入大小的问题)。这就是计算机科学中著名的 P vs NP 问题,该问题问是否存在比验证更难计算的问题(或者说,快速验证其解的问题是否也能快速解决?)?

复杂性理论家们目前的共识是 P ≠ NP,因为还没有人在合理规模的输入上找到一个实例来暗示 otherwise⁸.

这篇文章为什么要关心 P vs NP?a 类决策问题的复杂性告诉我们一个算法能够多有效地得到它的解决方案。既然我们使用计算来比较人们的智力,我们就需要欣赏人们在应对挑战时所解决的那种问题。

复杂性类别在技术上并不通过难度来划分问题,因为复杂性类别的下限是未知的。现在,我们只能说复杂性类向我们展示了一些问题可以快速解决(因此可以预见),而其他问题没有明显的快速解决方案。 3 显示了 PNP 复杂度类之间的定性比较。

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

图 3P 和 n P 在求解和验证速度上的差异。对于 P ,计算答案的时间随着输入大小的多项式增加。对于 NP ,计算答案的时间随着输入的大小呈指数增长(在确定性图灵机上)。

绘制的线让我们感觉到 P 和 NP 是多么的不同。为了完整地完成这个对话,我们需要包括另外两个复杂性类别NP-HardNP-Complete图 4 显示了我们的 4 个复杂度等级,按照复杂度递增排列。

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

图 4 四大复杂度类之间的关系(假设 P ≠ NP 下)。

当计算机试图解决一个问题时,它们试图解决的是这些复杂性类别中的一个挑战。挑战落在哪里显然取决于复杂性,但更具体地说,问题被认为有多困难。同样,我们只能对 P 问题的难度进行明确的分类,因为它们有明显的快速解决方案。所有其他问题都被认为更加困难,因为还没有找到快速(准确)的解决方案。

重要的是要明白,我们不能用问题的绝对难度来标记它,而只能用它的相对难度来标记。这是因为下界极难证明。

下面是复杂性类别定义:

  • P :能在多项式时间内求解(“快速求解”);
  • NP :可以在多项式时间内验证(“快查”);
  • NP-hard :如果 NP 中的任何问题都可以在多项式时间内归结为 it (但本身不包含在 NP 内);
  • NP-complete : 如果 NP 中的任何问题都可以归结为在多项式时间内并且它在 NP 中。

我们可以使用图 4 中的图表来推理一个程序所处理的挑战的相对难度。解决一个 P 问题和解决一个 NP 问题是非常不同的。

事实上,一个人试图解决的问题的类型也改变了“解决”的含义说计算机“解决”了一个问题并不能告诉我们太多,除非我们同意“解决”这个词的意思。事实证明,这取决于你问谁。

数学家和工程师

问数学家“求解”这个词是什么意思,他们会告诉你一些非常精确的东西。数学 是对未知变量的表达式赋值,使得等式为真。这种精度符合数学想要实现的目标。

但是如果你问一个工程师“解决”是什么意思,他们会告诉你完全不同的东西。这是因为工程解决方案是起作用,提供效用的东西。这是一个足够好的解决方案,可以在给定的问题空间中取得进展。

这两种类型的求解都是由计算机实现的,使用哪一种取决于问题的复杂程度。P 问题使用产生精确答案的例程来解决,而 NP 问题使用近似法,称为试探法,以达到足够好的解决方案。

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

图 5 计算机解决问题的两种方式。属于 P 复杂性类别的问题通过例程解决。使用试探法解决属于 NP 复杂性类别的问题。

复杂类问题是通过“算法”来解决的这意味着有一个由明确定义的步骤组成的例程。这是可能的,因为 P 问题的计算有一个已知的下限。我们可以预测解决这些问题需要多长时间。但是 NP 复杂度类包含了没有人精确解决的问题,使用一个显式的逐步例程,对于合理的输入大小。NP 问题要求我们大幅放宽对“解决”的定义

这是我们第一次看到在处理真正困难的问题时,计算是多么“软”。人们根据严格的规则来设计计算,但这只适用于相对简单的问题,并有快速的解决方案。每当有人反对人类与计算机相似时,他们几乎总是错误地假设计算机以精确、严格的方式运行。

从技术上讲,我们可以想出一个循序渐进的例程来解决一个 NP 问题,但它需要在搜索空间中尝试所有可能的组合,才能得出答案。任何合理规模问题的搜索空间都是天文数字。这一计算将需要数百年,如果不是数千年的话。在搜索空间尝试所有可能的解决方案被称为蛮力。蛮力算法花费的时间太长,在 NP 复杂性类中不实用。

这就是为什么数学优化被用来得出NP 问题的解决方案,使用试探法。优化不会产生最佳解决方案(除非运气好),只会在给定可用资源的情况下产生足够好的结果。这是我们必须采取的方法,在合理的时间内“解决”不平凡(复杂)的问题。图 6 显示了使用优化解决问题的概念。

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

图 6 优化是在实际时间内解决重要问题的唯一方法。

在优化中,问题由目标定义,而不是由例程定义。通过设定一些目标来探索可能性空间。更好的解决方案是根据它们与实现目标的接近程度来评估的。更好的解决方案在图 6 中描述为一个球坐在某个误差面的较低位置。球越低,我们的目标和我们计算的结果之间的差距就越小。

这种方法是今天人工智能的核心。人工智能研究人员开始使用启发式方法来解决复杂的挑战,这并非巧合。传统的、基于规则的编程(例程)不能解决重要的问题。像识别人脸或自动驾驶汽车这样的任务的搜索空间太大,例程无法实际解决。

从这一点开始,我将把这两种方法称为常规解决启发式解决以区别它们。如果计算机要解决跨越不同复杂程度的问题,它们必须同时采用这两种方法。

在计算中也有我们使用元启发式的情况。这是当我们有不完整或不完美的信息(和/或有限的计算资源)时。转向元仍然属于优化方法,我们期待“学会如何学习”

下面是一些 P 和 NP 问题的例子:

例题套路题§ :

  • 增加
  • 整理
  • 串匹配

例题搜索问题(NP) :

  • 因子分解
  • 行程安排
  • 地图着色
  • 蛋白质折叠
  • 定理证明
  • 包装
  • 九宫格游戏
  • 旅行推销员

我们可以看到,机器可以处理跨越复杂范围的问题,处理的问题类型决定了计算机将采取的方法。机器如何处理各种复杂问题的重要性对我们使用计算类比来比较人有着重要的意义。如上所述,人们通常反对“机器思维”,因为他们认为计算机只能做出严格、僵化的决策。但这不是计算解决重要问题的方式。

人们通常反对“机器思维”,因为他们认为计算机只能做出严格、僵化的决策。但这不是计算解决重要问题的方式。

但不止于此。为了充分理解计算的力量,以及它与人类认知的相关性,我们需要看看普遍性。事实证明,当我们仔细观察 NP-HardNP-Complete 复杂性类时,这种现象的第一个迹象就变得明显了。

普遍性的暗示

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

对主要复杂性类别的回顾不仅仅允许我们通过解决问题所需的方法对问题进行分类。一些更基本的东西来自我们对决策问题复杂性的理解。P≦NP问题的核心是认识到较低复杂度的类与较高复杂度的问题有某种内在联系。

NP 完全问题代表 NP 中最难的问题*。让它们“完整”的是如果 其中任何一个可以在多项式时间内解决那么NP 中所有的 问题都可以在多项式时间内解决。换句话说,如果有人找到了一个 NP 完全问题的快速解决方案,那么所有的 NP 问题都可以快速解决(NP 中的每个问题都可以 化为 为 NP 完全问题)。*

问题之间的相似性告诉我们问题的相对难度。如果我们可以(有效地)将问题 A 简化为问题 B,那么 A 应该不会比 B 更难解决。这意味着一个 NP 完全问题在所有 NP 问题中是通用的

图 7 显示了所有 NP 问题折叠成 NP-Complete 的概念。这里我想强调的是这种崩溃对普遍性的意义,而不是讨论 P 对 NP 的通常含义(例如 RSA 加密)。这意味着所有非平凡的决策问题与“更简单”的问题有一些基本的共同点。

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

图 7NP 中的所有问题,如果有人找到了 NP 完全问题的快速解决方案,都将崩溃为 NP 完全问题类。这意味着所有的问题都有共同点。

问题之间的这种共同性是我们第一次暗示,计算有一个普遍的属性。虽然我们对日常问题的随意感知将它们划分为不同的类型和复杂程度,但它们的核心是所有问题之间不可否认的同一性。

记住,P 类问题是 NP 的子集。因此,NP 和 NP-Complete 之间的共性默认延伸到所有 P 问题。更有趣的是,NP 完全问题是 NP 类中最难的问题,这意味着 NP 中最难的问题通常与挑战性较低的问题相同。更进一步, NP-Hard 问题,至少和最难的 NP 问题一样难,所有 NP 问题都可以简化为 it

注意,不同复杂程度的问题之间的共有属性不依赖于 P=NP。可归约性已经证明了跨越所有复杂性类别的问题之间的联系。

问题难度更多地与我们对问题的感知有关,而不是问题本身的内在属性。

需要注意的两件重要事情:

  • 大多数人有兴趣解决的自然问题属于 NP;
  • 我们可以证明所有的 NP 问题都可以化简为 NP 完全问题,而不需要知道所有其他 NP 问题,只需要知道它们在 NP 中。

这两点意义重大。无论你的兴趣领域是什么,你都会面临 NP 类型的问题。但是,在这些挑战中,问题难度的感知差异有些虚幻。尽管这些问题看起来一点也不像,但从某种意义上说,它们都是同一个问题。

说到机器思维,我们知道计算能够解决不同复杂程度的问题。我们知道,解决不同问题的方法随着复杂性的变化而变化。我们也知道问题本身并没有我们想象的那么不同。

我们已经有足够多的东西开始在人类认知和计算之间进行强有力的比较,特别是在个体之间的比较智力方面。但有些人可能仍然觉得这种联系更多的是隐喻而非字面意义。回想一下我在引言中提到短语计算“类比”时引用的话如果你真的想用计算来推理人类的认知,不管你是否同意这种比较,你都必须欣赏真正普遍性的全部力量。

从符号洗牌到普遍性

计算的真正普遍性远远超过仅仅将问题简化成其他问题。真正的普适性意味着计算机拥有计算任何事物的表象能力和*。具体来说,这意味着通用机器可以计算或模拟任何类型的*模式。**

机械是如何捕捉到我们周围的丰富和变化的呢?当我把手伸过水或品尝成熟的草莓时,我看不到任何潜在的算法搅动我所经历的流动现实的迹象。

但是在高层次上,现实确实是某种计算。输入不断地转换成我们观察到的输出;资源从一种形式转换成另一种形式时的持续搅动。来自我之前关于智力的文章:

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

但是为了理解我们所经历的丰富性是如何来自于像原始计算这样看似平凡的事情,我们需要放弃数学和计算是僵化和机械的观念。我们需要了解符号是如何变得比它们本身更有意义的。

一切都从哥德尔开始

当我们听到库尔特·哥德尔时,我们显然会想到他的两个不完全性定理。这是数理逻辑的两个定理,展示了每一个能够模拟基本算术的形式公理系统的固有局限性。它说所有数学的一套完整一致的公理是不可能的。

形式系统是一个配有推理规则的公理系统,它允许人们产生新的定理。公理集要求是有限的或至少是可判定的,也就是说,必须有一种算法(一种有效的方法)使人们能够机械地判定一个给定的陈述是否是公理。

哥德尔的 不完全性定理:

  1. 没有一个一致的公理系统能够证明自然数算术的所有真理,该公理系统的定理可以通过有效的程序(即算法)列出。对于任何这样的系统,总会有关于自然数的陈述是正确的,但在系统内是不可证明的。
  2. (…第一个的延伸)表明系统不能证明它自己的一致性

一些具体的定义:如果没有一个陈述,使得陈述本身和它的否定在系统中都是可导的,那么某事是一致的。一个形式系统是完备的如果对于该系统的每一个陈述,该陈述或者它的否定可以在该系统中被导出(即被证明)。

哥德尔的两个不完全性定理是现代逻辑中最重要的结果之一,具有多方面的深刻含义。也许最重要的是它所说的数学和计算的普遍性。哥德尔的工作巩固了形式系统所具有的极大灵活性,并最终巩固了计算中丰富的普遍性。为了理解这个重要的结果,我们需要更深入地探究哥德尔完成了什么。

哥德尔编号法

映射的概念是哥德尔著名论文的关键。这是数学意义上的“映射”,在这种情况下,两个事物之间存在某种联系。需要映射的原因是因为 Godel 不得不在不使用正式系统的情况下谈论正式系统。这很直观。如果我想评论一个系统的实用性或真实性,我不能用系统本身来做。

哥德尔所批评的系统是由伯特兰·罗素和阿尔弗雷德·诺斯·怀特海设计的,叫做数学原理。Bertrand 和 Alfred 试图实现希尔伯特让数学完整的梦想,使用没有意义的抽象符号(通过剥离意义,他们确保只展示数学的原始规则)。*

哥德尔的映射被称为“哥德尔编号”哥德尔编号可以为形式主义的每个符号公式证明分配一个唯一的编号(形式主义中的每个符号都有一个相应的哥德尔编号)。通过使用他的映射方案,哥德尔有效地将项目管理的形式主义算术化。

图 8 显示了哥德尔方法的简化概念。哥德尔用他的元数学来和谈论PM 的形式主义,但是以这样的方式,他的元数学与 PM 内部的符号紧密地**联系在一起。正是通过这一方案,哥德尔可以让首相“谈论自己”,从而立即创造出矛盾的可能性。****

任何时候我们进入元,我们就进入了悖论的领域,因为如果你能谈论一个系统,那么这个系统就会显得自相矛盾。康托尔在他的……和波普尔在他的……批判中使用了走向元

例如,通过在中文普通话上使用 meta,我可以说“中文普通话中没有普通话这个词。”虽然这毫无意义,但没有什么能阻止我这么说,因为我站在语言本身之外。

哥德尔能够做出元陈述,比如“公式 G 不能用 PM 的规则来证明。”这本身并不有趣,但是请记住,由于哥德尔编号,做这个元语句和 PM 做这个语句本身是一样的。这是因为哥德尔证明了元数学陈述和 PM 的形式主义之间有直接的对应关系。

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

图 8 哥德尔使用元数学是为了走出他所批判的形式主义。但是他的元数学与 PM 内部的符号有着密切的联系。这样,哥德尔可以让首相谈论自己。因此,如果他能证明他的元数学导致了矛盾,这意味着 PM 本身也有矛盾的能力。

哥德尔证明了所有关于形式主义内部表达式的结构性质的元数学陈述都可以 在“形式主义”本身内部被镜像。哥德尔用他的元陈述证明了 PM(以及任何形式主义)既是真实的又是形式上不可判定的,因此是不完整的。**

这个结果是巨大的。它对整个数学和认识论都有重大影响。但是哥德尔所展示的局限性与形式主义证明绝对真理的能力有关。我们在证明世界中失去的东西,我们在计算世界中获得了巨大的收益

事实证明,哥德尔的工作是形式主义通向极端灵活性的大门。要理解这一点,我们必须理解我称之为限制悖论的东西。

数学和计算的创造力

我特意为这篇文章设计了封面。虽然我们倾向于认为数学和计算是严格和机械的,但这种观点太局限了。虽然符号限制了机械操作的形式,但是这些操作并没有限制符号所代表的内容。数学和计算是流动的和高度表达的,但是为了理解这是如何可能的,我们必须理解递归和限制的悖论之间的关系。

递归和限制悖论

如果我告诉你,充分表达自己的唯一方式是给自己设限,会怎么样?这种自相矛盾的说法听起来并不疯狂。如果我限制自己只吃适当的食物和锻炼,我将自由地享受广泛的活动。如果我限制自己每天练习钢琴(而不是和朋友出去玩),我会让自己去演奏各种音乐。接受限制打开了大门。**

这个悖论比我们日常的偶然经历更为根本。数学和计算有限制打开它们,在计算中这是通过表象力量来实现的。

代表力是允许正式系统模拟/计算模式的东西。图 9 显示了不完整(受限)和完整形式主义之间的概念差异。

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

图 9 不完全形式主义比完全形式主义有更多的自由。不完整意味着形式主义有“活动”的“空间”。一个假设的完全形式主义在计算模式的能力上会受到严重的限制。

对你来说什么看起来更灵活?显然是有更多回旋余地的那个。不完整的形式主义获得了他们的代表力量因为他们在是完整的。如果一种形式主义的符号是完全一致和完整的,它们将无法制造普遍性所需的非理性矛盾。**

如果一种形式主义的符号是完全一致和完整的,它们将无法制造普遍性所需的非理性矛盾。

这意味着形式主义不需要为了模拟环境而象征性地表达环境。虽然人们根据哥德尔定理的限制来引用它,但是他们经常把它扩展到更大、更现实的计算世界。这是不正确的。

变得更加

只有一种方法可以让本来就有限的东西创造出比它本身更多的东西,那就是递归。一种形式主义必须能够“吃掉自己”,才能创造出超越自身符号的东西。这个事实在某种意义上是显而易见的。看下图:

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

图 10 受限系统通过递归可以创造出比自身更多的。**

我们的最终结果是我们从未开始过的。当然,这对于任何求和都是正确的,但是仅仅是求和,我们就会用尽符号来使用。世界的模式太丰富了,以至于无法用非引用的静态符号来捕捉。不能递归的不完整的形式主义在试图模拟丰富的模式时会很快遇到一个固有的限制。但是递归消除了这个限制。

回忆一下我们对复杂问题的讨论。复杂性意味着大量的组合是可能的。对于一个与这种复杂性相称的程序来说,它必须能够处理类似的复杂问题。通过反复折叠符号,混合和匹配无数组合来近似模式,这是可能的。正是这种循环导致了任何形式主义丰富到足以吞噬自身的巨大代表力量。

这就是为什么数学和计算是创造性的。它们不是僵硬和机械的,而是极其流畅和富于表现力的。

“所以数学是创造性的,不是机械性的,数学是生物性的,不是机器!”——格雷戈里·柴丁

回想一下哥德尔关于使用元数学来获得一种谈论自身的形式主义的工作。这就是图 10** 中的递归。一个拥有丰富符号库的形式系统在严格证明时会不完整,但在计算时会非常灵活。**

一个拥有丰富符号库的形式系统在严格证明时会不完整,但在计算时会非常灵活。

哥德尔-图灵阈值****

我们已经看到了符号洗牌和递归是如何让一种形式主义呈现出巨大的创造力的。有了足够丰富的自我参照符号,我们就接近了真正普遍性的门槛。道格拉斯·霍夫施塔特将这一点称为哥德尔-图灵阈值。正是在这一点上,基本算术从一些无生命的符号系统发展到图灵所说的“通用机器”

图灵意识到存在一个计算普适性发挥作用的临界阈值。在这一点上,机器变得足够灵活,能够描述自己的结构。图灵的工作很大程度上是基于哥德尔的,他们之间的联系现在应该是显而易见的。

“没有比万能机器更灵活的了。普遍性就是你能走多远就走多远。” —道格拉斯·霍夫施塔特

因此,从哥德尔我们知道了整数运算的丰富性,从图灵的抽象计算理论——该理论随后被像约翰·冯·诺依曼这样的人与工程现实相碰撞——我们认识到机器事实上能够成为通用的**

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

图 11 与计算普适性相关的最重要发现背后的 3 个主要名字。

“哥德尔发现不完全性,图灵发现不可计算性。但在这个过程中,图灵也发现了完整/通用的编程语言、硬件、软件和通用机器。”——格雷戈里·柴丁

无处不在的普遍性

许多人不知道我们每天都在身边看到普遍性。我们现在处理个人和职业生活的方式很大程度上发生在电脑上。这些机器将输入转换成输出,在这样做的过程中,显示、重定向、连接和捕捉大量的丰富内容。

我们很难区分通过机器体验到的东西和被认为是现实的东西。我们认为母亲在电话中的声音是他们真实的声音,或者他们在视频聊天中的面孔是他们真实的面孔。我们观看的电视节目是真实人物的重建模式,CGI 创造了我们熟悉的事物的高度逼真的印象,科学家模拟了各种真实世界的场景。

这一切的背后是基本的算术符号洗牌。机器处理数字,使用递归来模拟我们日常经验中几乎无法分辨的模式。我们的现实很大程度上是通过硬件上整数的加法和乘法的感知而发生的。

“…在所有彩色图片、诱人的游戏和闪电般的网络搜索之下,除了整数运算,什么也没有发生。”道格拉斯·霍夫施塔特

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

https://www.youtube.com/watch?v=4Z4KwuUfh0A

塞尔怎么样?

有一个著名的中文教室论点最初是由约翰·塞尔提出的,他说一台执行程序的数字计算机不能被证明有“头脑”、“理解”或“意识”,不管这个程序能让计算机表现得多么智能或像人**

塞尔思想实验的细节我就不赘述了,读者在网上很容易读到。但他的基本前提是,如果数字计算机只能操纵符号,那么它们所能做的就是说服它理解的人。塞尔认为,无论一台机器有多么令人信服,它都不会真正理解。

当然,这仅仅是一个开始的论点。塞尔说得好像我们都知道什么是“理解”。但是塞尔论点的真正致命之处在于他对复杂性的完全误解。一个、【心灵】、【理解】或【意识】不会从赤裸裸的符号操作中产生,而是通过一些丰富的表达成为可能,自我参照提供了这样的符号。换句话说,我们在复杂现象中观察到的来自于一个巨大的互动网络。**

作为紧急事件的程序

我以…计算中的符号洗牌是通过程序来结束这一节。就像符号不需要显式地捕捉所有模式一样,程序也不需要编码程序能做的所有事情。一个程序的规则和它的行为几乎没有直接关系。**

我们可以把简单的程序看作是涌现的最小例子。程序不仅仅是各个部分的总和。

论计算类比的有效性

现在,我将把话题拉回到特里尚克的最新观点上,即使用计算类比来比较人的“聪明度”。我已经讨论了许多我认为对于理解计算类比的有效性所必需的背景知识。

我们对计算的了解:

  • 信息从输入转换为输出;
  • 例程用于解决明确定义的问题;
  • 启发式用于解决复杂问题;
  • 所有的决策问题在某种意义上都是同一个问题;
  • 基本符号具有巨大的代表力;
  • 计算机能够被整形,有创造力
  • 程序可以变得比它们各部分的总和还要多。

这都是计算

将人类认知视为计算之外的东西,总是会吸引一些近乎“神秘”的东西。虽然人们可以在个人层面上证明他们对超自然的信仰,但没有理由认为认知不是某种计算。人类一直在将输入转化为输出。有信息被过滤、使用和表达。当我们理解了计算的表现能力后,这种认为人类不是“计算机”的需要就失去了很多理由。

人们使用套路

人们使用常规型思维进行肤浅的、可预测的推理。每当我们关注具体的细节时,在可能存在“精确”解决方案的地方,我们都在使用常规。如果你发现自己在使用一个食谱,或者相信有一种“方法”来做某事,这就是常规思维。

人们使用启发式

任何非平凡(复杂)的问题都涉及到启发式的使用。当提到人时,这些被称为心理捷径。我们每天处理的绝大多数有趣的问题都太复杂了,无法用食谱来解决(问题的搜索空间对于一个简单程序的应用来说太大了)。当人们利用“直觉”或一般的经验法则时,他们会缩小搜索空间中寻找解决方案的范围。当领域专家把困难的事情变得简单时,他们应用了许多启发法,这些启发法是多年来通过暴露于问题空间而学到的。

思维类型

在回顾主要复杂性类别的决策问题时,我们同时考察了常规方法和启发式方法。所应用的机器“思考”的类型取决于所解决问题的复杂性。如上所述,人们也使用这两种类型的思维。

从计算的角度来看显而易见的东西经常被其他人重新标记。例如,丹尼尔·卡内曼思考快与慢反映了他关于两种思维模式二分法的论文。系统 1 是本能/情感型,而系统 2 是较慢/深思熟虑/逻辑型的思维。这些只是我们在计算机中看到的例程试探法之间的区别。**

作为通用机器的人类

人脑表现出表象的普遍性。通过创造抽象概念,我们可以将各种各样的外部现象内在化,只保留复制我们头脑中的模式所必需的信息。机器也是如此。只要我们放弃计算机只能处理一组固定指令的观念,计算类比就成立。

“……人类的思维尽管灵活而易错,但原则上可以用‘一套固定的指令’来模拟,前提是人们要摆脱先入为主的观念,即建立在算术运算基础上的计算机除了盲目地产生真理、全部真理,除了真理什么也不能做。”道格拉斯·霍夫施塔特

这是关于目标的

我们看到了启发式是如何在计算中用来解决复杂问题的。程序使用目标来帮助评估他们在可能性空间的搜索情况。目标在计算中的使用与人们在现实世界中应用启发式方法的方式重叠。虽然我们缺乏解决重要问题的具体方法,但我们脑海中经常会有一个目标,并反复应用思维捷径,直到我们足够接近我们的目标。**

这也与史蒂夫·沃尔夫勒姆计算等价原则重叠。该原理认为,在自然界中发现的系统可以执行最大(“通用”)计算能力水平的计算(几乎所有不明显简单的过程都可以被视为相当复杂的⁹).计算)

这表明,当谈到所谓的智力时,任何事物(不仅仅是人类)之间的唯一区别是所涉及的目标。人类有不同于其他动物的目标,显然也有不同于非生命系统的目标。

我喜欢引用格言“天气有它自己的想法”。“这听起来太泛灵论和前科学了。但计算等效性原理说的是,实际上,根据最现代的科学,这是真的:天气的流体动力学在计算复杂性上与我们大脑中进行的电过程是一样的。”—史蒂夫·沃尔夫勒姆

智力之间的界限可能更多地与所涉及的目标有关。在一个给定的系统中,无论实现什么样的输入到输出计算,都与系统的复杂程度无关,而是与系统的“目标”有关。

速度即熟悉度

这就把我们带到了我的 前提。有了我所列举的背景,就有可能回到开头提出的问题上来。

通过在人类认知和计算之间进行类比,可以挽救某些人比其他人更聪明的观点吗?

我认为认知速度(以及解决方案的质量)并不是某种在机械/推理意义上更快处理的能力,而是归结于对先前模式的暴露。归结起来就是熟悉度。我之前在一条推特上提到过这个:

熟悉包含了速度和正确性的概念。之前接触到问题的潜在模式意味着某些人会更快地找到解决方案。重要的是,普遍性意味着所有人都有能力创造相同的类比。这些类比依赖于个人过去的经历;他们自己丰富的历史导致他们收集现有的内部模式。

当类比与启发相结合时,所有人都有同等的执行能力,真正复杂问题的巨大搜索空间被缩小并分解成一个可行的解决方案。一个自然的结论是,通过“聪明”来区分人们的是他们过去的经历与缩小一组给定问题的搜索空间的相关程度。不是用套路更好。它没有更好地使用启发式。这些在个体之间是计算通用的。它将类比引入到解决问题的常规和启发式的普遍使用中。

通过“聪明”来区分人们的是他们过去的经历与缩小一组给定问题的搜索空间的相关程度。

认知的结构

在引言中,我用引号将与计算相关的“类比”一词括起来。我们经常使用类比这个词,好像它是我们想要描述的现象的二流版本。但是类比不仅仅是一种教学手段。类比是人们如何在看似不同的领域之间建立联系的核心。

当人们在解决问题时,他们是在调用他们已经知道的东西。鉴于我们都有丰富的历史,任何问题对来说都是熟悉的。**

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

图 12 人类通过类比将不同领域的想法联系起来。当解决问题时,我们调用我们过去的经验来处理类似的事情。

每个想法在某种程度上都是一种类比。我们不断地识别模式,即使这些模式不是我们之前看到的模式的精确复制品。它们总是模式之间某种程度的同构。一个同构是一个形式化的/严格的类比。计算中的普遍性意味着由数字组成的模式可以与其他任何东西同构。

“我们应该非常尊重那些看起来最平凡的类比,因为当它们被检验时,它们通常可以被看作是从人类认知的最深层根源中产生并揭示出来的。”道格拉斯·霍夫施塔特

道格拉斯·霍夫施塔特将类比称为“认知结构”****

“无论哪里有一个模式,它都可以被视为代表它自己,或者代表它所同构的任何东西。重要的是,不管最初模式的初衷是什么,没有一种解释比另一种更真实。如果这是对正在发生的事情的正确描述,那么他们都没有特权。”道格拉斯·霍夫施塔特

理解的关键是我们无法知道某人的同构/类比将来自于。换句话说,没有办法说什么样的生活经历/接触会导致有效解决问题所需的类比的存在。人们会指出“最聪明”的人,但他们只是在评论这样一个事实,即那个人的解决方案更快/更好。很少或根本没有透明度,以个人的一套经验,碰巧重叠的问题正在解决。请注意,学校教育是一个测试一个人聪明程度的非常有限的领域****

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

图 13 对一个人来说“更聪明”意味着什么?我认为这可以归结为将过去接触到的模式和新的模式联系起来。

正如我们对导致群体“成功”的历史视而不见(想想幸存者偏差),我们也对个人的模式历史视而不见。虽然琐碎的问题(可以用例程解决)受益于已知的模式(解决一个数学问题将有所帮助,如果你以前见过类似的问题),但不平凡/复杂的问题可以以未知的方式受益于以前的模式。复杂性的不透明性是根本。

天才神话

这让我们想到了“天才”这个概念这个术语假设个人对他们的发现负主要责任。但是每一个发现都依赖于大量以前的发现和概念。我们对需要多少先前的发现/概念,以及它们之间的关系一无所知。

即使在较小的规模上,我们也能在任何组织中看到这种情况。

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

虽然我们喜欢谈论人类的进步,好像我们受益于一些个人的重大发现,但这是一种错误的叙述。这些人仅仅是我们发现的名字。历史上有一个巨大的贡献和先前发现的网络。随机的发现,在更多的发现之上,无穷无尽。这个网络很复杂,因此不透明。没有办法以某种线性方式拼凑出发现是如何产生的真实故事。

没有我们喜欢认为的“天才”。在一长串相互关联的想法中,只有名字附在最后。

摘要

我要感谢 TrishankAshlesh 邀请我从智能的计算角度发表意见。我希望我的文章能给读者提供正确使用计算类比所必需的背景知识,不管读者的观点如何。

参考

  1. 智商在很大程度上是一个伪科学骗局
  2. 智力、复杂性和失败的智商“科学”
  3. 为什么普遍性胜过智商
  4. 为什么没有人比其他人聪明几倍
  5. 关于“为什么没有人能比别人聪明几倍”
  6. 高级物理模拟
  7. 指数时间假设
  8. 当前关于 P vs NP 的共识
  9. 一种新的科学
  10. 哥德尔的证明(道格拉斯·霍夫施塔特)
  11. 证明达尔文:让生物学数学化
  12. 超越计算:P 对 NP 问题——迈克尔·西普瑟

脚注()*

  1. 哥德尔实际上表明,意义并没有完全从 PM 形式主义中去除。
  2. 卡尼曼在心理学家中很常见,他从病理学的角度描述了偏见。干扰了更集中的思考。这是对人们如何思考的一种有限的看法,没有考虑到适应如何导致有益的能力。系统 1 是进化的副产品,让我们有能力解决真正复杂的问题,而系统 2 只能应对简单的挑战。
  3. 一次尝试很多事情怎么样?本文重点解决问题依次。无论机器使用常规还是启发式解决方法,它都是依次采取行动的。事实上,这就是为什么我们必须对非平凡模式使用近似方法。我们将不得不等待太长时间,让程序尝试足够多的组合来找到答案。但是有一种叫做非确定性图灵机 (NTM)的计算模型,它观察如果可以同时采取行动会发生什么。这是 Trishank 的第二篇文章的题目,对一些人提出的论点提出质疑;或许有些人可以把自己的思维当做非确定性的图灵机。正如我在引言中提到的,我对人类获得某种非确定性的问题不太感兴趣。还有许多其他的计算模型,我认为没有理由相信人类正在使用它们。但更重要的是,这并不需要。为了理解为什么我们需要看普遍性。****

人类学习 vs 机器学习

原文:https://towardsdatascience.com/human-learning-vs-machine-learning-dfa8fe421560?source=collection_archive---------37-----------------------

开始学习基础知识。

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

照片由安迪·凯利Unsplash 上拍摄

变化是所有真正学习的结果~利奥·巴斯卡利亚

什么是?当我们说我们学到了一些东西,这意味着什么?什么是信息或知识或智慧?

当你观察一种现象并识别一种模式时,学习就发生了。你试着通过找出现象中涉及的实体之间是否有任何关系来理解这种模式。

让我们试着分解它。以我们每天观察到的一个简单现象为例——昼夜交替。

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

内森·安德森和艾玛·范·桑特在 Unsplash 上拍摄的照片

有规律吗?是的,有一种模式。在一段固定的时间里,我们暴露在太阳的光和热下,我们称之为白天。然后在另一段固定的时间里,我们被剥夺了来自太阳的光和热。我们称之为夜晚。这种模式一遍又一遍地重复。我们有一个关于现象的观察,我们有一个模式。我们能解释这种模式是如何发生的吗?这次观测涉及到两个实体——太阳和地球。来自太阳的光量(和热量)和地球表面接收到的光量(和热量)之间有关系吗?这种模式表明地球表面交替接收光线——白天接收,晚上不接收。这怎么可能呢?有很多可能性,比如:

  1. 不知何故,太阳以交替的时间周期打开和关闭。
  2. 太阳不断改变它的位置,围绕地球旋转,在不同的时间段照亮地球的不同表面
  3. 地球不断地绕着它的轴旋转,因此在给定的时间,生活在面向太阳的表面上的人经历白天,而生活在不面向太阳的表面上的人经历夜晚。

以上 3 个结论被称为""模型,即 解释 观察到的现象。我们可以将这些模型表述如下:

模型 1:日/夜是太阳神奇开关的 功能

模型 2:日/夜是太阳绕地球公转的一个 函数

模型 3:日/夜是地球绕轴自转的 函数

现在的问题是,哪个模型(或函数)更准确?根据历代不同哲学家/科学家的观察/发现,模型 3 是解释昼夜现象最准确的模型。我们可以说,这个模型"最适合对这种现象的观察。其他两个模型可以根据许多其他观察结果安全地反驳,这些观察结果不能用它们来解释。

一旦一个模型建立起来,它就可以用来预测那种现象的未来结果。例如,在我们的例子中,我们的模型可以安全地预测白天/黑夜将继续发生,直到出于某种原因,地球停止旋转或太阳耗尽其能量(地球会停止旋转吗?太阳什么时候会耗尽它所有的能量?—这些问题可以通过使用另一个模型来回答)

人类就是这样学习的。

所有人类学习都是——观察某样东西,识别一种模式,建立一种理论(模型)来解释这种模式,并测试这种理论,以检查它是否符合大多数或所有观察结果。

每一个学习,从根本上来说,都是一个在一组观察中表达模式的模型。如果没有可以想象的模式,就不会有学习。

想想任何数学公式或物理方程式或生物学理论或任何经济学定理或化学方程式。所有这些都解释了物理或自然世界的模式。以牛顿运动定律为例。

牛顿研究物理物体的运动,并用作用在物体上的力来解释这种运动。他发现了作用在物体上的力和作为对这些力的反应的运动之间的“模式”或“关系”,并以他的定律(“模型”)的形式表达出来。牛顿第二运动定律在数学上表达如下:

力=质量加速度*

这个模型准确吗?它符合所有的观察吗?这种模式几乎在所有情况下都有效,但也有一些例外。它开始预测高速运动物体的不准确结果。爱因斯坦提出了另一个模型来解释这种物体的运动。

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

https://proofwiki.org/wiki/Einstein%27s_Law_of_Motion

这场讨论的中心思想是—

没有模型或学问反映“真实”或“绝对”的现实每一个模型或学习都是对观察到的现实的近似。

如果我们遇到关于我们正在研究的现象的新观察,我们必须更新我们的模型或学习。

机器是如何学习的?

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

阿瑟尼·托古列夫在 Unsplash 上的照片

机器有可能模仿人类学习的过程吗?这是机器学习和人工智能领域正在尝试做的事情。基本思想保持不变。与人类一样,机器也接受观察(数据)。学习算法在幕后试图在数据中找出最符合观察结果的模式。我们举一个很简单的例子。

下面是一个虚假的房价数据集,由两个属性组成:房屋面积和价格。

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

价格和面积之间有没有模式或者关系?只要目测这些数据并在头脑中进行简单的计算,人们就可以推断出:

价格= 20 倍面积

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

它不是 10 倍或 12 倍或 15 倍…正好是 20 倍,数据集中的所有房价都符合这个模型。

计算机算法能找出这个关系吗(价格是 20 倍面积)?。可以做到。一种算法可以以如下的粗略方式实现它:

  1. 假设价格是 w 乘以面积。从随机取 w 的任意值开始
  2. 对于面积和 w 的每个值,计算价格。将其与数据中给出的原始价格进行比较。原始价格-计算价格是错误的。取所有计算价格和原始价格的误差平均值。这是由模型引起的平均误差
  3. 改变 w 的值,继续重复步骤 2,直到平均误差为 0 或非常接近 0,并且没有改善

这就是机器学习数据模式的方式。现在,这里介绍的方法过于简单。幕后有大量的复杂性(参考线性回归算法和梯度下降方法)

但我试图传达的基本思想是:无论是人类学习还是机器学习,都涉及对一个事物或过程或现象的“观察”。然后,识别这些观察的模式。这个模式的表达就是已经学习过的模型。最常见的是,这个表达式是一个数学公式(函数),它定义了相关变量之间的关系。

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

乔治·帕甘三世在 Unsplash 上的照片

人类是本能的模式发现者。寻找模式的基本需求是我们这个物种的基本生存策略。我们总是害怕未知的事物。不确定性很麻烦。模式识别帮助我们减轻这种恐惧,给人安慰。当我们知道一个事件是如何发生的,以及它再次发生的可能性有多大时,我们就可以做好准备。如果我们认识到事件 1 是由“事件 2”引起的,我们可以利用这一知识为我们造福。这就是我们总是在事物、事件和情况之间寻找模式和因果关系的原因。

没有模式,就不会有学习——无论是人类还是机器!只是一片混乱。

基于堆叠沙漏网络和张量流的人体姿态估计

原文:https://towardsdatascience.com/human-pose-estimation-with-stacked-hourglass-network-and-tensorflow-c4e9f84fd3ce?source=collection_archive---------6-----------------------

了解经典的姿态估计网络的核心设计,并学习用 TF 2 编码

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

来自 Deskcity 的蓝色沙漏照片

原载于 2020 年 3 月 14 日https://www . yanjia . Li

完整源代码请前往https://github . com/ethanyangali/deep-vision/tree/master/Hourglass/tensor flow。我真的很感谢你⭐STAR⭐对我努力的支持。

人类擅长做出不同的姿势。人类也擅长理解这些姿势。这使得肢体语言成为我们日常交流、工作和娱乐的重要组成部分。不幸的是,姿势有太多的变化,所以计算机从图片中识别姿势不是一件容易的事情…直到我们有了深度学习!

通过深度神经网络,计算机可以学习人类姿势的通用模式,并相应地预测关节位置。堆叠沙漏网络就是这样一种网络,我将向您展示如何使用它来进行简单的人体姿态估计。虽然在 2016 年首次推出,但它仍然是姿态估计领域最重要的网络之一,并广泛应用于许多应用程序。无论你是想开发一个软件来跟踪篮球运动员的动作,还是想根据一个人的姿势制作一个肢体语言分类器,这都将是一个方便的实用教程。

网络体系结构

概观

简单来说,堆叠沙漏网络(HG)就是沙漏模块的堆叠。它之所以有这个名字,是因为每个沙漏模块的形状都非常像沙漏,正如我们从下图中看到的:

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

图来自“用于人体姿态估计的堆叠沙漏网络

堆叠多个 HG(沙漏)模块而不是形成一个巨大的编码器和解码器网络背后的想法是,每个 HG 模块将为联合预测产生完整的热图。因此,后一个 HG 模块可以从前一个 HG 模块的联合预测中学习。

为什么热图有助于人类姿势估计?这是当今相当普遍的技术。与面部关键点不同,人类姿态数据有许多差异,如果我们只是简单地回归关节坐标,这使得很难收敛。聪明的研究人员想出了一个主意,用热图来表示图像中的关节位置。这保存了位置信息,然后我们只需要找到热图的峰值,并将其用作关节位置(加上一些小的调整,因为热图很粗糙)。对于 256x256 的输入图像,我们的热图将是 64x64。

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

图片来自“用于人体姿态估计的堆叠沙漏网络

此外,我们还将计算每个中间预测的损失,这有助于我们不仅有效地监督最终输出,而且有效地监督所有 HG 模块。这在当时是一个很棒的设计,因为姿势估计依赖于人体各个区域之间的关系。例如,在没有看到身体位置的情况下,很难判断一只手臂是左臂还是右臂。通过使用完全预测作为下一个模块的输入,我们迫使网络在预测新的连接位置时注意其他的连接。

沙漏模块

那么这个 HG(沙漏)模块本身是什么样子的呢?让我们来看看原始论文中的另一张图:

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

图来自“用于人体姿态估计的堆叠沙漏网络

在图中,每个框都是一个剩余块加上一些额外的操作,如池化。如果您不熟悉剩余块和瓶颈结构,我建议您先阅读一些 ResNet 文章。一般来说,HG 模块是一个编码器和解码器架构,其中我们首先对特征进行下采样,然后对特征进行上采样以恢复信息并形成热图。每个编码器层都有一个与其对应的解码器层的连接,我们可以堆叠任意多的层。在实现中,我们通常做一些递归,让这个 HG 模块重复自己。

我知道这里看起来仍然太“复杂”,所以阅读代码可能更容易。下面是从我在 Github deep-vision repo 上的堆叠沙漏实现中复制的一段代码:

这个模块看起来像一个洋葱,让我们先从最外层开始。up1 经过两个瓶颈块,和 up2 加在一起。这代表左边和顶部的两个大方框,以及最右边的加号。整个流程都在空中,所以我们称之为上行通道。在第 17 行,也有一个低通道。这个 low1 通过一些池和瓶颈块,然后进入另一个更小的沙漏模块!在图上,它是大洋葱的第二层。这也是我们在这里使用递归的原因。我们一直重复这个 HG 模块,直到第 4 层,这里你只有一个瓶颈,而不是 HG 模块。最后一层在图表中间的三个小盒子里。

如果你熟悉一些图像分类网络,很明显作者非常大量地借用了跳过连接的思想。这种重复模式将编码器和解码器中的相应层连接在一起,而不是只有一个特征流。这不仅有助于梯度通过,而且让网络在解码时考虑不同尺度的特征。

中间监督

现在我们有了一个沙漏模块,我们知道整个网络由多个这样的模块组成,但是我们如何精确地将它们堆叠在一起呢?网络的最后一环来了:中间监管。

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

图来自“用于人体姿态估计的堆叠沙漏网络

从上图中可以看出,当我们从 HG 模块中产生一些东西时,我们将输出分成两条路径。顶部的路径包括更多的卷积来进一步处理特性,然后转到下一个 HG 模块。有趣的事情发生在底部路径。这里,我们使用卷积层的输出作为中间热图结果(蓝框),然后计算中间热图和地面实况热图之间的损耗。换句话说,如果我们有 4 个 HG 模块,我们总共需要计算 4 个损失:3 个用于中间结果,1 个用于最终结果。

准备数据

MPII 数据集

一旦我们完成了堆叠沙漏网络的代码,我们就该考虑用什么样的数据来训练这个网络了。如果你有自己的数据集,那太好了。但在这里,我想提一个开放的数据集,供那些想先有所训练的初学者使用。它叫做 MPII 数据集(马普信息研究所)。你可以在这里找到下载链接。

尽管该数据集主要用于单人姿势估计,但它确实为同一图像中的多人提供了关节注释。对于每个人,它给出了 16 个关节的坐标,如左脚踝或右肩。

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

来自 MPII 数据集的例子。两幅图像都已被裁剪。

但是原来的数据集标注是 Matlab 格式的,现在真的很难用。我也试着自己解析那个 mat 文件,结果发现有很多错误或警告是 MPII 官方网站没有提到的。另一种方法是使用微软提供的预处理过的 JSON 格式注释。谷歌驱动链接在这里是。下载这个 JSON 注释后,您会看到一个包含如下元素的列表:

“关节可见”表示关节的可见性。在最近的数据集中,我们通常需要区分遮挡关节和可见关节。但是在 MPII,我们只关心关节是否在图像的视图中:1 ->在视图中,0->在视图外。“关节”是关节坐标列表,它们遵循 0-r 脚踝、1-r 膝盖、2-r 臀部、3-l 臀部、4-l 膝盖、5-l 脚踝、6-骨盆、7-胸部、8-上颈部、9-头顶、10-r 手腕、11-r 肘部、12-r 肩部、13-l 肩部、14-l 肘部、15-l 手腕的顺序。

这个 JSON 注释的缺点是它没有原始文件中的头部矩形和单人标志,这可能会在评估过程中造成问题。如果你需要我用这些信息解析的版本,请在我的 deep-vision Github 库中给我留言。

种植

不太清晰的部分是“尺度”和“中心”。有时我们可能在图像中有不止一个人,所以我们需要裁剪出我们感兴趣的一个。与 MSCOCO 数据集不同,MPII 没有给我们这个人的边界框。相反,它给了我们一个中心坐标和这个人的大概尺寸。这两个值都不准确,但仍然代表了一个人在图像中的大致位置。请注意,您需要将“比例”乘以 200 像素,以获得一个人的真实高度。但是宽度呢?不幸的是,数据集并没有真正指定它。身体可能有点水平,这使得宽度远大于高度。我之前看到的一个例子是冰壶运动员在地上爬行,如果你只使用高度来修剪,你可能最终会离开他的手臂。

**天真的方式:**经过一些实验,下面是我对裁剪图像的建议:

简而言之,我们首先过滤掉不可见的关节,并从 16 个关节中计算最左侧、最顶部、最底部和最右侧关节的坐标。这四个坐标给了我们一个区域,在这里我们至少可以包含所有可用的关节注释。然后我根据这个人的身高比例填充了这个区域,这个比例也是从“比例”字段计算出来的。最后,我们需要确保这种作物不会流出边境。

**更健壮的方式:**如果你需要提高你的模型的 PCKh 度量,上面的转换可能不是最理想的。为什么?因为单人姿势估计的不为人知的技巧是它极度依赖于中心来确定关节的相对位置。因此,你需要以某种方式将输入图像中的所有身体“标准化”到相同的中心和相同的比例,以充分利用模型。我的解决方案是使用仿射变换。通过这样做,你可以精确地知道中心在哪里来定义平移、旋转和缩放。由于这是一个更高级的主题,请访问我的 deep-vision Github 知识库,在那里进行更多的讨论。

高斯的

关于地面实况数据,需要了解的另一件重要事情是高斯分布。当我们策划地面实况热图时,我们不只是为关节坐标分配 1,而为所有其他像素分配 0。这将使基本事实变得过于稀少而难以了解。如果模型预测只差几个像素,我们应该鼓励这种行为。

我们如何在损失函数中模拟这种鼓励?如果你以前上过概率课,你可能记得高斯分布:

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

https://www . project Rhea . org/Rhea/index . PHP/Edge _ Detection _ with _ Gaussian _ Blur

中心具有最高值,中心周围区域的值逐渐减小。这正是我们所需要的。我们将在全零地面真实画布上绘制这样一个高斯模式,如下图所示。当你把所有 16 个关节放在一个热图中,它看起来就像下面的右图。

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

自己画的叠加图。右图来自 MPII 数据集

从下面的代码可以看出,我们首先计算面片的大小,当 sigma 为 1 时,大小将为 7,中心将为(3,3)。然后,我们生成一个网格来表示该面片中每个单元的坐标。最后,将它们代入高斯公式。

请注意,生成高斯的最终代码比这更复杂,因为它需要处理一些边界情况。完整代码请看我这里的 repo:https://github . com/Ethan yanjiali/deep-vision/blob/master/Hourglass/tensor flow/preprocess . py # L91

损失函数

到目前为止,我们讨论了网络架构以及要使用的数据。有了这些,我们可以向前传递一些训练数据,以获得关于输出的感觉。但是现代深度学习是关于反向传播和梯度下降的,这需要我们计算地面真实和预测之间的损失。所以让我们开始吧。

幸运的是,堆叠沙漏的损失函数非常简单。你只需要两个向量之间的均方误差,这可以在一行代码中完成(普通版本)。然而,在现实中,我发现这个模型仍然很难收敛,它学会了通过预测全零来达到局部最优来作弊。我的解决方案(改进版)是给前景像素(我们画的高斯像素)分配一个更大的权重,让网络很难忽略这些非零值。我在这里选择 82,因为在 64x64 热图中,一个 7x7 的补丁的背景像素是前景像素的 82 倍。

预言

到目前为止,我们已经讨论了网络、数据和优化目标(损失)。这应该足够你开始自己的训练了。一旦我们完成了培训,得到了一个模型,它仍然没有完成。与直接回归相比,使用热图的一个缺点是粒度。例如,对于 256x256 的输入,我们得到 64x64 的热图来表示关键点的位置。四倍降尺度看起来还不算太差。然而,我们通常首先将一个更大的图像,比如 720x480,调整为 256x256 的输入。在这种情况下,64x64 的热图会过于粗糙。当需要高精度时,研究人员想出了一种缓解这一问题的方法。我们不仅使用具有最大值的像素,还考虑具有最大值的相邻像素。由于相邻像素也具有高值,因此推断实际的关键点位置可能有点朝向相邻像素的方向。听起来很熟悉,对吧?这很像我们的梯度下降,也指向最优解。然而,根据我的经验,对于大多数应用程序来说,占据热图峰值的位置应该足够了。因此,如果您需要实现这个额外的修正,这是您的电话。

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

我自己画的要点和框架。图像中的人是来自高尔夫月刊的李·维斯特伍德

以上是我们网络的预测实例。在左侧,是所有的关节位置。在右边,是骨骼,通过连接这些关节画出来的。虽然结果看起来相当不错,但我不得不承认这是一个简单的例子。在现实中,有很多扭曲的姿势或遮挡的关节,这给我们的网络带来了巨大的挑战。例如,当图像中只有一只脚时,网络可能会通过将左脚和右脚分配到同一位置来混淆自己。我们如何解决这个问题?因为这是一个关于改进的话题,所以我将让您先思考一下,然后再写一篇文章来讨论。

结论

祝贺你,你已经到达本教程的结尾。如果你理解了我们上面讨论的所有内容,你应该对现在的理论和主要挑战有一个坚实的理解。要开始在 TensorFlow 中编码,我建议你克隆/分叉我的 repo:https://github . com/ethanyangali/deep-vision/tree/master/Hourglass/tensor flow,按照说明准备数据集,试一试。要做出预测,你可以参考回购协议中一个名为demo_hourglass_network的笔记本。如果您遇到任何问题,请留下 Github 问题,以便我可以查看。同样,如果你喜欢我的文章或我的回购,请⭐star⭐我的回购,这将是对我最大的支持。

参考

人力资源数据化(上)

原文:https://towardsdatascience.com/human-resources-datafication-d44c8f7cb365?source=collection_archive---------34-----------------------

数据化意味着使用运营数据来制定业务战略和未来计划。— Viser 公司。

米歇尔维纳布尔斯 ,数据科学家兼机器学习工程师

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

图片来源:Word Cloud by Insyscraft

最符合商业活动和人力资本的战略是什么?人力资源(HR)战略是为所有 HR 关键领域设定方向的理念。它是我们使用分析来了解更多有关人员、HR 流程和人口统计数据的能力的提高。这包括招聘、绩效评估、发展和薪酬方面的活动

通过数据分析实现人力资源战略的第一步

作为人力资源领域的数据分析师/科学家,我们将制定一项战略来实现整个组织的人力资源目标和洞察力。我们希望从组织内现有的数据开始,从当前的员工开始。这可能涉及整个组织的优势和工作描述。一个好的解决方案是使用交互式组织结构图。

从收集每个人的最新简历、继续教育历史、绩效评估和完成的项目开始。这使您能够识别当前员工的知识、技能和优势。除了基本的工作描述和技能之外,交互式组织结构图也是一种工具。

评估绩效考核使管理层能够确定员工何时愿意并能够承担额外的责任。当员工的排名一直很高时,是时候接受一些更具挑战性的工作了。这个博客旨在描述一些分析公司内部人力资源战略和活动的技巧。

关键绩效指标(KPI)

在人力资源分析领域,有几个 KPI 值得一提。对以下 8 个指标进行了定量评估。

  1. 人才保留——组织保留员工的能力。这通常是一种统计方法,有时被认为是员工对公司的忠诚度。
  2. 招聘效率——组织有几种方法来衡量他们的招聘效率。常见的统计度量可以是 招聘时间、招聘质量、招聘来源等。
  3. 员工绩效——工作评定量表是评估员工绩效的常用方法,行为要素如理解工作任务参与决策
  4. 员工流动——员工从一个组织转移到另一个组织,也称为流动率。类似于评估留存率。
  5. 全面薪酬——这是经理或雇主为了吸引、激励和留住员工而追踪的一种工具。
  6. 学习和发展——培训计划让员工在组织中成长和成功。它允许员工在组织内达到更高的知识技能水平。这些可以通过绩效评估或评级来评估和监控(如前所述)。
  7. 多元化和包容性——衡量和提高想法和创造力。吸引和获得人才,以形成强大的团队。
  8. 人力资源与员工比率—服务交付

我们希望收集和评估这些数据,以确定我们作为一个组织在人力资源方面所处的位置。员工的文化和行为构成了一个组织的团队氛围,而人力资源的工作是建立一个成功的战略。我收集了 Kaggle.com 提供的人力资源数据,以显示对一个组织的评估。点击此处链接

清理和评估我们的数据

数据科学项目的第一步是确保我们清理和评估我们的数据。清理包括处理空值、评估哪些数据当前对我们可用,以及使用不同的清理技术来组织我们的数据结构。庞大、肮脏、混乱和不兼容的数据源会导致无效的分析模型。我们希望了解我们的数据,以下是几个方法:

hr_data.shape

我们的输出是 300 行 21 列。

hr_data.isna().sum()

检查 NA 结果并学习如何处理它们。一种方法可能是用 0:

hr_data = hr_data.fillna(0)

经过一些基本的清洁技术,我们可以开始分析和评估。我个人喜欢使用 SeabornMatplotlib 来可视化我的数据。在查看了我们的数据栏后,我认为评估 pay_rate 可能是有益的。我们甚至可能希望根据绩效分数、职位和其他特征来预测新员工的 pay_rate!在尝试解决新员工的问题之前,让我们先看看现有的数据。

chart = sns.barplot(x='performance_score', y= 'pay_rate', data=hr_data, palette='Set1', ci=**None**) chart.set_xticklabels(chart.get_xticklabels(),rotation=90)

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

作者图片:米歇尔维纳布尔斯

在运行您的代码行之前,确保将 seaborn 作为 sns 导入。我们可以通过什么来分析员工的工资率?

我可能会问一些关于“需要改进”绩效分数的问题…为什么这些员工的工资比“超过”员工绩效分数的员工的工资高。“例外”似乎很准确。

chart = sns.barplot(x = 'position', y = 'pay_rate', data=hr_data, palette='Set1', ci = **None**) chart.set_xticklabels(chart.get_xticklabels(),rotation=90)

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

作者图片:米歇尔维纳布尔斯

我们的第二张图表显示了基于公司职位的工资水平。显然,总裁和首席执行官的工资比其他雇员高。只要职位/薪酬符合你公司的人力资源战略,它们看起来就是准确的。

我们的下一个图将有助于分析组织内部的一些多样性。在评估我们的人力资源战略时,多元化是一个关键绩效指标。

工作场所中的组织多样性指的是员工队伍的总体构成和多样性的数量。多样性指的是各种定义个人特征的差异,如年龄、性别、种族、婚姻状况和许多其他次要品质。

看看下面的一些多样性评估柱状图:

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

作者图片:米歇尔维纳布尔斯

差别不大,但平均来说,男性的工资比女性高。

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

作者图片:米歇尔维纳布尔斯

为了评估基于年龄的多样化,我们根据十年来划分我们的年龄。我们可以看到我们的年龄范围相当多样化。

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

作者图片:米歇尔维纳布尔斯

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

图片作者:米歇尔维纳布尔斯

在清理了我们的数据,评估了基于绩效分数、职位和多样性指标的薪酬后,你应该对我们的数据有一个很好的了解。在我们开始建模之前,你总是想清理和评估我们的数据。请继续关注我的下一篇关于预测人力资源分析的博客,并点击下面的 github 链接查看我的代码!

参考资料:

[1] Bizfluent。"什么是工作场所的组织多样性?"https://biz fluent . com/info-12076820-organization-diversity-workplace . html

人权第一:数据科学方法

原文:https://towardsdatascience.com/human-rights-first-a-data-science-approach-57724b249f32?source=collection_archive---------49-----------------------

使用自然语言处理寻找美国警察暴行的实例

旅程

人权第一是一个独立的组织,通过政治集思广益、创造性的政策制定、各种运动、数据收集和研究以及大众教育,在美国推动全面人权和平等。在不平等和不公正现象继续猖獗的当今世界,这些人权问题尤其重要。您可以在人权第一组织的网站人权第一上找到更多信息和帮助该组织的方法。

在一个由一名团队项目负责人、五名网站开发人员和三名数据科学家组成的团队中,我们致力于人权第一组织的一个非常具体的子域,警察暴行。我们的团队项目领导每周与组织的利益相关者会面,以深入了解项目的期望。提出了一些问题,如“当加载登录页面时,用户希望看到什么”,“希望用户获得什么样的交互性”,“希望获得什么样的数据,是精度更重要还是实例数量更重要?”问题摆在我们面前:创建一个网站,用户可以访问并看到一个交互式的美国 choropleth 地图,允许直观地了解哪些州和城市包含警察暴力事件,以及通过链接的文章、视频等提供文本信息。非常注重数据的精确性。

每个团队都继承了一个 GitHub 存储库,这个存储库是由从事同一项目的前一个团队为他们各自的领域创建的。数据科学团队收到了一份报告,其中包括 ipython 笔记本电脑、应用程序目录和文件、预处理基准预测模型以及。包含预先收集的数据的 csv 文件。我们的方法从确定这个知识库内容的有用性和计划我们自己的贡献开始。

每一段旅程都始于路径的终点

我们的团队立即开始了规划过程,作为一个完整的团队,每天至少召开一次会议,并在我们特定的现场团队内部每天召开几次会议。在我们的头脑风暴会议中,我们提出了一个被认为对最终产品很重要的任务列表。接下来是创建用户故事,让我们从用户的角度深入了解可视化最终产品的工作原理。使用一个 Trello 板和一个创造性的逻辑思维的集合,我们决定了一个用户故事的最终列表和每个用户故事的子列表。我们解决了一些问题,例如,“作为用户,我可以立即在登录页面上看到一张美国地图,上面有关于不同州发生多少警察暴力事件的信息数据”和“作为用户,我可以放大地图,足以查看单个事件数据”,任务按需要贡献的团队进行标记和排序。

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

概述最广泛的用户故事及其相关任务的 trello 卡。

在团队的规划阶段,我们通过一系列的头脑风暴会议,为每项任务列出子列表,概述完成这些任务的技术可能性。这包括模型、库、方法和我们觉得可能需要作为工具的潜在编程画布。我们将这些列表实现到一个完整的产品流程图中,通过预期的连接将每个领域(DS、后端、前端)结合起来。

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

产品工程架构规划出所有预期的连接

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

人权第一项目的数据科学技术决策大纲

当第一次接近这个项目的开发阶段时,我预料到了两个主要的挑战。第一个是使用自然语言处理作为我们建模过程的一部分,因为我们中没有人使用 NLP 库几个月了。通过探索、研究和继承之前团队使用的相同方法,这种风险得到了相应的处理。这允许我们探索我们所拥有的,并根据需要修改以适应我们自己的模型需求。

下面是用来标记我们的数据的一段代码。

*# Create tokenizer functions*

nlp = spacy.load("en")

**def** tokenize(text):
    text = nlp(text)
    tokens = [token.lemma_ **for** token **in** text **if** (token.is_stop != **True**) **and** (token.is_punct != **True**) **and** (token.text != " ")]
    **return** tokens

**def** retoken(text):   
    tokens = re.sub(r'[^a-zA-Z ^0-9]', '', text)
    tokens = tokens.lower().split()
    tokens = str(tokens)

    **return** tokens

第二个挑战涉及整个数据科学团队。我们需要确保我们经常有效地合作,以确保我们在建模研究和开发过程、数据收集过程的时间管理以及正确有效地清理数据方面都在同一页上;这一点的重要性在于,这些任务中的每一项都强烈依赖于前一项任务的成功。为此,我们每周工作五天,每天工作八小时以上,以确保准确的沟通。每当进行编码时,我们会以团队和结对程序的形式会面,交换谁在驾驶,谁在循环方式导航。通过这种方式,我们能够避免任何可能因缺乏团队合作和沟通而出现的陷阱。

这个旅程既是过程,也是奋斗,更是最终的结果

该项目的数据科学方面包括许多耗时的功能。我们从探索我们从前一个团队继承的笔记本开始,并重新创建和修改他们的工作以获得彻底的理解。我们问了一些问题,比如“他们是如何清理数据的?”、“他们认为哪些功能是重要的?”,“为什么有这些功能?”,“他们用什么参数来创建他们的模型?”,“他们的模型有多准确?”。使用这些问题作为我们探索的布局,我们创建了新的 google colab 笔记本,并逐个重新创建了继承的笔记本,将测试放在一起,并根据需要进行修改,以确保我们彻底理解。这个过程包括使用 reddit API 包装器 PRAW 从“新闻”子编辑中提取新闻文章和 Reddit 帖子,以及从 Reddit、twitter、互联网资源和各种新闻网站预先收集的数据,并根据需要清理数据和执行一些功能工程。

下面是我们用来访问 reddit API 并从“新闻”子编辑中提取前 1000 个热门文章的代码;然后,这些数据被添加到一个名为“数据”的列表中,用于创建一个新的数据帧:

*# Grabbing 1000 hottest posts on Reddit* 

data = []

*# Grab the data from the "news" subreddit*
**for** submission **in** reddit.subreddit("news").hot(limit=1000):
  data.append([submission.id, submission.title, submission.score,  
  submission.subreddit, submission.url, submission.num_comments, 
  submission.selftext, submission.created])

*# Create and assign column names*
col_names = ['id', 'title', 'score', 'subreddit', 'url', 
             'num_comments', 'text', 'created']
df_reddit = pd.DataFrame(data, columns=col_names)

接下来,我们决定回收前一个团队的数据收集、清理和特征工程,但修改他们的自然语言处理模型,以包括前一个团队遗漏的一些标签。随后,我们使用 TfidVectorizer 和 RandomForestClassifier 以及 RandomizedSearchCV 整合了基线预测模型,用于早期参数调整。使用这些方法,我们能够创建一个 csv 文件,我们可以放心地发送给 web 团队,用于他们的基线 choropleth 图。用于构建我们的模型的代码可以在下面的嵌入中找到。

*# Build model pipeline using RFC*

pipeline = Pipeline([
    ('tfidf', TfidfVectorizer()),
    ('classifier', RandomForestClassifier(random_state=42, n_jobs=-1, max_depth=5, n_estimators=45,)),
])
pipeline.fit(X_train,y_train)
predictions = pipeline.predict(X_test)param_distributions = {
   'classifier__max_depth': [1, 2, 3, 4, 5]}

search = RandomizedSearchCV(
   pipeline, 
   param_distributions=param_distributions, 
   n_iter=10, 
   cv=3, 
   scoring='accuracy', 
   verbose=10, 
   return_train_score=**True**, 
   n_jobs=-1
)

search.fit(X_train, y_train);>> Best hyperparameters {'classifier__max_depth': 5}
>> Best Score 0.9075471698113208

除了我在探索、清理和建模阶段的贡献之外,我还带头使用了数据科学 API。我们的项目使用 FastAPI 创建并运行数据科学应用程序,并使用 Docker 保存我们应用程序的映像,以便部署到 AWS Elastic Beanstalk。在我的本地环境中,我包含了前面提到的 csv 文件,以及一个包含数据清理和功能工程方法的文件,这些方法是由我、我的一个团队成员和以前的数据科学团队整理的。使用它,我能够创建两个新的 csv 文件,一个包含原始的最终数据,另一个包含为 jsonification 清理和预处理的最终数据。这些数据在被添加到 get 端点以供 web 团队的后端访问之前被转换为 json 对象。为完成此任务而设置的路由器可以在以下嵌入中找到:

*from fastapi import APIRouter, HTTPException
import pandas as pd
import numpy as np* # from .update import backlog_path  # Use this when able to get the # backlog.csv filled correctly
from ast import literal_eval
import os
import json
# Create router access
router = APIRouter()@router.get('/getdata')
async def getdata():
    """
    Get jsonified dataset from all_sources_geoed.csv
    """
    # Path to dataset used in our endpoint locs_path = os.path.join(os.path.dirname(__file__), '..', '..', 
                'all_sources_geoed.csv') df = pd.read_csv(locs_path) # Fix issue where "Unnamed: 0" created when reading in the           
    # dataframe df = df.drop(columns="Unnamed: 0") # Removes the string type output from columns src and tags, 
    # leaving them as arrays for easier use by backend for i in range(len(df)):
        df['src'][i] = ast.literal_eval(df['src'][i])
        df['tags'][i] = ast.literal_eval(df['tags'][i]) """
    Convert data to useable json format
    ### Response
    dateframe: JSON object
    """
    # Initial conversion to json - use records to jsonify by 
    # instances (rows) result = df.to_json(orient="records") # Parse the jsonified data removing instances of '\"' making it 
    # difficult for backend to collect the data parsed = json.loads(result.replace('\"', '"')) return parsed

我们面临的主要挑战之一是在项目的部署阶段。我能够将数据设置并部署到 AWS Elastic Beanstalk 上,但是有几次数据的 jsonification 出现问题,使得它对 web 团队不可用。首先,返回的数据带有几个不合适的正斜杠“\”和反斜杠“/”。其次,一些数据特征,特别是“src”和“tags”被作为字符串而不是数组返回。DS 团队坐在一起聊天,研究和集思广益如何解决这个问题。在我们的部署中经过多次试验和错误之后,我们找到了确保发送的数据格式正确所需的预处理步骤。可以在下面找到该流程的嵌入式代码:

import os
import pandas as pd
import re# set up various things to be loaded outside of the function
# geolocation data
locs_path = os.path.join(os.path.dirname(__file__), 
            'latest_incidents.csv')# Read in the csv file into a dataframe
sources_df = pd.read_csv(locs_path)# Remove instances occurring in which backslashes and newlines are 
# being created together in the data.
sources_df["desc"] = sources_df["desc"].replace("\\n", "  ")# Remove the "Unnamed: 0" column creating when reading in the csv
sources_df = sources_df.drop(columns=["Unnamed: 0"])# Fix instances occurring in which new lines are being created in 
# the data
for i in range(len(sources_df)):
    sources_df["desc"][i] = str(sources_df["desc"][i]).replace("\n",  
    " ")# Create csv file from dataframe
sources_df.to_csv("all_sources_geoed.csv")

结束不是结束,而是一个新的开始

到目前为止,我们对该产品的贡献已经达到了极限。数据科学团队能够收集、清理、设计和向 web 团队发送可用的数据集,包括过去七个月美国各地的 1177 起警察暴力事件。发送到后端的每个实例都包括以下功能:“src”——一组链接到源视频、文章和/或帖子的 URL,使用 newspaper3k 对其进行了清理,以提取正确的文本——“state”——事件发生的州,这是使用 spaCy 从文本中提取州名的工程——“city”——事件发生的城市, 这是使用 spaCy 从文本中提取城市名称设计的——“desc”——事件的文本描述——“标签”——用于识别故事是否是警察暴力案件的标签。 这是使用自然语言处理设计的——“标题”——事件的描述性标题——“日期”——事件发生的日期——“id”——每个实例的唯一字符串标识符——“lat”——映射事件位置的纬度代码,这是使用州和城市名称以及列出城市、州, 以及地理位置代码(纬度和经度)-和“经度”-映射事件位置的经度代码,这是使用州和城市名称以及列出城市、州和地理位置代码(纬度和经度)的单独 csv 文件设计的。 我们的团队还能够发布一个可用的 API,允许连接到后端,并通过它们连接到前端可视化。下面是发送给后端团队的数据样本:

[{"src":["https://www.youtube.com/watch?v=s7MM1VauRHo"],"state":"Washington","city":"Olympia","desc":"Footage shows a few individuals break off from a protest to smash City Hall windows. Protesters shout at vandals to stop.  Police then arrive. They arrest multiple individuals near the City Hall windows, including one individual who appeared to approach the vandals in an effort to defuse the situation.  Police fire tear gas and riot rounds at protesters during the arrests. Protesters become agitated.  After police walk arrestee away, protesters continue to shout at police. Police respond with a second bout of tear gas and riot rounds.  A racial slur can be heard shouted, although it is unsure who is shouting.","tags":["arrest","less-lethal","projectile","protester","shoot","tear-gas"],"geolocation":"{'lat': '47.0378741', 'long': '-122.9006951'}","title":"Police respond to broken windows with excessive force","date":"2020-05-31","date_text":"May 31st","id":"wa-olympia-1","lat":47.0378741,"long":-122.9006951},{"src":["https://mobile.twitter.com/chadloder/status/1267011092045115392"],"state":"Washington","city":"Seattle","desc":"Officer pins protester with his knee on his neck. His partner intervenes and moves his knee onto the individual's back.  Possibly related to OPD Case 2020OPA-0324 - \"Placing the knee on the neck area of two people who had been arrested\"","tags":["arrest","knee-on-neck","protester"],"geolocation":"{'lat': '47.6062095', 'long': '-122.3320708'}","title":"Officer pins protester by pushing his knee into his neck","date":"2020-05-30","date_text":"May 30th","id":"wa-seattle-1","lat":47.6062095,"long":-122.3320708},{"src":["https://twitter.com/gunduzbaba1905/status/1266937500607614982"],"state":"Washington","city":"Seattle","desc":"A couple of police officers are seen beating and manhandling an unarmed man. The officers are throwing punches while he was on the ground and pinned.  Related to Seattle OPA Case 2020OPA-0330.","tags":["beat","protester","punch"],"geolocation":"{'lat': '47.6062095', 'long': '-122.3320708'}","title":"Police beat unarmed man on the ground","date":"2020-05-31","date_text":"May 31st","id":"wa-seattle-2","lat":47.6062095,"long":-122.3320708}, . . . ]

网络团队能够利用这些数据,在登陆页面上整合出一个功能性的交互式美国 choropleth 地图。该地图向用户显示多个可点击的图钉,在与图钉交互时,向用户显示一个信息框,该信息框包括事件的标题、事件的城市和州位置、事件的文本描述以及链接到数据收集位置、事件报告位置的 http 源,以及该事件的任何附带视频和新闻源。

[## 考虑到的人权

使用 create-react-app 创建的网站

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

附带交互式图钉的 choropleth 地图

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

点击大头针后显示的犹他州盐湖城事件的信息框示例

产品完成后,未来可能会有许多修改和功能添加。数据科学团队的基线模型在工作和部署时,有输出太多误报的倾向,使其在自动数据收集架构师中的使用不够可靠。未来的团队可以努力显著改进该模型,并使用和修改每 24 小时收集新数据的更新框架,并使用该模型预测警察暴行的实例。对于 web 端,一些可能的未来添加可能包括更新和更具视觉吸引力的地图,访问更多的可视化和数据-这也将涉及额外的数据,可能还包括未来数据科学团队提供的 seaborn 或 plotly 可视化-以及用户按日期、位置等对数据进行排序的能力。

旅途终点的奖赏

在整个旅程中,我接触到了大量新的有益的经历。我学到了尽早安排计划的重要性,以及如何作为一个团队和个人高效地完成这个过程。我学到了结对编程的原则和好处;这个项目让我们每周结对编程五天,持续四周,这个时间跨度足以获得大量的见解和挫折。这让我直接进入了下一个也可以说是最重要的学习机会:团队发展和沟通;当从事一个多学科项目时,需要许多不同的人完成许多任务,其中大多数都严重依赖于许多不同任务的完成,作为一个团队紧密合作以建立信任、理解和强大的沟通系统是至关重要的。除此之外,我还学习了许多技术库和方法的细节,包括 FastAPI、AWS Elastic Beanstalk 和 newspaper3k,并获得了更多关于库和方法的经验,如 NLP、spaCy、tokenization、RandomForestClassification、RandomSearchCV、API 如 PRAW 和 TWEEPY 等。

这种产品和经验是我将来能够随身携带的东西,目的是依靠它来收集对 NLP 或数据工程问题的未来方法的洞察力、宝贵的团队合作经验、我的简历、申请和工作面试的参考资料,以及超出我当前有意识思维范围的更多内容。

我叫丹尼尔·本森。我是一名数据科学家和有抱负的机器学习工程师,通过 Lambda School 的数据科学项目接受培训。我目前拥有韦伯州立大学的副学士学位,正在努力完成生物学和神经科学的学士学位。如果你希望阅读更多我的作品,我会努力在 Medium 上每周至少完成一篇博文,概述我曾经或正在进行的项目。如果你想联系我,可以在 LinkedIn 或 T2 Twitter 上找到我,为了更好地了解我的项目方法,你还可以访问我的 T4 GitHub,我在那里储存了我所有的技术项目。最后,如果你想跟踪这个警察暴行产品的开发,你可以咨询资源库、部署的登陆页面,或者人权第一网站本身。勇敢的读者,谢谢你跟随我踏上这段旅程,请关注下一篇文章。重复一遍,祝编码愉快。

人类与人工智能:梦之队

原文:https://towardsdatascience.com/humans-and-ai-the-dream-team-2b05e1c79704?source=collection_archive---------72-----------------------

为什么人工智能像人类需要人工智能一样需要人类,尤其是在像全球疫情这样的新奇事件中

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

Bret Kavanaugh 在 Unsplash 上拍摄的照片

在某种程度上,每个人都看过某种 clickbait 文章,谈论一些新的人工智能技术或新的机器人将如何最终取代我们人类。或者至少他们会让我们的大部分劳动力过时。当然,正如 clickbait 文章的倾向一样,它们极大地夸大了当前的技术以及某些技术离取代人类劳动有多近。例如,你看了像这部有线纪录片这样的视频,你会认为自动驾驶汽车随时都可能接管道路。事实上,我认为如果你找一个不参与人工智能/机器学习/数据科学社区的人,问他们当你提到人工智能时,他们想到的是什么样的技术,他们首先想到的可能是自动驾驶汽车。然而,这篇 Vox 文章引用了加州大学戴维斯分校交通研究所创始主任丹尼尔·斯珀林的话:

…完全无人驾驶的汽车——完全不需要任何人在车里,可以去任何地方——在很多很多年内都不会发生,也许永远不会发生

正如自动驾驶汽车不会取代人类司机一样,在许多领域,人类也不会像这些文章让你相信的那样被取代。换句话说,人工智能并不像它被认为的那样不会犯错,这一点随着当前的疫情变得更加明显。

现在的新冠肺炎·疫情是现代的一种新奇体验。我们上一次经历如此规模和社会影响的疫情是在 1918 年的流感大流行,正如你想象的那样,来自疫情的数据远没有我们现在拥有的那么详细或完整。此外,由于许多原因,1918 年的世界与我们今天生活的世界大不相同。

所有的预测模型都在一个基本假设下工作,即未来会以与过去相同的方式运行。数据将总是以相同的方式运行,改变的只是不同变量之间的交互方式。模型只知道数据告诉他们的东西,其他一无所知。它没有一般的世界知识,甚至只是一个更大的上下文知识(当然,除非它反映在模型给出的数据中的某个地方)。

正如本文所强调的,所有这些都意味着许多预测模型将会遥遥无期。模型无法解释这种程度的灾难性事件。此外,即使模型中增加了可以解决疫情特有问题的功能,事实是我们真的不知道未来会是什么样子。我们真的不知道我们什么时候会停止社交距离,除了我们可能不会永远这样做的事实,我们也不知道人们什么时候会觉得做他们曾经做过的事情是安全的。此外,正如许多人所说,我们可能永远不会回到过去的样子。如果是这样的话,预测模型,尤其是对数据要求更高的模型,将会在相当长的一段时间内明显失效。

这就是人类的用武之地。我们能够用很少的数据来获取新的事件并做出有根据的预测,因为我们有更广泛的同理心内部数据库和对我们人类行为的理解。一种算法可能无法预测一个人现在会去哪里购物,但人类可以。我们可能会预测有人会去较小的商店,因为那里不太拥挤,或者离家更近。我们可以看到数据的变化,并说,“哦,这对于[在此插入原因]是有意义的。”对于一个无法准确理解疫情以及与之相关的威胁和焦虑如何影响人类行为的算法来说,同样的变化根本没有意义。

所有这些并不是说我们没有桨,所有的算法现在都是无用的。算法仍然可以包含有价值的洞察力,我们可以将这些洞察力与我们自己的知识结合起来。我们可以查看算法的输出,并将其呈现为,“这是根据我们的模型通常会发生的事情,这是目前正在发生的事情,所以如果这些事件在未来发生,这就是我们如何可以预期我们的模型是错误的,以及我们如何可以预期它是正确的。”事实是,人类和人工智能一直相互需要。即使人类创造了人工智能,人工智能仍然需要来自我们的数据,人类可以提供算法无法提供的领域和一般知识。在当今数据驱动的世界中,数据科学已被证明是一种无价的工具。模型可以筛选人类无法筛选的海量数据,但人类更善于适应新的情况。这就是为什么永远不应该是一个取代另一个,而是要利用彼此的优势,齐心协力。

人类正在成为生命工程师

原文:https://towardsdatascience.com/humans-are-becoming-life-engineers-c449f65f5dfc?source=collection_archive---------41-----------------------

人类正在变得像电影《普罗米修斯》中的“工程师”一样吗?

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

顶行:计算机生成的设计。底行:实际细胞结构。图片来自https://cdorgs.github.io/

介绍

这是激动人心的时刻。

来自佛蒙特大学的计算机科学家、教授和研究人员建造了被媒体称为“第一台生命机器”

这些活体机器实际上是计算机设计的有机体,被称为异种机器人

异种机器人是如何被制造出来的一点也不像电影《普罗米修斯》中的“工程师”实际上控制着人类那样酷。但还是很有意思。

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

电影《普罗米修斯》中的场景

这篇文章旨在用通俗的语言解释这些计算机设计的有机体实际上是什么;它们是如何发展的,以及它们如何有益于人类和我们的环境。

动机

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

图片来自 thoughtco.com

参与这些生物机器(异种机器人)开发研究的团队从以下事实中获得了动力:当前人类技术的组成部分是基于对环境和人类本身都有害的降解材料。

异种机器人将自己呈现为材料的完美构建模块。它们的可再生性和生物相容性特征提供了解决我们目前因金属和塑料基构件而面临的各种问题的步骤。

生物机器的设计也激发了对基于细胞的生物和技术在医学、机器人学和其他研究领域的潜在用途的进一步探索和发现。

据佛蒙特大学的博士生、研究小组成员萨姆·克里格曼(Sam Kriegman)说,大自然对可以由生物细胞形成的有机体的可能组合的探索并不广泛,我们需要探索大自然没有探索的领域。

起源

让我们后退一步,了解异种机器人的底层构成。

异种机器人由来自青蛙(非洲爪蟾)的干细胞组成,用作异种机器人的构建模块。皮肤细胞和心肌细胞从青蛙胚胎中积累起来,形成异种机器人的基础。

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

非洲爪蛙

因此,异种机器人最好被描述为用底层组织细胞建造的活机器人。

研究人员没有利用传统的机器人建筑材料,而是从大自然中寻找建筑材料。

告诉我更多

高中生物学告诉我们,两栖动物生命周期的各个阶段包括幼体阶段的蝌蚪。

虽然蝌蚪会发展成有着跳跃的腿的青蛙,但它们最初会游泳。

现在,异种机器人可以进行被称为“行走”的运动。

异种机器人的组成部分处于两栖动物生命周期的胚胎阶段,在幼虫和变态阶段之前。

那么他们怎么能这么早就走路呢?

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

纤毛在运动

嗯,研究小组从异种机器人构建细胞中移除了一种叫做纤毛的东西。

纤毛可以被描述为有节奏的运动毛发,可以归因于游泳运动。

异种机器人的运动能力实际上来自心脏细胞发展收缩肌肉,基本上是心跳运动。

算法

组装这些积木的指挥者是一个嵌入了进化算法的计算机建模系统。

进化算法随机选择构建异种机器人的不同配置,并基于完成给定目标的成功选择最佳异种机器人结构设计。

但是什么是进化算法呢?

进化算法(EAs)是通过类似或模仿自然选择的方法来优化问题解决方案的过程。

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

自然选择图片来自现场科学

这一过程涉及一个孤立的环境,环境中的居住者是随机产生的,有一个要实现的内在目标。

经过一段时间后,选择过程开始。这个选择过程从随机产生的群体中挑选合适的候选人,为该过程的下一次迭代产生后代。

该过程重复指定数量的重复或世代,并且一旦满足特定标准就终止。

关于进化算法的更多信息可以在这里找到:

[## 进化算法

进化算法(EAs)是基于群体的元启发式算法,最初受自然进化方面的启发…

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

现在,回到异种机器人。

设计生物有机体结构的算法在模拟中运行几种结构组合,直到设计出最合适的组合,然后转移到实际有机体的模型中。

利益

我们现在对异种机器人有了一些了解。

探索它们能给人类和我们的环境带来什么样的好处,将会让我们看到这些生物的高级版本的未来会是什么样子。

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

左图:细胞显微图像。中间:自然。右:研究

  • 在**医学中,**这种生物可以在患者体内的细胞水平上提供治疗。
  • 对于环境应用,他们可以支持塑料清洁倡议。
  • 为了研究的目的,它们可以作为人体细胞药物测试的材料。

一般来说,异种机器人和研究小组的工作仍处于早期阶段,以实现长期利益和利用。

尽管如此,一个由我们想象力的无限边界所引导的愿景将引领我们走向一个积极的可预见的未来。

推测

生物和人工智能领域的任何新发展都会带来一些担忧和猜测。

异种机器人的发展涉及到明显的伦理问题。

但更广泛的是人工智能或人工智能控制的生物的发展消灭了人类。

异种机器人可以被编程用于邪恶目的吗?

在目前的状态下,答案是否定的。

目前的异种机器人寿命为七天,在合适的条件下,它们可以多活几周或几个月。人类在寿命和长寿的游戏中获胜。

进化怎么样?

人类从进化中受益匪浅。异种机器人在目前的状态下不会进化。人类在这方面还是有优势的。

武器化。

这些外星机器人有可能被武器化。Sam Kriegman 表示,通过人工智能创造危险的生物体,并不比一个怀有恶意的生物学家做同样的事情更容易。他还继续支持引入关于异种机器人应用或任何未来版本的法规。

结论

简而言之,就是这样,异种机器人。

他们很小,很酷,不是来毁灭人类的。

对于我们人类来说,引入计算机设计的生物体为细胞生物学和人工智能算法领域更稳定的进步和创新铺平了道路。

新十年的开始是多事之秋,但仍将以同样的速度继续下去。新的发展和发现就在眼前,它们将导致技术在我们日常生活中更加创新和直观的应用。

这的确是一个激动人心的时刻。

有关“计算机设计的生物体”的更多信息,请访问以下链接:

[## 计算机设计的有机体

大多数技术是由钢、混凝土、化学品和塑料制成的,它们会随着时间的推移而降解,并会产生…

cdorgs.github.io](https://cdorgs.github.io/) [## 利用青蛙细胞和人工智能创造出世界上第一台“活机器”

(图片:道格拉斯·布莱克斯顿,塔夫茨大学)当你从青蛙胚胎中取出细胞并将其培养成…

www.livescience.com](https://www.livescience.com/frogbots-living-robots.html?mod=djemAIPro) [## 用于设计可重构生物体的可扩展流水线

大多数技术是由钢、混凝土、化学品和塑料制成的,它们会随着时间的推移而降解,并会产生…

www.pnas.org](https://www.pnas.org/content/early/2020/01/07/1910837117)

如果你喜欢这篇文章,并想阅读类似的内容,请在 Medium 上关注我。在 LinkedIn 上也可以找到我。

循环中的人类

原文:https://towardsdatascience.com/humans-in-the-loop-ac3699040380?source=collection_archive---------44-----------------------

苹果 | 谷歌 | SPOTIFY | 其他

迪伦·哈德菲尔德-梅内尔在 TDS 播客

要选择章节,请访问我们的 Youtube 视频此处

编者按 :这一集是我们关于 数据科学和机器学习中出现的问题的播客系列的一部分,由 Jeremie Harris 主持。除了主持播客,Jeremie 还帮助运营一家名为sharpes minds的数据科学导师初创公司。可以听下面的播客:

收听苹果谷歌Spotify

在越来越多的高风险任务中,人类正在与人工智能合作。我这里说的不仅仅是机器人辅助手术或无人驾驶汽车——每天,社交媒体应用程序都向我们推荐内容,这些内容确实塑造了我们的世界观和文化。我们中很少有人知道这些非常重要的建议是如何产生的。

随着时间的推移,我们可能会越来越依赖我们的机器,将越来越多的思考外包给它们。如果我们不考虑我们做这件事的方式,我们可能会创造一个不反映我们当前价值观或目标的世界。这就是为什么人类/人工智能协作和互动的领域如此重要——这也是我想在本期“走向数据科学”播客中与伯克利人工智能研究员迪伦·哈德菲尔德-梅内尔交谈的原因。迪伦的工作专注于设计可以让人类和机器人更具建设性地合作的算法,他是专注于人工智能伦理和人工智能对齐领域的一个小型但不断增长的人工智能研究人员群体之一。

以下是我们谈话中我最喜欢的一些带回家的东西:

  • 当我们处理某些人工智能问题时,我们做出的一个基本选择是决定将世界的哪一部分视为“问题解决代理”,以及将世界的哪一部分视为“环境”。当我们考虑人类/人工智能交互时,这变得更加重要:我们应该将人工智能视为代理,将人类+世界其他部分视为其环境,还是想象人类+人工智能实际上是一个集成的代理,它们一起面对周围的世界?迪伦的研究采用了第二种方法,试图更好地理解人类和机器如何合作解决实际问题。
  • 如果你说“我认为学生的考试成绩是衡量教师表现的一个很好的指标”,你可以预期教师将开始改变他们的教学风格以提高学生的考试成绩,即使这意味着牺牲实际的学生学习(例如,通过强调教师认为可能在考试中出现的主题或问题,而不是对学生更有普遍价值的主题)。类似地,当政客们开始将股市视为整体经济表现的代表时,他们就有动机采取牺牲公民金融福祉的举措来推动股指上涨。这个问题被称为古德哈特定律:一旦你指定了一个你想要优化的指标(如股票指数,或学生考试成绩),人们就会开始攻击这个指标,随着时间的推移,它将失去作为你真正关心的事情(经济的健康状况,或教育质量)的代表的价值。
  • 古德哈特定律也适用于人工智能系统,因为人工智能通常被训练来优化目标函数——一种旨在反映我们所重视的结果的目标指标。不幸的是,选择真正捕捉我们想要的目标函数非常困难;更常见的情况是,它们与我们认为自己想要的东西相差甚远,这可能会产生危险的影响。例如,我们可能认为自动驾驶汽车的一个好的目标函数是最小化到达某个指定目的地的总驾驶时间,但当然,最小化驾驶时间的路径几乎肯定既不安全,也不合法。因为机器从字面上理解它们的目标函数,所以它们经常提出原创但高度病态的解决方案,这些解决方案往往随着它们变得越来越聪明而变得越来越原创、越来越病态。
  • 在将人工智能与人类价值观对齐时,一个重要的考虑因素是分布外采样的风险,在这种情况下,人工智能遇到的样本与其在训练中遇到的样本表现不一样。迪伦最近的一些工作专注于培训代理,当他们所处的环境与他们的培训环境不匹配时,他们可以注意到他们在培训期间学到的经验教训。随着人工智能比人类更有能力评估其训练的上下文相关性,这种鲁棒性将变得越来越重要。

你可以在推特上关注迪伦,你也可以在推特上关注我

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

章节:

  • 0:00 介绍
  • 1:57 迪伦的背景
  • 4:58 价值取向问题
  • 8:15 简化流程的最佳实践
  • 12:39 确定损失函数的长期目标
  • 14:07 人工智能变得“更加复杂”
  • 18:15 人类幸福的例子
  • 21:51 迪伦的研究
  • 27:51 艾的结论
  • 32:59 其他选项
  • 38:30 进化优化过程
  • 42:55 抽象级别
  • 47:49 系统安全
  • 51:50 艾绝对主义
  • 54:34 机器人与人类的互动
  • 1:02:25 生产力和社交媒体
  • 1:03:40 总结

下面是第二季第四集的脚本:

杰里米(00:00:00):
大家好,我是杰里米,播客的主持人,也是最敏锐思维数据科学导师项目团队的一员。我今天带来了一个非常激动人心的插曲,事实上,我们正在和迪伦谈话,他是加州大学伯克利分校的一名研究员。他实际上在那里完成了他的博士学位,在那里他一直在研究不同类型的人机交互,人类与人工智能的交互,他的目标是弄清楚人类和人工智能如何以一种更积极的方式相互作用。

Jeremie (00:00:30):
每当人类需要向人工智能传达他们的偏好时,人们经常会担心他们的偏好可能会被误解。人工智能系统越强大,误解造成的伤害就越大。迪伦专注于让人类与人工智能系统高效沟通的方案,并探索不同的方式来设置系统,使它们最大限度地保持稳健。这里的希望是人工智能将在某种程度上学会适度的谦逊和不确定性,特别是当他们要去执行真正重要的行动,真正重要的行动时。

Jeremie (00:01:05):
Dylan 正在研究这个问题,他也对所谓的人工智能对齐问题更感兴趣,即我们如何让人工智能按照我们希望的方式行事。我真的很兴奋能和他说话。他有各种各样的深刻见解,包括对人工智能调整真正意味着什么以及如何建立与我们的价值观正确一致的系统的新观点。我真的很期待能深入其中。我希望你喜欢这次谈话,我们在另一方面再见。

杰瑞米(00:01:30):
你好,迪伦,非常感谢你参加我的播客。

迪伦(00:01:34):
很高兴来到这里。谢谢你邀请我。

杰瑞米(00:01:35):
你能来这里我真的很兴奋。你是专注于人工智能安全问题的研究人员中的一员,这个研究队伍正在不断壮大,但仍然相当小。当然,你有一个专业,一个你关注的子领域,我很想听听你的看法,首先是你是如何做到这一点的,你是如何开始关注人工智能安全的,然后是你目前的研究是什么样的。

Dylan (00:01:57):
我的研究起源故事,如果你愿意,开始于机器人的集成任务和运动规划。我感兴趣的是如何让机器人帮你洗衣服。这涉及到长期的规划和许多实际系统建设的细节。在建立这个系统的过程中,你要做的一件关键事情就是解决一个叫做运动规划的问题。有很多不同的方法可以解决这个问题。我们使用的一种方法是轨迹优化。但是运动规划的概念是,你已经让你的机器人处于一个特定的配置,你已经有了一个你想让它朝着的目标配置,你需要找出一系列的关节控制,实际上把你从初始位置带到目标位置,而不会碰到任何东西。

迪伦(00:02:49):
事实证明,这是一件非常困难的事情,也是我们在日常生活中认为理所当然的人类智慧的例子之一。长话短说,在应用轨迹优化时,你要做的是指定一个成本函数,对不同的轨迹,从 A 点到 b 点的不同方式进行排序。它会说,发生碰撞非常糟糕。但是更快到达那里也是好的。

Dylan (00:03:20):
你最终必须指定这些权衡,这些权重。在我的一些演讲中,我举了一个界面的例子,展示了你所经历的这种设计过程,比如说,你在避免碰撞的效果和你想要的速度之间进行权衡。

迪伦(00:03:40):
最终,我意识到这些重量代表了你想要什么样的轨迹。在指定这些目标时,这实际上是一种编程过程,其中我们指定我们想要什么类型的行为。你可以在一大堆不同的人工智能环境中看到这种类型的范式,其中我们将指定我们想要什么的问题简化为某种奖励函数或得分函数。在强化学习的情况下,这是一种类似于度量或奖励函数的东西。在监督学习的情况下,这是数据集上的经验损失函数。你可以想出很多其他的例子,我们真的把我们的偏好编码到这些排名函数中,这些类型的效用函数,然后用通用的方法来优化它们。

Dylan (00:04:39):
大约两年后,在解决这些问题并熟悉这种模式后,我开始将我的研究转向研究这个问题的实际情况,以及做好它意味着什么,以及我们可以尝试避免哪些陷阱?这就是我认为的人工智能中的价值定位问题。

Jeremie (00:04:58):
好的,这就是我们所理解的……你对价值调整问题的描述包括提出我们想要优化的参数。这样说公平吗?它包括损失函数。

迪伦(00:05:12):
对。在某种程度上,你可以把损失函数看作一种编程语言,我们可以把优化看作一种编译器,你可以从一种表示,比如说,一种分类行为,从像素到二进制 01 的映射,相机狗。最终,会有一些行为集合,一些权重集合来代表对事物进行适当的分类。我们不知道如何手工编程,那太疯狂了。但同时,我们也不知道如何直接用机器代码编程。

耶雷米(00:05:48):
对。

Dylan (00:05:50):
我认为你可以在这种快速可执行的行为表现形式(类似于神经网络的权重)和我们为获得这些行为而优化的目标(即捕捉我们对猫的图片的概念的数据集)之间进行很好的类比。

Jeremie (00:06:11):
有意思。我想这种类比的一个有趣的结果是,它很好地映射了某人第一次尝试编程的主观体验,以及某人尝试做一种幼稚的机器学习。当我第一次编程时,我会对机器感到非常沮丧,因为我会告诉它做一些事情,而我的代码会中断,机器会明确无误地告诉我,“嘿,你犯了一个错误。”我不能接受。我一直在想,嗯,不,我没有犯错。很明显,你没有正确理解我让你做的事情。

耶雷米(00:06:44):
当然,我现在认识到这是一个愚蠢的错误。但是看起来我们正在犯类似的错误,或者至少我们有可能在机器学习上犯类似的错误,在机器学习中,我们只是字面上的而不是认真的,比如说机器。就对齐问题的来源而言,这是两者之间的公平映射吗?

迪伦(00:07:06):
是的,我想是的。我认为这就像在你有真正好的编译器之前,你工作在基准代码上,或者你不知道人们对写什么程序感兴趣,你写的编译器工作在你最好的表示上。有一些特定的程序是用来复制你可能需要编译的某些类型的负载的,比如内存管理中的快速数据访问或者类似的东西。但归根结底,它们是综合问题。如果你看看人工智能,那么,我认为科学界对什么是智能以及这类问题有着普遍的兴趣。但是,实际上,如果你想想我们实际上使用这些系统是为了什么,我们有数据集来表示我们希望能够做的事情,这很好,非常非常有用。但这并不能帮助我们练习这个过程,这是我们如何对我们想要的东西有一个非常松散的想法,然后同意如何以某种方式来表示它,我们实际上可以训练一个系统来做我们想要的事情。

Jeremie (00:08:15):
现在出现了什么样的最佳实践,或者你正在制定什么样的策略来简化这一过程?我们如何帮助人类更好地指定他们想要什么,以便机器人不会离开并做错事情?

Dylan (00:08:30):
老实说,我认为它的很大一部分是重新定义从事机器学习或作为机器学习工程师的人的规则。如果你想一想你在 ML 入门课程中学到了什么。你走进去,就像第一天,标准的,有指导的学习。我记得很清楚,对我来说,第一天,就像,嗯,一个监督学习问题由一个数据集,一组标签,一个损失函数,一个假设类组成,对吗?这就是问题的定义。

Dylan (00:09:11):
这真的很好,但这就像说,嗯,程序是由来自一些语法的一组术语定义的,而您的工作是将它们忠实地转换成机器代码。它是准确的,但它没有关注实际使这些系统工作的方面,这些系统通常与您实际获取数据的方式有关,确保数据标记过程实际上与您关心的世界中的因果机制相关联。监控数据流并确保数据不会随时间推移而移动。

迪伦(00:09:47):
我认为最终的问题是,如何建立一个包含人类和机器人的系统,最终确保系统表现出的行为代表我们可以与人的目标联系起来的东西。这听起来不像是一个超级具体的建议。但我认为,其中一部分只是认识到,通过更仔细地了解从哪里获得数据、如何标记数据以及如何实际解决问题,可以解决多少问题。

Dylan (00:10:22):
我这里的一个经典例子与招聘场景有关,在这里你可以看这个问题,你可以说,我认为,好的招聘意味着什么?嗯,我想我需要在绩效评估中表现出色的人。我想学会预测谁会得到好的绩效评估。我觉得这听起来很有道理。如果你没有非常仔细地思考这代表了什么,以及这与你的公司或国家的历史或不同的背景有什么关系,这是一个非常好的方法。我认为,如果你想得更多一点,你会开始意识到,实际上编码为,我们如何才能雇用我们过去想雇用的人?

迪伦(00:11:13):
这是一个非常有趣的问题,但可能不是为了雇佣你现在想雇佣的人而应该优化的问题,也不是你应该认真考虑的问题。假设在过去和现在之间发生转移,事情会出现在招聘偏见方面,有些公司已经有了评估候选人的偏见系统。然后,这些公司投入了大量的时间,他们雇佣了谁,他们如何进行培训,以及他们如何进行招聘过程,以消除这方面的偏见。

迪伦(00:11:51):
然后,与此同时,你引入训练有素的系统来复制这种偏见,并以一种新的方式引入这种偏见。我认为这是一个失败,没有真正思考我正在解决的问题的重要部分,而不是关注我可以从我的模型中获得什么样的 AUC?这是您最终要达到的目标,坦白地说,也是一个更容易衡量的目标。如果你是一家公司的工程师,你正在努力争取升职,那将会…拥有这样的机会肯定是你想要达到的目标,而且更难描述和量化的工作是确保我们确实在解决我们最初真正想要解决的问题。

Jeremie (00:12:39):
嗯,这似乎引发了人们对古德哈特定律的一些思考,也就是说,当你定义了一个你想要优化的指标时,如果它值得优化,它就不再是一个指标,因为人们会在它周围找到巧妙的方法。我想,对于古德哈特定律的应用,我的一个担心是,这是否意味着,这是一个棘手的问题,甚至是试图确定一个损失函数,这是我们应该长期努力的目标?

迪伦(00:13:12):
我认为这是一个非常好的问题。我认为…在高层次上…我们应该讨论古德哈特定律是什么吗-

Jeremie (00:13:25):
实际上是的。

迪伦(00:13:25):
……再深入一点?

Jeremie (00:13:27):
根据我的理解,古德哈特定律是这样一种想法,例如,当你选择一个你想要优化的指标时,比如 Twitter 上的粉丝,你可能会在第一天认为这将导致你做出你会与你钦佩的人联系在一起的行为。如果我在 Twitter 上有很多关注者,我会成为一个我崇拜的人。但是你意识到你想的越多,你花在优化这个指标上的时间和精力就越多,你开始意识到它们是你可以应用的小技巧。你可以玩一个跟随,跟随回来的游戏,或者你可以在 Twitter 上说一些让你获得更多追随者的离谱的事情,即使它并不能帮助你在你最初想做的事情上取得进展。

Jeremie (00:14:07):
我想这里的想法是人工智能系统,随着它们变得越来越复杂,特别是当它们在解决几乎任意任务时开始完全超过人类的表现,我们将能够投入计算周期,使人类对特定指标的适应能力相形见绌。最终,不管你指定什么样的损失函数,你都会得到离谱的解。无论你花多少时间去思考一个你想要优化的目标函数,机器都会找到一种方法做得很好,以至于超越了程序的最初目的。

迪伦(00:14:41):
对。我认为这是一个很好的总结,我认为涵盖了相当广泛的范围。让我们先把古德哈特定律和人工智能之间的关系放在一边,只关注古德哈特定律的种类,以及它是如何出现在人们身上的,因为它最终是从那里产生的。之所以这样表述,是因为古德哈特实际上是在说,没有能力实施有效的货币政策,这有点奇怪。但它基本上是说,在某些方面,人们有自己的目标和目的。如果你改变一个标准,你不太可能真正有意义地改变他们的行为,他们只会适应。因此,您将看到使您的指标上升的最小可能变化,这实际上不会改变他们正在做的事情。

Dylan (00:15:43):
我认为,正如人工智能,特别是安全,人工智能系统和社会科学中的人们更广泛地解释的那样,一般来说,有一种观察认为这是一种特殊的说法,即当处于优化压力下时,观察到的统计相关性,或者我可能弄错了它的细节,将不会停止存在。

迪伦(00:16:11):
我认为,如果你以更一般的形式来看待这个问题,你会发现写下一个奖励函数或指定你的目标是不可靠的。我认为,从很多方面来说,这是我们在生活中一直在处理的事情,在某种程度上,我们都有不同的激励计划,我们要么受制于,要么取决于你可能强加给别人的情况,如果你教学生,你会想很多你实施的激励计划,以及那些计划的含义。

Dylan (00:16:52):
我还认为,如果你有员工,你会想到如何衡量他们的表现,这也会带来类似的问题。你可以思考不同测量方法的含义,以及人们围绕它们工作的方式。对他们想要的东西有一些默认的偏见,他们会稍微改变他们的行为。但在很多情况下,如果有人信任你,你可以让他们的行为朝着你想要的方向转变,而不必使用激励手段。激励机制非常脆弱,这是我的总结。有一种方法,你可以…你指定的目标中的一点点误差似乎会被放大。

耶雷米(00:17:41):
这很有意思。当你接近参数空间中的峰值时,你会说误差的放大,或者说误差越来越明显?我想,我试图想象这一点的方式,如果我在这里完全显而易见,请纠正我,但我在想象一个人工智能系统,它试图…基本上,它是一个优化器,它试图在参数空间中攀登一个高峰。我们希望这一高峰的顶点将与我们真正深切渴望的结果相吻合。

Jeremie (00:18:15):
我告诉我的 AI,我想让你让股票市场上涨。可能是我分配给它的最后一个功能。但我真正想要的是我希望它能让所有人都非常非常开心。

迪伦(00:18:27):
当然。

耶雷米(00:18:27):
最初在黑暗时代,当一切都是绝对的垃圾时,股票市场的顶峰似乎与让人们快乐不谋而合,因为从远处看,让股票市场真正高涨和让所有人真正快乐之间的差异相对来说似乎很小,但是只有当我们开始攀升时,我们才注意到,哇,这两个目标之间开始出现巨大的差异。这是一个准确的框架吗?

Dylan (00:18:54):
我认为这在某种程度上是存在的,尽管我不确定这是否有助于建立直觉。作为一个目标,让所有人快乐的一件大事是,有很多人甚至不同意你可以达成一致的方式来表达这意味着什么。比方说,我认为这带来了一层我们现在可能想要回避的复杂性。但我认为,如果你想象为了考试而教学,这是一种本质,在某种程度上,为 sat 而学习确实有助于你变得更聪明,或者在某些类型的数学方面变得更好。总的来说,有些事情你必须做得更好。但是一旦你达到了某一点,我认为大多数试图申请大学的人都会以某种方式达到这一点,除了擅长考试之外,为此而学习不会让你在任何事情上变得更好。

耶雷米(00:20:04):
是的。

迪伦(00:20:06):
我认为是那种感觉真正推动了这些事情。如果我们想思考人工智能系统,有一些非常明显的例子,我们实际上已经作为一个领域处理过了。对我来说,我觉得最大的一个就是过拟合。如果我们考虑什么是过度拟合,这是观察,嗯,你想优化真正的风险。虽然你没有真正的风险,但你有经验风险。在一段时间内,优化经验风险是有帮助的,过一段时间后,就没有帮助了,过一段时间后,它就变得与真实风险完全无关了。

Dylan (00:20:55):
仔细想想,我们在预测方面所做的大量工作都是为了应对和克服经验风险和真实风险之间的不一致。我们有关于收敛的定理,它告诉我们,这里有一类回报函数,我们假设可以通过从固定分布中抽取新样本来进行迭代采样,我们知道这类是朝着我们关心的目标的极限趋势。从这个意义上说,它是一组目标,最终以一种严格的数学方式趋向于你所关心的目标。

Jeremie (00:21:40):
这将在大量数据的限制范围内

迪伦(00:21:44):
完全正确。大量带标签的数据,这是一个非常重要的区别。

Jeremie (00:21:51):
是的,这似乎真的以一种有趣的方式把我们带到了你的一些研究中,我们受到带宽的限制,我认为公平地说,在我们与机器的互动方面,如果人类可以提供关于机器如何以超快的方式执行我们要求他们做的任务的反馈,那将是非常棒的,这样我们就可以确保他们做的每项任务都得到完美的监督,我们不能。我想很多研究都涉及到回答这个问题,我们如何能更有效地做到这一点?我们如何以更有建设性的方式让人类参与进来?你能稍微解释一下吗?

迪伦(00:22:30):
当然。我的研究是关于观察一个人和一个机器人在一个团队中工作。我认为,当我们做这项工作时,当我们看假设的代理人时,你必须做这件事,那就是围绕什么算代理人,什么算环境?我们对人工智能系统的许多建模和我们对它的许多思考方式,代理是某种机器人,它是某种预测系统。我的研究提出了这样一个问题,如果我们在人和机器人周围画一个盒子,会是什么样子?这是对一个特定类型的人类机器人系统进行建模,在这个系统中,你对真正的目标是什么,如何实际完成这个目标有部分信息,你必须通过某种嘈杂的渠道进行交流。

Dylan (00:23:23):
一个人可能采取的一般行动。这可能是你通过行为的示范来传达它,这必须在新的环境中被模仿。你也可以想象这是自然语言,或者是某种有标签的数据集。

迪伦(00:23:40):
我的研究着眼于如何将这些系统结合起来,从而有效地实现这些目标?现在,这实际上会是什么样子呢?我关注的一个特别的想法是一个叫做反向奖励设计的想法,我认为,它采用了我们使用的这种互动的最简单的版本,并试图在人类机器人如何互动中寻找一个额外的复杂层。

迪伦(00:24:09):
这里的想法是你观察一个奖励函数。你知道两件事,一是这个奖励函数实际上不是真正的目标。在某种程度上,它是错误的,也是一致的。第二,这是一个很好的信息来源,告诉你在任何时候应该做什么。

耶雷米(00:24:34):
好,但不完美。

迪伦(00:24:36):
正是如此。你实际上如何识别可能出现的错误类型?在这个问题上,你要做的第一件事就是认识到,就其本身而言,你无法回答这个问题。如果我只告诉你这里有一个奖励函数,它可能是错的,你不知道其他的,你对此无能为力。我在这项工作中所做的是,我们引入了度量环境的概念。您有一组现有的选项可供选择,并且您有一个度量标准可供选择。基本上,你对这个系统的承诺是什么,这个指标在这些环境或背景下导致良好的行为。

Jeremie (00:25:15):
好的。

迪伦(00:25:16):
现在,这给了你一些更有条理的信息。你能做的实际上是说,这个指标是一种指定不同行为排名的方式,我可以把它视为观察到的行为排名。由此,推断不同环境下新行为的可能性,或者更有用的是,计算出这些行为如何外推到新环境的分布,如果它非常非常紧密,你有很高的信心,哦,这是一个类似于系统设计者心目中的环境,所以我可以适当地表现。或者如果范围很广,你可以说,啊,这不好,我可能不应该过去。选择去获取更多信息,或者选择一个替代的,也许更安全的行动方案。

Dylan (00:26:12):
我们举了一个例子,我们称之为……在这种情况下,你有一个机器人试图在一些 2D 环境中行驶,你有一些不同类型的现象需要它去观察。想象一下,在你想要寻找的环境中,有一些东西就像一罐罐的金子。对于你心目中的环境,实际上有两种类型的地形,草地和泥土。有泥路,然后有草坪和其他东西,你希望它大部分时间呆在泥土上,找到这些物体,穿过草坪,在它必须去的地方。

迪伦(00:26:45):
现在,你可以通过收集这些地形类型的例子,你想去寻找的金罐的例子,训练分类器,然后指定一个使用这些分类器的奖励函数。

迪伦(00:26:59):
问题是,如果你忘记了你的机器人将被部署在夏威夷,那么实际上也有熔岩,一切都会变得混乱。你不会有一个一致的预测,它应该对熔岩做什么,因为根据你看到的数据,没有明确的暗示,或者可能没有。这完全取决于你所使用的学习算法的特征空间和偏差。但关键是,它在那种情况下做什么是任意的。

迪伦(00:27:33):
你会得到一堆指标,它们在没有熔岩的世界里会说同样的话,在有熔岩的世界里会说完全不同的话。这给了你一个想法,也许我的度量不太适合这个环境。

Jeremie (00:27:51):
这似乎给这个系统带来了一点谦卑和自省,让你先看看你的环境,然后说:“好吧,那么,我能在多大程度上将我的夏威夷经历映射到我的旧金山经历?”我猜,机器人或人工智能会基于此得出什么结论?它会不会倾向于说,好吧,我只是不打算采取任何行动,因为我不确定我是否处于一个新的环境中,这个环境与我以前看到的环境不太相符?还是留给开发人员做练习?

迪伦(00:28:27):
我认为以一种非常谦逊的方式,这是留给开发人员的一个练习。从这个意义上说,这不是我该说的。我认为,实际上,从这项工作中得出的一个重要结论是,作为开发者,你应该注意哪些事情?我认为,在这种情况下,数学上实际上漏掉的一件事,以一种非常好的方式,是指定当你太不确定时的回退行为。我不知道你的听众想要什么样的数学细节。

Jeremie (00:29:06):
是的,我想我们可能会保持合理的高水平,只是为了……但是如果你有-

迪伦(00:29:11):
我认为它的高级版本是……你认为人们会熟悉概率模型中可识别性的概念吗?或许吧?

耶雷米(00:29:29):
我还没有完全。也许我们可以从那里开始。

Dylan (00:29:31):
可识别性是指你能从数据中找出什么样的潜在变量?这方面的经典例子是,如果你有一个混合的高斯分布,这些高斯分布来自于……你有一些潜在的变量,它们是这些高斯分布的均值和方差。当你做聚类时,你观察这些数据,然后你拟合这些潜在变量。在无限数据的极限下,你可以证明你会平均识别出正确的均值和协方差。有了无限量的数据,你最终会到达那里。然而-

Jeremie (00:30:11):
这是……我能根据输出重建神经网络的参数吗,我的预测-

迪伦(00:30:17):
算是吧。问题是均值的值是可识别的,但它们在潜在变量向量中的排序是不可识别的。

耶雷米(00:30:29):
哦,对了。是啊。

迪伦(00:30:30):
在你的最终推断中,有一堆平行的假设会得到同等的权重。

Jeremie (00:30:36):
如果我错了,请纠正我,这在直觉上是有意义的,因为我可以想象,事实上,可能有无限数量的神经网络会产生相同的输入输出特性。

迪伦(00:30:48):
对。

Jeremie (00:30:49):
或一般功能。抱歉,我说的是神经网络,而是功能。

迪伦(00:30:54):
你可以使用这里的任何东西。但关键是,如果你有两个不同的潜在变量设置,它们在数据上产生相同的分布,你永远无法从观察中找出哪一个是实际情况。这是一个非常普遍的概念,被称为可识别性。这是一项研究,根据你的数据中假设的因果结构,你能发现什么?

耶雷米(00:31:22):
有意思,这似乎……这似乎指出了一个问题,我可以想象,比方说,两个不同的神经网络,其中一个给出了我想要的结果。最大化人类价值,或者不管我指的是什么,然后另一个是,真的很可怕,但我无法用我喂它的特定样本来检测。有可能存在一个任意大的算法集,其中大多数都是病态的,但是我只能在有限数量的样本上检查它们的行为,对吗?这是否说明了几乎是对齐的可验证性?

Dylan (00:32:05):
我认为这涉及到了一些问题,比如带有预测的“没有免费的午餐”定理,对吗?如果你问的是关于发行外性能的问题,在没有额外假设的情况下,我们没有给出保证的好方法。你知道这些假设在某些情况下会有帮助,但它们肯定比其他情况更有害。我觉得这只是同类的东西。

迪伦(00:32:28):
现在,我认为我的总体看法是理性,行为应该朝着一个目标优化的想法实际上是一种选择,它是一种工具,用于我们设计编译器,接受这些目标的表示,这些期望行为的表示,并进行交流。但我认为它不需要成为我们唯一的财产。

Jeremie (00:32:59):
还有哪些其他选择?

Dylan (00:33:01):
嗯,我认为首先要说的是,如果你考虑理性,它是某人写下的和客观的高级启发。事实证明,你能做的大多数行为都是愚蠢的。大多数神经网络不会做任何有用的事情。引入这种为完成某项任务而优化的思想,这种范式基本上建立在至少做点什么的启发中。这减少了程序的空间,你必须用它来表示你想要的东西。因为你不需要区分事情是如何解决的所有细节,你可以说,我们以合理的方式做这件事,或者试图优化一些目标。

迪伦(00:33:50):
我想你也可以说,我们并不真的想要一天结束时的纯粹理性行为,我们希望有更多规范的行为。我认为这是规范中应该包含的内容。你想想,我们默认不写直接优化经验风险的监督学习系统。在一些设置中,如果你有足够的数据,它是有效的,你仍然可以依靠其他物理属性来规范最终的行为。

Dylan (00:34:22):
在许多方面,我们确实依赖系统的计算约束来规范它们的行为。理论上,对于每一个 RL 环境,都有一个非常非常好的策略,就是以某种方式进行缓冲区溢出攻击,并在奖励计算来自的内存中写入非常大的数字,对吗?一方面,我们的系统不这样做的原因很明显,但很难解释。还不清楚在一组特定的权重中是否有简单的策略可以做到这一点。我认为我们有信心,实际上我们使用的优化技术的类型的属性意味着那不会是我们最终的结果。

耶雷米(00:35:23):
真的吗?好吧。因为我想为什么我们不用-

迪伦(00:35:26):
我不认为我们知道如何描述他们。我不认为任何人真的担心你正在运行的优化会以某种方式偏离轨道。

耶雷米(00:35:41):
是的。我看到人们探索缩放语言模型的可能性,例如,作为潜在的风险因素,就像 GPT 10 或其他什么,你不断地让神经网络变得更大更深,它从学习低级别的抽象开始,学习基本的如何把字母放在一起等等,最终学习语法等等,然后最终开发出某种世界模型。这个模型可能最终会包括对模型在世界中的位置的认识,可能会说,哦,看那个,因为它对预测句子中的下一个单词是有用的,我会意识到,嘿,我实际上是嵌入在这个世界中的,因此随之而来的,开始变得贪婪…有各种各样的[听不清 00:36:31]

迪伦(00:36:31):
对,这就像改变世界,以便更容易预测下一个单词。

耶雷米(00:36:38):
对。我想这和你一直在谈论的是代理人和环境之间的区别。这将是算法意识到的时刻,嘿,我嵌入在这里的环境中,是时候开始模糊这些线了。

迪伦(00:36:56):
我认为这些观点都值得认真对待,但也很难反驳。我认为这是值得认真对待的事情,你应该给他们带来适当程度的怀疑,我认为是这样的。例如,有一个假设,基本上,如果唯一的字符是一个…好吧,让我这么说吧,我们有很多经济学的例子,理性行为是怪异和违反直觉的,从根本上说,不是人类,我认为在很多方面,对吗?经济人是一种不同类型的存在。

Dylan (00:38:00):
我认为,如果你对人工智能系统的唯一假设是,它们是具有任意效用函数的经济人的实例化,那就不好了。你最终会有不好的结果,因为你在假设一个场景…我认为,基本上,根据假设,你不会做得很好。

耶雷米(00:38:30):
真遗憾。嗯,我想从定义上来说,几乎不可能找出确切的位置……如果我们能找出那个假设失败的地方,我们就会知道更多的事情。但在我看来,“经济人”不起作用的原因是,进化给我们设定了需求和欲望……嗯,我们不是随机的,而是与经济激励非常不一致。我们想要做一些事情…有时,我们会嫉妒别人。在人类存在的病理模式中,如果我们变得报复或其他什么,我们有时会把别人的痛苦看得比自己的幸福更重要,这就打乱了整个模式。

Jeremie (00:39:16):
我想,在机器学习模型的情况下,或者说,深度神经网络,本质上不受那些进化条件的限制,我想你可能会说,它正在经历一个进化优化的过程。也许那-

迪伦(00:39:37):
我认为没有人能告诉我,我们无法找出如何编写符合这种行为特征的程序,或者由最佳或理性代理或类似的东西很好地建模的程序。我当然不是说我认为那是不可能的。我并不是说我认为如果我们真的建造了它,我不认为它在很多方面是好的。我认为有些人可以通过存在风险来讨论这个问题。我认为你甚至不需要真的去谈论那种事情会导致的非常糟糕的结果。

Jeremie (00:40:30):
我完全同意。这是……说得清楚一点,当我们开始谈论爆发风险之类的事情时,我实际上把这框定为一个极端或者认为这是一个极端危险的结果类别。是啊。

Dylan (00:40:42):
但我认为……我认为人工智能系统或人工智能研究的结果应该是这样的。像这样的争论需要迈出一步,也就是说,这是未来人工智能系统的模型。我想,如果你还同意我的观点,关于这个编译器的类比,在这个过程中的某个时刻,在构建这些系统的过程中有一个创新,那就是引入这些最佳行为的模型,并且说,我们应该让我们的编译器更有可能输出一些至少是有用的东西。这对人工智能研究和人工智能系统的进步非常有用。但这并不意味着我们必须推动这条研究路线直到最终完成,也不意味着人工智能系统必须朝着个体理性经济主体的方向努力。

迪伦(00:41:44):
坦白地说,我认为有很多人想要建立这样的系统,我认为这并不好。我认为这源于某种类型的思维定势。但是我觉得不是必然的。我认为这是一个选择,实际上,我认为审视这些关于风险的争论的结果是,什么是正确的方向,什么是有用的选择?

迪伦(00:42:10):
这是我真正感到有希望的地方,因为我们现在试图在世界上部署人工智能系统时遇到的问题,在某种程度上,就是这些类型的问题。它们不一定是预测误差的问题,尽管我认为你可以说它们是这样的。但是它们的问题是,不能恰当地表示许多重要设置的目标的最小可行产品,并且不能产生训练有素的从业者来做深入思考这些目标是什么的艰苦工作,作为在机器学习系统内表示它们的过程。

Jeremie (00:42:55):
我完全同意,如果我们能够避免人们盲目地转向这种超级刺激的模式,那就太好了。我想我的担心是,从经济上来说,似乎在那个方向上有一个强大的强制功能,如果我们举个例子…好吧,这个超级放大的深度神经网络的玩具例子比我们曾经建造的任何东西都更庞大,那些试图制造的人,我不会把它叫做 GPTN,因为这听起来好像我在挑选开放人工智能。我认为他们考虑到了很多风险。但是,有人试图让那个巨大的模型看起来像什么,实际上可能…他们可能不会试图过度拟合。他们可能试图尽最大努力,想出一个合理的损失函数,产生一个真正强大的模型,但不知道,在什么样的训练水平上,模型决定在什么样的抽象水平上爆发?

Jeremie (00:43:57):
他们甚至可能带着一种安全意识的心态来对待它,但是因为我们没有办法真正预测抽象飞跃将在什么点上发生,所以朝着那个方向推进本质上是危险的事情。

迪伦(00:44:13):
对。明确地说,我并不同意物质层面上的这种担忧。我认为我们可以担心这是一个问题,我还没有看到任何真正的论据使我相信这不太可能发生。我认为有直觉的争论,有人们对可能发生的事情的感知,无论是建立系统的经验还是其他方式的直觉。但我不认为有任何实际的,坚实的论据可以让我相信这不是一个问题。

迪伦(00:44:59):
坦白地说,如果它存在,并且有人知道它,我很乐意看到它。我认为我的观点是,同时,我认为我们可以认识到这一点,认识到这是一个挑战,然后也想知道什么是更严肃的证明形式,这是当前系统需要关注的问题?我看到的所有暗示风险的论点,都是四种不同的方式,比如……我们会谈到突破之类的想法。这并不是我试图思考这些事情的方式,因为我不知道如何使这个想法精确,我不知道如何定义这个想法,我不知道如何用这个表达做任何有用的事情。

迪伦(00:45:48):
同样,如果有人能够找到一种好的形式主义,一种好的方式来表现它,为它建模,我认为这很好。但我不确定它是从哪里来的。它的论点依赖于理性行为作为你的人工智能系统如何运作的公理。声称它会爆发,因为那对目标更好,因为你在系统中有它的表示。一方面,我认为这是真的,如果你接受这样的假设,即把它建模为经济人是好的。但是,我也想知道,好吧,有没有其他的假设真的会导致这样的结果?从数学上来说,有没有方法来构建实际上并不纯粹优化其目标的系统?

迪伦(00:46:42):
我认为在实践中,这肯定是正确的。我们有正规化。我们可以训练最大限度地利用经验数据集的东西,来预测导致这种情况的数据的真实分布,我们可以根据数据集的大小来调整它。这是你必须做的事情。没有人能告诉你将正则化参数设置在什么数字或特定的细节,但我们认识到这是一个问题,我们知道克服它是构建人工智能系统的核心部分。

Dylan (00:47:16):
我认为有一种完全相同的东西可能会出现在更高的抽象层,这与好吧,在监督学习的情况下,你想尝试模仿的实际人类认知过程是什么?在这里,作为从业者和领域,我们非常,非常偏向于什么是可用的,而不是我们需要什么?

Jeremie (00:47:44):
对,我想这是所有这些系统的普遍问题

迪伦(00:47:48):
我想是的。

Jeremie (00:47:49):
是的,有趣的是,系统的安全性与其整体能力之间存在很大的相互作用,因为能够充分利用神经网络的所有能力来实现某个目标是一件很棒的事情。但最终,无论何时我们谈论安全,那都意味着强加某种约束。当你开始放开束缚的时候,你冒险进入-

迪伦(00:48:16):
我几乎会质疑这个假设。从这个意义上来说,好吧,如果我们可以假设一个完美的世界,你会想从系统中挤出最后一点性能。但是有一句关于优秀员工的沃伦·巴菲特名言。这是,你想要的人有一些…我肯定我理解错了,但这就像你想要的人有智慧,勇气和值得信赖。如果他们没有最后一个,要注意前两个。

耶雷米(00:48:49):
是啊。

Dylan (00:48:49):
我认为这在实际意义上确实适用,不是对遥远的系统,而是对当前的系统。你可以接受,除了…例如,如果你现在去 YouTube,你告诉他们,“我有一个方法让你…你在预测某人点击这个视频的可能性方面会做得更差,但我可以向你保证,它不会对青少年的福祉产生负面影响,正如研究所 A、B 和 c 所测量的那样。”

迪伦(00:49:33):
如果你去找他们,并且能够具体说明,我认为这是一件非常有价值的事情。这是你无法通过简单地重新标记你所拥有的数据来解决的。你也许可以通过从根本上重新设计人们与你的视频推荐系统之间的互动类型来达到这个目的。但是,有一个问题,他们想解决,但他们无法解决,他们无法指定,我认为,有效利用这项技术的障碍并没有真正提高预测性能,但实际上提高了轻松指定目标的能力。

Jeremie (00:50:23):
对,我想是这样的。这就像因为您还没有指定您想要的精确优化目标,所以您被迫采取措施来限制系统整体的行为,使用更粗粒度的工具。基本上就是找个锤子稍微敲打一下你的神经网络。

迪伦(00:50:47):
我认为这是对的。比方说,你有一大堆行为,包括神经网络的不同参数化,你试图找出如何选择正确的行为,这是一个人无法独自完成的事情。我们发现,指定某种度量标准,然后优化这些预测损失是一种很好的方式,可以真正剔除一大堆糟糕的权重配置。

耶雷米(00:51:22):
是啊。但仍然不是全部。

迪伦(00:51:27):
但不全是错误的,事实证明,如果你过于专注,那么你很有可能以不同的方式出错。在这个范围的一端,你有无用的随机行为,在这个范围的另一端,你有…在概率为 1 的情况下,你可能实际上没有你想要的行为。

Jeremie (00:51:50):
这是…事实上可能不存在客观损失函数或客观函数,而是人类可能希望优化的概念…我不知道,对于相信人工智能绝对主义或人工智能最终将做好一切的人来说,这有点令人担忧。

耶雷米(00:52:14):
例如,山姆·哈里斯有本书,名为《道德景观》,他在书中谈到,从本质上讲,他认为自然界中存在一种客观的功能。但是每当有人以这种方式谈论道德时,对我来说似乎总是不够明确。你认为它们实际上可能是我们可以优化的东西吗,我甚至不知道我要在这里说什么,让人们快乐,最大限度地促进人类繁荣?

迪伦(00:52:42):
我不一定认同那套关于事情最终会如何发展的信念。我感兴趣的是,我们可以建立什么样的系统来重建人类社会中的一些激励平衡,并将其整合到一般的人工智能系统中?我认为,在某种程度上,这是一个问题,作为人,我们可以用什么样的过程来讨论这些事情?在某种程度上,我不知道,试图复制我们作为一个物种建立和设计的过程,以规范群体行为和协调我们自己的规模?

迪伦(00:53:37):
我认为有这样一个方面,我们发现了如何平衡我们个人以及社会和结构中的许多不同激励因素。有很多方法可以得到一个可信任的第三方或者有一个代理的想法。代理人已经是一份工作,有人可以做你的代理人,你可以雇佣房地产市场的人做你的代理人,代表你的利益。这不是凭空出现的,有人发明了这种方法来管理世界的复杂性。

迪伦(00:54:16):
我们也可以用人工智能系统来做这件事。我们需要弄清楚那看起来像什么。在脸书上设置你想看什么类型的内容,什么时候你想看不同种类的东西时,你的代理是什么,可以被信任来代表你?

Jeremie (00:54:34):
在一个机器人和机器正在做如此复杂的事情,以至于人类甚至无法理解这些决定的含义的世界里,你认为这种机器人与人类互动的画面能够保持下去吗?

迪伦(00:54:54):
我认为这是一个非常棘手的问题。我认为更通俗的说法是,你如何在适当的背景下向人们展示信息,给他们最好的方式去做他们能做的决定?这包括,你如何提供一个适当的背景来说明这个决定的后果是什么?

耶雷米(00:55:21):
对。

迪伦(00:55:23):
那是我们不知道如何去做的事情。我一直在思考价值定位与推荐系统的关系,尤其是像 YouTube 和脸书这样的内容推荐系统。这就是为什么我似乎总是回到那些例子。这是原因之一。但是我们不太擅长弄清楚如何让人们进入一种状态,在这种状态下,他们可以反思他们想在互联网上从事什么类型的事情。我对这个问题的看法是,我们确实可以想象遥远未来的可能系统,并谈论它。但实际上,这就像是,好吧,对于一个新存在的事物,这是一种通过算法过滤和选择的奇怪类型的内容提要,什么是…大多数人甚至不知道这是什么的适当术语,什么是推荐,当我出去,偶尔跑步时,这对我来说真的很有趣…这种情况不再经常发生了。但是你偶尔会碰到人。我会经常询问他们的建议。

迪伦(00:56:38):
每个人都有不同的理论来将他们获得的推荐或排名拟人化,以及他们了解了什么以及如何运作。他们总是深信不疑,他们通常在某些方面是错的,这没什么,因为没有人-

Jeremie (00:56:55):
我肯定我的会是,是的。

迪伦(00:56:56):
幕后实际发生的事情非常复杂。作为一个不在这两家公司工作的人,我真的不知道幕后发生了什么。事实上,有些东西就像你的信息过滤器,或者这个排名算法,它选择你看到的东西,这对你将成为的人,你将拥有的新闻消费类型,你应该关心什么样的事情有影响?你应该关心平衡,公平吗?这里有一大堆不同的价值观,你可能会关心它们在那里的表现。

迪伦(00:57:32):
真正的问题是,你如何开始这样的对话?你如何…这是公共教育的结合,帮助人们知道实际上存在一个问题,并围绕提供背景设计系统,帮助人们认识到他们应该解决的问题,帮助他们认识到你实际上要求他们做的认知工作的价值。

迪伦(00:57:54):
我认为一个很大的讽刺是,你实际上拥有大量的工具和控件。看到人们在 Twitter 上说他们希望 Twitter 有一种方法可以更少地看到事情,这非常有趣。我在 Twitter 超级用户、有复选标记的人和许多关注者等身上多次看到这种情况。事实是 Twitter 有这个功能。它在那里。我不知道它在那里多久了,但它在那里。问题是,没有人知道它实际上会做什么,或者如何相信它将来会真正帮助他们。

Jeremie (00:58:33):
我想,这也是一个有趣的问题,即使你完全知道这个推荐系统是如何工作的,你完全知道所有的东西都是开源的,你仍然会有一个非常复杂的道德问题,那就是你想成为什么样的人。我可以看到 YouTube 上的一个视频,它有可能让我变成一个聪明的…我不知道,就像一个海洋生物学家,我可以跟着那个兔子洞,继续跟着视频。

Jeremie (00:59:05):
公平地说,我可以看一系列的视频来证明这一点。但是,如果我面临这个选择,或者另一个把我带到机器学习工程师那里作为最终状态的选择,或者一个把我变成纳粹、共产主义者或者其他什么的选择,我能知道我想要成为哪个版本的我吗?我不知道未来版本的我会希望我成为谁,如果他们知道所有不同的未来版本的我想要什么。我都不知道这是怎么回事。

迪伦(00:59:37):
这是你进入一些非常复杂的哲学的地方,你可以谈论思考它的方法。除了我自己,我当然不是回答这些问题的合适人选。但我认为,我认为大多数人都会同意的观察结果是,回答这些问题是很费力的。回答我想成为什么样的人这一问题,需要一项基本的认知工作。

Dylan (01:00:14):
在某些方面,你必须弄清楚如何设计系统来克服,而不仅仅是你不知道那个人想成为谁的信息问题,或者更具体地说,他们想看到什么内容,这与他们想成为谁有关。事实上,你可以影响这一点,如果你只是不能影响某人…说,我不会影响某人明天是谁,基于我给他们看的东西。同样,这可能是你真正想要的东西。但是作为一个推荐系统的设计者,你不知道那是什么。但除此之外,这个人通常不知道这个问题的答案,也许甚至不知道如何真正进行这种类型的对话,或者不喜欢这种类型的思考,即我想成为什么样的人,这是一种特殊的思维方式,但不是每个人都喜欢参与。或者对我来说,我认为这是有代价的,对不同的人来说有不同的代价。

迪伦(01:01:18):
当人们只想在一些猫视频中消失一会儿时,你如何说服他们去经历这个代价高昂的过程?

Jeremie (01:01:25):
是的,绝对是。

迪伦(01:01:27):
与此同时,很明显会有巨大的正外部性。如果我现在可以为社会挥舞一根魔杖,那可能是让每个人每周安排 15 分钟来反思他们如何消费信息,以及他们想要消费的信息类型。然后花五分钟做一些让他们成功的事情,以此为基础。我认为,如果每个人都这样做,这对社会来说将是一个巨大的正外部性,因为你的个人信息消费将会发生个人变化。

Dylan (01:02:09):
但这实际上改变了整体,实际上引导并包括了某些类型的认知过程,从而引导了人们的信息饮食。

Jeremie (01:02:25):
我无法释怀…例如,我最有效率的日子总是那些我不在 Twitter 上度过的日子。毫无疑问……现在的感觉是,我们不得不离开去处理信息的时间,相对于我们花费在消费信息上的时间,这种平衡在过去的 10 年里完全颠倒了。过去,你会在一天中看到一个大新闻,你可能会花一整天的时间来咀嚼它,也许会和几个人谈论同一个焦点故事,在这种情况下,故事的可靠性更重要。而现在只是不停地输入,输入,输入,几乎没有时间进行认知处理。事情发生方式的有趣转变。

迪伦(01:03:12):
如果你的世界信息更加稀缺,或者更难获取,这要求你实际上…这听起来有点傻,但如果你不得不选择去拿一份报纸,这种行动和选择会让你有点投入,它会让你进入一种略有不同的状态。然而,如果你只是想抽离……如果相反你要从那里获取信息,我不知道还能做什么,有一卷东西可以分散注意力。那是完全不同的事情。

杰雷米(01:03:40):
说到这里,我想假惺惺地问一下,你是否有一个 Twitter 链接可以分享,是否有人想关注你,看看你的更多作品?

迪伦(01:03:49):
是的,当然。我是 dhadfieldmenell。名字的首字母,姓氏,没有标点符号或任何类似的东西。我不能保证经常发微博。实际上我现在正在休息。但我肯定会发布论文更新,我倾向于偶尔发关于人工智能伦理和一般价值一致性主题的推特。

耶雷米(01:04:13):
真棒。非常感谢您抽出时间,今天的讨论非常精彩,几乎囊括了所有内容。所以,我真的很感激。如果可以的话,我们会在播客附带的博客中发布一个链接,链接到你的 Twitter 和你的学术网站。

迪伦(01:04:26):
是的,那太好了。非常感谢。这是一个真正的机会,我很高兴有机会和你们交谈。

人类——你的人工智能战略中的薄弱环节?

原文:https://towardsdatascience.com/humans-the-weak-link-in-your-ml-ai-strategy-657fc2a5d94e?source=collection_archive---------85-----------------------

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

在许多情况下,需要部署机器学习来增强人类的决策,而不是使其自动化。您如何解释这种对数据产品成功的依赖?

AI 承诺了很多事情。

其中之一是有可能降低人类从事某些类型工作(如分析)所需的 LOE。事实上,它不仅减少了它,而且它还可以远远超过这一点,实现人类无法做到的分析类型。

如果您的团队能够找到这些统计模式,您就可以优化支出、节省运营成本、检测异常、注入智能、知道向谁推销最新的小部件,等等。统计数据。数据。分析。工装。要做到这一点,需要大量预算、大量数据争论和基础设施。

打鼹鼠。

问题是,你可以把所有的技术都做对(假设你不只是用 ML 代码把你的数据或组织中现有的偏见和问题编成代码),但是如果技术要求人类正确地用它做决策,并把它集成到业务中,你仍然会失败。

许多地方还没有准备好完全自动化,将人类从所有的决策中移除。甚至中央情报局现在也专注于用机器学习来增加决策,而不是用 ML 来自动化一切。

所以我们又回到了人类是技术成功的一个变量——一个很大的变量。AI 或者其他。

仅仅因为你可以建模并不意味着你应该这样做,或者如果你这样做,它将保证组织将释放承诺的价值——因为仍然有人类参与的部分。

这一部分可能不在您的技术清单中,但如果您将人的因素视为 it 投资的一部分,它可能应该在。

设计让我们问,人类会使用它吗?信任它?看重吗?明白吗?他们有动力吗?如果这是错误的,他们个人(或他们关心的外部社区)会付出什么代价?

最后一英里——人类参与的地方——可能是你的人工智能下沉或游动的地方。

那么,在你的人工智能战略中,500 万美元、5000 万美元或 5 亿美元中,有多少将用于确保系统中人的部分不会崩溃,即使技术部分没有问题?

Git 上没有神奇的数据或包可以帮你做到这一点,但是好的设计可能会有所帮助。


如果你是一名数据科学、分析或技术产品负责人,正在寻找如何用你的数据创建有用、可用的决策支持应用程序的一步一步的过程,我的研讨会——设计以人为中心的数据产品——将教你可以立即应用到工作中的技能,以便你的数据 输出 开始产生业务 成果

照片由托马斯·斯蒂芬在 Unsplash 上拍摄

数百家公司正在用我的 Cookie 数据开派对,而我没有被邀请

原文:https://towardsdatascience.com/hundreds-of-companies-are-having-a-party-with-my-cookie-data-and-i-wasnt-invited-e7f70837b27?source=collection_archive---------58-----------------------

我如何从一家广告情报公司获得 cookie 数据,如何使用我的 cookie 数据追踪错综复杂的第三方网络,以及如何感觉被排除在外。

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

图片由 Master1305

随着新法规的出台,产生了一种新的数据类别,赋予个人对其数据的权利,例如,从存在数据的平台请求其数据的权利。

此类个人数据权利在逻辑上包括您使用的平台。此外,这些个人数据权利也延伸到拥有您数据的服务提供商和平台,即使您与他们没有(已知的)关系。

让我们从 cookie 的角度来讨论这些问题,尤其是第三方对 cookie 的数据使用和数据处理。为了检验这一点,我们使用了从 Quantcast 获得的数据,根据维基百科“专门从事人工智能驱动的实时广告、观众洞察和测量。该公司声称,它拥有超过 1 亿个网络目的地的受众测量数据。

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

第三方饼干派对— 完整视频点击此处

需要注意的是,cookies 以及与 cookies 相关联的数据往往来源于浏览行为而非个人数据。我没有发现任何个人身份数据(姓名、地址、SSN 等)。)在其中描述的数据集中。

您可以要求 QuantCast 在 CCPA(如果您在加州)或 GDPR(如果您在欧洲)提供您的个人资料的副本在此。提交您的请求后,Quantcast 将在 AWS 上为您提供一个 S3 桶,以便在他们处理您的请求后检索您的数据。在我的案例中,他们花了 30 天才完成。

在这篇文章中,我将分析 QuantCast in 收集的关于我的数据内容。我不会讨论其中包含的用例,而是将重点放在使用内容作为整个行业的风向标。

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

Quantcast 的数据申请表。

作为补充说明,在请求访问您的数据时,QuantCast 不会要求您告诉您是谁,也不会向您提供任何个人详细信息来识别您的身份。鉴于他们正在追踪你浏览器中的“MC”cookie,他们已经知道你是谁了。这无疑定下了基调。在这篇文章中,我将在一个浏览器中检查我收到的与一个 cookie 相关的数据。

查看您在哪里被跟踪,您的数据在哪里,想知道它为什么在那里,我们是否应该有一些跨部门强制实施的开放默认设置

30 天后,AWS S3 链接提供了一个档案下载,其中有一个简单的文本记录结构和一个概述 Quantcast 提供的数据的 PDF,并附有一些简单的图例和解释。这些解释对理解内容很有帮助,而且写得很好,否则内容可能看起来像任意的字符串。

归档包含以下文件:

  • Audience-grid —关于您如何被第三方划分到一个组中的数据,以及与该划分相关的第三方数据处理;
  • 观众链接——同上;
  • 数据描述 —这是解释该档案内容的 PDF 文件;
  • 人口统计数据——这解释了 Quantcast 对你个人的粗略描述,它包括四个维度:家庭中的孩子、收入、性别、位置和教育;
  • 历史存储 —包含您的个人数据,以及这些数据在个性化广告、个性化内容交付和预测分析中的处理方式,包括历史记录、时间戳、可用的使用位置;
  • Keebler —已经创建的第一方(本例中为 QuantCast)片段,其中您的浏览器是组合在一起的一组其他浏览器的一部分。

我的直接观察是,在提供的 30 天时间内,我的浏览器中有 15,836 条跟踪此“MC”cookie 的记录(这可能是他们的 cookie 到期时间,整个行业的中值生命周期约为 30 天)。我想知道这是不是很多:30 天内 15,836 条记录?这大约是每天 530 例。我想知道在这个浏览器上我是否访问了更多的页面,是否仅仅是因为我在所有页面上都被跟踪了?这似乎是合理的。

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

有一些特定产品、服务提供商及其数据段的有趣案例(Datalogix:购物兴趣:心理学和生活方式:夏季季节性购物者:NASCAR Superfans)。在对我进行了那种类型的描述后,我不确定我是否会信任 Datalogix,但这可能解释了为什么我会看到一些向我宣传的内容。

外卖食品

这种类型的数据至少可以带来三点有趣的启示:

  1. 在您身上生成的数据配置文件的类型。如果准确,它们可能是有帮助的,如果不准确,它们可能是令人不安的,甚至是自我延续的(看到一辆赛车,点击一辆赛车,获得更多的赛车内容,即使对你没有帮助);
  2. 这种剖析在互联网上发生,并且这种剖析可能是未知的、无保证的或不需要的;
  3. 什么类型的广告链接到什么数据档案或产品,以及它们在哪里显示。这实际上可以让你追溯到你看到的内容位置上的一些大问号,并推导出它为什么会出现。

数据本身还特别提到了 GDPR 的同意以及 GDPR 是否适用(例如,由于访问的位置)。没有提到其他类似的政策,如 CCPA。

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

关于第三方数据共享和处理的说明

在本例中,用户(我)与 QuantCast 没有已知的关系。然而,我可能在某个时候接受了“MC”cookie 的使用。除此之外,我可以在“观众链接”文件的日志中看到,我的数据已经由 Experian 提供给了 Quantcast,我想这是为了丰富信息。当然,不仅仅是 Experian,还有 AnalyticsIQ、Ixi (Equifax)、Oracle、Datalogix 等公司,以及其他许多公司。

阅读他们对我的分类和简介也很有趣。鉴于我对“斯沃森”的代号一无所知,我不会在这里列出太多的这些部分,除了说我被描述为“复活节糖果买家”、“Bravo 网络爱好者”、“瓶装水”爱好者和“奢侈护发”。作为一个为了更有效率而开始剃光头的人,这些都不太可信。

我的结论

似乎这些公司对我的数据比我更感兴趣。我很高兴至少我能看到正在发生的事情,但作为一名数据极客,我想参与其中。

有些公司以跟踪和分析用户的在线行为为生。作为一种媒介,它们有助于了解您的哪些个人数据被跟踪,以及这些数据被用于何处。我们认为有机会为开放协作和公共领域的不同用例设置数据共享的默认值,通过查看数据使用情况,我们可以看到并提出数据共享的开放标准,以便一起讨论和完善。

cookie 是一个重要的数据源和网络,但随着第三方 cookie 在 2022 年的减少,我们看到了市场的空白,这可能是零方数据或用户控制的 cookie的机会。

许多个人数据被锁在筒仓中,因此我们在 Prifina 进行研究,探索和创建自动检索这些数据的方法,使其对个人和开发者有用。你可以在Prifina——你的数据页面上看到更多这样的数据平台,上面有关于如何检索和探索你自己的个人数据的说明。

这个数据集暴露了十几个不同类型的服务提供商,以继续解开第三方数据共享和数据处理。处理一个数据请求的成本大约为 1,400 美元,我正在考虑很多$$$的理由来简化和构建请求处理过程,以便我可以通过 API 或类似的方法 ping 它。去吧,我等着。

具体谈一下这篇文章中描述的 cookie 数据以及与之相关的第三方网络,它如何对创造新产品有用?对你刚刚看到的广告进行逆向工程?你能想到什么类型的用例?关于这个看似不可见(对用户而言)的 cookie 数据网络,您有兴趣了解什么?

你的数字双胞胎一直在世界各地忙碌。让他们为你工作。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值