Main Content

Sigmoid network function for nonlinear ARX and Hammerstein-Wiener models

A `sigmoidnet`

object implements a sigmoid network function, and
is a nonlinear mapping function for estimating nonlinear ARX and Nonlinear Hammerstein-Weiner
models. The mapping function, which is also referred to as a
*nonlinearity*, uses a combination of linear weights, an offset and a
nonlinear function to compute its output. The nonlinear function contains sigmoid unit
functions that operate on a ridge combination (weighted linear sum) of inputs.

Mathematically, a *sigmoidnet* network is a function that maps
*m* inputs *X*(*t*) =
[*x*(*t*_{1}),*x*_{2}(*t*),…,*x _{m}*(

$$y(t)={y}_{0}+{({\rm X}(t)-\overline{X})}^{T}PL+S({\rm X}(t))$$

Here:

*X*(*t*) is an*m*-by-1 vector of inputs, or*regressors*, with mean $$\overline{{\rm X}}$$.*y*is the output offset, a scalar._{0}*P*is an*m*-by-*p*projection matrix, where*m*is the number of regressors and is*p*is the number of linear weights.*m*must be greater than or equal to*p*.*L*is a*p*-by-1 vector of weights.*S*(*X*) is a sum of dilated and translated sigmoid functions. The total number of sigmoid functions is referred to as the*number of units**n*of the network.

For the definition of the sigmoid function term *S*(*X*)
, see More About.

Use `sigmoidnet`

as the value of the `OutputFcn`

property of an `idnlarx`

model or the
`InputNonlinearity`

and `OutputLinearity`

properties
of an `idnlhw`

object. For example, specify
`sigmoidnet`

when you estimate an `idnlarx`

model with the
following
command.

sys = nlarx(data,regressors,sigmoidnet)

`nlarx`

estimates the model, it essentially estimates the parameters
of the `sigmoidnet`

function.
You can configure the `sigmoidnet`

function to disable components and fix
parameters. To omit the linear component, set `LinearFcn.Use`

to
`false`

. To omit the offset, set `Offset.Use`

to
`false`

. To specify known values for the linear function and the offset,
set their `Value`

attributes directly and set the corresponding
`Free`

attributes to `False`

. Use `evaluate`

to compute the output of the function for a given vector of
inputs.

creates a
`S`

= sigmoidnet`sigmoidnet`

object `S`

that uses 10 units. The number
of inputs is determined during model estimation and the number of outputs is 1.

specifies whether the function uses a linear function as a subcomponent.`S`

= sigmoidnet(`numUnits`

,`UseLinearFcn`

)

specifies whether the function uses an offset term
`S`

= sigmoidnet(`numUnits`

,`UseLinearFcn`

,`UseOffset`

)*y _{0}* parameter.

`sigmoidnet`

uses an iterative search technique for estimating
parameters.

`customnet`

| `deadzone`

| `evaluate`

| `idnlarx`

| `idnlhw`

| `linear`

| `neuralnet`

| `nlarx`

| `nlhw`

| `poly1d`

| `pwlinear`

| `saturation`

| `treepartition`

| `unitgain`

| `wavenet`