MATLAB是什么

2016-03-22 AllanChan 更多博文 » 博客 » GitHub »

原文链接 http://allanhost.com/tag/2016/03/22/Matlab%E6%98%AF%E4%BB%80%E4%B9%88.html
注:以下为加速网络访问所做的原文缓存,经过重新格式化,可能存在格式方面的问题,或偶有遗漏信息,请以原文为准。


MATLAB语言的历史、用途和特点 70年代后期,Cleve Moler担任美国墨西哥大学计算机系系主任,为了让学生方便的调用EISPACK和LINPACK,设计了接口程序,取名MATLAB (MATrix LABoratory),即Matrix和Laboratory的组合。

MATLAB语言的历史、用途和特点:

MATLAB的第一个商业化的版本是1984年推出的是3.0的DOS版本,1992年MathWorks 公司于推出了4.0版本,1994年的4.2版本扩充了4.0版本的功能,尤其在图形界面设计方面更提供了新的方法。1997年推出的5.0版允许了更多的数据结构,如单元数据、多维矩阵、对象与类等,使其成为一种更方便编程的语言。1999年推出的 MATLAB 5.3版在很多方面又进一步改进了 MATLAB 语言的功能。2000年10月底推出了其全新的 MATLAB 6.0正式版(Release 12),在核心数值算法、界面设计、外部接口、应用桌面等诸多方面有了极大的改进。现在的MATLAB支持各种操作系统,它可以运行在十几个操作平台上,其中比较常见的有基于Windows 9X/NT、OS/2、Macintosh、Sun、Unix、Linux等平台的系统。现在的MATLAB再也不是一个简单的矩阵实验室了,它已经演变成为一种具有广泛应用前景的全新的计算机高级编程语言了。其功能也越来越强大,会不断根据科研需求提出新的解决方法。 MATLAB具有用法简单、灵活、程式结构性强、延展性好等优点,已经逐渐成为科技计算、视图交互系统和程序中的首选语言工具。特别是它在线性代数、数理统计、自动控制、数字信号处理、动态系统仿真等方面表现突出,已经成为科研工作人员和工程技术人员进行科学研究和生产实践的有利武器。

MATLAB具有以下几个特点:

1:功能强大的数值运算功能 2:强大的图形处理能力 3:高级但简单的程序环境 4:丰富的工具箱

MATLAB产品家族

MATLAB是所有MathWorks公司产品的基石,它包括了数值计算,2-D和3-D图形,语句以及单一易使用环境下的语言能力。 MATLAB Extensions是可选择性工具,它用来支持用MATLAB开发的系统运行。 Toolboxes 是针对解决特定种类问题而特别制作的MATLAB 函数库。它具有开放性和可扩展性,用户甚至可以加入之间的工具箱。 SIMULINK是对非线性动态系统进行仿真的互动系统,它把模块图形界面和MATLAB主要数值、图形和语言函数有效的组合起来,从而具有生动的模拟能力。 SIMULINK Extensions是可选择性工具,它用来支持用SIMULINK开发的系统运行。 Blocksets是为各具体应有领域,如通讯、信号处理等设计的一套SIM-ULINK模块库。

MATLAB系统构成

主要由以下五部分构成:
MATLAB语言
MATLAB工作环境
图形处理
MATLAB数学函数库
MATLAB应用编程人员接口(API) 

工具箱

各种工具箱(TOOLBOX)使用户能够学习和使用专业技术,它们集成了MATLAB函数并扩展了MATLAB工作环境,这样就可以解决一些特殊类别的问题,用户可以方便快捷地使用复杂的理论公式,免除了自己编写复杂而庞大的算法程序的困扰。尤其是在做数学推导和理论验证时,有了这些功能丰富的工具箱,问题就变的十分简单。 总的来说,迄今所有的几十个工具箱大致可分为两类:功能型工具箱和领域型工具箱。功能型工具箱主要用来扩充MATLAB的符号计算功能、图形建模仿真功能、文字处理功能以及与硬件实时交互功能,能用于多种学科。而领域型工具箱是专业性很强的,如控制工具箱、金融工具箱等。

