第一篇:华工模式识别范文
模式识别简介
模式识别简介 Pattern recognition
诞生
狗的嗅觉的灵敏度非常高,大约是人的50至100倍。狗通过这项特异的功能来识别各种各样的东西,帮助人类完成一些鉴别工作。不仅如此,识别也是人类的一项基本技能,人们无时无处的在进行“模式识别”,古人有一成语“察言观色”表达的正是这个意思。
模式识别是人类的一项基本智能,在日常生活中,人们经常在进行“模式识别”。随着20世纪40年代计算机的出现以及50年代人工智能的兴起,人们当然也希望能用计算机来代替或扩展人类的部分脑力劳动。计算机模式识别在20世纪60年代初迅速发展并成为一门新学科。
概念
简单来说,模式识别就是通过计算机用数学技术方法来研究模式的自动处理和判读。我们把环境与客体统称为“模式”。随着计算机技术的发展,人类有可能研究复杂的信息处理过程。信息处理过程的一个重要形式是生命体对环境及客体的识别。对人类来说,特别重要的是对光学信息(通过视觉器官来获得)和声学信息(通过听觉器官来获得)的识别。这是模式识别的两个重要方面。市场上可见到的代表性产品有光学字符识别(Optical Character Recognition, OCR)、语音识别系统。其计算机识别的显著特点是速度快,准确性高,效率高。在将来完全可以取代人工录入。
模式识别是指对表征事物或现象的各种形式的(数值的、文字的和逻辑关系的)信息进行处理和分析,以对事物或现象进行描述、辨认、分类和解释的过程,是信息科学和人工智能的重要组成部分。
研究
模式识别研究主要集中在两方面,一是研究生物体(包括人)是如何感知对象的,属于认识科学的范畴,二是在给定的任务下,如何用计算机实现模式识别的理论和方法。前者是生理学家、心理学家、生物学家和神经生理学家的研究内容,后者通过数学家、信息学专家和计算机科学工作者近几十年来的努力,已经取得了系统的研究成果。
应用计算机对一组事件或过程进行辨识和分类,所识别的事件或过程可以是文字、声音、图像等具体对象,也可以是状态、程度等抽象对象。这些对象与数字形式的信息相区别,称为模式信息。
模式识别所分类的类别数目由特定的识别问题决定。有时,开始时无法得知实际的类别数,需要识别系统反复观测被识别对象以后确定。
模式识别与统计学、心理学、语言学、计算机科学、生物学、控制论等都有关系。它与人工智能、图像处理的研究有交叉关系。例如自适应或自组织的模式识别系统包含了人工智能的学习机制;人工智能研究的景物理解、自然语言理解也包含模式识别问题。又如模式识别中的预处理和特征抽取环节应用图像处理的技术;图像处理中的图像分析也应用模式识别的技术。
应用领域包括:计算机视觉、医学图像分析、光学文字识别、自然语言处理、语音识别、手写识别、生物特征识别、人脸识别、指纹识别、虹膜识别、文件分类、互联网搜索引擎、信用评分、测绘学、摄影测量与遥感学。 以“汉字识别”为例:
识别过程与人类的学习过程相似。首先将汉字图象进行处理,抽取主要表达特征并将特征与汉字的代码存在计算机中。就像老师教我们“这个字叫什么、如何写”记在大脑中。这一过程叫做“训练”。识别过程就是将输入的汉字图象经处理后与计算机中的所有字进行比较,找出最相近的字就是识别结果。这一过程叫做“匹配”。
还有一些比较典型的应用例子如: 去雾算法:
由有雾的图片处理成无雾的过程用的是一种基于暗影通道的去雾算法。 相机照出的相片=真实相片*透谢分布率+天空亮度。这里要做的就是根据公式求出真实相片,另外三个未知量是可以求出来的。
交叉验证方法:
用来验证分类器的性能一种统计分析方法,基本思想是把在某种意义下将原始数据进行分组,一部分做为训练集,另一部分做为验证集,首先用训练集对分类器进行训练,在利用验证集来测试训练得到的模型,以此来做为评价分类器的性能指标。
纹理:
在自然图象中,纹理作为物体的一种重要外观特征,为视觉感知提供了无处不在的信息,它在计算机视觉、图形学、图像编码等领域都有着重要作用,例如,格式塔(Gestalt)心理学,早期视觉理论和Marr的原始简约图(Primal Sketch)都将纹理模式作为中心话题。
因此,对纹理的理解是视觉理解不可或缺的组成部分。过去的几年里,纹理分析和合成的相关研究工作在基础理论上与实际应用两个方面都取得了振奋人心的发展,研究者结合计算机视觉,图形学,现代统计物理,心理学和神经系统科学等领域的知识,提出了很多关于纹理理解的新方法。纹理的研究工作主要集中在两个领域:滤波理论(filtering theory)和统计建模(statistical modeling)理论。滤波理论来源于在神经生理学中被发现并被广泛接受的多通道滤波机制,该机制认为,人类视觉系统将视网膜图像分解为一组子带(sub-band)图像信号,而这些子带信号可以通过一组线性滤波器和图像卷积然后经过某些非线性操作计算得到。滤波理论在纹理方面的应用主要有 Gabor 滤波器和小波(wavelet)塔等,它们在纹理分割和分类中有良好的性能。统计建模理论认为,纹理图像是随机场上概率分布的采样,该理论涉及到时间序列模型(time series model),马尔可夫链(Markov chain)模型和马尔可夫随机场(Markov random Field,MRF)模型等建模方法。基于统计的建模方法一般只需要用很少几个参数来描述纹理特征,因此能为纹理提供简练的表示,而且它能把纹理分析问题转化为一个明确的统计推理问题来处理。
计算机视觉研究中低层视觉的一个主要研究方向是图像分割。由于一个场景中,不同的物体之间有不同层度的交叠,使得最理想的分割结果也会出现物体的不同部分(可视部分)之间分割开来,而不可视部分则为其它物体所覆盖的情况,这就不利于完整地展现物体。因此,有必要利用由图像得到的相关信息,如原始简约图(Primal Sketch)、颜色一致性、方位一致性等,研究一套算法,把同一物体分在同一个层里面,然后再把它们相应的部分之间连接起来,组成完整的物体。这就是2.1D Sketch的主要研究任务。
2.1D Sketch主要研究面物体,且不关心物体之间的深度信息,而只考虑它们之间的偏序关系(Partial Order)。
2.1D Sketch的研究成果将会用于图像分割、图像编辑、艺术图像生成以及图像序列分析中。
机器学习:
机器学习是人工智能的一个分支,它是关于让机器具有学习能力的一些算法。许多情况这种算法给一些数据和从这些数据属性的推出的信息对将来出现的新的数据做出预测。之所以可以这么做是因为大多数的非随机的数据包含一些模式,这些模式可以让机器去做泛化。
机器学习的相关概念扫盲:
监督式学习:训练数据中包含输入的向量集合并且有相应的目标值(labeled样例)
例如分类(Classification)、关联规则、回归(Regression) 非监督式学习:训练数据中不包含labeled样例
例如聚类(Cluster)、Density estimation、Visualization. 半监督式学习:组合了labled和unlabeled的Example去生成一个函数或分类
泛化(Generalization):通过训练数据训练之后能够识别新的数据。 特征提取(Feature Extraction): 为了降维去除不想关的特征,在数据预处理阶段把数据转化成容易处理的。
机器学习的局限性:
机器学习在大量的模式面前的泛化能力是不同的,如果一个模式不同于以前所看到的,那么这个算法很容易被误解。由于当前的数据量不够,不能涵盖各种将来的情况,所以机器学习的方法很容易出现过度泛化,从而出现不准确性。
AdaBoost人脸检测原理:
一种基于积分图、 级联检测器和AdaBoost 算法的方法,方法框架可以分为以下三大部分: 第一部分,使用Harr-like特征表示人脸,使用“ 积分图”实现特征数值的快速计算; 第二部分, 使用Adaboost算法挑选出一些最能代表人脸的矩形特征( 弱分类器),按照加权投票的方式将弱分类器构造为一个强分类器; 第三部分, 将训练得到的若干强分类器串联组成一个级联结构的层叠分类器,级联结构能有效地提高分类器的检测速度。
总结
自20世纪50年代以来,模式识别在人工智能兴起后不久就迅速发展成一门学科。它所研究的理论和方法在很多科学和技术领域得到广泛重视,推动了人工智能系统的发展,扩大了计算机应用的可能性。
经过多年的研究和发展,模式识别技术已广泛被应用于人工智能、计算机工程、机器学、神经生物学、医学、侦探学以及高能物理、考古学、地质勘探、宇航科学和武器技术等许多重要领域,如语音识别、语音翻译、人脸识别、指纹识别、手写体字符的识别、工业故障检测、精确制导等。模式识别技术的快速发展和应用大大促进了国民经济建设和国防科技现代化建设。
第二篇:模式识别课程报告
模式识别文献综述报告
一,文献综述报告
阅读至少5篇论文(最好包含1篇英文论文;自己去学校电子图书馆下载,考虑中国知网;IEEE,Elsevier等数据库),写一篇文献综述报告。
1. 选题不限,可以是任何一种模式识别算法(例如k-means,kNN,bayes,SVM,PCA,LDA等),阅读所选题方面的相关文献(论文都是关于一个主题的,例如都是svm算法方面的)。
2. 写一份文献综述报告,包括:每篇论文主要使用什么算法实现什么,论文有没有对算法做出改进(为什么改进,原算法存在什么问题,改进方法是什么),论文中做了什么对比试验,实验结论是什么?注意,尽量用自己的话总结,不要照抄原文。可以加入自己的分析和想法,例如这篇论文还存在什么问题或者缺点,这篇论文所作出的改进策略是否好,你自己对算法有没有什么改进的想法?
3. 把阅读的参考文献写在报告后面。(包括:作者;论文名称;期刊名称;出版年,卷号(期号),页码。例如:[1] 赵银娣,张良培,李平湘,一种纹理特征融合分类算法,武汉大学学报,信息科学版,2006,31(3):278-281. )
二、写一下学习这门课的心得体会(占分数)。
学习这门课有什么收获?老师在教学中还应该加入些什么教学内容?或者有哪些教学内容需要删减?需要调整?对于作业(上机实验)内容有什么意见和建议?目前内容过多过难还是适中?你希望出什么样的上机题目(可以得到好的锻炼和能力的提高)?完成作业过程中有什么收获和体会?有没有对模式识别或者某种模式识别的算法比较感兴趣?有什么想法?
第三篇:数字图像模式识别
王丽霞
深圳市南山区学府路;135308813
56、lixia_2011@126.com
求职意向
数字图像处理、模式识别算法工程师 教育经历
汕头大学 电子工程系 信号与信息处理专业 硕士2007.9—2010.6 汕头市
·在校期间成绩优良,分别一次获汕头大学一等、二等奖学金;2008 09担任女生部部长负责统筹管理,成立特色学科及基础学科研讨组,积极开拓学生的思维并提高他们的学习成绩,更贴近社会的新路线。
潍坊学院 信息与控制工程学院 电子信息工程 学士2003.9—2007.6 潍坊市
·2007年9月以第一名成绩考入汕头大学攻读硕士研究生;在校期间担任班级学习委员负责不同类学生的学习方法指导;2004-9-2007-6担任学院文艺部部长,负责迎新晚会筹划,锻炼了团队领导能力、协调能力、临场反应能力以及创新思维。 英语及专业技能
●熟练掌握了数字信号处理及它的常用算法、有良好的数学功底;熟悉图像处理的基本算法、熟悉模式识别基础知识与智能系统理论及它们的应用,在模式识别和运动跟踪方面有较深的理解;熟悉光伏应用系统的结构、性能原理;曾在核心期刊系统仿真技术发表文章(基于神经网络应用的光伏最大功率跟踪)。
●英语:六级考试 362;四级考试 473;具有较强的相关专业学科的英文文献阅读能力; ●能熟练使用计算机,会用电路仿真软件、LabVIEW软件、熟练掌握Visual C++的MFC程序设计和MATLAB仿真工具,能够做算法的设计和仿真;并能应用LabVIEW软件进行信号处理(波形测量、时频域分析与数学分析(概率统计拟合最优化等)。 工作经历
2010 6-2010 8深圳市辉锐天眼科技有限公司担任核心研发工程师 ●职位为智能监控核心研发工程师
●负责计算机视觉方面的IEEE文章的讲解及不同算法的实现研究,负责机器视觉系统图像处理、分析及识别算法设计、实现,参与图像处理技术研究与设计,对已有算法进行优化改进。使用OpenCV进行背景/前景提取、检测识别、了解运动跟踪的常用算法、设计相关信号特征提取算法及其设计模式识别分类器等。 项目经验
2008 09-2009 11模式识别与智能系统理论的算法研究 ●算法在MATLAB仿真,并在SIMULINK中建模,最后把这个算法用C++语言编程,在VC++中生成了可执行文件。
2009 01-2009 06生物细胞图像病变检测算法研究 ●在MATLAB中仿真了算法,正确率达到82%。
2009 07-2009 09图像压缩算法编码器设计 ●在FPGA芯片上实现并验证了方案,对比得出了FPGA比DSP在神经网络实现上的明显优势,前者采用指令顺序执行的方式,数据位宽固定,FPGA处理数据的方式是基于硬件的并行处理方式,即一个时钟周期内可并行完成多次运算,特别适合于神经网络的并行特点。 2010 02在科进生物识别公司 ●了解了不同二维条码尤其QR code的特点,探讨了定位图形的方法,了解了指纹识别,探讨了小波变换及gabor变换在纹理图像的特征提取的优劣。 自我评价及爱好
●很强的责任心创新能力、自学能力及应用知识能力;诚实善良,勤奋刻苦,进取精神、团队协作精神;爱好户外运动、国学研究,齐白石大师的画。
第四篇:模式识别与智能系统
模式识别与智能系统属控制科学和工程一级学科,以信息处理与模式识别的理论技术为核心,以数学方法与计算机为主要工具,研究对各种媒体信息进行处理、分类和理解的方法,并在此基础上构造具有某些智能特性的系统。
学科概况
模式识别与智能系统是20世纪60年代以来在信号处理、人工智能、控制论、计算机技术等学科基础上发展起来的新型学科。该学科以各种传感器为信息源,以信息处理与模式识别的理论技术为核心,以数学方法与计算机为主要工具,探索对各种媒体信息进行处理、分类、理解并在此基础上构造具有某些智能特性的系统或装置的方法、途径与实现,以提高系统性能。模式识别与智能系统是一门理论与实际紧密结合,具有广泛应用价值的控制科学与工程的重要学科分支。
培养目标
本学科培养从事模式识别与智能系统的研究、开发、设计等方面工作的高级专门人才。
1.博士学位
应具有模式识别、信息处理、人工智能与认知科学及有关数学领域坚实宽广的基础理论和系统深入的专门知识;对于模式识别与智能系统主要前沿领域有深入了解;能独立开展模式识别与智能系统中有关研究方向的专题研究工作,并取得具有创造性的研究成果;学风严谨;至少掌握一门外国语,能熟练地阅读本专业的外文资料,具有一定的写作能力和进行国际学术交流的能力。
2.硕士学位
应具有坚实的模式识别与智能系统学科的基础理论和系统的专门知识;对于模式识别与智能系统某一研究领域的进展和学术动态有较深的了解;能够熟练利用计算机解决本学科的有关问题;具有从事模式识别与智能系统中的某一研究方向的科学研究或独立担负专门技术工作的能力,并取得有意义的成果;较为熟练地掌握一门外国语。
业务范围
1.学科研究范围 模式识别,图象处理与分析,计算机视觉,智能机器人,人工智能,计算智能,信号处理。
2.课程设置 随机过程与数理统计,矩阵论,优化理论,近世代数,数理逻辑,数字信号处理,图象处理与分析,模式识别,计算机视觉,人工智能,机器人学,计算智能,非线性理论(如分形、混沌等),控制理论,系统分析与决策,计算机网络理论等。
第五篇:模式识别作业-小论文
《模式识别》学习心得
模式识别(Pattern Recognition)技术也许是最具有挑战性的一门技术了,模式识别有时又被称为分类技术,因为模式识别说到底就是对数据进行分类。说到识别,最为常用的便是模仿人的视觉的图像识别(当然还有语音识别),也许你会想当然地认为那还不简单,觉得我们用我们的眼睛可以轻而易举地识别出各种事物,但是当你想用计算机中的程序来实现它时,于是你便会觉得很沮丧,甚至于有无从下手的感觉,至此你再也不会觉得电脑有多聪明,你会觉得电脑是多么的低能。是的,现在的电脑智能,即人工智能还远不如蟑螂的智能,这其中最为根本的原因是模式识别技术还是处于较为低层次的发展阶段,很多的识别技术还无法突破,甚至有人还断言,再过30年也不会有本质的飞跃。当然,世事总是让人难以预料,我们也用不着这么地悲观,科学技术总是向前发展的,没有人可以阻档得了的。在这里,我把我对模式识别技术的学习和研究心得拿出来与大家分享一下。
模式识别具有较长的历史,在20世纪60年代以前,模式识别主要是限于统计学领域中的理论研究,还无法有较强的数学理论支持,20世纪80年代神经网络等识别技术得到了突破,计算机硬件技术更是有了长足的发展,模式识别技术便得到了较为广泛的应用,光学字符识别(OCR)是模式识别技术最早得到成功应用的技术,之后的应用还有如DNA序列分析、化学气味识别、图像理解力、人脸检测、表情识别、手势识别、语音识别、图像信息检索、数据挖掘等。
模式识别是一门与数学结合非常紧密的科学,所应用到的数学知识非常多,最基本的便是概率论和数理统计了,模式识别技术到处都充满了概率和统计的思想,我们经常所说的识别率,其实就是概率的表达:在大数据量(严格地说应当是数据量无穷大)测试中识别成功的概率,还有常用的贝叶斯决策分类器便是运用了概率公式。模式识别还用到了线性代数,因为运用线性代数可以较为方便表达具有多特征的事物,我们一般会用向量来表达一个事物的特征,对于向量的计算是一定会用到线性代数的知识的。还有一个较为高层次的数学知识是泛函分析,泛函分析是研究无限维线性空间上的泛函数和算子理论,SVM(支持向量机)便是以泛函分析中的理论为基础的,SVM技术还运用到了最优化理论数学知识,最近中科院王守觉院士提出的多维空间仿生模式识别技术是以拓扑学为理论基础的。所以说模式识别科学是应用到数学知识最多的一门学科之一,在我们研究模式识别技术过程中会碰到一个又一个的数学知识,有时需要我们重新拿起大学时的数学书来学习,有时还需要我们去寻找和学习我们也许从未学习过的数学知识,这时你会感觉到你真的是在做研究,仿佛又回到了大学学习时光,你更会感觉到要学好模式识别技术需要多年的积累,浮躁不得,当然,如果你越是坚持下来,你的价值就会越大,因为这是个可以不断得到积累的技术,不像研究上层应用,研究多年并不意味着你就会有多厉害,一下子没有跟进便会被淘汰掉,而后面进来研究的人很容易超越前面研究的人,所以说,模式识别技术是一个喜欢做研究的人的一个很好的选择。 模式识别大体上可以分为统计模式识别和句法模式识别,统计模式识别是对大量的样本进行统计或学习而最后得到一个分类器,如贝叶斯分类器、神经网络、
1 SVM、K近邻法则等都是属于统计模式识别的方法,句法模式识别则是依据一定的逻辑规则进行判别,如图像形状判断、语法类型判断、地址细分等,句法模式识别也可以称为结构模式识别,一般是应用于逻辑清楚、不易混淆的识别应用中,识别方法也比较简单,所以现在研究的大部分都是统计模式识别的方法,而且在这其中研究比较集中的是机器学习,因为人们相信:像人类辨别新事物一样,都需要一个学习过程,对于计算机也可以像人类那样地去学习而具有辨识能力。神经网络技术便是基于模仿人类的学习而产生的。说了这么多,其实我想表达的是统计方法在模式识别中的重要性,在这一节我们主要就来讨论一下概率论和统计在模式识别中的应用。
说到概率和统计就不得不提贝叶斯决策理论,它是解决模式分类问题的一种基本统计途径,贝叶斯决策理论的基本公式可做如下描述:
某个特征被判断为某类的概率 =该类中出现这个特征的概率 × 该类存在的概率 / 这个特征出现的概率
上面这个公式是一个条件概率公式的推导,这里用文字来描述,以便更好理解,要想了解更多这方面的知识可以查找有关模式识别的理论书,几乎每种理论书的第一个部分就是描述这方面的内容。
概率上的应用还有较为常用的理论是马尔可夫模型(Markov model)和稳马尔可夫模型(HMM),这个是分词技术和语音识别中的基本理论工具之一,其中词频统计是其基本统计需要。马尔可夫模型和稳马尔可夫模型都是多条件概率的应用,追求的也是大概率结果。马尔可夫模型又可以分为一阶马夫可夫模型(Bigram模型)、二阶马尔可夫模型(Trigram模型)、n阶马尔可夫模型(n-gram模型),阶数越大,则需要统计的数据越多,计算的复杂度也会猛增。HMM运用了前向计算法(Viterbi算法),计算复杂度大大降低了下来,所以得到了较为广泛的应用,当今的语音识别算法就是采用HMM理论模型实现的。
统计分析中有个协方差矩阵,它可以应用于PCA(主成分分析)降维方法中。可以很容易理解,当特征越多时,计算则越复杂,而且计算结果准确性则越低,所以我们总是要想方设法把特征维数降下来,较为常用的方法则是用PCA降维方法(另一个方法VQ也是个很好的降维方法),这个方法是通过大量的样本统计,统计出方差最小的特征,方差越小,则说明这种特征越易混淆,越无助于分类,于是就可以把这些特征去掉,以此降低了特征维数。
类似于神经网络的机器学习方法也是属于统计模式识别一种,机器学习方法大大简化了我们对样本数据的统计工作量,采用了自动化的方法根据大量样本生成一个分类器,在这其中,统计分析的应用较为稳性,以至于让你无法承认它是属于统计模式识别的方法,但是对于大量样本的学习也可以算是统计方法的范畴,如神经网络中的每个神经节点的系数的形成是依据一定算法(如LMS算法)通过大量样本修正出来的,这个修正的过程也可以算是统计分析的过程。
既然模式识别技术与概率和统计分析密不可分,所以在设计分类器之前,首先要准备好大量的、周全的、能够覆盖各种情况的训练样本和测试样本,然后对训练样本进行统计分析,分析样本的特点,分析样本的特征值分布规律,得到各种统计数据,最后再来确定模式识别的方法,测试样本用来检验分类器的合理性
2 问题,根据测试样本测试出来的问题,需要返回去修改分类器,这是一个反复的过程,直至最后达到分类器的性能目标。
我们在表示某个事物的特征时,其特征数一般有三个以上的,甚至有好几百个特征,为了表示方便,对于特征值一般采用向量的形式来表示,所以我们在研究模式识别时会有很多的矩阵运算,对于特征值的运算我们可以把它想象成是一个高维空间中的运算,矩阵运算可以方便地表达高维空间中的运算,所以说线性代数是研究模式识别的数学基础,更高层次的数学理论是泛函分析,它是研究无限维空间的几何学和分析学。
对于三维以下空间,我们可以较容易地想象出来,但是三维以上的空间超出了我们的感知能力,很多在三维以下空间的计算,推广到高维空间时,则不灵了,出现了所谓的“维数灾难”,这是因为高维空间中出现了稀疏性和空空间的现象,即高维空间中的数据分布会非常地稀疏,且可能出现密度会很高的空区域中点,维数灾难是Bellman首先提出来的,它泛指在数据分析中遇到的由于变量过多而引起的一系列问题,有点像“指数爆炸”,随着指数的递增,数据会迅速膨胀到难以想象的大。
SVM模式识别技术利用核方法,在高维空间中进行变换,巧妙地解决了维数灾难的问题,所以很多实验表明SVM分类算法总是能够优于其它分类算法。虽然有如此的好办法,但是我们还是得想办法降低维数,降低了维数,不仅可以降低计算的复杂度,也可以排除不必要的干扰特征,在众多的特征中也许有些特征是没有用的,即可能存在不是特征的特征,把这些无用的特征去掉,可以改善分类器的性能,目前降低维数主要应用的办法是PCA方法,很多人在描述这个方法时总要扯上协方差矩阵,让人陷入一大堆公式的推导中,其实核心思想就是把方差最小的那些特征排除掉,如果你知道这一点,可以不用理协方差矩阵,直接通过统计样本的特征值方差来实现PCA方法。
两组特征之间的距离可以有很多种表示方法,如欧氏距离、绝对值距离、切比雪夫距离、马氏距离、兰氏距离、相似系数、定性指标的距离等,大家比较熟悉的是欧氏距离,其实这种距离在高维空间并不常用,不仅是因为计算量大,还因为不同特征的值,其计算单位不一样,不可以把每种特征同等看待,在模式识别中采用哪种距离计算方式很重要,会关系到分类器设计的成败。计算距离的方式需要根据实际情况灵活应用,有时甚至可以自己设计距离计算方式,只要满足距离的四个条件即可:
1.当且仅当两点重合时距离才会等于0; 2.距离值必需是大于或等于0;
3.对称性:从A点到B点求得的距离等于从B点到A点求得的距离; 4.三角不等式:三个点形成的三角距离关系中,任两边的和大于第三边。
学习模式识别我个人觉得从神经网络入手可能是个较好的选择,一方面可以避免一下子就陷入复杂的公式推导中,另一方面可以让我们较快就能体验到模式识别是个什么样的技术,因为我们可以利用 Matlab或 openCV 非常方便地进行实践(学习一种技术,多去实践非常有助于对理论知识的理解)。神经网络技术是从仿生的角度来思考模式识别技术,探寻模仿人类的智能一直以来是科学界所研究的目标,神经网络技术就是基于此而产生的,但是神经网络能够得到应用还是
3 因为数学问题方面得到了解决,最优化理论中的梯度下降法便是神经网络实现原理的核心,梯度下降算法是一个循环的计算过程:
1. 为算法模型参数值选择初始值,或随机选择些初始值; 2. 计算每个参数对应的损失函数的变化梯度;
3. 根据梯度值改变参数值,使得错误值变得更小; 4. 重复第二和第三步骤直至梯度值接近于0。
神经网络方法就是通过训练样本进行学习来拟合出一条分割线(对于维数是三维的识别,则是个平面或曲面,三维以上则是超平面或超曲面),如果这条分割线是一条直线(或平面,或超平面),则称为线性神经网络,否则为非线性神经网络,线性神经网络较好理解,理解了线性神经网络,对于非线性神经网络则能够更易理解,所以这里先以线性神经网络为例来解释神经网络的原理,下图是一个二维特征分布图,中间的一条直线是分割线,我们现在要关心的问题是这条分割线是如何计算出来,如果学过数学,我们知道可以用最小二乘法把它计算出来,但这里我们将要用神经网络的学习方法来把它学习出来
从上图我们可以知道,只要我们能够得到w1,w2,b的值,则这条直线我们就可以求出来了,据此我们构造出如下所示的神经网络拓扑图:
4
从上图中的w1,w2,我们把它们称为权值,b称为阈值,神经网络的学习过程便是不断地调整权值和阈值,直至最后达到最小的错误率,对于线性神经网络,我们可以采用LMS算法,即最小均方差算法来求出权值和阈值,如下是LMS算法的描述:
原理:通过调整线性神经网络的权值(w)和阈值(b),使得均方差最小。已知有样本集:{p1,t1},{p2,t2},{p3,t3}……{pn,tn},(如果样本特征值是多维的,则p是个向量表达式)。
求出均方差:mse = sum( e( i )2 ) / n = sum(t(i) – a(i))2 / n, 其中i = 1~n,a(i) = pi × w + b。假设第k步已分别求出权值梯度(Gw)和阈值梯度(Gb),则第k+1步权值和阈值分别为:
w(k+1) = w(k) – Gw×α;
b(k+1) = b(k) – Gb×α; α为学习率
下一步就是要怎么算出梯度,如果权值和阈值的变化能够使得均方差趋向最小,则便可以达到我们的目标,依此我们可以对均方差公式求对权值和阈值的偏导,这个偏导值便是我们所要的梯度值,它反应了权值或阈值变化与均方差的关系,偏导公式的演变(推导)如下:
əe2(i)/əw = 2e(i) ×əe(i)/əw = 2e(i) ×ə(t(i) – a(i))/əw = 2e(i) ×ə[t(i) – (w×p + b)]/əw
= –2e(i) ×p;
əe2(i)/əb = 2e(i) * əe(i)/əb = 2e(i) ×ə(t(i) – a(i))/əb = 2e(i) ×ə[t(i) – (w×p + b)]/əb
= – 2e(i);
第k步的平均差值表示为:e(k) = sum(e(i))/n;于是最后我们就可以得到权值和阈值的变化方程式:
w(k+1) = w(k) – Gw×α = w(k) + 2×e(k) ×p×α; b(k+1) = b(k) – G b×α = b(k) + 2×(k) ×α;
5 其实,上面所描述的神经网络是一种单层的神经网络,早在1969年,M.Minsky和S.Papert所著的《感知机》书中对单层神经网络进行了深入分析,并且从数学上证明了这种网络功能有限,甚至不能解决象"异或"这样的简单逻辑运算问题。同时,他们还发现有许多模式是不能用单层网络训练的,真正让神经网络得到广泛应用的是1985年发展了BP网络学习算法,实现了Minsky的多层网络设想,BP网络是一种多层前馈型神经网络,其神经元的传递函数是S型函数(非线性函数),它可以实现从输入到输出的任意非线性映射,由于权值的调整采用反向传播(Back Propagation)学习算法,因此被称为BP网络,目前,在人工神经网络应用中,大部分是采用BP网络及其变化形式,它也是前向网络的核心部分,体现了人工神经网络的精华。BP神经网络不仅可用于模式识别,还可用于函数逼近、数据压缩应用中。
BP算法跟上面介绍的算法非常相似,也是根据均方差求权值和阈值的调整方向,也是通过对权值变量和阈值变量分别求偏导得到权值和阈值的修正梯度方向,差别在于BP神经网络有好几层,要从输出层开始,一层一层地计算出每层的权值变化和阈值变化(所以称为反向传播学习算法),另一个差别是有些网络层的神经元的传递函数采用log-sigmoid型非线性函数,对于这类函数需要对其进行求导。
BP算法的主要缺点是:收敛速度慢、存在多个局部极值、难以确定稳层个数和稳层节点的个数。所以在实际应用中,BP算法很难胜任,需要进行改进,主要有两种途径进行改进:一种是启发式学习算法(对表现函数梯度加以分析以改进算法),另一种是更有效的优化算法(基于数值最优化理论的训练算法)。启发式学习算法有这些:有动量的梯度下降法、有自适应lr的梯度下降法、有动量和自适应的梯度下降法、能复位的BP训练法等,基于最优化理论的算法有这些:共轭梯度法、高斯-牛顿法、Levenberg-Marquardt方法,这些改进的算法在Matlab中都可以找得到,Matlab提供了丰富的神经网络算法,除了BP神经网络,还有基于径向基函数的神经网络(如广义回归神经网络、概率神经网络)、反馈型神经网络(如Hopfield网络、Elman神经网络)、竞争型神经网络(如自组织特征映射神经网络、学习向量量化神经网络),所以学习神经网络,Matlab是个非常好的工具,如果想看具体的实现方法,openCV提供了BP算法的实现,可惜目前openCV只实现BP算法,很希望有更多的神经网络算法能够在openCV中被实现。
对于神经网络,万不可过于迷信它的厉害,对于样本种类多、神经网络节点多,神经网络的收敛速度会很慢,导致学习要花费很长时间,由于存在多个局部极值点,导致初值不同和学习样本不同时,学习效果也不同,所以经常要多次学习才能够得到较好的效果,根据问题的复杂度,设计合适的神经网络的网络拓扑结构也是一个非常难的问题。神经网络是人类模仿生物神经网络原理的一个成果,但是还远远无法达到生物的神经网络功能,现在的人工智能技术甚至连蟑螂都不如,也比不上小小的蚂蚁,人工智能技术的研究还有非常漫长的路要走。
6