matlab神经元网络怎么用,matlab的nntool网络神经使用

发现论坛里没有matlab的nntool使用,我觉得这个做网络神经比较方便,所以分享点资料吧~~因为是新生,缺少论坛币,所以就很不好意思的。。。。。论坛币充足的帮帮忙吧~~没有论坛币的可以看下面的内容~~

b9aebcdccaca66edba33d014d0ef56ac.gif

神经网络工具箱的使用.doc

(144.5 KB, 需要: 1 个论坛币)

2012-2-20 15:42:28 上传

需要: 1 个论坛币

神经网络工具箱的使用

本章主要介绍神经网络工具箱的使用,使用nntool可以使得原本用编程来创建神经网络变得容易,而且不容易出错。

1神经网络的创建与训练

神经网络的创建主要分为以下四步:

1)在命令窗口键入nntool命令打开神经网络工具箱。如图1:

08b05ce0d596c72a04d00d75c1365631.gif

2012-2-20 15:08:24 上传

下载附件 (27.72 KB)

图 1

2)点击Import按钮两次,分别把输入向量和目标输出加入到对应的窗口([Inputs]和[Targets])中,有两种可供选择的加入对象(点击Import后可以看见),一种是把当前工作区中的某个矩阵加入,另一种是通过.mat文件读入。如图2和图3:

08b05ce0d596c72a04d00d75c1365631.gif

2012-2-20 15:09:25 上传

下载附件 (27.8 KB)

图 2

08b05ce0d596c72a04d00d75c1365631.gif

2012-2-20 15:10:05 上传

下载附件 (25.71 KB)

图 3

3)点击[New Network]按钮,填入各参数:(以最常用的带一个隐层的3层神经网络为例说明,下面没有列出的参数表示使用默认值就可以了,例如Network Type为默认的BP神经网络);

i)Input Range——这个通过点击Get From Input下拉框选择你加入的输入向量便可自动完成,当然也可以自己手动添加。

ii) Training Function——最好使用TRAINSCG,即共轭梯度法,其好处是当训练不收敛时,它会自动停止训练,而且耗时较其他算法(TRAINLM,TRAINGD)少,也就是收敛很快(如果收敛的话),而且Train Parameters输入不多,也不用太多的技巧调整,一般指定迭代次数、结果显示频率和目标误差就可以了(详见下文)。

iii) Layer 1 Number of Neurons——隐层的神经元个数,这是需要经验慢慢尝试并调整的,大致上由输入向量的维数、样本的数量和输出层(Layer2)的神经元个数决定。一般来说,神经元越多,输出的数值与目标值越接近,但所花费的训练时间也越长,反之,神经元越少,输出值与目标值相差越大,但训练时间会相应地减少,这是由于神经元越多其算法越复杂造成的,所以需要自己慢慢尝试,找到一个合适的中间点。比如输入是3行5000列的0-9的随机整数矩阵,在一开始选择1000个神经元,虽然精度比较高,但是花费的训练时间较长,而且这样神经网络的结构与算法都非常复杂,不容易在实际应用中实现,尝试改为100个,再调整为50个,如果发现在50个以下时精度较差,则可最后定为50个神经元,等等。

iv)Layer 1 Transfer Function——一般用TANSIG(当然也可以LOGSIG),即表示隐层输出是[-1,1]之间的实数,与LOGSIG相比范围更大。

v) Layer 2 Number of Neurons——输出层的神经元个数,需要与输出的矩阵行数对应,比如设置为3,等等。

vi) Layer 2 Transfer Function——如果是模式识别的两类(或者多类)问题,一般用LOGSIG,即表示输出层的输出是[0,1]之间的实数;如果输出超过[0,1]则可选择PURELIN。如图4和图5。

08b05ce0d596c72a04d00d75c1365631.gif

2012-2-20 15:10:49 上传

下载附件 (15.04 KB)

图 4

08b05ce0d596c72a04d00d75c1365631.gif

2012-2-20 15:11:05 上传

下载附件 (15.01 KB)

图 5

所有参数输入后,可以先用View按钮预览一下,如图6。没有问题的话就可以Create了。另外,网络创建完毕后,如果需要手动设置权重的初始值,按View按钮后有个Initialize选项卡,在那里可以设定。当然了,也可以不自行设定,这时候Matlab执行默认的程序进行权重的初始化(没有具体研究过,可能是随机设定)。

08b05ce0d596c72a04d00d75c1365631.gif

2012-2-20 15:11:58 上传

下载附件 (8.78 KB)

图 6

4)点击Train按钮,到达Training Info选项卡,在输入向量[Inputs]和目标输入向量[Targets]下拉框中选择你要训练的向量(即第二步加入的对象),如图7。然后到达Train Parameters选项卡,填入适当的迭代次数[epochs](一般先设置一个较小的数如200,然后观察收敛结果,如果结果窗口的收敛曲线衰减较快,则表示之前的参数比较有效,因此可填入2000或更大的数目使得网络收敛,否则修改之前的参数)、结果显示频率[show](例如要每隔50次迭代显示结果窗口,则填50)和目标误差[goal](这个与第2步中的“Performance Function”有关,如果使用默认的MSE,则一般满足“goal*样本数量<0.5”就可以了),就可以开始训练了(按钮[Train Network]),如果结果收敛(训练误差不大于目标误差,即蓝色线到达黑色线位置)就OK了(例如要求精度很高,尝试填0,等等),如图8。

