主要内容

创建神经网络对象

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

最简单的方法创建一个神经网络是使用网络的创建函数。为了调查这是如何实现的,您可以创建一个简单的两层前馈网络,使用命令feedforwardnet:

网= feedforwardnet
网=神经网络名称:前馈神经网络的用户数据:(定制信息)尺寸:numInputs: 1 numLayers: 2 numOutputs: 1 numInputDelays: 0 numLayerDelays: 0 numFeedbackDelays: 0 numWeightElements: 10 sampleTime: 1连接: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:“样本”initFcn:“initlay”performFcn:“mse”performParam: .regularization, .normalization plotFcns: {plotperform, plottrainstate、ploterrhist plotregression} plotParams: {1 4 x4单元阵列参数}trainFcn:“trainlm”trainParam: .showWindow, .showCommandLine,,告诉,.epochs, .time, .goal, .min_grad, .max_fail, .mu, .mu_dec, .mu_inc, .mu_max重量和偏见价值观:IW: {2 x1细胞}包含1输入权重矩阵LW: {2 x2细胞}包含1层权重矩阵b: {2 x1细胞}包含2偏差向量方法:调整:学习在连续使用配置:配置输入和输出gensim:生成仿真软件模型初始化:初始化权值和偏差执行:计算性能sim:评估网络输出给定输入火车:火车网络例子视图:视图图应取消:应取消输入和输出评估:输出=净(输入)金宝app

这个显示是网络对象的概述,这是用于存储的所有信息定义了一个神经网络。这里有很多细节,但有几个关键部分,可以帮助你如何组织的网络对象。

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

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

关键网络对象的子对象输入,,输出,偏见,inputWeights,layerWeights。查看子对象第一层的命令

net.layers {1}
神经网络层的名字:“隐藏”维度:10 distanceFcn:(一)distanceParam:(一)距离:[]initFcn:“initnw”netInputFcn:“netsum”netInputParam:(一)职位:[]范围:[10 x2双)尺寸:10 topologyFcn:(一)transferFcn:“tansig”transferParam:(一)用户数据:(定制信息)

神经元的数量在一个层是给定的大小财产。在这种情况下,有10层神经元,这是默认的大小feedforwardnet命令。净输入函数netsum(求和)和传递函数tansig。如果你想改变的传递函数logsig例如,您可以执行命令:

net.layers {1}。transferFcn =“logsig”;

查看layerWeights子对象的第一层和第二层之间的重量,使用命令:

net.layerWeights {2,}
神经网络权重延迟:0 initFcn:(一)initConfig: .inputSize学习:真正的learnFcn:“learngdm”learnParam: .lr, .mc尺寸:10 [0]weightFcn:“dotprod”weightParam:(一)用户数据:(定制信息)

权函数是dotprod代表标准矩阵乘法(积)。请注意,这一层的大小重量是0-by-10。我们有0行的原因是网络尚未配置为一个特定的数据集。输出神经元的数量等于目标向量的行数。在配置过程中,您将为网络提供示例输入和目标,然后输出神经元可分配的数量。

这给了你一些网络对象是如何组织的。对于许多应用程序,您将不需要担心网络对象直接进行更改,因为这是通过网络创造的功能。通常只有当你想覆盖系统默认值,需要直接访问网络对象。其他主题将展示这样做是为了特定的网络和训练方法。

更详细地探讨网络对象,您会发现对象列表,如上图所示,包含链接帮助每个子对象。点击链接,你可以选择性的调查对象的部分感兴趣的你。