idNeuralNetwork
Multilayer neural network mapping function for nonlinear ARX models and Hammerstein-Wiener models (requires Statistics and Machine Learning Toolbox or Deep Learning Toolbox)
Since R2023b
Description
An idNeuralNetwork
object creates a neural network function and
is a nonlinear mapping object for estimating nonlinear ARX models and Hammerstein-Wiener
models. This mapping object lets you create neural networks using the regression networks of
Statistics and Machine Learning Toolbox™ and the deep and shallow networks of Deep Learning Toolbox™.
Mathematically, idNeuralNetwork
is a function that maps
m inputs X(t) =
[x(t1),x2(t),…,xm(t)]T
to a single scalar output
y(t) using the following relationship:
Here:
X(t) is an m-by-1 vector of inputs, or regressors.
y0 is the output offset, a scalar.
P and Q are m-by-p and m-by-q projection matrices, respectively.
L is a p-by-1 vector of weights.
S(.) represents a neural network object of one of the following types:
RegressionNeuralNetwork
(Statistics and Machine Learning Toolbox) object — Network object created usingfitrnet
(Statistics and Machine Learning Toolbox)dlnetwork
(Deep Learning Toolbox) object — Deep learning network objectnetwork
(Deep Learning Toolbox) object — Shallow network object created using a command such asfeedforwardnet
(Deep Learning Toolbox)
Additionally, a cascade-correlation neural network is a network type that is implemented with deep networks. It allows you to create networks without specifying the network sizes.
See Examples for more information.
Use idNeuralNetwork
as the output value, or, for multiple-output systems,
one of the output values in the OutputFcn
property of an idnlarx
model or the InputNonlinearity
and
OutputNonlinearity
properties of an idnlhw
object. For example, specify idNeuralNetwork
when you
estimate an idnlarx
model with the following
command.
sys = nlarx(data,regressors,idNeuralNetwork)
nlarx
estimates the model, it essentially estimates the parameters of
the idNeuralNetwork
function.You can use a similar approach when you specify input or output linearities using the
nlhw
command. For example, specify idNeuralNetwork
as both the
input and output nonlinearities with the following command.
sys = nlhw(data,orders,idNeuralNetwork,idNeuralNetwork)
Creation
Syntax
Description
Create Regression Network or Deep Learning Network
creates an
NW
= idNeuralNetworkidNeuralNetwork
object NW
that uses a single
hidden layer of ten rectified linear unit (ReLU) activations.
The specific type of network that NW
represents depends on the
toolboxes you have access to.
If you have access to Statistics and Machine Learning Toolbox, then
idNeuralNetwork
usesfitrnet
(Statistics and Machine Learning Toolbox) to create aRegressionNeuralNetwork
(Statistics and Machine Learning Toolbox)-based map.If Statistics and Machine Learning Toolbox is not available but you have access to Deep Learning Toolbox, then
idNeuralNetwork
usesdlnetwork
(Deep Learning Toolbox) to create a deep learning network map.
For idnlhw
models, the number of inputs to the network is 1. For
idnlarx
models, the number of inputs is unknown, as this number is
determined during estimation. NW
also uses a parallel linear
function and an offset element.
For multiple-output nonlinear ARX or Hammerstein-Wiener models, create a separate
idNeuralNetwork
object for each output. Each element of the
output function must represent a single-output network object.
uses the length of NW
= idNeuralNetwork(LayerSizes
)LayerSizes
as the number of layers, if
LayerSizes
is a row vector of positive integers. Each
ith element in LayerSizes
specifies the number
of activations in the corresponding ith
layer.
specifies the types of activation to use in each layer. The combination of the
NW
= idNeuralNetwork(LayerSizes
,Activations
)Activations
specification and the available toolboxes determines
which type of neural network NW
uses.
specifies whether NW
= idNeuralNetwork(LayerSizes
,Activations
,UseLinearFcn
)NW
uses a linear function as a
subcomponent.
specifies whether NW
= idNeuralNetwork(LayerSizes
,Activations
,UseLinearFcn
,UseOffset
)NW
uses an offset term.
creates a neural network object with properties specified by one or more name-value
arguments.NW
= idNeuralNetwork(___,Name=Value
)
Create Cascade-Correlation Neural Network
Creating cascade-correlation neural networks requires Deep Learning Toolbox software. You can use these cascade-correlation neural networks for estimating nonlinear ARX models but not Hammerstein-Wiener models.
creates a cascade-correlation neural network where the network determines the number of
layers during training. Each of these layers has one unit. All units are connected to
all previous layers and inputs. For more information on these networks, see Cascade-Correlation Neural Networks.NW
= idNeuralNetwork("cascade-correlation")
specifies the types of activation to use in each layer.NW
= idNeuralNetwork("cascade-correlation",Activations
)
specifies whether NW
= idNeuralNetwork("cascade-correlation",Activations
,UseLinearFcn
)NW
uses a linear function as a
subcomponent.
specifies whether NW
= idNeuralNetwork("cascade-correlation",Activations
,UseLinearFcn
,UseOffset
)NW
uses an offset term.
creates a cascade-correlation neural network object with properties specified by one or
more name-value arguments.NW
= idNeuralNetwork(___,Name=Value
)
Use Existing Shallow Neural Network
creates NW
= idNeuralNetwork(shallownet
)NW
using the network
(Deep Learning Toolbox) object shallownet
.
shallownet
is typically the output of feedforwardnet
(Deep Learning Toolbox), cascadeforwardnet
(Deep Learning Toolbox), or linearlayer
(Deep Learning Toolbox).
specifies whether NW
= idNeuralNetwork(shallownet
,[],UseLinearFcn
)NW
uses a linear function as a
subcomponent.
specifies whether NW
= idNeuralNetwork(shallownet
,[],UseLinearFcn
,UseOffset
)NW
uses an offset term.
Input Arguments
Name-Value Arguments
Properties
Examples
Algorithms
The learnable parameters of the idNeuralNetwork
function are determined
during estimation of the nonlinear ARX and Hammerstein-Wiener models, using nlarx
and nlhw
commands, respectively.
The software initializes these parameters using the following steps:
Determine the linear function coefficients L and the offset y0, if in use and free, by performing a least-squares fit to the data.
Initialize the learnable parameters of the network function by fitting the residues of the linear and offset terms from step 1. The initialization scheme depends upon the type of the underlying network:
For
RegressionNeuralNetwork
(Statistics and Machine Learning Toolbox) networks, usefitrnet
(Statistics and Machine Learning Toolbox).For
dlnetwork
(Deep Learning Toolbox) networks, perform initialization by training the network using the specified solver inNW.EstimationOptions
. For cascade-correlation neural networks, perform initialization by training a network using the options specified inNW.EstimationOptions
andnlarxOptions
.For
network
(Deep Learning Toolbox) networks, perform initialization by training the network using the specified solver inNW.EstimationOptions
.
After initialization, the software updates the parameters using a nonlinear least-squares
optimization solver (see SearchMethod
in nlarxOptions
and SearchOptions
in nlhwOptions
) to minimize the chosen
objective, as the following objective summaries describe:
For nonlinear ARX models, the objective is either prediction-error minimization or simulation-error minimization, depending on whether the
Focus
option innlarxOptions
is"prediction"
or"simulation"
.For Hammerstein-Wiener models, the objective is simulation-error-norm minimization.
See nlarxOptions
and nlhwOptions
for more information on how to configure the objective and search
method.
Version History
Introduced in R2023bSee Also
nlarx
| idnlarx
| nlarxOptions
| nlhw
| idnlhw
| RegressionNeuralNetwork
(Statistics and Machine Learning Toolbox) | fitrnet
(Statistics and Machine Learning Toolbox) | dlnetwork
(Deep Learning Toolbox) | network
(Deep Learning Toolbox) | feedforwardnet
(Deep Learning Toolbox) | trainingOptions
(Deep Learning Toolbox) | evaluate
Topics
- Available Mapping Functions for Nonlinear ARX Models
- Cascade-Correlation Neural Networks
- Available Nonlinearity Estimators for Hammerstein-Wiener Models
- List of Deep Learning Layers (Deep Learning Toolbox)
- Define Custom Training Loops, Loss Functions, and Networks (Deep Learning Toolbox)
- Train and Apply Multilayer Shallow Neural Networks (Deep Learning Toolbox)
- Predict EV Battery Temperature Using Cascade-Correlation Model