2016-11-03 17:24:07 robocoder 阅读数 312
  • Java经典算法讲解

    在面试中,算法题目是必须的,通过算法能够看出一个程序员的编程思维,考察对复杂问题的设计与分析能力,对问题的严谨性都能够体现出来。一个算法的好坏,直接影响一个方法调用的性能,进而影响软件的整体性能。算法是学习所有编程语言的基础,在Java的学习过程中首先也会选择以算法起步,本次课程重点讲解Java开发中常用的基本算法。

    31088 人正在学习 去看看 张中强

课程主页

机器学习的定义

运用某种算法通过大量的数据进而使计算机进行衍化进化。

机器学习的应用

  • 计算机视觉
  • 语音识别
  • NLP
  • 搜索引擎
  • 推荐系统
  • 机器人:无人驾驶(感知 控制)
  • 问答

机器学习的分类

  • 监督学习 (分类 回归 排序 结构化预测)
  • 无监督学习 (密度估计 异常检测)

建议

能用简单方法解决的就用简单方法解决,只有非用不可,并且可以带来显著提升的时候才用

机器学习三要素

数据 模型 算法 (需求)

先导知识

线性代数

  • 向量 转置 内积外积
  • 矩阵 加法 乘法 逆
  • 范数 特征向量 特征值

概率论

联合概率 条件概率 独立性 条件独立

2019-05-24 16:15:48 h__ang 阅读数 4550
  • Java经典算法讲解

    在面试中,算法题目是必须的,通过算法能够看出一个程序员的编程思维,考察对复杂问题的设计与分析能力,对问题的严谨性都能够体现出来。一个算法的好坏,直接影响一个方法调用的性能,进而影响软件的整体性能。算法是学习所有编程语言的基础,在Java的学习过程中首先也会选择以算法起步,本次课程重点讲解Java开发中常用的基本算法。

    31088 人正在学习 去看看 张中强

主要讨论脉冲神经网络的拓扑结构、信息的脉冲序列编码方法、脉冲神经网络的学习算法和进化方法等。

一. 脉冲神经网络的拓扑结构

同传统的人工神经网络一样,脉冲神经网络同样分为三种拓扑结构。它们分别是前馈型脉冲神经网络(feed-forward spiking neural network)、递归型脉冲神经网络(recurrent spiking neural network)和混合型脉冲神经网络(hybird spiking neural network)。

1. 前馈型脉冲神经网络

在多层前馈脉冲神经网络结构中,网络中的神经元是分层排列的,输入层各神经元的脉冲序列表示对具体问题输入数据的编码,并将其输入脉冲神经网络的下一层。最后一层为输出层,该层各神经元输出的脉冲序列构成网络的输出。输入层和输出层之间可以有一个或者多个隐藏层。

此外,在传统的前馈人工神经网络中,两个神经元之间仅有一个突触连接,而脉冲神经网络可采用多突触连接的网络结构,两个神经元之间可以有多个突触连接,每个突触具有不同的延时和可修改的连接权值。多突触的不同延时使得突触前神经元输入的脉冲能够在更长的时间范围对突触后神经元的脉冲发放产生影响。突触前神经元传递的多个脉冲再根据突触权值的大小产生不同的突触后电位。
在这里插入图片描述

2. 递归型脉冲神经网络

递归型神经网络不同于多层前馈神经网络和单层神经网络,网络结构中具有反馈回路,即网络中神经元的输出是以前时间步长上神经元输出的递归函数。递归神经网络可以模拟时间序列,用来完成控制、预测等任务,其反馈机制一方面使得它们能够表现更为复杂的时变系统;另一方面也使得有效学习算法的设计及其收敛性分析更为困难。传统递归人工神经网络的两种经典学习算法分别为实时递归学习(real-time recurrent learning)算法和随时间演化的反向传播(backpropagation through time)算法,这两种算法都是递归地计算梯度的学习算法。

递归脉冲神经网络是指网络中具有反馈回路的脉冲神经网络,由于其信息编码及反馈机制不同于传统递归人工神经网络,由此网络的学习算法构建及动力学分析较为困难。递归脉冲神经网络可应用于诸多复杂问题的求解中,如语言建模、手写数字识别以及语音识别等。递归脉冲神经网络可分为两大类:全局递归脉冲神经网络(fully recurrent spiking neural network);另一类是局部脉冲神经网络(locally recurrent spiking neural network)。

3. 混合型脉冲神经网络

混合型脉冲神经网络即包括前馈型结构,又包含递归型结构。

二. 信息的脉冲序列编码方法

从神经科学的角度来看,第二代人工神经网络是一种基于“发放频率”的神经元计算方式。随着研究的深入,神经科学家指出生物神经系统采用神经元的脉冲时序来编码信息,而不仅仅是用神经元脉冲的“发放频率”来编码信息。实际上,神经元的脉冲发放频率不能完全捕获脉冲序列中包含的信息。例如,已经发现初级听觉皮层神经元群体能在短时间内通过分组相邻脉冲来协调动作电位的相对时间,并没有改变每秒发放的脉冲数量,这样,神经元甚至可以在平均发放频率没有改变的情况下给出特定的刺激信号。

更具有生物可解释性的脉冲神经网络,采用精确定时的脉冲序列来编码神经信息。神经网络内部的信息传递是由脉冲序列完成的,脉冲序列是由离散的脉冲时间点组成的时间序列,因此,在进行脉冲神经网络的模拟与计算时,包含以下步骤:①当输入数据或神经元受到外界刺激时,经过特定的脉冲序列编码方法,可将数据或外界刺激编码成特定的脉冲序列;②脉冲序列在神经元之间传递并经过一定的处理,处理之后将输出的脉冲序列通过特定的解码方法进行解码并给出具体的响应。

对于神经信息的脉冲序列编码问题,借鉴生物神经元的信息编码机制,研究者提出了许多脉冲神经网络的脉冲序列编码方法。例如,首脉冲触发时间编码方法、延迟相位编码方法、群体编码方法等。

三. 脉冲神经网络的学习算法

学习是人工智能领域的核心问题,对于SNN来说,基于脉冲时间层次的学习方法研究,对于通过理论模型来验证生物神经系统的信息处理和学习机制是必须的。通过生物可解释的方式建立人工神经系统,科学家希望可以通过神经科学和行为实验来达到预期目的。大脑中的学习可以理解为突触连接强度随时间的变化过程,这种能力称为突触可塑性(synaptic plasticity)。脉冲神经网络的学习方式主要包括无监督学习(unsupervised learning)、监督学习(supervised learning)和强化学习(reinforcement learning)等。

