北大AI第八讲 李航 自然语言处理的现实与挑战

自然语言处理的十个发展趋势 记者 | 优快云 苏靖芝7 月22 - 23 日,由中国人工智能学会、阿里巴巴集团 & 蚂蚁金服主办,优快云、中国科学院自动化研究所承办的第三届中国人工智能大会(CCAI 2017)在杭州国际会议中心盛大开幕。本次大会的第一场分论坛讨论是关于语言智能领域的八大问题。讨论期间,哈尔滨工业大学刘挺教授对自然语言处理的发展趋势做了一次精彩的归纳,他把这里的趋势分成了十个方面:趋势1:语义表示... 阅读详情

视频地址
课程介绍
“人工智能前沿与产业趋势”课程由北京大学开设,并面向公众开放。课程由人工智能创新中心主任雷鸣老师主持,共14节,每节课邀请一位人工智能领域顶级专家和行业大咖作为主讲嘉宾,就人工智能和一个具体行业的结合深度探讨,分析相应技术的发展,如何影响产业,现状及未来趋势、对应挑战和与机遇。所有课程相关信息、通知都会在下方的公众号发布(在视频中有)。

对于自然语言理解,有两种定义。第一种是计算机能够将所说的语言映射到计算机内部表示;另一种是基于行为的,你说了一句话,计算机做出了相应行为,就认为计算机理解了自然语言。后者的定义,更广为采用。

为什么自然语言理解很难?其本质原因是语言是一种复杂的现象。自然语言有5个重要特点,使得计算机实现自然语言处理很困难:

  • 语言是不完全有规律的,规律是错综复杂的。有一定的规律,也有很多例外。因为语言是经过上万年的时间发明的,这一过程类似于建立维基百科。因此,一定会出现功能冗余、逻辑不一致等现象。但是语言依旧有一定的规律,若不遵循一定的规范,交流会比较困难;
  • 语言是可以组合的。语言的重要特点是能够将词语组合起来形成句子,能够组成复杂的语言表达;
  • 语言是一个开放的集合。我们可以任意地发明创造一些新的表达。比如,微信中“潜水”的表达就是一种比喻。一旦形成之后,大家都会使用,形成固定说法。语言本质的发明创造就是通过比喻扩展出来的;
  • 语言需要联系到实践知识;
  • 语言的使用要基于环境。在人与人之间的互动中被使用。如果在外语的语言环境里去学习外语,人们就会学习得非常快,理解得非常深。

这些现象都说明,在计算机里去实现与人一样的语言使用能力是一件非常具有挑战性的事情。首先,语言的不完全规律性和组合性,就意味着如果在目前的计算机上去实现,会产生组合爆炸;还有,如果需要语言做比喻,去联系到实践环境,就意味着要做全局的、穷举的计算。如果通过现代计算机来做,非常复杂,几乎不太可能。所以,如果想让计算机像人一样使用语言,原理上需要完全不同的、与人脑更接近的计算机体系架构。

其本质原因是,目前在计算机上去实现东西一定需要数学模型。换句话说,计算机能够做的事情要通过数学形式化。但是,到目前为止,语言的使用还不清楚是否能够用数学模型去刻画。人工智能的终极挑战就是自然语言理解。现实当中,不能因为自然语言理解非常困难就放弃。我们还是希望能够使计算机越来越智能化,能够部分使用语言。因此,就形成了所谓自然语言处理这一领域。我们叫自然语言处理,而不是自然语言理解,因为真正的理解是太难了。

自然语言处理做的第一件事情就是把问题简化。比如,知识问答中,问姚明身高是多少?朋友告诉你是2米26。这是人与人之间的知识问答。那么,这其中有哪些步骤呢?首先是听,然后去理解问题,然后去做一定的推理,然后再去做信息检索,最后判断怎么去做回答,整个过程相当复杂。我们现在做自然语言处理时,也做这种知识问答,包括有名的IBM的Watson,其整个步骤也是简化了自然语言处理的过程。一般而言,就是这几个步骤,先分析一下问句,接着去检索相关的知识或者信息,然后产生答案。

