⑴ Matlab问题--如何用遗传算法优化BP神经网络这篇文献(中文)是如何做的

MATLAB是矩阵实验室(Matrix Laboratory)之意。除具备卓越的数值计算能力外,它还提供了专业水平的符号计算,文字处理,可视化建模仿真和实时控制等功能。
MATLAB的基本数据单位是矩阵,它的指令表达式与数学,工程中常用的形式十分相似,故用MATLAB来解算问题要比用C,FORTRAN等语言完相同的事情简捷得多.在新的版本中也加入了对C,FORTRAN,c++ ,JAVA的支持.可以直接调用,用户也可以将自己编写的实用程序导入到MATLAB函数库中方便自己以后调用,此外许多的MATLAB爱好者都编写了一些经典的程序,用户可以直接进行下载就可以用,非常的方便。
MATLAB的基础是矩阵计算,但是由于他的开放性,并且mathwork也吸收了像maple等软件的优点,使MATLAB成为一个强大的数学软件
当前流行的MATLAB 6.5/7.0包括拥有数百个内部函数的主包和三十几种工具包(Toolbox).工具包又可以分为功能性工具包和学科工具包.功能工具包用来扩充MATLAB的符号计算,可视化建模仿真,文字处理及实时控制等功能.学科工具包是专业性比较强的工具包,控制工具包,信号处理工具包,通信工具包等都属于此类.
开放性使MATLAB广受用户欢迎.除内部函数外,所有MATLAB主包文件和各种工具包都是可读可修改的文件,用户通过对源程序的修改或加入自己编写程序构造新的专用工具包.
Matlab的官方网站:http://www.mathworks.com
Matlab的优势和特点
(1)友好的工作平台和编程环境
MATLAB由一系列工具组成。这些工具方便用户使用MATLAB的函数和文件,其中许多工具采用的是图形用户界面。包括MATLAB桌面和命令窗口、历史命令窗口、编辑器和调试器、路径搜索和用于用户浏览帮助、工作空间、文件的浏览器。随着MATLAB的商业化以及软件本身的不断升级,MATLAB的用户界面也越来越精致,更加接近Windows的标准界面,人机交互性更强,操作更简单。而且新版本的MATLAB提供了完整的联机查询、帮助系统,极大的方便了用户的使用。简单的编程环境提供了比较完备的调试系统,程序不必经过编译就可以直接运行,而且能够及时地报告出现的错误及进行出错原因分析。
(2)简单易用的程序语言
Matlab一个高级的距阵/阵列语言,它包含控制语句、函数、数据结构、输入和输出和面向对象编程特点。用户可以在命令窗口中将输入语句与执行命令同步,也可以先编写好一个较大的复杂的应用程序(M文件)后再一起运行。新版本的MATLAB语言是基于最为流行的C++语言基础上的,因此语法特征与C++语言极为相似,而且更加简单,更加符合科技人员对数学表达式的书写格式。使之更利于非计算机专业的科技人员使用。而且这种语言可移植性好、可拓展性极强,这也是MATLAB能够深入到科学研究及工程计算各个领域的重要原因。
(3)强大的科学计算机数据处理能力
MATLAB是一个包含大量计算算法的集合。其拥有600多个工程中要用到的数学运算函数,可以方便的实现用户所需的各种计算功能。函数中所使用的算法都是科研和工程计算中的最新研究成果,而前经过了各种优化和容错处理。在通常情况下,可以用它来代替底层编程语言,如C和C++ 。在计算要求相同的情况下,使用MATLAB的编程工作量会大大减少。MATLAB的这些函数集包括从最简单最基本的函数到诸如距阵,特征向量、快速傅立叶变换的复杂函数。函数所能解决的问题其大致包括矩阵运算和线性方程组的求解、微分方程及偏微分方程的组的求解、符号运算、傅立叶变换和数据的统计分析、工程中的优化问题、稀疏矩阵运算、复数的各种运算、三角函数和其他初等数学运算、多维数组操作以及建模动态仿真等。
(4)出色的图形处理功能
MATLAB自产生之日起就具有方便的数据可视化功能,以将向量和距阵用图形表现出来,并且可以对图形进行标注和打印。高层次的作图包括二维和三维的可视化、图象处理、动画和表达式作图。可用于科学计算和工程绘图。新版本的MATLAB对整个图形处理功能作了很大的改进和完善,使他不仅在一般数据可视化软件都具有的功能(例如二维曲线和三维曲面的绘制和处理等)方面更加完善,而且对于一些其他软件所没有的功能(例如图形的光照处理、色度处理以及四维数据的表现等),MATLAB同样表现了出色的处理能力。同时对一些特殊的可视化要求,例如图形对话等,MATLAB也有相应的功能函数,保证了用户不同层次的要求。另外新版本的MATLAB还着重在图形用户界面(GUI)的制作上作了很大的改善,对这方面有特殊要求的用户也可以得到满足。
(5)应用广泛的模块集合工具箱
MATLAB对许多专门的领域都开发了功能强大的模块集和工具箱。一般来说,他们都是由特定领域的专家开发的,用户可以直接使用工具箱学习、应用和评估不同的方法而不需要自己编写代码。目前,MATLAB已经把工具箱延伸到了科学研究和工程应用的诸多领域,诸如数据采集、数据库接口、概率统计、样条拟合、优化算法、偏微分方程求解、神经网络、小波分析、信号处理、图像处理、系统辨识、控制系统设计、LMI控制、鲁棒控制、模型预测、模糊逻辑、金融分析、地图工具、非线性控制设计、实时快速原型及半物理仿真、嵌入式系统开发、定点仿真、DSP与通讯、电力系统仿真等,都在工具箱(Toolbox)家族中有了自己的一席之地。
(6)实用的程序接口和发布平台
新版本的MATLAB可以利用MATLAB编译器和C/C++数学库和图形库,将自己的MATLAB程序自动转换为独立于MATLAB运行的C和C++代码。允许用户编写可以和MATLAB进行交互的C或C++语言程序。另外,MATLAB网页服务程序还容许在Web应用中使用自己的MATLAB数学和图形程序。
MATLAB的一个重要特色就是他有一套程序扩展系统和一组称之为工具箱的特殊应用子程序。工具箱是MATLAB函数的子程序库,每一个工具箱都是为某一类学科专业和应用而定制的,主要包括信号处理、控制系统、神经网络、模糊逻辑、小波分析和系统仿真等方面的应用。
(7)应用软件开发(包括用户界面)
在开发环境中,使用户更方便地控制多个文件和图形窗口;在编程方面支持了函数嵌套,有条件中断等;在图形化方面,有了更强大的图形标注和处理功能,包括对性对起连接注释等;在输入输出方面,可以直接向Excel和HDF5。
(8) Matlab常用工具箱介绍(英汉对照)
Matlab Main Toolbox——matlab主工具箱
Control System Toolbox——控制系统工具箱
Communication Toolbox——通讯工具箱
Financial Toolbox——财政金融工具箱
System Identification Toolbox——系统辨识工具箱
Fuzzy Logic Toolbox——模糊逻辑工具箱
Higher-Order Spectral Analysis Toolbox——高阶谱分析工具箱
Image Processing Toolbox——图象处理工具箱
LMI Control Toolbox——线性矩阵不等式工具箱
Model predictive Control Toolbox——模型预测控制工具箱
μ-Analysis and Synthesis Toolbox——μ分析工具箱
Neural Network Toolbox——神经网络工具箱
Optimization Toolbox——优化工具箱
Partial Differential Toolbox——偏微分方程工具箱
Robust Control Toolbox——鲁棒控制工具箱
Signal Processing Toolbox——信号处理工具箱
Spline Toolbox——样条工具箱
Statistics Toolbox——统计工具箱
Symbolic Math Toolbox——符号数学工具箱
Simulink Toolbox——动态仿真工具箱
System Identification Toolbox——系统辨识工具箱
Wavele Toolbox——小波工具箱
例如:控制系统工具箱包含如下功能:
连续系统设计和离散系统设计
状态空间和传递函数以及模型转换
时域响应(脉冲响应、阶跃响应、斜坡响应)
频域响应(Bode图、Nyquist图)
根轨迹、极点配置
1.补充新的内容:
MATLAB R2007b正式发布了!MATLAB 2007b于2007年秋节正式发布,TMW正式发布了MATLAB R2007b,新版本涵盖:Simulink 7、新产品Simulink Design Verifier、Link for Analog Devices VisualDSP以及82个产品模块的更新升级及Bug修订。从现在开始,MathWorks公司将每年进行两次产品发布,时间分别在每年的3月和9 月,而且,每一次发布都会包含所有的产品模块,如产品的new feature、bug fixes和新产品模块的推出。
在R2007b中(MATLAB 7.4,Simulink 6.6),主要更新了多个产品模块、增加了多达350个新特性、增加了对64位Windows的支持,并新推出了.net工具箱。R2007b, released on March 1, 2007, includes updates to MATLAB and Simulink, two new procts released since R2007b, and updates and bug fixes to 82 other procts. R2007b adds support for the Intel® based Mac, Windows Vista™, and 64-bit Sun Solaris™ SPARC platforms.
这次的升级做了重大的增强,也升级了以下各版本,提供了MATLAB、SIMULINK的升级以及其他最新的模块的升级。这个Matlab 2007版本不仅仅提高了产品质量,同时也提供了新的用于数据分析、大规模建模、固定点开发、编码等新特征。
其中MATLAB Builder for .net扩展了MATLAB Compiler的功能,主要有:
可以打包MATLAB函数,使网络程序员可以通过C#,VB.net等语言访问这些函数;
创建组件来保持MATLAB的灵活性;
创建COM组件;
将源自MATLAB函数的错误作为一个标准的管理异常来处理。
R2007b 提供了重大的新功能: 直接在命令行使用 Real-Time Workshop 的 嵌入式 MATLAB 函数的 C 代码生成。 另外,Simulink 中的嵌入式 MATLAB 函数块支持多 M 文件中的算法。
MATLAB R2007b新版本中,产品模块进行了一些调整,MATLAB Builder for COM的功能集成到MATLAB Builder for .net中去了,Finacial Time Series Toolbox的功能集成到Financial Toolbox中了。MATLAB 将高性能的数值计算和可视化集成在一起,并提供了大量的内置函数,从而被广泛地应用于科学计算、控制系统、信息处理等领域的分析、仿真和设计工作,而且利用 MATLAB 产品的开放式结构,可以非常容易地对 MATLAB 的功能进行扩充,从而在不断深化对问题认识的同时,不断完善 MATLAB 产品以提高产品自身的竞争能力。
作为和Mathematica、Maple并列的三大数学软件。其强项就是其强大的矩阵计算以及仿真能力。要知道Matlab的由来就是Matrix + Laboratory = Matlab,所以这个软件在国内也被称作《矩阵实验室》。每次MathWorks发布Matlab的同时也会发布仿真工具Simulink。在欧美很多大公司在将产品投入实际使用之前都会进行仿真试验,他们所主要使用的仿真软件就是Simulink。Matlab提供了自己的编译器:全面兼容C++以及 Fortran两大语言。所以Matlab是工程师,科研工作者手上最好的语言,最好的工具和环境。Matlab 已经成为广大科研人员的最值得信赖的助手和朋友!

