MATLAB神经网络1-对象
神经网络属性
object properties基本属性
%通用信息
name %名字
userdata %用户定义的信息
%子对象信息
%输入、层、输出、目标、偏置、权重、连接形式
numInputs %网络接收输入的数量(我的理解是定义多少个样本,这里多个样本同时输入算一个输入吗???)————根据简单的实验,应该是多个样本组成一个矩阵也算是一个输入,但是组成元胞数组就不是一个输入了
size %我的理解是每个样本的特征,net.input{i}.size
numLayers %网络的层数,应该是不算输入样本
biasConnect %偏置的连接方式,可以一次性指定(向量)N*1,也可以单独指定,只能是0和1,注意这里定义的是连接的方式,表示的是有偏置和没有偏置
intputConnect %表示隐藏层或输出层是否有接受自输入的权重,我的理解是是否有输入是否连接到后面的层上,net.inputConnect(i,j)表示第i层的第j个连接是否有连接,inputConnect为矩阵,二值矩阵
layerConnect %表示层与层之间是否有连接,注意关注正向和反馈,net.layerConnect(i,j),矩阵行表示目标层,列表示出发层
outputConnect %定义哪些层产生输出,1*N的矩阵,值为0,1
numOutputs %只读,等于outputConnect的中1的总数
numInputDelays %只读,没懂
numLayerDelays %只读,没懂
numWeightElements %只读,权值和偏置值的数量,net.IW net.b的元素数量
================================================
%子对象属性,见文档
net.inputs %元胞数组,net.inputs{i},在多个网络输入中使用
net.layers/outputs/biases/inputWeights/layerWeights/ %全都是结构体
================================================
%权重、偏置
IW %表示与输入关联的权重矩阵,net.IW{i,j} 表示第j个输入连接到第i层,注意是元胞数组,net.inputWeights{i,j}.size,注意还与net.inputConnect(i,j)有关
LW %表示层与层之间的权重矩阵,也是元胞数组,net.LW{i,j}第i层到第j层,net.layerWeights{i,j}.size, 注意还与net.layerConnect(i,j)有关
b %表示偏置,也是元胞数组,net.b{i} 表示第i层的偏置,net.biases{i}.size, 注意与biasConnect有关
================================================
%网络函数
net.adaptFcn %调整网络 help nntrain
net.adaptParam %help(net.adaptFcn)
net.derivFcn %导函数 help nnderivative
net.divideFcn %数据组织函数 help nndivision 将输入分成训练、验证、测试
net.divideParam %help(net.divideFcn) 设定三个数据集构成的比率
net.divideMore
net.initFcn %初始权重与偏置
net.initParam %help(net.initFcn)
net.performParam %测试网络性能 help(net.performFcn),默认是均方差mse
net.plotDcns
net.plotParams
net.trainFcn %训练网络
net.trainParam %help(net.trainFcn)
subobject properties 子对象属性
%子对象属性,见文档
net.inputs %元胞数组,net.inputs{i},在多个网络输入中使用
net.layers/outputs/biases/inputWeights/layerWeights/ %全都是结构体
================================================
inputs
%注意net.inputs{i}表示第i层的输出,是元胞的形式
net.inputs{i}.processFcns %处理输入数据的函数