一:minmax()
minmax(A) 即是求解A矩阵中每个 行向量 中的最小值和最大值
eg:A=[1 2 4 -6 ;
3 -4 90 6;
4 6 -23 -35];
P=minmax(A)
P = -6 4
-4 90
-35 6
二:hold on 和hold off
hold on 是当前轴及图像保持而不被刷新,准备接受此后将绘制的图形,多图共存即,启动图形保持功能,当前坐标轴和图形都将保持,从此绘制的图形都将添加在这个图形的基础上,并自动调整坐标轴的范围。
hold off 使当前轴及图像不再具备被刷新的性质,新图出现时,取消原图。即,关闭图形保持功能。
hold on 和hold off,是相对使用的
前者的意思是,你在当前图的轴(坐标系)中画了一幅图,再画另一幅图时,原来的图还在,与新图共存,都看得到
后者表达的是,你在当前图的轴(坐标系)中画了一幅图,此时,状态是hold off,则再画另一幅图时,原来的图就看不到了,在轴上绘制的是新图,原图被替换了。
三:rand 和 randn
rand是0-1的均匀分布,randn是均值为0方差为1的正态分布;
rand(n)或randn(n)生成nn的随机数矩阵。
rand(n,m)或randn(m,n)生成mn的随机数矩阵。
四:gac、gca 和 gco
gcf 返回当前Figure对象的句柄值
gca 返回当前axes对象的句柄值
gco 返回当前鼠标单击的句柄值,该对象可以是除root对象外的任意图形对象,并且Matlab会把当前图形对象的句柄值存放在Figure的CurrentObject属性中。
五:compet
compet是神经网络的竞争传递函数,用于指出矩阵中每列的最大值。对应最大值的行的值为1,其他行的值都为0。
六:bar和barn
二维条形图:bar()
bar(Y) 如果Y为矢量,其每一个元素绘制一个条形;如果Y为矩阵,侧bar函数对每一行元素绘制的条形进行分组。
bar(x,Y) 按x中指定的位置绘制Y中每一元素的条形。
bar(…,width) 设置相邻条形的宽度并控制组内条形的分离,默认值为08,如果指定width=1,则组内的条形挨在一起。
bar(…,’style’) 指定绘制条形的类型,style有两个选项:(1) stacked 矩阵Y中每一行绘制一个条形,条形的高度为行元素中元素的和,每一个条形都用多种颜色表示,颜色对应不同种类的元素并表示每行元素对总和的相对贡献。(2) group 绘制n条形图组,每一个条形组中有m个垂直条形,其中n对应矩阵Y的行数,m对应列数,group为style的默认值。
bar(…,LineSpec) 用LineSpec指定的颜色绘制条形。
h=bar(…) 返回图形句柄。
barh(…) 绘制水平条形图。
h=barh(…) 返回水平条形图的图形句柄。
三维条形图:bar3()和barah()
bar3(Y) 绘制三维条形图,如果Y为矢量,其每一个元素绘制一个条形;如果Y为矩阵,侧bar函数对每一行元素绘制的条形进行分组。
bar3(x,Y) 按x中指定的位置绘制Y中每一元素的条形。
bar3(…,width) 设置相邻条形的宽度并控制组内条形的分离,默认值为08,如果指定width=1,则组内的条形挨在一起。
bar3(…,’style’) 指定绘制条形的类型,style有3个选项:(1) stacked 矩阵Y中每一行绘制一个条形,条形的高度为行元素中元素的和,每一个条形都用多种颜色表示,颜色对应不同种类的元素并表示每行元素对总和的相对贡献。(2) group 绘制n条形图组,每一个条形组中有m个垂直条形,其中n对应矩阵Y的行数,m对应列数,group为style的默认值。(3) detached 在x方向用单独的条形块绘制Y中的每一行元素,detached为style的默认值;
bar3(…,LineSpec) 用LineSpec指定的颜色绘制条形。
h=bar3(…) 返回三维条形图的图形句柄。
barh(…) 绘制三维水平条形图。
h=barh(…) 返回三维水平条形图的图形句柄。
三维条形图有两种显示形式:分组形式和行列形式。
未完待续
是的,Matlab提供了神经网络工具箱,其中包括多种神经网络算法和函数。用户可以使用这些现成的包来构建、训练和测试神经网络模型,以实现各种任务,如分类、回归、聚类等。神经网络工具箱还提供了可视化工具和交互式界面,以简化神经网络建模和分析的过程。除了常见的前馈神经网络、反馈神经网络和自组织神经网络,Matlab神经网络工具箱还包括以下算法和函数:
1 卷积神经网络(Convolutional Neural Networks, CNNs):用于处理图像、视频等数据的神经网络结构。
2 循环神经网络(Recurrent Neural Networks, RNNs):用于处理序列数据的神经网络结构,如文本、语音等。
3 长短时记忆网络(Long Short-Term Memory Networks, LSTM):一种特殊的循环神经网络,用于处理长序列数据的模型。
4 限制玻尔兹曼机(Restricted Boltzmann Machines, RBMs):一种用于学习数据分布的无监督学习模型。
5 自编码器(Autoencoder):一种用于学习数据表征的模型,可以用于压缩、降噪和特征提取等任务。
6 深度强化学习(Deep Reinforcement Learning):结合深度学习和强化学习的技术,用于解决复杂的决策问题。
此外,Matlab还提供了丰富的神经网络函数库,用于模型初始化、训练、调试和评估等方面的 *** 作。用户可以根据具体需求选择适合的算法和函数,进行定制化的神经网络建模和分析。
你要看你的图像是什么。如果是彩色数字,先转成灰度。用MNIST训练网络。如果是各种主题,用彩色的imageNET训练。如果你的数据量大到足以与数据集媲美,那么直接用你的数据训练网络即可。
在流行的数据集上训练完,你需要固定卷积池化层,只训练后面的全连接层参数,用你自己的数据集。
CNN一是调整网络结构,几层卷积几层池化,卷积的模板大小等。而是在确定结构上调整参数,weightscale,learningrate,reg等。
你用CNN做图像分类,无非是把CNN当成学习特征的手段,你可以吧网络看成两部分,前面的卷积层学习图像基本-中等-高层特征,后面的全连接层对应普通的神经网络做分类。
需要学习的话,首先你去看UFLDL教程。然后cs231n
与其问别人,首先你看了imageNet数据集了吗?
对于把流行数据集与自己数据混合训练模型的方法。如果两种数据十分相似,也未尝不可。但是对于流行数据集而言,自己的标注数据量一般不会太大,如果是1:1000,1:100这种比例,那么可能不加自己的数据,完全用数据集训练的模型就能得到一个还好的结果。
如果自己的数据和数据集有些差别,那混在一起我认为自己的是在用自己的数据当做噪声加到数据集中。cnn认为图像是局部相关的,而欺骗CNN的方法则主要出于,自然图像分布在一种流形结构中,训练的模型需要这种流形假设,而人工合成的图像由于添加非自然噪点,不满足模型假设,所以能用肉眼难分辨的噪声严重干扰分类结果。
如果二者相差过大,数据集是一种分布,你的数据是另一种,放到一起训练,我没试过,但我认为结果不会太好。
这时候只能把数据集用来训练cnn的特征提取能力。而后用于分类的全连接层,视你的数据量调整规模。
首先你要根据的你问他选择用什么神经网络,然后重点关注那一种神经网络的特点,输入输出怎么定,精度要求是多少等问他,然后你就一一解决就可以了。你的问题太宽泛了,自己先想好要解决什么问题然后再确定怎么解决
给你一个实例,希望通过该例子对实现神经网络应用有一定的了解。
%x,y分别为输入和目标向量
x=1:5;
y=[639 646 642 624 652];
%创建一个前馈网络
net=newff(minmax(x),[20,1],{'tansig','purelin'});
%仿真未经训练的网络net并画图
y1=sim(net,x);plot(x,y1,':');
%采用L-M优化算法
nettrainFcn='trainlm';
%设置训练算法
nettrainParamepochs=500;nettrainParamgoal=10^(-6);
%调用相应算法训练BP网络
[net,tr,yy]=train(net,x,y);
%对BP网络进行仿真
y1=sim(net,x);
%计算仿真误差
E=y-y1;MSE=mse(E)
hold on
%绘制匹配结果曲线
figure;
plot(x,y1,'r',x,y,'b--')
执行结果
matlab 带有神经网络工具箱,可直接调用,建议找本书看看,或者MATLAB论坛找例子。
核心调用语句如下:
%数据输入
%选连样本输入输出数据归一化
[inputn,inputps]=mapminmax(input_train);
[outputn,outputps]=mapminmax(output_train);
%% BP网络训练
% %初始化网络结构
net=newff(inputn,outputn,[8 8]);
nettrainParamepochs=100;
nettrainParamlr=001;
nettrainParamgoal=001;
%网络训练
net=train(net,inputn,outputn);
%% BP网络预测
%预测数据归一化
inputn_test=mapminmax('apply',input_test,inputps);
%网络预测输出
an=sim(net,inputn_test);
%网络输出反归一化
BPoutput=mapminmax('reverse',an,outputps);
%% 结果分析
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)