⑵ 用什么算法能比较好的优化径向基神经网络!

可以试试一些智能算法,如蚁群算法,蛙跳算法等。

⑶ 最近在做概率神经网络的参数优化,就是平滑因子的优化,不知道有哪个大神有程序能帮帮我

你可以用模拟退火算法去做它。

⑷ 模拟退火算法优化BP神经网络

bp神经元网络的学习过程真正求解的其实就是权值的最优解,因为有可能会得出专局部最优解,所以你才会用模属拟退火来跳出局部最优解,也就是引入了逃逸概率。在这里你可以把bp的学习过程理解成关于 误差=f(w1,w2...) 的函数,让这个函数在模拟退火中作为目标函数,再加上模拟退火的一些初始参数(初始温度啊,退火速度啊等等),就能找到权值解空间的一个不错的最优解,就是一组权向量。把权向量带入到bp当中去,输入新的对象,自然就能算出新的输出了。
算法学习要脚踏实地,你要先学会神经元,在学会退火,两个的结合你才能理解。

⑸ 神经网络的训练可以采用二阶优化方法吗

1. 时间复杂度:使用二阶方法通常需要直接计算或者近似估计Hessian矩阵,这部分的时间损耗使得其相比一阶方法在收敛速度上带来的优势完全被抵消;
2. 某些非线性网络层很难(或不可能)使用二阶方法优化:如果这个情况为真,那是否可能针对每个网络层使用不同的优化方案,比如像Fully-Connected Layer这样的简单线性映射操作使用二阶方法,非线性网络层使用传统梯度下降方法?
3. 二阶方法容易被saddle points吸引,难以到达local minimal或者global minimal:NIPS 2014有篇论文([1406.2572] Identifying and attacking the saddle point problem in high-dimensional non-convex optimization)认为在高维情况下,神经网络优化最大的问题不是网络容易到达local minimal,而是容易被saddle points困住,因为在这种情况下,local minimal不管在loss值还是泛化能力上都与global minimal相差不大,反而是非常多的saddle points存在loss较高的空间中。