1. 无监督学习算法

无监督学习算法在人类和动物的学习中占据主导地位,人们通过观察能够发现世界的内在结构,而不是被告知每一个客观事物的名称。人工神经网络无监督学习算法的设计主要是针对无标签数据集的训练,要求应用无监督学习规则对神经网络中的连接权值或结构进行自适应的调整。也就是说,在没有“教师”信号的监督下,神经网络必须自己从输入数据中发现规律性(如统计特征、相关性或类别等),并通过输出实现分类或决策。一般来说,只有当输入数据集中存在冗余性时,无监督学习才有意义,否则,无监督学习不能很好地发现输入数据中的任何模式或特征,即冗余性提供了知识。

脉冲神经网络的无监督学习算法大多是借鉴传统人工神经网络的无监督学习算法,是在Hebb学习规则不同变体的基础上提出的。神经科学的研究成果表明,生物神经系统中的脉冲序列不仅可引起神经突触的持续变化,并且满足脉冲时间依赖可塑性(spike timing-dependent plasticity,STDP)机制。在决定性时间窗口内,根据突触前神经元和突触后神经元发放的脉冲序列的相对时序关系,应用STDP学习规则可以对突触权值进行无监督方式的调整。

2. 脉冲神经网络的监督学习

脉冲神经网络的监督学习是指对于给定的多个输入脉冲序列和多个目标脉冲序列,寻找脉冲神经网络合适的突触权值矩阵,使神经元的输出脉冲序列与对应的目标脉冲序列尽可能接近,即两者的误差评价函数最小。对于脉冲神经网络来说,神经信息以脉冲序列的形式表示,神经元内部状态变量及误差函数不再满足连续可微的性质,构建有效的脉冲神经网络监督学习算法非常困难,同时也是该领域的一个重要的研究方向。

根据监督学习所采用的基本思想不同,可以将现有的监督学习算法分为三类:

  1. 基于梯度下降的监督学习算法的基本思想是利用神经元目标输出与实际输出之间的误差以及误差反向传播过程,得到梯度下降计算结果作为突触权值调整的参考量,最终减小这种误差。基于梯度下降的监督学习算法是一种数学分析方法,在学习规则的推导过程中,要求神经元模型的状态变量必须是有解析的表达式,主要采用固定阈值的线性神经元模型,如脉冲响应模型(spike response model)和Integrate-and-Fire神经元模型等。
  2. 基于突触可塑性的监督学习算法的基本思想是利用神经元发放脉冲序列的时间相关性所引起的突触可塑性机制,设计神经元突触权值调整的学习规则,这是一种具有生物可解释性的监督学习。
  3. 基于脉冲序列卷积的监督学习算法通过脉冲序列内积的差异构造脉冲神经网络的监督学习算法,突触权值的调整依赖于特定核函数的卷积计算,可实现脉冲序列时空模式的学习。

3. 脉冲神经网络的强化学习

强化学习是从环境状态到行为映射的学习,以使智能体行为从环境中获得的累积奖赏值最大。基于生物启发的学习机制,人工神经网络强化学习的研究重点在于探索智能体的自适应优化策略,是近年来神经网络和智能控制领域的主要方法之一。强化学习关注的是智能体如何在环境中采取一系列行为,通过强化学习,一个智能体应该知道在什么状态下应该采取什么行为。可以看到,强化学习和监督学习的区别主要在于以下两点:

  1. 强化学习是试错学习,由于没有直接的“教师”指导信息,智能体要不断与环境交互,通过试错的方式来获得最佳策略;
  2. 延迟回报,强化学习的指导信息很少,而且往往是在事后(最后一个状态)才给出的,这就导致了一个问题,即获得正回报或者负回报以后,如何将汇报分配给前面的状态。

四. 脉冲神经网络的进化方法

进化算法(evolutionary algorithm)是模拟生物进化过程的计算模型,是一类基于自然选择和遗传变异等生物进化机制的全局性概率搜索算法,主要包括遗传算法(genetic algorithm)、进化规划(evolutionary programming)和进化策略(evolutionary strategy)等。虽然这些算法在实现方面具有一些差别,但它们具有一个共同的特点,即都是借助生物进化的思想和原理来解决实际问题的。

将进化算法与脉冲神经网络有机结合起来,研究者开辟了进化脉冲神经网络(evolutionary spiking neural network)的研究领域,以提高对复杂问题的求解能力。进化脉冲神经网络可以作为自适应系统的一种一般性框架,在没有人为干预的情况下系统自适应调整神经元的参数、连接权值、网络结构和学习规则。

来自脉冲神经网络原理及应用一书

2016-02-09 11:35:12 longxinchen_ml 阅读数 22236
  • Java经典算法讲解

    在面试中,算法题目是必须的,通过算法能够看出一个程序员的编程思维,考察对复杂问题的设计与分析能力,对问题的严谨性都能够体现出来。一个算法的好坏,直接影响一个方法调用的性能,进而影响软件的整体性能。算法是学习所有编程语言的基础,在Java的学习过程中首先也会选择以算法起步,本次课程重点讲解Java开发中常用的基本算法。

    31088 人正在学习 去看看 张中强

作者: 龙心尘 && 寒小阳
时间:2016年2月。
出处:
http://blog.csdn.net/longxinchen_ml/article/details/50646528
http://blog.csdn.net/han_xiaoyang/article/details/50646667
声明:版权所有,转载请联系作者并注明出处

##1. 引言:朴素贝叶斯的局限性

我们在之前文章《NLP系列(2)_用朴素贝叶斯进行文本分类(上)》探讨过,朴素贝叶斯的局限性来源于其条件独立假设,它将文本看成是词袋子模型,不考虑词语之间的顺序信息,就会把“武松打死了老虎”与“老虎打死了武松”认作是一个意思。那么有没有一种方法提高其对词语顺序的识别能力呢?有,就是本节要接到的N-gram语言模型。

##2. N-gram语言模型是啥?

2.1从假设性独立到联合概率链规则

照抄我们前文垃圾邮件识别中的条件独立假设,长这个样子:

P(,,,,,,,,,)S)P((“我”,“司”,“可”,“办理”,“正规发票”,“保真”,“增值税”,“发票”,“点数”,“优惠”)|S)
=P(S)×P(S)×P(S)×P(S)×P(S)=P(“我”|S)×P(“司”|S)×P(“可”|S)×P(“办理”|S)×P(“正规发票”|S)
×P(S)×P(S)×P(S)×P(S)×P(S)×P(“保真”|S)×P(“增值税”|S)×P(“发票”|S)×P(“点数”|S)×P(“优惠”|S)

