# Modeling and Prediction with NARX and Time-Delay Networks

Solve time series problems using dynamic neural networks, including networks with feedback

## Apps

 Neural Net Time Series Solve a nonlinear time series problem by training a dynamic neural network

## Functions

 `nnstart` Neural network getting started GUI `view` View shallow neural network
 `timedelaynet` Time delay neural network `narxnet` Nonlinear autoregressive neural network with external input `narnet` Nonlinear autoregressive neural network `layrecnet` Layer recurrent neural network `distdelaynet` Distributed delay network
 `train` Train shallow neural network `gensim` Generate Simulink block for shallow neural network simulation `adddelay` Add delay to neural network response `removedelay` Remove delay to neural network’s response `closeloop` Convert neural network open-loop feedback to closed loop `openloop` Convert neural network closed-loop feedback to open loop `ploterrhist` Plot error histogram `plotinerrcorr` Plot input to error time-series cross-correlation `plotregression` Plot linear regression `plotresponse` Plot dynamic network time series response `ploterrcorr` Plot autocorrelation of error time series `genFunction` Generate MATLAB function for simulating shallow neural network

## Examples and How To

### Basic Design

Shallow Neural Network Time-Series Prediction and Modeling

Make a time series prediction using the Neural Network Time Series App and command-line functions.

Design Time Series Time-Delay Neural Networks

Learn to design focused time-delay neural network (FTDNN) for time-series prediction.

Multistep Neural Network Prediction

Learn multistep neural network prediction.

Design Time Series NARX Feedback Neural Networks

Create and train a nonlinear autoregressive network with exogenous inputs (NARX).

Design Layer-Recurrent Neural Networks

Create and train a dynamic network that is a Layer-Recurrent Network (LRN).

Deploy Shallow Neural Network Functions

Simulate and deploy trained shallow neural networks using MATLAB® tools.

Deploy Training of Shallow Neural Networks

Learn how to deploy training of shallow neural networks.

Maglev Modeling

This example illustrates how a NARX (Nonlinear AutoRegressive with eXternal input) neural network can model a magnet levitation dynamical system.

### Training Scalability and Efficiency

Neural Networks with Parallel and GPU Computing

Use parallel and distributed computing to speed up neural network training and simulation and handle large data.

Automatically Save Checkpoints During Neural Network Training

Save intermediate results to protect the value of long training runs.

Optimize Neural Network Training Speed and Memory

Make neural network training more efficient.

### Optimal Solutions

Choose Neural Network Input-Output Processing Functions

Preprocess inputs and targets for more efficient training.

Configure Shallow Neural Network Inputs and Outputs

Learn how to manually configure the network before training using the `configure` function.

Divide Data for Optimal Neural Network Training

Use functions to divide the data into training, validation, and test sets.

Choose a Multilayer Neural Network Training Function

Comparison of training algorithms on different problem types.

Improve Shallow Neural Network Generalization and Avoid Overfitting

Learn methods to improve generalization and prevent overfitting.

Train Neural Networks with Error Weights

Learn how to use error weighting when training neural networks.

Normalize Errors of Multiple Outputs

Learn how to fit output elements with different ranges of values.

## Concepts

How Dynamic Neural Networks Work

Learn how feedforward and recurrent networks work.

Multiple Sequences with Dynamic Neural Networks

Manage time-series data that is available in several short sequences.

Neural Network Time-Series Utilities

Learn how to use utility functions to manipulate neural network data.

Sample Data Sets for Shallow Neural Networks

List of sample data sets to use when experimenting with shallow neural networks.

Neural Network Object Properties

Learn properties that define the basic features of a network.

Neural Network Subobject Properties

Learn properties that define network details such as inputs, layers, outputs, targets, biases, and weights.