bp神经网络学习——matlab问题随手记1

时间:2024-05-23 12:04:53

一、matlab中clc和clear命令的作用:
1.clc命令是命令窗口显示的内容,但并不清除工作空间,对工作环境中的全部变量无任何影响 ;
2. clear命令是用来清除工作空间的内容,即清除工作空间的所有变量 。

二、其它常用命令:
1.close是关闭当前的Figure窗口; 
2.close all是关闭所有的Figure窗口 ;
3.clear all是清除工作空间的所有变量,函数,和MEX文件;
4. figure是创建一个用来显示图形输出的一个窗口对象,所有参数采用默认命令,每一个这样的窗口都有一些属性,例如窗口的尺寸、位置等,可通过figure进行指定修改。

三、matlab的省略号三个点“...”的意思:

三个点叫做续行符,意思为该行写太多了,不想在该行继续往下写,又希望格式统一,或看着方便,于是重新另开一行来写。

如:D=[-0.9602 -0.5770 -0.0729 0.3771 0.6405 0.6600 0.4609...
    0.1336 -0.2013 -0.4344 -0.5000 -0.3930 -0.1647 -.0988...
    0.3072 0.3960 0.3449 0.1816 -0.312 -0.2189 -0.3201];

四、newff:前馈网络创建函数 语法: 
net = newff(A,B,{C},’trainFun’,’BLF’,’PF’)。 
A:newff的第一个变量,用来设定输入特征的范围,使用minmax来输入也可以,即一个n*2的矩阵,第i行元素为输入信号Xi的最大最小值。
B:newff的第二个变量,用来设定隐含层和输出层神经元的数目,即一个K维行向量,其元素为网络中各个节点的数量。 
C:newff的第三个变量,一个K维字符串行向量,每一个分量为对应层的神经元的**函数,默认为“tansig”,且通常在输出层选择一个线性函数“purelin” 。
trainFun:为学习规则的采用的训练算法,默认为有动量的梯度下降法 :“trainlm” 。
BLF:BP权值/偏差学习函数,默认为:“learngdm” 。
PF:性能函数,默认为“mse”。

五、MATLAB中plot函数的用法:
功能:使用plot绘制二维图像。
plot函数的一般调用形式如下:
plot(X, Y, LineSpec)
其中X由所有输入点坐标的x值组成,Y是由与X中包含的x对应的y所组成的向量。LineSpec是用户指定的绘图样式。
举例如下:

%定义x为0到2pi之间的一组向量,且x向量中相邻两个值之间的增量为pi/1000。定义y向量中的值为x向量的sin值。

x = 0:pi/1000:2*pi;

y = sin(x);

figure % 打开新的绘画窗口,可省略该句

plot(x,y) %采用默认样式,绘制实线

运行结果截图:

bp神经网络学习——matlab问题随手记1

 

六、有关mapminmax的用法简介:
几个要说明的函数接口:
[Y,PS] = mapminmax(X)
[Y,PS] = mapminmax(X,FP)
Y = mapminmax('apply',X,PS)
X = mapminmax('reverse',Y,PS)

结合MATLAB实例来看:定义输入 x1 = [1 2 4], x2 = [5 2 3];

有如下结果:

(1)[Y,PS] = mapminmax(X)用法:

>> x1 = [1 2 4]

x1 =

     1     2     4

>> [y,ps] = mapminmax(x1)   %[Y,PS] = mapminmax(X)函数接口

y =

   -1.0000   -0.3333    1.0000


ps = 

         name: 'mapminmax'
        xrows: 1
         xmax: 4
         xmin: 1
       xrange: 3
        yrows: 1
         ymax: 1
         ymin: -1
       yrange: 2
    no_change: 0
         gain: 0.6667
      xoffset: 1

分析即结论:y是对x1进行某种规范化后得到的数据,这种规范化的映射记录在结构体ps中.

运行结果截图:

bp神经网络学习——matlab问题随手记1

 

(2)[Y,PS] = mapminmax(X,FP)用法:

对于上面algorithm算法中的映射函数mapminmax(x1),该函数求得的是x1中的最大值ymax和最小值ymin,其中ymin,和ymax是参数,可以自己设定,默认为-1,1;如这里我们也可以指定ymin值为0,则有

>> x1 = [1 2 4];

>> ps.ymin = 0;

>> [y,ps] = mapminmax(x1,ps)     %[Y,PS] = mapminmax(X,FP)函数接口

运行结果截图:

bp神经网络学习——matlab问题随手记1

 

(3)Y = mapminmax('apply',X,PS)函数接口用法:

如果我对x1 = [1 2 4]采用了某种规范化的方式, 现在我要对x2 = [5 2 3]也采用同样的规范化方式[同样的映射], 可以用Y = mapminmax('apply',X,PS)函数接口实现:

实例:

>>  x1 = [1 2 4], x2 = [5 2 3];

x1 =

     1     2     4

>> [y1,ps] = mapminmax(x1);

>> y2 = mapminmax('apply',x2,ps)    %[ Y = mapminmax('apply',X,PS)函数接口

y2 =

1.6667   -0.3333    0.3333

运行结果截图:

bp神经网络学习——matlab问题随手记1

 

(4)X = mapminmax('reverse',Y,PS)函数接口用法:

 

X = mapminmax(‘reverse’,Y,PS)的作用就是进行反归一化,讲归一化的数据反归一化再得到原来的数据:

实例:>>  x1 = [1 2 4], x2 = [5 2 3];

x1 =

     1     2     4

>> [y1,ps] = mapminmax(x1);

>> y2 = mapminmax('apply',x2,ps)

y2 =

    1.6667   -0.3333    0.3333

>>  xt = mapminmax('reverse',y1,ps)

xt =

     1     2     4

>>  xt2 = mapminmax('reverse',y2,ps)

xt2 =

     5     2     3

运行结果及截图:

bp神经网络学习——matlab问题随手记1

 

上述问题均来自研读“BP神经网络的Matlab实现——人工智能算法”该篇博客时所遇到,参考博客:https://blog.****.net/sinat_38321889/article/details/79182832