目前,所有的自然语言处理的问题都可以分类成为五大统计自然语言处理的方法或者模型,即分类、匹配、翻译、结构预测,马尔可夫决策过程。各种各样的自然语言处理的应用,都可以模型化为这五大基本问题,基本能够涵盖自然语言处理相当一部分或者大部分的技术。主要采用统计机器学习的方法来解决。第一是分类,就是你给我一个字符串,我给你一个标签,这个字符串可以是一个文本,一句话或者其他的自然语言单元;其次是匹配,两个字符串,两句话或者两段文章去做一个匹配,判断这两个字符串的相关度是多少;第三就是翻译,即更广义的翻译或者转换,把一个字符串转换成另外一个字符串;第四是结构预测,即找到字符串里面的一定结构;第五是马可夫决策过程,在处理一些事情的时候有很多状态,基于现在的状态,来决定采取什么样的行动,然后去判断下一个状态。我们也可以采用这样的模型,去刻画自然语言处理的一些任务。

  • 分类主要有文本分类和情感分类,匹配主要有搜索、问题回答、对话(主要是单轮对话);翻译主要有机器翻译,语音识别,手写识别,单轮对话;结构预测主要有专门识别,词性标注,句法分析,文本的语义分析;马可夫决策过程可以用于多轮对话。我们可以看到,自然语言处理里面有很多任务,在现实中我们已经开始使用最基本这五种最基本的模型它都去可以去刻画的。
  • 语言处理,在一定程度上需要考虑技术上界和性能下界的关系。现在的自然语言处理,最本质是用数据驱动的方法去模拟人,通过人工智能闭环去逼近人的语言使用能力。但是,这种技术并没有真正实现人的语言理解机制。可能会有这样的情况,这个技术的准确率(绿线)画了一个上界。比如,语音识别的上届是95%,我们希望不断把这个技术做好,比如通过人工智能闭环,更好的深度学习方法,从而使得上界不断提高。但是,不可能一下子达到百分之百对,或者达到完全与人一样的水平。每个应用,对于下界的要求是不一样的。比如,在葡萄牙问路,对方也不会英语,我也不会葡萄牙语,交流非常困难,在这种环境下我其实就是听懂几个单词,让机器翻译给我翻译几个单词就行了,对性能的要求其实是比较低的,不需要去翻译一大段话。我们可以看到,不同的应用,用户对使用性能的要求不同,如果下界达到这个水平,用户就用了。再比如互联网搜索中排序第一的准确率不高,60%多-70%多,大家往往觉得,互联网搜索引擎已经达到要求了。当然因为搜索的时候,通过排序展示给用户多个结果,用户可以去逐个去看,一定程度上解决一些问题,这时候对性能要求下界相对就比较低。如果,现在的技术上届达到了用户要求的下界,就能够使用。所以,哪些自然语言处理的技术未来能够起飞,能够真正实用化,就可以通过这种关系来看。还是要看具体的应用的场景。在一些特定场景下,准确率达到99%都不行。我们相信,自然语言处理的技术会不断提高,但是是不是都能够达到我们每一个应用要求的性能的下界,就不好说了,要看未来的发展了。这是自然语言处理技术整个发展情况。

下面,给大家一起看一下我们自然语言处理领域里面都有哪些技术,有代表性的技术都大概达到什么样的水平,都是什么样的一些基础。假设大家对深度学习有一定的了解,如果这方面的知识还不够也没关系,过后你可以去再去看书看论文,去了解一些相关的技术情况。

刚才,我介绍到站在一个很抽象的角度来看,自然语言处理就是五个问题。如果用各种方法包括深度学习把这五个问题做好了,就能够把自然语言做得很好。现实当中,我们就是通过深度学习,达到自然语言处理技术比较好的水平。

首先,问答系统有很多,包括 IBM 的 Watson 也是一个问答系统,有大量的知识或者信息放在知识库。典型的办法就是把问答用FAQ索引起来,与搜索引擎相似,如果来了一个新问题,有一大堆已经索引好的FAQ,然后去做一个检索(字符上的匹配),之后逐个去做匹配,判断问句与回答的匹配如何。往往匹配的模型有多个,再去将候补做一个排序,把最有可能的答案排在前面,往往就取第一个作为答案返回给用户。

