Matlab模式识别课程教学中的应用研究
作者:杨勃欧阳竟成潘理
来源:《中国电力教育》2012年第34
        摘要:模式识别是一门难度较大的信息工程类专业课程。为改善课程教学效果,常应用Matlab进行算法设计与仿真。然而在实际教学过程中发现,不恰当使用Matlab会带来一些问题。以模式识别课程教学为研究对象,重点分析了Matlab在课程教学中不恰当使用带来的主要问题,并提出了针对性的解决方法。实践证明,该解决方法能够有效改善Matlab模式识别课程教学中的应用效果。
        关键词:模式识别;Matlab;教学研究
        作者简介:杨勃(1974-),男,湖南岳阳人,湖南理工学院信息与通信工程学院,讲师;欧阳竟成(1968-),男,湖南平江人,湖南理工学院信息与通信工程学院,副教授。(湖南 岳阳 414000
        基金项目:本文系2011年湖南省教育厅科学研究优秀青年项目(项目编号:11B055)的研究成果。
        中图分类号:G642.0     文献标识码:A     文章编号:1007-0079201234-0063-02
        “模式识别是理论和实践并重的一门信息工程专业课。该课程[1]涉及统计学、计算机科学、控制论、最优化、数值计算、信号处理等多领域知识,牵涉面广且理论艰深,学生学习难度大。因此课程教学不仅要进行原理知识讲授,还需进一步实现模式识别具体算法,以加深学生的直观感受,提高学生理论和实际应用水平。
        “模式识别课程中大部分算法的处理对象是多维数据,需用到矩阵运算等数值计算过程。考虑到Matlab软件具有便捷的矩阵运算、数据图像绘制功能,附带强大的数值计算工具箱,而且在很多其他关联课程教学[2-4]中也常被用于辅助教学,为此引入了Matlab辅助模式识别课程教学,以加深学生对模式识别基本知识、常用算法的理解,提高教学效果。然而,在实际教学中发现,若不恰当使用Matlab,教学效果的改善并不明显。本文主要研究Matlab模式识别课程教学中的应用,首先对Matlab在该课程教学中的优势及不足进行了分析,然后在此基础上提出了针对性的解决方法。
        一、Matlab模式识别课程教学中的优势
        Matrix Laboratory(矩阵实验室,简称:Matlab)是美国MathWorks公司研发的一款数学软件。它将矩阵运算、科学数据可视化、系统建模与仿真等诸多强大的数学计算功能集成在一个易于使用的统一视窗环境中,为科学研究、工程计算的诸多科学、工程计算领域提供了一种全面解决方案。此外,Matlab还提供了诸如统计、拟合、优化、神经网络、信号处理、图像处理、系统辨识、控制建模与分析、嵌入式系统开发等多个工具箱,[5]很好地满足了相关领域的科研与工程应用需求。
        目前,在国内外高等院校中,Matlab事实上已成为线性代数、数理统计、信号处理、图像处理、模式识别、自动控制原理等课程的基本教学工具。具体针对辅助模式识别课程教学而言,Matlab的优势主要可体现在以下几个方面:
        “模式识别常见的处理对象有一维时域信号、二维图像信号等,离散化后可用一维向量、二维矩阵表示。Matlab具有便捷的向量和矩阵运算功能,通过简单的表达式计算和基本函数调用就可以实现矩阵四则运算、求逆、特征值分解等常见矩阵运算。除此之外,Matlab还集成有数值最优化、统计分析、神经网络、信号处理、小波分析等数值计算工具箱,可快速实现模式识别中的待识别信号预处理、小波域特征提取、统计特征降维、最优决策器设计等模式识别主要算法。
        Matlab具有强大的数据可视化功能,通过简单的函数调用可实现二维、三维甚至四维的多种可视化要求(如曲线图、散点图、等高线图、表面图、阴影图、柱状图、梯度场图等不同可视化图形),从而可直观感受不同模式识别算法处理数据结果的差异,进而快速理解不同算法的优劣和适用范围。
        Matlab具有强大的交互式视窗平台开发功能,为教师开发模式识别常用算法实验平台提供了强有力的支持,同时为学生围绕平台进行二次开发提供了很大的帮助,降低了学生主动参与的门槛。
        二、Matlab模式识别课程教学中的不足
        Matlab强大的计算能力、数据可视化能力、交互式视窗平台开发能力为模式识别课程教学提供了强有力的支持。然而,正所谓成也萧何,败也萧何,在实际教学中发现,模式识别课程教学的不同环节如果不恰当地使用Matlab会导致教学效果更差。下面以模式识别中的一种典型学习算法——主成分分析方法为例,对不恰当使用Matlab模式识别课程教学中带来的问题进行详细分析。
        主成分分析(Principal Components AnalysisPCA)又称主元分析,是一种典型的非监督特征线性降维方法。该方法由Hotelling1933年提出,其目标是要一种最优的空间变换方式,让标准化后的原始变量通过线性组合表达为若干个向量,同时要求这些向量之间相互正交,且第一个向量能反映样本间自变量的最大差异。也就是说,样本集在该向量上的投影坐标是按照样本间自变量差异的大小确定的,其他向量所反映的这种差异程度依次降低,一般称这些向量为主成分或主元。主成分算法的基本流程如下:
        1)已知一批高维正态分布数据,N为数据样本数量,样本维数为l。计算协方差矩阵为:。其中,数据均值为。
        2)对协方差矩阵进行特征值分解,非零特征值降序排列,对应的特征向量单位化。
        3)计算前kk
        4)高维样本进行投影,即,为最终降维结果。
        由以上算法描述可知,主成分分析方法主要分四步进行。从主成分分析算法实现角度来看,最主要的工作在前两步。第一步应当首先求得数据均值,而数据均值计算可通过一个向
