精华内容
下载资源
问答
  • 嵌入式与人工智能关系_嵌入式人工智能的发展趋势

    万次阅读 多人点赞 2019-04-09 17:00:43
    嵌入式与人工智能关系_嵌入式人工智能的发展趋势  所谓嵌入式人工智能,就是设备无须联网通过云端数据中心进行大规模计算去实现人工智能,而是在本地计算,在不联网的情况下就可以做实时的环境感知、人机交互、...

    嵌入式与人工智能关系_嵌入式人工智能的发展趋势

     

      所谓嵌入式人工智能,就是设备无须联网通过云端数据中心进行大规模计算去实现人工智能,而是在本地计算,在不联网的情况下就可以做实时的环境感知、人机交互、决策控制。那么嵌入式与人工智能关系是什么?嵌入式人工智能的发展趋势你知道吗?本文主要详细嵌入式与人工智能,具体的跟随小编一起来了解一下。

      嵌入式与人工智能关系

      人工智能不可能没有嵌入式,人工智能的领域庞大涵盖学科众多,应用范围也很多。人工智能与嵌入式系统的关系,可用苏轼《题西林壁》的诗句来形容,即“横看成岭侧成峰,远近高低各不同。不识庐山真面目,只缘身在此山中”。长期以来,形形色色的人工智能就在我的周围,我们却视而不见。可以说嵌入式开启了人工智能的进程,人工智能的终极目的是实现人类智力的替代,人的智力有“思维”和“行为”两种方式,思维是大脑独立的思考,行为是个体与客观世界的交互。

      现在的人工智能大多属于前者,siri、阿尔法狗都是典型代表。要实现人工智能的行为,必须使用嵌入式系统,这就是现在所说的强人工智能与弱人工智能。具有行为能力的“弱人工智能”就是智能化工具,即MCU基础上的嵌入式应用系统,已有40多年历史。可以骄傲地说,单片机、嵌入式系统开启了人工智能的历史进程,我们所做的一切都是人工智能的那些事儿。人工智能是基础的技术资源,它有着改变人们的思维与生活方式、变革社会的巨大潜力。从更大的格局看,万物智联时代正在到来,未来将从“以设备为中心”进步为“以用户为中心”、“以数据为中心”。

      业界普遍认为人工智能的三个发展阶段包括感知智能、认知智能和通用人工智能(AGI)。感知指语音、语言、图像、手势等;认知指理解、记忆、知识、推理、规划、决策、创造等;通用人工智能指类似人类的思维。其中,感知是人机交互中最重要的一环,为人工智能提供数据基础。这三个阶段需要循序渐进。目前阶段,人工智能的目标并不是让机器模拟人的全部行为,而是在某些特定领域超过人类专家的水平、有能力高效地解决专业问题,从而对人类提供实用的服务。

      小编觉得在人工智能时代,强大的算法也不会拘泥于PC机实现,需要落地的话,就要依赖嵌入式承载。嵌入式在智能手机上的应用已经足以证明,未来出现的机器人一定会使用嵌入式的技术,所以说对于嵌入式系统的需求已经非常迫切,期待能够出现颠覆智能手机的嵌入式便携移动终端。

      嵌入式与人工智能关系_嵌入式人工智能的发展趋势

      嵌入式系统开启人工智能的历史进程

      人工智能与嵌入式系统的关系,可用苏轼《题西林壁》的诗句来形容,即“横看成岭侧成峰,远近高低各不同。不识庐山真面目,只缘身在此山中”。长期以来,形形色色的人工智能就在我的周围,我们却视而不见。为什么会出现这种现象?则要从两个领域的人工智能说起。

      所说的人工智能,就是以人工方式实现人类智力的替代。人类智力有“思维”与“行为”两种方式。“思维”是大脑的独立思考,“行为”是人类个体与客观世界的交互状态,除了思考还要有对外部世界的感知与控制。AlphaGo属于前者,它与李世石、柯洁对决,还要有代理人将它的思维能力转化成对决的下棋行为。实现人工智能的行为方式,则非嵌入式系统莫属。对此,人工智能领域人士,普遍将这两种人工智能定义成“强人工智能”与“弱人工智能”。

      AlphaGo之父哈萨比斯在剑桥大学演讲中则用“通用人工智能”与“狭义人工智能”来区分。总之,所有专家都认可具有行为能力的“弱人工智能”。

      具有行为能力的“弱人工智能”就是智能化工具,即MCU基础上的嵌入式应用系统,已有40多年历史。无怪乎约翰•麦卡锡这位50年代提出人工智能概念的学者,感叹于我们日常生活中每天都在使用人工智能,抱怨于“一旦一样东西用人工智能实现了,人们就不再叫它人工智能了”。

      可以骄傲地说,单片机、嵌入式系统开启了人工智能的历史进程,我们所做的一切都是人工智能的那些事儿。

      嵌入式与人工智能关系_嵌入式人工智能的发展趋势

      嵌入式人工智能的的发展趋势

      1、嵌入式人工智能于各行业垂直领域应用具有巨大的潜力

      嵌入式人工智能市场在零售、交通运输和自动化、制造业及农业等各行业垂直领域具有巨大的潜力。而驱动市场的主要因素,是嵌入式人工智能技术在各种终端用户垂直领域的应用数量不断增加,尤其是改善对终端消费者服务。当然嵌入式人工智能市场要起来也受到IT基础设施完善、智能手机及智能穿戴式设备的普及。其中,以自然语言处理(NLP)应用市场占嵌入式人工智能市场很大部分。随着自然语言处理的技术不断精进而驱动消费者服务的成长,还有:汽车信息通讯娱乐系统、嵌入式人工智能机器人及支持嵌入式人工智能的智能手机等领域。

      2、嵌入式人工智能导入医疗保健行业维持高速成长

      由于医疗保健行业大量使用大数据及嵌入式人工智能,进而精准改善疾病诊断、医疗人员与患者之间人力的不平衡、降低医疗成本、促进跨行业合作关系。此外嵌入式人工智能还广泛应用于临床试验、大型医疗计划、医疗咨询与宣传推广和销售开发。嵌入式人工智能导入医疗保健行业从2016年到2022年维持很高成长,预计从2016年的6.671亿美元达到2022年的79.888亿美元年均复合增长率为52.68%。

      3、嵌入式人工智能取代屏幕成为新UI / UX接口

      过去从PC到手机时代以来,用户接口都是透过屏幕或键盘来互动。随着智能喇叭(Smart Speaker)、虚拟/增强现实(VR/AR)与自动驾驶车系统陆续进入人类生活环境,加速在不需要屏幕的情况下,人们也能够很轻松自在与运算系统沟通。这表示着嵌入式人工智能透过自然语言处理与机器学习让技术变得更为直观,也变得较易操控,未来将可以取代屏幕在用户接口与用户体验的地位。嵌入式人工智能除了在企业后端扮演重要角色外,在技术接口也可承担更复杂角色。例如:使用视觉图形的自动驾驶车,透过人工神经网络以实现实时翻译,也就是说,嵌入式人工智能让接口变得更为简单且更有智能,也因此设定了未来互动的高标准模式。

      嵌入式与人工智能关系_嵌入式人工智能的发展趋势

      4、未来手机芯片一定内建嵌入式人工智能运算核心

      现阶段主流的ARM架构处理器速度不够快,若要进行大量的图像运算仍嫌不足,所以未来的手机芯片一定会内建嵌入式人工智能运算核心。正如,苹果将3D感测技术带入iPhone之后,Android阵营智能手机将在明年(2017)跟进导入3D感测相关应用。

      5、嵌入式人工智能芯片关键在于成功整合软硬件

      嵌入式人工智能芯片的核心是半导体及算法。嵌入式人工智能硬件主要是要求更快指令周期与低功耗,包括GPU、DSP、ASIC、FPGA和神经元芯片,且须与深度学习算法相结合,而成功相结合的关键在于先进的封装技术。总体来说GPU比FPGA快,而在功率效能方面FPGA比GPU好,所以嵌入式人工智能硬件选择就看产品供货商的需求考虑而定。例如,苹果的Face ID脸部辨识就是3D深度感测芯片加上神经引擎运算功能,整合高达8个组件进行分析,分别是红外线镜头、泛光感应组件、距离传感器、环境光传感器、前端相机、点阵投影器、喇叭与麦克风。苹果强调用户的生物识别数据,包含:指纹或脸部辨识都以加密形式储存在iPhone内部,所以不易被窃取。

      6、嵌入式人工智能自主学习是终极目标

      嵌入式人工智能“大脑”变聪明是分阶段进行,从机器学习进化到深度学习,再进化至自主学习。目前,仍处于机器学习及深度学习的阶段,若要达到自主学习需要解决四大关键问题。首先,是为自主机器打造一个嵌入式人工智能平台;还要提供一个能够让自主机器进行自主学习的虚拟环境,必须符合物理法则,碰撞,压力,效果都要与现实世界一样;然后再将嵌入式人工智能的“大脑”放到自主机器的框架中;最后建立虚拟世界入口(VR)。目前,NVIDIA推出自主机器处理器Xavier,就在为自主机器的商用和普及做准备工作。

      7、最完美的架构是把CPU和GPU(或其他处理器)结合起来

      未来,还会推出许多专门的领域所需的超强性能的处理器,但是CPU是通用于各种设备,什么场景都可以适用。所以,最完美的架构是把CPU和GPU(或其他处理器)结合起来。例如,NVIDIA推出CUDA计算架构,将专用功能ASIC与通用编程模型相结合,使开发人员实现多种算法。

      8、AR成为嵌入式人工智能的眼睛,两者是互补、不可或缺

      未来的嵌入式人工智能需要AR,未来的AR也需要嵌入式人工智能,可以将AR比喻成嵌入式人工智能的眼睛。为了机器人学习而创造的在虚拟世界,本身就是虚拟现实。还有,如果要让人进入到虚拟环境去对机器人进行训练,还需要更多其它的技术。展望未来,随着嵌入式人工智能、物联网、VR/AR、5G等技术成熟,将带动新一波半导体产业的30年荣景,包括:内存、中央处理器、通讯与传感器四大芯片,各种新产品应用芯片需求不断增加,以中国在半导体的庞大市场优势将会在全球扮演关键的角色

    展开全文
  • 昨日,Conflux 网络与人工智能实验室Fetch.ai正式建立合作伙伴关系,双方将以推动 Fetch.ai 机器学习技术发展、促进区块链行业人工智能和机器学习的融合应用为目标,同...

    昨日,Conflux 网络与人工智能实验室 Fetch.ai 正式建立合作伙伴关系,双方将以推动 Fetch.ai 机器学习技术发展、促进区块链行业人工智能和机器学习的融合应用为目标,同时希冀把流畅的跨链互操作性带到 Conflux 网络的智能基础设施中,目前实验结果最高可达 6400 笔交易/秒。

    Fetch.ai 正着手建立针对智能基础设施的开放式访问的去中心化机器学习网络。为了保证数据和交易的安全共享,Fetch.ai 的开放式访问网络提供了对功能强大的 AI 工具的访问接口,这些工具可以促进和协调现代经济中复杂的机器学习任务。通过 Fetch.ai 的技术,可以构建、定制和培训代理,安全地获取、分析和协调各行业各部门间的数字信息交换,比如金融业、移动出行、供应链、物联网、医疗保健和大宗商品行业等。 

    高性能的 Conflux 网络可以确保部署在其中的 Fetch.ai 的可扩展性,改善了用户体验。同时, Fetch.ai 的自主经济代理(Autonomous Economic Agents, AEA)还可以与 Conflux 网络集成,实现大规模 AI 乐高的部署。Conflux 网络中与 EVM(以太坊虚拟机)的兼容,也会使 Fetch.ai 平台上开发的所有技术跨链互操作性更高。

    Conflux 网络社区成员将可以获得访问 Fetch.ai 工具包的权限,可以把机器学习技术集成到 Conflux 生态系统内创建的 dApp 中,释放出智能基础设施用例的新价值,如 DeFi、供应链、物联网和移动出行等方向。

    “通过与 Conflux 网络的合作关系,Fetch.ai 将多代理系统和机器学习带入区块链网络的进程又向前迈进了一步”,Fetch.ai 首席执行官 Humayun Sheikh 说,“我们会看到人们会越来越重视区块链网络间的互操作性,我们期待能够在这一部分做到领先地位。”  

    “很高兴可以与 Fetch.ai 合作,把 AI 乐高带入 Conflux 生态系统。我们的合作伙伴关系将有助于创造去中心化商业的新世界”,Conflux 网络北美事务总经理 Eden Dhaliwal 表示,“ Fetch.ai 的自主代理工具和多方计算技术可以把去中心化的机器学习带入区块链领域,这是建立智能数字经济的关键一步。把 AI 乐高引入 Conflux 网络会帮助我们创建去中心化智能商业的新世界。”

    关于 Fetch.ai

    Fetch.ai 人工智能实验室总部位于剑桥,目前正着手构建一个开放式访问的通证化和去中心化机器学习网络,目标是实现以去中心化数字经济为核心的智能基础设施。Fetch.ai 网络基于开放源代码技术,任何用户都可以运行该网络来连接到网络,可以访问世界级安全数据集上的 AI 功能,在现代经济中执行复杂的协调任务。

    END

    展开全文
  • 神经网络与人工智能

    万次阅读 2019-03-24 20:50:07
    神经网络与人工智能 首先要简单区别几个概念:人工智能,机器学习,深度学习,神经网络。这几个词应该是出现的最为频繁的,但是他们有什么区别呢? 来一张图就比较清楚了,如下图: 人工智能:人类通过直觉可以...

    首先要简单区别几个概念:人工智能,机器学习,深度学习,神经网络。这几个词应该是出现的最为频繁的,但是他们有什么区别呢?
    来一张图就比较清楚了,如下图:
    在这里插入图片描述

    人工智能:人类通过直觉可以解决的问题,如:自然语言理解,图像识别,语音识别等,计算机很难解决,而人工智能就是要解决这类问题。
    机器学习:如果一个任务可以在任务T上,随着经验E的增加,效果P也随之增加,那么就认为这个程序可以从经验中学习。
    深度学习:其核心就是自动将简单的特征组合成更加复杂的特征,并用这些特征解决问题。
    神经网络:最初是一个生物学的概念,一般是指大脑神经元,触点,细胞等组成的网络,用于产生意识,帮助生物思考和行动,后来人工智能受神经网络的启发,发展出了人工神经网络。

    人工智能

    人工智能(Artificial Intelligence),英文缩写为AI。它是研究、开发用于模拟、延伸和扩展人的智能的理论、方法、技术及应用系统的一门新的技术科学。
    人工智能是计算机科学的一个分支,它企图了解智能的实质,并生产出一种新的能以人类智能相似的方式做出反应的智能机器,该领域的研究包括机器人、语言识别、图像识别、自然语言处理和专家系统等。人工智能从诞生以来,理论和技术日益成熟,应用领域也不断扩大,可以设想,未来人工智能带来的科技产品,将会是人类智慧的“容器”。人工智能可以对人的意识、思维的信息过程的模拟。人工智能不是人的智能,但能像人那样思考、也可能超过人的智能。

    在这里插入图片描述

    人工智能有多重要

    国内外
    2018年Google I/O 大会不同于以往的「多元化」呈现,AI 成为了唯一的主角,皮查伊表示 Google 旗下的 Google Assistant、Android P 和 Gmail 等都已经融入了 AI 技术。
    在这里插入图片描述
    AI 是互联网下一幕,不只是 Google,Facebook、Amazon 和中国的 BAT、TMD(今日头条、美团、滴滴) 和华为小米诸多大小巨头都在战略布局,AI 不只是可以提升现有业务价值(比如对 Google 来说可以提高广告转化率),也可以催生层出不穷的新业务。Google 率先将 AI 带到互联网行业,特别是旗下的 AlphaGo 战胜人类棋手,更是让全世界第一次切身感知到了 AI 的威力。

    李彦宏表示,人工智能将会在未来几十年对人类社会产生巨大的影响,带来不可逆转的改变,这已经成为国际社会的共识。如同伦理道德是人类文明数千年发展的重要稳定器,人工智能伦理将是未来智能社会的发展基石。
    未来人工智能的发展会深刻地改变每一个行业。在各行各业都有靠技术创新来大幅度降低使用门槛,提升生产效率的机会,这个机会或在未来10到15年就会来临。
    在这里插入图片描述

    人工智能学习阶段

    人工智能研究的领域主要有五层:
    1、最底层是基础设施建设,包含数据和计算能力两部分,数据越大,人工智能的能力越强。
    2、往上一层为算法,如卷积神经网络、LSTM 序列学习、Q-Learning、深度学习等算法,都是机器学习的算法。
    3、第三层为重要的技术方向和问题,如计算机视觉,语音工程,自然语言处理等。还有另外的一些类似决策系统,像 reinforcement learning(编辑注:增强学习),或像一些大数据分析的统计系统,这些都能在机器学习算法上产生。
    4、第四层为具体的技术,如图像识别、语音识别、机器翻译等等。
    5、最顶端为行业的解决方案,如人工智能在金融、医疗、互联网、交通和游戏等上的应用,这是我们所关心它能带来的价值。

    在这里插入图片描述

    人工智能的应用场景主要有以下几个方面:

    在计算机视觉上,2000 年左右,人们开始用机器学习,用人工特征来做比较好的计算机视觉系统。如车牌识别、安防、人脸等技术。而深度学习则逐渐运用机器代替人工来学习特征,扩大了其应用场景,如无人车、电商等领域。
    在这里插入图片描述
    在语音技术上,2010 年后,深度学习的广泛应用使语音识别的准确率大幅提升,像 Siri、Voice Search 和 Echo 等,可以实现不同语言间的交流,从语音中说一段话,随之将其翻译为另一种文字;再如智能助手,你可以对手机说一段话,它能帮助你完成一些任务。与图像相比,自然语言更难、更复杂,不仅需要认知,还需要理解。
    在这里插入图片描述
    在自然语言处理上,目前一个比较重大的突破是机器翻译,这大大提高了原来的机器翻译水平,举个例子,Google 的 Translation 系统,是人工智能的一个标杆性的事件。2010 年左右, IBM 的"Watson"系统在一档综艺节目上,和人类冠军进行自然语言的问答并获胜,代表了计算机能力的显著提高。
    在这里插入图片描述
    在决策系统上,决策系统的发展是随着棋类问题的解决而不断提升,从 80 年代西洋跳棋开始,到 90 年代的国际象棋对弈,机器的胜利都标志了科技的进步,决策系统可以在自动化、量化投资等系统上广泛应用。
    在这里插入图片描述
    在大数据应用上,可以通过你之前看到的文章,理解你所喜欢的内容而进行更精准的推荐;分析各个股票的行情,进行量化交易;分析所有的像客户的一些喜好而进行精准的营销等。机器通过一系列的数据进行判别,找出最适合的一些策略而反馈给我们。
    在这里插入图片描述

    人工神经网络

    人工神经网络(Artificial Neural Network, ANN) ,通常简称为神经网络,是一种在生物神经网络的启示下建立的数据处理模型。神经网络由大量的人工神经元相互连接进行计算,根据外界的信息改变自身的结构,主要通过调整神经元之间的权值米对输入的数据进行建模,最终具备解决实际问题的能力。通常,人类自身就是一个极好的模式识别系统。人类大脑包含的神经元数量达到10^11数量级,其处理速度比当今最快的计算机还要快许多倍。如此庞大、复杂、非线性的计算系统时刻指挥着全身的获得。当视野中出现张熟悉的人脸时,只需数百毫秒的时间即可正确识别。尽管许多昆虫的神经系统并不发达,但仍表现出极强的识别能力。蝙蝠依靠其声纳系统搜集目标的位置、速度、目标大小等信息,最终实现声纳的回声定位以极高的成功率捕提目标。
    一般认为,生物神经并不是一开始就具备这样的识别能力的,而是在其成长过程中通过学习逐步获得的。人类出生后的几年间,大脑接收了大量的环境信息,随着经验的积累,神经元之间的相互关系不断变化,从而完成智能、思 维、情绪等精神活动。
    在这里插入图片描述
    在这里插入图片描述

    在人类刚刚出生时,其种经元存储的信息相当于一张白纸。 在环境中各种输入信号的刺激下,神经元之间的连接关系逐渐发生了改变,最终对信号做出正确的反应。人工神经网络模型就是模仿生物神经网络建立起来的,但它是对生物神经网络的抽象,并没有也不可能完全反映大脑的功能和特点。事实上神经网络不可能也没有必要达到大脑的复杂度,因为生物大脑的训练过程是生物的整个生命周期,即使建立了与之复杂度相当的网络模型,训练所花费的成本也会令其输出的-切结果失去应有的价值。
    在人工神经网络中,最承要的概念莫过于神经元节点与权值。节点对应有向图中的节点,权值表示节点间相互连接的强度,人的神经网络的可塑性表现在,其连接权值都是可调整的,它将-系列仅具有简单处理能力的节点遥过权值相连,当权值调整至恰当值时,就能输出正确的结果。网络将知识存储在调整后的各权值中,这-点是神经网络的精髓。

    在这里插入图片描述

    学习神经网络软件推荐

    在这里插入图片描述
    MATLAB是美国MathWorks公司出品的商业数学软件,用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境,主要包括MATLAB和Simulink两大部分。
    MATLAB是matrix&laboratory两个词的组合,意为矩阵工厂(矩阵实验室)。是由美国mathworks公司发布的主要面对科学计算、可视化以及交互式程序设计的高科技计算环境。它将数值分析、矩阵计算、科学数据可视化以及非线性动态系统的建模和仿真等诸多强大功能集成在一个易于使用的视窗环境中,为科学研究、工程设计以及必须进行有效数值计算的众多科学领域提供了一种全面的解决方案,并在很大程度上摆脱了传统非交互式程序设计语言(如C、Fortran)的编辑模式,代表了当今国际科学计算软件的先进水平。

    展开全文
  • 4:后向传播BP算法神经网络 4 5:深度神经网络DNN 4 6:卷积神经网络CNN 5 7:循环神经网络RNN 8 8:神经网络交叉领域实现应用 9 两部分知识的连接 自然语言处理知识大串联 1:one-hot 11 2:Word-embeding 词嵌入 11 3...

    文章目录

    神经网络知识大串联

    1:第一代的神经元模型 3
    2:从M-P模型到感知器模型 3
    3:前馈神经网络 3
    4:后向传播与BP算法神经网络 4
    5:深度神经网络DNN 4
    6:卷积神经网络CNN 5
    7:循环神经网络RNN 8
    8:神经网络交叉领域实现与应用 9
    两部分知识的连接

    自然语言处理知识大串联

    1:one-hot 11
    2:Word-embeding 词嵌入 11
    3:Word2Vec 12
    5:Glove模型 13
    6:LSTM 14
    7:Seq2Seq 16
    8:Attention 18
    9:Transformer 19
    10:Elmo 22
    11:Bert 23

    在这里插入图片描述

    图1 神经网络与自然语言处理关系图

    神经网络知识大串联

    现如今,神经网络这样的专业词汇在当今世界已经不再是少数计算机领域的人士才会提及的词语了,神经网络一词已经走入千家万户,很多人即使不知道使用的是否恰当,也会在语句中夹杂些人工智能、大数据、神经网络这样的词汇。那什么是神经网络,他是怎么发展而来的,又能带给我们的生活何种便利呢?下面我将一一为您解答。
    在介绍神经网络的发展历史之前,首先介绍一下到底什么是神经网络。神经网络主要是指一种仿造人脑设计的简化的计算模型,这种模型中包含了大量的用于计算的神经元,这些神经元之间会通过一些带有权重的连边以一种层次化的方式组织在一起。每一层的神经元之间可以进行大规模的并行计算,层与层之间进行消息的传递。

    1:第一代的神经元模型

    第一代的神经元模型是验证型的于1940年诞生,当时的设计者只是为了验证神经元模型可以进行计算,这种神经元模型既不能训练也没有学习能力,可以简单的把它看成是一个定义好的逻辑门电路,因为它的输入和输出都是二进制的,而中间层的权重都是提前定义好的。
    验证型神经网络
    既不能训练也没有学习能力
    可看作逻辑门电路,输入和输出都是二进制的,权重都是提前定义好

    2:从M-P模型到感知器模型

    所谓M-P模型,其实是按照生物神经元的结构和工作原理构造出来的一个抽象和简化了的模型。
    感知器就是基于M-P模型的结构。感知器与第一代神经元模型有很多形似处,但是二者之间存在着一些关键的区别,感知器模型的激活函数可以选择sigmoid函数等,其输入可以选择使用实数向量,而不是神经元模型的二进制向量。与神经元模型不同,感知器模型是一个可以学习的模型。它可以将不同类别的点在N维空间中分离开,对于一些基本的逻辑运算,例如与、或、非,感知器模型可以非常容易地作出判断分类。
    可使用sigmoid等其他函数
    输入为实数向量
    可以学习的模型

    3:前馈神经网络

    八十年代后,由于单层的感知器神经网络的表达能力非常有限,只能做一些线性分类器的任务,神经网络的发展进入了多层感知器时代。其中一个典型的多层神经网络就是前馈神经网络。它包括输入层、节点数目不定的隐层和输
    在这里插入图片描述
    出层。任何一个逻辑运算都可以通过多层感知器模型表示,但这就涉及到三层之间交互的权重学习问题。图中V与W是两个需要学习信息的权重矩阵。
    上一层为下一层的输入
    表达能力相比感知器模型具有大幅度提升

    4:后向传播与BP算法神经网络

    在前馈神经网络中对于隐层的调控十分有限,所以虽然我们可以计算出其模型输出,但是却不知道它的期望输出是什么,也就没有办法去高效训练一个多层神经网络。这就要引出后向传播与BP算法神经网络。
    BP神经网络:是一种按照误差逆向传播算法训练的多层前馈神经网络,是应用最广泛的神经网络。BP算法其实就是一个链式法则,在大多数情况下BP神经网络给出的只是一个局部的最优解,而不是全局的最优解。但是从整体来看,一般情况下BP算法能够计算出一个比较优秀的解。
    在这里插入图片描述
    由上图可以看出bp算法神经网络其实是属于前馈神经网络的一种。这里的“前馈”指的是网络拓扑结构中不存在环或回路,而不是指该网络只能向前传播而不能向后传播相比于多层感知机,BP网络具有误差逆传播算法训练多层前馈网络它的学习规则是使用最速下降法,通过反向传播来不断调整网络的权值和阈值,使网络的误差平方和最小。BP神经网络是一种其主要的特点是:信号是前向传播的,而误差是反向传播的。
    影响BP神经网络性能的参数主要有:隐含层节点的个数、激活函数的选择以及学习率的选择等
    误差反向传播

    5:深度神经网络DNN

    按不同层的位置划分,DNN内部的神经网络层与上述神经网络同样可以分为:输入层,隐藏层和输出层,一般第一层是输入层,最后一层是输出层,而中间的层数都是隐藏层。层与层之间是全连接的,即第i层的任意一个神经元一定与第i+1层的任意一个神经元相连。相对于浅层神经网络深度神经网络提取特征能力强于(low level)浅层神经网络,并且达到相同效果,深度神经网络所需要的参数也更少。
    在这里插入图片描述
    缓解局部最优解
    信息提取能力显著增强

    6:卷积神经网络CNN

    2012年,在图片分类领域,CNN模型在ImageNet上取得了一个较大的突破。测试图片分类的是一个很大的数据集,要将这些图片分成1000类。在使用深度学习之前,当时最好的结果是错误率为25.8%(2011年的一个结果),在2012年Hinton和它的学生将CNN应用于这个图片分类问题之后,这个指标下降了几乎10%。

    在这里插入图片描述

    自2012年之后,我们从图表中可以观察到每一年这个指标都有很大程度的突破,而这些结果的得出均使用了CNN模型。深度学习模型能取得如此大的成功,在现代人看来主要归功于其层次化的结构,能够自主学习并将数据通过层次化结构抽象地表述出来。而抽象出来的特征可以应用于其他多种任务,这也是深度学习当前十分火热的原因之一。
    现在,我们就来了解一下如此出名的卷积神经网络(CNN)到底是拥有什么样的结构,什么样的内部算法。
    卷积神经网路,我们可否套用一下我们已知的知识去理解它呢? 其实可以,我们把它的名字拆分开就是“卷积”“神经网络”,“卷积”是什么我们可能不清楚,但“神经网络”我们前几个模型可一直在学习呀,“神经网络”归根结底不就是层次分明的分类器吗。我们看下面这张图,这是CNN的工作流程图,我用红色字标出了对应写出了“卷积”和“神经网络”工作的位置,可以看出“神经网络”确实放置于CNN工作后部,起到分类作用。
    在这里插入图片描述
    “卷积” 放置于CNN工作前部,图中说到它的作用是特征提取器。“卷积”里面我们可以按其功能分为两部分,卷积层与池化层。
    卷积层:

    在这里插入图片描述

    卷积核对应image中相应位置进行叠加运算,计算出的结果为此步的卷积特征。这一层就是卷积神经网络最重要的一个层次,也是“卷积神经网络”的名字来源。
    在这个卷积层,有两个关键操作:
    1:局部关联。每个神经元看做一个滤波器(filter)
    2:窗口(receptive field)滑动, filter对局部数据计算
    介绍卷积层遇到的几个名词:
    1:深度/depth(解释见下图)
    2:步长/stride (窗口一次滑动的长度)
    3:填充值/zero-padding
    在这里插入图片描述
    那填充值是什么呢?以下图为例子,比如有这么一个5 * 5的图片(一个格子一个像素),我们滑动窗口取22,步长取2,那么我们发现还剩下1个像素没法滑完,那怎么办呢?
    在这里插入图片描述
    那我们在原先的矩阵加了一层填充值,使得变成6
    6的矩阵,那么窗口就可以刚好把所有像素遍历完。这就是填充值的作用。
    在这里插入图片描述
    池化层:
    池化层夹在连续的卷积层中间, 用于压缩数据和参数的量,减小过拟合。简而言之,如果输入是图像的话,那么池化层的最主要作用就是压缩图像
    这里再展开叙述池化层的具体作用。
    1.特征不变性,也就是我们在图像处理中经常提到的特征的尺度不变性,池化操作就是图像的resize,平时一张狗的图像被缩小了一倍我们还能认出这是一张狗的照片,这说明这张图像中仍保留着狗最重要的特征,我们一看就能判断图像中画的是一只狗,图像压缩时去掉的信息只是一些无关紧要的信息,而留下的信息则是具有尺度不变性的特征,是最能表达图像的特征。
    2.特征降维,我们知道一幅图像含有的信息是很大的,特征也很多,但是有些信息对于我们做图像任务时没有太多用途或者有重复,我们可以把这类冗余信息去除,把最重要的特征抽取出来,这也是池化操作的一大作用。
    3.在一定程度上防止过拟合,更方便优化。

    在这里插入图片描述

    池化层用的方法有Max pooling 和 average pooling,而实际用的较多的是Max pooling。这里就说一下Max pooling,其实思想非常简单。对于每个2 * 2的窗口选出最大的数作为输出矩阵的相应元素的值,比如输入矩阵第一个2 * 2窗口中最大的数是6,那么输出矩阵的第一个元素就是6,依此类推。
    在这里插入图片描述
    卷积网络在本质上是一种输入到输出的映射,它能够学习大量的输入与输出之间的映射关系,而不需要任何输入和输出之间的精确的数学表达式,只要用已知的模式对卷积网络加以训练,网络就具有输入输出对之间的映射能力。**CNN一个非常重要的特点就是头重脚轻(越往输入权值越小,越往输出权值越多),呈现出一个倒三角的形态,这就很好地避免了BP神经网络中反向传播的时候梯度损失得太快。**卷积神经网络CNN主要用来识别位移、缩放及其他形式扭曲不变性的二维图形。由于CNN的特征检测层通过训练数据进行学习,所以在使用CNN时,避免了显式的特征抽取,而隐式地从训练数据中进行学习;
    再者由于同一特征映射面上的神经元权值相同,所以网络可以并行学习,这也是卷积网络相对于神经元彼此相连网络的一大优势。卷积神经网络以其局部权值共享的特殊结构在语音识别和图像处理方面有着独特的优越性,其布局更接近于实际的生物神经网络,权值共享降低了网络的复杂性,特别是多维输入向量的图像可以直接输入网络这一特点避免了特征提取和分类过程中数据重建的复杂度。
    以下是CNN中需要重点思考明白的问题

    1. 卷积层和池化层有什么区别?
      首先从结构上可以看出,卷积之后输出层的维度减小,深度变深。但池化层深度不变。同时池化可以把很多数据用最大值或者平均值代替。目的是降低数据量。降低训练的参数。对于输入层,当其中像素在邻域发生微小位移时,池化层的输出是不变的,从而能提升鲁棒性。而卷积则是把数据通过一个卷积核变化成特征,便于后面的分离。
    2. 采用宽卷积的好处有什么?
      通过将输入边角的值纳入到滑窗中心进行计算,以便损失更少的信息。
    3. 卷积输出的深度与哪个部件的个数相同?
      输出深度(通道)与卷积核(过滤器)的个数相等。
    4. 激活函数通常放在卷积神经网络的哪个操作之后?
      通常放在卷积层之后。
    5. 为什么激活函数通常都是采用非线性的函数?
      如果网络中都采用线性函数的组合,那么线性的组合还是线性,那么使用多次线性组合就等同于使用了一次线性函数。因此采用非线性函数可以来逼近任意函数。
    6. 非线性激活函数中sigmod函数存在哪些不足?
      Sigmod函数存在饱和状态,尤其是值过大时,当进入饱和状态时,进行梯度下降计算时,很容易出现梯度消失的情况,求导的精确值不能保证。
    7. ReLU和SoftPlus激活函数有哪些优势?
      与sigmod相比,不存在指数计算,求导计算量变小,同时缓解了过拟合的情况,一部分输出为0,减少了参数的相互依存。

    处理更为复杂的问题
    强大的特征抽取与数据压缩
    共享卷积核,对高维数据处理无压力

    7:循环神经网络RNN

    关于循环神经网络的基本原理如下图所示,从图中可以看循环神经网络的输出不仅依赖于输入x,而且依赖于当前的隐层状态,而这个隐层状态会根据前一个x进行更新。从展开图中可以直观的理解这个过程,第一次输入的中间隐层状态S(t-1)会影响到下一次的输入X(t)。循环神经网络模型的优势在于可以用于文本、语言或者语音等此类序列型的数据,即当前数据的状态受到此前数据状态的影响。对于此类数据,前馈神经网络是很难实
    现的。
    在这里插入图片描述
    提到RNN,那就不得不介绍一下之前提到的LSTM模型。实际上LSTM并不是一个完整的神经网络,它只是一个RNN网路中的节点经过复杂处理后的结果。LSTM中包含三个门:输入门,遗忘门和输出门。这三个门均用于处理cell之中的数据内容,分别决定是否要将cell中的数据内容输入、遗忘和输出。
    在这里插入图片描述

    处理序列化问题
    数据自我迭代
    拥有时间深度

    8:神经网络交叉领域实现与应用

    最后介绍一个目前非常流行的交叉领域的神经网络的应用,将一个图片转换成描述形式的文字或者该图片的title。具体的实现过程可以简单的解释为首先通过一个CNN模型将图片中的信息提取出来形成一个向量表示,然后将该向量作为输入传送到一个训练好的RNN模型之中得出该图片的描述。

    在这里插入图片描述

    两部分知识的连接

    正如8:神经网络交叉领域实现与应用中所提到的,通过CNN与RNN我们可以把一张图片信息用文字描述出来。其中CNN把图片信息向量化表示,RNN进行图片描述,这是因为CNN非常适合图处理例如:面对1000x1000的高清(单色)图片,同样提取10个特征,需要多少参数呢?DNN(深度神经网络)需要1000x1000x10 = 1千万个参数,而CNN(卷积神经网络)需要5x5x10= 250个参数(如果filter是5x5的matrix(矩阵))。DNN制造一个特征,需要1000x1000个参数,这是DNN设计要求。CNN制造一个特征,CNN设计说“随意”,2x2, 3x3, 5x5都行。DNN只能接受全局特征,CNN都可以,更倾向于学习小的局部特征。综上所述,图像处理的任务就交给CNN吧,把提取出的信息,向量化表示给到RNN用于生成文本。
    本质上讲,图像是静态的,语音是动态的有时序的。cnn适合静态图像,rnn模拟人脑记忆适合处理时序语音信号。也就是说RNN对于语音类时序性强的内容处理很占优势,那有没有哪种基于神经网路的算法是更有利于文本处理的呢?比如一场多人会议,可否通过语音音色区别,判别且生成某个人的文字文本内容呢?是否需要RNN与别的算法进行搭配完成呢?
    故我们不得不引出另一类知识,那就是自然语言处理(NLP)。

    自然语言处理知识大串联

    很多人听我说到自然语言处理,第一反应是太高大上了,这是个什么呀?自然语言处理,英文Natural Language Processing,简写NLP。NLP这个概念本身过于庞大,很难通过简短的几句定义就能明白它是什么。不妨还用切割方法,把它分成“自然语言”和“处理”两部分。
    自然语言:自然语言是人类发展过程中形成的一种信息交流的方式,包括口语及书面语,反映了人类的思维。简单的一句问候“你好”,以及正在看的这篇,都是以自然语言的形式表达。现在世界上所有的语种语言,都属于自然语言,包括汉语、英语、法语等。
    处理:通过计算机计算得到某种结果
    所以加在一起,自然语言处理:计算机接受用户自然语言形式的输入,并在内部通过人类所定义的算法进行加工、计算等系列操作,以模拟人类对自然语言的理解,并返回用户所期望的结果。正如机械解放人类的双手一样,自然语言处理的目的在于用计算机代替人工来处理大规模的自然语言信息。最后让计算机能够确切理解人类的语言,并自然地与人进行交互。

    1:one-hot

    词向量是通过数字组成的向量来表示一个词,这个向量的构成方式有多种。最简单的方式是one-hot向量。假设在一个语料集合中,一共有n个不同的词,则可以使用一个长度为n的向量,第i个词(0<i<n)的向量组成是:除向量第i个位置处为1外,其余位置的值都为0,这样就可以唯一的通过[0,0,1,…,0,0]形式的向量表示一个词。one-hot向量比较简单,容易理解,但是有很多问题。比如当加入新词时,整个向量的长度会改变,并且存在维数过高难以计算的问题,one-hot向量很难体现出两个词之间的关系。因此,one-hot向量的优势是简单易懂、稀疏存储,缺点是维度过大、词汇鸿沟(即向量之间都是孤立的)。
    简单易懂

    2:Word-embeding 词嵌入

    词嵌入是指把一个维数为所有词的数量的高维空间嵌入到一个维数低得多的连续向量空间中,每个单词或词组被映射为实数域上的向量。
    具有相似上下文的词,应该具有相似的语义。这个假说被称为distributional hypothesis。词的distributed representation(分布式表示)就是一种表示能够刻画语义之间的相似度并且维度较低的稠密向量表示,例如:
    高兴=[0.2,1.6,−0.6,0.7,0.3]
    开心=[0.3,1.4,−0.5,0.9,0.2]
    这样,便可通过计算向量的余弦相似度,来反映出词的语义相似度。词的分布式表示解决了“词汇鸿沟”问题,并且可以通过计算向量之间的距离(欧式距离、余弦距离等)来体现词与词的相似性。
    在这里插入图片描述
    解决词汇鸿沟
    通过欧式距离/余弦距离体现词的相似性

    3:Word2Vec

    word2vec是谷歌提出的一种word embedding的具体手段,采用了两种模型(CBOW与skip-gram模型)与两种方法(负采样与层次softmax方法)的组合,比较常见的组合为 skip-gram+负采样方法。Mikolov 等研究者在这篇论文中提出了连续词袋模型CBOW和 Skip-Gram 模型,通过引入负采样等可行性的措施,这两种方法都能学习高质量的词向量。
    在这里插入图片描述
    其中,CBOW模型是在已知当前词的上下文的前提下预测当前词,Skip-gram模型是已知当前词的前提下,预测它的上下文。两个模型的结构都是一个三层网络,输入层、投影层和输出层。
    在这里插入图片描述
    如图所示,INPUT是输入层,PROJECTION是投影层,OUTPUT是输出层,w(t)是当前词语(向量),w(t-2),w(t-1),w(t+1),w(t+2)是当前词语的上下文,SUM是上下文的累加和。
    没有神经网络层,所以没有耗时的矩阵相乘,只保留了一个softmax层,计算效率高
    优化时使用的是随机梯度下降,罕见词不会主导优化目标

    4:NNLM

    NNLM是从语言模型出发(计算概率角度),构建神经网络针对目标函数对模型进行最优化,训练的起点是使用神经网络去搭建语言模型实现词的预测任务,并且在优化过程后模型的副产品就是词向量。

    进行神经网络模型的训练时,目标是进行词的概率预测,就是在词环境下,预测下一个该是什么词,目标函数如下式, 通过对网络训练一定程度后,最后的模型参数就可当成词向量使用.
    可自定义维度
    生成的词向量能够很好的根据特征距离度量词与词之间的相似性。

    5:Glove模型

    本模型的目标是进行词的向量化表示,使得向量之间尽可能多地蕴含语义和语法的信息。输入为语料库,输出为词向量。运用方法:首先基于语料库构建词的共现矩阵,然后基于共现矩阵和Glove模型学习词向量。
    开始 -> 统计共现矩阵 -> 训练词向量 -> 结束
    Glove模型有一点需要着重说明,通常获取词向量基本上有两种思路:
    1.利用全局统计信息,进行矩阵分解(如LSA)来获取词向量,这样获得的词向量往往在词相似性任务上表现不好,表明这是一个次优的向量空间结构;
    2.利用局部上下文窗口单独训练,但是统计信息作为有用的先验知识,没有很好的利用到。
    Glove:结合两种训练方式,获取更好的词向量
    Glove与skip-gram、CBOW模型对比
    Cbow/Skip-Gram 是一个local context window的方法,比如使用NS来训练,缺乏了整体的词和词的关系,负样本采用sample的方式会缺失词的关系信息。
    另外,直接训练Skip-Gram类型的算法,很容易使得高曝光词汇得到过多的权重
    Global Vector融合了矩阵分解Latent Semantic Analysis (LSA)的全局统计信息和local context window优势。融入全局的先验统计信息,可以加快模型的训练速度,又可以控制词的相对权重。我的理解是skip-gram、CBOW每次都是用一个窗口中的信息更新出词向量,但是Glove则是用了全局的信息(共线矩阵),也就是多个窗口进行更新

    Glove引入词频统计信息,这是很重要的全局信息

    6:LSTM

    上文中的神经网络其实简要介绍过LSTM,其全称是long short term memory。是一种特殊的RNN,与一般的RNN区别是中间的更新状态的方式不同。传统的RNN的更新模块是只有一层tanh层作为激活层。而LSTM的RNN的更新模块具有4个不同的层相互作用。
    在这里插入图片描述
    传统RNN
    在这里插入图片描述
    LSTM-RNN
    下图Lstm中C_{t-1}是前一个状态,C_{t}是输出的状态。状态是指记录了到目前为止的所有更新的上下文,前一个状态C_{t-1}输入以后会经过遗忘和添加新的内容,最终输出新的状态到下一个cell。只有部分信息会删除和更新,大部分信息是直接按照以上那条线flow出去的。个人觉得可以把这里的过程看成是流水生产线,加工的产品就是信息。
    在这里插入图片描述
    LSTM-信息传输线
    在这里第一个部分是:遗忘
    这里的sigma是指sigmoid函数,对于状态C_{t-1}矩阵当中每个输入的值,都会有对应的一个输出的值,输出的值在[0, 1]之间,相当于是决定了遗忘多少部分。如果输出值为1,说明全部保留,不删除原本的记忆,如果是0,说明状态C_{t-1}矩阵对应的这个值全部删除。
    在这里插入图片描述
    LSTM-遗忘
    比如:前一个状态可能包含了主语“He”,名字叫“Peter”,国籍是“America”。接下来话锋一转,新出现了一群人,因此这个时候状态矩阵对应主语的这一栏就会删除“He”,以保证接下来的动词的形式不是第三人称单数。

    第二部分是:添加新信息到已有状态矩阵当中-更新
    这里有两部分同时进行:一个是sigmoid函数决定添加多少部分的新信息到前一个状态矩阵当中(类似于权重),tanh层则根据前一个的输出值h_{t-1}​和当前的输入值x_{t-1}​产生一个新的当前状态(也就是一个新的候选值向量,这个向量之后要加入到已有的状态矩阵当中)。最后根据前面sigmoid输出的权重和新的候选值向量两个共同更新原有的矩阵。
    在这里插入图片描述
    LSTM-矩阵信息迭代
    最终更新新的状态相当于是忘记之后剩下的部分与新添加信息的权重加和。
    在这里插入图片描述
    LSTM-更新叠加
    第三部分是:决定输出h_{t},输出由tanh函数激活,但要乘以一个sigmoid函数激活后的输出权重。
    在这里插入图片描述
    LSTM-输出

    总体上来说,要掌握几个要点:
    1.LSTM模块当中的线就是状态矩阵C和输出h的流动,一般来说变动很少,主线是最上面那条直线,其他的线都是对这条主要流动线进行微加工。
    2.里面有一些黄色方块代表层:sigmoid激活层输出0到1的值,代表权重;tanh层表示对输入进行激活,输出新的候选值。
    3.粉色的部分代表操作,x号代表矩阵点乘,+代表添加,tanh代表运算(跟tanh层是一样的函数,但是这里的是输出的是预测值)
    4.整体流程是:遗忘→根据现有的输入和上一个cell的输出更新状态→根据现有的状态输出预测值

    信息全局化处理
    有效的门机制,更好解决梯度问题

    7:Seq2Seq

    Seq2Seq与RNN有着密切的关系,Seq2Seq模型是输出的长度不确定时采用的模型,这种情况一般是在机器翻译的任务中出现,将一句中文翻译成英文,那么这句英文的长度有可能会比中文短,也有可能会比中文长,所以输出的长度就不确定了。如下图所,输入的中文长度为4,输出的英文长度为2。
    在这里插入图片描述
    在网络结构中,输入一个中文序列,然后输出它对应的中文翻译,输出的部分的结果预测后面,根据上面的例子,也就是先输出“machine”,将"machine"作为下一次的输入,接着输出"learning",这样就能输出任意长的序列。机器翻译、人机对话、聊天机器人等等,这些都是应用在当今社会都或多或少的运用到了我们这里所说的Seq2Seq。
    Seq2Seq属于encoder-decoder结构的一种,这里看看常见的encoder-decoder结构,基本思想就是利用两个RNN,一个RNN作为encoder,另一个RNN作为decoder。
    encoder负责将输入序列压缩成指定长度的向量,decoder则负责根据语义向量生成指定的序列,其中要说明的是decoder有两种模式,分别是1语义向量只做初始化参数参与运算
    2语义向量参与解码的整个过程。
    在这里插入图片描述
    语义向量只作初始化参数参与运算

    在这里插入图片描述
    语义向量参与解码的每一个过程

    可处理输出长度不确定的任务

    似乎是为了应对Facebook纯用CNN来做seq2seq的“挑衅”,google就纯用attention,并发表著名的《Attention is All You Need》。
    为什么下面即将介绍的attrntion会瞬间超过rnn与lstm的热度呢?
    记住RNN和LSTM及其衍生主要是随着时间推移进行顺序处理请参考下图中的水平箭头
    在这里插入图片描述

    RNN中的顺序处理
    水平箭头的意思是长期信息需在进入当前处理单元前顺序遍历所有单元。这意味着其能轻易被乘以很多次<0的小数而损坏。这是导致梯度消失问题的原因。为此,今天被视为救星的LSTM模型出现了,有点像ResNet模型,可以绕过单元从而记住更长的时间步骤。因此,LSTM可以消除一些梯度消失的问题。
    在这里插入图片描述
    LSTM中的顺序处理
    从上图可以看出,这并没有解决全部问题。我们仍然有一条从过去单元到当前单元的顺序路径。事实上,这条路现在更复杂了,因为它有附加物,并且忽略了隶属于它上面的分支。毫无疑问LSTM和GRU(Gated Recurrent Uni,是LSTM的衍生)及其衍生,能够记住大量更长期的信息,但是它们只能记住100个量级的序列,而不是1000个量级,或者更长的序列。
    #下面是对attention的介绍#

    8:Attention

    attention提出,可以说是NLP另一里程碑式的存在。带attention的seq2seq,远超过上一年的原始seq2seq。Attention机制最关键点是一句话,分配权重系数。
    attention机制的本质是从人类视觉注意力机制中获得灵感(可以说很‘以人为本’了)。可理解为我们视觉在感知东西的时候,一般不会是一个场景从到头看到尾每次全部都看,而往往是根据需求观察注意特定的一部分。而且当我们发现一个场景经常在某部分出现自己想观察的东西时,我们就会进行学习在将来再出现类似场景时把注意力放到该部分上。这可以说就是注意力机制的本质内容了。至于它本身包含的‘自上而下’和‘自下而上’方式就不在过多的讨论。
    Attention机制其实就是一系列注意力分配系数,也就是一系列权重参数。
    下面我来举个例子:当给出一句‘我爱你’中文,要将它翻译成英文‘I love you’(target)时,利用现在深度学习最为流行的model–encoder to decoder,‘我爱你’被编码成C,然后在经过非线性函数来decoder得到目标Target中的每一个单词。可实际上,‘我’这个元素对target中的’I’的结果是影响最大的,其他元素的影响可以说是微乎其微。但是在上述模型中,这个重要程度没有被体现出来,所以这是一个分心的模型。而与其对应的注意力模型就是要从序列中学习到每一个元素的重要程度,然后按重要程度将元素合并。

    Attention函数工作机制:
    attention函数共有三步完成得到attention value。

    • Q与K进行相似度计算得到权值
    • 对上部权值归一化
    • 用归一化的权值与V加权求和
      在这里插入图片描述
      此时加权求和的结果就为注意力值。在自然语言任务中,往往K和V是相同的。这时计算出的attention value是一个向量,代表序列元素xjxj的编码向量。此向量中包含了元素xjxj的上下文关系,即包含全局联系也拥有局部联系。
      全局联系是因为在求相似度的时候,序列中元素与其他所有元素的相似度计算,然后加权得到了编码向量。局部联系可以这么解释,因为它所计算出的attention value是属于当前输入的xjx_j的。这也就是attention的强大优势之一,它可以灵活的捕捉长期和local依赖,而且是一步到位的。

    一步到位的全局联系捕捉
    并行计算减少模型训练时间
    模型复杂度小,参数小
    相比RNN可以编码更长的序列信息
    在输出序列与输入序列“顺序”不容的情况下(翻译、阅读)表现的较好

    9:Transformer

    自Attention机制提出后,加入attention的Seq2seq模型在各个任务上都有了提升,所以现在的seq2seq模型指的都是结合rnn和attention的模型,之后google又提出了解决sequence to sequence问题的transformer模型,encoder和decoder都不用RNN,换成了多个attention也可以说用 attention的结构代替了lstm,在翻译任务上取得了更好的成绩。
    模型结构如下图:
    在这里插入图片描述
    和大多数seq2seq模型一样,transformer的结构也是由encoder和decoder组成。
    1:左右扽别时encoder和decoder

    2:enc和dec的底部是embedding;而embedding又分为两部分:input embedding和positional embedding;其中input embedding就是seq2seq中的embedding。而为什么要positional embedding呢?因为transformer中只有attention;回想一下attention,任意一对(query, key)的计算都是完全一样的,不像CNN和RNN,有一个位置或者时序的差异:CNN框住一块区域,随着卷积核移动,边缘的少量点会跟着有序变化;RNN更明显了,随着输入顺序不同(正序,倒序)而不同。因此为了体现出时序或者在序列中的位置差异,要对input加入一定的位置信息,即positional embedding。

    3:enc和dec的中部分别是两个block, 分别输入一个序列、输出一个序列;这两个block分别重复N词。enc的每个block里有两个子网,分别是multihead attention和feedforward network(ffn),先别管都在干啥;dec的block里有三个子网,分别是两个multihead attention和一个ffn。这些子网后面都跟了一个add&norm(为了更好的优化深度网络,整个网络使用了残差连接&对层进行了规范化(Add&Norm))
    ),即像resnet一样加一个跳边,然后做一个layer norm。

    Encoder部分

    对于Encoder部分来说,整个的Encoder结构里包含6层,每一层里面有两层。分别是一层self-attention层和一层全连接层。需要注意的是,这里的self-attention并不是只有一层。模型中使用的是multi-head-Attention。其实就是多个self-attention,可以把每个self-attention理解为一个head,多个self-attention自然就是多头了。 前面几层的encoder的输出,会作为输入给下一层的encoder。这里要注意,每一个encoder里的两层的输出,都会进入一个add&Norm。最后的encoder会输出给后面的decoder模型。

    Decoder部分
    每一个单独的decoder与encoder相比,在self-attention层(decoder层中叫masked self-attention)和全连接网络层之间,多了一层Encoder-Decoder-Attention 层。decoder中有两层attention层,decoder结构中,第一层是一个multi-head-self-attention层,这个与encoder中的区别是这里是masked-multi-head-self-attention。使用mask的原因是因为在预测句子的时候,当前时刻是无法获取到未来时刻的信息的。
    decoder中的第二层attention层就是一个正常的multi-head attention层。但是这里Q,K,V来源不同。Q来自于上一个decoder的输出,而K,V则来自于encoder的输出。剩下的计算就没有其他的不同了。
    关于这两个attention层,可以理解为 mask-self-attention是计算当前翻译的内容和已经翻译的前文之间的关系(上下文关系),而encoder-decoder-attention 是计算当前翻译内容和编码的特征向量之间的关系。最后再经过一个全连接层,输出decoder的结果。

    4:dec最后还有一个linear和softMax。
    Ffn:可以理解为对每个x进行两次线性映射,也可以理解为对整个序列做一个1*1的卷积

    Multihead attention: 原始的attention, 就是一个query (以下简称Q) 和一组key (以下简称K) 算相似度, 然后对一组value (以下简称V) 做加权和; 假如每个Q和K都是512维的向量, 那么这就相当于在512维的空间里比较了两个向量的相似度. 而multihead就相当于把这个512维的空间人为地拆成了多个子空间, 比如head number=8, 就是把一个高维空间分成了8个子空间, 相应地V也要分成8个head; 然后在这8个子空间里分别计算Q和K的相似度, 再分别组合V。这样可以让attention能从多个不同的角度进行结合, 这对于NMT是很有帮助的, 因为我们在翻译的时候源语言和目标语言的词之间并不是一一对应的, 而是受很多词共同影响的. 每个子空间都会从自己在意的角度或者因素去组合源语言, 从而得到最终的翻译结果.
    这里需注意️:
    1: 模型中使用的是multi-head-Attention。其实就是多个self-attention,可以把每个self-attention理解为一个head,多个self-attention自然就是多头了
    2:前面几层的encoder的输出,会作为输入,给下一层的encoder。这里要注意,每一个encoder里两层的输出,都会进入一个add&Norm。最后的encoder会输出给后面的decoder模型。

    并行运算,速度提高
    建立直接的长距离依赖

    10:Elmo

    在2018年之前,词向量表示的方法主要还是采用CBOW、skip-gram、GloVe等方法,这些方法都是采用一个固定维度的向量来表征每一个词汇或字符,虽然方法简单,但是会存在两个问题,
    一方面是没有考虑词汇在不同语境的信息,比如”apple"在一些场景下可以表示水果(苹果),在另一些场景下可能表示苹果公司。
    另一方面,采用一个固定的向量表示词汇,没有考虑到语法和语义的信息。因此,在2018年,Matthew等人提出了一种新的方法——ELMo(Embeddings from Language Models),ELMo训练的不再只是一个词向量,而是一个包含多层BiLstm的模型,然后对于每一个句子,都需要传入该模型,分别拿到每个时间步在每个层的输出,最后在具体的NLP任务中,再单独训练每一层的权重向量,对每一层的向量进行线性加权作为每个词汇的最终向量表示。
    这样一来,每个词汇在不同的上下文语境中,都可以得到不同的向量表示,因此,在一定意义上可以解决一词多义的问题。
    在这里插入图片描述
    如上图所示,可看出Elmo模型分左右两部分且传递方向相反故称之为双向语言模型。双向语言模型又分为前向语言模型和后向语言模型。
    前向语言模型会根据前面的词汇预测当前词汇的概率,最终对每个时间步的输出概率进行累积来作为整个序列的预测概率,并期望该概率越大越好。
    后向语言模型则与前向语言模型相反,后向语言模型将词汇序列进行逆排序,因此,对于每一个时间步都是基于后面词汇信息计算预测概率
    双向语言模型则将前向语言模型和后向语言模型进行结合,直接最大化前向和后向语言模型的对数概率。

    同时考虑语境、语义、语法问题,解决了一词多义的情况

    11:Bert

    BERT的全称是Bidirectional Encoder Representation from Transformers,即双向Transformer的Encoder,因为decoder是不能获要预测的信息的。模型的主要创新点都在pre-train方法上,即用了Masked LM和Next Sentence Prediction两种方法分别捕捉词语和句子级别的representation。
    在这里插入图片描述
    BERT模型进一步增加词向量模型泛化能力,充分描述字符级、词级、句子级甚至句间关系特征。那是什么让BERT如此出众?
    首先需要说到Embedding,这里的Embedding由三种Embedding求和而成:
    在这里插入图片描述
    其中:Token Embeddings是词向量,第一个单词是CLS标志,可以用于之后的分类任务,Segment Embeddings用来区别两种句子,因为预训练不光做LM还要做以两个句子为输入的分类任务,Position Embeddings和之前文章中的Transformer不一样,不是三角函数而是学习出来的。
    其次需要说的是Bert的预训练模型:
    在这里插入图片描述
    在这里插入图片描述
    Masked Language Model:传统的LM要学习语言特征,都是以前文预测下一个词为训练目标,所以不能拿两个方向的encode来训练。现有的语言模型例如ELMo号称是双向LM(BiLM),但是实际上是两个单向RNN构成的语言模型的拼接。
    为了利用好前面词和后面词的概率。BERT提出了Masked Language Model,也就是随机去掉句子中的部分token,然后模型来预测被去掉的token是什么。这样实际上已经不是传统的神经网络语言模型了,而是单纯作为分类问题,根据这个时刻的hidden state来预测这个时刻的token应该是什么,而不是预测下一个时刻的词的概率分布
    这里的操作是随机mask语料中15%的token,然后预测masked token,那么masked token 位置输出的final hidden vectors送入softmax即可得到masked token的预测结果。这样操作存在一个问题,fine-tuning的时候没有[MASK]这个token,因此存在pre-training和fine-tuning之间的不匹配,为了解决这个问题,采用了下面的策略:80%的时间中:将选中的词用[MASK]token来代替,例如my dog is hairy → my dog is [MASK]。10%的时间中:将选中的词用任意的词来进行代替,例如my dog is hairy → my dog is apple。10%的时间中:选中的词不发生变化,例如my dog is hairy → my dog is hairy。

    Next Sentence Prediction:很多任务都需要句子级别的关系,只有LM是不够的,还需要模型能够捕捉句子级的模式。所以Bert设计了一个句子对任务,该任务的训练语料是两句话,来预测第二句话是否是第一句话的下一句话。具体来说,选择句子A和B作为预训练样本:B有50%的可能是A的下一句,也有50%的可能是来自语料库的随机句子。
    在这里插入图片描述
    Bert预训练的Mask Language Model
    Bert预训练的Next Sentence Prediction
    双向Transformer的Encoder

    在这里插入图片描述

    展开全文
  • 区块链与人工智能关系

    千次阅读 2019-08-21 09:35:26
    人工智能,英文缩写为AI人工智能是计算机科学的一个分支。它企图了解智能的实质,并生产出一种新的能以人类智能相似的方式做出反应的智能机器,该领域的研究包括机器人、语言识别、图像识别、自然语言处理和专家...
  • 网络通信与人工智能

    千次阅读 2020-11-05 12:00:58
    人工智能属于计算机分支,领域目前研究包括机器人、语言识别、图像识别、自然语言处理和专家系统等,但人工智能涉及的领域远远不止这些,其子领域还有包括知识工程、数据挖掘、信息检索推荐,还涉及到数据库技术、...
  • 人工智能是在20世纪中期以后产生的学科,人工智能就是用机器模拟人类的智能活动,从而用机器代替人类行使某些方面的职能。人工智能是通过探索人的感觉和思维的规律来模拟人的智能活动,电子计算机是人工智能的媒介...
  • 但是大家在关注或研究人工智能领域的时候,总是会遇到这样的几个关键词:深度学习、机器学习、神经网络。那他们之间到底是什么样的关系呢? 先说人工智能人工智能是在1956年一个叫达特茅斯会议上提出的。更准确的...
  • ai人工智能的本质和未来Chinese philosophy yin and yang represent how the seemingly opposite poles can complement each other and achieve harmony.中国的阴阳哲学代表着看似相反的两极如何相互补充,实现和谐...
  • 但是大家在关注或研究人工智能领域的时候,总是会遇到这样的几个关键词:深度学习、机器学习、神经网络。那他们之间到底是什么样的关系呢? 先说人工智能人工智能是在1956年一个叫达特茅斯会议上提出的。更准确的...
  • 人工智能:神经网络与深度学习

    千次阅读 2020-06-30 08:39:21
    1 人工智能 ...人工智能是计算机科学的一个分支,它试图了解智能的实质,并生产出一种新的能以人类智能相似的方式做出反应的智能机器。人工智能是研究使计算机来模拟人的某些思维过程和智能行为的学科,
  • Python与人工智能关系

    千次阅读 2018-08-20 18:07:38
    伴随着人工智能的兴起和快速发展,Python在2017年受到广泛的关注,尤其是国家相关教育部门对于“人工智能普及”格外重视,将Python列入教学体系,并动员全民学Python,使得Python成为2017年最受欢迎的编程语言!...
  • 在探讨深度学习、机器学习与人工智能关系之前,先通过一些参考文献对这三个名词尝试进行较为宽泛的定义。 人工智能(Artificial Intelligence, 简称AI): 人工智能是计算机科学的一个分支, 致力于智能行为的自动...
  • 人工智能,顾名思义ArtificialIntelligence,缩写是大家熟知的AI。是让计算机具备人类拥有的能力——感知、学习、记忆、推理、决策等。细分的话,机器感知包括机器视觉、NLP,学习有模式识别、机器学习、增强学习、...
  • 人工智能,顾名思义ArtificialIntelligence,缩写是大家熟知的AI。是让计算机具备人类拥有的能力——感知、学习、记忆、推理、决策等。细分的话,机器感知包括机器视觉、NLP,学习有模式识别、机器学习、增强学习、...
  • 但是大家在关注或研究人工智能领域的时候,总是会遇到这样的几个关键词:深度学习、机器学习、神经网络。那他们之间到底是什么样的关系呢? 先说人工智能人工智能是在1956年一个叫达特茅斯会议上提出的。更准确的...
  • 一、人工智能赋能网络安全防御加速落地,应用引发网络安全风险现实危害 2019年,人工智能迎来发展黄金期。2018年相比,人工智能在提升全球网络安全能力方面扮演的“引擎”角色开始发挥实际作用,伴随.
  • 上图为人工智能技术的包含关系 可见AI包括机器学习(machine learning),机器学习又包括表征学习(representation learning),深度学习(Deep Learning)又是表征学习的一种 AI系统的不同部分 上图可见 基于规则...
  • 图谱理论与复杂网络相关算法

    千次阅读 2020-05-13 20:57:36
    1.图谱问题研究背景 现实生活中的各种复杂网络都可以用图有效表示。...由于复杂网络节点规模巨大,通常很难找到特定网络拓扑结构图谱性质间的直接相关性,求解复杂网络社团分割问题的精确解是一个NP难问题。 2
  • 在经历了蛮荒的PC互联网时代,混战的移动互联网时代,到现今最火的人工智能时代。大数据、云计算、机器学习的技术应用,已经使得IT从业者的门槛越来越高。...人工智能(Artificial Intelligence),英文缩写为AI。...
  • 这个是最全面的人工智能大数据与复杂系统系统性学习 想要资料的加 1191423473 来自巴黎高师,中科院,北师大等世界著名高校及机构的混沌巡洋舰导师团,为大家在人工智能,大数据与复杂系统的知识海洋里扬帆领航。...
  • 大数据和人工智能关系的基本介绍

    万次阅读 2019-04-15 11:30:07
    人工智能主要有三个分支: 1.基于规则的人工智能; 2.无规则,计算机读取大量数据,根据数据的统计、概率分析等方法,进行智能处理的人工智能; 3.基于神经元网络的一种深度学习。 基于规则的人工智能,在计算机内...
  • 人工智能--语义网络表示法

    万次阅读 多人点赞 2019-03-26 16:20:01
    文章目录概念常用的基本语义关系事物概念的表示语义网络表示一元关系复杂关系的表示方法情况和动作的表示语义网络的基本推理过程继承匹配 概念 语义网络:语义网络是一种用实体及其语义关系来表达知识的有向图...
  • 声控门的工作原理与人工智能AI

    千次阅读 2018-11-26 14:40:20
    声音采集(录音),重新采样生成标准波形声音格式的wav文件,把时间能量图转换成频谱图,按照卷积网络模型 —LeNet通过TensorFlow进行训练,实施,部署,进行图像识别比对。 采用app和服务进行交互进行权限控制。...
  • 第一章 引论 ...表现:万维网地位的提高以及发展,搜索引擎的迅速发展密不可分,而搜索引擎属于复杂网络的一个应用领域,因此可见,研究复杂网络有所重要。 4.金融网络和经济网络 背景:经济全球化的
  • 机械工程和人工智能关系

    千次阅读 2019-06-20 00:04:34
    机械工程:用户和人工智能技术的放大效应 对于机械工程而言,人工智能首先是获得保持世界领先地位的机会。人工智能有助于提高工作效率,开发出新型商业模式,嵌入式人工智能解决方案的智能化功能还可以优化生产流程...
  • 宽为限 紧用功 功夫到 滞塞通 ...AI领域是个水很深的新领域,对于非科学研究专业人士来说更是深不可测。选择自己喜欢的学科,兴趣是最好的老师,攻克下去总会有意想不到的收获。AI时代,我们要更加努力
  • 从本篇文章开始,作者正式开始研究Python深度学习、神经网络及...基础性文章,希望对您有所帮助,如果文章中存在错误或不足之处,还请海涵~同时自己也是人工智能的菜鸟,希望大家能我在这一笔一划的博客中成长起来。

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 75,983
精华内容 30,393
关键字:

复杂网络与人工智能的关系