多语言展示
当前在线:399今日阅读:60今日分享:41

MATLAB神经网络工具箱的部分函数

神经网络工具箱常用函数列表1)重要的感知器神经网络函数:初始化:initp训练:trainp仿真:simup学习规则:learnp2)线性神经网络函数:初始化:initlin设计:solvelin仿真:simulin离线训练:trainwh在线自适应训练:adaptwh学习规则:learnwh3)BP网络函数:Initff:初始化不超过3层的前向网络;Simuff:仿真不超过3层的前向网络;Trainbp,trainbpx,trainlm:训练BP(Trainbp:最慢;trainbpx:次之;trainlm:速度最快,但需要更多的存储空间。)Learnbp:学习规则4)自组织网络初始化:initsm仿真:simuc训练:trainc:利用竞争规则训练trainsm:利用Kohonen规则训练5)反馈网络(Hopfield网络)仿真:simuhop设计:solvehopsolvehop设计Hopfield网络solvelin设计线性网络rands产生对称随机数learnbp反向传播学习规则learnhHebb学习规则learnp感知层学习规则learnwhWidrow-Hoff学习规则initlin线性层初始化initp感知层初始化initsm自组织映射初始化plotsm绘制自组织映射图trainbp利用反向传播训练前向网络trainp利用感知规则训练感知层trainwh利用Widrow-Hoff规则训练线性层trainsm利用Kohonen规则训练自组织映射说明:本文档中所列出的函数适用于MATLAB5.3以上版本,为了简明起见,只列出了函数名,若需要进一步的说明,请参阅MATLAB的帮助文档。1. 网络创建函数newp 创建感知器网络newlind 设计一线性层newlin 创建一线性层newff 创建一前馈BP网络newcf 创建一多层前馈BP网络newfftd 创建一前馈输入延迟BP网络newrb 设计一径向基网络newrbe 设计一严格的径向基网络newgrnn 设计一广义回归神经网络newpnn 设计一概率神经网络newc 创建一竞争层newsom 创建一自组织特征映射newhop 创建一Hopfield递归网络newelm 创建一Elman递归网络2. 网络应用函数sim 仿真一个神经网络init 初始化一个神经网络adapt 神经网络的自适应化train 训练一个神经网络3. 权函数dotprod 权函数的点积ddotprod 权函数点积的导数dist Euclidean距离权函数normprod 规范点积权函数negdist Negative距离权函数mandist Manhattan距离权函数linkdist Link距离权函数4. 网络输入函数netsum 网络输入函数的求和dnetsum 网络输入函数求和的导数5. 传递函数hardlim 硬限幅传递函数hardlims 对称硬限幅传递函数purelin 线性传递函数tansig 正切S型传递函数logsig 对数S型传递函数dpurelin 线性传递函数的导数dtansig 正切S型传递函数的导数dlogsig 对数S型传递函数的导数compet 竞争传递函数radbas 径向基传递函数satlins 对称饱和线性传递函数6. 初始化函数initlay 层与层之间的网络初始化函数initwb 阈值与权值的初始化函数initzero 零权/阈值的初始化函数initnw Nguyen_Widrow层的初始化函数initcon Conscience阈值的初始化函数midpoint 中点权值初始化函数7. 性能分析函数mae 均值绝对误差性能分析函数mse 均方差性能分析函数msereg 均方差w/reg性能分析函数dmse 均方差性能分析函数的导数dmsereg 均方差w/reg性能分析函数的导数8. 学习函数learnp 感知器学习函数learnpn 标准感知器学习函数learnwh Widrow_Hoff学习规则learngd BP学习规则learngdm 带动量项的BP学习规则learnk Kohonen权学习函数learncon Conscience阈值学习函数learnsom 自组织映射权学习函数9. 自适应函数adaptwb 网络权与阈值的自适应函数10. 训练函数trainwb 网络权与阈值的训练函数traingd 梯度下降的BP算法训练函数traingdm 梯度下降w/动量的BP算法训练函数traingda 梯度下降w/自适应lr的BP算法训练函数traingdx 梯度下降w/动量和自适应lr的BP算法训练函数trainlm Levenberg_Marquardt的BP算法训练函数trainwbl 每个训练周期用一个权值矢量或偏差矢量的训练函数11. 分析函数maxlinlr 线性学习层的最大学习率errsurf 误差曲面12. 绘图函数plotes 绘制误差曲面plotep 绘制权和阈值在误差曲面上的位置plotsom 绘制自组织映射图13. 符号变换函数ind2vec 转换下标成为矢量vec2ind 转换矢量成为下标矢量14. 拓扑函数gridtop 网络层拓扑函数hextop 六角层拓扑函数randtop 随机层拓扑函数学习面向MATLAB工具箱的人工神经网络的“同学”注意啦,以下是通过 help 命令,调出英文版的函数帮助文件,通过整理出来的几个中文版函数。hardlim硬限制型传递函数用法A=hardlim(N)info=hardlim(code)说明hardlim是一个传递函数,传递函数是通过层的网络输入来计算输出;hardlim(N)需要一组网络输入N,N是一个S×Q的矩阵,由网络输入矢量组成,当N符合条件时,函数返回1,否则返回0;hardlim(CODE)返回CODE中每一条字符串的有用信息:deriv派生函数名name全名output输出范围active有效的输入范围实例下面的代码将告诉你如何创建hardlim传递函数的图形n=-5:0.1:5;a=hardlim(n);plot(n,a)网络使用你可以通过调用NEWP来创建一个使用了hardlim的标准网络;通过设置网络层的传递函数为hardlim来改变网络结构,使得网络使用了hardlim;任何情况下,可以调用SIM来模拟使用了hardlim的网络;使用NEWP获得模拟实例;算法hardlim(n)=1,ifn>=00,otherwisepurelin线性传递函数用法A=purelin(N)info=purelin(code)说明purelin是一个传递函数,传递函数通过层的网络输入来计算输出;purelin(N)需要一组输入N,N是一个S×Q的矩阵,有网络输入矢量组成,函数返回Npurelin(CODE)返回CODE中每一条字符串的有用信息:deriv返回派生函数名name返回全名output返回输出范围active返回有效输入范围实例下面的代码用来创建purelin线性传递函数的图形n=-5:0.1:5;a=purelin(n);plot(n,a)网络使用你可以通过调用NEWLIN或NEWLIND来创建一个使用了purelin的标准网络;通过设置网络层的传递函数为purelin来改变网络,使得网络层使用了purelin;任何情况下,可以调用SIM来模拟使用了purelin的网络;使用NEWLIN或NEWLIND获得模拟实例;算法purelin(n)=nmaxlinlr线性层的最大学习速率用法lr=maxlinlr(P)lr=maxlinlr(P,'bias')说明maxlinlr是用来为NEWLIN计算学习速率的maxlinlr(P)需要一组参数P,P是一个R×Q的矩阵,由输入矢量组成;函数返回零偏差的线性层的最大学习速率,也就是说,网络只用P中的矢量来训练;maxlinlr(P,'bias')返回带偏差bias的线性层的最大学习速率;实例下面我们定义了一个4组2元输入矢量来寻找一个带偏差的线性层的最大学习速率:P=[12-47;0.13106];lr=maxlinlr(P,'bias')learnp感知器权值/偏差学习函数用法[dW,LS]=learnp(W,P,Z,N,A,T,E,gW,gA,D,LP,LS)[db,LS]=learnp(b,ones(1,Q),Z,N,A,T,E,gW,gA,D,LP,LS)info=learnp(code)说明learnp是感知器的权值/偏差学习函数;learnp(W,P,Z,N,A,T,E,gW,gA,D,LP,LS)需要多个输入值W是S×R的权矩阵(或者b,一个S×1的偏差矢量)P是R×Q的输入矢量(或1×Q的单位矩阵)Z是S×Q的加权输入矢量N是S×Q的网络输入矢量A是S×Q的输出矢量T是S×Q的层目标矢量E是S×Q的层误差矢量gW是S×R的梯度参数gA是S×Q的输出梯度参数D是S×S的神经元距离LP是学习参数,为空,即LP=[]LS是学习状态,初始值也为空dW是S×R的权(偏差)修正矩阵LS是新的学习状态learnp(CODE)返回CODE中每条字符串的有用信息pnames返回学习参数的名称pdefaults返回默认的学习参数needg如果函数使用了gW或者gA时,返回1实例为一个具有二元输入和三个神经元的层定义了一个随机输入P和误差Ep=rand(2,1);e=rand(3,1);由于learnp计算权修正值仅需以上几个值(参阅下面的算法),这样我们就可以计算权修正值了:dW=learnp([],p,[],[],[],[],e,[],[],[],[],[])网络使用你可以使用NEWP来创建一个使用了learnp的标准网络;定义一个自定义网络每一层的权值和偏差来学习learnp1)设定网络训练函数为trainb。网络训练参数将自动成为trainb的默认参数。2)设定网络适应函数为trains。网络适应参数将自动成为trains的默认参数。3)设定网络输入权值学习函数为learnp,设定网络层权值学习函数为learnp,设定网络偏差学习函数为learnp(如果LEARNP没有学习参数时,每一个权值和偏差的学习参数属性将自动设定为空矩阵)训练网络(或者使网络具有适应性):1)设定网络训练参数(网络适应参数)的性能为期望值;2)调用train(adapt);使用NEWP获得适应性和训练实例;算法learnp根据感知器学习规则,通过神经元的输入矢量P和误差矢量E,计算一个给定的神经元的权修正值dW:dw=0,ife=0=p',ife=1=-p',ife=-1以上过程可总结为:dw=e*p'learnwh威德罗-霍夫权值/偏差学习函数用法[dW,LS]=learnwh(W,P,Z,N,A,T,E,gW,gA,D,LP,LS)[db,LS]=learnwh(b,ones(1,Q),Z,N,A,T,E,gW,gA,D,LP,LS)info=learnwh(code)说明learnwh是威德罗-霍夫权值/偏差学习函数,遵循规则或最小均方差算法(LMS);learnwh(W,P,Z,N,A,T,E,gW,gA,D,LP,LS)需要多个输入,如下:W——S×R的权矩阵(或b,S×1的偏差矢量)P——R×Q的输入矢量(或1×Q的单位矢量)Z——S×Q的权输入矢量N——S×Q的网络输入矢量A——S×Q的输出矢量T——S×Q的层目标矢量E——S×Q的层误差矢量gW——S×R的梯度参数gA——S×Q的输出梯度性能D——S×S的神经元距离LP——学习参数,为空,即LP=[]LS——学习状态,初始LS=[]函数返回值dW——S×R的权(偏差)修正矩阵LS——新的学习状态学习过程根据learnwh的学习参数进行,学习速率的默认值为0.01learnwh(CODE)返回CODE中每一条字符串的有用信息:pname——返回学习参数的名称pdefault——返回默认的学习参数needg——如果函数使用了gW或gA时,返回1实例下面的例子我们为一个具有2元输入和3个神经元的层定义了一个随机输入矢量P、误差矢量E,以及学习速率lp.lr;p=rand(2,1);e=rand(3,1);lp.lr=0.5;由于learnwh计算权修正值仅需要以上几个值(参阅下面的算法),这样我们就可以计算权修正值了:dW=learnwh([],p,[],[],[],[],e,[],[],[],lp,[])网络使用你可以通过NEWLIN来创建一个使用了learnwh的标准网络;定义一个自定义网络中每一层的权值和偏差来学习learnwh:1)设定网络学习函数为trainb。网络训练参数将自动成为trainb的默认参数。2)设定网络适应性函数为trains。网络适应参数将自动成为trains的默认参数。3)设定每一网络输入权值的学习函数为learnwh,设定每一网络层权值的学习函数为learnwh,设定网络偏差学习函数为learnwh。每一个权值和偏差学习参数的性能将自动被设定为learnwh的默认参数。训练网络(或使网络具有适应性):1)设定网络训练参数(或网络适应参数)的性能为期望值;2)调用train(adapt);使用NEWLIN获得适应性或训练实例;算法learnwh根据WH学习规则,通过神经元的输入矢量P、误差矢量E以及权值(偏差)的学习参数LR,计算给定神经元的权修正值:dw=lr*e*pn
推荐信息