⑹ 求利用遗传算法工具箱优化神经网络的权值的matlab程序!最好是三层神经网络多输入单输出。

《matlab在数学建模中的应用》这本书中有你想要的程序,你可以找找看看

⑺ 怎么用mtlab优化工具箱求目标函数为BP神经网络训练结果的极值

需要声明全局变量。分别在两段程序的开头加上

globalnet

不然无法在函数中调用net.


如果你要多内于一个函数共用容一个简单的变量,简单的处理方法就是把这个变量在所有函数中定义为global全局变量。在命令行做同样的事情,如果你要工作空间访问上述变量。这个全局变量的定义必须出现在变量被应用于一个函数之前。虽然不是要求,但全局变量也最好以大写字母开头,这样可以同其他变量区别出来。举个例子,做一个以falling.m命名的M-文件。

function h = falling(t)
global GRAVITY
h = 1/2*GRAVITY*t.^2;

然后交互地输入语句

global GRAVITY
GRAVITY = 32;
y = falling((0:.1:5)');

这两个变量在函数中表示同一个内容。之后你可以交互地修改GRVITY并获得新的解法,而不用再编辑文档。

注意:1 全局变量列表中各个变量名不能用逗号分隔。 如: global a b c
2 全局变量使用前必须再matlab工作空间中申明,如果再具体得函数中用则要在函数前面申明,否则在该函数中即使用到了该变量,也会被当成局部变量使用。

⑻ 求一个模拟退火算法优化BP神经网络的一个程序(MATLAB)

“模抄拟退火”算法是源于对热力学中退火过程的模拟,在某一给定初温下,通过缓慢下降温度参数,使算法能够在多项式时间内给出一个近似最优解。退火与冶金学上的‘退火’相似,而与冶金学的淬火有很大区别,前者是温度缓慢下降,后者是温度迅速下降。

“模拟退火”的原理也和金属退火的原理近似:我们将热力学的理论套用到统计学上,将搜寻空间内每一点想像成空气内的分子;分子的能量,就是它本身的动能;而搜寻空间内的每一点,也像空气分子一样带有“能量”,以表示该点对命题的合适程度。算法先以搜寻空间内一个任意点作起始:每一步先选择一个“邻居”,然后再计算从现有位置到达“邻居”的概率。


这个算法已经很多人做过,可以优化BP神经网络初始权值。附件是解决TSP问题的matlab代码,可供参考。看懂了就可以自己编程与bp代码结合。

⑼ 关于BP神经网络的优化

什么是最优?最优到小数点后几百位?

太形而上的话还不如不要最优。

蚁群只是一种,那么遗传呢,模拟退火呢?试试其他的。