精华内容
下载资源
问答
  • 模式分类 绪论

    千次阅读 2015-08-09 00:19:42
    模式分类,绪论


    姗姗来迟的文章,依旧是老风格,先来几句废话,现在工作比较忙,也成功的转型到了本行,不用忍受各种“xx领导对你很不满意”这种恶心人的话了,可以安静的,专心的做的我的非主流科学家。
    做技术的人,我们对自己的技术水平必须有一个客观的认识,不管现在什么职位,多少收入,这只能从另一个角度佐证一个人的能力,但距离自己心中的水平差多少,只有自己能评估出来,有差距,就去学,去做,去思考。
    废话完毕。
    本系列博客内容为对《模式分类》学习的总结和问题讨论,如有纰漏或错误,请各位留言指正,谢谢。
    #模式分类 绪论
    绪论,多半都是告诉读者,我们的书是讲什么的,然后我们的书有多么多么的好,都有谁在用,巴拉巴拉一大堆(国内的书都这样),但这个绪论却让人一头雾水,它先介绍了模式分类是啥,然后给出好多好多问题,后面给了一句“哦,这些问题你看了这本书可能也解决不了”,让人哭笑不得,本书数学成分很多,所以,要做好持久战的准备,但绪论最后一部分还是很有鼓舞的,就是这些问题虽然还没有解决办法,但是我们非常肯定一定有一天会解决,原因就是这个系统的存在已经不需要证明了,我们自己就是活的模式分类系统,低功耗,高准确,高速,高可扩展性,高学习能力。。。。
    ##机器感知
    机器感知,让机器(计算机)能够进行一些识别、分类能力。比如人能很轻易的拿起一个苹果咬一口,说出甜的酸的,而不会拿起一个鼠标津津有味的品尝,这种能力可以叫为感知,可以通过一些事物的某些特点,来判断推测其属性,下面开始介绍一些名词,还是根据上面吃苹果和吃鼠标的例子:

    特征:上面例子里面,我们区分了苹果和旁边的鼠标,可能通过苹果和鼠标的形状,或者颜色,也有可能是味道,但不管通过什么,都是他们本身的一种属性,这个又可以叫做特征(Feature)。
    模型:原文用的两种鱼进行分类,但根据我们上面的例子,鼠标和苹果他们从某种角度可以用不同数学度量来分别表示自己的某些特征,这个就是两个东西有不同模型。
    模式分类:为了将苹果和鼠标,我们通过我们的传感器,测得两个物体某一属性的不同数据,根据模型(由测得的数据类型组成的模型)来将物体进行分类(到底是苹果还是鼠标)的这个过程,换句话说,我们设计采集属性,建立采集属性的模型,区分不同类之间的模型。
    数据采集:这个词不是解释它的意思,它的意思就是数据采集没有别的意思,但是这里要说一下的是,一旦数据经过采集,那么原有信息一定会丢失,而且大部分时间采集以后的数据丢失率是很高的,我们期望采集到的是更多的,对分类更有利的数据,尽量抛弃无用信息。
    总体代价函数:完美主义者对这个可能比较反感,不得不说,不论什么分类都有出错的时候,而我们的目标是最大可能的降低出错率,或者将一个叫做“代价函数”的函数最小化,代价函数可以这样通俗一下:如果你把苹果当做了鼠标,你的代价是,不能工作了;如果你把鼠标当做了苹果,并且吃了下去,你的代价就是轻者手术,重者呜呼。这就是你分错类的代价,所以你宁可天天把苹果当鼠标,也不愿意把鼠标当苹果。当代价分配为所有出错的惩罚都一样的时候,等效于最小化出错率。
    决策:模式分类(模式识别,模式判别)种最关键的一步,其本质是信息压缩的过程,比如一个苹果拥有的所有数据经过决策后他只有一个属性(苹果)

    对于特定任务的性质:我们设计出来的模式分类算法或者系统都是针对某一特定问题,比如区分鼠标和苹果,这个算法或者系统可能并不适用于分类苹果和橘子,能够通用识别各种各样物体的系统,除了人和部分高级动物外,目前还是个大问题(书中作者表示,现在真的搞不定0.0)。
    本书中使用个较多是基于统计特性的模式,从概率的观点来解释一些原理,实现一些系统,概率论不好的速度去补习。
    另外模式表达有很多种,但常用的是两种,一种是实数向量法,比如苹果的(重量,高度,最大宽度)为(10,10,20),这就是一个实数向量的模式表示,其中每一个项都是一个特征,还有一些特征也是实数向量,但其本身的物理含义不明确,或者不直观,比如SIFT特征的128维描述子。还有一种是属性列表的模式表达,比如苹果的属性列表(颜色,产地,口感)为(红,山东,甜),这就是个属性列表组成的模式。
    我们更倾向于,使用较少的特征,完成最好的分类,较少的特征带来的好处是

    a)更简单的分类区间
    b)更容易训练的分类器

    当样本空间不足或者特征都不太好用时候,可以加入第三方知识背景,但前提是你能得到这些信息,比如苹果是妈妈拿到桌子上的,鼠标是自己拿到桌子上的,如果我们的机器捕捉到,这个物体是自己拿出来的,所以更倾向于判定物体为鼠标。
    模式识别种集中比较重要的技术:

    回归分析
    函数内插
    概率密度估计

    需要说明的是,机器感知的概念是很大,就像人工智能一样,是一个大方向,而我们更多的是在做这个大方向种的一块小小的工作。
    本文的整体结构:

    ![这里写图片描述](https://img-blog.csdn.net/20150808173446885)

    ##模式识别系统
    结合我少量的工作经验,模式识别系统是我们主要的,要设计算法的地方,整个系统的难点,但是相信我设计循环,也就是下一部分才是工作量最大的地方。
    首先来看模式识别系统一般的整体结构和工作流程:

    ![这里写图片描述](https://img-blog.csdn.net/20150808230047475)

    接下来详细的介绍下识别系统的各部分,其实这些如果做过一次模式识别程序的人,基本都有做过这些步骤,比较通用的一种系统结构。首先是信号的获取,无论是光学信号,电信号,声音信号,还是力学信号,输入到计算机,那么必须要采样,或者叫做采集,于是必须使用传感器,通过采集后的信号混有噪声和干扰信号,分割后,我们提取我们关心的信号,去除不关心的或者少部分比较关心的信号,选择可靠的特征,进行分类,最后根据分类结果进行决策。

    1)传感器:传感器是对信号进行采集的设备,可以根据具体问题选择,本系列不研究硬件采集设备,但必须要知道的是,大部分信号噪声是这里产生的,而且只要有采样就有信息损失,这是无法避免的。
    2)分割器,这是模式识别系统里面最深层的问题之一,也是最难解决的环节,这个环节的成败和效果对分类结果会产生直接影响,分割其实是组织结构学中的一个问题,也就是我们更关心数据集合中的一个子集,而如何不偏不倚的得到这个子集,是一个很困难的问题。如何找到一张图片中的人脸,直接决定了识别这个人脸是谁的结果,如果一张草原上的人的图片,分割的结果是两个羊驼的脸,想识别出这个脸的身份肯定没戏。而人类的视觉就具有这种不可思议的功能,仔细思考,真的太神奇了。
    3)特征提取,特征提取和分类器之间界限不是很清楚,因为有时候不用提取特征也可以进行分类,或者如果你的分类器已经进化到一定阶段以后,可以完全对输入信号进行准确分类,而不需复杂的特征提取过程,但是这里讲特征提取拎出来讲的原因,是我们更希望有这样一个部分使得,同类信号进行分类时其信号特征非常相近,而不同类之间的信号特征尽可能远离,而且更重要的一点是,计算出来的特征,对非类别变化的其他变化不敏感(翻译通俗一点就是,一个苹果这么旋转,怎么切,怎么咬,它计算出来的特征值都应该不变,或者还是更接近苹果那一类,而不是鼠标),特征提取面向问题,不同的问题,有不同的解决办法。
    4)分类器:未来我们主要研究的是分类器,这个器的主要功能就是特征提取后或者直接对输入信号进行分类,此处进行后信息会被压缩很多,比如判断鼠标和苹果,如果用图像的话,一张640X480的灰度图(8 bits),共有, 8 b i t s × 640 × 480 8bits \times 640 \times 480 8bits×640×480位的信号,而压缩后的信号只有,是苹果,是鼠标,即只有1Bits。 分类器主要面对的挑战是信号的波动,同类之间的波动,和不同类之间的波动,或者有可能出现信号的丢失,各种各样的问题。
    5)后处理主要要考虑的是代价函数,或者叫做损失函数,或者根据上下文的一些信息,进行最后的决断。

    这里必须要明确的一个事情就是,千万别想一次,一个简单的处理就能解决模式识别问题,这是一个环环紧扣的复杂系统,所以怕麻烦或者不愿意深入研究只想了解一些皮毛去应付什么的话,这里真的不好混。
    ##设计循环
    设计循环,这个项目进行的循环过程,一个痛苦的过程,不过每次痛苦都是进化,来看看我们的进化路线:

    ![这里写图片描述](https://img-blog.csdn.net/20150808235106754)

    好吧,说说我的痛苦经历,采集数据是最痛苦的,首先必须准备好资金,因为你面临着选择传感器和传感系统的问题,最简单的,做视觉都知道相机的重要性,以及场景的光线,背景等,这些理论上在设计阶段都是可控的,但必须要考虑到你目前问题的规模和你的自己预算,这部分成本必须要考虑到,不然就只能做点简单的设计,想要得到好的结果,这部分不可避免,而且有一些是从算法或者其他后处理解决不了的。而且,数据采集的工作远大于其他部分!!
    特征选择相对来说更加偏向设计,也是比较考察个人的先验知识,对整个问题的把握,这部分以及下一部分选择模型都是对知识的应用以及对知识了解的程度来决定好坏的,所以要多研究理论,然后这个时候就可以让理论大显神通了,切记不要一个个的试(这种方法叫做穷举,当使用这种方法进行破解的时候,叫做暴力破解,我以前的组长,高级工程师,高级项目经理,资深员工,不知道穷举啥意思,这里给他科普一下,不过他估计没时间看技术博客,应该是去做周报去了),所有这些选择模型和特征,都来自基础知识的运用,加上个人的灵感以及对问题的理解,这个是要重点修炼的地方。书上也重点强调了选择的重要性,但目前还没有一种通用的方法,帮我们做这些选择,这里真正的体现工程师的智慧和知识功底,只会跟着别人走的人只能叫干活的,而不是工程师!
    训练模型就相对容易了,只是完成你的分类代码,让计算机飞快的计算你的算法, 这里也有一个问题就是计算量,如何降低学习过程的运算量(时间复杂度,空间复杂度),以及你目前的计算资源都是要考虑的,但是最近几十年的研究表明,基于样本的学习是设计分类器最有效的办法。
    评价过程就是你对结果以及整个过程的接受与否,包括例如结果是否存在“过拟合”或者“欠拟合”的问题,计算过程时间复杂度的问题,这个过程对测试过程计算复杂度要求更苛刻一些,相比之下学习过程的复杂度要求更宽松,但也要追求高效。
    ##学习和适应
    这部分主要讲解学习算法的一些基础知识:

    监督学习:给出分类结果,对模型进行优化是结果尽可能与给出的分类结果一致
    非监督学习:不给出结果,算法根据规则自由发挥,产生若干个类别
    强化学习:与监督学习不同,其结果不是给出是否分类正确,而是给出离正确结果的距离是多少,然后再进行循环优化

    ##总结
    虽然问题很复杂,也很多,但我们已经知道,这些问题必然能解决,解决问题的方法就在你的脑子里,其次最近的数学相关理论已经发展起来了,最后,还有更多令人激动的问题等待的我们去解决。。

    展开全文
  • 模式分类中文高清版PDF,文件大小110MB,找了很久才找到的资源,分享出来和大家一起学习
  • 模式分类_答案_第二版_全,模式分类(国科大刘成林老师推荐课本_作业答案)
  • 模式分类课后习题答案

    热门讨论 2009-09-21 08:18:41
    模式分类中文版第二版的部分课后习题答案
  • duda《模式分类》第二版所有课后习题的解答
  • 模式分类 作者: Richard O. Duda / Peter E. Hart / David G. Stork ,李宏东 翻译 中文第二版
  • BP 神经网络用于模式分类

    千次阅读 2020-09-29 15:43:34
    % BP 神经网络用于模式分类 clc clear close all %--------------------------------------------------- % 产生训练样本与测试样本,每一列为一个样本 P1 = [rand(3,5),rand(3,5)+1,rand(3,5)+2]; T1 = [repmat...

    % BP 神经网络用于模式分类
     

    clc
    clear
    close all

    %---------------------------------------------------
    % 产生训练样本与测试样本,每一列为一个样本

    P1 = [rand(3,5),rand(3,5)+1,rand(3,5)+2];
    T1 = [repmat([1;0;0],1,5),repmat([0;1;0],1,5),repmat([0;0;1],1,5)];

    P2 = [rand(3,5),rand(3,5)+1,rand(3,5)+2];
    T2 = [repmat([1;0;0],1,5),repmat([0;1;0],1,5),repmat([0;0;1],1,5)];

    %---------------------------------------------------
    % 归一化

    [PN1,minp,maxp] = premnmx(P1);
    PN2 = tramnmx(P2,minp,maxp);

    %---------------------------------------------------
    % 设置网络参数

    NodeNum = 10; % 隐层节点数
    TypeNum = 3; % 输出维数

    TF1 = 'tansig';TF2 = 'purelin'; % 判别函数(缺省值)
    %TF1 = 'tansig';TF2 = 'logsig';
    %TF1 = 'logsig';TF2 = 'purelin';
    %TF1 = 'tansig';TF2 = 'tansig';
    %TF1 = 'logsig';TF2 = 'logsig';
    %TF1 = 'purelin';TF2 = 'purelin';

    net = newff(minmax(PN1),[NodeNum TypeNum],{TF1 TF2});

    %---------------------------------------------------
    % 指定训练参数

    % net.trainFcn = 'traingd'; % 梯度下降算法
    % net.trainFcn = 'traingdm'; % 动量梯度下降算法
    %
    % net.trainFcn = 'traingda'; % 变学习率梯度下降算法
    % net.trainFcn = 'traingdx'; % 变学习率动量梯度下降算法
    %
    % (大型网络的首选算法 - 模式识别)
    % net.trainFcn = 'trainrp'; % RPROP(弹性BP)算法,内存需求最小
    %
    % 共轭梯度算法
    % net.trainFcn = 'traincgf'; % Fletcher-Reeves修正算法
    % net.trainFcn = 'traincgp'; % Polak-Ribiere修正算法,内存需求比Fletcher-Reeves修正算法略大
    % net.trainFcn = 'traincgb'; % Powell-Beal复位算法,内存需求比Polak-Ribiere修正算法略大
    % (大型网络的首选算法 - 函数拟合,模式识别)
    % net.trainFcn = 'trainscg'; % Scaled Conjugate Gradient算法,内存需求与Fletcher-Reeves修正算法相同,计算量比上面三种算法都小很多
    %
    % net.trainFcn = 'trainbfg'; % Quasi-Newton Algorithms - BFGS Algorithm,计算量和内存需求均比共轭梯度算法大,但收敛比较快
    % net.trainFcn = 'trainoss'; % One Step Secant Algorithm,计算量和内存需求均比BFGS算法小,比共轭梯度算法略大
    %
    % (中小型网络的首选算法 - 函数拟合,模式识别)
    net.trainFcn = 'trainlm'; % Levenberg-Marquardt算法,内存需求最大,收敛速度最快
    %
    % net.trainFcn = 'trainbr'; % 贝叶斯正则化算法
    %
    % 有代表性的五种算法为:'traingdx','trainrp','trainscg','trainoss', 'trainlm'

    %---------------------%

    net.trainParam.show = 1; % 训练显示间隔
    net.trainParam.lr = 0.3; % 学习步长 - traingd,traingdm
    net.trainParam.mc = 0.95; % 动量项系数 - traingdm,traingdx
    net.trainParam.mem_reduc = 10; % 分块计算Hessian矩阵(仅对Levenberg-Marquardt算法有效)
    net.trainParam.epochs = 1000; % 最大训练次数
    net.trainParam.goal = 1e-8; % 最小均方误差
    net.trainParam.min_grad = 1e-20; % 最小梯度
    net.trainParam.time = inf; % 最大训练时间

    %---------------------------------------------------
    % 训练与测试

    net = train(net,PN1,T1); % 训练

    %---------------------------------------------------
    % 测试

    Y1 = sim(net,PN1); % 训练样本实际输出
    Y2 = sim(net,PN2); % 测试样本实际输出

    Y1 = full(compet(Y1)); % 竞争输出
    Y2 = full(compet(Y2));

    %---------------------------------------------------
    % 结果统计

    Result = ~sum(abs(T1-Y1)) % 正确分类显示为1
    Percent1 = sum(Result)/length(Result) % 训练样本正确分类率

    Result = ~sum(abs(T2-Y2)) % 正确分类显示为1
    Percent2 = sum(Result)/length(Result) % 测试样本正确分类率

     

    ******************************************************************

     

    展开全文
  • Duda《模式分类》Matlab源代码和答案 Duda《模式分类》Matlab源代码和答案 Duda《模式分类》Matlab源代码和答案 Duda《模式分类》Matlab源代码和答案 Duda《模式分类》Matlab源代码和答案
  • 模式分类课件,中文的,
  • 模式分类》duda第二版所有课后习题的解答,全英文,清晰版,
  • 在特征提取的基础上进行模式分类是基于基因的计算机辅助诊断的重要步骤,如人工神经网络等分类方法已广泛的应用于疾病诊断及预防系统之中。 人工神经网络的研究已有半个多世纪的历史,起源于20世纪40年代,20世纪80...

    1.1引言

    近年来,随着基因技术在医学中的广泛应用,基于基因数据的计算机辅助诊断迅速发展起来。计算机辅助诊断可以提高医生诊断的准确率,协助医生对病人病因进行判断和识别并有助于预防疾病。在特征提取的基础上进行模式分类是基于基因的计算机辅助诊断的重要步骤,如人工神经网络等分类方法已广泛的应用于疾病诊断及预防系统之中。

    人工神经网络的研究已有半个多世纪的历史,起源于20世纪40年代,20世纪80年代开始蓬勃发展,如今出现了研究的新热潮.人工神经网络的研究主要是直接模拟人脑的结构和功能,具有生物神经网络的某些特性,在自学习、自组织、联想、及容错方面具有较强的能力,能用于联想、识别和决策.概率神经网络是20世纪90年代初提出来的一个分类网络,它以贝叶决策和密度函数估计为理论基础,广泛应用于模式识别和模式分类领域.因此,研究概率神经网络的模式识别具有重要的理论意义和应用前景。

    1.2人工神经网络的发展及研究现状

    人工神经网络(Artificial Neural Network),亦称为神经网络(Neural Networks,NN),是由大量神经处理单元(神经元Neurons)广泛互连而成的网络,是对人脑的抽象、简化和模拟,反映人脑的基本特征。人工神经网络的研究是从人脑的生理结构出发来研究人的智能行为,模拟人脑信息处理的功能。

    人工神经网络能模拟人类大脑的某些功能和思维方式,从而更好地解决模式识别、组合优化和智能控制等一系列本质上非计算的问题。它有如下优点:具有很强的自学习和自适应能力,可以处理不确定或不知道的系统;具有很强的信息综合能力,能同时处理定量和定性的信息,能很好地协调多种输入信息关系;具有很强的鲁棒性和容错性,因为信息是分布贮于网络内的神经元中;采用并行处理方法,使得计算快速;可以充分逼近任意复杂的非线性关系等。经过近半个世纪的发展,神经网络理论已在许多研究领域取得了广泛的成功,神经网络和其它算法的结合和交叉,构造混合神经网络模型,是当前神经网络研究的主要趋势。如神经网络和模糊逻辑结合,建立模糊神经网络;将混沌理论和神经网络结合建立混沌神经网络;将优化算法和神经网络结合,利用优化算法优化神经网络的结构或权值;将小波分析和神经网络结合建立小波神经网络;贝叶斯学习以及粗糙集理论和神经网络结合等,都是当前神经网络研究的热点。

    到目前为止,神经网络的类型已多达数百种,神经网络的理论研究和实际应用有了引人注目的发展。神经网络在向纵深发展的同时,也在向模糊技术、进化计算等智能方法相结合的方向上发展,并广泛应用于模式识别等多个领域,尤其是在模式识别方面,神经网络所表现出来的能力超过了包括统计方法、静态方法和人工智能方法在内的传统方法。

    1.3 研究意义

    神经网络通俗来讲,就是人们平时所说的“人工智能”。这个词是神经网络在人类大脑上历史基础的结果。神经网络是基于人类大脑工作的简化模型-这就解释了与人脑相关的神经网络术语。例如,神经网络是经过训练的,而训练的过程被称为"学习"。神经网络,例如多层的感知器,甚至使用被称为"神经元"的内部结构,神经细胞由此接收输入并且以不同的强度发射信号。人工神经元网络是生物神经网络的一种模拟和近似,它从结构、实现机理和功能上模拟生物 神经网络。从系统观点看,人工神经元网络是由大量神经元通过极其丰富和完善的连接而构 成的自适应非线性动态系统。

    模式识别是一种从大量信息和数据出发,在专家经验和已有认识的基础上,利用计算机和数学推理的方法对形状、模式、曲线、数字、字符格式和图形自动完成识别的过程。模式识别包括相互关联的两个阶段,即学习阶段和实现阶段,前者是对样本进行特征选择,寻找分类的规律,后者是根据分类规律对未知样本集进行分类和识别。广义的模式识别属计算机科学中智能模拟的研究范畴,内容非常广泛,包括声音和语言识别、文字识别、指纹识别、声纳信号和地震信号分析、照片图片分析、化学模式识别等等。在现实世界中,人类发出的声音、印刷或者书写出的文字、眼睛看到的风景,以及测量器输出的信号等,以各种各样的模式存在着。如果计算机能够听出并且分辨出这些模式,就能够简单地输入到计算机,并且可以送到工专业人员的作业负担。把模式输入到计算机后,通过一系列的处理,就可对其进行识别。

    在模式识别中有很多方法:统计模式识别方法,句法结构模式识别,人工神经网络模式识别。前面两者在实际应用过程中都显示出各自的局限性,而人工神经网络的研究起源于对生物神经系统的研究,采用反向传播(BP)网络,具有良好的模式分类能力,引入模糊逻辑理论,能较好地处理一些数据的不确定性问题。因此它对待识别的对象不要求有太多的分析与了解,具有一定的智能化处理的特点。由于具有良好的容错能力、分类能力强、并行处理能力和自学习能力。因而,采用神经网络识别方式是一种很好的选择。

    传统的分类方法对于同类相聚,异类分离比较有优势,但客观世界中许多事物在样本空间中的区域分割曲面非常复杂,相近的样本可能属于不同的类,而远离的样本可能属于同一类1。模式是对某些感兴趣的客体的定量描述或结构描述,模式类是具有某些共同特征的模式的集合。模式分类可分为两种类型,分类和聚类,分类是在类别知识等导师信息的指导下,将待识别的输入模式分配到各自的模式类中去。聚类是无导师的分类方法,它是将相似的模式样本划归为一类,而将不相似的分离开,实现了模式样本类内相似性和类间分离性。通过聚类,可以发现原始样本的分布特性。

    神经网络对外界的输入样本具有很强的识别能力,可以发现输入样本自身的联系和规律以及输入样本和期望输出之间的非线性规律,因此在模式分类方面具有传统分类方法无法比拟的优点。人工神经网络在模式分类方面提出了大量了网络模型,发现了许多学习算法。

    通常所说的神经网络结构,主要指它的连接方式。从拓扑结构上考虑,神经网络属于以神经元为节点,以节点间的有向连接为边的一种图。其结构大体上可分为层状和网状两大类:层状结构的神经网络是由若干层组成,每层中有一定数量的神经元,下相邻层中的神经元为单向连接,同层内的神经元不能连接:在网状结构的神经网络中,任何两个神经元之间都可能双向连接。一般常见的神经网络有如下几种网络结构。

    前向网络(前馈网络)。前向网络通常包括许多层,其特点是只有前后相邻两层之间的神经元存在相互连接,各神经元之间没有反馈。每个神经元可以从前一层接收多个输入,并只有一个输入送给下一层的各神经元。三层前向网络分为输入层、隐含层和输出层。在前向网络中有计算功能的节点称为计算单元,而输入节点无计算功能。

    反馈网络。反馈网络从输入层到输出层有反馈,即每个节点同时接收外来输入和来自其它节点的反馈输入,其中也包括神经元输出信号引回到本身输入成的自环反。这种反网络的节点都是一个计元。

    相互结合型网络。这种网络在任意两个神经元之间都可能有连接。Hopfield网络和Boltzman机均属于这种类型。在无反馈的前向网络中,信号一旦通过某个神经元,该神经元的处理过程就结束了。而在相互结合网络中,信号要在神经元之间反复传递,网络处于一种不断改变状态的动态之中。从某初试状态开始,经过若干次的变化,才会达到某种平衡状态。

    3.1.2神经网络的学习和训练

    人脑中有一个典型的神经元通过许多树突的精细结构,收集来自其它神经元的信息,当它收到的兴奋输入足够大于它的抑制输入时,神经元将通过轴突发出电话性脉冲,经突触结构影响其它的神经元,这便发生了学习行为。因此,可以认为神经网络学习的本质特征在于神经细胞特殊的突触结构所具有的可塑性连接,而如何调整连接权值就构成了不同的学习规则。学习规则就是修改神经网络的权值和偏置值的方法和过程(也称这种过程是训练算法),其目的是为了训练网络来完成某些工作。现在有很多类型的神经网络学习规则,如Hebb学习规则、Delta学习规则、Wdirow-Hoff学习规则等。大致可以将其分为有监督学习和无监督学习两大类。

    有监督学习。为了使神经网络在实际应用中能解决各种问题,必须对它进行训练,就是从应用环境中选出一些样本数据,通过不断地调整权矩阵,直到得到合适的输入输出关系为止,这个过程就是对神经网络的训练过程,这种训练过程需要外界监督,提供训练数据(样本数据)。权值的调整是基于奖惩式的规则:当网络的输出朝正确的方向变化时,调整权值以强化(奖励)此方向的变化;而当网络的输出朝着错误方向变化时,权值将朝着弱化(惩罚)的方向变化。这种学习方法虽然简单,并能够根据训练数据准确地调整出所需的权矩阵,但它也同时要求训练数据能够代表实际的应用环境。并且为了适应环境的变化,需要重新调整权值,这样当学到新知识时,就容易遗忘旧的知识。

    无监督学习。无监督学习的训练数据集中,只有输入而没有目标输出,训练过程中神经网络将自动地提取各输入数据的特征,并将其分成若干类。经过训练好的网络能够识别训练数据集以外的新的输入类别,并相应获得不同的输出。

    3.2 SOM神经网络

    SOM网络是Kohonen于1981年提出的,它引入了网络的拓扑结构,并在这种拓扑结构上进一步引入变化邻域概念来模拟生物神经网络中的侧抑制现象,从而实现网络的自组织特性。SOM网络的无监督学习方式更类似于人类大脑中生物神经网络的学习,其重要特点是通过自动寻找样本中的内在规律和本质属性,自组织、自适应地改变网络参数和结构。

    自组织映射算法的基本目标是寻找较小的原型集来存储一个大的输入集,而这些原型集能够提供对输入空间的良好近似。从分类角度说,自组织映射通过寻找最优参考向量集合来对输入模式进行分类。这个原型集就是自组织网络的权值向量,因此特征映射提供了对输入空间的良好近似。

    SOM网络能够根据其学习规则对输入的模式自动进行分类,即在非监督的情况下,对输入模式进行自组织学习,通过反复地调整连接着输入和输出的权值向量,最终使得这些权值反映出输入样本之间的相互距离关系,并在竞争层中将分类结果表示出来。当外界输入不同的样本到SOM网络中,一开始时输入样本引起输出兴奋的位置各不相同,但通过网络自组织后会形成一些输出群,它们分别代表了输入样本的分布,反映了输入样本的图形分布特征。

    SOM网络使输入样本通过竞争学习后,相似的输入靠得比较近,不同的分得比较开,以此将一些无规则的输入自动排开,在连接权的调整过程中,使得权值的分布与输入样本的概率密度分布相似。所以SOM网络可以作为一种样本特征检测器,在样本排序、样本分类以及样本检测方面有广泛地应用。

    SOM 网属于自组织映射神经网络 SOM神经网络接收外界的输入模式时会分为不同的对应区域各区域对不同的输入模式会有不同的响应特征利用这个特征可以对输入模式进行分类。

     

    5.2 BP神经网络建模

    为了降低神经网络的规模和提高网络的性能,我们必须对原始采样数据进行预处理和特征提取,其中后者非常关键,我们采用在神经网络模式识别系统中应用很广泛的PCA主分量分析方法。而神经网络分类器的设计则是最重要的,我们采用BP多层前馈网络实现。

    5.2.1 BP神经网络算法设计与实现

    经过PCA主分量分析处理后的特征维数取为10,故神经网络的输入层节点数为10。输出层节点数为3。网络期望输出值按输入正面左向时设定为1000。

    为了区分分类结果,区分边界定义为0.9即当三个节点输出有一个大于0.9时认定为该类,没有一个大于则认定是假币,拒绝接收。确定隐层节点数时,先根据经验公式(其中m为隐层节点数,n为输入层节点数,为输出节点数)大概先确定初值为5,然后等后面训练比较确定最佳值。

    5.2.1.1 神经网络参数的选定

    网络激励函数采用Sigmoid函数,训练学习率初始值经考虑选定为0.1,动量系数选用0.95,最大训练次数设定为1000次,系统误差小于时,认为网络收敛。

     

    net.trainParam.show = 1;           

    net.trainParam.lr = 0.3;            

    net.trainParam.mc = 0.95;          

    net.trainParam.mem_reduc = 10;     

    net.trainParam.epochs = 1000;     

    net.trainParam.goal = 1e-6;        

    net.trainParam.min_grad = 1e-20;   

    net.trainParam.time = inf;         

    以上是BP神经网络的初始化参数的设置。

    5.2.1.2 样本训练

    试验中采用基因数据的采样数据作为训练样本,对网络进行训练。借助于MATLAB,用改进的BP算法对以上样本进行训练,用-l~l之间的随机数初始化权重,对隐层节点数取2~10之间的数进行试验,得到不同的训练次数如下表所示:

    NodeNum = 2;             % 隐层节点数

    TypeNum = 3;             % 输出维数

    p1 = xn_train;              % 训练输入

    t1 = dn_train;              % 训练输出

    Epochs = 1000;             % 训练次数

    P = xn_test;               % 测试输入

    T = dn_test;               % 测试输出(真实值)

    在这里,我们修改系统的隐层节点数,从2修改到10,我们做对比。

    表5-1 不同隐层节点数时网络训练次数表

    隐层

    5

    6

    7

    8

    9

    10

    11

    12

    13

    14

    15

    16

    17

    18

    19

    20

    次数

    >200

    33

    42

    34

    21

    58

    16

    13

    30

    19

    33

    16

    20

    20

    29

    36

    由该表可知,隐层节点数为12训练次数较少,而且从其训练误差曲线(用MATLAB画出如图5.1)情况来看也比较好,所以最终确定隐层节点数为12,那么最后的网络结构也确定下来即1Ox8x3,即网络容量为2400。

    根据已知条件,给定的数据中,已知一组20个样本具有癌症特性,而另一组20个样本具有正常的特性,现在我们要通过神经网络模型将第三组模型进行训练,做模式分类从而来判断其具有的特性。

        我们首先将前20组数据归为一个数组,中间20个归为一个数组,最后20个归为一个数组,通过BP神经网络算法对三类进行识别分类。

    我们分别以癌症患者的数据和正常人的基因数据为训练目标,对第三组数据进行测试,分别得到如下的结果。

     

    训练样本(癌症病人):

     

    图5-1 训练400次

     

    图5-2 训练100次

     

    图5-3 训练50次

     

    训练样本(正常人):

     

    图5-4 训练400次

     

    图5-5 训练100次

     

    图5-6 训练50次

    通过以上分析,我们可以知道第三组数据类型可能为正常人基因。

    5.3小结

    本章研究并设计实现了一个具体的模式识别系统,即人体基因数据的模式分类。在深入分析、设计其硬件构成的基础上,采用BP神经网络较好地实现了基因数据的识别。开发的样机运行结果良好,有较高的基因识别率,表明本文所研究与开发的成果有较好的理论意义和实用意义。

    展开全文
  • Duda《模式分类》课后上机题 Matlab

    热门讨论 2009-12-28 20:26:48
    模式识别\Duda《模式分类》课后上机题Matlab源代码和答案
  • Pattern Classification duda (模式分类中文二版)Pattern Classification duda (模式分类中文二版)Pattern Classification duda (模式分类中文二版)Pattern Classification duda (模式分类中文二版)Pattern ...
  • 面向对象-设计模式分类

    千次阅读 2020-12-27 16:38:49
    设计模式分类 创建型模式 工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。 结构型模式 适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式 行为模式 策略模式、模板方法...

    设计模式的分类

    创建型模式

    工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。

    结构型模式

    适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式

    行为模式

    策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、中介者模式、解释器模式。

    展开全文
  • matlab神经网络3:模式分类

    千次阅读 2018-01-26 16:32:00
    1.模式分类与数据集 Pattern recognition is the process of training a neural network to assign the correct target classes to a set of input patterns. Once trained the network can be used to classify ...
  • 模式分类 第二版(答案)

    热门讨论 2008-09-23 20:05:18
    duta 的经典书籍模式分类 原书第二版答案
  • 一、当前风控模式现状 近年来,信用风险管理发展呈现出数据化、模型化、系统化、自动化和智能化的特点。传统的人工专家经验正逐步被模型与...二、最核心的风控模式分类 1.IPC模式 IPC模式起源于德国邮储银行,该模...
  • 模式分类 原书第2版 习题答案

    热门讨论 2011-05-15 21:56:43
    模式分类》(原书第2版)已被卡内基-梅隆、哈佛、斯坦福、剑桥等120多所大学采用为教材。本书作为流行和经典的教材和专业参考书。本资源为该书的习题答案解答。
  • 模式分类经典著作第二版(中文版)模式分类经典著作第二版(中文版)
  • 23种设计模式分类+SOLID设计原则+从设计模式角度看MVC框架
  • 经典的模式识别教材Duda《模式分类》第二版的Matlab源代码和答案
  • 1.创建型模式 前面讲过,社会化的分工越来越细,自然在软件设计方面也是如此,因此对象的创建和对象的使用分开也就成为了必然趋势。因为对象的创建会消耗掉系统的很多资源,所以单独对对象的创建进行研究,从而能够...
  • 设计模式总结之模式分类

    万次阅读 多人点赞 2016-08-11 00:41:17
    话说软件江湖还是混沌之时,无门无派,无招无式,GoF(Gang of Four,四个大师),穷理之熟,融会贯通,合著了《Design Patterns: Elements of Reusable Object-Oriented Software》(即《设计模式》)一书,从此,...
  • 这是Duda的模式分类的部分习题解答,之前在网上找了很久,没找到全部的,只有部分的。。
  • 该文档是模式分类(第2版)Pattern Classification(David G. Stork)版本的配套课后习题答案教程,每一章节课后习题的详细解答过程(计算及相关证明),同时含有上机练习的matlab代码。学好模式识别课程的必备文档...
  • 模式分类和机器学习

    千次阅读 2013-12-13 02:42:08
    看到这个题目估计愿意往下看的人不多,因为实在没什么新意...说起来从在学校做课题到现在工作我做模式分类也有许多年了,而这个领域的新技术和新理论也很多,一直感到惭愧的是我从来没能把它们真正搞清楚并用到我的工作
  • 1.创建型模式 前面讲过,社会化的分工越来越细,自然在软件设计方面也是如此,因此对象的创建和对象的使用分开也就成为了必然趋势。因为对象的创建会消耗掉系统的很多资源,所以单独对对象的创建进行研究,从而...
  • 深度学习:自编码进行模式分类

    千次阅读 2017-11-27 16:47:43
    知道了自编码学习其实就是学习到了输入数据的隐含特征,通过新的特征来表征原始数据,本节将介绍如何使用这些隐含特征进行模式分类;  还是以前面的三层自编码网络:    抽象一下如下:    其中学习到的...
  • 设计模式分类以及六大设计原则(汇总篇)

    万次阅读 多人点赞 2018-05-22 22:36:28
    设计模式分类 创建型模式,共五种: 单例模式、工厂方法模式、抽象工厂模式、建造者模式、原型模式。 结构型模式,共七种: 适配器模式、装饰者模式、代理模式、门面模式(外观模式)、桥梁模式、组合模式、享...
  • 这篇博客是《模式分类》第二版第二章课后的编程题,除了最后一题,其余代码都已完成。所有的数据和代码都在https://github.com/chensonglu/Pattern-Classification-2nd-CH2上可以找到,特别是编程题需要的.mat文件...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 484,746
精华内容 193,898
关键字:

模式分类