为了简化起见,我们以字母xix_i表示每一个词语,并且先不考虑条件“S”。于是上式就变成了下面的独立性公式。

P(x1,x2,x3,x4,x5,x6,x7,x8,x9,x10)P(x_1,x_2,x_3,x_4,x_5,x_6,x_7,x_8,x_9,x_{10})
=P(x1)P(x2)P(x3)P(x4)P(x5)P(x6)P(x7)P(x8)P(x9)P(x10)=P(x_1)P(x_2)P(x_3)P(x_4)P(x_5)P(x_6)P(x_7)P(x_8)P(x_9)P(x_{10})
=P()P()P()P()...P()=P(“我”)P(“司”)P(“可”)P(“办理”)...P(“优惠”)

如果不满足独立性假设,上面的等号就不成立。 那么有没有一个不依赖于任何其他的假设,而能够原原本本地把所有的语序信息都考虑进来的恒等式呢?有,它就是联合概率链规则(chain rule)

P(x1,x2,x3,x4,x5,,xn)P(x_1,x_2,x_3,x_4,x_5,…,x_n)
=P(x1)P(x2x1)P(x3x1,x2)...P(xnx1,x2,...,xn1)=P(x_1)P(x_2|x_1)P(x_3|x_1,x_2)...P(x_n|x_1,x_2,...,x_{n-1})

2.2 从联合概率链规则到n-gram语言模型

上面的联合概率链规则公式虽然考虑到了所有的词和词之间的依赖关系,但是非常复杂,在实际生活中几乎没办法使用,于是我们就想了很多办法去近似这个公式,效果又要求比独立性假设好。比如我们要讲到的语言模型n-gram就是一个这样的简化。

如果我们考虑一个词语对上一个词语的依赖关系,公式就简化成了如下形式,我们把它叫做二元语法(bigram,2-gram):

P(x1,x2,x3,x4,x5,x6,x7,x8,x9,x10)P(x_1,x_2,x_3,x_4,x_5,x_6,x_7,x_8,x_9,x_{10})
=P(x1)P(x2x1)P(x3x2)P(x4x3)..P(x10x9)=P(x_1)P(x_2|x_1)P(x_3|x_2)P(x_4|x_3)..P(x_{10}|x_9)
=P()P()P()P()...P()=P(“我”)P(“司”|“我”)P(“可”|“司”)P(“办理”|“可”)...P(“优惠”|“点数”)

如果把依赖词长度再拉长一点,考虑一个词对前两个词的依赖关系,就叫做三元语法(trigram,3-gram),公式如下:

P(x1,x2,x3,x4,x5,x6,x7,x8,x9,x10)P(x_1,x_2,x_3,x_4,x_5,x_6,x_7,x_8,x_9,x_{10})
=P(x1)P(x2x1)P(x3x1,x2)P(x4x2,x3)×...×P(x10x8,x9)=P(x_1)P(x_2|x_1)P(x_3|x_1,x_2)P(x_4|x_2,x_3)×...×P(x_{10}|x_8,x_9)
=P()P()P(,)P(,)...P(,)=P(“我”)P(“司”|“我”)P(“可”|“我”,“司”)P(“办理”|“司”,“可”)...P(“优惠”|“发票”,“点数”)

如果我们再考虑长一点,考虑n个词语之间的关系,恩恩,这就是n-gram的由来。歪果仁果然取名字简单粗暴又好记…

其实以上几个简化后的公式,就是著名的马尔科夫假设(Markov Assumption):下一个词的出现仅依赖于它前面的一个或几个词。这相对于联合概率链规则,其实是一个有点粗糙的简化,不过很好地体现了就近思路,离得较远和关系比较弱的词语就被简化和省略了。实际应用中,这些简化后的n-gram语法比独立性假设还是强很多的。其实可以把独立性假设理解成为1-gram。

###2.3 怎样选择依赖词的个数“n”?

选择依赖词的个数“n”主要与计算条件概率有关。理论上,只要有足够大的语料,n越大越好,毕竟这样考虑的信息更多嘛。条件概率很好算,统计一下各个元组出现的次数就可以,比如:

P(,)=(,)(,)P(“优惠”|“发票”,“点数”)=\frac{(“发票”,“点数”,“优惠”)出现的次数}{(“发票”,“点数”)出现的次数}

但我们实际情况往往是训练语料很有限,很容易产生数据稀疏,不满足大数定律,算出来的概率失真。比如(“发票”,“点数”,“优惠”)在训练集中竟没有出现,就会导致零概率问题。

又比如在英文语料库IBM, Brown中,三四百兆的语料,其测试语料14.7%的trigram和2.2%的bigram在训练语料中竟未出现!

另一方面,如果n很大,参数空间过大,产生维数灾难,也无法实用。假设词表的大小为100,000100,000,那么n-gram模型的参数数量为100,000n100,000^n。这么多的参数,估计内存就不够放了。

那么,如何选择依赖词的个数n呢?从前人的经验来看:

  • 经验上,trigram用的最多。尽管如此,原则上,能用bigram解决,绝不使用trigram。n取≥4的情况较少。
  • 当n更大时:对下一个词出现的约束信息更多,具有更大的辨别力
  • 当n更小时:在训练语料库中出现的次数更多,具有更可靠的统计信息,具有更高的可靠性、实用性

##3. N-gram实际应用举例

说了这么N-gram语言模型的背景知识,咱们再来看看N-gram语言模型在自然语言处理中有哪些常见应用。

PS:此部分以原理介绍为多,具体的技术实现细节请参考文中链接或者google。

###3.1 词性标注

词性标注是一个典型的序列标注问题,是给序列中的每个词标注一下其所属的词性。常见的词性包括名词、动词、形容词、副词等。而一个词可能属于多种词性。如“爱”,可能是动词,可能是形容词,也可能是名词。但是一般来说,“爱”作为动词还是比较常见的。所以可以统一给“爱”分配为“动词”。这种最简单粗暴的思想非常好实现,如果准确率要求不高则也比较常用。它只需要基于词性标注语料库做一个统计就够了。词性标注语料库一般是由专业人员搜集好了的,可以直接拿来用。

需要比较以下各概率的大小,选择概率最大的词性即可:

P(i")="i"i=1,2,3...P(词性_i|“爱")=\frac{“爱"作为“词性_i”的次数}{“爱"出现的次数} ; i=1,2,3...

