10.第11章 用GUI设计神经网络
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Help按钮 :帮助
Close按钮 :关闭
1.神经网络工具(nntool)
假设有6个坐标点,分属不同的两个类别,训练一个 神经网络模型,使得出现新的坐标点时,网络可以判断 新坐标点的类别。
坐标点
(-9,15)
(1,-8)
(-12,4)
(-4,5)
(0,11)
(5,9)
类别
0
1
0
0
0
1
1.神经网络工具(nntool)
y0=ind2vec(y); y0
在Inputs下列框中选择变量x,在Targets下拉框中选择y0
4.神经网络模式识别工具(nprtool)
Validation and Test Data步骤 与神经网络拟合工具类似,这里需要对数据集划分训练样本、 验证样本和测试样本。采取默认设置即可 Network Architecture步骤 在Number of Hidden Neurons编辑框中输入20,表示创建20 个隐含层节点
4.神经网络模式识别工具(nprtool)
启动
nprtool nnstart
4.神经网络模式识别工具(nprtool)
x=[0.1,4.2;-0.25,2.8;3,1.1;-0.9,1.2;-1.2,1;3.4,1;-2.5,1.5;3,3.2;...
-2.5,2.7;3.1,-3.2;4,-1.2;3.9,-1;4,3;-4,3.5]‘
3.神经网络拟合工具(nftool)
Train Network步骤 :单击Train按钮进行训练 第一个按钮显示适应度(Plot Fit) 第二个按钮显示误差直方图(Plot Error Histgram) 第三个按钮显示回归图(Plot Regression) Evaluate Network步骤 在右方的Inputs下拉框和Targets下拉框中,可以指 定测试数据及其期望输出。这里使用正弦函数值作 为测试: >> xx=0:.1:2*pi+.2; >> yy=sin(xx);
3.神经网络拟合工具(nftool)
Save Results步骤
fit_test.m脚本
4.神经网络模式识别工具(nprtool)
模式识别又称模式分类 输入的数据将被划分为事先规定好的某一个类别。类别的数量 是确定的,每个输入样本最终都会被归为预定好的某一个类别中。 神经网络模式识别工具可以用来收集数据,创建和训练神经网 络,并用均方误差(MSE)和混淆矩阵来评价网络。系统使用一 个两层(不包括输入层和输出层)的前向网络,隐含层和输出层都 使用sigmoid函数,训练时采用量化连接梯度训练函数,就trainscg 函数。
1.输入nntool ,打开Neural Network/Data Manager窗口
2.创建输入数据和目标数据。在主窗口中单击 New…按钮,选择Data选项卡,输入变量名为 P,选择变量类型为Inputs,并输入变量值。 单击Create按钮完成创建
1.神经网络工具(nntool)
( 3 )创建网络。在主窗口中单击 New… 按钮,选择 Network 选项卡,输入网络名称和网络类型
y=[1,1,1,1,1,2,1,2,1,2,2,2,2,1]; plot(x(1,y==2),x(2,y==2),'r>') hold on; plot(x(1,y==1),x(2,y==1),'bo')
4.神经网络模式识别工具(nprtool)
Select Data步骤 这里的目标样本需要表示为向量的形式,如果某样本 属于N个类别中的第x类,则其对应的目标数据应写为 [0,0,…,1,0,0,..],其中1是向量的第个x元素
单击下方的Test Network按钮
2.神经网络分类/聚类工具(nctool)
(6)保存网络和数据
单击Simple Script和Advanced Script按钮可以将网络保存为 命令脚本的形式。如果要将网络、输入数据和输入数据导出到工 作空间,只需在Save Data to Workspace框内勾选相应选项,再 单击Save Results按钮即可。
层延迟状态区(Layer Delay States):存放表示网络层延迟的变量
输入延迟状态区(Input Delay States):存放表示输入延迟的变量
1.神经网络工具(nntool)
Import…按钮:用于从工作空间或数据文件中导入数据变量。 New…按钮:新建神经网络或变量。 Open…按钮 :查看变量 Export…按钮:将对话框中的数据导出到工作空间或数据文件。 Delete按钮 :删除变量
测试样本:测试样本用于测试网络的性能。网络不再根据测试样 本的结果做任何调整
3.神经网络拟合工具(nftool)
默认随机地将70%的数据划分为训练样本,15%的数据划分为验证样 本,剩下15%的数据为测试样本。
Network Architecture步骤
需要在Number of Hidden Neurons编辑框中输入隐含 层神经元的个数,默认值为10。
在Select Data步骤选择a
Network Architecture步骤 : 输入的6个数据点分属三个类别,因此这里填写2,网络 会生成平面网格
2.神经网络分类/聚类工具(nctool)
Train Network步骤 :单击Train按钮
网络权值大小(Plot SOM Neighbor Distances)
导出到工作空间,在MATLAB中查看变量值
x=[ -8.5, 0.5, -11,5, -3.5, 1.5, 4.5;… 15, -8, 4, 5, 11, 9] plot(x(1,:),x(2,:),'*')
2.神经网络分类/聚类工具(nctool)
解决只有输入样本,没有期望输出(目标向量)的聚类问题。 系统进行分类的依据是输入样本数据之间的相似性,用自组织映射 (Self-Organizing Map,SOM)网络的形式求解。 例如,搜集相关数据,分析大众消费行为的相似性,将消费者划分 为不同的人群,以实现细分市场的划分。
Train Network步骤 单击Train按钮,系统就开始训练,默认迭代次数为1000次,训练完 成后将在对话框中显示训练样本、验证样本和测试样本的均方误差与 错分率。错分率是指将样本中的数据错误地划分为另一类的比例。
4.神经网络模式识别工具(nprtool)
Evaluate Network步骤 测试数据: xx=-4:.4:4; N=length(xx); for i=1:N for j=1:N xt(1,(i-1)*N+j)=xx(i); xt(2,(i-1)*N+j)=xx(j); end 在Inputs下拉框中选择xt,Targets下 拉框中选择yt,然后单击Test Network按钮,即可进行仿真测试。
执行som_test.m
3.神经网络拟合工具(nftool)
工具箱采用前向神经网络来完成数据拟合,包括两层神经元, 隐藏层使用sigmoid传输函数,输出层则是线性的。给定足够的训 练数据和足够的隐藏层神经元,网络能良好地拟合多维数据。训 练时网络采用Levenberg-Marquardt算法,即trainlm函数,当内存 不足时使用trainscg函数
nctool内部采用selforgmap函数实现聚类,使用SOM批训练算 法,涉及的函数用trainbu、learnsomb
2.神经网络分类/聚类工具(nctool)
打开: nctool nnstart
2.神经网络分类/聚类工具(nctool)
使用聚类工具箱解决一个简单的聚类问题。定义单位 圆上的6个坐标点 ,进行聚类。数据定义 >> a=[cos(15*pi/180),sin(15*pi/180);cos(75*pi/180),sin(75*pi/180);cos(105*pi/180) ,sin(105*pi/180);... cos(-15*pi/180),sin(15*pi/180);cos(195*pi/180),sin(195*pi/180);cos(165*pi/180),sin(165*pi/180)]; >> a=a' >> t=0:.2:2*pi+.2;
(4)网络的训练 。这里不需要训练
1.神经网络工具(nntool)
(5)网络的仿真测试。在主窗口中选中创建的网络,单击Open… 按钮,在弹出的Network对话框中选择Simulate选项卡,然后在Inputs 下列框中选择输入样本变量P。
1.神经网络工具(nntool)
(6)观察仿真结果。可以在主窗口选中变量名,单击Open…按 钮查看变量值,也可以将变量导出到工作空间观察。
在MATLAB中生成一段加入了均匀噪声的正弦函数数据,然后 用nftool进行拟合。数据如下 >> x=0:.2:2*pi+.2; >> rng(2);y=sin(x)+rand(1,length(x))*0.5; >> plot(x,y,'o-');
3.神经网络拟合工具(nftool)
启动 nftool
nnstart
3.神经网络拟合工具(nftool)
Select Data步骤 : 不但要指定输入数据,还要指定目标数据
Validation and Test Data步骤 系统将把数据分为三部分:训练数据,验证数据和测试数据。
训练样本:用于网络训练,网络根据训练样本的误差调整网络权 值和阈值
验证样本:用于验证网络的推广性能,当推广性能停止提高时, 表示网络已达到最优状态,此时网络就停止训练。
>> plot(cos(t),sin(t));
>> axis([-1.2,1.2,-1.2,1.2]) >> axis equal >> hold on; >> plot(a(1,:),a(2,:),'o')
2.神经网络分类Fra Baidu bibliotek聚类工具(nctool)
>> a= [0.9659 0.2588 0.9659 0.2588 -0.2588 0.9659 -0.9659 -0.9659;... 0.2588]; 0.9659 -0.2588 -0.2588
在神经网络的用户群中,存在大量不熟悉 MATLAB 程序设计、 不熟悉工具箱函数调用规则的用户。对于他们来说,很难迅速地 达到一个MATLAB程序开发者的水平,因此仅仅利用神经网络工 具箱的函数接口,很难让大部分用户都能方便快捷地在学习、工 作中有效利用神经网络。 MATLAB提供了图像化接口:
神经网络工具(nntool) 神经网络分类/聚类工具(nctool) 神经网络拟合工具(nftool) 神经网络训练工具(nntraintool) 神经网络模式识别工具(nprtool) 神经网络时间序列工具(ntstool)
第11章 用GUI设计神经网络
编 者
Outline
1.神经网络工具(nntool) 2.神经网络分类/聚类工具(nctool) 3.神经网络拟合工具(nftool) 4.神经网络模式识别工具(nprtool) 5.神经网络时间序列工具(ntstool)
1.神经网络工具(nntool)
1.神经网络工具(nntool)
神经网络工具(nntool)功能更为全面和灵活,可以自行选择神经网络的 种类并加以训练 在MATLAB命令窗口输入nntool。
1.神经网络工具(nntool)
Neural Network/Data Manager窗口包含7个显示区域和7个按钮 输入数据区(Input Data):存放输入变量。包括训练输入和测试输入。 目标数据区(Target Data):存放目标变量。 网络区(Networks):存放用户定义的网络。用户可以创建多个网络,创 建时需要指定一个网络名称,以区分不同的网络。 输出数据区(Output Data):存放输出数据。 误差数据区(Error Data):存放误差数据。误差数据=目标数据实际输出 数据。
样本分类结果(Plot SOM Sample Hits)
2.神经网络分类/聚类工具(nctool)
(5)仿真测试。单击Next按钮,进入Evaluate Network步骤 先在MATLAB命令窗口定义好测试数据:
>> t=0:.2:2*pi+.2; >> b=[cos(t);sin(t)] >> plot(b(1,:),b(2,:),'o')