Shallow Networks for Pattern Recognition, Clustering and Time Series

Neural networks are composed of simple elements operating in parallel. These elements
are inspired by biological nervous systems. As in nature, the connections between elements
largely determine the network function. You can train a neural network to perform a particular
function by adjusting the values of the connections (weights) between elements.

Typically, neural networks are adjusted, or trained, so that a particular input leads to a
specific target output. The next figure illustrates such a situation. Here, the network is
adjusted, based on a comparison of the output and the target, until the network output matches
the target. Typically, many such input/target pairs are needed to train a network.

Neural networks have been trained to perform complex functions in various fields, including
pattern recognition, identification, classification, speech, vision, and control systems.

Neural networks can also be trained to solve problems that are difficult for conventional
computers or human beings. The toolbox emphasizes the use of neural network paradigms that build
up to—or are themselves used in— engineering, financial, and other practical
applications.

The following topics explain how to use graphical tools for training neural networks to
solve problems in function fitting, pattern recognition, clustering, and time series. Using these
tools can give you an excellent introduction to the use of the Deep Learning
Toolbox™ software:

Shallow Network Apps and Functions in Deep Learning Toolbox

There are four ways you can use the Deep Learning
Toolbox software.

The first way is through its tools. You can open any of these tools from a master tool
started by the command nnstart. These tools provide a convenient way to
access the capabilities of the toolbox for the following tasks:

The second way to use the toolbox is through basic command-line operations. The
command-line operations offer more flexibility than the tools, but with some added complexity.
If this is your first experience with the toolbox, the tools provide the best introduction. In
addition, the tools can generate scripts of documented MATLAB® code to provide you with templates for creating your own customized command-line
functions. The process of using the tools first, and then generating and modifying MATLAB scripts, is an excellent way to learn about the functionality of the
toolbox.

The third way to use the toolbox is through customization. This advanced capability
allows you to create your own custom neural networks, while still having access to the full
functionality of the toolbox. You can create networks with arbitrary connections, and you
still be able to train them using existing toolbox training functions (as long as the network
components are differentiable).

The fourth way to use the toolbox is through the ability to modify any of the functions
contained in the toolbox. Every computational component is written in MATLAB code and is fully accessible.

These four levels of toolbox usage span the novice to the expert: simple tools guide the
new user through specific applications, and network customization allows researchers to try
novel architectures with minimal effort. Whatever your level of neural network and MATLAB knowledge, there are toolbox features to suit your needs.

Automatic Script Generation

The tools themselves form an important part of the learning process for the Deep Learning
Toolbox software. They guide you through the process of designing neural networks to
solve problems in four important application areas, without requiring any background in neural
networks or sophistication in using MATLAB. In addition, the tools can automatically generate both simple and advanced
MATLAB scripts that can reproduce the steps performed by the tool, but with the option
to override default settings. These scripts can provide you with templates for creating
customized code, and they can aid you in becoming familiar with the command-line functionality
of the toolbox. It is highly recommended that you use the automatic script generation facility
of these tools.

Deep Learning Toolbox Applications

It would be impossible to cover the total range of applications for which neural networks
have provided outstanding solutions. The remaining sections of this topic describe only a few of
the applications in function fitting, pattern recognition, clustering, and time series analysis.
The following table provides an idea of the diversity of applications for which neural networks
provide state-of-the-art solutions.

Shallow Neural Network Design Steps

In the remaining sections of this topic, you will follow the standard steps for designing
neural networks to solve problems in four application areas: function fitting, pattern
recognition, clustering, and time series analysis. The work flow for any of these problems has
seven primary steps. (Data collection in step 1, while important, generally occurs outside the
MATLAB environment.)

Collect data

Create the network

Configure the network

Initialize the weights and biases

Train the network

Validate the network

Use the network

You will follow these steps using both the GUI tools and command-line operations in the
following sections: