TowardsDataScience 博客中文翻译 2021(一百一十八)

原文:TowardsDataScience Blog

协议:CC BY-NC-SA 4.0

研究生论文的艺术

原文:https://towardsdatascience.com/art-of-the-graduate-school-essay-f59b14c79649?source=collection_archive---------24-----------------------

让我进入 12 个数据科学硕士项目的 5 个简单技巧

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

拍摄于中国北京,大约 2018 年(又名 covid 之前);我是前面的金发女郎!

研究生院 sop:他们会觉得自己像一头野兽。

当我申请数据科学项目的硕士学位时,我并不是一个完美的学生;事实上,我离它很远。我从未接触过 Python,从未运行过机器学习算法,也没有在谷歌或脸书有过什么性感的实习经历。我一直把自己定位为具有国际视野的作家、文科类型的人,我本科的大部分时间都在学习法语和中文,在国外实习和学习,甚至追求跆拳道生涯(完全透明地说,我辅修数学,但那是因为我最喜欢惩罚)。

说句不好听的话:我读硕士之前确实不是来自计算机科学或统计学专业,所以进入我申请的所有 12 个项目对这个系统来说是一个完全的冲击。这包括 UChicago、USC、UMich、UVA、Georgetown、Duke 和 Tufts——他们中的许多人还为我提供了高额奖学金!

现在尘埃落定,我真的相信是我的写作技巧拯救了这一天,给我一个平台来构建我的人生故事,并提供为什么我应该得到一个机会的理由。通过谨慎的措辞,我能够克服不足,扩大优势,并提供一个令人信服的叙述,显示出向上的动力和学习的意愿。在我身上赌一把会有回报。自从上了研究生院,我就是我们班的学生会主席,目前我的平均绩点是 3.95,离毕业还有一个学期。

这篇文章既适合那些想要一些可靠的写作技巧的人,也适合那些想要获得数据科学学位但又担心没有相关背景的人。我在这里告诉你,1)我相信你,2)我是你能做到的活生生的证明,3)有了足够好的叙述,你的顶级数据科学项目的小组可能会认为你也能做到!

小贴士 1 |“你和其他女孩不一样”

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

维多利亚博物馆Unsplash 上拍摄的照片

就像一个二战时期的水手在家里给他的 11 个女朋友写信一样——不要混淆名字,回忆她们每个人的特别之处,并向她们传达这样一种感觉:她们是你唯一关注的人。如果哈佛明天来敲你的门,那也没关系——罗格斯大学或者巴斯特大学,该死的。

当然,谁是她的读者会因你的读者而异。在你的文章中,列出你所写的学校为什么对你来说是独特的的原因是很重要的。

对这个问题做研究——对我来说,我至少花了一个小时学习核心课程,教授专业领域,然后平静地在我的论文中阐述我自己的兴趣如何与这些专业相结合。下面我将链接我自己的一篇文章,在第二页的后半部分是“你对我的特别之处”:

https://drive.google.com/file/d/1vpx1x1hNmyw8f1-bVxpII9b3ObwSXwjG/view

此外,如果他们在申请的另一部分问你还申请了哪些学校,只列出那些有类似硕士项目的学校*,他们目前在排名中击败了那些学校。*因此,如果斯坦福大学在数据科学方面的排名高于布朗大学和哥伦比亚大学,你可以像你考虑的其他学校一样,将这两所学校放在你的斯坦福大学申请中,但不要将斯坦福大学放在你的布朗大学或哥伦比亚大学申请中。接受一个最终没有上学的学生会让学校看起来更糟,所以如果他们认为一个非常合格的学生会去别的地方,他们就不会接受他。

要点:不要发出千篇一律的短文;让你申请的每所学校相信它们最符合你的目标和兴趣(暗示如果他们接受你,你一定会去!).

技巧 2 |按时间顺序排列

按时间顺序排列的故事引人注目,因为这是一种传达结构和动力的简单方式。或者更具体地说,“这就是所发生的事情,这就是我现在正在做的事情,这就是为什么你的学校是我计划中明确的下一步”。你不需要严格按时间顺序排列(你会在我的 SOP 中看到,我只是在故事的某些点上按时间顺序排列),但当你试图传达任何一种轨迹时,最好保持事情有序。

例如,我用这个工具描述了我最初对数据科学的兴趣是如何达到顶峰的,我是如何投入这种热情的,以及为什么研究生院是我明确的下一步。通过一系列简单的事件,我能够以积极的势头弥补我在背景方面的不足。

**大意:**千百年来,人们一直在讲故事;挖掘古代艺术,以保持读者的兴趣,并防止你的观点变得过于颠倒。

技巧 3 |杀死你的爱人

写作既是创造也是破坏,研究生论文里的每一句话对你的整个故事一定是不可或缺的。这很难,因为我们倾向于写一份有很多绒毛和不连贯的草稿,然后有点依赖那些绒毛中没有发挥作用的部分。斯蒂芬·金称这种琐碎为“宠儿”,我相信学习如何成为一名“好”作家的一半是能够放下自己的小宠儿。

“杀了你的宝贝,杀了你的宝贝,即使这会伤了你这个自私的小流氓的心,也要杀了你的宝贝。”—斯蒂芬·金

**要点:**当你意识到它们已经开始偏离要点时,不要小心翼翼地删掉一些单词或者整段文字。

这就是为什么拥有校对者是如此的重要;他们不像你那样执着于文字,可以帮助清除杂草,让你的信息保持在正确的轨道上。如果你没有可以校对的人,在两次草稿之间休息几天,你会发现自己每次都会带着更新鲜、更客观的视角回到你的故事中。

技巧 4 |制造一个入口

我说你不一定要按时间顺序,就是这个意思。第一段,确切地说,应该是*激动人心。*没时间慢慢积累了——让读者直接进入故事情节,让他们注意你要说的内容。

这是我在研究生论文中最常用的介绍段落。这并不完美,但我很快就安排好了形势、任务和行动,留下接下来的几段来解释结果。

我选择从事数据科学的转折点出现在去年 4 月,当时我的团队参加了芝加哥大学计量经济学比赛。就像年轻计量经济学家的黑客马拉松一样,这场比赛将从剑桥到圣克拉拉的经济学学生聚集在一起。目标是在 14 小时内提出并回答一个重要的经济问题。在数量经济学研究研讨会的 Jane Doe 博士指导下学习了一些研究技术后,我对第一次有机会测试我的应用计量经济学知识感到紧张和兴奋。

作为一名经济学专业的学生,我能够从我完成的计量经济学竞赛中开始解释我对数据分析领域的最初兴趣。

要点:我鼓励你想出一些与数据科学密切相关的事件,并以此尽快抓住读者的注意力。类似于行为面试,如果你发现自己陷入困境,你可以使用明星方法来组织你的故事。

技巧 5 |诚实。

“如果你对任何事情感到尴尬,那是你做得不对的迹象.”—匿名

在当今世界,很容易摆脱各种通货膨胀——分数通货膨胀(学校),货币通货膨胀(政府),简历通货膨胀(几乎每个人)。每个人都想比别人看起来更好,结果每个人都以过度夸张而被遗忘而告终。

GIPHY 的 GIF

诚实很重要。确实如此。评审小组知道完美的候选人并不存在,所以如果你试图让他们相信你就是 T1,他们就会怀疑。提到你在 5 岁时没有完全掌握 Python,而是参加了两门在线课程,这可能不太令人印象深刻,但如果你说你是 Python 专家,没有任何实质性的课程或实习,这可能会引起对你诚实的怀疑(突然之间,你申请中的一切都变得更容易引起争论)。

当然,重要的是强调你的优势,并对你所知道的充满信心。为了判断什么时候我可能做得太过了,我喜欢回想几年前我听到的一句话:“如果你对任何事情感到尴尬,那是你做得不对的迹象。”

(附注:我在网上找不到这段引文——如果有人指出了原始出处,我很乐意给予作者应有的信任!)

要点:对你所知道的要有信心,对你所不知道的要诚实。

离别的思绪

作为一名前文科毕业生,目前正在休寒假的数据科学研究生,只要一有机会,我就喜欢舒展我的写作双腿。我希望我使用的一些技巧对你完成自己的申请有所帮助。

就我个人而言,读研是我做过的最好的决定,我绝对热爱我每天所学的东西,并且我很高兴今后能在数据科学领域工作。也就是说,这条道路并不适合所有人,有许多方法可以开始自己的数据科学之旅-如果训练营或自学对你更好,那么尽一切努力去做吧!😊

如果您对我有任何问题,请随时通过我的个人网站、 LinkedInTwitter 联系我,当然您也可以在 Medium 上关注我。再次感谢阅读!

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

摄于韩国首尔的一个雨天。总有一天,我会再次旅行——但我不会以外交官的身份工作,也不会以运动员的身份参赛,我会以数据科学家的身份利用自己的时间旅行,享受一些美好的时光:)

技巧还是智慧?

原文:https://towardsdatascience.com/artifice-or-intelligence-993f6f400313?source=collection_archive---------17-----------------------

在看到任何数据之前,报告您的建模策略或统计分析计划

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

照片由Karen lark Boshoffhttps://www . pexels . com/photo/black-red-and-white-round-decor-6758919/

如果你的模型在新数据上表现不佳,未跟踪的倾听可能是原因。

想象一下,在你成功之后,在台球上打你的球!这是一个坏的研究习惯。预注册是指你甚至在走到桌子前就开始打电话。你会赢一些,也会输一些,但你会公平地比赛——这就是你如何提高你的比赛。

技巧

在纽约州北部,我的大学室友在我们的宿舍房间里搭建了一个飞镖靶。一个好朋友——让我们称他们为“纽约的詹姆斯”——会经常过来。詹姆斯喜欢炫耀自己是未来的飞镖高手。

詹姆斯会在地板上的胶带前摆好姿势。他们会仔细评估镖靶,手中的飞镖,以及两者之间的轨迹。最后,随着戏剧性的结束,詹姆斯会开始,“看,当我灵巧地击中…

然后,詹姆斯会夸张地把飞镖抛向空中,甚至发出低沉的运动咕噜声。当看到它果断地落在从靶心延伸到标有“16”的外弧的三角形带内时,詹姆斯会胜利地总结道,“……六!”(这是飞镖游戏“板球”中“16”的俚语。)

如果你就在那时走进来,你可能会惊叹于詹姆斯投掷飞镖的高超技艺和准确性。我的意思是,他们称之为公平公正的拍摄,对不对?“看,我灵巧地击中了第六个!”

当你谈论一个新的见解时,好像你一直都在期待它,你移动了科学证实的目标来适应你的发现。

听着:德克萨斯神枪手

在科学、研究和统计领域,詹姆斯被称为德州神枪手。这位骗子以“结果已知后的假设”而闻名——同时声称假设是在结果已知前创造的()。这通常表现为“研究人员自由度”,通常用于 p-hacking 和数据钓鱼或窥探

这很糟糕,因为这让你看起来像是在寻找支持你最初假设的证据,而事实上你在寻找一个新假设的可能证据——一个需要来自单独的额外研究新证据来进一步支持的假设:“我找到了六个。也许我擅长打六?让我再试一次。”

每次你听的时候,你都冒着宣称不可信的风险:你在实际上只有噪音的地方复制了一个真实的信号。

这种常见的混淆使得一项科学发现看起来比实际上更真实、更可复制。例如,每当你在之后写下你的建模策略、统计分析计划(SAP)或方法部分时,你可能会无意中这样做。

也就是说,即使在最好的情况下,也很容易忘记或没有注意到你是如何简单地通过检查你的初步发现,或通过查看工作图或数据可视化来改变你的初始假设或模型的。这种“假设蠕变”意味着你在缓慢但肯定地调整你的想法以适应你的研究数据,而不是用你的研究数据来测试或证实你的原始想法。

这些根据经验更新的假设就是你最终在 SAP 或方法部分呈现的初始假设!你试图“让数据自己说话”——但在你给了他们那一英寸后,他们又后退了一码。

样品内部性能

您错误地将您对模型性能的理解“颠倒”了,从样本内(真)到样本外(假)。

在机器学习中,HARKing 的一个版本可以产生一种微妙类型的统计过拟合(即在没有结构的变化中找到结构,或者在只有噪声的地方找到信号)。如果你的模型在新数据上表现不佳,未跟踪的倾听可能是原因。

  • ***“看着,我灵巧地打……”***假设你适合,交叉验证,用你的训练数据选择一个模型。然后,在维持数据上测试模型,并计算其维持性能。
  • 您觉得可以改进这种维持性能,并决定调整您最初的建模和交叉验证参数。然后,使用您的培训数据重新拟合、交叉验证并选择一个新模型。
  • 您在相同的维持数据上测试您的模型,注意到您的新模型的维持性能得到了改进,现在感到满意了。你报告这是它的样本外表现。“……第六!”

不幸的是,您只是优化了您的模型以适应您的定型数据和维持数据,从而恶化了它的真实维持性能(即,它归纳为新数据的能力)。你忘记了你做了这些,并且在总结你的结果时,你没有报告你“在已知维持拟合(结果)后调整了你的模型(假设)”。

通过倾听,您隐式地对样本内数据进行了重新分类,以包括您的训练数据维持数据。但随后你混淆了结果模型拟合反映出样本外的表现。也就是说,您错误地将您对模型性能的解释“颠倒”了,从样本内(真)到样本外(假)。

附录(2021 年 12 月 4 日星期六):事实上,Hastie 等人(2009 年)在他们的开创性文本统计学习的要素(第 7.2 节)中明确警告了这一点:

如果我们处于数据丰富的情况下,解决这两个问题的最佳方法是
将数据集随机分成三部分:训练集、验证集
和测试集。训练集用于拟合模型;验证
集用于估算模型选择的预测误差;测试集
用于评估最终选择模型的泛化误差。
理想情况下,测试集应该保存在一个“保险库”中,只有在数据分析结束时才拿出来
假设我们重复使用测试集
,选择测试集误差最小的模型。那么最终选择的模型的测试
设定误差会低估真实的测试误差,
有时会大大降低。

智力

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

Rodolfo Clix 在https://www.pexels.com/photo/five-bulb-lights-1036936/拍摄的照片

重复的想法,确认的发现,样本内的非样本表现。

詹姆斯显然是在夸大其词,实际上并没有声称自己在飞镖方面有不可思议的技能。但是,许多(如果不是大多数的话)研究人员通过倾听以这种方式玩科学板球,通常是无意识的。它非常普遍、自然且容易做到:在获得应用统计学硕士学位和生物统计学博士学位多年后,并且拥有 18 年以上的专业数据分析师经验后,我仍然发现自己在听!

重复的想法,确认的发现,样本内的非样本表现。每次你听的时候,你都冒着宣称不可信的风险:你复制了一个实际上只有噪音的真实信号。

这种说法令人不安地普遍存在,产生了真实而深远的后果;倾听是科学可修复但顽固的缺陷之一。因此,它是“生物医学和心理学复制危机的一个关键因素”,正如我在其他地方写的关于显著性谬误(呼应了研究界的一种普遍情绪)。

方法:预注册

所以在某个时候,你意识到你一直在用你的研究玩“詹姆斯在纽约板球”。你想改掉这个坏习惯。怎么会?

在 SAP 或方法部分:

  1. **预案。在收集和处理任何研究数据进行分析之前(即“先验”或“事前”),始终陈述您计划的分析和模型,即使这些分析和模型取决于出现的分析结果;预先存在)。
  2. **报告。**报告、发布或以其他方式标记该版本,以便于验证这些假设和模型确实是先验的。随着研究的进展,如果需要的话,报告带有时间戳的文本修改。

这个操作程序被称为预注册,正式或非正式都可以。对于美国的临床试验,你可以通过clinicaltrials.gov来完成,这有助于减少发表和结果报告偏差

预先注册有助于你的观众(和你!)了解如何正确解释你的分析结果。

结果:发现还是证实?

一般来说,每个分析主要为两个互补的研究目标之一提供证据。两者都是正确的科学研究设计的基础。

当你谈论一个新的见解时,好像你一直都在期待它,你移动了科学证实的目标来适应你的发现。这给了你错误的信心,认为这些见解比实际情况更真实。

想象一下,在成功后,你在台球上打了分!这是一个坏的研究习惯。预注册是指在走上牌桌之前,你甚至要对每一个镜头都打电话*。你会赢一些,也会输一些,但你会公平地比赛——这就是你如何提高你的比赛。*

也就是说,预先注册有助于你的观众(和你!)了解如何正确解释你的分析结果。那么你应该如何报告你的结果呢?

  • **标签。**清楚地将每个分析结果标记为事后(探索性)或先验(证实性)发现。
  • 发表。至少,发布或提供一份预先注册的 SAP 或方法资料,让你的观众可以用来给自己的结果贴上标签。

这样做将使其他研究人员能够为规划他们自己的研究得出正确的结论。这种更强大的科学过程帮助你和其他人以你的发现为基础进行优化——为每个人优化科学。

参考

  • 统计学习的要素:数据挖掘、推理和预测。纽约:统计学中的斯普林格系列。2009.

关于作者

Eric J. Daza 是数字健康领域的数据科学统计学家。他获得了应用统计学硕士学位和生物统计学博士学位,在临床试验、公共卫生和行为改变研究方面拥有 18 年以上的工作经验。Daza 博士为用于个性化健康建议的个人内(即,n-of-1,单病例,独特的)数字健康研究开发因果推断方法。| ericjdaza.com🇺🇸🇵🇭@埃里克森 linkedin.com/in/ericjdaza|statsof1.org@ stats of@ fsbiostats

人工意识是不可能的

原文:https://towardsdatascience.com/artificial-consciousness-is-impossible-c1b2ab0bdc46?source=collection_archive---------3-----------------------

思想和理论

有意识的机器是科幻小说的主要内容,通常被认为是未来事实的必然产物,但这是不可能的。

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

摄于 Unsplash

这篇文章试图解释为什么有意识的机器是不可能的。硬件和软件设计的行为本身是一种动力的传递,是设计者的延伸,而不是意识意志的灌输。文章的后半部分致力于解决反驳的论点。最后,列出了本论文的一些启示。

智力对意识

智能是一个实体执行任务的能力,而意识是指一种主观现象的存在。

智力[1]:

“……运用知识来控制环境的能力”

意识[2]:

“当我处于有意识的精神状态时,从主观或第一人称的角度来看,我就像是处于那种状态。”

意识要求

一个有意识的实体,即头脑,必须具备:

1.意向性[3]:

“意向性是心灵关于、代表或代表事物、属性和事态的力量。”

请注意,这不仅仅是一个象征性的表示。

2.感受性[4]:

“……我们精神生活中可内省的、非凡的方面。在这个术语的广义上,很难否认有感受性。”

含义和符号

意义是事物(具体的或抽象的)和意识体验之间的心理联系。心灵哲学家描述了使这些意向性联系成为可能的心灵力量。符号只对那些在他们的意识体验和符号之间建立了联系的实体有意义。

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

一面写有汉字的墙。照片由蒂莫西·吉登纳Unsplash 上拍摄

中国房间,重新设计

《中国房间》是约翰·塞尔于 1980 年出版的一部哲学论证和思想实验[5]:

塞尔想象自己独自一人在一个房间里,按照一个电脑程序对塞在门下的汉字做出反应。塞尔对中文一窍不通,但他却像电脑一样按照程序操作符号和数字,把适当的汉字串从门缝里送了出来,这让外面的人误以为房间里有一个说中文的人。

就目前情况而言,中国房间的论点需要重新构建。房间里的人从来没有把他或她的意识经验和汉字联系起来,因此这个人和这个房间都不懂中文。核心问题应该是缺乏连接的意识体验,而不是是否有一个适当的程序可以将任何东西变成思维(这就好比说,如果一个程序 X 足够好,它就会理解语句 s。一个程序永远不会“足够好”,因为它是一个程序,我将在后面的部分解释)。这种最初的模糊框架使争论脱轨,并使其更容易受到攻击。(出轨导致的此类攻击之一是斯洛曼的【6】)

中文房间的论点指出,符号处理的合法问题对于任何意义来说都是不充分的(语法对于语义来说是不够的),但是对于框架来说,这给反对留下了太多的回旋余地。我们不再关注一个程序是否可以被转化成一个大脑,而是深入研究程序本身的基本性质。

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

一系列形状。照片由 Unsplash 上的魔术图案拍摄

符号操纵器,一个思维实验

程序的基本性质是它们没有构成意义的有意识的联想。编程代码之所以对人类有意义,仅仅是因为代码是以符号的形式存在的,这些符号包含了与读者的意识体验相关的内容。塞尔的中文房间论证的目的是将论证的读者置于与编程代码中的符号没有经验联系的人的位置。因此,中文教室是一个语言教室。房间内的人不理解编程代码背后的含义,而对外界来说,房间似乎理解特定的人类语言。

中国房间的争论伴随着另一个潜在的破坏性问题。中文房间里的人是作为一个可视化设备引入的,让读者从机器的角度“看”。然而,由于机器因为没有意识而不能有“观点”,房间里有一个人就产生了一个问题,可能会出现“房间里有一个有意识的人在做有意识的事情”的异议。

我将解决 POV 问题,并通过使用以下思维实验来阐明语法和语义的区别:

你记住了一大堆形状。然后,你记住这些形状的排列顺序,这样,如果你看到一堆形状是按一定的顺序排列的,你就会以另一个规定的顺序选择一堆形状来“回答”。现在,你有没有学到任何语言背后的意义?

所有程序都以这种方式操作符号。程序代码本身没有任何意义。对机器来说,它们是要和它们的有效载荷一起执行的序列,仅此而已,就像中文教室里的汉字是要根据给不识字的人的排序指令来处理的有效载荷一样。

它不仅概括了编程代码,符号操纵器思想实验及其序列和有效载荷也是一种算法的概括:“在计算或其他解决问题的操作中,尤其是由计算机遵循的一个过程或一组规则。【7】

形状和序列之间的关系是任意定义的,而不是因果确定的。操作规则是简单编程的东西,不一定与任何种类的世界因果关系相匹配,因为任何这样的链接将是程序的偶然特征,而不是本质特征(即,偶然而非必然)。)程序可以处理任何输入,而机器会跟着处理,这不是因为它“理解”了输入或输出的任何世界含义*,而仅仅是因为它遵循了程序的指示。*

一个非常粗略的伪代码示例来说明这种任意关系:

让 p=“夜”

输入 R

如果 R = day,则打印 p+“是”+R