这里面牵扯到几个技术,我们在在线的时候要做匹配和排序,现在最先进的技术都是用机器学习,用深度学习技术。就是把问句和回答的可能的候选,用向量来表示,问句的每一个单词都可以用向量来表示。每一个词的语义都可以用一个实数值向量赖表示,问句和候补都是实数值向量的序列。然后,用一个二维的卷积神经网络来判断两句话在语义上是不是相关,候选是否是很好的答案。通过二维卷积神经网络,可以判断两句话里面哪一些词语、词组是可以相互对应,最后可以做一个判断这两句话是不是相关的。整个模型的学习通过大量的数据、句对,去训练。如果卷积神经网络的参数学好,就可以判断任何给定的两句话是不是能够构成一轮问答。

这样的模型不仅仅可以用到文本问答(知识问答)上,也可以用到图像检索上面。给大家演示一个demo。

这种模型,可以跨模态的把文本和图片联系起来。在深度学习技术出现之前的话,这件事情是不可能的。因为他们是不同的模态。一个是符号表示的信息,一个是像素表示的信息,那么我们可以用深度学习的模型去做这种跨模态的匹配。比如,左边有一个卷积神经网络,他能够抽出左边图片的语意表示,表示成一个向量;右边也是一个卷积神经网络,能够把一段文字的内容抽取出来,表示成为一个向量,还有一个网络判断这两个向量在语义上是否能够匹配。这个模型可以通过大量的数据去训练。假设每一个照片有3到5个人给出描述。我们用大量这样的数据就可以学这样的神经网络,神经网络可以帮助我们,就是说任何给定的一句话,要去查找一个图片的内容,它就可以在这个图片库里帮你去匹配到最相关的图片,给你返回来。这个技术也是在深度学习出现之前应用的,因为我们不知道怎样把图片和文字匹配到一起。有了深度学习技术,我们可以做这样的事情。

自然语言对话是用另外一种技术,用生成式的模型去做自然语言对话。大量的聊天系统是这么做的,输入一句话,里面准备了大量的FAQ,搜索到一个最相关的回答,反馈给你。这叫做基于检索的自然语言问答系统。

我们这里看到是一种产生式,经过大量数据训练之后,输入一句话系统自动的产生一个回复,理论上产生出无穷多的不同的回复。下面先看一个实际系统的录像。

这个系统,我们在微博上爬了四百万的微博数据,微博数据可以看作是一种简单的单轮对话。我们用400万数据训练了这样一个系统能够去自动产生对话。(系统演示)

理论上它可以回答任何你输入的对话。用400万的微博数据就可以训练这样一个模型。系统产生一句话的比例是96%,真正形成一个有意义的单轮对话的比例是76%左右。这个系统的一大特点是,可以回答没有见过的一句话。

第二个特点是能够记住训练数据。发现深度网络有一个共同的特点就是能够记住训练数据,同时也有去泛化的能力,能针对未知的新见到的东西去自动组织出一句话,并返回给你。这种能力很令人惊叹,是否实用并不清楚。在一个很固定的场景里,比如话务中心,如果话务员跟客户之间的交互都是简单的重复,大量的类似数据可以构建一个产生自动的回复系统,而且跟人的回复非常接近。

大家如果熟悉深度学习的话,刚才说自然语言处理有很多问题都是翻译的问题,即把一个文字的字符翻译成另外一个文字字符,那么单轮对话的产生也可以看成是机器翻译。序列对序列学习,sequenceto sequence learning,可以用到这种单轮对话中。每个单词其实是用一个实数值向量表示,就是编码,之后用实数值向量分解成一个回复的一句,叫做解码。通过这种编码、解码这两个过程的话,我们把原始的数据转化成中间表示,再把中间表示,转换成为应该回复的话,可以产生对话系统。