08b05ce0d596c72a04d00d75c1365631.gif

2012-2-20 15:12:12 上传

下载附件 (17.13 KB)

图 7

08b05ce0d596c72a04d00d75c1365631.gif

2012-2-20 15:12:40 上传

下载附件 (14.56 KB)

图 8

2神经网络的仿真测试

神经网络的仿真测试非常简单,选定训练好的神经网络,点击View按钮,再点击Simulate按钮,在Simulate Data中的Inputs一栏中导入需要测试的数据(需要是工作区的矩阵,所以可以事先将数据写在但单独的程序中,需要时运行程序即可),然后点击Simulate Network,测试结束后可以在Outputs中看到结果,在Errors中可以看到误差。

当然也可以不借用工具箱,直接手工编写程序来测试,相比工具箱虽然稍显麻烦,但是结果更直观。

总结matlab-nntool使用方法分享该文章讲述了总结matlab-nntool使用方法分享.

nntool神经网络工具箱进行“数据训练”的方法:

1. 在命令窗口键入nntool命令打开神经网络工具箱;

2. 点击Import按钮两次,分别把输入向量和目标输出加入到对应的窗口([Inputs]和[Targets])中,有两种可供选择的加入对象(点击Import后可以看见),一种是把当前工作区中的某个矩阵加入,另一种是通过.mat文件读入;

3. 点击[New Network]按钮,填入各参数:(以最常用的带一个隐层的3层神经网络为例说明,下面没有列出的参数表示使用默认值就可以了,例如Network Type为默认的BP神经网络);

1) Input Range――这个通过点击Get From Input下拉框选择你加入的输入向量便可自动完成。

2) Training Function——最好使用TRAINSCG,即共轭梯度法,其好处是当训练不收敛时,它会自动停止训练,而且耗时较其他算法(TRAINLM, TRAINGD)少,也就是收敛很快(如果收敛的话),而且Train Parameters输入不多,也不用太多的技巧调整,一般指定迭代次数、结果显示频率和目标误差就可以了(详见下文)。

3) 1 Number of Neurons——隐层的神经元个数,这是需要经验慢慢尝试并调整的,大致上由输入向量的维数、样本的数量和输出层(Layer2)的神经元个数决定。

4) Layer 1 Transfer Function——一般用TANSIG(当然也可以LOGSIG),即表示隐层输出是[-1,1]之间的实数,与LOGSIG相比范围更大。

5) Layer 2 Number of Neurons——输出层的神经元个数,对于两类问题,个数为

,取值分别为0和1,对于多类问题,个数为10,取值为等。

6) Layer 2 Transfer Function——如果是模式识别的两类(或者多类)问题,一般用LOGSIG,即表示输出层的输出是[0,1]之间的实数。

所有参数输入后,可以先用View按钮预览一下,没有问题的话就可以Create了。另外,网络创建完毕后,如果需要手动设置权重的初始值,按View按钮后有个Initialize选项卡,在那里可以设定。当然了,可以不自行设定,这时候matlab执行默认的程序进行权重的初始化(没有具体研究过,可能是随机设定)。

4. 点击Train按钮,到达Training Info选项卡,在输入向量[Inputs]和目标输入向量[Targets]下拉框中选择你要训练的向量(即第二步加入的对象),然后到达Train Parameters选项卡,填入适当的迭代次数[epochs](一般先设置一个较小的数如200,然后观察收敛结果,如果结果窗口的收敛曲线衰减较快,则表示之前的参数比较有效,因此可填入2000或更大的数目使得网络收敛,否则修改之前的参数)、结果显示频率[show](例如要每隔500次迭代显示结果窗口,则填500)和目标误差[goal](这个与第2步中的“Performance Function”有关,如果使用默认的MSE,则一般满足“goal*样本数量<0.5

-------------------------------------------------------------------------------------------------------

后话:上面只介绍了“数据训练”的方法,至于“数据测试”,则点击Simulate按钮就可以了(或者用C++写,也不难,且网上有现成的BP神经网络的程序),这个相对简单,不说了。下面关于特征向量的维数问题和BP网络的个数问题谈谈我的经验。

如果是两类问题,则特征向量维数可以比较小,例如识别4和9时,特征维数(曲率特征)为8便可;但当识别多类问题时(下面以十类为例),则特征维数太少是不足以把各类问题分开的(即使使用十个网络,每个网络为一个两类问题)。如果只设计一个网络,要同时识别10个类,则此时样本数量要足够多。另外,应尽量避免使用十个网络进行分类(注意,这与多级分类问题不一样,多级分类问题可以分为几个两类问题有效处理,而对于十个数字来说是同级多类问题),因为此时会把类间相互约束的信息丢失,造成即使对训练样本收敛(而且往往收敛速度很快)但对测试样本分类不好的情况出现,也就是分类器的推广能力差。

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值