神经网络工具箱

Matlab对应的神经网络的版本号是Version4.0.3,它以神经网络理论为基础,利用matlab脚本语言构造出典型的神经网络激活函数,如线形、竞争型和饱和线形等激活函数,使设计者对所选定的网络输出的计算,变成对激活函数的调用。另外,根据各种典型的休正网络权值的规则,再加上网络的训练过程,利用matlab编写出各种网络设计和训练的子程序,将自己从繁琐的编程中解脱出来,集中精力解决其他问题,从而提高了工作效率。 最新版本的神经网络工具箱几乎涵盖了所有的神经网络的基本常用模型,如感知器和BP网络等。对于各种不同版本的网络模型,神经网络工具箱集成了多种学习算法,为用户提供了极大的方便。另外,工具箱中还给出了大量的示例程序和帮助文档,能够快速的帮助用户掌握工具箱的应用方法。

在实际应用中,面对一个具体的问题时,首先需要分析利用神经网络求解问题的性质,然后依据问题的特点,确定网络模型。最后通过对网络进行训练、仿真等、检验网络的性能是否满足要求。下面介绍具体的过程。

1.确定信息表达方式
将领域问题及其相应的领域知识转化为可以接受并处理的形式,即将领域问题抽象为适合于网络求解所能接受的某种数据形式。尽管在实际应用中,问题的形式会是多中多样的,但不外乎以下几种:
数据样本以知;
数据样本之间的相互关系不明确;
输入/输出模式为连续的或者离散的;
输入数据按照模式进行分类,模式可能会具有平移、旋转或伸缩等变化形式;
数据样本的预处理;
将数据样本分为训练样本和测试样本;

2.网络模型的确定
主要是如何根据问题的实际情况,选择模型的类型、结构等。另外,还可爱典型的网络模型的基础上,结合问题的具体情况,对原网络进行变形、扩充等,同时还可以采用多种网络模型的组合形式。

3.网络参数的选择
确定网络的输入输出神经元数目,如果是多层网络,还需要进一步确定隐含层神经元的个数。对于反馈神经网络,如Hopfield网络和Elman网络,还需要进一步地设置神经元的有关属性。

4.训练模式的确定
包括选择合理的训练算法,确定合适的训练步数,指定适当训练目标误差,以获得较好的网络性能。

5.网络测试
选择合理的测试样本,对网络进行测试,或者将网络应用于实际问题,检验网络性能。值得提出的是,网络测试过程需要遵循“交叉测试”的原则,保证测试的有效性、准确性和全面性。 总之,神经网络工具箱是一个内容全面、操作方便的软件包,对于广大神经网络系统的研发者来说,掌握神经网络工具箱的应用将使得自己在工作中如虎添翼。

神经网络研究的发展历程

