模式识别与智能系统概论课程报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
课程报告
一、人工智能与模式识别的研究已有多年,但似乎公认的观点认为它仍然非常困难。
在查阅文献或网络的基础上,试对你所熟悉的任一方向(如人像识别、语音识别、字符识别、自然语言理解、无人驾驶等等)的发展状况进行描述。
并设想如果你将从事该方向的研究,你打算如何着手,以建立有效的理论和方法;或者你认为现在的理论和方法有何缺陷,有什么办法来进行改进?(10分)
语音识别属于感知智能,而让机器从简单的识别语音到理解语音,则上升到了认知智能层面,机器的自然语言理解能力如何,也成为了其是否有智慧的标志,而自然语言理解正是目前难点。
总结目前语音识别的发展现状,dnn、rnn、lstm和cnn算是语音识别中几个比较主流的方向。
长短时记忆网络可以说是目前语音识别应用最广泛的一种结构,这种网络能够对语音的长时相关性进行建模,从而提高识别正确率。
双向LSTM网络可以获得更好的性能,但同时也存在训练复杂度高、解码时延高的问题,尤其在工业界的实时识别系统中很难应用。
语音识别发展现状面临窘境:1)噪声鲁棒性:做声环境下的鲁棒语音识别一直是语音识别大规模应用的主要绊脚石,我们如何在一些噪声场景比较大的情况下,比如说我们的马路、咖啡厅,公共汽车,飞机场,以及会议室,大巴上等等,使得得到很高的识别精度,这是非常具有挑战性的。
环境感知的深度模型以及神经网络的快速自适应方法,它使得我们一般的深度模型可以对环境进行一个实时的感知和自适应调整,来提高实现系统性能,就像人耳一样。
另外我们也将极深卷积神经网络用于抗噪的语音识别得到巨大的系统性能的提升。
2)多类复杂性:过去的大部分语音识别系统的设计主要是针对一些单一环境、单一场景下进行设计的,如何做多类别复杂场景下的通用的语音识别是非常困难的,比如说在Youtube或者BBC上的一些数据,可以来自各种各样的语境和场景,有新闻广播、新闻采访、音乐会、访谈、电影等等。
3)低数据资源与多语言:目前大部分语音识别的研究和应用,主要是基于一些大语种,比如说英语、汉语、阿拉伯语和法语等等,我们知道世界上一共有6900多种语言,如何快速的实现一套基于任何语言的语言识别系统是非常困难的,它也具有重大的战略意义。
二、论述建立专家系统的一般步骤。
(10分)
是否拥有大量知识是专家系统成功与否的关键,因而知识表示就成为设计专家系统的关键
(1) 设计初始知识库:问题知识化, 知识概念化, 概念形式化, 形式规则化, 规则合法化
(2)原型机(prototype)的开发与试验:建立整个系统所需要的实验子集,它包括整个模型的典型知识,
而且只涉及与试验有关的足够简单的任务和推理过程
(3)知识库的改进与归纳:反复对知识库及推理规则进行改进试验,归纳出更完善的结果
三、查阅统计模式识别的相关文献,论述一种统计模式识别方法、具体实现过程及其应用情况,给出所参考的文献。
(10分)
SVM:
SVM是一种二类分类模型,其基本模型定义为特征空间上的间隔最大的线性分类器,其学习策略便是间隔最大化,最终可转化为一个凸二次规划问题的求解。
实现过程:
外循环(优先遍历间隔边界上的支持向量点,即0<αi<C的点,也叫做非边界数据样本):
(1) 查找第一个αi:
顺序计算一个样本xi
计算个g(xi)=∑[k:1-N]αk*yk*K(xi,xk)+b,看是否违反KKT条件
当αi=0<=>yi*g(xi)>10<αi<C<=>yi*g(xi)=1αi = C<=>yi*g(xi)<1
选择违反KKT条件最严重的样本点,修改其αi.
KKT条件可改为以下:
当αi = 0 <=> yi*Ei>0 0<αi<C<=> yi*Ei=0 αi = C<=> yi*Ei<0
内循环:
(2) 查找第二个αj:
计算所有样本的E,E=g(x)-y ,选择最大|Ei-Ej|的样本
(3) 更新优化αi和αj:
计算约束值,边界值:
如果yi != yj 则:L=max(0,αj-αi),H=min(C,C+αj-αi)
如果yi = yj 则:L=max(0,αi+αj-C),H=min(C,αi+αj)
αj=αj-yi(Ei-Ej)/ηη=2K<xi,xj>-K<xi,xi>-K<xj,xj>
αj = H if αj>H = αj if L<=αj<=H = L if αj<L
αi=αi+yiyj(αj'old-αj)
(4) 计算b值
b1=b-Ei-yi*(αi-αi'old)K<xi,xi>-yj*(αj-αj'old)K<xi,xj>
b2=b=Ej-yi*(αi-αi'old)K<xi,xj>-yj*(αj-αj'old)K<xj,xj>
如果0<αi<C和0<αi<C,那么b1=b2
如果αi=0或者αi=C,同时αj=0或者αj=C,则取中间值b=(b1+b2)/2
总之:
b = b1 if 0<αi<C
= b2 if 0<αj<C
= (b1+b2)/2 otherwise
循环直到所有样本都满足KKT条件,则结束循环,但一般设置个容忍值,所有样本在容忍值范围内则可以结束
应用情况:
支持向量机可以用于各种分类任务,人脸识别,鸢尾花分类,等等
四、查阅模糊模式识别的相关文献,论述一种模糊模式识别方法、具体实现过程及其应用情况,给出所参考的文献。
(10分)
模糊模式识别是模式识别的-一个最新分支。
用模糊数学的方法来处理问题就比较接近实际情况;其次,采用模糊数学的方法,在许多情况下、计算较简单。
模糊识别方法能更好地反映模式识别中的不确定性质。
基于模糊集论的模糊识别方法,又可以分为最大隶属度法、最大贴近度法、最小距离法和混合法。
基本过程:
(1)特征的变换
类别本质和特征表象之间可能存在复杂的非线性关系,为使它们之间的关系更为直接和简单,将原来或测得的特征值域分成若干部分,使各部分的特征含义也作本质的改变。
于是原先的每个或几个特征分量转变为多个特征分量,并且使每个特征值是原特征的某一局部更本质特征的隶属度。
用这些新的特征表示原来的目标,在原理上,由于这些新的特征能更好的反映目标的本质,因此对后续的分类器的设计提供了很大的方便,同时也能提高分类器的性能。
(2)建立隶属度函数
根据具体情况采用适当方法建立模糊集的隶属函数。
隶属函数的确定是主观的,是感知或表达抽象概念的个体差异造成的,而与随机性无关。
确定隶属函数需要确定什么做论域,什么做模糊集。
隶属函数的确定常用的方法有专家确定法,统计法,对比排序法和综合加权法等等。
(3)确立模糊相似关系
设计过程中任一设计因素、概念或特征均可用集合表示,其中的模糊性便构成了模糊集合,一个模糊集合是完全以隶属函数和隶属度来描述与量化的。
根据实际情况,可以运用极值统计法,也可以按照普通的聚类技术中相关测度方法,可以采用模糊集的贴近度方法等进行计算,来确定分类目标中元素之间的模糊相似关系。
确定相似关系后,可以根据得出的结果模糊相似关系来对集合进行分类。
(4)模糊结果的处理
使用模糊技术进行分类的结果以一定的隶属度属于各个类别.这样的结果往往更真实,具有更多的信息。
如果分类识别系统是多级的,这样的结果有益于下一级的决策。
如果这是最后一级决策,而且要求一个明确的类别判决,可以根据模式相对各类的隶属度或其他一些指标,如贴近度等进行硬性分类。
应用情况:小麦亲本品种的模糊模式识别
参考文献:
《模糊模式识别方法及应用》王迎庆
《模糊模式识别的基本方法及其应用》李志亮,罗芳
五、查阅神经网络模式识别的相关文献,论述一种神经网络模式识别方法、具体实现过程及其应用情况,给出所参考的文献。
(10分)
HNN:
HNN是一种循环神经网络,是一种递归神经网络,从输出到输入均有反馈连接,每一个神经元跟所有其他神经元相互连接,又称为全互联网络。
HNN是反馈神经网络,其输出端又会反馈到其输入端,在输入的激励下,其输出会产生不断的状态变化,这个反馈过程会一直反复进行。
1.离散型
Hopfield最早提出的网络是二值神经网络,各神经元的激励函数为阶跃函数或双极值函数,神经元的输入、输出只取{0,1}或者{-1,1},也称为DHNN(Discrete Hopfiled Neural Network)。
所输出的离散值1和0或者1和-1分别表示神经元处于激活状态和抑制状态。
DHNN联想记忆功能:DHNN一个重要功能是可以用于联想记忆,即联想存储器,这是人类的智能特点之一。
DHNN局限性:(1)记忆容量的有限性;(2)伪稳定点的联想与记忆;(3)当记忆样本较接近时,网络不能始终回忆出正确的记忆等;(4)DHNN平衡稳定点不可以任意设置,也没有一个通用的方式来事先知道平衡稳定点。
2.连续型:
CHNN(Continuous Hopfield Neural Network)与DHNN在拓扑结构上是一致的。
CHNN在时间上是连续的,所以CHNN网络中各个神经元是处于同步方式工作的。
当CHNN网络的神经元传递函数g是连续且有界的(如Sigmoid函数),并且CHNN网络的权值系数矩阵对称,则这个CHNN网络是稳定的。
CHNN与DHNN主要区别:CHNN与DHNN的主要差别在于:CHNN神经元激活函数使用Sigmoid函数,而DHNN神经元激活函数使用了硬极限函数。
Hopfield神经网络应用:Hopfield神经网络早期应用包括按内容寻址存储器,模数转换及优化组合计算等。
具有代表意义的是解决TSP问题,1985年Hopfield和Tank用Hopfield网络求解N=30的
TSP问题,从而创建了神经网络优化的新途径。
除此之外,Hopfield 神经网络在人工智能之机器学习、联想记忆、模式识别、优化计算、VLSI和光学设备的并行实现等方面有着广泛应用。
参考文献:
《人工神经网络模式识别的机理与意义》范馨文
《人工智能之Hopfield神经网络(HNN)》《深度学习专栏》
六、查阅数据聚类的相关文献,论述一种数据聚类方法、具体实现过程及其应用情况,给出所参考的文献。
(10分)
K-means:
k均值聚类算法(k-means clustering algorithm)是一种迭代求解的聚类分析算法,预将数据分
为K组,则随机选取K个对象作为初始的聚类中心,然后计算每个对象与各个种子聚类中心之间的
距离,把每个对象分配给距离它最近的聚类中心。
聚类中心以及分配给它们的对象就代表一个聚类。
每分配一个样本,聚类的聚类中心会根据聚类中现有的对象被重新计算。
这个过程将不断重复直到
满足某个终止条件。
终止条件可以是没有(或最小数目)对象被重新分配给不同的聚类,没有(或
最小数目)聚类中心再发生变化,误差平方和局部最小。
具体实现:
(1)分配(Assignment):将每个观测分配到聚类中,使得组内平方和达到最小。
其中每个都只被分配到一个确定的聚类。
(2)更新(Update):以聚类中观测值的图心,作为新的均值点。
这一算法将在对于观测的分配不再变化时收敛。
使用这一算法无法保证得到全局最优解。
相关应用:特征学习
在(半)监督学习或无监督学习中,k-均值聚类被用来进行特征学习(或字典学习)步骤。
基本方
法是,首先使用输入数据训练出一个k-均值聚类表示,然后把任意的输入数据投射到这一新的特征空间。
k-均值的这一应用能成功地与自然语言处理和计算机视觉中半监督学习的简单线性分类器结合起来。
在对象识别任务中,它能展现出与其他复杂特征学习方法(如自动编码器、受限Boltzmann 机等)相当的效果。
然而,相比复杂方法,它需要更多的数据来达到相同的效果,因为每个数据点
都只贡献了一个特征。
参考文献:
Honarkhah, M and Caers, J, 2010, Stochastic Simulation of Patterns Using Distance-Based Pattern Modeling, Mathematical Geosciences, 42: 487 – 517
Coates, Adam; Ng, Andrew Y. Learning feature representations with k-means (PDF). G. Montavon, G. B. Orr, K.-R. Müller. Neural Networks: Tricks of the Trade. Springer. 2012 [2015-04-02]. MacKay, David. Chapter 20. An Example Inference Task: Clustering (PDF). Information Theory, Inference and Learning Algorithms. Cambridge University Press. 2003: 284–292 [2015-04-02]. ISBN 0-521-64298-1. MR 2012999.
七、编程实现任意一种模式识别(分类)或人工智能、智能控制方法,将问题描述、功能实现介绍、程序(添加注释)和实验结果、以及心得体会详细论述,可附图表等。
并请将程序、测试用数据、实验结果等(不提交此电子资料者,此题不得分)与考察报告电子版一起压缩后发至zhenhua.li@。
(10分)
人工智能与机器人刘姝涵201800171191
平时作业1:
一、 试问“模式”与“模式类”的含义。
如果一位姓王的先生是位老年人,试问“王先生”和“老头”谁是模式,谁是模式类。
试从模式类与模式概念分析以下词之间的关系: 王老头,王老太,王明(清华大学本科生),周强(年轻教师),老年人,老头,老太,年青人。
模式类”是一类事物的代表,概念或典型,“模式”则是某一事物的具体体现。
1、王老头是模式,是“老年人”或“老头”的具体化
2、王老太是模式,是“老年人”或“老太”的具体化
3、王明(清华大学本科生)是模式,是“年轻人”的具体化
4、周强(年轻教师)是模式,是“年轻人”的具体化
5、老年人是模式类,老头是模式类,老太是模式类,年轻人也是模式类
二、假设在某个局部地区的细胞识别中,第一类表示正常,第二类表示异常,两类的先验概率分别为:正常1()0.8P ω=,异常2()0.2P ω=。
现有一待识别样本细胞,其观察值为x ,从类条件概率密度函数曲线()i P ωx 上查得:1()0.3P ω=x ,2()0.4P ω=x ,试按最小错误率贝叶斯决策规则判断该细胞是否正常。
若已知损失矩阵为0720⎡⎤⎢
⎥⎣⎦
,试按最小风险贝叶斯决策规则判断该细胞是否正常。
根据最小错误率贝叶斯规则:
P(ω1|x)=0.8*0.3/(0.8*0.3+0.2*0.4)=0.75
P(ω2|x)=1-P(ω1|x)=0.25
P(ω1|x)> P(ω2|x)
正常
R(σ1|x)=∑λ1i P(ωi|x)=7*0.25=1.75
R(σ2|x)=∑λ2i P(ωi|x)=2*0.75=1.5
R(σ1|x)> R(σ2|x)
正常 平时作业2:
一、 请简述BP 神经网络的结构及学习过程 BP 神经网络是最基础的神经网络,其输出结果采用前向传播,误差采用反向(Back Propagation )传播方式进行。
BP 神经网络是有监督学习。
BP 神经网络是一种按误差逆传播算法训练的多层前馈网络,是目前应用最广泛的神经网络模型之一。
BP 网络能学习和存贮大量的 输入-输出模式映射关系,而无需事前揭示描述这种映射关系的数学方程。
它的学习规则是使用最速下降法,通过反向传播来不断 调整网络的权值和阈值,使网络的误差平方和最小。
学习过程由信号的正向传播与误差的反向传播两个过程组成。
正向传播时,输入样本从输入层传入,经各隐层逐层处理后,传向输出层。
若输出层的实际输出与期望的输出不符,则转入误差的反向传播阶段。
反向传播时,将输出以某种形式通过隐层向输入层逐层反传,并将误差分摊给各层的所有单元,从而获得各层单元的误差信号,此误差信号即作为修正各单元权值的依据。
基本结构:模仿人类的神经元激活、传递过程。
以三层神经网络为例,BP神经网络含输入层、隐含层、输出层三层结构。
输入层接收数据,输出层输出数据,前一层神经元连接到下一层神经元,收集上一层神经元传递来的信息,经过“激活”把值传递给下一层。
BP网络采用的传递函数是非线性变换函数——Sigmoid函数。
其特点是函数本身及其导数都是连续的。
学习过程:BP网络的学习算法就是BP算法,又叫δ 算法。
BP学习算法中,各层权值调整公式形式上都是一样的,均由3个因素决定,即:学习率η、本层输出的误差信号δ、本层输入信号Y(或X)其中输入层误差信号与网络的期望输出与实际输出之差有关,直接反应了输出误差,而各隐层的误差信号与前面各层的误差信号有关,是从输出层开始逐层反传过来的。
BP神经网络的训练过程分两部分:前向传输,逐层波浪式的传递输出值:随机初始化权重和偏置,对每一个权重取[−1,1]的一个随机实数,每一个偏置取[0,1]的一个随机实数,之后就开始进
行前向传输。
首先设置输入层的输出值,假设属性的个数为100,那我们就设置输入层的神经单元个数为100,输入层的结点Ni,除输入层外,其他各层的输入值是上一层输入值按权重累加的结果值加上偏置,每个结点的输出值等该结点的输入值作变换。
逆向反馈,反向逐层调整权重和偏置:逆向反馈从最后一层即输出层开始。
调整网络的参数,即权重值和偏置值,而调整的依据就是网络的输出层的输出值与类别之间的差异,通过调整参数来缩小这个差异,这就是神经网络的优化目标。
二、请简述K-均值算法的实现过程。
K-Means算法思想:对给定的样本集,事先确定聚类簇数K,让簇内的样本尽可能紧密分布在一起,使簇间的距离尽可能大。
该算法试图使集群数据分为n组独立数据样本,使n组集群间的方差相等,数学描述为最小化惯性或集群内的平方和。
K-Means作为无监督的聚类算法,实现较简单,聚类效果好,因此被广泛使用。
输入:样本集D,簇的数目k,最大迭代次数N;
输出:簇划分(k个簇,使平方误差最小);
算法步骤:
(1)为每个聚类选择一个初始聚类中心;
(2)将样本集按照最小距离原则分配到最邻近聚类;
(3)使用每个聚类的样本均值更新聚类中心;
(4)重复步骤(2)、(3),直到聚类中心不再发生变化;
(5)输出最终的聚类中心和k个簇划分。
平时作业3:
一、请简述不确定性知识的表示与推理的常用方法。
不确定性产生式规则的表示为:A→(B,C(B|A))
不确定性推理的一般模式:不确定性推理=符号推演+信度计算
不确定性推理模型:确定性理论(确定因素方法)、主观贝叶斯方法、证据理论
1.确定性理论:
①不确定性度量
CF(CertaintyFactor),称为确定性因子,(一般亦称可信度),其定义为
P(H|E)>P(H)
P(H|E)=P(H)
CF(H∣E)=
P(H|E)<P(H)
其中,E表示规则的前提,H表示规则的结论,P(H)是H的先验概率,P(H|E)是E为真时H为真的条件概率。
CF的取值范围为[-1,1]。
CF=1,表示H肯定真;CF=-1,表示H肯定假;CF=0,表示H与E无关。
CF是由称为信任增长度MB和不信任增长度MD相减而来的。
即:CF(H,E)=MB(H,E)-MD(H,E) ②前提证据事实总CF值计算
CF(E1∧E2∧…∧En)=min{CF(E1),CF(E2),…,CF(En)}
CF(E1∨E2∨…∨En)=max{CF(E1),CF(E2),…,CF(En)}
其中E1,E2,…,En是与规则前提各条件匹配的事实。
③推理结论CF值计算
CF(H)=CF(H,E)·max{0,CF(E)}
其中E是与规则前提对应的各事实,CF(H,E)是规则中结论的可信度,即规则强度。
④重复结论的CF值计算
若同一结论H分别被不同的两条规则推出,而得到两个可信度CF(H)1和CF(H)2,则最终的CF(H)为
CF(H)1+CF(H)2-CF(H)1·CF(H)2
当CF(H)1≥0,且CF(H)2≥0
CF(H)=CF(H)1+CF(H)2+CF(H)1·CF(H)2
当CF(H)1<0,且CF(H)2<0
CF(H)1+CF(H)2否则
2.基于程度语言值的不确切性知识表示及推理
程度推理的一般模式:程度推理=符号推演+程度计算
3.基于模糊集合与模糊逻辑的模糊推理
模糊推理是基于不确切性知识(模糊规则)的一种推理。
二、请简述几种常用的深度学习框架。
1.Caffe
Caffe,全称Convolutional Architecture for Fast Feature Embedding,是一个兼具表达性、速度和思维模块化的深度学习框架。
由伯克利人工智能研究小组和伯克利视觉和学习中心开发。
虽然其内核是用C++编写的,但Caffe有Python和Matlab 相关接口。
Caffe支持多种类型的深度学习架构,面向图像分类和图像分割,还支持CNN、RCNN、LSTM和全连接神经网络设计。
Caffe支持基于GPU和CPU的加速计算内核库,如NVIDIA cuDNN和Intel MKL。
2.TensorFlow
TensorFlow是由谷歌大脑团队的研究人员和工程师开发的,它是深度学习领域中最常用的软件库,并且是完全开源的,有出色的社区支持。
TensorFlow为大多数复杂的深度学习模型预先编写好了代码,比如递归神经网络和卷积神经网络。
TensorFlow如此流行的最大原因之一是支持多种语言来创建深度学习模型,比如Python、C和R,并且有不错的文档和指南。
TensorFlow有许多组件,其中最为突出的是:
Tensorboard:帮助使用数据流图进行有效的数据可视化
TensorFlow:用于快速部署新算法/试验
TensorFlow的灵活架构使我们能够在一个或多个CPU(以及GPU)上部署深度学习模型。