谷歌的神经机器翻译系统是一个非常强大的系统,需要很多训练数据和强大计算资源。这个seqto seq模型有八层的编码器和八层的解码器,整个网络非常深。它还用了各种这个新的技术,比如注意力技术,并行处理技术,还有模型分割和数据分割等。目前,翻译的准确率已经超过了传统的统计机器翻译。

下面,再看一下未来自然语言处理技术发展的前景和趋势。刚才我们看到技术上界和用户对于性能要求的下界,碰到一起就看到技术的使用化。那么,就预测一下未来自然语言处理技术的发展。目前,几个最基本的应用,包括语音识别,就是一个序列对序列学习的问题,就是翻译的问题,目前准确率是95%左右,那么已经比较实用了。单轮对话往往可以变成一个分类问题,或者结构预测问题,就是通过手写一些规则或者建一些分类器,可以做的比较准。很多手机上应用或者是语音助手像siri,就是用这样的技术;多轮对话还很不成熟,准确率还远远达不到一般期待的要求,只有在特定场景下能做的比较好。单轮问答已经开始实用化,准确率一般来百分之七十八十,自动问答系统没有超过80%的这个准确率的情况。去年,我有一个报告就讲鲁棒的自动问答或者知识问答,并不要求准确率是百分之百。单轮自动问答会马上越来越实用化,因为我们看到很多成功的例子包括Alexa往往都是用单轮对话技术来做的。文本的机器翻译水平在不断提高,深度学习在不断进步,越来越接近人的专业水平,但只是在一些特定场景下。完全去替代人,还是不太可能。人的语言理解是一个非常复杂的过程,序列对序列实际上是一种近似,现在这种技术能够去无穷尽的逼近人,但是本质上还是跟人的做法不一样的。即使是这样,准确率可以达到百分之七八十。在某些场景下,用户对性能要求并不是特别高。

总而言之,语音识别、机器翻译已经起飞,大家现在开始慢慢在用,但是真正对话的翻译还很困难,还有很长的路要走,但是也说不定能够做得很好。并不是说序列对序列就没有问题需要解决了,还有细致的问题。一个典型的问题就是长尾现象。不常用的单词、语音识别、翻译还是做得不是很好。比如用中文语音输入,人名、地名这种专有名词识别率一下就下降,特殊的专业术语识也不好,讲中文中间夹杂一些英文单词也是一种长尾现象。因为现在机器学习的方法是基于统计的,原则上就是看到数据里面的规律,掌握数据的规律。需要看到甚至多次重复看到一些东西,才能够掌握这些规律。这块相信有很多技术能帮助解决一些问题,使得机器翻译或语音识别技术不断提高,但是完全彻底的解决还是比较困难,因为这是这种方法带来的一个局限性。

单轮的问答,特别是场景驱动的单轮的问答,可能慢慢会开始使用。但是多轮对话技术还是比较难。马尔可夫决策过程实际上是还是个统计学习模型,本质特点就是需要有大量的数据去学习。其实我们人在做多轮对话的时候,并不需要重复才能掌握这种天生能力。这些是否能够用马尔科夫决策过程去模拟或者近似还不是很清楚。还有一个重要的问题就是多轮对话的数据不够,不能够很好地去学习这样的模型,去研究这些问题。即使是特定任务,多轮对话还比较困难,如果是任务不特定,比如聊天机器人就更难了,我们都不知道该怎么去做,马尔科夫决策过程都用不上。现实当中的一些聊天机器人就是用单轮技术堆起来,但是形成不了一个很自然合理的多轮对话,变成大家用起来觉得很奇怪的东西。总结起来就是多轮对话,在任务驱动的简单场景,有了更多的数据,我们是有可能做的越来越好。

给今天的讲座大概做一个总结,自然语言理解很难,自然语言处理现在用数据驱动的办法去做,有五个最基本的问题,即分类、匹配、翻译、结构预测和马尔可夫决策过程。在具体的问题上,有了数据就可以跑AI的闭环,就可以不断提高系统的性能、算法的能力。深度学习在我刚说的五个大任务里的前四个都能做得很好,特别是运用seq toseq的翻译和语音识别。单论对话也能做的越来越好,但是多轮对话需要去研究和解决。

