主要内容

创建神经网络对象

本主题是中描述的设计工作流的一部分神经网络设计工作流

创建神经网络的最简单方法是使用其中一个网络创建功能。要调查如何完成这一目标,可以使用命令创建一个简单的双层馈送网络FeedforwardNet.

网= feedforwardnet
net =神经网络名称:'前馈神经网络' userdata:(您的自定义信息)维度:numInputs: 1 numLayers: 2 numOutputs: 1 numInputDelays: 0 numLayerDelays: 0 numFeedbackDelays: 0 numWeightElements: 10 sampleTime: 1 connections: biasConnect: [1;1] inputConnect:(1;0] layerConnect: [0 0;1 1 0] outputConnect:[0]子对象:输入:{1 x1单元阵列1输入}层:}{2 x1单元阵列的2层输出:{1 x2单元阵列的输出}偏见:{2 x1 2的单元阵列偏见}inputWeights: {2 x1单元阵列1重量}layerWeights: {2 x2单元阵列(1)体重}功能:adaptFcn:“adaptwb”adaptParam:(一)derivFcn:'defaultderiv' divideFcn: 'dividerand' divideParam: .trainRatio, .valRatio, .testRatio divideMode: 'sample' initFcn: 'initlay' performFcn: 'mse' performParam: .regularization, .normalization plotFcns: {'plotperform', plottrainstate, ploterrist, plotregresion} plotParams: {1x4 cell array of 4 params} trainFcn: 'trainlm' trainParam:.showWindow, .showCommandLine, .show, .epochs, .time, .goal, .min_grad, .max_fail, .mu, .mu_dec, .mu_inc, .mu_max权重和偏差值:IW: {2x1 cell}包含1个输入权重矩阵LW: {2x2 cell}包含1个层权重矩阵b: {2x1 cell}包含2个偏差向量方法:adapt: Learn while in continuous use配置:配置输入和输出gensim:生成Simulink模型init:初始化权重和偏差执行:计算金宝app性能sim:评估给定输入的网络输出train:使用示例训练网络视图:查看图表unconfigure: unconfigure输入和输出Evaluate: outputs = net(inputs)

此显示是网络对象的概述,用于存储定义神经网络的所有信息。这里有很多细节,但有一些关键部分可以帮助您查看网络对象的组织方式。

尺寸部分存储网络的整体结构。这里你可以看到网络有一个输入(尽管一个输入可以是一个包含许多元素的向量),一个网络输出,和两个层。

连接部分存储网络组件之间的连接。例如,存在连接到每个层的偏差,输入连接到第1层,并且输出来自第2层。您还可以看到第1层连接到图层2.(行net.layerconnect.表示目标层,列表示源层。矩阵中1表示有连接,0表示没有连接。对于这个例子,在矩阵的元素2,1中只有一个1。)

网络对象的关键子对象是输入层数输出偏见inputWeights, 和层次重量。观看层数子对象的第一层与命令

net.layers {1}
神经网络层名称:'隐藏'尺寸:10距离FCN :(无)vieetParam :(无)距离:[] initfcn:'netnw'netInputfcn:'netsum'netInputparam :(无)位置:[]范围:[10x2 double]尺寸:10拓扑FCN :(无)TransferFCN:'tansig'TransferParam :(无)userData :(您的自定义信息)

层中的神经元数由其给出尺寸财产。在这种情况下,该层具有10个神经元,这是默认大小FeedforwardNet.命令。净输入功能是netsum(求和)和转移函数是tansig。如果您想要更改传输函数logsig.例如,您可以执行命令:

net.layers {1} .transferfcn ='logsig';

查看层次重量subObject在第1层和第2层之间的权重,使用命令:

net.layerweights {2,1}
神经网络权重自定义信息)

重量函数是dotprod,表示标准矩阵乘法(DOT产品)。注意,该层重量的大小为0乘10。我们具有零行的原因是因为尚未为特定数据集配置网络。输出神经元的数量等于目标向量中的行数。在配置过程中,您将提供与示例输入和目标的网络,然后可以分配输出神经元的数量。

这使您了解如何组织网络对象。对于许多应用程序,您不需要关注直接对网络对象进行更改,因为这是由网络创建功能所关注的。通常只有当您想要覆盖系统默认值时,必须直接访问网络对象。其他主题将展示为特定网络和培训方法的完成方式。

要更详细地调查网络对象,您可能会发现对象列表,例如上面显示的对象列表包含在每个子object上的帮助中的链接。单击链接,您可以选择性地调查对您感兴趣的对象的那些部分。