现在,如果我输入“白天”,那么输出将是“夜晚就是白天”。太好了。绝对“正确输出”根据其编程。它不一定“有意义”,但也没有必要,因为这是编程!同样的道理也适用于任何输入到机器中产生输出的其他输入,例如,“nLc 是 auS”,“e8jey 是 3uD4”,等等。

对机器来说,代码和输入只不过是要执行的项目和序列。对机器来说,这种排序或执行活动没有任何意义。对程序员来说,有意义是因为他或她将变量概念化并理解为他们有意识体验的代表性占位符。机器不理解诸如“变量”、“占位符”、“项目”、“序列”、“执行”等概念。它只是不理解,句号。因此,机器永远不会真正“知道”它在做什么,只能表现出理解的操作外观。

理解房间——机器模仿理解

房间隐喻延伸到所有人工智能活动。机器似乎只处理意义,当它们最终将一切翻译成机器语言指令时,在执行之前和之后都没有意义,并且只关心执行本身(上面的形状记忆思维实验说明了所有机器程序执行的机制)。一个程序只包含对程序员的意义)。中文屋和符号操纵者思维实验表明,虽然我们的大脑能够理解和处理概念,但机器却不能,只能处理序列和有效载荷。因此,头脑不是机器,机器和机器模拟都不可能是头脑。 看似理解语言和意义的机器,本质上是“理解室”,只是在外表上表现出理解。

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

机器学习并不像许多人认为的那样。照片由布雷特·乔丹Unsplash 拍摄

学习室——机器实际上从不学习,部分原因是大脑不仅仅是一个物理信息处理器

机器完全缺乏任何可能的真正理解和认识的直接结果是,机器只能是看似学习但实际上从不学习的学习室。考虑到这一点,“机器学习”是一个被广泛误解和可能经常被滥用的术语。

人工智能教科书欣然承认“机器学习”中的“学习”并不是指通常意义上的学习[8]:

“例如,一个允许用户更新数据条目的数据库系统将符合我们对学习系统的定义:它根据从数据库更新中获得的经验来提高其回答数据库查询的性能。与其担心这种类型的活动是否属于“学习”一词通常的非正式会话含义,我们将简单地采用我们对通过经验改进的程序类的技术定义。

请注意,术语“经验”也不是在这个词的通常意义上使用的,因为经验不仅仅是数据收集。知识论证展示了大脑不仅仅是处理关于物理世界的信息。

机器只拥有物理信息,而且在没有理解能力的情况下这样做,它们通过无视活动的经验背景的方式参与学习活动。一个很好的例子是一台计算机如何用蛮力人工适应一个视频游戏,而不是学习任何东西【10】。

在“学习识别图片”的情况下,机器会看到几十万到几百万张图片,并通过多次失败看到成束的“非大猩猩”像素中的“大猩猩”,最终正确地将屏幕上的像素束与术语“大猩猩”匹配起来……除了它甚至不是一直都做得那么好 [11]。

不用说,通过智能“提高识别大猩猩像素的性能”与通过意识体验“了解大猩猩是什么”几乎不是一回事。减轻这种大锤策略包括人工刺激机器只尝试每件事的一个更小的子集而不是绝对的每件事【12】。

“学习机”是“学习室”,只是在学习的外表上。机器模仿学习的某些理论机制以及模拟学习的结果,但从不复制学习的经验活动。实际的学习需要将参照对象与有意识的经验联系起来。这就是为什么机器会将构成大猩猩图像的像素组与构成深色皮肤人类图像的像素组相混淆。机器不会学习——它们进行模式匹配,而且只有模式匹配。没有实际的个人经验把人的脸和大猩猩的脸联系起来。上一次一个人诚实地把动物的脸错当成人的脸是什么时候?当然,我们可能会看到相似之处,并认为这些动物的脸是人类的,但我们只承认它们是相似的,而不是真正的匹配。机器被“抽象伪装”愚弄,对抗性生成的图像出于同样的原因【13】。这些错误仅仅是缺乏真正学习的症状;即使机器给出完美的结果,它们也不会学习。从根本上来说,“机器学习”与实际学习的距离就像之前人工智能教科书中提到的简单的电子表格数据库更新一样遥远。

意志房间——机器只能表现为拥有内在动力

机器被编程的事实注定了它们是附属物,是程序员意志的延伸。一台机器的设计和它的编程约束和定义了它。没有“没有设计的设计”或“没有编程的编程”一台机器的操作已经被它的程序员和设计者从外部决定了,即使存在诸如“一个程序/机器进化了”(进化算法是谁设计的?)“没有人知道黑盒中的结果程序是如何产生的,”(谁编写了产生结果代码的程序?)“神经网络没有程序,”(神经网络的算法是谁写的?)“机器学习并适应了,”(它不会“学习……”谁决定它会如何适应?)和“有自我修改代码”(是什么决定了这种所谓的“自我修改”的行为,因为它不是“自我”)最终产生行为的是程序员的编程,这是无法逃避的。

让我们再来看看塞尔的中国室。中国房间里的人遵循的程序是谁或什么写的?肯定不是那个人,因为他不懂中文,当然也不是中文室本身。正如前面关于学习的文章所指出的,这个中文教室并不仅仅是通过在教室里放置说明来“学习中文”,就像一个电子表格“学习”写在上面的项目一样。这个人和中国房间都没有“说中文”他们只不过是按照中文教室里说中文的程序员的指示做的。

很容易看出,当程序员对他们的驾驶进行编程时,“自动驾驶汽车”这样的术语是多么不恰当。这意味着当涉及到编程时,人类设计师最终要为机器的失败负责;其他任何事情都是企图推卸责任。“自动驾驶汽车”很难做到自动驾驶。他们学不会开车或自己开车,就像一个中国人学中文或说中文一样。设计师和程序员是机器明显意志的来源。

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

它很可爱,令人想抱抱,它的眉毛可以形成看起来像皱眉的样子。梁杰森Unsplash 上的照片

意识房间——结论,机器只能看起来有意识

看起来有意识的人工智能是一个意识室,是一种成功程度不同的模仿。正如我所展示的,他们既不能理解也不能学习。不仅如此,他们没有能力拥有意志。人工意识是不可能的,因为编程的外在本质是与语法绑定的,没有任何意义。

对反驳的回应

下面的部分是对反对我的论文的特定类别的反驳的回应。请注意,这些回答并不独立,只能被视为支持我上面的主要论点。每个回应只适用于持有相应异议的人。

“你不能提供意向性和感受性的证据,因为它们是主观的”

如果你的意识不具备意向性,“意识关于、代表或代表事物、属性和事态的能力”,那么你将无法理解你面前这个屏幕上的任何单词,因为这些单词根本不涉及任何东西。如果感受性不存在,那么就没有主观感觉存在。没有寒冷的寒冷,没有怀疑的情绪,也没有任何事物的白色、金色、蓝色或黑色。现象的本质和现象存在的本质是有区别的,意向性和感受性的存在是不言而喻的。

“任何反对机器能够做人类能做的事情的可能性的论点都是特别的恳求!”

性能与智力有关,与意识无关——参见定义。为什么有人会假设意识是“完成”的东西?什么支持这一假设?意识作为行动的假设无论如何都不是公理,理论上 AGI 可以在没有意识的情况下完成任何和所有的任务。

从结论来看,超越语法的操作需要从有意识的经验中获得意义。当有意识的经验在论点的最开始被提到作为意义的定义成分时,这可能会使论点显得循环往复(假设它试图证明什么)。

然而,定义意义的最初命题(“意义是与意识经验的心理联系”)并没有因为结论或结论之后的任何事情而被赋予有效性;这是一个独立于结论的观察。

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

可能用图形表示足球比分与股票市场的相关性。由马克西姆·霍普曼Unsplash 上拍摄的照片

功能主义者的反对意见(我的回答是:他们没有考虑到欠确定性)

许多反对意见是以这样或那样的功能主义形式出现的。也就是说,它们都遵循一条或多条路线:

如果我们知道神经元做什么,那么我们就知道大脑做什么。

如果我们能复制一个大脑或复制一组神经元,那么我们就能制造出人工意识

如果我们能复制大脑的功能,我们就能制造人工意识

功能主义者的论点在这里不起作用,因为要复制任何功能,必须有办法确保所有功能及其依赖关系都是可见的和可测量的。没有“复制”未确定的东西。“如果我们知道/如果我们可以复制”的功能主义假设是无效的。

欠确定不需要对大脑进行如此详尽的建模是不可能的,正如 SEP (emphasis mine)[14]中的以下段落所解释的:

“……当牛顿的天体力学未能正确预测天王星的轨道时,当时的科学家并没有简单地放弃这一理论,而是保护这一理论免遭驳斥……

“……尽管牛顿的理论是错误的,这一策略还是取得了成果……

“……但是,同样的策略在试图通过假设存在另一颗行星“火神”来解释水星轨道近日点的推进时失败了……

“……迪昂正确地提出,不仅假设必须作为一个群体或一个集合进行测试,而且这绝不是一个预先确定的结论,即这样一个集合中的哪个成员应该被放弃或修改,以应对失败的经验测试或错误的暗示。

简而言之,当我们一开始就不能完全了解 X 的时候,我们就不能保证我们能设计出“像 X 一样”的东西。由于不确定性,不可能保证一个完整的模型。功能主义者的论点失败了,因为发现中的相关性并不意味着因果关系,这些相关性必须 100%可以发现,才能有一个详尽的模型。甚至在看像这样的实际实验之前,就有许多对功能主义立场的理论攻击:

重复刺激苍蝇大脑中相同的神经元群会产生随机的结果。这从物理上证明了欠定[15]:

“……一些神经元群可以引发跨动物的多种行为,有时甚至可以引发单个动物的多种行为。

刺激不同动物的一组神经元偶尔会导致不同的行为。Zlatic 说,这种差异可能是由多种因素造成的:“可能是以前的经历;可能是发育差异;这可能是动物的性格。动物在神经元激活时所处的不同状态。”

研究小组发现,刺激同一只动物的相同神经元偶尔会导致不同的行为。"

在上面引用的段落中,注意短语“可能是”和“可能是”的所有实例它们是不确定因素在起作用的迹象。当随机实验结果有多种可能的解释时,不可能进行详尽的建模。

功能主义者回答:“……但是我们不需要详尽的建模或功能复制”

是的,我们有,因为没有任何保证意识是以其他方式产生的。不引入意识就能产生过多的功能和行为;没有真正可衡量的外部成功指标。参见下面的“行为主义者的异议”一节。

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

伸出十个手指。一定是在想数字十。路易斯·金特罗在 Unsplash 上的照片

行为主义者的反对

这些反方一般说,如果我们能重现有意识的行为,那么我们已经产生了意识。例如,我完全不同意《科学美国人》的一篇文章声称存在检测机器意识的测试。

可观察到的行为并不意味着什么,正如最初的中文教室论证已经证明的那样。中文室貌似只懂中文。机器学习不等同于实际学习的事实也证明了这一点。

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

这是比蚯蚓更有意识,比蚯蚓更没有意识,还是根本没有意识?照片由特伦斯伯克Unsplash 上拍摄

通过机器复杂性的突现主义

复杂性突现论的反例包括电话处理器中晶体管的数量与果蝇大脑中神经元的数量。为什么智能手机没有果蝇有意识?拥有数百万倍晶体管的超级计算机呢?相比之下更加复杂的太空发射系统呢……它们是有意识的吗?意识不是从复杂性中产生的。

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

克隆羊不是人工智能。Benjamin Sander Bergum 在 Unsplash 上拍摄的照片

控制论与克隆

如果涉及到生命体,那么这个主题就不再是人工意识的主题了。那些将是操纵先天意识的例子,而不是任何人工意识的创造。

“最终,所有的东西都会在未来被发明出来”和“为什么大脑不能用另一种基质形成?”

基底与问题无关。所有人工智能系统都需要算法和代码。所有这些都以这样或那样的方式被编程。一个人在未来走多远,或者用什么衬底,都无关紧要;机器码的基本语法性质仍然存在。举出一个不涉及任何代码的人工智能项目。举出一个人工智能可以违反非冲突原则并拥有编程能力而不需要编程的方式(见上文“意志房间”一节)。)

“我们有 DNA,DNA 是程序代码”

DNA 不是程序代码。基因构成只影响而不决定行为。DNA 的功能也不像机器代码。DNA 测序携带了广泛的作用指令,如生长和繁殖,而机器代码的功能范围相对有限。观察表明,每一个基因影响每一个复杂的特征到一个不确切知道的程度【17】。这表明它们的工作是不确定的,而相比之下,编程代码在功能上是确定的(在不知道程序代码应该做什么的情况下,程序员没有办法设计行为,无论是适应性的还是“进化的”。参见讨论“意志房间”的部分),并且在比较中被严重划分(向我展示一个大型程序,其中每一行代码都影响所有行为)。DNA 编程类比是一个糟糕的类比,经不起科学观察。

“但是我们的大脑也操纵符号”

仅仅因为我们的大脑可以处理符号并不意味着它象征性地运作。我们可以体验和回忆那些我们还没有恰当描述的事情。换句话说,我们可以有难以形容的经历。我们从非象征性的经历开始,然后在我们试图理性地组织和交流这些经历的过程中,为它们炮制象征性的表现。

一个个人轶事的例子:我最早的童年记忆是躺在床上看着窗户上的排气扇。我记得当时我看到了什么,尽管当时我还太小,还没有学会诸如“床”、“窗户”、“风扇”、“电风扇”或“电动窗户排气扇”等单词和术语。感官和情感的回忆可以用符号来描述,但是回忆的经历本身并不是符号化的。

此外,失语症的医学现象表明视觉体验与对它们的描述是完全分开的【19】。

随机性和随机数生成器

当谈到作为意识的指标时,随机性是一个转移注意力的话题(更不用说所有外部指标的可疑性,如中国房间的论点所示)。机器内部的随机数发生器将简单地提供另一个输入,最终只会产生更多的符号来操作。

“我们已经构建了复杂的功能神经计算模型”

复杂功能模型的存在并不能帮助功能主义者摆脱功能主义陷阱。这些模型仍然严重欠定,正如最近的一个高级神经学习算法【20】的例子所示。

这个模型非常复杂,但是请注意它包含了多少不确定的表达:

“可能是不同的阈值”

“可能有共同的不应期”

“可能会用实验来回答”

模型远不能反映存在于活体大脑中的功能神经群;我非常怀疑任何研究人员会提出这样的主张,因为这不是他们的首要目标。模型能够并且确实产生有用的功能,并且实际上是“正确的”,即使那些模型实际上是“错误的”,因为它们不一定与功能上的现实相对应。换句话说,模型并不一定要 100%符合现实才能工作,因此它们的事实正确性永远无法保证。例如,轨道卫星仍然可以在不考虑相对论效应的情况下运行,因为大多数相对论效应太小,在卫星导航中不显著【21】。

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

照片由西格蒙德Unsplash 上拍摄

“你的论点只适用于冯·诺依曼机器”

它适用于任何机器。它适用于弹弓。为弹射器编程包括调整支点、张力和配重。弹射器的编程语言包含在枢轴的位置、张力的大小、配重的大小等等。如果你愿意的话,你甚至可以用水管造一台电脑;同样的原则也适用。一台机器不会“自己做事情”,就像一个弹弓不会自己投出去一样。

“你的思维实验是一个直觉泵”

为了采取这种批评的方式,一个人必须证明我所谓的滥用推理。爱因斯坦在他关于参考系的思想实验中也使用了“民间”概念[23],那么是思想实验在这里被集体怀疑,还是只有我怀疑?提出明确的批评是失败的,含糊地回答“思想实验可能被滥用”是徒劳的。人们是否认为我的类比比他们陈旧的战略更糟糕,他们把思维作为当时流行技术的类比——首先是水力,然后是电话,然后是电场,现在是计算机【24】?如果人们用可以拿在手里的带图案的索引卡来做我的实验,他们会感觉更好吗?批评需要具体。

缺乏解释力(我的回答是:证明现有理论的错误不需要另一个理论)

对人工意识的可能性的支持或反对并没有对意识的实际性质产生多大的影响,但这并没有偏离主题,因为这里的目标不是明确定义意识的性质。“意识是什么”(例如,它的性质)在这里没有像“意识不需要什么”一样被探索,这仍然可以通过它的要求来确定。围绕各种物理材料的不同“意识潜力”已经有了一些理论,但是这些理论已经在很大程度上证明了它们是一派胡言【25】。我的论文既不需要解释性理论,也不能证明或否定它。必要的基本原则已经提供了(见“意识的要求”一节))

泛灵论

(最近几年在 SA 上流行的一个话题 [26])

我不赞同泛灵论,但即使泛灵论是真的,随后可能的主张“所有事物都是有意识的”仍然是假的,因为它犯了分裂的谬误。每一件事物都有本质上的不同。泛灵论声称的普遍意识,如果存在的话,不会与在生命体中发现的普通意识是同一种类的。

这种分类差异的一些例子:约翰尼唱歌,但他的肾脏不唱歌。约翰尼看得见,但他的脚趾甲看不见。说一盏灯在这个词的一种意义上是有意识的,仅仅是因为它属于一个在另一个宇宙中是“有意识的”宇宙,这就犯了一个和说一个肾会唱歌或一个脚趾甲能看见一样大的范畴错误。

声称所有事物都是有意识的(包括人工智能)是宇宙意识的结果,仅仅因为缺乏区分它们的术语,这将会把两个范畴混为一谈。仅仅因为“意识”这个术语将所有事物与宇宙意识的追随者联系起来,并不意味着这个术语本身就应该被模棱两可地使用。泛灵学哲学家大卫·查尔默写道[27]:

“泛灵论,从字面上理解,是万物皆有灵的学说。实际上,自称泛灵论者的人并不致力于一个如此强大的学说。即使他们相信数字、塔和城市的存在,他们也不相信数字 2 有头脑,或者埃菲尔铁塔有头脑,或者堪培拉城有头脑。”

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

鸭子机器人。照片由 A. Konby 通过互联网档案,公共领域在维基媒体上拍摄。

“如果它看起来像一只鸭子……”这是对行为主义者半开玩笑的指责

如果它看起来像鸭子,游泳像鸭子,嘎嘎叫像鸭子,但你知道这只鸭子是人工智能鸭子,那么你就有了一个花式鸭子自动机。"但是等等,如果没人知道呢?"然后,这是一个奇特的自动鸭子,没有人能从一只真实的鸭子中分辨出来,可能是因为它的所有制造文件都被销毁了,程序员死了,不能告诉任何人这是一只人工智能鸭子……然而,它仍然不是一只真实的鸭子。暗示性的回答,比如“那我们就可以消除制造的所有证据”和其他我认为是抓住救命稻草和智力上不诚实的俏皮话。如果有人为了证明我是错的而建造了一只功能完美、视觉上无法区分的人造鸭子,那是白费力气;为了证明这一点,它的身份必须被揭露。在这一点上,启示将证明我是正确的。

“鸭子的回答”是另一个行为主义者的反对意见,被“中国房间”的论点弄得毫无意义(见上面“行为主义者的反对意见”一节)。)

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

你不确定你的朋友是有意识的实体吗?照片由纳松·阿泽维多Unsplash 上拍摄

“你不能向我证明你有意识”

这种否认和上面的非鸭子反对一样,是在玩弄同样的经验主义的不可论证的事实。我们谈论的是形而上学的事实,而不仅仅是获得它们的能力或能力。也就是说,无论是承认还是怀疑地否认意识,出发点都应该从“我否认我的意识的存在吗?”而不是“向我证明你的”

不可否认,一个人自己的意识是存在的,一旦我们承认自己是有意识的,就去质疑别人的意识是荒谬的。当我们每个人遇到另一个人时,我们是否首先假设我们遇到的可能只是一个人的复制品,然后检查那个人是否是一个人,最后才开始在满足时将实体视为一个人?不,以免有人患有妄想症。我们也不想创造一个让这种荒谬的偏执狂变得可行的世界。)

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

如果有人搞乱了它的程序,你最好小心。照片由阿瑟尼·托古列夫Unsplash 拍摄

人工意识不可能性的一些暗示

1.AI 永远不应该被赋予道德权利。因为它们永远不会有意识,所以它们比动物更不值得拥有这些权利。至少动物是有意识的,能感觉到疼痛【28】。

2.无论是外貌还是行为(如穿越恐怖谷)都与人类极其相似的 AI,在未来应该被严格禁止。允许他们存在只会创造一个沉浸在荒谬偏执中的世界。根据我的观察,许多人对机器意识这个主题感到非常困惑,因为我的一个同事称之为“糟糕的科幻小说”的例子太常见了。

3.意识永远不可能被“上传”到机器中。任何试图这样做,然后在它的自然寿命之前“退休”原来的身体将是一种自杀行为。任何完整的忒修斯式的一点一点的机器“替换”都会逐渐导致同样的结果。

4.任何灾难性的人工智能“灾难”都是由糟糕的设计/编程造成的,而且仅仅是糟糕的设计/编程。

5.人类对其创造的行为负有全部责任,公司应对其产品的不当行为负责。

6.我们不是生活在一个模拟的场景中。根据我的论文,这些推测是荒谬的:

鉴于人工意识是不可能的:

-模拟环境是人造的(根据定义。)

-如果我们存在于这样的环境中,我们就不能有意识。否则,我们的意识将是人工系统的一部分——由于人工意识的不可能性,这是不可能的。

-然而,我们是有意识的。

-因此,我们不是生活在模拟中。

参考

[1]【merriam-webster.com】【智力】(2021)

[2] 互联网哲学百科,《意识》(2021),https://iep.utm.edu/consciou/

[3] 斯坦福哲学百科全书,《意向性》(2019),https://plato.stanford.edu/entries/intentionality/

[4] 斯坦福哲学百科全书,《克利》(2017),《T16》http://plato.stanford.edu/entries/qualia/

[5] 斯坦福哲学百科全书,《中国房间的争论》(2020 年),https://plato.stanford.edu/entries/chinese-room/

【6】a .斯洛曼, 塞尔攻击的是强强还是弱强 AI? (1985),人工智能及其应用,A.G .科恩和 J.R .托马斯(Eds。)约翰·威利父子 1986。

[7]牛津英语词典,《算法》(2021),https://www.lexico.com/en/definition/algorithm

[8] T .米切尔, 机器学习 (1997),麦格劳-希尔教育(第 1 版。)

[9] 斯坦福哲学百科全书,《感受性:知识的争论》(2019 年),https://plato.stanford.edu/entries/qualia-knowledge/

[10] V. Highfield, AI 在 QBert 学会以人类从未做过的方式作弊* (2018),https://www . ALP HR . com/artificial-intelligence/1008697/AI-learn-To-check-At-Q Bert-In-A-Way-No-Human-Ever-Done-Before