自然语言概括的那部分其实我也写过一些文章,大家感兴趣的话也可以去看一看,网上也能搜得到,然后还有就是我们相关的工作论文,包括谷歌的工作论文,我在这里列出来了。

最后,欢迎大家加入我们的实验室。方向有语音、语言处理、推荐搜索、大数据分析、智能通讯网络、计算机视觉、物联网、智能城市、智能终端。谢谢大家。

北大AI公开课第八课--自然语言对话的现状与未来by今日头条李航 最近坚持学英语,感觉还是挺不错的,推荐大家一个新的比较好玩的应用:喜马拉雅,上面有很多免费的资源,可以用来学习消遣都行,和得到差不多,但是比起得到,免费的内容更多,而且确实也挺方便的。我现在最爱的就是用它来订阅一些日常英语的节目,每天学习半个小时英语,可以在路上听、睡觉前听,挺享受的,也把碎片时间利用了一下,当然要提醒大家的是,也不能指望这个APP能帮你得道升天,毕竟一些专业的知识、硬技能,我们还... 阅读详情

相关推荐

(整理)学习NLP的资源

本文是对网上NLP推荐资源的一个整理,有资源就要开始实践,加油!(以后还会继续更新的) 0 前期基础 自然语言处理和深度学习密切联系,应将两者结合一起学习。参考华为李航(北大AI第八讲 李航 自然语言处理的现实与挑战)。深度学习是机器学习,机器学习基于统计,所以数学和机器学习的基础知识也要扎实。数学包括微积分,统计与概率,线性代数,凸优化。 微积分会求偏导就行了,概率推荐《统计学完全教程》。...

鱼与橙的诱惑 833

四、自然语言处理的主要挑战

1.自然语言处理的主要挑战 1.1 自然语言处理的主要挑战包括 基本问题 主要困难 NLP的研究内容有5大难点:没有规律、自由组合、开放集合、知识依赖和上下文信息。 2 NLP的基本问题 2.1 基本问题之一:形态学习问题 研究词有意义的基本单位——词素的构成问题 单词的识别/汉语的分词问题 词素:词根、前缀、后缀、词尾 例如:人,老虎=老+虎,图书馆=图+书+馆 2.2基本问题之二:句法问题 研究句子结构成分之间的相关关系和组成句子序列的规则 为什么一句话可以这么说也可以那么说? 如何建立快速

GUANGZHAN的专栏 5198

华为诺亚方舟实验室主任李航:迎接自然语言处理新时代

作者简介:李航,华为技术有限公司诺亚方舟实验室主任。主要研究方向为信息检索、自然语言处理、机器学习等。 本文经李航博士授权发布,未经作者允许不得转载。 欢迎人工智能领域技术投稿、约稿、给文章纠错,请发送邮件至heyc@youkuaiyun.com 人类的语言具有什么特性?下面是几位最权威学者的看法。语言是草根现象,它像是维基百科,聚集了数以十万计的人的贡献。当人们要找到更好的表达自己思想方式...

优快云 人工智能 1604

国内外自然语言处理(NLP)研究组

*博客地址http://blog.youkuaiyun.com/wangxinginnlp/article/details/44890553 *排名不分先后。收集不全,欢迎留言完善。 中国大陆地区: 腾讯人工智能实验室(Tencent AI Lab) https://ai.tencent.com/ailab/nlp/ 苏州大学自然语言处理实验室 http:/...

自然语言处理大菜鸟--HsingWang 5万+

第21课:中文自然语言处理的应用、现状和未来

自然语言理解和自然语言生成是自然语言处理的两大内核,机器翻译是自然语言理解方面最早的研究工作。自然语言处理的主要任务是:研究表示语言能力和语言应用的模型,建立和实现计算框架并提出相应的方法不断地完善模型,根据这样的语言模型设计有效地实现自然语言通信的计算机系统,并研讨关于系统的评测技术,最终实现用自然语言与计算机进行通信。目前,具有一定自然语言处理能力的典型应用包括计算机信息检索系统、多语种翻译系...

春华秋实 2588

Topas——基于Geant4的放射治疗蒙特卡罗算法模拟工具