神经网络研究的主要发展过程大致可分为四个阶段:

  1. 第一阶段是在五十年代中期之前。 西班牙解剖学家Cajal于十九世纪末创立了神经元学说,该学说认为神经元的形状呈两极,其细胞体和树突从其他神经元接受冲动,而轴索则将信号向远离细胞体的方向传递。在他之后发明的各种染色技术和微电极技术不断提供了有关神经元的主要特征及其电学性质。 1943年,美国的心理学家W.S.McCulloch和数学家W.A.Pitts在论文《神经活动中所蕴含思想的逻辑活动》中,提出了一个非常简单的神经元模型,即M-P模型。该模型将神经元当作一个功能逻辑器件来对待,从而开创了神经网络模型的理论研究。 1949年,心理学家D.O. Hebb写了一本题为《行为的组织》的书,在这本书中他提出了神经元之间连接强度变化的规则,即后来所谓的Hebb学习法则。Hebb写道:"当神经细胞A的轴突足够靠近细胞B并能使之兴奋时,如果A重复或持续地激发B,那么这两个细胞或其中一个细胞上必然有某种生长或代 谢过程上的变化,这种变化使A激活B的效率有所增加。"简单地说,就是 如果两个神经元都处于兴奋状态,那么它们之间的突触连接强度将会得到增强。 五十年代初,生理学家Hodykin和数学家Huxley在研究神经细胞膜等效电路时,将膜上离子的迁移变化分别等效为可变的Na+电阻和K+电阻,从而建立了著名的Hodykin-Huxley方程。 这些先驱者的工作激发了许多学者从事这一领域的研究,从而为神经计算的出现打下了基础。

  2. 第二阶段从五十年代中期到六十年代末。 1958年,F.Rosenblatt等人研制出了历史上第一个具有学习型神经网络特点的模式识别装置,即代号为Mark I的感知机(Perceptron),这一重大事件是神经网络研究进入第二阶段的标志。对于最简单的没有中间层的感知机,Rosenblatt证明了一种学习算法的收敛性,这种学习算法通过迭代地改变连接权来使网络执行预期的计算。 稍后于Rosenblatt,B.Widrow等人创造出了一种不同类型的会学习的神经网络处理单元,即自适应线性元件Adaline,并且还为Adaline找出了一种有力的学习规则,这个规则至今仍被广泛应用。Widrow还建立了第一家神经计算机硬件公司,并在六十年代中期实际生产商用神经计算机和神经计算机软件。 除Rosenblatt和Widrow外,在这个阶段还有许多人在神经计算的结构和实现思想方面作出了很大的贡献。例如,K.Steinbuch研究了称为学习矩阵的一种二进制联想网络结构及其硬件实现。N.Nilsson于1965年出版的《机器学习》一书对这一时期的活动作了总结。

  3. 第三阶段从六十年代末到八十年代初。 第三阶段开始的标志是1969年M.Minsky和S.Papert所著的《感知机》一书的出版。该书对单层神经网络进行了深入分析,并且从数学上证明了这种网络功能有限,甚至不能解决象"异或"这样的简单逻辑运算问题。同时,他们还发现有许多模式是不能用单层网络训练的,而多层网络是否可行还很值得怀疑。 由于M.Minsky在人工智能领域中的巨大威望,他在论著中作出的悲观结论给当时神经网络沿感知机方向的研究泼了一盆冷水。在《感知机》一书出版后,美国联邦基金有15年之久没有资助神经网络方面的研究工作,前苏联也取消了几项有前途的研究计划。 但是,即使在这个低潮期里,仍有一些研究者继续从事神经网络的研究工作,如美国波士顿大学的S.Grossberg、芬兰赫尔辛基技术大学的T.Kohonen以及日本东京大学的甘利俊一等人。他们坚持不懈的工作为神经网络研究的复兴开辟了道路。

  4. 第四阶段从八十年代初至今。 1982年,美国加州理工学院的生物物理学家J.J.Hopfield采用全互连型神经网络模型,利用所定义的计算能量函数,成功地求解了计算复杂度为NP完全型的旅行商问题(Travelling Salesman Problem,简称TSP)。这项突破性进展标志着神经网络方面的研究进入了第四阶段,也是蓬勃发展的阶段。 Hopfield模型提出后,许多研究者力图扩展该模型,使之更接近人脑的功能特性。1983年,T.Sejnowski和G.Hinton提出了"隐单元"的概念,并且研制出了Boltzmann机。日本的福岛邦房在Rosenblatt的感知机的基础上,增加隐层单元,构造出了可以实现联想学习的"认知机"。Kohonen应用3000个阈器件构造神经网络实现了二维网络的联想式学习功能。1986年,D.Rumelhart和J.McClelland出版了具有轰动性的著作《并行分布处理-认知 微结构的探索》,该书的问世宣告神经网络的研究进入了高潮。 1987年,首届国际神经网络大会在圣地亚哥召开,国际神经网络联合会(INNS)成立。随后INNS创办了刊物《Journal Neural Networks》,其他 专业杂志《Neural Computation》,《IEEE Transactions on NeuralNetworks》《International Journal of Neural Systems等也纷纷问世。世界上许多著名大学相继宣布成立神经计算研究所并制订有关教育计划,许多国家也陆续成立了神经网络学会,并召开了多种地区性、国际性会议,优秀论著、重大成果不断涌现。 今天,在经过多年的准备与探索之后,神经网络的研究工作已进入了决定性的阶段。日本、美国及西欧各国均制订了有关的研究规划。 日本制订了一个"人类前沿科学计划"。这项计划为期15-20年,仅初期投资就超过了1万亿日元。在该计划中,神经网络和脑功能的研究占有重要地位,因为所谓"人类前沿科学"首先指的就是有关人类大脑以及通过借鉴人脑而研制新一代计算机的科学领域。 在美国,神经网络的研究得到了军方的强有力的支持。美国国防部投资4亿美元,由国防部高级研究计划局(DAPRA)制订了一个8年研究计划,并成立了相应的组织和指导委员会。同时,海军研究办公室(ONR)、空军科研办公室(AFOSR)等也纷纷投入巨额资金进行神经网络的研究。DARPA认为神经网络"看来是解决机器智能的唯一希望",并认为"这是一项比原子弹工程更重要的技术"。 欧共体也制订了相应的研究计划。在其ESPRIT计划中,就有一个项目是"神经网络在欧洲工业中的应用",除了英、德两国的原子能机构外,还有多个欧洲大公司卷进这个研究项目,如英国航天航空公司、德国西门子公司等。此外,西欧一些国家还有自己的研究计划,如德国从1988年就开始进行一个叫作"神经信息论"的研究计划。 我国从1986年开始,先后召开了多次非正式的神经网络研讨会。1990年12月,由中国计算机学会、电子学会、人工智能学会、自动化学会、通信学会、物理学会、生物物理学会和心理学会等八个学会联合在北京召开了"中国神经网络首届学术会议",从而开创了我国神经网络研究的新纪元。