[11] J. Vincent,谷歌通过从其图像标记技术中删除大猩猩来“修复”其种族主义算法 (2018 年),https://www . the verge . com/2018/1/12/16882408/Google-racistic-gorillas-photo-recognition-algorithm-ai

[12] H. Sikchi,朝向安全强化学习 (2018),https://medium . com/@ harshitsikchi/朝向-安全-强化-学习-88b7caa5702e

[13] D. G. Smith,如何黑掉一台智能机器 (2018),https://www . scientific American . com/article/How-to-Hack-an-Intelligent-Machine/

[14] 斯坦福哲学百科全书《科学理论的欠定》(2017)https://Plato . Stanford . edu/entries/Scientific-under determination/

[15] L. Sanders,万个神经元与苍蝇的行为相联系 (2014),https://www . science news . org/article/万个神经元相联系的行为-苍蝇

[16] S .施耐德和 e .特纳,有人在家吗?一种确定人工智能是否有自我意识的方法 (2017),https://blogs . scientific American . com/observations/is-any one-home-a-Way-to-Find-Out-If-AI-have-been-Self-Aware/

[17] V. Greenwood,理论认为所有基因影响每一个复杂性状 (2018),https://www . quanta magazine . org/omnigenic-model-suggest-That-All-Genes-Affect-Every-Complex-Trait-2018 06 20/

[18] D .罗布森,你从未知道自己有过的‘不可翻译’的情绪 (2017),https://www . BBC . com/future/article/2017 01 26——你从未知道自己有过的‘不可翻译’的情绪

[19]齐默(C. Zimmer),图这个?有些就是不行 (2015),https://www . nytimes . com/2015/06/23/science/aphantasia-minds-eye-blind . html

[20] R. Urbanczik, 通过树突预测学习的体细胞锋电位 (2014),神经元。2014 年 2 月 5 日;81(3):521–8.

[21] Ž.Heć imović, 相对论对卫星导航的影响 (2013),Tehnicki Vjesnik 20(1):195–203

[22] K. Patowary,弗拉基米尔·卢克扬诺夫的水计算机 (2019),https://www . amusing planet . com/2019/12/Vladimir-lukyanovs-Water-Computer . html

[23]https://plato.stanford.edu/entries/thought-experiment/《思想实验》(2019 年)

[24] M. Cobb,为什么你的大脑不是一台计算机 (2020 年),https://www . the guardian . com/science/2020/feb/27/Why-your-brain-is-a-computer-neuroscience-neural-networks-awareness

[25] M. A. Cerullo,Phi 的问题:综合信息理论批判 (2015),PLoS Comput Biol。2015 年 9 月;11(9): e1004286。康拉德·p·科尔丁(编辑。)

[26]各种作者,出于说明目的检索到的scientificamerican.com泛灵论文章列表(2021 年 4 月 22 日)https://www.scientificamerican.com/search/?q=panpsychism

[27] D. J. Chalmers, 泛灵学与泛灵学阿默斯特哲学讲座8(2013):1–35

[28] M. Bekoff,动物意识:新报告将所有疑虑置于睡眠 (2018),https://www . psychologytoday . com/us/blog/Animal-emotions/201801/Animal-manual-New-Report-Puts-All-claudes-Sleep

人工智能和机器人技术将不可避免地融合

原文:https://towardsdatascience.com/artificial-intelligence-and-robotics-will-inevitably-merge-4d4cd64c3b02?source=collection_archive---------32-----------------------

人工智能|机器人技术

AGI 将有一个身体,并将生活在世界上

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

Alexus Goh 在 Unsplash 上的照片

人工智能研究不断达到新的里程碑。深度学习范式年复一年地不断重申其主导地位。假设神经网络将主宰人工智能的未来似乎是有把握的。然而,承诺总是落空。尽管一些声称,人工通用智能(AGI)似乎还不会到来。人工智能系统仍然非常笨拙和狭窄。人工智能在哪里和我们希望它在哪里之间似乎有一个缺失的差距。

今天的方法是找到并弥合这一差距的方法吗?在这篇文章中,我解释了为什么人工智能系统需要具体化,成长,并在世界上生活,以便有一天达到智能。尽情享受吧!

心灵需要身体吗?

勒内·笛卡尔在他 1641 年出版的《第一哲学沉思》一书中首次提出了思想和身体是分开的物质的观点——这被称为笛卡尔二元论或“脱离肉体的智慧”笛卡尔将心灵等同于我们对世界的有意识的主观体验和我们智力的来源。他认为,虽然我们不需要一个身体来智能,但我们的思想和身体是相互作用的;物理事件引起精神事件。

向前推 300 年,我们发现一个非常相似的想法:大脑是“一个由大脑中的神经活动物理实现的计算系统。”计算思维最初是由沃伦麦卡洛克和沃尔特皮茨在 1943 年提出的。杰里·福多尔和希拉里·普特南在接下来的几十年里将这个想法扩展到了今天所谓的大脑计算理论。

在此基础上,1976 年艾伦·纽厄尔和司马贺提出了物理符号系统假说https://dl.acm.org/doi/10.1145/360018.360022(PSS 假说)。它指出“一个物理符号系统具有一般智能行为的必要和充分的手段。”有了这个假设,我们就可以回到笛卡尔,正如艾米莉亚·布拉图所说,“人类的理解都是关于形成和操纵符号表征。”

将这些想法结合在一起,我们有:

  • 身体和精神是分离的。
  • 思维是通过计算性的大脑活动来实现的。
  • 智慧通过符号操作显现。

正是在这个框架下,人工智能在约翰·麦卡锡于 1956 年提出将它作为一个独立的研究领域后首次出现。

占统治地位的人工智能范式是无形的

在人工智能发展的过去 60 年中,符号人工智能(专家系统)和连接人工智能(神经网络)无可争议地占据了主导地位。首先,象征性的人工智能统治了 50-80 年代。然后,随着机器学习和深度学习的出现,神经网络取得了今天的地位。

**虽然在外表上非常不同,但这两种方法有一个重要的共同点:**它们都生活在笛卡尔二元论、心灵的计算理论和 PSS 假设的边界内。因此,两个都拒绝真正智能的人工智能需要一个身体的想法。

今天的人工智能,最好用深度学习来描述,已经忘记了身体。十年来最重要的进步依赖于基于软件的人工智能。能够在人类层面生成文本,在国际象棋或围棋中击败世界冠军,测试人类模仿莎翁巴赫的创造力,或者在未来驾驶汽车的系统。所有这些都是生活在无形计算机虚拟世界中的系统。

大多数人的兴趣和努力都集中在人工智能(AGI)可以在计算机中基于软件的系统中实现的想法上。然而,这种方法有很大的局限性。

脱离实体的机器无法获得“专有技术”知识

哲学家休伯特·德雷福斯首先抨击了 PSS 假说背后的概念。在他 1972 年的著作《计算机不能做的事情》中,他强调了人类智能和早期象征性人工智能的一个关键区别。他认为,人类知识的很大一部分是隐性知识——经验知识,比如骑自行车或学习语言——这些知识无法充分传播,更不用说形式化或编纂了。Dreyfus 说,专业知识大多是隐性的,因此“专家”人工智能系统永远不可能是真正的专家。用迈克尔·波拉尼的话说,“我们知道的比我们能说的多。”

随着连接主义人工智能的出现和神经网络的繁荣,德雷福斯的论点显然已经过时。机器学习系统可以在没有被明确告知学习什么或如何学习的情况下进行学习。人脸识别,这是隐性知识的一个很好的例子,可以通过这些系统来完成。我们可以在一千张面孔中认出母亲的面孔,但我们不知道是怎么做到的。我们无法传递如何操作的知识,然而,机器学习系统可以比我们更好地识别人脸。

然而,Ragnar Fjelland,在为 Dreyfus 的论点辩护时,声明即使是连接主义的人工智能系统也不能获得实际的隐性知识。他解释说,体验真实世界是获得这类知识的必要条件。相比之下,人工智能系统最多只能体验我们喂给它们的过于简化的现实模型。机器可以在虚拟世界的边界内获得专业知识,但不能超过这个范围。用 Fjelland 的话来说:“只要计算机不成长,不属于一种文化,不在世界上活动,就永远不会获得类似人类的智能。”

体验世界的重要性

我们通过与周围环境的互动来加深对世界的理解。苹果不仅仅是发出绿光或红光,还有光滑的触觉和甜美的味觉。我们知道苹果是要花钱的。我们知道如果我们不吃它,它最终会腐烂。我们知道如果它从树上掉下来砸到我们的头上会很痛,即使它从未发生过。

我们理解苹果的所有形式,因为我们可以将信息与意义联系起来。一个人工智能系统可以对苹果进行分类,但它无法理解为什么有人宁愿吃巧克力。因为人工智能系统不生活在这个世界中,它们无法与这个世界互动,因此它们无法理解这个世界。热那亚大学生物工程教授朱利奥·桑蒂尼认为“为了在机器中开发类似人类智能的东西,机器必须能够获得自己的经验。”

德雷福斯认为,我们的智力来源于我们积极感知的感官信息和我们对世界的行动之间的复杂关系。我们不像人工智能系统那样被动地吸收世界,我们“制定我们的感知经验”阿尔瓦·诺伊在他的《感知中的 动作 一书中说得好,“感知不是大脑中的一个过程,而是身体作为一个整体的一种熟练活动。[……]世界不是一下子给意识的,而是通过积极的探究和探索逐渐获得的。”

总而言之,

  • 我们聪明是因为我们经历了这个世界。
  • 认知和感知是与行动相联系的主动过程。
  • 我们通过身体感知世界。

体验世界给了我们获得隐性知识的途径,这导致了专业知识,这是人类智慧的标志。似乎有理由假设,机器需要体验世界才能真正智能。显而易见的问题是:我们如何才能创造出满足这些要求的机器?

发展机器人的前景

这个最近的研究领域结合了机器人学、人工智能、发展心理学和神经科学的思想。Scholarpedia 定义为建模“自然和人工系统中日益复杂的认知过程的发展,并理解这些过程如何通过物理和社会互动出现。”

发展机器人学融合了机器人学和人工智能,但在两个方面有所不同。首先,它强调了身体和环境作为导致认知出现的因果要素的作用。第二,人工认知系统不是程序化的。它们从一个发展过程的启动和维持中出现,在这个过程中,它们与物理的(无生命的)物体和社会环境(人或其他机器人)互动。

研究人员使用机器人来测试他们的认知模型,因为他们可以与世界互动。在这种范式下,发展机器人专家最终可以创造出一个像人类儿童一样在世界上成长的机器人。

艾伦·图灵早在 1950 年就已经提出构建儿童大脑并对其进行教育可能是比构建成人大脑更好的创造人工智能的方法。沿着这条通往 AGI 的道路走下去是有意义的,因为发育是我们所知道的生物体获得智力的唯一过程。这可能没有必要(正如连接主义者和象征主义者所辩护的那样),但有理由假设在机器中模仿类似人类的智能是“机械上至关重要的”。

通过给人工智能认知系统一个可以发展并与物理和社会世界互动的身体,我们正在将传统人工智能的努力与唯一已知的真正智能的实例相结合。正是在人工智能、机器人和认知科学的交汇处,我们将找到通往 AGI 的道路。

TL;速度三角形定位法(dead reckoning)

笛卡尔推广了一个关于心灵哲学的学派,这个学派的影响延续至今。在过去的 60 年里,人工智能的无实体方法取得了巨大的成功,但它们距离实现类似人类的智能还很远。发展中的机器人可能是其余问题的答案。

没有人可以声称找到了今天的人工智能和 AGI 之间缺失的联系,但融合人工智能、机器人和认知科学可以让我们更接近我们拥有的唯一真正智能的实例:我们。

人工智能的开端

原文:https://towardsdatascience.com/artificial-intelligence-beginnings-6f8937acdc6a?source=collection_archive---------39-----------------------

用 Python 从头开始构建神经网络

目标

这篇文章将解释如何使用 Python 语言从头开始创建一个神经网络,以及如何使用它来检查汽车并预测每加仑的里程数。

首先,需要解释一些概念:

网络

神经网络是将人工智能应用于现实世界问题的最常用的计算模型之一。它由一组称为神经元的单元组成,这些单元相互连接以传输和处理信号。

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

图片由 h3llkn 0 wz/CC BY-SA 3.0

每个神经元都通过链接与其他神经元相连。通过他们,他们接收信息,评估信息,并传播评估的结果,这可以是一个信号,突出一个功能或削弱它。

该网络还具有一个或多个最终神经元,其将从先前的神经元获取信号,并将产生可以是实数(对于回归问题)或一组值(对于分类问题)的信号。

结构

通常,神经网络以几个神经元层的形式实现。第一个图层称为输入图层或图层 0,表示要评估的不同对象要素。它不同于所有其他层,因为它不执行任何计算,只是表示提供给网络的数据。

在我们的示例中,第一层将保存将要检查的汽车的特征。例如缸数、重量、加速度、年份和制造产地等。

然后,模型将包含两个隐藏层。它们被称为隐藏的,因为它们不直接连接到输入或输出。他们将负责评估来自前一层的不同特征之间的关系,并将结果发布给下一层。

最后,我们将有一个输出层,它将获得最后一个隐藏层的结果,并将计算汽车用一加仑燃料可以行驶的距离。

下图是不同层神经元之间的连接示例:

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

版权所有 2021 Tensorflow:根据 Apache 许可证 2.0 授权使用

神经元

每一层都由几个神经元组成,除了最后一层,即输出层,在本例中,对于我们的问题,它只有一个神经元。

网络的每个神经元将由以下公式表示:

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

作者图片

其中 X 是一个向量(一维矩阵),信息来自上一层神经元。在第一个隐藏层的情况下,它将从输入层接收汽车的特征。

W 是一个向量,它将为前一层神经元的每个值分配一个权重。它们是将为网络优化以产生真实结果的主要组件之一。

b 是将偏移(偏差)应用于结果的值,也将被优化。

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

图片来自:www.MLinGIFS.aqeel-anwar.com作者:阿克尔瓦尔 用法授权

非线性激活

后一个函数是线性函数。如果所有的神经元都是线性函数,神经网络的结果也将是另一个线性函数。这将不允许网络识别特征之间存在的复杂关系。

为了解决这个问题,每个神经元都被添加了一个非线性成分,称为激活函数。在我们的例子中,我们将使用一个常用的激活函数 ReLU(来自整流线性单元),它无非是:

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

作者图片

因此,除了输出层之外,每个神经元的完整公式为:

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

作者图片

最终线性激活

由于目标是预测一个值(回归),而不是检测或分类一个对象(分类),输出层的神经元必须生成一个实值。因此它不会应用非线性激活。

这个神经元的公式就是:

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

作者图片

神经网络的优化:又名学习

网络学习过程将包括搜索权值 W 和偏移量 b 的值,当你向网络提供一辆汽车的数据时,它将产生我们想要估计的结果:那辆汽车每加仑的里程数。

逻辑:

为了找到 W 和 b 值,首先,我们用下面的等式对它们进行初始化:

  • W: 服从正态分布的随机值 0.01*
  • b: 正好用 0

然后,重复以下步骤几次(我们将这个循环的每次迭代称为一个时期):

  1. 向网络提供一辆车或几辆车的特征(以防我们的网络能够并行处理几个输入数据)。
  2. 执行神经网络的计算(称为前向传播),将权重乘以输入值,添加偏移,并逐层应用激活函数,直到我们获得最终值。
  3. 计算网络的估计值和汽车实际值之间的误差(或差异),我们将称之为**【J(W,b)*** ,并在我们的示例中表示均方误差。*
  4. 从后到开始(称为反向传播的过程),使用所获得的差,我们将使用以下公式来计算权重 W 和偏移 b 的导数:

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

作者图片

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

5.对于导数,我们继续修改权重,使它们更接近差值达到最小值的点。为此,我们将导数乘以一个 α 值(称为学习率),然后减去相应的权重:

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

作者图片

6.使用更新后的权重,我们重复前面的所有步骤,直到网络预测值和实际值之间的误差达到可接受的最小值。

代码

实际上,神经网络的优化不是一次一个例子地进行。有一些代码库利用现代 CPU、GPU 和 TPU 的能力对许多例子同时执行计算。

在我们的例子中,我们将使用 Python 语言和 Numpy 库同时对所有示例执行计算,并获得更好的性能。

模型

我们将定义结构(第一和第二隐藏层中的神经元数量)并创建我们的神经网络模型:

正向传播函数

它计算网络预测

成本函数

它测量网络估计值和实际值之间的差异:

反向传播函数

它计算网络函数的导数

更新权重函数

它让我们的网络更接近预期的结果

数据

定义了模型后,现在我们将使用经典的 Auto MPG 数据集来训练神经网络,以预测 20 世纪 70 年代末和 80 年代初汽车的燃油效率。该数据集提供了该时期许多汽车的描述。该描述包括气缸、排量、马力和重量等属性。

本文的目的不是详细介绍如何预处理要在网络中输入的数据。我们只说数据集被归一化并分成两部分,一个训练集用于网络优化,一个测试集用于验证训练好的网络:

最后,创建和训练网络并评估其预测的代码:

在训练网络完成后,我们用它来预测测试集中的汽车的 MPG,并将它们与它们的实际 MPG 值进行比较。

预测并不完美,但接近真实的 MPG 值。

预测: 29,26,30,32,25,28,42,34,29,28

真实值: 26,22,32,36,27,27,44,32,28,31

自己运行这个例子

为了看看这个例子是如何执行的,你可以打开这个谷歌合作笔记本,直接在你的浏览器中运行它。

结论

这是一个简化的回归问题,用 Python 编写的神经网络来解决,该神经网络呈现了所有网络的非常基本但基本的工作概念。

这个例子中故意省略了很多概念,因为它们可能会吓到一些人。在现实世界的项目中,它们将需要被考虑。其中一些是:

  • 数据的可用性、清洁度、类别之间的平衡、分布以及如何处理它。
  • 不同问题的不同网络模型(如用于回归和分类任务的模型、用于图像检测的卷积网络、用于序列(语言翻译、股票市场预测)的递归网络)等。).
  • 不同的优化方法(如本模型中的批量梯度下降、小批量 G.D .、Momentum、RMSProp、Adam 等)和超参数优化(层数量和大小、学习速率、动量参数、激活和使用的成本函数)。
  • 常见问题及解决方法(偏差和方差,爆炸或递减梯度,正则化,辍学等)。
  • 加速计算的专用硬件(如 CPU SIMD 指令、GPU 和 TPU)。

我们希望,已经看到有可能从一个真正简单的实现开始,而不需要专门的库或硬件,这将增加您对人工智能这一激动人心的领域的兴趣。

要了解这个领域的更多信息,两个共同的起点是 Michael Nielsen 的深度学习和神经网络书和 Ian Goodfellow 的深度学习书。

而且,如果你对视觉艺术感兴趣,这篇关于使用人工智能进行艺术风格转换的文章也值得一读。

金融中的人工智能:机遇与挑战

原文:https://towardsdatascience.com/artificial-intelligence-in-finance-opportunities-and-challenges-cee94f2f3858?source=collection_archive---------3-----------------------

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

杰弗里·布鲁姆在 Unsplash 上的照片

人工智能(AI)不再是一个新生事物,这个领域正在以不断加快的速度发展。几乎每天都有某种新的发展,无论是宣布新的或改进的机器学习算法的研究论文,还是最流行的编程语言之一(Python/R/Julia)的新库,等等。

在过去,这些进步中有许多没能进入主流媒体。但这种情况也在迅速改变。最近的一些例子包括 AlphaGo 击败了 18 次世界冠军[1],使用深度学习生成从未存在过的人类的逼真面孔[2],或者深度假像的传播——图像或视频将人们置于从未实际发生的情况中。

除了这些有新闻价值的成就,在过去的几十年里,人工智能已经被广泛应用于几乎每个行业。我们可以在周围看到它。我们在网飞得到的推荐,我们收到的关于我们最近没有使用的网上商店额外折扣的电子邮件,仅举几例。

企业采用人工智能来获得竞争优势:

  • 他们可以做出更好的、数据驱动的决策,
  • 通过有效的定位或准确的推荐直接增加他们的利润,
  • 通过尽早识别“犹豫不决”的客户来减少客户流失,
  • 自动化一些重复的任务,人工智能可以比人类员工做得更快,
  • 还有很多。

考虑到以上所有因素,难怪《哈佛商业评论》将数据科学家评为“21 世纪最性感的工作”[3]。

同样的“人工智能革命”正在影响金融行业。《福布斯》报道称,已经有“70%的金融服务公司正在使用机器学习来预测现金流事件、微调信用评分和检测欺诈”[4]。

在本文中,我们展示了人工智能在金融领域中影响最大的领域,以及使用了哪些技术来实现这一点。此外,我们还讨论了在金融领域进行数据科学研究时需要考虑的最重要的挑战。

人工智能在金融中的应用

我们首先提到金融行业中的一些关键领域,在这些领域中,人工智能产生了最大的影响,并提供了超过传统方法的附加价值。

信用评分

机器学习在金融行业的一个重要应用是信用评分。许多金融机构,无论是大型银行还是较小的金融科技公司,都在从事放贷业务。为此,他们需要准确评估个人或另一家公司的信誉。

传统上,这种决定是由分析师在与个人进行面谈并收集相关数据点后做出的。然而,与过去的评分系统相比,人工智能可以使用更复杂的方法来更快更准确地评估潜在的借款人。为此,高级分类算法使用各种解释变量(例如,人口统计数据、收入、储蓄、过去的信用历史、在同一机构的交易历史等等)来得出最终分数,该分数决定了该人是否会获得贷款。

基于人工智能的评分系统的另一个优势是做出公正决策的潜力——没有人为因素,如银行员工在某一天的情绪或其他一些影响决策的因素。此外,它可能有利于没有广泛信用历史的人,让他们证明自己的可信度和偿还贷款的能力。

欺诈防范

机器学习可以产生巨大影响的另一个关键领域是欺诈预防。对于欺诈,我们理解为任何欺诈活动,如信用卡欺诈、洗钱等。由于电子商务的日益普及、在线交易的数量以及第三方集成,前者近年来一直呈指数级增长。

尼尔森[5]的一份报告揭示了这种影响的潜在规模——“2019 年,全球基于卡的支付系统产生了 286.5 亿美元的总欺诈损失,相当于每 100 美元的总交易量中有 6.8 美元”。

过去,组织使用领域专家设计的硬编码规则来打击欺诈。然而,潜在的危险在于欺诈者发现了规则,然后能够利用该系统。基于人工智能的解决方案则不是这样,它可以随着时间的推移而进化,并适应数据中发现的新模式。