本文内容参考Joseph Perl 的线上会议,视频详情可见于,该视频会议内容主要介绍Topas功能、软件架构、工作流程、参数设定、物理模型、具体案例等,对TOPAS的基本入门使用方法以及使用规定作出阐述。

fy方的博客 7606

【NLP 自然语言处理】自然语言处理技术难点和挑战

一、**NLP 技术对标注数据依赖性较高,难以在标注数据稀缺的任务、语言或领域内发挥作用。**此前小米首席 NLP 科学家王斌在接受 InfoQ 采访时也曾表 示,获得大规模的高质量标注数据永远是个难题。当前主流方法的效果取决于标注数据的规模和质量。为解决这一问题,可以采用基于大规模无监督数据的预训练模型,或者尝试半监督或无监督的方法,包括零样本学习(Zero-Shot Learning)或小样本学习(Few-Shot Learning)方法。 二、第二是轻量级优质模型问题。当前的主流模型需要消耗大量资源进

赖德发的博客 6756

TMC22系列步进电机驱动设计:从静音原理到硬件实战

步进电机驱动是运动控制系统的核心,其性能直接影响设备的精度、噪音和效率。传统驱动方案如A4988采用方波控制,存在转矩脉动大、运行噪音高等问题。而高性能驱动通过优化电流波形与切换策略,从根本上提升了运动质量。其中,**StealthChop2**技术通过同步MOSFET开关与电机反电动势过零点,实现了近乎无声的低速运行;**SpreadCycle**模式则通过逼近正弦波的电流调节,优化了中高速动态性能。这些技术为3D打印机、CNC机床、自动化设备等对静音和精度有要求的场景提供了关键解决方案。本文以广泛应用的

weixin_31858171的博客 353

北大AI第八讲 李航 自然语言处理的现实与挑战--李航 VS 雷鸣 对话全文

李航 VS 雷鸣 对话部分 雷鸣:特别感谢李老师精彩的讲座。今天这个讲座基本上对自然语言的整个发展能解决什么问题做了一个综述,而且对于技术、挑战和未来展望讲得特别全面,以致于我想到一个问题,后面就已经在回答了,今天讲得非常全面,非常仔细。我们想跟李航老师再探讨一下应用方面,我们知道华为的诺亚方舟做了很多计算语言方面的工作,能大概讲一下在落地方面做了哪些产品,大概现在处在一个什么水平上吗? 李航...

lingpy的博客 967

DSSAD自动驾驶行车记录系统体系结构和应用

通过对其感知、决策、控制等模块的详细研究,以及对商业化和消费市场发展趋势的分析,为该领域的研究和实践提供有价值的参考。通过克服技术、安全与隐私、法规与政策等方面的挑战,并紧跟人工智能、云端服务、用户体验等发展趋势,DSSAD系统将更好地适应自动驾驶行业的发展,提供更安全、智能、便捷的驾驶辅助服务。DSSAD体系结构通过数据收集模块、加密链接和数据存储模块和数据读取模块等关键模块的协同作用,构建了一个强大而灵活的自动驾驶数据记录系统,为未来智能出行提供了坚实的技术基础。

一只老虎的专栏 2208

pyinstaller+scrapy打包出现错误:OSError: could not get source code

错误如下: Traceback (most recent call last): File "scrapy\utils\defer.py", line 55, in mustbe_deferred File "scrapy\core\spidermw.py", line 60, in process_spider_input File "scrapy\core\scraper.py", line 152, in call_spider File "scrapy\utils\misc.py

kin的博客 1759

北大“人工智能前沿与产业趋势”课程整理01

1. 第五讲:小米黄江吉-人工智能硬件的发展 2. 第六讲:碳云王俊-DNA是生命数字化的过程,AI改变生命科学 3. 第七讲:百度徐伟-AGI 2050年前实现可能性超50% 4. 第八讲:华为李航-自然语言处理的现象与挑战

部落阁 2493

SpringCloud 2025王炸更新!GraalVM原生镜像启动速度提升90%实战

