主要内容

idFeedforwardNetwork

非线性ARX模型的多层前馈神经网络映射函数(需要深度学习工具箱

描述

一个idFeedforwardNetwork对象实现了神经网络函数,是估计非线性ARX模型的非线性映射对象。这个映射对象允许您使用网络(深度学习工具箱)在非线性ARX模型中使用深度学习工具箱™创建的对象。

数学上,idFeedforwardNetwork是映射的函数吗输入Xt) = [xt1),x2t),…xt)]T到标量输出yt),使用在深度学习工具箱中定义的多层前馈(静态)神经网络。

您可以使用以下命令创建多层前馈神经网络feedforwardnet(深度学习工具箱)cascadeforwardnet(深度学习工具箱)而且linearlayer(深度学习工具箱).当你创建网络时,

  • 将输入和输出大小指定为未知,将它们保留为默认值零(推荐的方法)。方法估计非线性ARX模型时nlarx命令时,软件自动确定网络的输入和输出大小。

  • 通过将输入和输出范围设置为手动初始化大小分别为-by-2和1 by-2矩阵,其中为非线性ARX模型回归量的个数,范围值分别为回归量的最小值和输出数据的最大值。

看到例子获取更多信息。

使用评估(net_estimator x)方法定义的函数的值idFeedforwardNetwork对象net_estimator在输入值处x.当用于非线性ARX模型估计时,x属性的输出的模型回归器idFeedforwardNetwork对象被指定为非线性估计器。

你不能使用idFeedforwardNetwork焦点选项nlarxOptions“模拟”因为潜在的网络对象被认为是不可微的估计。最小化仿真误差需要可微非线性函数。

使用idFeedforwardNetwork的值OutputFcn的属性idnlarx模型。例如,指定idFeedforwardNetwork当你估计idnlarx使用以下命令进行建模。

sys = nlarx(数据,回归器,idFeedforwardNetwork)
nlarx估计模型,它本质上估计参数idFeedforwardNetwork函数。

创建

描述

例子

net_estimator= idFeedforwardNetwork (网络创建基于前馈(静态)网络对象的前馈神经网络映射对象网络这是用一个神经网络命令创建的feedforwardnetcascadeforwardnet,或linearlayer网络必须表示输入和输出之间的静态映射,没有I/O延迟或反馈。网络的输出数量,如果分配,必须设置为1。对于一个多输出非线性ARX模型,创建一个单独的idFeedforwardNetwork对象,即输出函数的每个元素必须表示一个单输出网络对象。

属性

全部展开

前馈神经网络对象,一般创建使用feedforwardnet(深度学习工具箱)cascadeforwardnet(深度学习工具箱)linearlayer(深度学习工具箱)

用于估计的信号的输入信号信息,指定为的向量属性特定的值,其中是输入信号的个数。的输入每个输入信号的属性如下:

  • 的名字—输入信号的名称,用1 × -表示字符串或字符数组,其中输入的数量是多少

  • 的意思是-输入信号的平均值,指定为数值标量

  • 范围—输入信号的范围,用2 × -表示包含最小值和最大值的数字数组

训练神经网络的选项,指定为真正的.集免费的当你使用的神经网络已经经过训练,并且已知能提供良好的拟合结果时,则为假。的免费的当你的idnlarx模型有多个输出,每个输出使用一个神经网络时,属性特别有用。设置免费的对于训练良好的网络,可以将处理时间集中在需要训练的网络上。

输出信号信息,指定为属性特定的值。的输出属性如下:

  • 的名字-输出信号的名称,指定为字符串或字符数组

  • 的意思是-输出信号的平均值,指定为数值标量

  • 范围-输出信号的范围,指定为包含最小值和最大值的2乘1数值数组

例子

全部折叠

创建一个神经网络映射对象,该对象使用具有三个隐藏层的前馈神经网络,类型的传递函数logsigradbas,purelin,以及未知的输入和输出大小。

创建一个神经网络。

Net = feedforwardnet([4 6 1]);net.layers{1}。transferFcn =“logsig”;net.layers{2}。transferFcn =“radbas”;net.layers{3}。transferFcn =“purelin”

查看组网图。

视图(净)

创建一个神经网络映射对象。

net_estimator = idFeedforwardNetwork(net);

创建一个输入和输出大小未知的单层级联转发网络,并使用该网络进行非线性ARX模型估计。

创建一个具有20个神经元和未知输入/输出大小的级联向前神经网络。

Net = cascadeforwardnet(20);

创建前馈神经网络映射对象。

net_estimator = idFeedforwardNetwork(net);

加载估计数据。

负载twotankdata数据= iddata(y,u,0.2);

估计一个非线性ARX模型sys

Sys = nlarx(data,[2 2 1],net_estimator);

将模型响应与测量输出信号进行比较。

比较(数据、系统)

图中包含一个轴对象。axis对象包含2个line类型的对象。这些对象表示data (y1), sys: 91.72%。

实测信号与仿真模型输出信号吻合较好。

根据估计数据初始化两层前馈神经网络的输入输出大小,并将该网络用于非线性ARX估计。

负载估计数据。

负载iddata7z7Z7 = Z7 (1:200);

创建一个没有非线性的模板非线性ARX模型。

Model = idnlarx([4 4 4 1 1],[]);

该模型有六个回归量,并用于定义回归量。中输入-输出数据的回归值范围z7然后用于设置神经网络对象中的输入范围,如下面的步骤所示。

获得模型回归值。

R = getreg(模型,“所有”, z7);R = R.变量;

创建一个两层前馈神经网络,并将网络输入和输出维度分别初始化为2和1。第一层使用5个神经元,第二层使用7个。

Net = feedforwardnet([5 7]);

确定输入范围。

InputRange = [min(R);max(R)].';

初始化估计器的输入维度。

net.inputs{1}。range = InputRange;

确定输出范围。

OutputRange = [min(z7.OutputData),max(z7.OutputData)];

初始化估计器的输出维数和训练函数的选择。

net.outputs {net.outputConnect}。range = OutputRange;网trainFcn =“trainbfg”

创建一个神经网络非线性估计器。

net_estimator = idFeedforwardNetwork(net);

在模型中指定非线性估计器。

模型。非线性= net_estimator;

估计网络参数,使数据与模型之间的预测误差最小化。估计模型。

模型= nlarx(z7,模型);

比较模型对测量输出信号的预测响应。

比较(z7(1:10 0),模型1)

图中包含一个轴对象。axis对象包含2个line类型的对象。这些对象表示验证数据(y1),模型:66.29%。

算法

nlarx命令使用火车方法网络对象,在深度学习工具箱软件中定义,以计算网络参数值。

兼容性的考虑

全部展开

不建议从R2021b开始

在R2007a中引入