为了看懂师兄的文章中使用的方法,研究了一下神经网络
昨天花了一天的时间查怎么写程序,但是费了半天劲,不能运行,百度知道里倒是有一个,可以运行的,先贴着做标本
% 生成训练样本集
clear all;
clc;
P=[110 0.807 240 0.2 15 1 18 2 1.5;
110 2.865 240 0.1 15 2 12 1 2;
110 2.59 240 0.1 12 4 24 1 1.5;
220 0.6 240 0.3 12 3 18 2 1;
220 3 240 0.3 25 3 21 1 1.5;
110 1.562 240 0.3 15 3 18 1 1.5;
110 0.547 240 0.3 15 1 9 2 1.5];
0 1.318 300 0.1 15 2 18 1 2];
T=[54248 162787 168380 314797;
28614 63958 69637 82898;
86002 402710 644415 328084;
230802 445102 362823 335913;
60257 127892 76753 73541;
34615 93532 80762 110049;
56783 172907 164548 144040];
@907 117437 120368 130179];
m=max(max(P));
n=max(max(T));
P=P'/m;
T=T'/n;
%-------------------------------------------------------------------------%
pr(1:9,1)=0; %输入矢量的取值范围矩阵
pr(1:9,2)=1;
bpnet=newff(pr,[12 4],{'logsig', 'logsig'}, 'traingdx','learngdm');
%建立BP神经网络, 12个隐层神经元,4个输出神经元
%tranferFcn属性 'logsig' 隐层采用Sigmoid传输函数
%tranferFcn属性 'logsig' 输出层采用Sigmoid传输函数
%trainFcn属性 'traingdx' 自适应调整学习速率附加动量因子梯度下降反向传播算法训练函数
%learn属性 'learngdm' 附加动量因子的梯度下降学习函数
net.trainParam.epochs=1000;%允许最大训练步数2000步
net.trainParam.goal=0.001; %训练目标最小误差0.001
net.trainParam.show=10; %每间隔100步显示一次训练结果
net.trainParam.lr=0.05; %学习速率0.05
bpnet=train(bpnet,P,T);
%-------------------------------------------------------------------------
p=[110 1.318 300 0.1 15 2 18 1 2];
p=p'/m;
r=sim(bpnet,p);
R=r'*n;
display(R);
运行的结果是出现这样的界面
点击performance,training state,以及regression分别出现下面的界面
再搜索,发现可以通过神经网络工具箱来创建神经网络,比较友好的GUI界面,
在输入命令里面输入nntool,就可以开始了。点击import之后就出现下面的具体的设置神经网络参数的对话界面,
这是输入输出数据的对话窗
首先是训练数据的输入
然后点击new,创建一个新的神经网络network1,并设置其输入输出数据,包括名称,神经网络的类型以及隐含层的层数和节点数,还有隐含层及输出层的训练函数等
点击view,可以看到这是神经网络的可视化直观表达
创建好了一个network之后,点击open,可以看到一个神经网络训练,优化等的对话框,选择了输入输出数据后,点击train,神经网络开始训练,如右下方的图,可以显示动态结果
下面三个图形则是点击performance,training state以及regression而出现的
下面就是simulate,输入的数据是用来检验这个网络的数据,output改一个名字,这样就把输出数据和误差都存放起来了
在主界面上点击export就能将得到的out结果输入到matlab中并查看
下图就是输出的两个outputs结果
还在继续挖掘,to be continue……20111130
神经网络工具箱
版本7.0(R2010b)
图形用户界面功能。
nnstart- 神经网络启动GUI
nctool- 神经网络分类工具
nftool- 神经网络的拟合工具
nntraintool- 神经网络的训练工具
nprtool- 神经网络模式识别工具
ntstool- NFTool神经网络时间序列的工具
nntool- 神经网络工具箱的图形用户界面。
查看- 查看一个神经网络。
网络的建立功能。
cascadeforwardnet- 串级,前馈神经网络。
competlayer- 竞争神经层。
distdelaynet- 分布时滞的神经网络。
elmannet- Elman神经网络。
feedforwardnet- 前馈神经网络。
fitnet- 函数拟合神经网络。
layrecnet- 分层递归神经网络。
linearlayer- 线性神经层。
lvqnet- 学习矢量量化(LVQ)神经网络。
narnet- 非线性自结合的时间序列网络。
narxnet- 非线性自结合的时间序列与外部输入网络。
newgrnn - 设计一个广义回归神经网络。
newhop - 建立经常性的Hopfield网络。
newlind- 设计一个线性层。
newpnn- 设计概率神经网络。
newrb- 径向基网络设计。
newrbe- 设计一个确切的径向基网络。
patternnet - 神经网络模式识别。
感知- 感知。
selforgmap- 自组织特征映射。
timedelaynet - 时滞神经网络。
利用网络。
网络- 创建一个自定义神经网络。
SIM卡 - 模拟一个神经网络。
初始化 - 初始化一个神经网络。
适应- 允许一个神经网络来适应。
火车 - 火车的神经网络。
DISP键 - 显示一个神经网络的属性。
显示- 显示的名称和神经网络属性
adddelay - 添加延迟神经网络的反应。
closeloop- 神经网络的开放反馈转换到关闭反馈回路。
formwb - 表格偏见和成单个向量的权重。
getwb- 将它作为一个单一向量中的所有网络权值和偏差。
noloop- 删除神经网络的开放和关闭反馈回路。
开环 - 转换神经网络反馈,打开封闭的反馈循环。
removedelay- 删除延迟神经网络的反应。
separatewb - 独立的偏见和重量/偏置向量的权重。
setwb - 将所有与单个矢量网络权值和偏差。
Simulink的支持。
gensim - 生成Simulink模块来模拟神经网络。
setsiminit- 集神经网络的Simulink模块的初始条件
getsiminit - 获取神经网络Simulink模块的初始条件
神经元- 神经网络Simulink的模块库。
培训职能。
trainb- 批具有重量与偏见学习规则的培训。
trainbfg- 的BFGS拟牛顿倒传递。
trainbr- 贝叶斯规则的BP算法。
trainbu - 与重量与偏见一批无监督学习规则的培训。
trainbuwb- 与体重无监督学习规则与偏见一批培训。
trainc- 循环顺序重量/偏见的培训。
traincgb- 共轭鲍威尔比尔重新启动梯度反向传播。
traincgf- 共轭弗莱彻-里夫斯更新梯度反向传播。
traincgp- 共轭波拉克- Ribiere更新梯度反向传播。
traingd- 梯度下降反向传播。
traingda- 具有自适应LR的反向传播梯度下降。
traingdm - 与动量梯度下降。
traingdx - 梯度下降瓦特/惯性与自适应LR的反向传播。
trainlm- 采用Levenberg -马奎德倒传递。
trainoss - 一步割线倒传递。
trainr - 随机重量/偏见的培训。
trainrp- RPROP反向传播。
trainru - 无监督随机重量/偏见的培训。
火车 - 顺序重量/偏见的培训。
trainscg - 规模化共轭梯度BP算法。
绘图功能。
plotconfusion - 图分类混淆矩阵。
ploterrcorr - 误差自相关时间序列图。
ploterrhist- 绘制误差直方图。
plotfit - 绘图功能适合。
plotinerrcorr - 图输入错误的时间序列的互相关。
plotperform- 小区网络性能。
plotregression - 线性回归情节。
plotresponse- 动态网络图的时间序列响应。
plotroc - 绘制受试者工作特征。
plotsomhits - 小区自组织图来样打。
plotsomnc- 小区自组织映射邻居的连接。
plotsomnd - 小区自组织映射邻居的距离。
plotsomplanes - 小区自组织映射重量的飞机。
plotsompos- 小区自组织映射重量立场。
plotsomtop - 小区自组织映射的拓扑结构。
plottrainstate - 情节训练状态值。
plotwb- 图寒春重量和偏差值图。
列出其他神经网络实现的功能。
nnadapt- 适应职能。
nnderivati??ve- 衍生功能。
nndistance- 距离函数。
nndivision- 除功能。
nninitlayer- 初始化层功能。
nninitnetwork- 初始化网络功能。
nninitweight- 初始化权函数。
nnlearn- 学习功能。
nnnetinput- 净输入功能。
nnperformance- 性能的功能。
nnprocess- 处理功能。
nnsearch- 线搜索功能。
nntopology- 拓扑结构的功能。
nntransfer- 传递函数。
nnweight- 重量的功能。
示例,数据集和其他资源
nndemos- 神经网络工具箱的示威。
nndatasets- 神经网络工具箱的数据集。
nntextdemos- 神经网络设计教科书的示威。
nntextbook-神经网络设计教科书的资讯。