在当今云原生和Serverless架构盛行的时代,应用的启动速度已成为衡量技术栈竞争力的关键指标。传统SpringCloud应用由于依赖JVM的动态类加载、反射等机制,启动时间通常超过30秒,在Kubernetes滚动更新和函数计算场景下成为显著性能瓶颈。2025年,SpringCloud迎来里程碑式更新,通过深度集成GraalVM原生镜像技术,实现了启动速度提升90%的惊人突破,让SpringCloud应用正式进入"秒级启动"时代。

小筱在线博客 1099

智源深度 | NLP 面临的三大真实挑战(含视频)

自然语言处理一直被誉为人工智能皇冠上的明珠。一方面,实现语言智能十分艰难。尽管机器人在电竞、围棋等方面频频超越人类,但目前的系统仍无法达到三、四岁孩童的语言和理解能力。另一方面在于自然语...

BAAIBeijing的博客 2509

OWASP-ZAP扫描器的使用

目录 OWASP-ZAP 更新 代理 目录扫描 主动扫描(Active Scan) 扫描结果 生成报告 OWASP-ZAP OWASP Zed攻击代理(ZAP)是世界上最受欢迎的免费安全审计工具之一,由数百名国际志愿者积极维护。它可以帮助你在开发和测试应用程序时自动查找Web应用程序中的安全漏洞。 也可以说ZAP是一个中间人代理。它能够获取你对Web应用程序发出的所有请求以...

谢公子的博客 2万+

借助ChatGPT完成课题申报书中框架思路写作指南

通过这篇文章的学习,我们可以让ChatGPT先为用户匹配研究理论、研究方法、研究思路、研究内容等,为申请人提供一些参考,能够帮助对拟申报课题有一个初步的认识。当申请人找到了合适的理论、方法和问题后,再借助精细化提示词模型提问,那ChatGPT回答的启发性肯定会有质的提升,更具有使用价值。

智能AI让学术科研更容易 2468

机器学习面临的挑战和解决方法

今天看了微软亚洲研究院首席科学家刘铁岩博士分享的关于机器学习的六个挑战及解决思路的视频,做了如下总结。      1. 六个挑战      2. 解决方案            1. 六个挑战          2. 解决方案 2.1 对偶学习      对偶学习是为了解决没有标注数据的问题,主要是利用了问题的双向性和强化学习来解决。 2.2

自然语言处理及大数据 4687

使用 ChatGPT Store 里的工具给 ABAP 制作 Logo,效果一般

在编程领域中,Domain Specific Language(DSL)是一种特定于某一问题领域的计算机语言,诞生目的就是为了解决该领域特定类型的问题。在 ChatGPT 官网的 GPT Stores,也有很多已经预先配置完毕,专用于某一特定领域的 GPT 工具,OpenAI 将其分类如下。第三个问题是 Logo 的配色,提供蓝白,黑绿和灰黄,以及自定义调色板四种选择。这个 GPT 设计了四个问题,通过一问一答的方式,获得使用者想创建 Logo 的细节。这次的复杂度调成最低的 1,感觉还是有点花里胡哨的。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 511

文末送书 | 李航老师新作!机器学习经典著作《统计学习方法》全新升级

李航 著清华大学出版社2022-04-01ISBN: 9787302597308定价: 138.00 元新书推荐????今日福利|关于本书|本书在《统计学习方法》的基础上增加了深度学习的内容,全面系统地介绍了机器学习的主要方法,系统阐述其理论、模型、策略和算法,是机器学习及相关课程的教学参考书,也供计算机各个领域的专业研发人员参考。机器学习是以概率论、统计学、信息论、最优化...

Paper weekly 1552

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

自然语言处理NLP国内研究方向机构导师

自然语言处理NLP国内研究方向机构导师 文|中文信息协会《中文信息处理发展报告2016》,数据简化DataSimp 文字语言VS数字信息 数字、文字和自然语言一样,都是信息的载体,他们之间原本有着天然的联系。语言和数学的产生都是为了交流,从文字、数字和语言的发展历史,可以了解到语言、文字和数字有着内在的联系。自然语言处理NLP主要涉及三种文本,自由文本、结构化文本、半结构化文本。 自然语言...