二.神经网络在目前的应用领域

1.控制理论及其应用设计
神经网络用于控制系统设计主要是针对系统的非线形、不确定性和复杂性进行的。由于神经网络的自适应能力、并行处理能力和超强的鲁棒性,使得采用神经网络的控制系统具有更快的计算速度(实时性)、更强的适应能力和更好的鲁棒性。 2.基于神经网络的故障诊断
神经网络技术的出现,为故障诊断问题提供了一种新的解决途径,特别是对于在实际中难以建立数学模型的复杂系统,神经网络更显示出其独特的作用。总的来说,神经网络之所以可以成功地应用于故障诊断领域,主要是基于以下3个方面的原因:
1.练过的神经网络能存储有关过程的知识,能直接从历史故障信息中学习。可以根据对象的日常历史数据训练网络,然后将此信息与当前测量数据进行比较,以确定故障的类型。
2.神经网络具有滤除噪声及在有噪声的情况下得出正确结论的能力,可以训练人工神经往网络来识别故障信息,使其能在燥声环境中有效的工作,这种滤除燥声的能力使得人工神经网络很适合在线故障检测和诊断
3.神经网络具有分辨故障原因及故障类型的能力

3.基于神经网络的模糊控制
模糊控制器自1974年问世以来,其基本设计方法一直没有大的变化。它的基本设计思想就是借助人工操作的经验,通过合成关系,把输入的模糊量和关系矩阵合成,推导出控制量。近年来,随着神经网络理论的迅速发展,一些研究人员尝试将神经网络引入到模糊控制器中,取得了不错的效果,控制器性能得到了进一步的提高。可以说,将模糊控制和神经网络两者结合组成的神经网络模糊控制技术是控制理论研究者们关注的焦点之一。

4.基于神经网络的自适应燥声抵消技术
自1986年开始,神经网络随着反向传播技术的的出现而得到复兴,此后神经网络的研究再度掀起高潮,由于神经网络具有高度并行性、很强的非线性、变换能力和学习能力,因此具有巨大的应用潜力,也为自适应非线性滤波提供了一种全新的思路和方法。

5.基于神经网络的预测
神经网络在非线性系统预测这方面显示出了明显的优越性。由于神经网络具有通过学习逼近任意非线性映射的能力,将神经网络应用于非线性系统的建模与辨识,可以不受非线性模型的限制,便于给出工程上易于实现的学习算法