量加法循环来实现。有了数据均值就可以将原始数据标准化。在此基础上,通过另一个矩阵乘法循环即可求得协方差矩阵。算法第二步的核心则是矩阵特征值分解,可通过选择幂法、反幂法、雅可比法等方法中的任意一种来实现,也可以通过直接调用Matlab中的eig函数来实现;完成特征值分解后,还需进行一次排序操作,可通过选择冒泡排序、快速排序等经典排序算法来实现。
        学生要想自己独立实现主成分分析算法,则必然要经过以上分析过程。然而,部分学生为应付算法设计任务纷纷绕过以上分析过程,转而求助于Matlab强大的工具箱。事实上,Matlab中的主成分分析算法实现被完全封装在函数princomp中。学生简单调用该函数即可实现高维数据的主成分分析:
        [PCSCORElatenttsquare]=princompX
        其中,PC为求得的主成分,latent为数据矩阵X对应的协方差矩阵的特征值。显然,仅使用该函数,学生无法了解主成分分析的工作机理,不能真正掌握该算法的具体计算流程。
        在模式识别课程中,类似于主成分分析的算法还有很多。这些算法在Matlab中一般都有
对应的简单实现函数。因此,过分依赖Matlab及其工具箱提供的强大科学计算能力对于学生掌握模式识别算法流程、进一步完成算法的设计与实现是没有好处的。
        三、针对性的解决方法
        针对过分依赖Matlab及其工具箱带来的问题,提出了如下解决方法:
        1)课堂教学时长相对短暂。教师在重点讲解算法原理后,如果再详细讲解算法设计与实现,显然耗时过长。因此,教师在结合Matlab讲解算法实现时,宜采用Matlab中对应的算法函数直接实现。如讲解主成分分析时,应采用调用princomp函数方式快速实现主成分分析。同时,将讲解和演示重点真实数据在算法处理后的效果进行可视化演示,以增加学生对算法原理和效果的直观感受。以主成分分析为例,以下是对某一批数据的主成分分析结果。数据降维分布对比如图1所示。
        通过以上分布对比图,学生即可直观感受到主成分将原始三维空间数据成功降至为二维平面数据。通过分布直观比较学生易知,选取第一、第二主成分方向进行降维能够最大程度保持原始数据方差分布特性。因此,在课堂讲解过程中,采用Matlab进行辅助教学应侧重于
算法结果的可视化演示,使学生对算法功能有直观的认识,激发学生进一步了解算法原理的兴趣。
        2)在激发学生了解算法原理的兴趣的基础上,通过作业、课程设计等多种方式进一步强化学生课外学习,使学生通过查阅资料,在初步了解算法的计算过程的基础上独立设计并实现相关算法。如要求学生课后完成算法设计作业:采用Matlab编程实现主成分分析。为避免学生绕过算法具体实现,仅通过简单调用princomp函数来完成主成分分析,特限定学生只能采用Matlab提供的基本矩阵运算功能来设计并实现算法。在此限定条件下,如果学生没有真正掌握主成分分析算法的计算过程,是无法编程实现该算法的。
        四、教学实践成效
        教学班级有学生matlab等高线图数值提取34人,采用本文提出的解决方法引入Matlab进行模式识别课程教学。在课堂教学过程中,通过princomp函数快速实现主成分分析算法,并对真实数据进行主成分分析降维可视化演示。从课堂教学情况来看,所有学生从主成分降维可视化演示中掌握了主成分分析的主要功能,激发了学生了解算法原理的兴趣。课后要求学生用Matlab编程实现主成分分析,29名学生较好地完成了任务,其他6名同学思路正确,但因没有上机调试,存在
一些错误。从学生课后作业的完成情况来看,所有同学均掌握了主成分分析算法原理和计算过程。
        五、结论
        本文对如何合理使用Matlab辅助模式识别课程教学进行了探讨。分析指出,过于依赖Matlab将使学生无法真正掌握模式识别算法原理。因此,教学过程中必须合理使用Matlab:一方面,教师借助Matlab强大的图像绘制功能,使学生获得最为直观的感受,加深基本知识的理解;另一方面,限制学生对Matlab工具箱的滥用,要求仅通过使用基本矩阵运算来实现算法,使学生能真正掌握算法原理,同时提高学生的程序设计能力。
        参考文献:
        [1]边肇祺,张学工,等.模式识别[M].第二版.北京:清华大学出版社,2000.

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。