喜欢打酱油的老鸟 7195

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

跨模态图文检索:使用生成模型改进文本-视觉跨模态检索

《Look, Imagine and Match: Improving Textual-Visual Cross-Modal Retrieval with Generative Models》(2018 CVPR) 这篇文章提出了一种改进的跨模态检索方法,即,将生成式模型纳入文本视觉特征嵌入中,以进行跨模态检索。 传统的跨模态检索用的都是高层的全局抽象特征,而这篇文章还引入了基于两种生成模型的局部底层特征,从而捕捉到两种模态的数据之间更加细粒度的关联。 主要思想 提出的框架如图所示: 整个系统由3条训练路

weixin_44390691的博客 1558

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

NLP待解决的问题及挑战

自然语言处理待解决的问题 多模态的融合 其实我们人是不怎么区分图片、文字、声音,因为到脑海中都会变成表述。这样类比到神经网络上,我们也可以对不同类型的信息源同等对待,同等建模,得到一个融合的信息,再基于这种信息进行编码解码,然后再生成其他媒介的东西,或者混合媒介的东西。 现在「读图」这件事更多的是图像领域的科研人员在做,NLP 领域的人很少涉足,NLP 研究人员一般是你读出来什么,表示成自然...

明日世界 2651

华为李航:NLP 有 5 个基本问题,深度学习有4个做得很好

对于自然语言理解,有两种定义。第一种是计算机能够将所说的语言映射到计算机内部表示;另一种是基于行为的,你说了一句话,计算机做出了相应行为,就认为计算机理解了自然语言。后者的定义,更广为采用。为什么自然语言理解很难?其本质原因是语言是一种复杂的现象。自然语言有5个重要特点,使得计算机实现自然语言处理很困难: 语言是不完全有规律的,规律是错综复杂的。有一定的规律,也有很多例外。因为语言是经过上万年的时间

程序猿视角 2222

自然语言处理发展,主要存在哪些难点?

1.语言不规范,灵活性高 自然语言并不规范,虽然可以找一些基本规则,但是自然语言太灵活了,同一个意思可以用多种方式来表达,不管是基于规则来理解自然语言还是通过机器学习来学习数据内在的特征都显得比较困难。 2.错别字 在处理文本时,我们会发现有大量的错别字,怎么样让计算机理解这些错别字想表达的真正含义,也是NLP的一大难点 3.新词 我们处在互联网高速发展的时代,网上每天都会产生大量的新词,我们如何...

多智时代的博客 1万+

文字图像处理之跨模态检索和VQA视觉问答

以下内容全是学习自一位学长的读书笔记!!!! 1.跨模态检索 他的定义就是将一个模态的数据(我暂且将认为是图片)作为查询去检索了一个与之相关的模态(我认为可以是视频)的数据,作为查询接过来返回。 一般会将模态分为: 1.自然语言处理(这就是传说中自然语言呀,写和说) 2.视觉信号(也就是图片和视频) 3.声音信号(对声音的编码和韵律) 这就像在输入文字的搜索引擎上面找对应的图片和视频,这就是跨模态(专业专业!!!) 他存在一些主要的方法: 1.子空间方法 基本思想:就是让不同模态的特征投影到一个共同潜在

wzw的博客 1573

国内自然语言处理研究组

学术界清华大学清华大学自然语言处理与人文计算实验室:清华计算机系前院长孙茂松教授是他们的leader 清华大学智能技术与系统国家重点实验室信息检索组 北京大学北京大学计算语言学教育部重点实验室:北大计算机学科比较有实力的一个研究方向之一 北京大学计算机科学技术研究所语言计算与互联网挖掘研究室中科院中科院计算所自然语言处理研究组:尤其专长在机器翻译领域,组长为刘群研究员,大家常使用的中文分词工具I

孙彦辉的专栏 6356
上一篇: 机器学习面试(作者面了8家公司,它们问了如下题目......)
下一篇: 北大AI第八讲 李航 自然语言处理的现实与挑战--李航 VS 雷鸣 对话全文
lingpy
博客等级 码龄9年 198粉丝 59原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值