有许多机器学习算法专门从事异常检测,擅长发现欺诈性交易。这种算法可以筛选数以千计的交易相关特征(客户过去的行为、位置、消费模式等)。)并在出现故障时触发警告。

虽然许多传统的机器学习技术(如逻辑回归、支持向量机或决策树)已经可以达到合理的性能,但行业仍在不断推动改进。这是可能的,因为更复杂的算法可以更好地处理大量数据(包括观察数据和潜在特征)。除了 XGBoost 或 LightGBM 等 Kaggle 竞赛获胜者之外,欺诈检测是深度神经网络擅长的一个领域,因为它们能够处理非结构化数据并识别模式,而无需太多的特征工程。

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

行政长官广场拍照

算法交易

“时间就是金钱”这句话在交易中最有意义,因为更快的分析意味着更快的模式识别,从而带来更好的决策和交易。当某种模式被发现,市场做出反应时,采取行动已经太晚,机会已经错过。

这就是为什么如此多的精力和金钱被投入到算法交易中,也就是说,复杂的系统在瞬间做出决定,并根据确定的模式自动执行交易。这样的系统可以大大超过人类交易者,也考虑到他们不受情绪的影响。Mordor Intelligence 的一份报告[6]指出,2020 年美国股票交易总量的大约 60%到 73%是由某种人工智能支持的系统处理的。

算法交易系统结合了机器和来自各个领域的深度学习的最新发展。虽然这些系统的某些部分可以专注于尝试预测资产回报(在合理的程度上),但其他组件可能会使用基于计量经济学和资产配置理论的更传统的方法。

最近获得大量关注的是使用替代数据源来获得对竞争对手的优势。对象识别的进步有助于分析卫星图像,而自然语言处理(NLP)的最新技术允许从新闻文章、Twitter、Reddit 等来源进行准确的情感识别。

算法交易在数据科学的个体从业者中也越来越受欢迎,他们试图在本地机器或云中建立自己的交易系统。随着最近开始交易的难易程度的变化以及各种经纪人 API 的可用性越来越多,愿意尝试的人越来越多。

或者,数据科学家可以参加 numeri[7]—一项类似 Kaggle 的数据科学挑战,目标是根据提供的数据(匿名)和潜在的外部替代数据来预测股市回报。该公司可以被描述为人工智能主导的对冲基金,它汇总了参与个人做出的预测,并允许他们以计价单位(该基金自己的加密货币)赚取他们的收益份额。

机器人顾问

鉴于通货膨胀对我们储蓄的影响,以及把钱存在储蓄账户中不再有利可图的事实,越来越多的人对被动投资感兴趣。这正是机器人顾问发挥作用的地方。它们是财富管理服务,AI 根据投资者的个人目标(包括短期和长期目标)、风险偏好和可支配收入,提出投资组合建议。投资者只需每月存入资金(或自动转账),其他一切都由他们来处理——从选择投资的资产、实际购买资产,然后可能在一段时间后重新平衡投资组合。所有这些都是为了确保客户能够以最佳方式实现他们的预期目标。

这种系统的主要优点是,它们对客户来说非常容易使用,并且不需要任何金融知识。自然,成本也起着重要作用——机器人顾问往往比人力资产管理公司的服务更便宜。

个性化银行体验

银行业试图利用人工智能的力量为每个人提供个性化的银行体验。一个例子可能是聊天机器人,它们越来越难以从真正的人类顾问中辨别出来。使用先进的自然语言处理技术,他们可以理解客户的意图,并试图为他们指出正确的方向。例如,他们可以帮助用户更改密码、检查当前余额、安排交易等。此外,这种聊天机器人通常可以识别客户的情绪,并在此基础上调整他们的反应。如果他们检测到消费者非常生气,可能有必要将他们与人类顾问联系起来,以尽快解决问题,避免进一步的挫折。智能聊天机器人不断增强的能力还可以通过减少呼叫中心的工作量来节省成本。

但聊天机器人并不是金融领域唯一的个性化体验。许多机构利用他们拥有的大量数据来分析消费者的消费行为,并提供量身定制的金融建议,帮助他们实现目标。这种服务可以包括如何减少每月开支的技巧,或者以简单和用户友好的方式向客户展示这些开支,例如,本月你花费最多的三个地方。这些机构也可以让你知道,一些经常性的转移将很快发生,你的帐户上没有足够的资金。所有这些只是现代金融公司能够为客户提供的服务的冰山一角。

过程自动化

最后,当谈到自动化时,人工智能提供了很多。使用高级光学字符识别(OCR)可以显著提高通常由员工处理的普通且耗时的任务的效率。例如,数字化文档、处理表单或从文档中提取相关信息。

许多金融机构要么使用专用软件,要么为 KYC(了解您的客户)流程构建内部解决方案。在金融领域,通常需要提供某种形式的 ID 以避免欺诈。许多新经纪人和金融科技公司让这个过程变得非常简单——你用手机扫描你的 ID,然后自拍以验证与 ID 匹配。在后台,一个基于人工智能的解决方案验证是否有匹配,但同时检查 ID 是否不是假的,以及图片是否没有什么值得警惕的。处理图像是深度学习和卷积神经网络(CNN)等架构显示出非常有前途的结果的领域。

人工智能在金融领域的挑战

描述了人工智能在金融领域产生影响的关键领域后,讨论与之相关的潜在挑战才是有意义的。

数据质量

数据科学领域有一句格言——“垃圾进,垃圾出”。虽然适用于任何与数据相关的工作,但它在金融行业中至关重要。一天的损坏数据,甚至是输入到交易算法中的几个错误的观察值,都会对整个系统产生可怕的后果,导致糟糕的交易和财务损失。

这就是为什么在金融领域的这些关键领域,拥有干净、有条理、维护良好的数据源作为机器学习模型的输入非常重要。如果数据发生了任何不希望的事情,或者引入了不合适的东西,必须有一种方法在整个管道中快速跟踪它,确定问题并修复它。一些公司基于这一概念开展业务,并为数据提供类似 git 的版本控制。

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

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

有偏差的数据

人工智能做出的决策会对金融机构的客户产生重大影响。一个被拒绝的贷款申请可以改变一个人的一生。这就是为什么需要特别注意消除数据中的任何偏差来源。凯茜·奥尼尔(Cathy O’Neil)的《数学毁灭的武器》(Weapons of Math Destruction)【8】(免责声明:参考链接)详细阐述了数据偏差的几个例子及其有形的后果。

降维

金融机构坐拥大量数据,因为一笔交易可能有数千个数据点。这也是为什么行业中的信噪比非常低,这使得数据科学家的工作同时非常具有挑战性和趣味性。

许多机器学习技术随着观察的数量而很好地扩展,但是当特征的数量爆炸时,它们会受到影响。也就是说,分析师必须要么执行某种特征选择(基于领域知识或自动进行),要么尝试降低数据的维度。对于后者,他们可以使用成熟的技术,如主成分分析(PCA)、线性判别分析(LDA)或更现代的技术,如 t 分布随机邻居嵌入(t-SNE)或均匀流形逼近和投影(UMAP)。

黑匣子

在许多行业中,数据科学家非常渴望使用最新、最先进的技术,这些技术可以在幕后执行大量复杂的计算,并提供非常准确的预测。尽管在许多情况下,这可能是一件合理的事情,但在金融领域,事情远不止如此。

金融行业受到严格监管(这是有充分理由的),算法做出的许多决定必须被该机构完全理解。想象一下,一个人的信用评分很低,贷款申请被拒绝了。然后,这样的人可以提出索赔,并要求详细解释导致这一决定的所有因素。

这就是为什么模型可解释性在金融行业中起着至关重要的作用。虽然使用最新和最棒的神经网络架构可能很有吸引力,并提供额外的几个百分点的准确性(或用于评估的其他性能指标),但它通常不是适合工作的正确工具,而是选择更简单的模型(如逻辑回归或决策树)。这是因为有了这样的模型,分析师总能解释是什么因素塑造了决策。

此外,可解释的人工智能领域发展非常迅速,研究人员致力于模型不可知的方法,允许解释相对简单和非常复杂的模型的决定。这种技术的例子包括 LIME(局部可解释模型不可知解释)或一种基于博弈论的方法,称为 SHAP (SHapley 加法解释)。

结论

在本文中,我们描述了金融行业中广泛理解的人工智能可以为公司及其客户提供大量增值的领域。我们还讨论了在实现这些技术时需要解决的一些关键挑战。这些列表绝不是详尽的,因为人工智能和金融领域都在不断变化,并适应每天的进步。可以肯定的一点是,我们生活在一场基于人工智能的革命的尖端,这场革命对企业和个人都产生了影响。

喜欢这篇文章吗?成为一个媒介成员,通过无限制的阅读继续学习。如果你使用这个链接成为会员,你将支持我,不需要额外的费用。提前感谢,再见!

您可能还会对以下内容感兴趣:

来自《走向数据科学》编辑的提示: 虽然我们允许独立作者根据我们的 规则和指导方针 发表文章,但我们并不认可每个作者的贡献。你不应该在没有寻求专业建议的情况下依赖一个作者的作品。详见我们的 读者术语

参考

[1]https://deep mind . com/research/case-studies/alpha go-the-story-迄今为止

[2]https://thispersondoesnotexist.com/

[3]https://HBR . org/2012/10/data-科学家-21 世纪最性感的工作

[4]AI 在金融服务中的采用状况—https://www . Forbes . com/sites/louiscolumbus/2020/10/31/The-State-Of-AI-Adoption-In-Financial-Services/?sh=42c39ad12aac

[5]卡及移动支付行业统计|尼尔森报告图表存档—https://Nilson Report . com/publication _ chart _ and _ Graphs _ Archive . PHP?1=1 &年=2020

[6]算法交易市场趋势、规模| 2021 年至 2026 年行业预测与 COVID 影响—Mordor Intelligence—https://www . Mordor Intelligence . com/Industry-reports/Algorithmic-Trading-Market

[7]数字—https://numer.ai/

[8]奥尼尔,凯茜。数学毁灭武器:大数据如何增加不平等并威胁民主。皇冠,2016。

人工智能在魔法聚会中

原文:https://towardsdatascience.com/artificial-intelligence-in-magic-the-gathering-4367e88aee11?source=collection_archive---------6-----------------------

实践教程

第一部分:数据科学之旅

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

这是一个一页的总结,应该有助于整体方法的解释。图片作者。

请允许我以结尾开始这篇文章**,以展示我最终能够开发的应用,来展示人工智能模型,这些模型被训练来预测(可以说是)有史以来最伟大的游戏的交易卡的属性。**

作为第一个最小可行产品,它是由正在进行的研究的第一组结果构建的,在任何意义上它肯定不是最终版本,但我计划继续改进。另一方面,我对它感到足够自豪,我很乐意与数据科学社区Magic The Gathering 社区分享它。

我相信,这种经验可以帮助数据科学家同事完成他们自己的项目,同时为卡片设计目的、卡片测试、创意、模拟和许多其他与新卡创建过程相关的任务提供一种有趣的工具。

这里是链接 和一个小视频教程,教你如何使用这个应用程序:

https://share . streamlit . io/gabrielpierobon/magic aimodels/main/app . py

作者的 Youtube 视频

动机

自从几年前我开始研究机器学习以来,最重要的是从我专攻自然语言处理的那一刻起,我就一直梦想着将这项技术应用于我在世界上最喜爱的游戏之一的可能性:

魔法:聚会

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

照片由 Ryan QuintalUnsplash 上拍摄

这篇文章是我计划撰写的系列文章的第一篇**,我的目标是更深入地了解这个持续了大约六个月的过程中每一步的细节。不幸的是,如果我试图在一个镜头中彻底解释我自己,这将是一篇很长的文章。所以,如果我没有马上解释清楚,请不要担心,我会尽快解释清楚的。**

这篇文章的目标受众是谁?

首先也是最重要的,我不打算花时间来解释这个聚会是什么魔法以及它是如何玩的。不是因为我不想做,而是因为这可能会让我永远做不完。

我希望点击这篇文章并发现它很有趣的读者,对这个游戏有点熟悉,并且对于有几年游戏经验的人来说(无论是最近的经验还是几年前的经验)会更容易理解。

我还期望至少有一些关于机器学习数据科学过程的中级知识,尽管在本文的前半部分这不是必需的(直到检查点标题)。

快速介绍

作为一个快速介绍,以防你碰巧不知道这个游戏,但仍然想继续阅读:

魔术聚会是一种交易纸牌游戏,玩家在单人或多人比赛中制作纸牌并相互竞争。你只(大部分)使用你牌组中的牌,并试图通过召唤生物、施法和攻击对手致死来赢得游戏。

基本规则相当容易学习,然而掌握游戏甚至擅长游戏可能非常具有挑战性,但这正是游戏的魅力所在。你可以随意地玩,也可以激烈地玩。如果你还没有玩过一个魔术游戏,我鼓励你去玩。它需要统计思维、资源分配、不完全信息下的决策、优化和许多其他技能,作为一名数据科学家,你应该不断提高这些技能。如果你想学习基础知识,你可以观看这些视频:

YouTube 视频魔术聚会官方频道

Tolarian 社区学院频道的 YouTube 视频

开始玩和学习基础知识的一个好方法是安装数字客户端: Magic Arena这里是下载链接

在这种情况下,人工智能面临的挑战是什么?

将人工智能引入这样一个游戏的一个主要挑战是,有一个不断增长的可用卡池,它每年只会变得越来越大。到今天为止,大约有三十张 和一千张不同的卡片,每一张都有独特的能力和效果。卡片之间的互动和协同作用几乎是无限的,而不完善的信息(不知道对手手中的卡片)使得游戏中的决策非常困难,以至于它被称为世界上最复杂的游戏,也是人工智能永远无法真正擅长的游戏。

这不应该阻止我们尝试,对不对?

我的研究重点

当然,这些前提在某种程度上仍然是正确的。我不会说现在我们还不能教人工智能如何玩好魔法,但是就像生活中的任何难题一样,我们需要把它分成更小的部分,并尝试一个接一个地解决它们。希望这项研究能帮助其他人解决下一步的问题,等等!有一件事对我来说是肯定的:

我无法想象一个没有人工智能在聚会上玩神奇游戏的未来

提到这一点,对于这个项目,我决定避免卡片之间的互动和游戏所需的决策顺序所带来的复杂性,而只关注对个别卡片的解释这意味着我们所做的就是处理我们能从单张牌中获得的最多数据,并对这些牌的其他重要属性做出预测(如其颜色,其稀有度,其法力值,其市场价格等属性)。)

带着这个目标,我们来谈谈魔法卡…

一张神奇的收集卡

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

这在我看来是一张非常好的魔术集结卡。一个 4/4 的飞行器花费 5 点法力是很合理的。匆忙让这张卡变得非常好,因为它可以在进入战场的同一个回合进行攻击。它真正的力量在于它的最后一个能力,该能力允许对手在攻击时对目标非龙生物造成 4 点伤害。对一个生物的移除总是很强的。在它的时间标准,这是一个惊人的终结者,它看到了其他格式的发挥,如先锋,历史和指挥官。对于更有效的格式,如现代或传统格式,这还不够好。**图片来自 Scryfall API。**作者:山姆伯利。2017 海岸巫师

每一张神奇的收集卡都是不言自明的。这意味着 读卡说明了。这句话很简单,但非常有力。

魔法卡就像一个独立的小程序,在游戏的语言(规则)下运行。它的作用和它对黑板的影响可以 100%从黑板上的内容中扣除。

一个经验丰富的玩家可能会阅读一张牌,并试图以较高的置信度预测其许多最重要的属性:

  1. 强/厉害的卡吗?
  2. 这可能是一张贵的卡吗?
  3. 这张卡能不能像现代或者指挥官一样成为某种格式的订书钉

你可以看看我对上图中我最喜欢的一张卡片的评价。不同意可以随意!

考虑这些例子:

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

有些牌被认为是好的,因为它们的效果在任何棋盘状态下都是有效的,并且通常能让你当场赢得游戏*。全知让你不用支付资源就能从你手里玩牌。它本身相当昂贵,但是一旦它进入战场,它通常就玩完了。**图片来自 Scryfall API。*作者:陈柏宇。2018 海岸巫师

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

有些牌很强,因为它们便宜(意味着它们使用的资源少),因此非常节省法力。剑转犁头是一个单法力移除法术,以瞬间速度放逐,唯一的缺点是对手赢得一些生命,使其效率极高。**图片来自 Scryfall API。**作者:杰斯珀·埃辛。2021 海岸巫师

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

一些生物卡比其他类似的卡更强,仅仅是因为它们的生物类型不同,因为它们可以适应已经存在的强大原型 / 部落(例如人类精灵巨人或狗拥有更多的支持)。你玩的人类越多,一个变得越来越大的人类对人类来说是非常好的,但是这张卡在其他缺乏和人类同等水平支持的部落中不起作用。**图片来自 Scryfall API。**作者:斯维特林·韦利诺夫。2016 海岸巫师

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

有些卡片非常强大,因为它们能做正常情况下这种颜色做不到的事情,而且它们在 Commander 这样的格式中成为主食。喂虫群是一个可以对付附魔的黑色法术,以前没有过。这张白色的牌没有那么强大,因为白色有更好的选择来达到同样的效果。**图片来自克里福尔 API。**作者:安德烈·库金斯基。2021 海岸巫师

我也许可以永远继续这些例子,但是正如你所看到的,一张牌是好还是坏贵还是便宜一种颜色还是另一种颜色,这是难以置信地变化着的,并且依赖于牌中的文字和符号的某种分布。

真正的智慧能用卡片做什么

想象一下这个子博弈。假设我是一名魔法采集设计师,我制作了一张新的卡,这张卡以前并不存在,所以我写下了它的卡类型,它的效果,能力等等。没有插图,没有参考具体的颜色,没有参考铸造成本

卡类型:即时

甲骨文:反击目标法术。如果某个非生物咒语以此方式被反击,则此咒语对任何目标造成 2 点伤害。

然后我把这张新卡给一个有经验的玩家看:

  • 他们能预测它应该是什么颜色吗?
  • 他们能预测卡片的铸造成本吗?
  • 他们能预测卡片的稀有度吗?是普通生僻稀有还是神话牌?
  • 他们能预测那张卡买起来会是还是便宜吗?

我的假设是是的绝对 他们可以那样做,而且他们往往是对的而不是错的。

如果你玩高水平游戏的时间够长,并且你非常熟悉池中的许多牌,那么:

  1. 你可以非常合理的区分五种颜色中每一种的不同属性所谓的颜色派 并且明白因为这是一个反法术,那么它肯定是蓝色,但是它也能造成伤害的事实表明这个法术也被认为是红色
  2. 你很可能推断出它的法力值(转换后的法力消耗),尽管在这里你可能还需要知道它的稀有度。我们制作的牌可能是普通稀有4 法力费用牌,但也可能是不普通稀有甚至稀有3 法力费用牌。
  3. 你大概明白,牌越强越有可能是稀有或者神话。知道这张卡可以对抗一个法术并且对任何只有 3 法力的目标造成 2 点伤害可能会让你认为它至少是稀有不常见
  4. 最后,你可能会熟悉如今推动卡片价格上涨的因素**,并预测有一种新的《指挥官》神话主食会非常受欢迎,供应量非常有限,因此非常昂贵。我们制作的卡不是这样,因为在任何构造的格式中,反击法术3 法力并不是非常有效地成为钉书钉(除非那张卡有很多优势,比如神秘命令)。**

无论如何,这些例子都不疯狂。有些人已经变得非常擅长这种类型的评估。以下是我最喜欢的一些:

下面是 MTGGoldfish 团队讨论一些最新卡的电量水平的视频

从某种意义上说,你的大脑会从经验和接触中了解到,每当在一张纸板上出现一定分布的字符、符号和单词时,那张纸板就会是一张好的或坏的纸板,一张更贵或更便宜的纸板等等。**

你的真实智能将帮助你发现并理解这些小模式**,这些隐藏的信息,你越多地接触它,并在评估中从失败和成功中学习,你最终会变得更好。**

这个有力的结论,让人工智能在我们的征途中光彩亮相!

AI 来了!

上述结论引发了一些有趣的机会:

  • 如果我们训练一个人工智能**(在这种情况下是一系列监督的机器学习模型)在上训练一张卡片中所有可能可用的 数据,以及我们有兴趣预测的那张卡片的所有属性(稀有度成本价格颜色等),会怎么样?)?**
  • 我们能否将卡片上的文字和符号转化为实际数据好到足以让机器学习模型接受训练?
  • 这些模型 能学习预测那些具有良好确定性**、准确性和总体表现良好的属性吗?**

接受挑战!

C 检查点

从现在开始,这篇文章变得更加专业,需要一些关于机器学习的知识。但是没有也不用担心。

现在你…

  • …已经了解研究的前提,
  • …已经介绍过这个应用程序,所以你可以清楚地了解我想要完成的任务及其结果。
  • …可以跳过文章的其余部分,阅读最后的结论。
  • …尽管如此,我还是很高兴被邀请继续这篇文章的讲座,因为你可能会觉得它足够有趣!

该过程

该项目的任务执行非常符合数据科学工作流程的标准,可以总结在下面的列表中。我计划写一篇关于他们每一个人的详细文章:

  1. 获取数据 (5%的工作量)
  2. 转换数据 (25%的工作量)
  3. 特征工程/特征选择 (35%的工作量)
  4. 多模型训练 (20%的努力)
  5. 模型评估 (5%的工作量)
  6. 用于演示目的的 Web 应用程序开发 (10%的工作量)

在接下来的完整详细文章之前,先简要介绍一下上面的每个任务

获取数据:注释

  • 我使用 Scryfall API 和库 scrython 收集了所有数据,并决定从 2004 年开始制作一个所有魔法卡的数据集。做出这一决定是为了确保有足够大的卡片样本,但同时避免书写古怪的非常旧的卡片**。我们不希望我们的模特从中吸取教训。**
  • 结果数据集包含 26,622 张卡(包括重印)。

下面是我们可以从 Scryfall API 获得的一张卡的数据示例:

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

****图片来自克里福尔 API。作者:基兰·扬纳。2019 海岸巫师

