首页
友情链接
Search
1
代码实践|通过简单代码来回顾卷积块的历史
483 阅读
2
点亮新基建数字版图——大湾区数据中心巡展即日开启
432 阅读
3
D3.js新手到专家:使用D3.js进行交互式可视化的完整学习路径
408 阅读
4
如何为学习,实验和教学生成有意义的人造数据集?
380 阅读
5
t检验用不了?别慌,还有神奇的非参数检验
364 阅读
分类阅读
数据可视化
商业智能
大数据技术
数据挖掘
数据分析
统计学
大数据
人工智能
软件工具
外文翻译
人物观点
行业资讯
登录
Search
标签搜索
大数据
数据可视化
统计学
数据分析
机器学习
统计基础
R语言
统计知识
数据图表
商业智能
Python
机器算法学习
算法学习
数据可视化工具
数据百科
ggplot
人工智能
深度学习
数据挖掘
BI
商业数据分析网
累计撰写
492
篇文章
累计收到
0
条评论
首页
栏目
分类阅读
数据可视化
商业智能
大数据技术
数据挖掘
数据分析
统计学
大数据
人工智能
软件工具
外文翻译
人物观点
行业资讯
页面
友情链接
搜索到
34
篇与
机器学习
的结果
2020-05-12
你是否真的需要机器学习?
作者 | Caleb Kaiser译者 | 盖磊策划 | 李冬梅文中内容并非是从理论上去探讨哪些问题可以通过机器学习解决,而是意在帮助那些没有数据科学家的团队理解应用机器学习是否真的有效。机器学习当前处境微妙。机器学习的可行性已得到充分证明,几乎所有最受欢迎的移动应用都或多或少使用了该项技术,从中可见一斑。但这一生态系统尚未完全成熟到任何一位初学者都可以迅速应用自如的程度。对于团队而言,决定何时引入机器学习技术并非易事,尤其是对于缺少数据科学家的团队。尽管软件工程人员通常对机器学习具有更高层次的理解,但他们一般缺少领域知识,难以判定自己所面对的问题是否适用机器学习解决。文中内容并非从理论上去探讨讲哪些问题可以通过机器学习解决,而是意在帮助那些没有数据科学家的团队理解应用机器学习是否会有效。是否有其他人使用机器学习解决了类似问题如果团队中没有任何经验丰富的机器学习工程师或数据科学家,那么是很难回答“是否有可能通过机器学习来解决某个问题?”如果团队中缺少数据科学家,应该怎么办?自身成为机器学习专家。这样你可以自己分析问题,判定机器学习解决方案的可行性。聘用机器学习专家,完成上述工作。调研是否有其他人用机器学习解决了类似的问题。前两个选项耗精力耗财力,而后者可能只需花一天时间搜索一下。相关调研的好处,就是有助于确定工作的着手点。鉴于团队中没有数据科学家,不太可能针对问题设计出适用的模型架构。例如,如果需要构建一个客户支持代理,那么可以去了解一下其他公司的做法。当然,你一定会涉及到 Rasa 和 Google Meena。了解使用哪些模型和方法解决了类似的问题,有助于团队明确工作的着手点。例如,工程师 Robert Lucian 构建了一款得到广泛使用的个性化车牌读取器。Lucian 的解决方案就是依赖于一些已有的目标检测和文本提取模型。Lucian 在在文章中提及,他只是调研了其他人在类似领域中正在使用的方法,进而着手实现了自己项目中的机器学习部分。他最终找到了那些专门针对车牌而调优的模型,及用于文本提取的有效模型。这样,他很快将两者加入到生产环境中。是否具有相关的数据来源除非你的问题使用原始预训练模型解决了,否则模型都需要使用相关数据进行训练。例如,构建一个推荐系统引擎,需要用户资料属性以及浏览习惯等数据。而构建一款客户支持代理,则需要文档手册进行训练。为使模型适用于特定领域,需要使用相应领域数据进行训练。但是,训练数据不必是自己具有的。即便并没有做复杂的用户数据收集,也可借助于一些公开可用的数据。例如,数月前开始流行的文本类冒险游戏“AI Dungeon”,就是基于机器学习构建的。尽管游戏开发工程师 Nick Walton 只通过从 choiceyourstory.com 上抓取 50 MB 的文本做模型调优,但该游戏仍可以与当前最先进的模型相媲美。其成功应归功于迁移学习,该技术将模型的“知识”(该游戏中使用了 OpenAI 的 GPT-2)迁移到新的模型,并使用很小的数据集对更特定领域做了调优,例如游戏中的地牢探索者的故事情景。机器学习的成效是否优于其他解决方案在很多情况下,机器学习只是一种可工作的工具,但并非最优的工具。如果机器学习并不能提供比其它解决方案明显的优点,那么就不值得为此付出额外的开销。对此问题的分析,可借助于下列几个基本考量:首先,除机器学习外,是否还有其它解决方案?对于语音识别、计算机视觉等许多应用,机器学习目前是最适用的解决方案。其次, 其它解决方案是否能复现机器学习的预测质量?例如,在建立一个推荐系统中,如果收集的用户数据不多,并且只有 100 条博客帖子可供推荐,那么使用基本的标签系统就完全可以。如果用户喜欢 Javascript,那么就向用户展示所有具有“Javascript”标签的文章:但是,如果策划构建一个庞大的内容库,并且其中管理了大量的用户数据,那么机器学习对于实现个性化推荐的作用是独一无二的。第三,其他解决方法是否具有机器学习那样的可扩展性?机器学习的主要承诺之一,就是其灵活性足以消除那些传统上需要人工干预的流程中的人力参与。例如,库存管理是一个非常繁杂的工作,产品通常信息不完整,列出方式也不一致,导致经常需要手动处理。在产品数量不多的情况下,人工处理完全可以取代机器学习。但是对于大量的产品,人工做比对是不现实的。例如,处理一百万种产品,需要很多人花费大量时间。而 Glisten 等产品使用机器学习分析产品数据,可快速完成此类工作:何时何处适用机器学习事实上,尽管机器学习有着诸多优越性,但却往往应用在许多毫无意义的场景中。这导致许多人普遍对机器学习持怀疑态度,“不过又是一轮炒作而已”。现实情况是,就像其它所有广为使用的技术一样,机器学习只是在某些情况下的理想解决方案,而并不适用于所有情况。项目上手时,最难的就是判定该项目是否需要使用机器学习,尤其是对于缺乏该领域经验的团队,希望本文能对正处于迷茫中的团队有所助益。如果读者对如何在生产环境中使用机器学习感兴趣,欢迎访问 Cortex 示例代码库。Cortex 项目地址: https://github.com/cortexlabs/cortex/tree/master/examples 声明:本文内容基于作者本人对机器学习团队的观察,而非对整个行业的学术综述。本文作者是 Cortex 的贡献者之一。Cortex 是一款用于机器学习模型在生产环境部署的开源平台。原文链接: https://towardsdatascience.com/should-you-really-use-machine-learning-for-that-d781a80aa0fb 本文为专栏文章,来自:AI前线,内容观点不代表本站立场,如若转载请联系专栏作者 。
2020年05月12日
220 阅读
0 评论
0 点赞
2020-04-07
12个现实世界中的机器学习真相
作者:Delip编译:ronghuaiyang导读当你在现实世界中工作时,有几个事实是你必须面对的,这也是本文的主要内容。上个月,我在一个亲密的朋友聚会上做了一个非正式的演讲,我把这个题目记下来。这篇文章主要是写给那些使用机器学习来构造东西的人,而不是那些研究机器学习的人,尽管后一组人会很好地倾听这些真理并反省他们的工作。0. 你不是一个科学家是的,虽然你们的 title 是“科学家”,包括你们所有拥有博士学位的人,以及涉足这个行业的学者。但是,机器学习(以及其他人工智能应用领域,如 NLP、视觉、语音……)是一门工程研究学科(与科学研究相对)。你会问,科学研究和工程研究有什么区别?George A. Hazelrigg 在他的“HONING YOUR PROPOSAL WRITING SKILLS”中写道:一些科学家会学习如何制定研究计划。很少有工程师是博士级别的工程师。让我们先试着理解科学研究和工程研究之间的区别。对我来说,区别很明显。科学家力图了解大自然的本质,以了解其根本的本质。为了做到这一点,科学家通常剥离无关的影响,深入到一个非常狭窄的自然元素。这就是我们所说的自然法则:能量和质量是一样的,每一个作用力都有一个大小相等、方向相反的反作用力,依此类推。有许多自然法则,它们随时随地都适用。工程师遵循自然法则。他们别无选择。他们的目标是设计出在自然允许的范围内工作的东西。要做到这一点,他们必须能够预测系统的行为。所以工程师们面临的一个大问题是,我们如何理解和预测一个系统的行为,在这个系统中,所有的自然法则在任何时候都适用于任何地方。这是一个整合的问题,它就像找到一开始的规律一样困难。每时每刻把所有的自然规律都考虑进去是不可能的。因此,工程师必须找到方法来确定哪些定律是重要的,哪些可以忽略,以及如何近似那些在时间和空间上都很重要的定律。工程师不仅仅是预测未来。他们做出的决定部分是基于他们的预测,因为他们知道自己的预测不可能既准确又确定。理解和应用数学也很重要。这包括概率论、决策理论、博弈论、最优化、控制理论和其他数学在工程决策环境中的应用。这也是一个合理的工程研究领域。作为 ML 的研究人员和实践者,你必须考虑你拥有的数据的正确模型,而不是你拥有的模型的正确数据集(就像许多研究论文一样)。如果你曾经问过“这个模型的正确数据集是什么”,那么你并不是在现实世界中。到底什么是真实的世界?在现实世界中,你对要处理的数据是没有选择的。在这里,数据定义了问题,而不是相反。有时,在现实世界中,ML 实践者创建了一个自己的世界作为他们的建模游乐场,从而假装他们是“科学家”,例如“发明”一种用于做 NLP 的语言,或者通过简化假设来创建封闭的环境来强化学习。这些研究得出了有趣的结果,但它们的范围仅限于它们所来自的世界,即使研究人员喜欢在论文中把它们当作适用于现实世界的东西来兜售。在现实世界中,输入的分布更有可能发生变化,长尾的“curve balls”不知从何而来,你并不总是有答案。当你在现实世界中工作时,有几个事实是你必须面对的,这也是本文的主要内容。但这个开场白是必不可少的。如果你在现实世界中做 ML 研究,你是工程师而不是科学家。1. 需要可以工作虽然这听起来很简单,但我很惊讶有多少人,不管是新手还是有经验的人,都被一些听起来很花哨的名字吸引住了,或者因为一些东西来自 DeepMind、OpenAI、斯坦福大学、麻省理工学院等等。如果你的模型确实只能够在它们的环境和资源约束下处理他们的数据集和,那么现实世界将无情地拒绝它。arXiv 上的许多结果只能在少数数据集上工作,或者只能在只有谷歌基础设施支持的百兆级 gpu 上工作。帮社区一个忙,不要再发布那些一般性的结果了。它必须能工作。这也是为什么我们今天不考虑在没有卷积神经网络的计算机视觉中做任何事情,或者为什么我们很容易在序列模型中使用注意力的原因。它必须要能工作。推测:这么多人,特别是 ML 的新手,被花哨的模型名称冲昏了头脑,迫不及待地想要尝试它们,或者写关于它们的博客帖子,等等。我觉得这就像一个初学写作的人。他们认为使用华丽的词语会使他们的写作更好,但经验会告诉他们其他的。2. 无论你如何努力,无论你的优先级是什么,你都不能提高光速缓存层次结构已经是固定的,你必须在这个前提下工作,网络开销会让分布式训练变慢,在向量中只能塞入那么多内容,等等。3. 只要有足够的推力,猪就能飞得很高,然而,这并不一定是一个好主意一个研究生或大型的超参数扫描器可以在一个巨大的数据中心中可以找到一组超参数,可以让非常复杂的模型工作得很好,甚至产生优秀的结果。但没有人在现实世界中调试那么大的模型。我在帮助公司管理他们的 ML 团队时发现了一个秘密 — 大多数人不知道/不关心超参数调优。4. 生活中的一些事情,除非亲身经历过,否则永远不会被完全欣赏或理解对于既不构建生产 ML 模型也不维护它们的人来说,机器学习中的某些东西是永远无法完全理解的。再多的课件,再多的 mooc,再多的 Kaggling,都无法让你为此做好准备。没有什么可以替代部署模型、观察用户与模型的交互、处理代码/模型分解等等。5. 总是有可能将多个独立的问题聚合成一个复杂的相互依赖的解决方案,在大多数情况下,这是一个坏主意端到端学习在理论上听起来是一个好主意,但是对于大多数部署场景,分段优化的管道架构将继续存在。这并不意味着我们将完全没有端到端系统(语音识别和机器翻译有很好的端到端生产价值解决方案),但在大多数情况下,具有可观察的调试路径将胜过其他选择。6. 把一个问题转移到别处,甚至是忽略它,都比解决它要容易得多例如,在语音方面,声学建模是困难的,但是你可以让网络在解决不同问题(例如语音识别)的方法中找出这些细节。在 NLP 中,很难进行正确的解析。但值得庆幸的是,对于 99%的现实任务,我们可以不进行解析。推论:除非迫不得已,否则不要解决问题。7. 你总是要在一些事情上做权衡速度 vs 内存,电池寿命 vs 准确性,公平性 vs 准确性,易于实现 vs 可维护性,……8. 一切都比你想象的复杂与购物时的价格冲击类似,工作中也有“努力冲击”。大多数经验丰富的研究人员和工程师都经历过“努力冲击”,要么是因为他们低估了处理大型数据集的工程问题,要么是因为他们低估了正在与之搏斗的领域的复杂性,要么是因为他们低估了对手。大多数论文让读者读起来觉得事情很简单,而忽略了这背后是经过了几百万次失败才有的成功。因此,论文不是研究,而是做研究的结果。因为这个原因,你永远可能通过阅读论文来体验做研究的过程。9. 你永远都会是准备不足这可以和第 8 点结合起来,事实上任何远程调用的成功的模型如果没有适当的计划,都可能由于自身的成功而崩溃。10. 一个尺码不可能适合所有人,你的模型会一直犯令人尴尬的错误,尽管你的出发点是好的角落案例和长尾失败模式将困扰你。值得庆幸的是,对于许多非关键的 ML 部署来说,这并不是什么大问题。最坏的情况下,它会成为一条搞笑的推文。但是,如果你在医疗保健或其他高风险情况下工作,ML 部署将因此成为一场噩梦。11. 每一个旧的想法都会以不同的名字和不同的形式被再次提出,不管它是否有效Schimdhuber 可能提出了一个更大的观点。没有人听他的,像他一样,我们把旧酒重新装进新瓶子,被迫重复错误的历史。12. 达到完美不是因为没有什么可以补充的,而是因为没有什么可以去掉的生活中的每件事都是如此,现实世界中的机器学习也是如此。唉,我们的会议回顾了他们对“新颖性”的嗜好,产生了不想要的 arxi -spam,其中包含了大量本来就不需要存在的垃圾。除非做“科学”能够鼓励宣传什么是有效的,而不是什么是新的,否则我不认为这种情况会改变。英文原文:http://deliprao.com/archives/227本文为专栏文章,来自:AI公园,内容观点不代表本站立场,如若转载请联系专栏作者 。
2020年04月07日
119 阅读
0 评论
0 点赞
2019-10-26
Andrew NG的书“Machine Learning Yearning”中的6个重要的概念
作者:Niklas Donges编译:ronghuaiyang导读吴恩达的新书“Machine Learning Yearning”,大家看过了吗?没看过也没关系,给大家介绍一下书中的6个重要概念!Machine Learning Yearning是关于机器学习项目发展的结构化书。这本书以一种易于与队友和合作者分享的形式,包含了在别处很难找到的实用见解。大多数人工智能课程会向你解释不同的ML算法是如何工作的,但这本书教你如何实际使用它们。如果你希望成为人工智能领域的技术领导者,这本书会在你的道路上帮助你。从历史上看,学习如何对人工智能项目做出战略决策的唯一途径是参加研究生项目或获得在公司工作的经验。Machine Learning Yearning帮助你快速获得这项技能,这使你能够更好地构建复杂的人工智能系统。关于作者Andrew NG是一名计算机科学家、高管、投资者、企业家,也是人工智能领域的顶尖专家之一。他是百度的前副总裁兼首席科学家,斯坦福大学(Stanford University)兼职教授,最受欢迎的机器学习在线课程之一的创造者,Coursera.com的联合创始人,谷歌Brain的前负责人。在百度,他积极参与将他们的人工智能团队扩大到数千人。介绍这本书以一个小故事开头。想象一下,你想建立一家领先的cat检测系统公司。你已经构建了一个原型,但不幸的是,你的系统的性能不是很好。你的团队提出了一些关于如何改进系统的想法,但是你不知道应该遵循哪个方向。你可能会构建世界领先的cat检测器平台,也可能在错误的方向上浪费几个月的时间。这本书告诉你如何在这样的情况下做出决定并分清轻重缓急。根据Andrew NG的说法,大多数机器学习的问题都会给你留下一些线索,告诉你下一步应该做什么,以及你应该避免做什么。他继续解释说,学习“阅读”这些线索是我们这个领域的一项关键技能。简而言之,ML Yearning会让你对机器学习项目的技术方向设置有一个深刻的理解由于你的团队成员在你提出新想法时可能会持怀疑态度,所以他将章节做得非常短(1-2页),以便你的团队成员能够在几分钟内阅读它,以理解概念背后的思想。如果你对这本书感兴趣,请注意它不适合完全的初学者,因为它要求你对监督学习和深度学习有基本的了解。在这篇文章中,我将用我自己的语言来分享这本书的六个概念。概念1:迭代,迭代,迭代…NG在整本书中强调,快速迭代非常重要,因为机器学习是一个迭代过程。不要考虑如何为你的问题构建完美的ML系统,你应该尽快构建一个简单的原型。如果你不是该问题领域的专家,这一点尤其正确,因为很难正确猜测最有希望的方向。你应该在几天内构建第一个原型,然后就会出现一些线索,向你展示改进原型性能的最有希望的方向。在下一个迭代中,你将基于这些线索之一改进系统并构建它的下一个版本。你会一次又一次地这样做。他继续解释说,迭代越快,取得的进展就越大。这本书的其他概念,建立在这个原则之上。请注意,这是为那些只想构建基于人工智能的应用而不是在该领域进行研究的人设计的。概念2:使用单个评估指标这个概念建立在前一个概念的基础上,关于为什么应该选择单个评估指标的解释非常简单:它使你能够快速评估算法,因此能够更快地迭代。使用多个评估指标只会增加比较算法的难度。假设有两种算法。前者的准确率为94%,召回率为89%。第二种方法的准确率为88%,召回率为95%。在这里,如果你没有选择一个单独的评估指标,那么没有一个分类器是明显优于它的,因此你可能需要花费一些时间来计算它。问题是,你在每次迭代中都会为这个任务损失大量的时间,而且从长期来看,这些时间会累积起来。你将尝试很多关于架构、参数、特性等的想法。如果你使用的是单数字评估指标(如精度或f1评分),那么它使你能够根据模型的性能对其进行排序,并快速决定哪个模型工作得最好。改进评估过程的另一种方法是将多个指标组合成单个指标,例如,平均多个错误指标。然而,ML问题需要满足多个指标,例如:考虑运行时间。NG解释说,你应该定义一个“可接受的”运行时间,这使你能够快速地对太慢的算法进行排序,并基于你的单个评估指标来比较令人满意的算法。简而言之,单个评估指标使你能够快速评估算法,从而更快地迭代。概念3:错误分析非常重要错误分析是查看算法输出不正确的样本的过程。例如,假设你的猫检测器将鸟类误认为猫,你已经对如何解决这个问题有了一些想法。通过适当的错误分析,你可以估计一个改进的想法实际上会增加系统的性能多少,而不需要花费几个月的时间来实现这个想法,然后意识到它对你的系统并不重要。这使你能够决定在哪些想法上最好地使用你的资源。如果你发现错误分类的图像中只有9%是鸟类,那么你的算法对鸟类图像的性能提高了多少并不重要,因为它不会提高超过9%的错误。此外,它使你能够快速判断并行改进的几个想法。你只需要创建一个电子表格,并在检查的时候填写一下。比如说,有100个错误分类的图像,在电子表格上,为每一个分类错误的图像创建一行,为每一个需要改进的想法创建一列。然后你仔细检查每一张分类错误的图片,然后看看哪个想法可以对这张图片正确分类,并做上标记。此外,一旦你开始查看这些样本,你可能会发现如何改进算法的新思路。概念4:定义一个最优的错误率最佳错误率有助于指导你的下一步工作。在统计学中,它也常被称为贝叶斯错误率。想象一下,你正在构建一个语音到文本的系统,你发现19%的音频文件,你希望用户提交的,都有占主导地位的背景噪音,甚至人类都无法识别里面说了什么。如果是这样的话,你知道即使是最好的系统也可能会有大约19%的错误。相反,如果你处理的问题的最佳错误率接近0%,那么你可以希望你的系统也能做到这一点。它还可以帮助你检测你的算法是否受到高偏差或方差的影响,从而帮助你定义改进算法的下一步步骤。但我们怎么知道最佳错误率是多少呢?对于人类擅长的任务,你可以将系统的性能与人类的性能进行比较,从而获得最佳错误率的估计值。在其他情况下,通常很难定义最佳错误率,这就是为什么你应该研究人类能够很好地解决问题的原因,我们将在下一个概念中讨论这些问题。概念5:做那些人类可以做好的事情在整本书中,他多次解释了为什么建议研究人类可以自己解决的机器学习问题。例如语音识别、图像分类、目标检测等。这有几个原因。首先,它更容易获得或创建一个带标签的数据集,因为如果人们能够自己解决问题,那么为你的学习算法提供高精度的标签是非常简单的。其次,你可以使用人工性能作为你希望通过算法达到的最佳错误率。NG解释说,定义了合理且可实现的最佳错误率有助于加快团队的进度。它还可以帮助你检测算法是否存在高偏差或方差。第三,它可以让你根据自己的直觉进行错误分析。例如,如果你正在构建一个语音识别系统,而你的模型对其输入进行了错误分类,那么你可以尝试了解人类将使用哪些信息来获得正确的转换,并使用这些信息来相应地修改学习算法。虽然算法在越来越多的人类无法完成的任务上超越了人类,但是你应该尽量避免这些问题。总而言之,你应该避免这些任务,因为它使你更难获得数据的标签,你不能再依靠人类的直觉,而且很难知道最佳错误率是多少。概念6:如何划分你的数据集NG还提出了一种拆分数据集的方法。他建议如下:Train Set:用它训练你的算法,没别的用。Dev Set:该集合用于进行超参数调优、选择和创建适当的特征以及进行错误分析。它基本上是用来决定你的算法的。Test Set:测试集用于评估系统的性能,但不用于决策。它只是用来评估的,没有别的。开发集和测试集允许你的团队快速评估算法的执行情况。它们的目的是指导你对系统进行最重要的更改。他建议选择开发和测试集,它们可以反映出你需要做好的数据是什么样的,这些数据就是未来你的系统部署的时候用的。如果你希望数据与你现在正在训练的数据有所不同,那么这一点尤其正确。例如,你正在使用普通相机图像进行训练,但稍后你的系统将只接收手机拍摄的照片,因为它是移动应用程序的一部分。如果你无法访问足够的手机照片来训练你的系统,可能会出现这种情况。因此,你应该选择能够反映你希望在以后的实际工作中表现良好的测试集样本,而不是你用于训练的数据。另外,你应该选择来自相同发行版的开发集和测试集。否则,你的团队可能会构建在开发集上做得很好的东西,却发现在你最关心的测试数据上执行得非常差。总结在这篇文章中,你已经了解了Machine Learning Yearning的6个概念。现在你知道了为什么快速迭代很重要,为什么应该使用单个评估指标,错误分析是什么,以及为什么它很重要。此外,你还了解了最佳错误率、为什么应该处理人类能够很好解决的问题以及应该如何分割数据。此外,你还了解到应该选择开发和测试数据集,以便它们能够反映你希望在将来很好地处理的数据,并且开发和测试集应该来自相同的分布。我希望这篇文章给你介绍了这本书的一些概念,我可以肯定地说它值得一读。英文原文:https://towardsdatascience.com/6-concepts-of-andrew-ngs-book-machine-learning-yearning-abaf510579d4本文为专栏文章,来自:AI公园,内容观点不代表本站立场,如若转载请联系专栏作者 。
2019年10月26日
222 阅读
0 评论
0 点赞
2019-10-22
Word2Vec揭秘: 这是深度学习中的一小步,却是NLP中的巨大跨越
作者:Suvro Banerjee编译:ronghuaiyang导读做NLP现在离不开词向量,词向量给了我们一个非常好的单词的向量表示,用一个有限长度的向量,可以表示出所有的词,还可以表示出词与词之间的上下文相互关系,是不是很神奇?那么,这么神奇的东西到底是怎么来的呢?今天的这篇文章会一点一点给大家说清楚。虽然有一点公式,但是总体上还是非常通俗易懂的,来看看吧。让我们通过推理,举例和数学来揭秘word2vec介绍Word2Vec模型用于学习被称为“词嵌入”的词的向量表示。这通常是作为预处理步骤来完成的,在此之后,学习到的向量被输入判别模型(通常是RNN)来生成预测,完成各种各样有趣的事情。为什么学习词嵌入Why learn word embeddings图像和音频处理系统使用丰富的高维数据集,对于图像数据,这些数据编码成为单个像素的强度组成的向量,因此所有信息都编码在数据中,从而可以建立系统中各种实体(猫和狗)之间的关系。但是,在自然语言处理系统中,传统上它将单词视为离散的原子符号,因此“cat”可以表示为Id537,“dog”表示为Id143。这些编码是任意的,并且不向系统提供关于可能存在于各个符号之间的关系的有用信息。这意味着该模型在处理关于“狗”的数据(比如它们都是动物、四条腿、宠物等等)时,能够利用的关于“猫”的知识非常少。将单词表示为惟一的、离散的id还会导致数据稀疏,这通常意味着我们可能需要更多的数据才能成功地训练统计模型。使用向量表示可以克服其中一些障碍。举个例子:传统的自然语言处理方法涉及到语言学本身的许多领域知识。理解像音素和语素这样的术语是相当标准的,因为有整个语言课程专门用于他们的研究。让我们看看传统的NLP是如何理解以下单词的。假设我们的目标是收集关于这个词的一些信息(描述它的情感,找到它的定义,等等)。利用我们的语言领域知识,我们可以把这个词分成三个部分。我们知道前缀un表示相反或相反的意思,我们知道ed可以指定单词的时间段(过去时)。通过识别词干“兴趣”的含义,我们可以很容易地推导出整个词的定义和感情。看起来很简单,对吧?然而,当你考虑英语中所有不同的前缀和后缀时,需要非常熟练的语言学家来理解所有可能的组合和含义。深层学习,在最基本的层面上,是关于表征学习的。在这里,我们将采用相同的方法,通过大型数据集创建单词的表示。词向量我们将每个单词表示为d维向量。我们用d = 6。从这个句子中,我们想为每个单词创建一个单词向量。现在我们来考虑如何填充这些值。我们希望以这样一种方式填充值,即向量以某种方式表示单词及其上下文、含义或语义。一种方法是创建一个共现矩阵。共现矩阵是一个矩阵,它包含出现在语料库(或训练集)中所有其他单词旁边的每个单词的计数。让我们把这个矩阵可视化。 注意,通过这个简单的矩阵,我们可以获得非常有用的见解。例如,请注意,单词“love”和“like”都包含1,表示它们与名词(NLP和dogs)的计数,它们的“I”的计数也是1,这意味着单词必须是某种动词。有了比一个句子更大的数据集,您可以想象这种相似性将变得更加清晰,因为“like”、“love”和其他同义词将开始具有类似的单词向量,因为它们在类似的上下文中使用。现在,尽管这是一个很好的起点,我们注意到每个单词的维度会随着语料库的大小线性增加。如果我们有一百万个单词(在NLP标准中不是很多),我们就会有一个百万×百万大小的矩阵,这个矩阵非常稀疏(很多0)。在存储效率方面肯定不是最好的。在寻找最优的方法来表示这些词向量方面已经取得了许多进展。其中最著名的是Word2Vec。过去的方法向量空间模型(VSMs)在一个连续的向量空间中表示(嵌入)单词,在这个空间中,语义相似的单词映射成的点相互靠近(“彼此嵌入到附近”)。VSMs在NLP中有着悠久而丰富的历史,但所有的方法都或多或少地依赖于分布假设,即出现在相同上下文中的词具有相同的语义。利用这一原则的不同方法可分为两类: 基于计数的方法(如潜在语义分析) 预测方法(如神经概率语言模型) 区别是:基于计数的方法计算某个单词在大型文本语料库中与相邻单词共出现的频率,然后将这些计数统计信息映射成每个单词的小而密集的向量。预测模型直接试图通过学习小的、密集的嵌入向量(考虑模型的参数)来预测相邻单词。Word2vec是一种从原始文本中学习嵌入词的高效预测模型。它有两种风格,连续的词袋模型(CBOW)和跳格模型。从算法上来说,这些模型是相似的,CBOW从源上下文词预测目标词,而skip-gram则相反,从目标词预测源上下文词。在接下来的讨论中,我们将重点讨论skip-gram模型。其中的数学神经概率语言模型使用极大似然原理进行传统的训练,给定前一个单词h(表示“历史”),使用softmax函数表示下一个单词wt(表示“目标”)的概率,并使得整个概率最大化。其中score(wt, h)计算目标词wt与上下文h的兼容性(通常使用点积)。我们通过在训练集中最大化它的对数似然来训练这个模型:这为语言建模提供了一个适当规范化的概率模型。同样的参数也可以用一个稍微不同的公式来表示,它清楚地显示了选择变量(或参数),这个变量是为了最大化这个目标而改变的。我们的目标是找到对预测当前单词周围单词有用的词表示。特别是,我们希望最大化整个语料库的平均对数概率:这个方程本质上是说,在当前单词wt上,大小为c 的窗口内,观察某个特定单词的概率p。这个概率取决于当前单词wt和某个参数theta的设置(由我们的模型决定)。我们希望设置这些参数theta,使这个概率在整个语料库中最大化。基本参数化:Softmax模型基本的skip-gram模型通过softmax函数定义了概率p,正如我们前面看到的那样。如果我们认为wi是一个独热编码向量,维数是N,theta是维数为N * K的嵌入矩阵在我们的词汇表中有N个单词而我们学出来的嵌入表示的维数是K,那么我们可以定义:值得注意的是,在学习完了之后,矩阵theta可以被认为是一个嵌入查找表矩阵。在结构上,它是一个简单的三层神经网络。 以3层神经网络为例。(1个输入层+ 1个隐藏层+ 1个输出层) 喂它一个词,训练它预测它的邻接词。 删除最后一层(输出层),保留输入层和隐藏层。 现在,从词汇表中输入一个单词。在隐藏层给出的输出是输入词的“词嵌入”。 这种参数化有一个主要缺点,限制了它在非常大的公司的情况下的有用性。具体来说,我们注意到为了计算模型的单个前向传递,我们必须对整个语料库词汇表进行求和,以便计算softmax函数。在大型数据集上,这是非常昂贵的,因此为了计算效率,我们寻求该模型的替代近似。提高计算效率对于word2vec中的特征学习,我们不需要一个完整的概率模型。CBOW和skip-gram模型使用二元分类目标(逻辑回归)进行训练,以便在相同的上下文中从k个虚构的(噪声)词~w中区分出真实的目标词(wt)。从数学上看,目标(对于每个样本)是进行最大化当模型将高概率赋给真实的词,低概率赋给噪声词时,该目标达到了最大化。从技术上讲,这被称为负采样,它提出的更新在极限上近似于softmax函数的更新。但从计算上来说,它特别有吸引力,因为计算损失函数现在只根据我们选择的(k)噪声词的数量进行缩放,而不是根据词汇表(V)中的所有词进行缩放,这使得训练速度快得多。像Tensorflow这样的包使用了一个非常类似的损失函数,称为噪声对比估计(NCE)损失。Skip-gram模型中的直觉作为一个例子,我考虑这样的数据集:the quick brown fox jumped over the lazy dog我们首先形成一个词的数据集和它们出现的上下文。现在,让我们继续使用普通的定义,并将“上下文”定义为目标词的左边和右边的单词窗口。使用窗口大小为1,我们就得到了(上下文、目标)对的数据集。([the, brown], quick), ([quick, fox], brown), ([brown, jumped], fox), ...回想一下,skip-gram颠倒了上下文和目标,试图从目标词中预测每个上下文词,因此任务变成了从“quick”中预测“the”和“brown”、从“brown”中预测“quick”和“fox”中预测,等等。因此,我们的数据集将(输入,输出)对变为:(quick, the), (quick, brown), (brown, quick), (brown, fox), ...目标函数是在整个数据集上定义的,但是我们通常使用随机梯度下降(SGD),一次使用一个样本(或batch_size个样本的“批量”,其中通常有16 <= batch_size <= 512)来优化它。我们来看看这个过程的一个步骤。让我们想象在训练步骤中,我们观察上面的第一个训练案例,目标是从quick中预测the。我们从一些噪声分布中选择num_noise个噪声(对比)样本,通常是unigram分布(unigram假定每个单词的出现独立于所有其他单词的出现。例如,我们可以把生成过程看作是掷骰子的序列),P(w)为了简单起见,我们假设num_noise=1,并选择sheep作为一个噪声示例。接下来,我们计算这一对观测到样本对以及噪声样本的损失,即目标在时间步’ t ‘变成了:我们的目标是更新嵌入参数theta,使这个目标函数最大化。我们通过推导关于嵌入参数的损失的梯度来实现这一点。然后,我们在渐变方向上迈出一小步,对嵌入进行更新。当这个过程在整个训练集中重复进行时,就会产生“移动”每个单词的嵌入向量的效果,直到模型成功地从噪声词中识别出真实词为止。我们可以把学过的向量投影到二维空间来形象化。当我们观察这些可视化时,很明显,这些向量捕获了一些关于单词及其相互关系的一般的、实际上非常有用的语义信息。原文链接:https://medium.com/explore-artificial-intelligence/word2vec-a-baby-step-in-deep-learning-but-a-giant-leap-towards-natural-language-processing-40fe4e8602ba本文为专栏文章,来自:AI公园,内容观点不代表本站立场,如若转载请联系专栏作者 。
2019年10月22日
112 阅读
0 评论
0 点赞
2019-09-21
《Gartner2019年BI及分析平台魔力象限》的深入解读
日前,Gartner发布了2019年度的BI商业智能和分析平台魔力象限报告(《Magic Quadrant for Analytics and Business Intelligence Platforms》),引发了BI行业的极大关注。在本报告里,Gartner预测了2020年BI行业的发展趋势,定义了现代型BI的5个评选用例及15大功能,并给出了入选魔力象限的厂商,可谓几家欢乐几家愁。帆软数据应用研究院一直专注于BI行业的研究探索,积极推动国内BI行业的发展及企业BI项目的成功落地,所以解读本报告当仁不让,以帮助从业者更好的理解权威报告。一、魔力象限的定义以及厂商变化魔力象限是Gartner用于分析行业中厂商的一个工具,包含领导者、挑战值、有远见者和特定领域者四个象限,依据Gartner预先定义的一些标准来划分,具体如下图。所谓“执行力”,包含产品与服务的整体可行性、销售执行力与定价、市场状况、营销团队的执行、客户体验以及公司的整体运营,其实质是揭示企业在市场的成功度。所谓“前瞻性”,即愿景的完整性,包含市场理解、产品战略、营销战略、商业模式、产品的定位和创新性,其实质是解释企业在业内的领先度。在2019年Gartner的商业智能及分析平台魔力象限中,Microsoft、Tableau、Qlikview继续高居领导者位置,令人意外的是杀入了黑马ThoughtSpot,打破了上述三者连续3年垄断领导者的局面。SAS、SAP依据处于有远见者象限,Oracle也连续三年处于特定领域者象限,当然坐标位置都有所变化。但IBM退步明显,已然是连续三年倒退了,现在已经从有远见者后退到特定领域者。也有从魔力象限中退出的,如Pyamid Analytics等,他们在中国并不知名,或并未进入国内市场,笔者也不详细罗列了。我们结合历年的BI魔力象限(从2016年至2019年),来综合分析,如下图所示。笔者发现几个有趣的现象。1、挑战者象限的厂商数目最少,仅2018年、2019年有1个,且位置较低,大都集中在有远见者、特定领域者象限,这反映出企业的领先度决定市场地位。走向领导者象限的企业,也都是沿着“特定领域者→有远见者→领导者”这样路径上升,Microsoft、ThoughtSpot均是如此。2、厂商逐渐聚集在魔力象限的对角线位置,观察2016年与2019年的对比尤为明显,这一现象表明,在互联网与大数据时代,产品好才是硬道理,市场地位是和产品质量成正比的。3、特定领域者的厂商的位置逐渐提升,就好似整体提升了一级。越来越多的厂商经营状况有所改善,整体行业趋好,这得益于市场对现代化BI的认可。4、虽然个别厂商仍然具有较大的领先优势,但并非遥不可及。有远见者象限的厂商都聚集在顶部位置,距离领导者已近在咫尺,未来会有越来越多的产品晋升至领导者象限。二、2020年BI产品发展趋势Gartner对2020年BI产品发展趋势做了5个方面的预判。1、到2020年,增强分析将成为新用户购买BI产品、数据科学和机器学习平台、以及嵌入式分析的主要驱动力。2、到2020年,有50%的分析查询会通过搜索、自然语言处理或语音生成,或者自动生成。3、到2020年,为用户提供对内部和外部数据策划目录的访问权限的组织将从分析投资中获得两倍的业务价值。4、到2020年,业务部门的数据和分析专家数量的增速将是IT部门专家的3倍,这会迫使企业重新考虑其组织模式和技能。5、到2021年,自然语言处理和会话分析这两个功能,会在新用户、特别是一线工作人员中,将分析和商业智能产品的使用率从35%提升到50%以上。笔者结合2017年Gartner报告的预判描述(也是对2020年的展望),发现以下3个重点。1、增强分析不仅仅是现代型BI和分析平台的一个重要功能组件,更是未来吸引新用户的重要卖点。增强分析主要是指以机器学习为基础的数据分析和BI功能,包含智能数据发现、增强数据准备、增强数据分析这些模块。增强分析的底层理念是“简单易用”,必须能够支撑用户在没有专业知识背景下,完成数据的“收集-准备-整合和分析”全过程。2、有50%的数据分析会通过现代型BI来实现,Gartner并未调整这一数据。就如同Gartner提出的Model1与Model2模型那样,可以预见,报告型BI将与现代型BI(一般现代型BI并不能很好的响应Model1的需求,需要与报告型BI的上下搭配,这也是为什么国际BI具体在国内市场上并未取得成功的重要原因)长期共存。3、人人都是数据分析师的情况在不断增强。Gartner从原来的“非职业的数据分析师VS职业的数据分析师”改为“业务部门的数据分析师VS IT部门的数据分析师”,更清晰的描述了人人都是数据分析师这一美好未来,在现代型BI和分析平台的帮助下,会有越来越多的人加入数据分析师的大军,数据分析也将成为职场中如同微软办公三件套那样的必备技能。虽然Gartner描绘了BI产品的未来蓝图,甚至明确了时间点和关键数据,但是我们必须要认清中外的BI发展不同步的现实,无论是厂商还是最终用户,都要从理性上看待此BI魔力象限报告。我国商业智能BI的企业需求、关注点、市场特征、发展阶段均与国外不同,自然语言搜索、语音生成、自动生成等增强分析功能,在国内还上处于概念阶段,并未形成规模化市场。所以尤其是厂商,不能盲从,为了所谓的“赶上行业步伐”,完全忽略用户的实际需求和场景价值,并用这些不可用的噱头赚取眼球,这不仅自欺欺人,更是搬石头砸自己的脚,白白浪费有限的企业资源。三、5个用例和15个关键功能Gartner定义了现代型BI的基本特征,即5个典型用例及15个关键功能,见下表。它们在历年BI魔力象限的报告中变化很小,是各BI厂商是入选魔力象限的一个门槛,更是BI厂商衡量自身产品的重要参考标准。各功能的详细定义,可查阅Gartner报告原文,这里仅就一些不清晰的功能点进行说明。1、“云BI:具有平台即服务和分析应用即服务的能力,可以同时在云端和本地部署、使用和管理数据分析报告和数据分析应用。”放眼以美国为代表的国际IT市场,云端化确实是大势所趋,且已经形成了规模市场,但是中国市场云BI的发展并不乐观,进退维谷,很多云BI产品都不温不火,有的云BI企业甚至转型做某个行业私有云的解决方案。这主要是因为,国内的数据环境相对封闭,企业的关键数据仍然绝大多数存在于私有部署的系统中,数据安全也有很多挑战。没有数据,云BI如同无源之水无本之木,自然难以成熟,所以私有部署将在很长时间内占据主流。中国市场的云BI发光点可能在于业务集中在SAAS云平台系统中的中小型用户,这个有待市场验证。2、“数据准备:平台可拖拽不同来源的用户数据集,可生成分析模型,比如根据不同数据来源的用户可自定义度量、组合、集合和层级。高级功能包括对不同来源的数据通过机器学习、语义识别、智能联结、 智能侧写、层级生成、数据行数和数据混合等进行分析处理。” 这是指用户通过自助数据集,可以将元数据进行自定义处理,为后续的分析提前做准备,其中包括指标(度量),字段组合等,维度分不同层级(最常见的省、市、县)后续可以进行钻取分析。高级功能中支持更多的操作,数据join、union,层级自动生成,数据公式等等操作。3、“内置的高级分析功能:让用户可以非常方便地接入高级分析功能,在自有平台或者通过引入、结合外部高级模型进行分析。”这是结合外部的分析模型,比如通过支持R或者Phyton等接入成熟的算法,将BI中的数据导入其中,进行更复杂的分析。4、“分析仪表盘:通过视觉探索和内置的高级地理空间分析能力去生成能够被其他人使用的高交互性的仪表盘和内容。”所谓高级地理空间分析能力,说的就是地图的分析展示能力,可以通过经纬度分析,地理信息分析。数据地图可以分为区域地图、组合地图、标记点地图、单层地图 、自定义图片地图、流向地图、热力地图等。当前主流地图的主流技术是基于GIS底层,支持自定义的WMS服务,也可以实现地图离线。一般数据地图功能常用于大屏数据可视化,炫酷又不失实用。纵观以上5大用例、15个关键功能,在国内用户更为认可的则是自助数据准备、分析仪表板、可交互的视觉化探索、嵌入式分析、分析内容的发布共享和协作这几大功能,这也是国内厂商未来不断角力的重点领域。而移动端数据探索,以及未提到的自然语言识别、人工智能分析等,由于大多还处在技术炒作周期的泡沫期,且缺乏完整的、强烈的、有价值的使用场景,真正投入实用还要等待很长一段时间。四、中国厂商何时能入象限中每谈到这个话题,笔者与帆软数据应用研究院的同事们都无尽感慨,中国本土的BI和分析平台提供商,林林总总有几十家,大者如帆软在2018年已经取得了4.62亿的销售额,遥遥领先于其他厂商,难道都没有机会进入么? 或者,何时才能进入象限中,走向世界驰名。所以,笔者研究了入选GartnerBI魔力象限的标准,具体如下:1、收入要求。软件销售额(永久许可lic销售额+SAAS订阅模式的销售额+技术支持费用)达到2500万美元,折合人民币1.7亿元;或达到1500万美元但同比增长为50%,或达到1000万美元,或同比增长100%。2、市场状况。主要是反映品牌知名度和影响力,主要通过互联网搜索量、互联网话题量、招聘信息、趋势分析、社交媒体的品牌活跃度来衡量。3、积极参与调研。厂商需要积极配合Gartner的调研,完成衡量关键能力的RFP式调查问卷,提供市场影响力、企业历年营收及增长率、市场战略、差异化定位、竞争策略的详细问卷,并提交长达1小时的视频,来演示产品。4、市场广度。厂商需要展示主营业务的所在行业,以及地理区域的广度,比如是否覆盖多个行业,或已经实现国际业务。5、产品评估。结合5大用例以及15大功能,来最终衡量产品是否领先,是否有足够清晰的发展规划。可以看到,对中国厂商的挑战主要有两个,一是收入要求,二是产品评估。但长远来看,进入魔力象限也只是时间问题,短则两年,长则五年。首先,随着国内BI行业的不断成熟(当前BI行业的增速是IT业的2倍,GDP增速的4倍),BI整体盘子变大,即便有马太效应的不断加强,但大多数厂商还是能享受到BI行业增长的红利的。尤其是帆软,当她的销售额突破10个亿,甚至跻身中国软件企业100强的时候,就已经成为国际BI行业中一个不可忽视的力量,必然会引起诸多研究机构的重视。其次,产品的先进性方面,由于需求环境的不同,确实难以迅速赶上,但随着Gartner对中国市场的深入研究,必然会调研和尊重中国有特色的市场需求,重视各厂商在BI行业的判断和探索投入,认同中国BI行业的发展方向。届时,中国厂商也不用亦步亦趋跟随欧美,是可与欧美共同谋划BI行业蓝图。还或者,Gartner在充分考虑到中外发展的差异,推出亚太版的BI魔力象限也是有一定可能的。本文为专栏文章,来自:帆软软件,内容观点不代表本站立场,如若转载请联系专栏作者 。
2019年09月21日
121 阅读
0 评论
0 点赞
1
2
...
7