但这种方法没有考虑上下文的信息。而一般来说,形容词后面接名词居多,而不接动词,副词后面才接动词,而不接名词。 考虑到词性会受前面一两个词的词性的影响,可以引入2-gram模型提升匹配的精确度。 我们匹配以下这句话(已被空格分好词)中“爱”的词性:

“闷骚的 李雷 很 爱 韩梅梅”

将公式进行以下改造,比较各概率的大小,选择概率最大的词性:

P(i")="i"i=1,2,3...P(词性_i|“很”的词性(副词),“爱")=\frac{前面被“副词”修饰的“爱"作为“词性_i”的次数}{前面被“副词”修饰的“爱"出现的次数} ; i=1,2,3...

计算这个概率需要对语料库进行统计。但前提是你得先判断好“很”的词性,因为采用2-gram模型,进而就需要提前判断“李雷”的词性,需要判断“闷骚的”词性。但是“闷骚的”作为第一个词语,已经找不比它更靠前的词语了。这时就可以考虑用之前最简单粗暴的方法判断“闷骚的”的词性,统一判断为形容词即可。

PS:词性标注是自然语言处理中的一项基础性工作,有其细节实现远比我们介绍地更加丰富。感兴趣的同学可以看看这篇文章《NLTK读书笔记 — 分类与标注》

###3.2 垃圾邮件识别

是的,亲,你!没!看!错!可以用N-gram进行垃圾邮件识别,而且是朴素贝叶斯方法的进化版。下面我们用直观的例子探讨一下其在分类问题上是怎么发挥作用的。一个可行的思路如下:

  • 先对邮件文本进行断句,以句尾标点符号(“。” “!” “?”等)为分隔符将邮件内容拆分成不同的句子。
  • 用N-gram分类器(马上提到)判断每个句子是否为垃圾邮件中的敏感句子。
  • 当被判断为敏感句子的数量超过一定数量(比如3个)的时候,认为整个邮件就是垃圾邮件。

咳咳,有同学问N-gram分类器是什么鬼,这个分类器靠谱么。N-gram分类器是结合贝叶斯方法和语言模型的分类器。这里用Y1,Y2Y_1,Y_2分别表示这垃圾邮件和正常邮件,用XX表示被判断的邮件的句子。根据贝叶斯公式有:

P(YiX)P(XYi)P(Yi)i=1,2P(Y_i|X)\propto P(X|Y_i)P(Y_i) ; i=1,2

比较i=1和2时两个概率值的大小即可得到XX所属的分类。对于句子(“我”,“司”,“可”,“办理”,“正规发票”,“保真”,“增值税”,“发票”,“点数”,“优惠”)用字母XX代表,每一个词语用字母xix_i表示。XX就可以写成一个xix_i组成的向量,xix_i就是这向量中某个维度的特征。P(XYi)P(X|Y_i) 套用2-gram模型。 则上式化简为:

P(YiX)P(XYi)P(Yi)i=1,2P(Y_i|X)\propto P(X|Y_i)P(Y_i) ; i=1,2
P(x1Yi)P(x2x1Yi)P(x3x2Yi)...P(x10x9Yi)P(Yi)\propto P(x_1|Y_i)P(x_2|x_1,Y_i)P(x_3|x_2,Y_i)...P(x_{10}|x_9,Y_i)P(Y_i)
P(Yi)P(Yi)P(Yi)...P(Yi)P(Yi)\propto P(“我”|Y_i)P(“司”|“我”,Y_i)P(“可”|“司”,Y_i)...P(“优惠”|“点数”,Y_i)P(Y_i)

公式中的条件概率也比较好求,举个例子:

P(Yi)=Yi()YiP(“优惠”|“点数”,Y_i)=\frac{在类别Y_i中,(“点数”,“优惠”)出现的次数}{在类别Y_i中,“点数”出现的次数}

剩下的就需要在语料库中间做一个的统计就是了。因为这种方法考虑到了词语前面的一个词语的信息,同时也考虑到了部分语序信息,因此区分效果会比单纯用朴素贝叶斯方法更好。

多提几句,N-gram方法在实际应用中有一些tricks需要注意:

  • 3-gram方法的公式与上面类似。此处省略。从区分度来看,3-gram方法更好些。
  • 句子开头的词,比如本例中的“我”,因为要考虑其本身作为开头的特征,可以考虑在其前面再添加一个句子起始符号如<s>“<s>”,这样我们就不必单独计算P(Yi)P(“我”|Y_i),而是替换为计算P(<s>,Yi)P(“我”|“<s>”,Y_i)。形式上与2-gram统一。 这样统计和预测起来都比较方便。
  • 一般地,如果采用N-gram模型,可以在文本开头加入n-1个虚拟的开始符号,这样在所有情况下预测下一个词的可依赖词数都是一致的。
  • 与朴素贝叶斯方法一样,N-gram模型也会发生零概率问题,也需要平滑技术。 别着急,下面马上讨论到。

###3.3 中文分词

之前说过,中文分词技术是“中文NLP中,最最最重要的基础技术之一”,重要到某搜索引擎厂有专门的team在集中精力优化这一项工作,重要到能影响双语翻译10%的准确度,能影响某些query下搜索引擎几分之一的广告收入。不过简单的分词实现方式中,包含的原理其实也非常易懂。

说起来,中文分词也是一个序列标注问题。 这里用XX表示被分词的句子“我司可办理正规发票”, YiY_i表示该句子的一个分词方案。 咱们继续套用贝叶斯公式:

P(YiX)P(XYi)P(Yi)i=1,2,3...P(Y_i|X)\propto P(X|Y_i)P(Y_i) ; i=1,2,3...

比较这些概率的大小,找出使得P(YiX)P(Y_i|X) 最大的YiY_i即可得到XX 所属的分类(分词方案)了。

YiY_i作为分词方案,其实就是个词串,比如(“我司”,“可”,“办理”,“正规发票”)或者(“我”,“司可办”,“理正规”,“发票”),也就是一个向量了。

而上面贝叶斯公式中P(XYi)P(X|Y_i) 项的意思就是在分类方案 YiY_i 的前提下,其对应句子为XX 的概率。而无论分词方案是(“我司”,“可”,“办理”,“正规发票”)还是(“我”,“司可办”,“理正规”,“发票”),或者其他什么方案,其对应的句子都是“我司可办理正规发票”。也就是说任意假想的一种分词方式之下生成的句子总是唯一的(只需把分词之间的分界符号扔掉剩下的内容都一样)。于是可以将 P(XYi)P(X|Y_i) 看作是恒等于1的。这样贝叶斯公式又进一步化简成为:

P(YiX)P(Yi)i=1,2,3...P(Y_i|X)\propto P(Y_i) ; i=1,2,3...

也就是说我们只要取最大化的P(Yi)P(Y_i) 就成了。而YiY_i就是一个词串,也就是一个向量,可以直接套用我们上面的N-gram语言模型。这里采用2-gram。于是有:

P(Y1)=P()P(Y_1)=P(“我司”,“可”,“办理”,“正规发票”)
=P()P()P()P(=P(“我司”)P(“可”|“我司”)P(“办理”|“可”)P(“正规发票”|“办理”)

第二种分词方案的概率为:

P(Y2)=P()P(Y_2)=P(“我”,“司可办”,“理正规”,“发票”)
=P()P()P()P(=P(“我”)P(“司可办”|“我”)P(“理正规”|“司可办”)P(“发票”|“理正规”)

由于在语料库中“司可办”与“理正规”一起连续出现的概率为0,于是P(Y2)=0P(Y_2)=0 ,P(Y1)P(Y_1) 的概率更高,优先选择Y1Y_1的分词方案。

###3.4机器翻译与语音识别
除了上述说到的应用,N-gram语言模型在机器翻译和语音识别等顶级NLP应用中也有很大的用途。

当然,机器翻译和语音识别是非常复杂的过程,N-gram语言模型只是可以作为其中的一部分,但是缺少它整个过程却进行不下去。对于这两个应用我们不打算罗列大量的公式,而只是举些例子,让大家了解一下语言模型是怎么发挥作用的。

对于机器翻译而言,比如中译英,我们对于同一句话『李雷出现在电视上』,得到的三个译文:

  • LiLei appeared in TV
  • In LiLei appeared TV
  • LiLei appeared on TV

其对应短语的翻译概率是一致的,从短语翻译的角度我们无法评定哪句才是正确的翻译结果。这时候,如果我们再使用语言模型(比如机器翻译里面最常见的是3-gram),我们计算会得到最后一句话的概率:

P(LiLei<s>,<s>)P(appearedLiLei,<s>)P(onLiLei,appeared)P(TVappeared,on)P(“LiLei”|“<s>”,“<s>”)P(“appeared”|“LiLei”,“<s>”)P(“on”|“LiLei”,“appeared”)P(“TV”|“appeared”,“on”)

它高于第一句和第二句的概率:

P(LiLei<s>,<s>)P(appearedLiLei,<s>)P(inLiLei,appeared)P(TVappeared,in)P(“LiLei”|“<s>”,“<s>”)P(“appeared”|“LiLei”,“<s>”)P(“in”|“LiLei”,“appeared”)P(“TV”|“appeared”,“in”)
P(in<s>,<s>)P(LiLeiin,<s>)P(appearedLiLei,in)P(TVappeared,appeared)P(“in”|“<s>”,“<s>”)P(“LiLei”|“in”,“<s>”)P(“appeared”|“LiLei”,“in”)P(“TV”|“appeared”,“appeared”)

因此我们选择第三句作为正确的答案。这也表明大量语料上的语言模型能够在一定程度上,体现出我们表达某种语言时候的说话习惯。

对应到语音识别问题中,我们也会遇到相同的问题,对于以下的2个句子:

  • I went to a party
  • Eye went two a bar tea

或者对应下述2个句子:

  • 你现在在干什么?
  • 你西安载感什么?

其对应的发音是完全一致的,这时如果我们借助于语言模型,我们会算出这句话的概率:

P(I<s>,<s>)P(wentI,<s>)P(toI,went)P(“I”|“<s>”,“<s>”)P(“went”|“I”,“<s>”)P(“to”|“I”,“went”)
×P(awent,to)P(partyto,a)×P(“a”|“went”,“to”)P(“party”|“to”,“a”)

它大于:

P(Eye<s>,<s>)P(wentEye,<s>)P(twoEye,went)P(“Eye”|“<s>”,“<s>”)P(“went”|“Eye”,“<s>”)P(“two”|“Eye”,“went”)
×P(awent,two)P(bartwo,a)P(teaa,bar)×P(“a”|“went”,“two”)P(“bar”|“two”,“a”)P(“tea”|“a”,“bar”)

而这句话的概率:

P(<s>,<s>)P(,<s>)P(,)P(,)P(“你”|“<s>”,“<s>”)P(“现在”|“你”,“<s>”)P(“在”|“你”,“现在”)P(“干什么”|“在”,“现在”)

它远大于

P(<s>,<s>)P(西,<s>)P(西,)P(西,)P(,)P(“你”|“<s>”,“<s>”)P(“西安”|“你”,“<s>”)P(“载”|“西安”,“你”)P(“感”|“西安”,“载”)P(“什么”|“感”,“载”)

因此我们会选择I went to a party你现在在干什么作为正确的语音识别结果。

上面只是简单的举例,但是大家应该看出来了,在机器翻译和语音识别中,N-gram语言模型有着至关重要的地位。同样在现在最顶级的计算机视觉任务『图片内容表述』中,语言模型也发挥着至关重要的作用。语言模型的重要性可见一斑。

##4. 平滑技术

现在我们可以比较专门探讨平滑技术了。为了解决零概率问题呢,我们需要给 “未出现的n-gram条件概率分布一个非零估计值,相应得需要降低已出现n-gram条件概率分布,且经数据平滑后一定保证概率和为1”。这就是平滑技术的基本思想。

###4.1 拉普拉斯平滑

这是最古老的一种平滑方法,又称加一平滑法,其保证每个n-gram在训练语料中至少出现1次。以计算概率P(,)P(“优惠”|“发票”,“点数”) 为例,公式如下:

P(,)=(,)+1(,)+P(“优惠”|“发票”,“点数”)=\frac{(“发票”,“点数”,“优惠”)出现的次数+1}{(“发票”,“点数”)出现的次数+所有不重复的三元组的个数}

在所有不重复的三元组的个数远大于(“发票”,“点数”)出现的次数时,即训练语料库中绝大部分n-gram都是未出现的情况(一般都是如此),拉普拉斯平滑有“喧宾夺主”的现象,效果不佳。

###4.2 古德图灵(Good Turing)平滑

通过对语料库的统计,我们能够知道出现rrr>0(r>0) 的n元组的个数为NrN_r。可以令从未出现的n元组的个数为N0N_0。古德图灵平滑的思想是:

  • 出现0次的n元组也不能认为其是0次,应该给它一个比较小的估计值,比如为d0d_0次。
  • 为了保证总共的(出现和未出现的)n元组的次数不变,其他所有已出现的n元组的次数r应该打一个折扣,比如为drd_r次。
  • 然后再用新的drd_r去计算各个条件概率。

所以问题的关键是计算drd_r为了保证平滑前后n元组的总共出现次数不变,有:

r=0dr×Nr=r=0(r+1)×Nr+1\sum_{r=0}^\infty d_r×N_r=\sum_{r=0}^\infty (r+1)×N_{r+1}

所以干脆令:

dr×Nr=(r+1)×Nr+1r=0,1,2...d_r×N_r=(r+1)×N_{r+1}; r=0,1,2...

这样就可以求出drd_r了。但是,当Nr>Nr+1N_r>N_{r+1} 时,使得模型质量变差。
直接的改进策略就是 “对出现次数超过某个阈值的n元组,不进行平滑,阈值一般取8~10”,其他方法请参见“Simple Good-Turing”

###4.3 组合估计平滑

不管是拉普拉斯平滑,还是古德图灵平滑技术,对于未出现的n元组都一视同仁,而这难免存在不合理。 因为哪怕是未发生的事件,相互之间真实的概率也会存在差别。

另一方面,一个n元组可能未出现,但是其(n-1)元组或者(n-2)元组是出现过的,这些信息如果不利用就直接浪费掉了。在没有足够的数据对高元n-gram模型进行概率估计时,低元n-gram模型通常可以提供有用的信息。 因此可以利用利用低元n-gram模型的信息对高元n-gram模型进行估计:

  • 如果低元n-gram模型的概率本来就很低,那么就给高元n-gram模型一个较低的估计值;
  • 如果低元n-gram模型有一个中等的概率,那么就给高元n-gram模型一个较高的估计值。

常用的组合估计算法有线性差值法Katz回退法。具体公式比较复杂,这里就不列了。感兴趣的同学可参考 Christopher D. Manning 的《统计自然语言处理基础》

##5. 从N-gram谈回贝叶斯方法

聊了这么多N-gram语言模型,我们再回到贝叶斯方法,从实际应用中看看他们的关联。
最原始的用贝叶斯方法进行分类的公式其实非常简单:

P(YiX)P(XYi)P(Yi)i=1,2,3...P(Y_i|X)\propto P(X|Y_i)P(Y_i) ; i=1,2,3...

具体到不同应用中,它就可以演化出多种玩法:

  • 对于拼写纠错(非词错误)XX是错误的词语,YiY_i是候选的改正词语,二者都是标量。
    • 如果考虑先验概率P(Yi)P(Y_i),就是贝叶斯方法
    • 如果不考虑先验概率P(Yi)P(Y_i),就是最大似然法
  • 对于垃圾邮件识别XX是邮件中的句子,YiY_i是备选的邮件类别。XX可以处理成向量,YiY_i还是标量。
    • 如果对向量XX采用条件独立假设,就是朴素贝叶斯方法。
    • 如果对向量XX采用马尔科夫假设,就是N-gram语言模型。
  • 对于中文分词XX是被分词的句子,YiY_i是备选的分词方案(词串)。这里把XX看成是一个整体,所以可以理解成标量。而YiY_i则是向量。这里对向量YiY_i采用马尔科夫假设,也是N-gram语言模型。
2006-01-04 19:18:00 extreme0001 阅读数 3137
  • Java经典算法讲解

    在面试中,算法题目是必须的,通过算法能够看出一个程序员的编程思维,考察对复杂问题的设计与分析能力,对问题的严谨性都能够体现出来。一个算法的好坏,直接影响一个方法调用的性能,进而影响软件的整体性能。算法是学习所有编程语言的基础,在Java的学习过程中首先也会选择以算法起步,本次课程重点讲解Java开发中常用的基本算法。

    31088 人正在学习 去看看 张中强

神经网络与智能信息处理

80年代初,在美国、日本、接着在我国国内都掀起了一股研究神经网络理论和神经计算机的热潮,并将神经网络原理应用于图象处理、模式识别、语音综合及机器人控制等领域。近年来,美国等先进国家又相继投入巨额资金,制定出强化研究计划,开展对脑功能和新型智能计算机的研究。

人脑是自生命诞生以来,生物经过数十亿年漫长岁月进化的结果,是具有高度智能的复杂系统,它不必采用繁复的数字计算和逻辑运算,却能灵活处理各种复杂的,不精确的和模糊的信息,善于理解语言、图象并具有直觉感知等功能。

人脑的信息处理机制极其复杂,从结构上看它是包含有140亿神经细胞的大规模网络。单个神经细胞的工作速度并不高(毫秒级),但它通过超并行处理使得整个系统实现处理的高速性和信息表现的多样性。

因此,从信息处理的角度对人脑进行研究,并由此研制出一种象人脑一样能够“思维”的智能计算机和智能信息处理方法,一直是人工智能追求的目标。

神经网络就是通过对人脑的基本单元---神经元的建模和联结,来探索模拟人脑神经系统功能的模型,并研制一种具有学习、联想、记忆和模式识别等智能信息处理功能的人工系统。本文介绍神经网络的特点以及近年来有关神经网络与混沌理论、模糊计算和遗传算法等相结合的混合神经网络研究的动态。

一.神经网络和联结主义

回顾认知科学的发展,有所谓符号主义和联结主义两大流派。符号主义从宏观层次上,撇开人脑的内部结构和机制,仅从人脑外在表现出来的智能现象出发进行研究。例如,将记忆、判断、推理、学习等心理活动总结成规律、甚至编制成规则,然后用计算机进行模拟,使计算机表现出各种智能。

符号主义认为,认识的基本元素是符号,认知过程是对符号表示的运算。人类的语言,文字的思维均可用符号来描述,而且思维过程只不过是这些符号的存储、变换和输入、输出而已。以这种方法实现的系统具有串行、线性、准确、简洁、易于表达的特点,体现了逻辑思维的基本特性。七十年代的专家系统和八十年代日本的第五代计算机研究计划就是其主要代表。

联接主义则与其不同,其特点是从微观出发。联接主义认为符号是不存在的,认知的基本元素就是神经细胞(神经元),认知过程是大量神经元的联接,以及这种联接所引起的神经元的不同兴奋状态和系统所表现出的总体行为。八十年代再度兴起的神经网络和神经计算机就是这种联接主义的代表。

神经网络的主要特征是:大规模的并行处理和分布式的信息存储,良好的自适应、自组织性,以及很强的学习功能、联想功能和容错功能。与当今的冯.诺依曼式计算机相比,更加接近人脑的信息处理模式。主要表现如下:

神经网络能够处理连续的模拟信号。例如连续灰度变化的图象信号。

☆能够处理混沌的、不完全的、模糊的信息。

☆传统的计算机能给出精确的解答,神经网络给出的是次最优的逼近解答。

神经网络并行分布工作,各组成部分同时参与运算,单个神经元的动作速度不高,但总体的处理速度极快。

神经网络信息存储分布于全网络各个权重变换之中,某些单元障碍并不影响信息的完整,具有鲁棒性。

☆传统计算机要求有准确的输入条件,才能给出精确解。神经网络只要求部分条件,甚至对于包含有部分错误的输入,也能得出较好的解答,具有容错性。

神经网络在处理自然语言理解、图象模式识别、景物理解、不完整信息的处理、智能机器人控制等方面有优势。

符号主义和联接主义两者各有特色,学术界目前有一种看法:认为基于符号主义得传统人工智能和基于联接主义得神经网络是分别描述人脑左、右半脑的功能,反映了人类智能的两重性:精确处理和非精确处理,分别面向认识的理性和感性两个方面,两者的关系应该是互补而非互相代替。理想的智能系统及其表现的智能行为应是两者相互结合的结果。

接下去的问题是,符号AI和联接AI具体如何结合,两者在智能系统中相互关系如何?分别扮演什么角色?目前这方面发表的文献很多,大致有如下几种类型:

1.松耦合模型:符号机制的专家系统与联接机制的神经网络通过一个中间媒介(例如数据文件)进行通讯。

2.紧耦合模型:与松耦合模型相比较,其通讯不是通过外部数据进行,而是直接通过内部数据完成,具有较高的效率。其主要类型有嵌入式系统和黑板结构等。

3.转换模型:将专家系统的知识转换成神经网络,或把神经网络转换成专家系统的知识,转换前的系统称为源系统,转换后的系统称为目标系统,由一种机制转成另一种机制。如果源系统是专家系统,目标系统是神经网络,则可获得学习能力及自适应性;反之,可获得单步推理能力、解释能力及知识的显式表示。当然,转换需要在两种的机制之间,确定结构上的一致性,目前主要问题是还没有一种完备而精确的转换方法实现两者的转换。有待进一步研究。

4.综合模型:综合模型共享数据结构和知识表示,这时联接机制和符号机制不再分开,两者相互结合成为一个整体,既具有符号机制的逻辑功能,又有联接机制的自适应和容错性的优点和特点。例如联接主义的专家系统等。

近年来神经网络研究的另一个趋势,是将它与模糊逻辑、混沌理论、遗传进化算法等相结合,即所谓“混合神经网络”方法。由于这些理论和算法都是属于仿效生物体信息处理的方法,人们希望通过她们之间的相互结合,能够获得具有有柔性信息处理功能的系统。下面分别介绍。

二.混沌理论与智能信息处理

混沌理论是对貌似无序而实际有序,表面上看来是杂乱无章的现象中,找出其规律,并予以处理的一门学科。早在七十年代,美国和欧洲的一些物理学家、生物学家、数学家就致力于寻求在许许多多不同种类的不规则性之间的联系。生物学家发现在人类的心脏中有混沌现象存在,血管在显微镜下交叉缠绕,其中也有惊人的有序性。在生物脑神经系统中从微观的神经膜电位到宏观的脑电波,都可以观察到混沌的性态,证明混沌也是神经系统的正常特性。

九十年代开始,则更进一步将混沌和神经网络结合起来,提出多种混沌神经网络模型,并探索应用混沌理论的各种信息处理方法。例如,在神经元模型中,引入神经膜的不应性,研究神经元模型的混沌响应,研究在神经网络的方程中,不应性项的定标参数,不定性时间衰减常数等参数的性质,以及这些参数于神经网络混沌响应的关系,并确定混沌---神经网络模型具有混沌解的参数空间。经过试验,由这种混沌神经网络模型所绘出的输出图形和脑电图极为相似。

现代脑科学把人脑的工作过程看成为复杂的多层次的混沌动力学系统。脑功能的物理基础是混沌性质的过程,脑的工作包含有混沌的性质。通过混沌动力学,研究、分析脑模型的信息处理能力,可进一步探索动态联想记忆、动态学习并应用到模式识别等工程领域。例如:

☆对混沌的随机不规则现象,可利用混沌理论进行非线性预测和决策。

☆对被噪声所掩盖的微弱信号,如果噪声是一种混沌现象,则可通过非线性辨识,有效进行滤波。

☆利用混沌现象对初始值的敏锐依赖性,构成模式识别系统。

☆研究基于混沌---神经网络自适应存储检索算法。该算法主要包括三个步骤,即:特征提取、自适应学习和检索。

模式特征提取采用从简单的吸引子到混沌的层次分支结构来描述,这种分支结构有可能通过少数几个系统参数的变化来加以控制,使复杂问题简单化。自适应学习采用神经网络的误差反传学习法。检索过程是通过一个具有稳定吸引子的动力学系统来完成,即利用输入的初始条件与某个吸引子(输出)之间的存在直接对应关系的方法进行检索。利用这种方法可应用于模式识别。例如黑白图象的人脸识别。

三.模糊集理论与模糊工程

八十年代以来在模糊集理论和应用方面,也有很大进展。1983年美国西海岸AI研究所发表了称为REVEAL的模糊辅助决策系统并投入市场,1986年美国将模糊逻辑导入OPS---5,并研究成功模糊专家系统外壳FLOPS,1987年英国发表采用模糊PROLOG的智能系统FRIL等。除此通用工具的研制以外,各国还开发一系列用于专用目的的智能信息处理系统并实际应用于智能控制、模式识别、医疗诊断、故障检测等方面。

模糊集理论和神经网络虽然都属于仿效生物体信息处理机制以获得柔性信息处理功能的理论,但两者所用的研究方法却大不相同,神经网络着眼于脑的微观网络结构,通过学习、自组织化和非线性动力学理论形成的并行分析方法,可处理无法语言化的模式信息。而模糊集理论则着眼于可用语言和概念作为代表的脑的宏观功能,按照人为引入的隶属度函数,逻辑的处理包含有模糊性的语言信息。

神经网络和模糊集理论目标相近而方法各异。因此如果两者相互结合,必能达到取长补短的作用。将模糊和神经网络相结合的研究,约在15年前便已在神经网络领域开始,为了描述神经细胞模型,开始采用模糊语言,把模糊集合及其运算用于神经元模型和描述神经网络系统。目前,有关模糊---神经网络模型的研究大体上可分为两类:一类是以神经网络为主,结合模糊集理论。例如,将神经网络参数模糊化,采用模糊集合进行模糊运算。另一类以模糊集、模糊逻辑为主,结合神经网络方法,利用神经网络的自组织特性,达到柔性信息处理的目的。

神经网络相比,模糊集理论和模糊计算是更接近实用化的理论,特别近年来美国和日本的各大公司都纷纷推出各种模糊芯片,研制了型号繁多的模糊推理板,并实际应用于智能控制等各个应用领域,建立“模糊工程”这样一个新领域。日本更首先在模糊家电方面打开市场,带有模糊控制,甚至标以神经---模糊智能控制的洗衣机、电冰箱、空调器、摄象机等已成为新一代家电的时髦产品。我国目前市场上也有许多洗衣机,例如荣事达洗衣机就是采用模糊神经网络智能控制方式的洗衣机。

四.遗传算法

遗传算法(Genetic Algorithm :GA)是模拟生物的进化现象(自然、淘汰、交叉、突然变异)的一种概率搜索和最优化方法。是模拟自然淘汰和遗传现象的工程模型。

GA的历史可追溯到1960年,明确提出遗传算法的是1975年美国Michigan大学的Holland博士,他根据生物进化过程的适应现象,提出如下的GA模型方案:

1.将多个生物的染色体(Chromosmoe)组成的符号集合,按文字进行编码,称为个体。

2.定义评价函数,表示个体对外部环境的适应性。其数值大的个体表示对外部环境的适应性高,它的生存(子孙的延续)的概率也高。

3.每个个体由多个“部分”组合而成,每个部分随机进行交叉及突然变异等变化,并由此产生子孙(遗传现象)。

4.个体的集合通过遗传,由选择淘汰产生下一代。

遗传算法提出之后,很快得到人工智能、计算机、生物学等领域科学家的高度重视,并在各方面广泛应用。1989年美国Goldberg博士发表一本专著:“Genetic Algorithms in Search,Optimization and Machine Learning”。出版后产生较大影响,该书对GA的数学基础理论,GA的基本定理、数理分析以及在搜索法、最优化、机器学习等GA应用方面进行了深入浅出的介绍,并附有Pascal模拟程序。

1985年7月在美国召开第一届“遗传算法国际会议”(ICGA)。以后每隔两年召开一次。近年来,遗传算法发展很快,并广泛应用于信息技术的各个领域,例如:

智能控制:机器人控制。机器人路径规划。

工程设计:微电子芯片的布局、布线;通信网络设计、滤波器设计、喷气发动机设计。

图象处理:图象恢复、图象识别、特征抽取。

调度规划:生产规划、调度问题、并行机任务分配。

优化理论:TSP问题、背包问题、图划分问题。

人工生命:生命的遗传进化以及自增殖、自适应;免疫系统、生态系统等方面的研究。

神经网络、模糊集理论和以遗传算法为代表的进化算法都是仿效生物信息处理模式以获得智能信息处理功能的理论。三者目标相近而方法各异;将它们相互结合,必能达到取长补短、各显优势的效果。例如,遗传算法神经网络和模糊计算相结合方面就有:

神经网络连续权的进化。

传统神经网络如BP网络是通过学习,并按一定规则来改变数值分布。这种方法有训练时间过长和容易陷入局部优化的问题。采用遗传算法优化神经网络可以克服这个缺点。

神经网络结构的进化。

目前神经网络结构的设计全靠设计者的经验,由人事先确定,还没有一种系统的方法来确定网络结构,采用遗传算法可用来优化神经网络结构。

神经网络学习规则的进化。

采用遗传算法可使神经网络的学习过程能够适应不同问题和环境的要求。

☆基于遗传算法的模糊推理规则的优化,以及隶属度函数的自适应调整也都取得很好效果。

上述神经网络、模糊计算、遗传算法和混沌理论等都是智能信息处理的基本理论和方法。近年来学术界将它们统称为“计算智能”。

2018-11-19 10:18:04 zz_hh_uu_ 阅读数 146
  • Java经典算法讲解

    在面试中,算法题目是必须的,通过算法能够看出一个程序员的编程思维,考察对复杂问题的设计与分析能力,对问题的严谨性都能够体现出来。一个算法的好坏,直接影响一个方法调用的性能,进而影响软件的整体性能。算法是学习所有编程语言的基础,在Java的学习过程中首先也会选择以算法起步,本次课程重点讲解Java开发中常用的基本算法。

    31088 人正在学习 去看看 张中强

1、生物技术
(i)纳米生物学;(ii)合成生物学;(iii)基因组和基因工程;(iv)神经科学。
2、人工智能(AI)和机器学习技术
(i)神经网络和深度学习(例如,脑模拟、时间序列预测、分类);(ii)进化和遗传计算(例如遗传算法、遗传编程);(iii)强化学习;(iv)计算机视觉(例如,物体识别、图像理解);(v)专家系统(例如决策支持系统,教学系统);(vi)语音和音频处理(例如,语音识别和制作);(vii)自然语言处理(例如机器翻译);(viii)规划(例如,调度、博弈);(ix)音频和视频处理技术(例如,语音克隆、deepfakes);(x)AI云技术;(xi)AI芯片组。
3、定位、导航和定时(PNT)技术。
4、微处理器技术
(i)片上系统(SoC);(ii)片上堆栈存储器。
5、先进的计算技术,例如:
(i)以内存为中心的逻辑(Memory-centric logic)。
6、数据分析技术
(i)可视化;(ii)自动分析算法;(iii)语境感知计算。
7、量子信息和传感技术
(i)量子计算;(ii)量子加密;(iii)量子传感。
8、物流技术
(i)移动电力系统;(ii)建模和模拟系统;(iii)资产总体可见度;(iv)基于配送的物流系统(DBLS)。
9、增材制造(例如3D打印)。
10、机器人
(i)微型无人机和微型机器人系统;(ii)集群技术;(iii)自组装机器人;(iv)分子机器人;(v)机器人编译器;(vi) 智能微尘。
11、脑机接口
(i)神经控制接口;(ii)意识-机器接口;(iii)直接神经接口;(iv)脑-机接口。
12、高超音速空气动力学
(i)飞行控制算法;(ii)推进技术;(iii)热保护系统;(iv)专用材料(用于结构、传感器等)。
13、先进材料,例如:
(i)自适应伪装;(ii)功能性纺织品(例如先进的纤维和织物技术);(iii)生物材料。
14、先进的监控技术
面印和声纹技术。

没有更多推荐了,返回首页