{'object': 'card',
...
 'name': '**Kenrith, the Returned King**',
 'lang': 'en',
 'released_at': '2019-10-04',
...
 'layout': 'normal',
...
 'image_uris': {'small': 'https://c1.scryfall.com/file/scryfall-cards/small/front/5/6/56c1227e-bea7-47cb-bbec-389a3d585af5.jpg?1637568481',...},
 'mana_cost': '**{4}{W}**',
 'cmc': **5.0**,
 'type_line': '**Legendary Creature — Human Noble**',
 'oracle_text': "**{R}: All creatures gain trample and haste until end of turn.\n{1}{G}: Put a +1/+1 counter on target creature.\n{2}{W}: Target player gains 5 life.\n{3}{U}: Target player draws a card.\n{4}{B}: Put target creature card from a graveyard onto the battlefield under its owner's control.**",
 'power': '**5**',
 'toughness': '**5**',
 'colors': **['W']**,
 'color_identity': **['B', 'G', 'R', 'U', 'W']**,
 'keywords': [],
 'legalities': {'standard': 'not_legal',...},
 'games': ['arena', 'paper', 'mtgo'],
...
 'reprint': False,
 'variation': False,
 'set_id': 'a90a7b2f-9dd8-4fc7-9f7d-8ea2797ec782',
 'set': 'eld',
 'set_name': 'Throne of Eldraine',
 'set_type': 'expansion',
...,
 'rarity': '**mythic**',
...
 'prices': {'usd': '**6.51**',
  'usd_foil': '**6.97**',
  'usd_etched': **None**,
  'eur': **None**,
  'eur_foil': **None**,
  'tix': '**0.17**'},
 'related_uris': {...}

转换数据:注释

  • 由于数据源是 JSON 格式,我不得不把它转换成一个 熊猫数据帧
  • 一个非常重要的转换是将来自单面卡的数据与来自双面卡的数据合并。魔术牌有时有两面,是 API 响应中的不同字段,需要大量的操作。
  • 关键字列转换为每个关键字的单列,如下所示。****

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

  • ****将卡类型分成不同的列,如下所示。

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

  • 固定劈开 。《奈斯特拉:深红誓言》中的系列介绍了具有*【括号内】能力的卡片,这些能力可能适用,也可能不适用,这取决于卡片是如何铸造的。我修好了那个,但是它很复杂。我会在一篇具体的文章中解释。*
  • 用标准化的“CARDNAME”令牌替换甲骨文中的卡名。这是最重要的转变之一。它包括用实际的令牌“ CARDNAME ”替换神谕文本(写有该卡能力的文本)中的卡名。卡片的名称应该与模型无关,但是标记 CARDNAME 的实际存在非常重要,特别是对于 CARDNAME 是句子主语的自然语言模型。

例如,卡片闪电的甲骨文文字由

闪电箭对任何目标造成 3 点伤害.”

“对任何目标造成 3 点伤害.”

  • 对甲骨文进行分词。剧透警报!。稍后我会解释我是如何训练两组不同的模型的。一方面是典型的分类模型,另一方面是具有嵌入层深度学习 NLP 模型。我用标记化的 oracle 文本(以 TF-IDF 的方式)填充了第一个模型,用标记序列填充了 NLP 模型。分别如下(1)和(2)。

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

  • 移除土地。在这个项目中,我们不包括土地,所以我把它们从数据集中过滤掉了。
  • 一个热编码分类列。将所有分类列转换为单个二进制列。例如:

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

特征工程/特征选择:注释

  • 转载。计算一张卡片的重印数量。如果一张牌出现在 3 组不同的牌中,那么“印数”一栏将是 3。一张卡片重印的次数越多,市场上该卡片的供应量就越多,因此,它的价格就越便宜,这使它成为我们价格预测模型的一个非常有用的特征。
  • 计算一张卡中的能力。这意味着在神谕文本中计算一张卡中不同的能力块。例如,我们的朋友 Glorybringer 有 2 个能力。"飞行,急速"是它第一个能力的一部分,并且"你可以在它攻击时使用光明使者。当你如此做时,它对目标由对手操控的非龙生物造成 4 点伤害。“是第二种能力。卡片上的文字越多,卡片上的能力越多,卡片越强大的几率就越高(越稀有,越昂贵,等等。).作为一个规则,任何时候甲骨文有一个“\n”,我认为**是一个能力的结束和下一个能力的开始。****
  • ****创建列“单色”、“单色”、“双色”、…、“五色”,根据卡片为 1 或 0。

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

  • 计算投入。这是一张牌的施放费用中有多少不同的实际魔法力符号。例如,一张施法成本为 {2}{W}{W} 的牌,因为有 2 个白色魔法符号,所以奉献为 2。我在另一个专栏中计算了甲骨文中的奉献。
  • X 咒。如果卡有一个包括 {X} 的施法成本,则此列为 1,否则为 0。
  • 清点甲骨文中的法力符号。除了甲骨文中的符号,与上面的奉献相同。****
  • 包括多选。对于像 Prismari 命令这样的卡,给你多种选择。如果该卡包含此选项,则此栏为 1。**

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

****图片来自 Scryfall API。作者:约翰内斯·沃斯。2021 海岸巫师

  • 包含攻技 。对于像法力愚人法力摇滚这样的牌,或任何横置以做某事的牌。**

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

****图片来自克里福尔 API。作者:马塞洛·维格纳利。2016 海岸巫师

  • 包括风味文本。风味文字本身是非常没用的,因为它对游戏没有任何影响,它只是故事。然而,还有另一种观点。一张有风味文字的牌是一张不太可能有很多能力的牌,因为风味文字(见上图中斜体部分)和能力文字占据相同的空间。
  • 风味文字长度。计算风味文本的实际字符长度。还是那句话,味文越长,能力空间越小。
  • 最重要也是最困难的部分:超类型卡片

我认为牌的超类型是玩家非正式分配给他们的任何一种牌。例如,一张卡片可以被认为是一个“移除咒语”,但那并没有写在卡片的任何地方。然而,我想捕捉所有的**【移除法术】以及许多其他超类型,因为它可以让模型受益匪浅。其他的例子还有:《魔法石》《魔法石》《愤怒》《坡道》《进入战场触发》等。**

我通过为每个超类型使用多个正则表达式来实现这一点,这是如此乏味、冗长和复杂,我甚至无法在这里开始展示。现在,您需要知道的是,这些是我包含的所有不同的超类型:

**'counterspell', 'manarock', 'manadork', 'removal', 'wrath', 'ramp', 'tutor', 'cardraw', 'burn', 'discard', 'enters_bf', 'die_trigger', 'attack_trigger', 'pseudo_ramp', 'static_ramp', 'creature_tokens', 'extra_turn', 'plus1_counters', 'graveyard_hate', 'free_spells', 'bounce_spell', 'sac_outlet', 'sac_payoff', 'cant_counter', 'costx_more', 'costx_moreactivate', 'costx_less', 'costx_lessacitivate', 'whenever_opp', 'returnfrom_gy', 'reanimation', 'castfrom_gy', 'lord', 'upkeep_trigger', 'endstep_trigger', 'landfall', 'combat_trigger', 'life_gain', 'treasure_tokens', 'protection', 'cost_reduction', 'mana_multipliers', 'card_selection', 'whenever_cast', 'gain_control', 'unblockeable', 'difficult_block', 'create_copy', 'milling', 'trigger_multiplier', 'untapper', 'static_effects', 'damage_multipliers', 'variable_pt', 'agressive', 'doublers', 'blinker', 'graveyard_tutor', 'play_toplibrary', 'life_lose', 'play_from_graveyard', 'infect', 'disenchant', 'venture', 'animator', 'wish', 'gy_synergies', 'looting_similar', 'cheatinto_play', 'pumped_foreach', 'ritual', 'no_maximum', 'wheel', 'extra_combat', 'ghostly_prison', 'land_destruction', 'win_game', 'lose_game', 'cant_lose'**

例如,我的孩子 Glorybringer 有 5 个超类型:

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

****移除=1,灼烧= 1,攻击触发= 1,困难格挡= 1,攻击性= 1,所有其他超类型= 0。图片来自 Scryfall API。作者:山姆·伯利。2017 海岸巫师

这种分配超类型的过程产生了一种惊人的将卡片聚集在一起的方式,它确实对模型有很大的帮助。

  • 创建价格箱。这是为了离散化连续价格变量(青铜:0–0.25,白银:0.25–1.00,黄金:1.00–5.00,铂金:5.00–10.00,钻石:10.00-)。价格预测既有回归模型的数值预测,也有分类模型的这 5 个类别的预测。

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

还有许多其他的转换和特性工程任务,但是由于文章的长度,我不能在这里包括它们。

训练数据集

在执行转换和特性工程步骤之后,我得到了一个由 25K+行和 1K+列组成的巨大数据集。

这意味着我能够将一张卡中的信息转换成数百个由 0 和 1 组成的数据点,这就为一些机器学习做好了充分的准备!

数据集本身就是一个瑰宝,它在 GitHub 中是开源的,请随意在您自己的模型上使用它!

它很大,可以在这里展示,但你可以在我的 GitHub 中找到它:

https://raw . githubusercontent . com/gabrielpierobon/magic aimodels/main/datasets/datasets _ vow _ 2021 12 20 _ full . CSV

模型训练:注释

  • 型号类型。我按照一个监督过程训练了二元分类多类分类回归模型。****
  • 算法。我主要使用了来自 scikit-learn Python 库的线性/逻辑回归梯度提升以及带有 Keras/Tensorflow深度学习。****
  • 模型市场。这里有一个表格,列出了所有的模型和它们的作用。注意专栏模拟题

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

  • 降维。由于我们的数据集中有非常高的维数,所以我研究了 多重共线性 ,并在训练前删除了高度相关的特征。我还研究了 递归特征消除 算法,帮助去除一些无用变量。
  • 不平衡问题。大多数类别是不平衡的,这在机器学习的世界里总是有问题的。有更多的普通卡,例如神话,所以我不得不 每次都上采样 数据集,以便获得平衡的类。我只是重复了代表性不足的班级的样本。****
  • 超参数调谐。我为所有模型中的超参数调整设计了网格搜索空间,并使用了五重交叉验证**。****
  • 缩放。大多数变量是二进制的(1 和 0),但也有一些数字特征,所以我使用 MinMaxScaler 缩放所有数字特征。
  • 训练/测试/验证分割。出于评估目的,我将数据集分为训练集和测试集,并省略了最后一个魔术集“in nistrad:Crimson Vow”**
  • NLP 深度学习模型。对于深度学习模型,我对前面提到的甲骨文文本进行了标记化,将标记序列填充到最大长度,创建了一个具有 100 个维度的嵌入层,通过一个双向 LSTM** 层对它们进行处理,然后通过全连接神经元的一些隐藏层,使用丢弃来避免过多的过拟合。如果测试设置精度没有提高,使用提前停止和耐心 3 对模型进行 100 个时期的训练。******

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

这是一个二元分类模型的模型摘要

模型评估:注释

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

模型评估总结。作者图片

  • ****试试 app,自己看!评估模型的最佳方式是进入应用并使用 Innistrad: Crimson Vow 集中的卡片进行尝试,这些卡片是训练和测试中遗漏的数据。选择不同的型号,看 app 怎么分类。
  • 报告的指标总是使用 setin nistrad:Crimson vout。评估模型的决定是在一组不用于训练也不用于测试的模型上进行。以下所有指标都应该是可靠的。**
  • 二元模型。对于二元模型,我计算了每个单独模型的精确度,还计算了三个模型的平均预测,在一种投票分类器**中(见上图)。我的理由是,每个模型本身都是好的,应用程序可以受益于在他们三人之间进行投票的最终决定。结果:****

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

二元模型:我们可以看到,使用单词嵌入和来自数据集的所有特征的深度学习模型的表现优于逻辑回归和梯度增强模型。大多数模型在 Innistrad: Crimson Vow 上的得分都高于 90%,然而,该模型在预测稀有和神话卡片方面有更多的麻烦,准确率仅为约 70%。

  • 多类模型。这些模型给出了每一类的概率。因此,例如,颜色预测模型将给出每一类的概率:白色、蓝色、黑色、绿色、红色和无色。最终预测将永远是概率最高的那个。由于我对 3 种算法之间的投票感兴趣,我决定对 3 种算法(逻辑回归、梯度推进和深度学习)中每一种算法的每一类的概率进行求和,并从较高的预测概率到较低的预测概率对各类的求和概率进行排序。这给了我第一次选秀权,第二次选秀权和第三次选秀权。最后,我记录了模特的第一次选择和第二次选择是否正确(见上图)。我对结果非常满意,可以在这里找到:**

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

多类模型:只有 multiclass_binusd 模型和 multiclass_colrs 预测模型在第一次挑选时效果不错,得分几乎达到 80%。然而,他们在第一次或第二次选股时都表现不错(见最后一栏)。

  • 回归模型。最后,对于这些数字预测模型,其中我们预测了转换的法力成本(法力值)和美元/欧元/TIX 的价格,我计算了平均绝对误差(MAE) 。这些是结果:

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

数字模型:欧元价格预测的 MAEs 最低,尽管欧元价格通常低于美元价格。每张卡小于 1.00 的平均偏差并不惊人,但可以接受。对于 CMC 来说,小于 1.00 法力值的偏差也不惊人,但可以接受。

有趣的发现

我选择了一些没有被模型正确分类的预测,试图解释它们,因为每次模型失败,都是评估模型被混淆的卡片发生了什么的机会。很多时候,它会导致有趣的解释:

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

**蓝色二元模型预测蓝色的概率为 0.55。我知道为什么它会是蓝色的,因为抽牌。**图片来自 Scryfall API。作者:山姆·瓜伊。2021 海岸巫师

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

**二元蓝色模型预测的蓝色概率仅为 0.17,而二元黑色模型预测的黑色概率为 0.67。需要从你的坟墓场驱逐一个生物的僵尸可能绝对是黑色的。**图片来自 Scryfall API。作者:伊戈尔·基里卢克。2021 海岸巫师。再来看看 app 里对同一张卡的另一个预测:

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

**其中两个模型预测这张卡片是黑色的,而另一个模型预测是绿色的。需要从你的坟墓场驱逐一个生物的僵尸可能绝对是黑色的。从你的坟墓场驱逐它的最后一个效果是让你抽一张牌,我明白为什么它会是一个绿色的效果了。**图片来自 Scryfall API。作者:Igor Kieryluk。2021 海岸巫师

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

**在这种情况下,我们的多类模型预测 Falkenrath 庆祝者首先是不常见的,然后是常见的。我认为这完全有道理,因为卡做了很多事情。4/4 换 5 点法力,带威胁,把 2 个血令牌放到战场上是惊人的价值。这是有限的最好的公地之一。**图片来自克里福尔 API。作者:安娜·斯坦鲍尔。2021 海岸巫师

还记得我们之前制作的卡片吗?让我们快速起草它,看看我们的应用程序预测什么颜色:

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

应用程序预测它首先是一个蓝色法术,其次是一个红色**法术。这是非常准确的!来自 Scryfall API 的图像**

同样,评估该型号的最佳方式是使用应用程序亲自动手!

再来看一下链接:

https://share . streamlit . io/gabrielpierobon/magic aimodels/main/app . py

Web 应用程序开发:注释

  • ****为胜利而简化!这个网络应用程序是使用 Streamlit 构建的,它功能强大却简单易用。我怎么推荐都不为过!
  • ****免费!我免费使用 Streamlit Cloud 托管应用程序!
  • ****开源!这个应用的代码在我这里的 GitHub 上:https://github.com/gabrielpierobon/magicaimodels

结论和后续步骤

我非常高兴和满意,尤其是对过程**,对结果和最终产品(应用程序)也是如此。我在一个个人项目上度过了一段美好的时光,这个项目涉及到我喜欢做的事情和我擅长做的事情。这真的很令人兴奋,也是一种惊人的成就感。**

事实上,我们可以将卡片上的信息转换成有用的数据,并训练一台机器来识别模式并做出预测,这太令人兴奋了!

我仍在计划如何在 2022 年发展这项技术,并与社区分享,看看它能产生多大的影响,能对未来的进一步研究产生多大的影响。

至于结果,我认为它们非常好,但我也能看到它们如何能变得更好。这里有一些关于这个主题的注释:

  • 更好的算法。我们可以使用更强大的算法,比如 XGBoost、LightGBM 等。
  • 更 tunning 。我们可以花更多的时间在模型调试阶段,我没有时间去做。
  • 变形金刚。我们可以通过使用 BERT 进行迁移学习来将 NLP 模型提升到下一个级别,并根据魔域对其进行定制。这太不可思议了。
  • 更多数据。我们可以得到更好的数据。我很想从其他网站上获得一些关于该卡可玩性的统计数据。这将允许我创建一个列,可以记录一张牌在特定格式下的播放次数。这将会改变一些结果,尤其是价格。

如果有人有兴趣讨论这项研究的内容和成果,你可以在 LinkedIn 上联系我:https://www.linkedin.com/in/gabrielpierobon/

人工智能不会很快取代你的编码工作

原文:https://towardsdatascience.com/artificial-intelligence-is-not-taking-your-coding-job-anytime-soon-5bf0df677ee8?source=collection_archive---------29-----------------------

为什么像 GitHub Copilot 这样的人工智能编码工具不能做你的工作

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

照片由this is 工程 发自 像素

我曾经担心人工智能(AI)会抢走我的工作,让我失业。

毫无疑问,围绕人工智能的恐惧正在逐年增加。

但是我写代码越久,对机器学习越深入,我就越不担心。

最近,OpenAI 和微软(拥有 GitHub)发布了 Copilot ,这是一个 AI 驱动的结对程序员。

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

来源:副驾驶

虽然令人印象深刻,但我们离能够自己编写代码的人工智能还很远。

但这并不意味着没有短期影响。

幸运的是,软件工程不仅仅是在电脑上打字。

大多数写人工智能的人都没有写过代码

如果你已经编写了任何一个适度复杂的软件,过时的开发者论点很快就会土崩瓦解。

你知道“写代码”不是开发人员真正的工作。

说“软件工程师的工作是写代码”就像说“作者的工作是写段落”虽然这是真的,但它没有抓住要点。不是任何作者都能写出《权力的游戏》。

编写代码是容易的部分。针对规模进行架构设计、满足客户需求以及处理现有的设计约束要复杂得多。

如今,软件开发人员是建筑师、工程师和建筑工人。但随着我们走向未来,我怀疑我们会更多地看到前者,而更少地看到后者。

繁重的工作正在消亡

像 Copilot 这样的 AI 驱动的编码工具在做什么?

智能生成样板代码。

他们正在移除我们价值最低的任务。比如编写代码来循环数据、创建单元测试以及查找堆栈溢出的答案。

作为开发人员,我们管理的是能源,而不是时间。每一个走神的想法和谷歌搜索都会消耗一点这种能量。优秀的开发人员希望通过解决具有挑战性的问题,而不是编写基本的代码来获得丰厚的报酬。副驾驶帮助他们做到这一点。

这对大多数开发者来说是个好消息。除非你花时间写垃圾应用程序…

我怀疑我们将在未来十年看到一个转变,随着低价值任务的枯竭,开发人员变得更像技术项目经理。

代码的价值会下降

正确生成的代码允许有能力的开发人员在更短的时间内构建更多的技术。

这种价值的大部分将被公司获取。

软件工程师的工资不会少,工作也不会多。他们只会在更短的时间内完成更多的工作。

随着软件开发成本的降低,需求也会增加。

在经济学中,“杰文斯悖论”……发生在技术进步或政府政策提高了资源的使用效率(减少了任何一次使用的必要数量),但由于需求增加,资源的消费率上升。

我们可以看到公司用同样的资源解决更多的问题,或者更多的科技公司被创造出来。

成本下降带来新的机遇

您现在可能能够构建那些以前太耗时或太昂贵的辅助项目。

如果建造一件东西花费的时间更少,那么边际效益低的项目现在就变得可行。

以前过于昂贵的机会现在可以追求了。

也许你想构建一个简单的应用程序来聚合一些数据。金钱激励太低,不足以证明 40 小时的努力是值得的。但是现在只需要 20 个小时,你可能会重新考虑。

这同样适用于公司。他们不能在当前工作的基础上追求更低价值的机会。作为一名企业家和程序员,我喜欢这个。

人工智能驱动的编码给未来带来了一些风险

现在,Copilot 生成样板代码。它比现有的代码编辑器更智能。但这对任何人都没有风险。

也就是说,我们必须假设工具会继续改进。如果这是真的,我们可以想象一个有以下问题的未来。

高级开发人才渠道枯竭

我们都是大三学生,只能编写 CRUD 应用程序。但是,当我们不再需要人类来编写这些简单的应用程序时,会发生什么?新开发人员将如何学到足够的知识来提升价值链?

收益只属于最优秀的开发者

在任何职业中,前 1%的人都比其他人赚得多得多。如果顶级开发人员可以完成 10 倍的工作,它可能会消除对其他中等技能开发人员的需求。

无代码工具会把软件变成一个黑匣子

如果我们不再写代码,怎么能理解 AI 正在写的代码呢?我们对使用我们不了解的技术感到舒服吗?

这些是我们作为一个行业和社会在某个时候可能需要面对的长期问题。

最后的想法

这是我不担心 AI 抢走我工作的最大原因。

如果 AI 会写软件,那就已经结束了。所有人都过时了。不仅仅是开发商。

尽管媒体大肆宣传,但没有什么理由害怕人工智能取代你的编码工作。编码主要是一种创造性的职业。就目前的情况来看,神经网络从根本上来说不可能有新的想法。

此外,软件工程师是问题的解决者。我看不到问题的尽头。

因此,尽管技术性失业可能不可避免,但不会持续很长时间。

**剧情转折:**本文由 GPT-4 撰写……开个玩笑。

人工智能专利 101 项

原文:https://towardsdatascience.com/artificial-intelligence-patent-101-3eebf93f5297?source=collection_archive---------30-----------------------

谁在创造专利,你也应该获得专利吗?

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

天使的小号,作者

专利出版趋势

与人工智能和机器学习相关的专利出版物继续以惊人的速度增长,现在美国专利局每年的申请量接近 10 万件。仅在三年前,这个比率接近每年 7 万份申请。使用patentguru.com,我查看了美国专利出版物和专利申请出版物标题中的下列术语的出现频率:“机器学习”或“机器学习”或“数据分析”或“分析”或“计算机程序产品”或“人工智能”或“数据科学”或“神经网络”由于只审查了专利标题,而没有审查专利正文,所以包括了更一般的术语“分析”和“计算机程序产品”。

有可能包含少量非人工智能/人工智能专利,但人工检查产生的专利确定这些搜索词给出了良好的结果。专利的最大受让人是 IBM,其次是高通、三星、英特尔、微软、谷歌、华为和苹果。

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

专利是如何组织的?

专利需要被归入一个特定的类别。这些类别是很久以前创建的,那时计算机工作产品还不需要一个类别。出于这个原因,你会发现大多数美国专利局 ML/AI 类型的专利在类别 G:物理学中,但是它们可以在任何类别中找到,这取决于发明应用的领域。

答:人类的必需品

b:执行操作,运输

化学、冶金

d:纺织品、纸张

e:固定结构

机械工程,照明,供暖,武器

物理

h:电力

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

如何获得特定类别专利的更多信息

在每个类别中有子类,G06F 是美国专利局 ML/AI 专利中最常见的。

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

使用 www.patbase.com 的,我查看了类别 G06N 上的信息。这是我最近提交了机器学习专利申请的一个类别。这里的结果是针对该类中的所有专利和应用,而不仅仅是机器学习相关的专利和应用。

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

G06N 的 PatBase 分析结果

基于特定计算模型的计算机系统类别的最大受让人是 IBM,其专利数量是紧随其后的受让人微软、谷歌和三星的两倍。在这次评估中,我并不局限于美国专利,因此您将看到全球受让人的分布情况。

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

这些申请中有许多是中国的专利,其次是美国的专利。

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

在 2020 年和 2021 年,所有国家的 G06N 专利申请数量都在大幅增长。这只是机器学习和人工智能专利可以申请的多个类别之一。

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

我如何写我自己的专利?

你不知道。你的专利律师会帮你做的。只有专利律师或非常敬业的发明家才会尝试写专利。你的公司可以聘请专利律师来帮助你,如果他们致力于他们的知识产权专利的概念,并希望保护你的项目。成本不是微不足道的,而且完全有可能你的公司可能更愿意将你的工作作为“商业秘密”而不是申请专利。假设你的专利是与雇主相关的工作,你的名字会出现在专利上,但专利的“受让人”将是你的雇主。

出版你的作品,而不是追求专利,是另一条可以选择的道路。如果目标是建立作为专家的声誉,以及传播一般知识,而不是对作品的具体保护,这可能是更可取的。

为了继续为你的作品申请专利,你需要能够证明你的作品是新颖的、非显而易见的和有用的。你应该创建文档,用通俗的语言解释你的发明。它应该清楚地解释你的作品,以及你试图保护作品的哪一方面。你不能给抽象的概念申请专利,你的发明必须有实际应用。你的律师将能够搜索“现有艺术”来证实你的主张。虽然您也可以搜索“现有技术”,但请记住,您需要披露您在此类搜索中的任何发现。当专利被撰写时,它将包含确切的“权利要求”。这些权利要求准确地描述了你的发明是由什么组成的,是专利最重要的部分。他们还将决定你的专利应该提交给哪个类别和子类,以及你将提交的专利类型。

看到你的发明被解析成连你自己都难以理解的法律术语,并伴随着不熟悉的图表,你可能会有点迷惑。显然,这正是专利局正在寻找的,所以在这一点上,你需要相信你的律师。你还需要确保他们在撰写时已经清楚地理解了你的发明,并且权利要求确实代表了你试图申请专利的内容。不同的权利要求可以与不同的发明人相关联,因此您可以在这里指定哪个发明人对整个发明的各个方面做出了贡献。

我能从我的专利中赚钱吗?

大概不会。此外,你的雇主可能也不会从中赚钱。专利可以用来增加公司的内在价值,并证明其作为创新领导者的地位,即使具体专利没有实际的货币价值。此外,专利保护你的产品不被别人申请专利。许多专利申请都没有具体的计划来将受保护的发明货币化。

美国专利商标局的新人工智能数据

美国专利局最近发布了一个关于人工智能相关专利的数据集。该数据集是基于一种比本文所用的更全面的专利分类方法编制的。在下一篇文章中,我将讨论这个新数据和专利局发布的相关发现。

人工智能:人类的未来

原文:https://towardsdatascience.com/artificial-intelligence-the-future-of-mankind-46aaf6b4b87f?source=collection_archive---------17-----------------------

人工智能|未来|技术

为什么人类需要人工智能

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

安迪·凯利在 Unsplash 上的照片

据我们所知,世界上很少有行业能够改变世界。人工智能(AI)在这份名单中占据主导地位。人工智能在我们生活的几乎每个方面都有应用。它彻底改变了我们的生活方式,而我们中的大多数人甚至不知道它,而且它不会很快放缓!那么,为什么人工智能对我们变得如此重要?我们为什么需要 AI?

我们都看过好莱坞对人工智能的描述。好莱坞倾向于将 AI 戏剧化为邪恶或恶棍。总有某种邪恶的人工智能准备接管世界。这是我们注定的未来吗?是人类对抗机器吗?我不这么认为。

问一个 GPT 3 聊天机器人这个问题,我们得到如下回答:

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

[作者捕获的图像] GPT-3 人工智能对作者所提问题的答复

“AI 可以成为我们的朋友。”—比尔·盖茨

现实是人类需要 AI 才能生存,反之亦然。作为一个种族,我们已经取得了如此大的进步,以至于我们现在需要人工智能来扩展我们的智力,激发我们的创造力。我们已经能够建造巨大的东西。任何有电脑和互联网连接的人都可以阅读这篇文章。这多不可思议啊。

人工智能在学习模式和自动化任务方面非常出色。人类是有创造力的,并且拥有普通智力和情商——至少我们中的一些人是这样。两者都是任何 AI 都无法拥有的技能。这就是为什么人工智能将使我们能够达到更新的高度。已经发生了。我们有自动驾驶汽车和机器人制造。人工智能增强了人类的工作能力。这允许更大更快的创新。通过人工智能,人类将变得更聪明,更强大,甚至更有效率。人工智能会提升我们。人工智能将帮助我们维系生命。

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

马特·帕尔默Unsplash 上拍照

卡尔·本茨于 1886 年 7 月 3 日推出了第一辆汽车。它的最高时速高达 16 公里[1]。2020 Koenigsegg Jesko Absolut 的速度达到 531+km/h。这款车利用了先进的人工智能半导体和许多传感器[2]。100 年前,要给某人发信息,你必须写一封信并寄出去。今天吗?拿出手机,发送即时消息。技术激发创新。科技让我们从不同的角度重新发现我们周围的世界。

“人工智能的目的是重塑人类思维”——克里斯·达菲

到 20 世纪 90 年代初,百视达已经开了第 1000 家店[3]。2010 年,百视达宣布破产。为什么?因为有人试图重新设计电影租赁业务。现在,网飞的神经引擎每月处理超过 60 亿小时的观看时间[4]。亚马逊动摇了巴诺和优步与传统出租车服务的竞争。

即使是银行也面临来自 Revolut 等金融科技解决方案的竞争。为什么这些公司能够打败老牌巨头?简单。行业颠覆和创新。人工智能为终端用户定制产品提供了一系列数字机会。人工智能的优势不仅允许我们经济的自然进化,也允许我们生活质量的自然进化。这引出了我的下一点。人工智能提高了我们的生活质量。

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

扎卡里·尼尔森在 Unsplash 上的照片

人工智能在为我们实现自动化方面很棒。我们可以花更少的时间在单调上。人工智能也让复杂的任务变得不那么复杂。在制造业,工厂使用机器人机械来完成所有的重物提升。这为工厂工人节省了多年的健康时间。

此外,人工智能系统从来不会请病假。他们没有家庭或个人问题,他们总是表现出同样的水准。仍然需要维护干预;尽管如此,工厂工人承担的劳动密集程度较低的角色。这使得工作流程更加高效和一致。人类是大脑,人工智能是肌肉。人工智能为汽车提供动力并增强芯片组的性能。人工智能是许多改善我们生活状况的软件应用的核心。

一个很好的例子就是像 Alexa 和 Siri 这样的人工智能助手的概念。我们的愿望就是他们的命令。人工智能还应用于一些数据密集型应用,如打击金融犯罪[5]。在这里,我们可以利用人工智能的速度和模式识别技能来检测欺诈。

“我想象一个人工智能将使我们工作更有效率、寿命更长、能源更清洁的世界。”—费·

人工智能还揭示了日常偏见。人工智能系统通过处理几个数据示例来学习任务的解决方案。如果我们将有偏见的数据传递给 AI,那么 AI 将学习我们问题的有偏见的表示。人工智能将学习模仿传递给它的观察结果。这种人工智能偏见不幸进入现实世界的一个例子发生在 2019 年[6]。美国医院使用人工智能来预测哪些病人需要额外的医疗护理。人工智能系统后来被发现有种族偏见。不同的种族有不同的医疗费用,这导致了代表性不足的种族。

那么,AI 是如何挑战我们的?这种偏见引发了对医疗保健领域潜在种族歧视的调查。现实世界中偏见无处不在。特别是在社会应用中,人工智能有助于更好地理解当前的社会关系。人工智能可以揭示我们认为理所当然或忘记它们存在的观察结果。在构建 AI 解决方案的时候,我们也在挑战和提升自己。一步一步来。

“没有人这么说,但我认为人工智能几乎是一门人文学科。这真的是一种理解人类智能和人类认知的尝试。”巴斯蒂安·特龙

参考

[1]http://www . themotormuseumminiature . co . uk/inv-Karl-benz . PHP

[2]https://www.koenigsegg.com/car/jesko-absolut/

[3]https://www . history . com/this-day-in-history/first-blockbuster-store-opens

[4]https://www . pcmag . com/news/us-网飞-订户-观看-32 小时-每天使用-96 GB 数据

[5]d .法鲁吉亚、c .泽拉法、t .西尼等人一种用于网络游戏行业中可解释的网络欺诈检测的实时规定解决方案。 SN COMPUT。SCI。 2、 215 (2021)。https://doi.org/10.1007/s42979-021-00623-7

[6] Obermeyer,z .,Powers,b .,Vogeli,c .,和 Mullainathan,s .,2019 年。剖析用于管理人口健康的算法中的种族偏见。科学366 (6464),第 447–453 页。

想给我买杯咖啡吗?

*https://paypal.me/itsdavidfarrugia?country.x=MT&locale.x=en_US *

想联系吗?

我很想听听你对这个话题或任何人工智能的想法。如果你想联系我,请给我发电子邮件到 davidfarrugia53@gmail.com,或者通过下面的我的社交网站联系我。

Linkedin——Twitter

使用 PySpark 的人工神经网络

原文:https://towardsdatascience.com/artificial-neural-network-using-pyspark-324cf47e8d0a?source=collection_archive---------15-----------------------

使用 PySpark 实现用于二进制类预测用例的神经网络

简介 :
这是 Pyspark 博客系列的延续。之前我已经分享了使用 PySpark 实现一个基本的线性回归。在这篇博客中,我将展示另一个有趣的神经网络实现,它使用 PySpark 作为二进制类预测用例。这篇博客不会有很多预处理步骤,但是会给你一个实现分布式环境的想法,特别是当你在数据块中的集群中运行代码的时候。对于 Databricks 环境,如果您想利用 TensorFlow, horovod 对此太方便了,或者您也可以参考分布式 tensorflow 。但是如果你在业界工作的时候在 GPU 集群上面使用 Horovod 还是推荐的。然而,我将使这篇博客过于精确,以至于读者无法理解 pyspark 的神经网络实现方式。

欢迎,让我们深入主题。

我拍了一张钞票认证数据集。数据集中有 5 列,如 f1、F2、F3、F4 作为特征,Class 作为标签。

多层感知器分类器:

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

media.istockphoto

为了在 PySpark 中实现一个神经网络,我们可以使用多层感知器分类器。超级好用,从 pyspark.ml.classification 导入即可基于前馈人工神经网络。输入层中的节点表示输入数据。其余节点通过输入与节点权重**w**和偏差**b** 的线性组合以及应用激活函数,将输入映射到输出。这可以表示为:

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

具有 K+1 层的 MLPC 的矩阵形式

特点:

  1. 它基于多层感知器。

2.Sigmoid 激活函数用于每一层,Softmax 激活函数用于输出层。

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

N 表示类别的数量

3.它使用逻辑损失函数进行优化,使用求解器 L-BFGS 进行优化。但是你可以另一个像 gd 这样的求解器。

gd 代表梯度下降算法。

l-bdgs 代表有限内存 Broyden–Fletcher–gold farb–Shanno 算法

缺点:

当您使用 Tensorflow 或 PyTorch 定义 ann 时,它缺少定制功能。

阅读更多关于 scikit learn 实施的信息。

实施

加载数据集:

dataset = spark.read.csv(“data_banknote_authentication.csv”,header=True)

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

我的电脑

通常,当您使用 pyspark 导入数据时,如果模式不是预定义的,它将采用 string 类型。现在让我们将列类型转换为 double 类型。

for col in dataset.columns:
    dataset = dataset.withColumn(col,dataset[col].cast('double'))

有几个空值。所以让我们用平均值来估算。

imputed_col = ['f_{}'.format(i+1) for i in range(len(input_cols))]model = Imputer(strategy='mean',missingValue=None,inputCols=input_cols,outputCols=imputed_col).fit(dataset)
impute_data = model.transform(dataset)

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

我的电脑

在 PySpark 中,在将数据输入模型之前,我们用向量来表示数据。想法是以矩阵格式表示数据,并在 0,1 之间缩放数据。

assemble = VectorAssembler(inputCols=imputed_col, outputCol='assembled_features', handleInvalid='error')
a_data = assemble.transform(impute_data)scaler = MinMaxScaler(min=0.0, max=1.0, inputCol='assembled_features', outputCol='features')
s_data = scaler.fit(a_data).transform(a_data)

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

我的电脑

现在,让我们将数据分为训练和测试数据集,定义模型,并将训练数据放入模型中。我用过的网络层是 4,16,2

4 是因为有 4 个不同的输入要素,2 是输出图层,因为它是二元分类。

train_df,test_df = s_data.select('Class ','features').randomSplit([0.7,0.3],1213) mlpc=MultilayerPerceptronClassifier( featuresCol=’features’,labelCol=’Class ‘,layers = [4,16,2],\
 maxIter=1000,blockSize=8,seed=7,solver=’gd’)ann = mlpc.fit(train_df)

一旦完成。你可以检查一下准确性。使用方法 multiclasssclassificationevaluator()。

现在转换测试数据,并在 evaluator 方法中定义精度,如 f1、精度等等。

pred = ann.transform(test_df)
evaluator = MulticlassClassificationEvaluator(labelCol='Class ',predictionCol='prediction',metricName='f1')
ann_f1 = evaluator.evaluate(pred)
ann_f1

运行 1000 次迭代后,f1 值为 0.8309986610958963。

结论:

尝试使用不同的数据集,如带超参数调整的 mnist 数据集,并检查模型性能。请在评论区告诉我你的想法。你可以在这里访问代码和数据集

我会带着另一个有趣的话题回来,在那之前祝你阅读愉快!

请在评论区分享你的想法。你可以在 LinkedlnGmail 上帮我联系。

作为新手:我了解到在 Python 中使用配置文件可以使开发更高效

原文:https://towardsdatascience.com/as-a-novice-i-learned-that-using-configuration-files-in-python-makes-development-more-efficient-29c75b4eabd5?source=collection_archive---------10-----------------------

查看使用配置文件时的区别

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

费伦茨·阿尔马西拍摄于 Unsplash

介绍

在理解配置文件之前,我的脚本通常非常长,重复,低效。此外,每次变量发生变化时,我都会花大部分时间在脚本的不同部分进行更改,这非常耗时。然后我注意到其他人正在使用配置文件作为他们开发的一部分,我也开始探索和实现它们,我意识到当使用配置文件时,事情变得更加高效、灵活和有组织

那么什么是配置文件呢?

  • 配置文件允许我们配置参数和初始设置。
  • 配置文件的格式可以是— yaml ,ini,json,xml

配置文件通常用于存储敏感信息,如数据库凭证、密码、服务器主机名、管理参数等。

在本文中,我将分享在机器学习项目中使用配置文件与不使用配置文件的区别。我们将使用的配置文件格式是 YAML 格式。代表另一种标记语言的 YAML 被选中,因为它没有诸如大括号和方括号之类的格式,这使得它因可读性和易写性而受欢迎。

这个用例中的场景是基于不同的预建模型执行评分(预测)。每个模型需要不同的数据集来执行预测,但源表是相同的。下图说明了构建所需的过程:

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

用例场景说明

评分流程概述:

  • 有两个模型:Model_A 和 Model_B,它们已经基于不同的数据集预先构建,但是是从相同的 features 表中检索的。
  • 为模型 A 准备评分脚本,根据数据集 A 进行预测,并将预测结果推送到数据库中。
  • 为模型 B 准备评分脚本,根据数据集 B 进行预测,并将预测结果推送到数据库中。

(在这个用例中,开发的模型基于从 Kaggle:超市销售数据集)

现在,让我们来看看如何实现配置文件,以及不使用配置文件时的比较。

带有配置文件的评分脚本:

首先,让我们看看 YAML 的配置文件是什么样子的。下面是一个配置文件 (model_A.yml) 的示例,它指定了模型 A 执行模型预测所需的段、模型文件名和列。

然后,我们将加载并读取 YAML 文件,作为评分脚本的一部分。下面是一个使用 python 加载 YAML 文件并读取配置文件中的值的示例。注意,配置文件名是用变量***“+模型+”指定的。yml* 而不是*" model_A.yml "***因为我们有多个 YAML 文件要加载到脚本中(model _ a . yml,model_B.yml)。用这种方法指定允许我们为不同的模型重用相同的脚本。

*config_file = ""+model+".yml"with open(config_file, "rb") as file:
        config = yaml.load(file)segment = config['segment']
model_file_name = config['model_file_name']
columns = config['columns']*

在我们的评分脚本中,配置变量在两个不同的区域被调用:

*(1) **配置变量[’ segment ‘]&[’ columns ']*用于从 Google Big Query 中检索模型 A 所需的数据集

*client = bigquery.Client()
table_id = 'sales_data.superstore_sales_data_processed'
sql = "SELECT **{columns}** FROM `sue-gcp-learning-env.sales_data.superstore_sales_data_processed` where segment = ? and year_week = ?;".format(**columns**=",".join(**columns**))job_config = bigquery.QueryJobConfig(
        query_parameters = [
            bigquery.ScalarQueryParameter(None, "STRING" , **segment**),
            bigquery.ScalarQueryParameter(None, "INTEGER" , int(year_week))
        ]
    )*

(2) 配置变量[‘模型文件名称’] 用于调用加载模型的 pickle 文件

*pickle_file_name = **model_file_name**
with open(pickle_file_name,'rb') as pickle_model:
     model = pickle.load(pickle_model)*

现在让我们看看我们最终的评分脚本是什么样子的:

要为模型 A 或模型 B 运行我们的评分脚本,我们可以调用带有指定参数的函数。(型号 _A /型号 _B)。例如,在下图中,通过传递与 YAML 文件(model_A.yml,model_B.yml)同名的参数,可以使用相同的评分脚本为模型 A 和模型 B 运行。

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

调用评分脚本函数

没有配置文件的评分脚本:

现在让我们看看不使用配置文件时的区别。在下面的脚本中,请注意变量是基于模型 A 所需的细分值硬编码的— 细分=‘消费者’

*client = bigquery.Client()
    table_id = 'sales_data.superstore_sales_data_processed'
    sql = "SELECT * EXCEPT(total_sales) FROM `sue-gcp-learning-env.sales_data.superstore_sales_data_processed`  where **segment = 'Consumer'** and year_week =?"job_config = bigquery.QueryJobConfig(
        query_parameters = [
            bigquery.ScalarQueryParameter(None, "INTEGER" , int(year_week))
        ]
    )*

此外,模型 A 的模型文件名也是硬编码的

*pickle_file_name = **'model_A_consumer.pkl'**
with open(pickle_file_name,'rb') as pickle_model:
    model = pickle.load(pickle_model)*

下面是没有配置文件的最终脚本。现在,该脚本只显示了一个模型,如果我们将这种方法用于模型 B,它将是模型 B 变量被硬编码的脚本的副本。随着我们有越来越多的模型,脚本将继续复制。例如,如果我们有 10 个模型要执行评分,并且没有引入配置文件,那么我们的脚本将是下面脚本长度的 10 倍。

如果您想查看包括型号 B 的配置文件在内的完整代码,可在 Github 上找到。

结论:

将配置文件作为软件开发的一部分来添加,使事情更易于管理,并且无疑使我的生活更加轻松。在我目前的项目中,我们有数百个模型要开发和评分。如果我对所有东西都进行硬编码,将会花费大量的时间,并且可能会达到无法控制的程度。我很高兴我意识到了使用配置文件的重要性,并希望这篇文章可以帮助任何人在他们的下一个项目中开始使用配置文件。

引用&链接

[1]https://www . analyticsvidhya . com/blog/2021/05/reproducible-ml-reports-using-YAML-configs-with-codes/

[2]https://medium . com/analytics-vid hya/how-to-write-configuration-files-in-your-machine-learning-project-47bc 840 ACC 19

[3]https://www.kaggle.com/rohitsahoo/sales-forecasting

https://www.tutorialspoint.com/yaml/index.htm

AutoML 是不够的,最好的分析仍然需要人

原文:https://towardsdatascience.com/as-organizations-try-and-empower-democratized-analytics-they-must-consciously-recognize-where-3c73398a9065?source=collection_archive---------44-----------------------

减少对编码的需求和向更广泛的受众展示数据并没有使探索数据时对人类直觉的需求失效。

让我们从肯定 AutoML 工具的威力开始。任何用户,无论技术能力如何,现在都可以在几分钟内建立模型,而以前需要专家数据科学家使用数百行 Python。AutoML 加速了逐步完成特征工程的过程,尝试许多不同的算法,调整参数,并最终确定一个准确的模型。

因此,它已经成为数据科学民主化的重要支柱,因为它从可生产模型的奖励中抽象出编码和算法函数调用。在 Einblick,我们亲眼目睹了我们的 AutoML 工具如何让非技术分析师和运营经理开始用精确的模型取代“直觉”。

但是对我们来说,AutoML 代表了一种工具上的增强,以实现加速模型构建和数据科学民主化的目标。然而,它不是一根魔杖,一挥就能立刻创造出数据科学。一个更现实的类比可能是,自动化工具是电动开罐器。它们可以解放双手使用,比手动启动更快更干净地完成目标。

因此,对组织领导的一个重要提醒是,不要过度投资于技术自动化解决方案,而是应该更多地投资于人和过程。

1。领域知识提高了投入

基本的特征工程和数据清理工具已经融入了大多数 AI / ML 工具。领先的 AutoML 平台(简单而无耻地宣传我自己的产品, Einblick here ) 将包括一组类似的候选转换,包括一次性编码(分类变量到 1/0)、插补、缩放、比率、NLP 文本特征提取。然而,这些方法是一种“看棍子”的方法。

然而,基于人类的领域知识具有一些比较优势,这些优势增强了自动特征工程,包括以下内容:

  • 对模式的真实世界激励变化的检测:人类可能识别出数据集的变化,其代表发生的可命名事件。例如,组织启动了一项新计划、发生了战略转移、发生了自然灾害、发生了金融危机等。该模型只能从数据中的低级统计模式所揭示的信息中进行推断。而人类的直觉依赖于大量的额外知识来解释数据。
  • 基于期望值的异常值识别:AutoML 算法可能能够识别 3 个标准差之外的变量,并消除它们。然而,与上面类似,理解价值观是否合法是人类的任务。以一家零售银行为例:900 分的信用评分似乎是可行的,但不在标准评分 300-850 分的可能范围内。相比之下,100 万美元的支票账户很少,比平均水平高得多,但我们马上知道这是可能的。领域知识允许分析师对无关值是否合法进行分类。
  • 智能和可解释的数据转换:一个经典的例子是体重和心脏病发作之间的关系。虽然[体重与[心脏病发作正相关,但更好的预测可能是[体重/[身高],因为非常高和重的人可能仍然健康。更多的专业知识可以告诉你,分母的平方就是身体质量指数——这是一个常用的指标。

2。可解释性工具必须创建讨论,然后是迭代

模型只有在实现时才有帮助。通过能够清楚地传达模型正在做什么,解决问题,并解决关于输入驱动因素和输出影响的任何分歧点,可以赢得认同。

AutoML 确实有一系列可用的模型解释功能,从对变量重要性进行排序和让用户处理数据,到部分依赖图和独立条件期望的可视化。但这些是数据科学家的工具。它们没有帮助传播信息,也没有向与分析相关的广泛的利益相关者解释模型。团队和工具必须超越固定的包,以促进涉众更好地理解来驱动迭代:

  • 预测结果的描述性可视化:虽然有用,但代表最佳模型可解释性工具的预装箱输出需要对过程的信任而不需要理解,或者潜在地需要太多先前的数据科学知识。相反,实际的描述性分析应该在模型上运行。价值是否有意义,细分是否如我所料存在,当我可视化针对关键驱动因素的预测时,是否有任何无法解释的模式,等等?被确定为重要的变量可以通过驾驶员分解的目标响应变量的快速标准化直方图来确认。
  • 快速评估变更的影响:模型需要一次又一次的运行。基于这些结果,用户应该能够灵活地跳回到数据流任务来扩充数据集,转向描述性的视觉效果来检查假设,或者只是重新运行没有坏变量的模型。AutoML 工具是找到好模型的好方法,但这并不意味着它们足以一次性解决问题。

总之,不要只关注自动模型,而忽略了在模型创建后与数据进行人工交互的需要。许多 AutoML 工作流隐含地断言“信任我们”如果模型的统计数据看起来不错,并且是由智能工具生成的,那么实现它肯定是有意义的!数据科学的民主化并不意味着用户应该放弃创建易于理解和解释的模型。

原载于 https://einblick.ai/automl-not-enough-citizen-data-science/ Einblick:

尝试一种新的、更加动态的方式将 AutoML 集成到您的数据科学工作流中https://einblick.ai/try-einblick/

问我任何关于矢量搜索的问题

原文:https://towardsdatascience.com/ask-me-anything-about-vector-search-4252a01f3889?source=collection_archive---------20-----------------------

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

本杰明·苏特在 Unsplash 上拍摄的照片

今年的柏林流行语特别关注搜索的未来——向量搜索,以及其他真正酷的话题,如扩展卡夫卡,使用 Opentelemetry 的分布式系统跟踪以及提高工作满意度。一些致力于向量搜索主题的会议包括一些令人印象深刻的密集检索技术的演示,以支持在你的文本湖中回答问题。

在问我任何问题:矢量搜索!会议 Max Irwin 和我讨论了矢量搜索的主要话题,从它的适用性到它与优秀的 ol’ sparse search (TF-IDF/BM25)的比较,到它在黄金时间的准备情况以及在向用户提供它之前哪些具体的工程元素需要进一步调整。如果你对矢量搜索感兴趣,你可以从阅读我写的关于这个主题的一系列博客文章开始:在 SolrLuceneElasticsearch 中,跳转到 GitHub repo (在会议期间,我有与会者联系我,分享他们使用它运行内部演示——所以你也可以这样做)。

更新:AMA 会议的录音在这里:

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

链接:https://youtu.be/blFe2yOD1WA

https://www.youtube.com/watch?v=blFe2yOD1WA

对于这篇博文,我决定从友好的互联网观众中挑选 3 个最重要的问题(我们在活动前圈了一份在线表格,以收集一组关于矢量搜索的非常有趣和深刻的问题),并给出我的部分答案,稍微扩展一下(并在可能的情况下增加论文和代码)。

我们从研究和工业两方面看到了密集检索领域出现的一些模式。你对密集检索的下一步有什么想法?事情将走向何方,人们需要做些什么准备?

这里有一篇来自谷歌研究的最近的论文,关于在字节级上训练嵌入模型,这将有助于解决拼写错误查询的各种令人生畏的问题。另一篇论文应用傅立叶变换来提高 BERT 的速度:快 7 倍,准确率 92%。因此,社区正在解决嵌入带来的各种问题,这将推动密集检索/重新排序和矢量搜索的进一步发展。需要注意的一点是,这些模型是否通用化,根据 BEIR 的基准测试论文,密集检索方法不能很好地通用化。只有当模型已经为相同的领域训练时,它们才会击败 BM25。相比之下,最快的方法是基于重排序的,如 ColBERT,但有一个条件:准备多分配 10 倍的磁盘空间来存储索引,而不是 BM25 索引(具体数字:900 GB 对 18 GB)。当谈到将前沿研究产品化时,除了考虑神经搜索如何与当前的搜索解决方案共存之外,您还需要整体评估特定搜索方法对可伸缩性、搜索速度、索引足迹的影响。你还允许预过滤吗?用户对他们在屏幕上看到的结果有发言权吗?你的 UX 会平稳地支持这种搜索引擎模式的转变,并在转变过程中保持用户效率与当前水平相当吗?

此外,当您考虑为您的域构建矢量搜索块时,请仔细选择相似性度量:余弦度量在排名中倾向于较短的文档,而点积则倾向于较长的文档,因此可能需要这些度量的组合,甚至是动态度量选择过程。这可以追溯到仔细设计整个搜索栈和/或选择搜索供应商。矢量搜索的总体性能是一个尚未解决的问题,所以你需要寻找最适合你的搜索引擎的模型配置,不要太在意大玩家报告的误差幅度。我也可以推荐阅读一些好的调查论文,比如 https://arxiv.org/abs/2106.04554 的文章。对于那些想在十亿规模数据集上练习并了解现有人工神经网络算法的能力和局限性的人来说,作为 NeurIPS 2021 的一部分,有一个出色的大型人工神经网络竞赛宣布。

许多 ML 应用程序在简单的 web 服务后面使用 faiss/airy/NMS lib 进行人工神经网络检索,例如在推荐系统中。这对于简单的应用程序很有效,但是当需要有效的过滤时,你似乎需要跳跃到一个成熟的搜索系统(elastic,vespa 等)。你认为“faiss plus filter”工具有没有用武之地,或者你认为像 vespa 这样的搜索系统带来的额外好处能够弥补它带来的额外复杂性吗

D 不同的供应商提供了不同的构建人工神经网络指数的方法。在 Elasticsearch 世界里,你有两个选择:

  1. 实现 LSH 的 Elastiknn 插件。
  2. 用 HNSW 方法实现堆外图搜索。

Elastiknn 支持使用字段过滤器对结果进行预过滤,如颜色:蓝色。OpenDistro 通过重用 Elasticsearch 熟悉的功能来实现预过滤,比如脚本评分和无痛扩展。顺便说一句,我在以前的博客文章中试验了这两种方法(在开头提到过),并实现了索引和搜索组件来演示这两种实现。

无论您选择哪种方法,您都需要仔细选择超参数,以便在索引速度、召回率和消耗的内存方面获得最佳性能。HNSW 可以很好地扩展到多核架构,它有一系列启发式算法来避免局部极小值,并且它可以构建一个连接良好的图。但是在 Lucene 中为每个段构建一个图在 RAM 和磁盘使用方面可能会变得非常昂贵,所以您应该考虑在服务查询之前将段合并成一个(所以考虑一下为这样的优化分配比纯 BM25 索引更多的时间)。我认为将过滤和人工神经网络结合起来作为搜索的一个单一阶段是一个明智的决定,因为多步检索可能会遭遇速度慢或召回率低或两者兼而有之的问题。此外,当用户预先知道该特定搜索将可能产生非常大量的文档作为回报时,他们可能想要控制文档空间的边界(例如,像工业研究或专利现有技术调查)。

这是一个内容长度“最佳点”吗?密集向量比稀疏向量(普通 tf*idf)有明显优势。

在你的领域专家团队的帮助下,你可以通过更加关注长文档中的内容来解决这个问题。第一段和第二段最重要吗?文档中的特定章节对于特定的信息需求是否重要?如果是的话,让它们被注释掉重要性和语义角色,并加载到多字段倒排索引中,使用 BM25 作为基线。顺便说一下,在衡量搜索质量时,你可以重复使用行业标准,如 DCG@P、NDCG@P、AP @ T——选择合适的评分者来优化搜索质量本身就是一门艺术,但如果你想开始,请前往 Quepid(使用托管的本地部署——纯开源),将其连接到 Solr / Elasticsearch,并开始使用评分查询来了解你当前的搜索质量。相信我,这项投资将会有回报,并产生大量改进的想法,从而使你的搜索引擎更具结构性。这是我今年用 Quepid 为学生做的电影搜索的现场演示:https://www.youtube.com/watch?v=OOYsWn3LWsM&t = 1068s

密集检索有一个 512 个单词的自然限制,超过这个限制,无论是在索引速度方面,还是在一个长文本可以压缩成什么语义方面,该模型的性能都不会很好。“所有的神经方法都有文档长度的限制,因为它们有 512 个单词的限制.”——来自 BEIR 纸业。

在 AMA 会议期间,观众提出了更多的问题。请观看录像,了解更多信息,享受矢量搜索的乐趣!

使用 Haystack 上的长格式问题回答来问维基百科 ELI5 类的问题

原文:https://towardsdatascience.com/ask-wikipedia-eli5-like-questions-using-long-form-question-answering-on-haystack-32cf1ca6c00e?source=collection_archive---------18-----------------------

使用你的文档和 26 行 Python 代码构建一个长形式的问题回答平台

基于自然语言处理的问答系统的最新进展是惊人的。QA 系统建立在最新的语言模型(BERT,RoBERTa 等)之上。)可以相对轻松且精确地回答基于仿真陈述的问题。该任务包括找到包含答案的相关文档段落,并通过扫描正确的单词标记范围来提取答案。

更具挑战性的问答系统涉及所谓的“生成性问答”。这些系统关注于处理这样的问题,其中所提供的上下文段落不仅仅是所提取答案的源标记,而是提供更大的上下文来合成原始答案。

长篇问答动机

就在上周,我在复习度量学习,突然想到它和对比学习有一些相似之处。我当时没有时间去做一次深潜来满足我的好奇心,尽管我很想这样做。一个问答平台,我可以问,“度量学习和对比学习的主要区别是什么?”通过迅速提供一个可靠的、详细的答案,会使这个话题变得迅速而富有成效。

还记得上一次你在谷歌上研究一个特定的主题,进行了几十次查询来寻找相关的网页结果,随后,自己煞费苦心地合成了一个长达一段的答案吗?如果 QA 系统能自动为你做这件事会怎么样?

长格式问题回答(LFQA)系统试图复制和自动化这一艰巨的活动。由于这些 QA 系统相对较新,研究人员在一个公开可用的数据集上为它们训练模型——Eli 5(解释一下,就像我五岁一样)。ELI5 来源于 subred dit/r/explain like im five/,它抓住了综合来自多个网络来源的信息并生成五岁儿童能够理解的答案的挑战。

那么,ELI5 数据集中有哪些问题和答案呢?你可以随意看看 r/explainlikeimfive/ subreddit,或者更好的是,在展会上查看 ELI5 专用的网站

尽管由 Angela Fan、Yacine Jernite 和 Micheal Auli 领导的脸书人工智能研究团队公开发布了 ELI5 数据集和附带的语言模型,但还没有现成的 QA 平台允许用户轻松定制这样的 LFQA 系统。直到现在。

干草堆里的 LFQA

Haystack 是一个端到端的开源框架,使用户能够为各种问答和语义搜索案例构建健壮的生产就绪管道。从 0.9.0 版本开始,Haystack 支持 LFQA 以及之前支持的 QA 和语义搜索场景。

使用 Haystack 创建自己的端到端 LFQA 管道非常简单。Haystack 上的 LFQA 由三个主要模块组成:文档存储、检索器和生成器。让我们更深入地了解这三个模块,以及它们如何适应 LFQA 平台。

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

Haystack 中的 LFQA 组件和问答流程。图片由作者提供。

文档存储

顾名思义,DocumentStore 保存您的文档。Haystack 有几种文档存储解决方案可用于不同的用例。对于 LFQA,我们需要使用一个向量优化的文档存储,其中嵌入的文档向量表示我们的文档。因此,在我们的演示中,我们将使用 FAISSDocumentStore,但我们也可以很容易地使用 Haystack 平台上的任何其他向量优化文档存储,如 Milvus 或最近添加的 Weaviate。

取回的人

在为给定的查询生成答案之前,我们的 QA 系统需要找到支持文档。检索器模块的工作是通过计算查询和文档向量之间的相似性来找到最佳候选文档。为了找到与我们的查询最匹配的文档,我们将使用 Haystack 的密集检索器之一 EmbeddingRetriever。检索器首先通过它的语言模型传递查询,以获得查询嵌入。然后,通过比较嵌入查询和文档存储中嵌入文档向量的点积,我们可以快速找到正确的文档并检索它们。

我们将使用已经可用的名为 Retribert 的 BERT 变体,它专门针对这个查询/文档匹配任务进行了优化。Retribert 语言模型在 HuggingFace 模型中心公开可用,其训练的细节可在这里获得。

发电机

在检索器返回与我们的查询最相关的文档之后,我们就可以将选择的文档输入到基于 ELI5 BART 的模型中,为给定的查询生成答案。ELI5 BART 语言模型也可以在 HuggingFace hub 上使用,它具有由 Haystack 的 Seq2SeqGenerator 实现的 seq2seq(例如机器翻译)架构。

为了从检索器找到的支持文档中生成一个很长的答案,我们将查询和支持文档连接起来,并将其作为输入通过 ELI5 BART 模型。模型的输出是我们生成的答案。关于如何训练 ELI5 模型的更多细节,请参考此文档

LFQA 演示

现在,我们对构建 LFQA 系统所必需的重要组件有了更好的理解,让我们使用 Haystack 来构建和测试它吧!

在本文的其余部分,我们将向您展示如何使用上面提到的现成组件快速创建 LFQA 部署场景。我们将使用 HuggingFace Wiki 片段数据集(来自 100k 维基百科文档的 100 个单词的段落)作为我们 LFQA 系统的源文档。然后我们将使用类似于 ELI5 的问题来查询系统,看看我们会得到什么样的答案。

为了遵循这一部署场景,您可以使用谷歌的合作实验室笔记本进行免费的 GPU 访问。

搭建干草堆

我们将从所需库的 pip 安装开始。在我们的例子中,我们需要的只是草堆和拥抱脸数据集。

初始化文档存储

现在我们已经安装了所需的库及其依赖项,包括 HuggingFace transformers 等等,我们准备初始化我们的 QA 管道。我们将从 FAISSDocumentStore 开始存储我们的文档。

这个一行程序几乎不需要额外的解释。我们将使用 FAISSDocumentStore 的默认风格和“平面”索引。我们需要将 vector_dim 参数初始化为 128,因为我们的 Retribert 语言模型将查询和文档编码成一个 128 维的向量。

将维基百科文档添加到文档存储

在 FAISSDocumentStore 初始化之后,我们将加载并存储我们的维基百科段落。HuggingFace 数据集库提供了一种简单方便的方法来加载像 Wiki 片段这样的大型数据集。例如,Wiki snippets 数据集有超过 1700 万个 Wikipedia 段落,但是我们将流式传输前十万个段落,并将它们存储在 FAISSDocumentStore 中。

现在,让我们对前 100k 个 Wiki 片段进行编写迭代,并将它们保存到我们的 DocumentStore:

现在我们所有的文档都在 FAISSDocumentStore 中,我们需要初始化第二个 Haystack 组件——检索器。对于 LFQA,我们将使用 EmbeddingRetriever,它是用我们简单讨论过的 retriebert-base-un cased 语言模型初始化的。在检索器初始化之后,我们准备计算每个文档的嵌入,并将它们存储在文档存储中。

喝杯咖啡,因为更新 FAISSDocumentStore 中所有维基百科文档的嵌入大约需要 15 分钟。我们可以通过使用专用的 GPU 实例来加速文档嵌入过程,但是,为了演示的目的,即使是 Colab 的 GPU 也可以做得很好。

测试寻回犬

在我们盲目地使用 EmbeddingRetriever 获取文档并将其传递给答案生成器之前,让我们首先对其进行经验测试,以确保示例查询找到相关的文档。我们将使用 Haystack 的预制组件进行文档搜索 DocumentSearchPipeline。当你尝试类似 ELI5 的问题时,不要忘记你只是使用了十万个维基片段中的一小部分。在提问之前,使用下面的管道来确保您想要的主题和文档已经在数据库中。

事实上,DocumentSearchPipeline 确实找到了相关文档:

发电机

LFQA 堆栈中的最后一个组件是生成器。我们将使用 LFQA 的特定模型初始化 Haystack 的通用 seq 2 seq generator——Bart _ Eli 5 模型除了这个模型,我们将使用其他参数的默认初始化值。您可以使用其他 Seq2SeqGenerator 构造函数参数微调文本生成的各个方面。更多细节请参考 Haystack 文档。我们需要做的最后一件事是在一个预定义的 Haystack 管道中连接检索器和生成器 GenerativeQAPipeline。

正如您可能已经猜到的那样,GenerativeQAPipeline 结合了检索器和生成器来为我们的查询生成答案。它代表了与我们构建的 LFQA 系统交互的主要 API。

运行查询

我们将与 GenerativeQAPipeline 进行交互,以获得我们的查询的答案。除了指定查询本身,我们还将对检索器传递给生成器的匹配文档的数量进行限制。这可以是任何数字,但是对于本演示,我们选择将源限制为 4。让我们先问一个类似于 ELI5 的查询:

我们得到以下答案:

🚀🎇这个答案简直令人震惊。它从百慕大单桅帆船的简要说明开始,并继续阐述使其在帆船类别中广受赞誉的特征。

让我们试试另一个:

答案是:

简明扼要。答案不像上一个例子那样详细。但是,我们可以强制模型生成更长的答案。我们需要在 Seq2SeqGenerator 构造函数中传递可选参数 min_length (字数)。

同一问题的新答案是:

太好了,这是我们想要的更详细的答案。随意试验,尝试不同的问题,但不要忘记答案来自我们使用的维基百科的小样本。

ASMNet:一种用于人脸对齐和姿态估计的轻量级深度神经网络

原文:https://towardsdatascience.com/asmnet-a-lightweight-deep-neural-network-for-face-alignment-and-pose-estimation-9e9dfac07094?source=collection_archive---------23-----------------------

本文解释了 ASMNet,这是一个轻量级卷积神经网络(CNN ),用于面部标志点检测(也称为面部对齐)和野外面部姿态估计。

代码和预先训练好的模型可以在 Github 这里获得。你也可以在这里阅读原文。

介绍

面部标志点检测是许多面部图像分析和应用中的基本任务。它对于人脸图像对齐、人脸识别、姿态估计和表情识别至关重要。已经提出了几种方法用于面部标志点检测,例如基于约束局部模型的方法[1,2],AAM [3,4],部分模型[5],以及基于深度学习(DL)的方法[6,7]。尽管基于 DL 的方法被认为是最先进的方法,但是对于具有大姿态变化的人脸,人脸标志点检测仍然具有挑战性。因此,实现高精度的代价是计算复杂性的增加和效率的下降。

此外,包含在特征中的信息分层地分布在整个深度神经网络中。更具体地,虽然较低层包含关于边缘和角的信息,因此更适合于定位任务,例如面部标志点检测和姿态估计,但是较深层包含更适合于分类任务的更抽象的信息。受多任务学习思想的启发,我们设计了我们的 CNN 模型以及相关的损失函数来同时学习多个相关的任务。

最近的方法集中于提高精确度,这通常通过引入新的层、增加参数的数量和更长的推断时间来实现。这些方法在桌面和服务器应用中是准确和成功的,但随着物联网、移动设备和机器人技术的发展,人们越来越需要更准确和高效的算法。

我们提出了一种新的网络结构,它受 MobileNetV2 的启发,专门设计用于面部标志点检测,重点是在不损失太多准确性的情况下使网络变得浅而小。为了实现这个目标,我们提出了一个新的损失函数,它使用 ASM 作为辅助损失,并使用多任务学习来提高准确率。图 1 描绘了我们提出的想法的一般框架。我们用具有挑战性的 300W [8]数据集和野外更宽的面部标志(WFLW) [9]数据集测试了我们提出的方法。我们的实验结果表明,在网络规模比 MobileNetV2 小 2 倍的情况下,面部标志点检测和姿态估计的精度与最先进的方法相当。

ASM 网络

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

图 1: ASM 网络(图片来自作者)

我们设计了一个比 MobileNetV2 [33]小两倍的网络,在参数和 FLOPs 数量方面都是如此。在设计 ASMNet 时,我们只使用 MobileNetV2 [33]的前 15 个块,而主架构有 16 个块。然而,创建一个浅层网络最终会降低系统的最终精度。为了避免这个问题,我们有目的地添加了一些新的层。图 1 显示了 ASMNet 的架构。

除此之外,在 CNN 中,较低层具有诸如边缘和角之类的特征,这些特征更适合于诸如地标定位和姿态估计之类的任务,而较深层包含更适合于诸如图像分类和图像检测之类的任务的更抽象的特征。因此,为相关任务训练网络同时建立了可以提高每个任务的性能的协同作用。

因此,我们设计了一个多任务 CNN 来检测面部标志,同时估计面部的姿态(俯仰、滚动和偏航)。为了使用不同图层的功能,我们创建了块 1-批量-归一化、块 3-批量-归一化、块 6-批量-归一化、块 10-批量-归一化以及最后块 13-批量-归一化的快捷方式。我们使用全局平均池层将这些快捷方式中的每一个连接到 MobileNetV2 的块 15 的输出,块 15-add。最后,我们连接所有的全局平均池层。这种架构使我们能够使用网络不同层中可用的功能,同时保持触发器的数量较少。换句话说,由于最初的 MobileNetV2 是为图像分类任务而设计的,其中需要更抽象的特征,因此它可能不适合面部对齐任务,因为面部对齐任务既需要在较深层中可用的抽象特征,也需要在较低层中可用的特征,例如边缘和拐角。

此外,我们向网络中添加了另一个相关的任务。如图 1 所示,所提出的网络预测 2 个不同的输出:面部标志点(网络的主要输出),以及面部姿态。虽然这两个任务之间的相关性和协同作用可以产生更准确的结果,但我们也希望我们的轻量级 ASMNet 能够预测人脸姿态,以便它可以用于更多的应用程序。

ASM 辅助损失函数

我们首先回顾主动形状模型(ASM)算法,然后解释我们基于 ASM 定制的损失函数,它提高了网络的准确性。

活动形状模型检查

活动形状模型是形状对象的统计模型。每个形状被表示为 n 个点以及 S 集合在等式中定义。1 在以下:

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

为了简化问题和学习形状分量,将主分量分析(PCA)应用于从一组 K 个训练形状样本计算的协方差矩阵。一旦建立了模型,任何训练样本的近似值都可以使用等式计算。2:

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

因此,可变形模型的一组参数由向量 b 定义,从而通过改变向量的元素,改变模型的形状。考虑 b 的第 I 个参数的统计方差(即本征值)为λi,为了保证应用 ASM 后生成的图像与地面真实情况比较接近,通常将向量 b 的参数 bi 限定为 3√λi [7]。此约束确保生成的形状与原始训练集中的形状相似。因此,在应用了这个约束后,我们根据等式创建了一个新的形状
。3:

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

其中 b̃是受约束的 b。我们还根据等式定义 ASM 算子。4:

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

ASM 使用等式将每个输入点(Px i,Py i)转换为新点(Aix,Aiy)。1、2 和 3。

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

图 2:asmlos(图片由作者提供)

ASM 辅助损失

我们描述了两种不同任务的损失函数。这些任务负责面部标志点检测和姿态估计。

人脸标志点检测任务:人脸标志点检测常用的损失函数是均方误差(MSE)。我们提出了一个新的损失函数,它包括 MSE 作为主要损失,以及利用 ASM 提高网络精度的辅助损失,称为 ASM-LOSS。

所提出的 ASM 损失指导网络首先学习面部标志点的平滑分布。换句话说,在训练过程中,损失函数将预测的面部标志点与它们相应的地面实况以及使用 ASM 生成的地面实况的平滑版本进行比较。考虑到这一点,在训练的早期阶段,与主要损失(即 MSE)相比,我们为 ASM 损失设置了更大的权重,因为平滑的面部标志点的变化比原始标志点低得多,并且作为经验法则,更容易被 CNN 学习。然后,通过逐渐降低 ASM-LOSS 的权重,我们引导网络更多地关注原始标志点。在实践中,我们发现这种方法,也可以被认为是迁移学习,效果很好,可以得到更准确的模型。

我们还发现,虽然人脸姿态估计严重依赖于人脸对齐,但它也可以在平滑的人脸标志点的帮助下获得良好的精度。换句话说,如果面部标志点检测任务的性能是可接受的,这意味着网络可以预测面部标志,使得面部的整个形状是正确的,则姿态估计可以达到良好的精度。因此,使用平滑的标志点和使用 ASM-LOSS 的训练网络将导致姿态估计任务的更高精度。

考虑对于训练集中的每个图像,在称为 G 的集合中存在 n 个标志点,使得(Gxi,Gyi)是第 I 个标志点的坐标。类似地,预测集 P 包含 n 个点,使得(Px i,Py i)是第 I 个标志点的预测坐标。

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

我们对训练集应用 PCA 并计算特征向量和特征值。然后,我们计算集合 A,它包含 n 个点,每个点都是 G 中对应点的变换,根据等式应用 ASM 运算符
。4:

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

我们定义主要的面部标志点损失,Eq。7、作为
地面实况(G)和
预测标志点§之间的均方差

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

其中 N 是训练集中图像的总数,Gij = (Gix,Giy)表示训练集中第 j 个样本的第 I 个界标。我们将 ASM 损失计算为 ASM 点(Aset)和预测标志点(Pset)之间的误差,使用等式。8:

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

最后,我们根据等式计算面部标志任务的总损失。9:

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

主成分分析的准确性严重依赖于 ASM 点(Aset),这意味着主成分分析越准确,地面实况(G)和 ASM 点(Aset)之间的差异就越小。更详细地说,通过降低 PCA 的准确度,生成的 ASM 点(Aset)将更类似于平均点集,平均点集是训练集中所有地面真实人脸对象的平均值。因此,预测 Aset 中的点比 Gset 中的点更容易,因为后者的变化低于前者的变化。我们使用这个特征来设计我们的损失函数,使得我们首先引导网络学习平滑的标志点的分布——这更容易学习——并且通过降低 ASM 损失的权重来逐渐硬化问题。我们使用等式将α定义为 ASM-减重。10:

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

其中 I 是历元数,l 是训练历元的总数。如等式所示。9,在训练开始时,α的值较高,这意味着我们更加重视 ASM-LOSS。因此,网络更关注于预测更简单的任务,并且收敛得更快。然后,在总周期的三分之一之后,我们将α减少到 1,并同等重视主要 MSE 损失 ASM 损失。最后,在总时期的三分之二之后,通过将
α减小到 0.5,我们将网络导向预测主要地面事实,同时考虑使用 ASM 作为辅助生成的平滑点。

**姿态估计任务:**我们使用均方差来计算头部姿态估计任务的损失。情商。11 定义了损失函数 Lpose ,其中偏航(yp)、俯仰(pp)和滚转(rp)是预测姿态,而 ytptrt 是相应的地面实况。

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

实施细节

代码可以在 Github 上找到。关于代码的所有文档也是可用的。

安装需求

为了运行代码,您需要安装 python >= 3.5。可以使用以下命令安装运行代码所需的要求和库:

pip install -r requirements.txt

使用预先训练好的模型

您可以使用以下文件中的代码测试和使用预训练模型:https://github.com/aliprf/ASMNet/blob/master/main.py

tester = Test()
  tester.test_model(ds_name=DatasetName.w300,
                     pretrained_model_path='./pre_trained_models/ASMNet/ASM_loss/ASMNet_300W_ASMLoss.h5')

从零开始的培训网络

准备数据

数据需要规范化,以 npy 格式保存。

常设仲裁法院的创建

您可以使用 pca_utility.py 类来创建特征值、特征向量和均值向量:

pca_calc = PCAUtility()
    pca_calc.create_pca_from_npy(dataset_name=DatasetName.w300,
                                 labels_npy_path='./data/w300/normalized_labels/',
                                 pca_percentages=90)

培训

培训实现位于 train.py 类中。您可以使用以下代码开始培训:

trainer = Train(arch=ModelArch.ASMNet,
                    dataset_name=DatasetName.w300,
                    save_path='./',
                    asm_accuracy=90)

结果

ASMNet 可以以非常高的视觉精度执行人脸对齐和姿态估计。样本图片请访问我的 GitHub 或原始论文。

结论

我们提出了 ASMNet,一种轻量级的 CNN 架构,具有多任务学习功能,用于面部标志点检测和姿态估计。我们提出了使用 ASM 辅助的损失函数来提高网络精度。我们使用 MobileNetV2 的一小部分构建了我们的网络(称为 ASMNet)。所提出的 ASMNet 架构比 MobileNetV2 小大约 2 倍,而精度保持在相同的 rat

请将此作品引用为:

@inproceedings{fard2021asmnet,
        title={ASMNet: A Lightweight Deep Neural Network for Face Alignment and Pose Estimation},
        author={Fard, Ali Pourramezan and Abdollahi, Hojjat and Mahoor, Mohammad},
        booktitle={Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition},
        pages={1521--1530},
        year={2021}
  }

参考

[1] A. Asthana、S. Zafeiriou、S. Cheng 和 M. Pantic。约束局部模型的鲁棒判别响应图拟合。IEEE 计算机视觉和模式识别会议论文集,第 3444–3451 页,2013 年。

[2] D. Cristinacce 和 T. F. Cootes。约束局部模型下的特征检测和跟踪。在 Bmvc,第 1 卷,第 3 页。Citeseer,2006 年。

[3]库茨、爱德华兹和泰勒。主动外观模型。在欧洲计算机视觉会议上,第 484-498 页。斯普林格,1998 年。

[4]马丁斯、卡塞罗和巴蒂斯塔。通过 2.5 维主动外观模型的生成式人脸对齐。计算机视觉和图像理解,117(3):250–268,2013。

[5] X .朱和 d .拉马南。人脸检测、姿态估计、
和野外地标定位。2012 年 IEEE 计算机视觉和模式识别会议,2879-2886 页,2012 年 6 月。

[6]张俊杰、单绍良、简明和陈。用于实时人脸对齐的粗到细自动编码器网络(cfan)。在欧洲计算机视觉会议上,第 1-16 页。斯普林格,2014。

[7]张志军、罗培平、李春春和唐晓明。基于深度多任务学习的人脸标志点检测。在欧洲计算机视觉会议上,第 94-108 页。斯普林格,2014。

[8] C .萨戈纳斯、G. Tzimiropoulos、S. Zafeiriou 和 M. Pantic。野外 300 张脸挑战:第一次面部标志定位挑战。IEEE 计算机视觉研讨会国际会议论文集,397–403 页,2013 年。

[9]吴文伟、钱春弦、杨树国、王庆、蔡玉英和周庆。一种边界感知的人脸对齐算法。IEEE 计算机视觉和模式识别会议论文集,第 2129-2138 页,2018 年。

基于特征的文档相似度的变换器

原文:https://towardsdatascience.com/aspect-based-document-similarity-using-transformers-8a2f820e5692?source=collection_archive---------22-----------------------

NLP 研究论文解释

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

在这篇博客中,我试图根据我的理解,使用变形金刚 来总结论文 中基于方面的文档相似度。请随时评论你的想法!

问题陈述

当前的文档相似性技术主要集中在比较文档,而没有考虑它们固有的文档结构。这种相似性技术被称为方面无关的相似性。这里,similarity 函数只返回一个介于 0–1 之间的值,用来衡量两个文档之间的相似程度,这多少有点像一个无法解释的相似性黑盒。此外,这可能会限制像推荐系统这样的应用程序的性能,这些应用程序主要依赖于文档相似性作为基础。例如,您可能希望设计一个推荐系统,仅基于“方法论”或“数据集”部分返回与现有论文相似的论文,这里的相似性通常被认为是多方面的,而当前的相似性系统无法捕捉这种粒度。

本文正是以此为目标,将与方面无关的相似性扩展到基于方面的相似性。为了结合方面的概念,他们将测量相似性的任务建模为成对的文档分类任务。此外,他们使用 Transformer 模型,如 RoBERTaBERT 变体,在来自 ACLCORD-19 的研究论文数据集上执行和评估他们的方法。

下图显示了与方面无关和基于方面的相似性的图示视图—

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

图片来自来源

在上图中,给定一个种子文档,基于某些距离度量,如欧几里德距离、余弦距离等,无特征相似性返回 k 近邻。然而,基于方面的相似性方法将只返回那些对于某些方面 (a1) 相似的文档,导致低假阳性

如果你想继续享受阅读与数据科学和机器学习相关的精彩文章的乐趣,你可以通过我的推荐链接:)购买中级会员资格

提议的方法

他们将整个问题建模为多类多标签分类问题。在本节中,我们将介绍数据集准备和模型训练方面——

数据集准备

在这项任务中,从研究论文中获取人工注释的数据成本很高,如果可能的话,可能仅限于少量数据。因此,作者通过将引用视为训练信号来继续并自动化这一过程,即如果任何两篇论文之间存在引用,我们认为这些论文是相似的。此外,为了合并节级别信息*(方面),他们选择引用其他文档的种子文档的节的标题作为类标签。例如,在下图中,种子文档引用了介绍和讨论部分下的目标文档。因此,我们将种子和目标作为带有标签介绍和讨论的文档对。因此,分类类型在本质上将是**多类(因为多个标题)以及多标签(同一篇论文在不同章节下的多次引用)*** 。

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

使用引用信号的数据注释|图片来自来源

现在,由于对一个章节可以采用什么样的标题没有特定的标准,作者有意识地对某些章节标题进行标准化、分组和划分,以获得所有论文的固定标题集,他们还将离群值或无法识别的章节放在“其他”类别中。下图显示了 ACL *(左)CORD-19(右)*纸张的标签分布-

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

ACL 和 CORD-19 数据集的标签分布|图片来自来源

此外,除了只有正信号样本之外,他们还引入了一个名为“ None 的新类,它在相同的比例下充当我们正样本的负对应 。他们将一组论文归入这一类别的一般经验法则是,论文首先不应该是正对的,不应该一起被共同引用,不应该共享任何作者,并且不应该在同一地点发表

在所有这些步骤和转换之后,我们已经准备好了数据集!

模特培训

为了训练相似性模型,作者从 seed 和其他研究论文中提取论文标题和摘要,并将其视为整个文档的代理。提取后,它们用 cls分隔符标记连接这些片段,形成一个大序列。这然后被馈送到变换器模型,并且在输出端,它们在 CLS 表示法上堆叠一个分类层,并且用交叉熵损失 作为罚信号来对照地面真相中存在的标签训练模型。下图显示的是同一— 的图示

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

模型训练|图片来自来源

如果你愿意,你也可以查看我写的其他研究论文摘要。

所以,是的,这就是我的博客。我有一个同样的多语种字幕视频漫游,如果你喜欢消费视频内容而不是文本(就像我一样:D),一定要看看—

多看看这样的视频

请随意阅读整篇论文,并向作者问好,感谢他们的贡献。

论文标题: 基于方面的文档相似度使用变形金刚

论文链接:https://www.aclweb.org/anthology/2020.coling-main.545.pdf

作者: 马尔特·奥斯坦多夫、特里·鲁斯、蒂尔·布卢姆、贝拉·吉普、格奥尔格·雷姆

我希望你喜欢读这篇文章。如果你愿意支持我成为一名作家,可以考虑注册成为一名媒体成员。每月只需 5 美元,你就可以无限制地使用 Medium。

感谢您的宝贵时间!❤

使用 Spacy & TextBlob 的基于方面的情感分析

原文:https://towardsdatascience.com/aspect-based-sentiment-analysis-using-spacy-textblob-4c8de3e0d2b9?source=collection_archive---------1-----------------------

评估特定主题或属性的情感

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

NLP 最常见的目标之一是分析文本和提取见解。你可以找到无数关于如何进行情感分析的教程,但是通常使用的方法并不总是足够的。

当你说出这样一句话时。

We had some amazing food yesterday. But the next day was very boring.

一个逐句的情感分析算法会产生类似这样的结果。

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

但是有时候你希望你的情感分析是基于方面的,或者叫做基于主题的。

在本文中,我们将构建一个非常简单的基于方面的情感分析,它能够提取一般概念并理解它们周围的情感。在我们之前的示例中,这意味着类似于:

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

在这种情况下,方面或主题是食物。通过执行基于方面的情感分析,我们分析大量文本并提取见解。

例如,如果您监控客户评论或电话记录,您可以寻找附加了一些情感的方面,并提取关于如何改进的见解。

对于本文,我们将使用 spacy(Python 中的自然语言处理库)和 Textblob,text blob 提供了用于情感分析和文本处理的简单工具。

# We get started by importing spacy
**import** spacy
nlp = spacy.load("en_core_web_sm")

如果你还没有,你需要通过执行python -m spacy download en_core_web_sm来下载en_core_web_sm

我们也来定义几个简单的测试句子。

sentences = [
  'The food we had yesterday was delicious',
  'My time in Italy was very enjoyable',
  'I found the meal to be tasty',
  'The internet was slow.',
  'Our experience was suboptimal'
]

我们的第一个目标是以某种方式拆分我们的句子,以便我们有目标方面(例如,食物)和他们的情感描述(例如,美味)。

**for** sentence **in** sentences:
  doc = nlp(sentence)
  **for** token **in** doc:
    print(token.text, token.dep_, token.head.text, token.head.pos_,
      token.pos_,[child for child in token.children])

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

由于 spacy 的依存解析和 POS(词性)标签,我们可以看到句子中每个标记的依存关系。我们也注意到了孩子的标记,这样我们就可以选择像“非常”、“相当”等强化词。

**免责声明:**我们目前过于简单的算法可能无法提取语义上的重要信息,如“不太好”中的“不”。这在实际应用中至关重要。

让我们先看看如何挑选情感描述。

**for** sentence **in** sentences:
  doc = nlp(sentence)
  descriptive_term = ''
  **for** token **in** doc:
    **if** token.pos_ == 'ADJ':
      descriptive_term = token
  print(sentence)
  print(descriptive_term)

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

你可以看到,我们的简单算法选择了所有的描述性形容词,如美味、愉快和可口。但是现在缺少的是强化词,比如“very”。

**for** sentence **in** sentences:
  doc = nlp(sentence)
  descriptive_term = ''
  **for** token **in** doc:
    **if** token.pos_ == 'ADJ':
      prepend = ''
      **for** child **in** token.children:
        **if** child.pos_ != 'ADV':
          **continue** prepend += child.text + ' '
      descriptive_term = prepend + token.text
  print(sentence)
  print(descriptive_term)

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

正如你所看到的,这一次我们也非常愉快地学习了。我们的简单算法能够识别副词。它检查每个形容词的子代标记,并挑选出诸如“非常”、“相当”等副词。

在常规场景中,我们还需要捕捉诸如“不”之类的否定,但这超出了本文的范围。但是如果你愿意的话,我们鼓励你练习并在之后做得更好。

我们现在准备识别被描述的目标。

aspects = []
**for** sentence **in** sentences:
  doc = nlp(sentence)
  descriptive_term = ''
  target = ''
  **for** token **in** doc:
    **if** token.dep_ == 'nsubj' **and** token.pos_ == 'NOUN':
      target = token.text
    **if** token.pos_ == 'ADJ':
      prepend = ''
      **for** child **in** token.children:
        **if** child.pos_ != 'ADV':
          **continue** prepend += child.text + ' '
      descriptive_term = prepend + token.text aspects.append({'aspect': target,
    'description': descriptive_term})
print(aspects)

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

现在我们的解决方案开始看起来更完整了。我们能够挑选方面,即使我们的应用程序事先不“知道”任何事情。我们还没有对“食物”、“时间”或“用餐”等方面进行硬编码。我们也没有硬编码诸如“美味”、“缓慢”或“愉快”这样的形容词。

我们的应用程序根据我们设置的简单规则来选择它们。

有时候,你可能想先找到主题,然后在文本中识别它们,而忽略那些不常见的主题或方面。为此,在进入解决方案的情感分析部分之前,你需要在主题建模上工作。有一个关于数据科学的很好的指南,解释了潜在的狄利克雷分配,你可以用它来进行主题建模。

既然我们成功地提取了方面和描述,是时候将它们分类为正面或负面了。这里的目标是帮助计算机理解美味的食物是积极的,而慢速互联网是消极的。计算机不懂英语,所以在我们找到可行的解决方案之前,我们需要做一些尝试。

我们将从使用默认的 TextBlob 情感分析开始。

**from** textblob **import** TextBlob
**for** aspect **in** aspects:
  aspect['sentiment'] = TextBlob(aspect['description']).sentiment
print(aspects)

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

TextBlob 是一个提供开箱即用的情感分析的库。它有一个单词袋方法,这意味着它有一个单词列表,如“好”、“坏”和“很好”,这些单词都附有一个情感分数。它还能够挑选出影响情绪得分的修饰语(如“不”)和强化词(如“非常”)。

如果我们看看我们的结果,我可以说它看起来绝对不差!我同意他们所有人的观点,但唯一的问题是美味和次优被认为是中性的。似乎它们不是 TextBlob 的字典的一部分,因此,它们没有被选中。

另一个潜在的问题是,一些描述性术语或形容词在某些情况下可能是正面的,而在其他情况下可能是负面的,这取决于它们所描述的单词。TextBlob 使用的默认算法无法知道寒冷的天气可以是中性的,冷食可以是阴性的,而冷饮可以是阳性的。

好的一面是,TextBlob 允许你使用一个非常简单的语法来训练一个 NaiveBayesClassifier,这个语法对任何人来说都很容易理解,我们将使用它来改进我们的情感分析。

为了能够使用它,您需要执行以下命令来下载所需的语料库:python -m textblob.download_corpora

**from** textblob.classifiers **import** NaiveBayesClassifier
# We train the NaivesBayesClassifier
train = [
  ('Slow internet.', 'negative'),
  ('Delicious food', 'positive'),
  ('Suboptimal experience', 'negative'),
  ('Very enjoyable time', 'positive'),
  ('delicious food.', 'neg')
]cl = NaiveBayesClassifier(train)# And then we try to classify some sample sentences.
blob = TextBlob("Delicious food. Very Slow internet. Suboptimal experience. Enjoyable food.", classifier=cl)**for** s **in** blob.sentences:
  print(s)
  print(s.classify())

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

正如你所看到的,我们传递的句子并不完全是我们在训练示例中使用的,但它仍然能够正确地预测所有短语的情绪。

您可以使用这个解决方案作为更复杂的基于方面的情感分析解决方案的起点。要做到这一点,您需要改进依赖项解析过程,以提取更准确的信息和更多类型的数据。一个很好的方法是使用 spacy 的 DependencyMatcher ,它允许你使用自定义规则匹配模式。

至于情感分析部分,理想情况下,您希望标记大量数据,以便可以创建更高级的分类器,具有更高的准确度。你可以使用 kerasTensorFlow 或其他机器学习库和工具来执行大量的二元(或分类)分类。

如果你有预先标记的数据,那会很有帮助。如果你不同意,你可以使用 TextBlob 这样的简单工具创建一个初始分析,然后你可以选择是否同意 TextBlob,而不是决定每个短语的情感,这比从头开始决定情感要快得多。

我真的很感激任何进一步的评论,因为它可以帮助我创建一个更先进的后续文章。感谢您阅读至此!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值