You are on page 1of 21

Dynamic Neural Networks

The neural networks presented in previous chapters are static networks: the outputs of the network
are generated at the same time the inputs are introduced in. There is not a temporal relationship
between inputs and outputs, nor a dynamic relationship between them.

However, in many real-world systems there is a temporal relationship between inputs and outputs:
present outputs do not depend on external inputs only but also on past network outputs or past
network states. It is said the network has dynamics and memory, and there is a temporal relationship
between inputs and outputs. Dynamic neural networks are powerful systems that are applied to
problems involving dynamics and time such as system identification and control, filtering, language
processing, pattern recognition, associative memories, etc.

There are several ways to represent dynamic neural networks all of them having some type of
feedback with some neuron outputs becoming inputs in the next step. In this book, dynamic neural
networks with output feedback will be considered.

Figure 1 shows the general structure of static and dynamic neural networks. For static networks it can
be noted that there is not a temporal relationship between input and output, however, for dynamic
networks there is a temporal relationship with inputs generating outputs which will turn to be inputs in
the next step. Figure 1 also shows the equations relating inputs and outputs for static and dynamic
networks. Suffix refers to time step.

Static Network Dynamic Network

𝒗 𝒗
𝒘 𝒘
𝑥𝑘
𝑥
𝑦 𝑦𝑘
𝑦𝑘
𝑥2

𝑦 = 𝑓(𝑥 , 𝑥2 )
𝑦𝑘 = 𝑓(𝑦𝑘 , 𝑥𝑘 )

The equation relating inputs and outputs in the dynamic network presented in Figure 1 is:

𝑦𝑘 = 𝑓(𝑦𝑘 , 𝑥𝑘 ) (1)

is the external input vector at time , and is the network output for inputs and . It is
noted that the output becomes input in the next step. For this type of dynamic network, can be
considered as the state of the network for time .

Similarly as static network training where weighting coefficients and are determined using input
and output data, in dynamic neural network training coefficients and are also determined using
input and output data but considering the temporal relationship between network inputs and outputs.
Two algorithms will be presented for training dynamic neural networks: Back Propagation Through
Time BPTT and Dynamic Back Propagation DBP.

Time Deployment of Dynamic Neural Networks


For formulating the training algorithm of dynamic neural networks it is important to understand how
they evolve along time.
Figure 2 shows the time deployment of a dynamic neural network starting from the initial conditions 0 and 0 . It is noted that the output at each step becomes
input in the next step.

𝑥 𝑥2 𝑥𝑁−
𝒗 𝒗 𝒗 𝒗
𝑥0
𝒘 𝒘 𝒘 𝒘

𝑦0 𝑦 𝑦2 𝑦3 𝑦𝑁− 𝑦𝑁
…..
...

Step 1 Step 2 Step 3 Step N

In Figure 2 it is noted that:


 The same neural network is unfolded at each time step. Network weighting coefficients and are the same for each time step.
 The output at step becomes input at step .
 The relationships between network inputs and outputs are:
= ( 0, 0)

2 = ( , )

3 = ( 2, 2) (2)

= ( − , − )
 If the networks of steps 1 and 2 are considered as a single network, this enlarged network has
as inputs 0 , 0 and , and output 2 . Likewise, output 2 depends on weighting
coefficient of the second-step network and on weighting coefficient of the first-step
network. However, the dependence is different for each of them: 2 for the weighting
coefficient of the second-step network is different to the 2 for the weighting
coefficient of the first-step network.
 Similarly, if the networks of steps 1, 2 and 3 are considered as a single network, this enlarged
network has as inputs 0 , 0 , and 2 , and output 3 . Likewise, output 3 depends on
weighting coefficient of the third-step network, on weighting coefficient of the second-
step network, and on weighting coefficient of the first-step network. However, the
dependence is different for each of them: derivative 3 for the weighting coefficient of
the third-step network is different to derivative 3 for the weighting coefficient of the
second-step network, and they are also different to derivative 3 for the weighting
coefficient of the first-step network.
In other words, even the value of is the same for the three networks, the derivatives are
different. It is owed to the time-dependent behavior of the dynamic neural-network.

Simple and Total Partial Derivatives

When training dynamic neural networks they appear the concepts of simple partial derivative and total
partial derivative. They can be easily understood through the following example. Given the set of
equations:

=
=
=

The simple partial derivative of respect to is:

The total partial derivative of z respect to x is:

̅̅̅
= ( )
̅̅̅̅

In Figure 2 it is noted that directly depends of weighting coefficients and and there is not other
temporal dependence. Therefore, in this case, the simple and total partial derivatives of respect to
weighting coefficients and are the same:

̅̅̅̅̅
=
̅̅̅̅
(8)
̅̅̅̅̅
=
̅̅̅̅

However, for output 2 it is noted that it depends on weighting coefficients and of step-2 network,
as well as on weighting coefficients and of step-1 network. The simple partial derivatives
represent the immediate dependence of output 2 on weighting coefficients and of step-2
network:
2 2
=
2
2 2
=
2

The total partial derivatives of output 2 respect to weighting coefficients and consider the total
dependence taking into account step-2 network and step-1 network as follows:

̅̅̅̅̅2 2 2
=
̅̅̅̅ 2

̅̅̅̅̅2 2 2
=
̅̅̅̅ 2

Similarly, for output 3 it is noted that it depends on weighting coefficients and of step-3 network,
on weighting coefficients and of step-2 network, as well as on weighting coefficients and of
step-1 network. The simple partial derivatives represent the immediate dependence of output 3 on
weighting coefficients and of step-3 network:

3 3
=
3

3 3
=
3

The total partial derivatives of output 3 respect to weighting coefficients and consider the total
dependence taking into account step-3 network, step-2 network, and step-1 network as follows:

̅̅̅̅̅3 3 3 3
=
̅̅̅̅ 3 2

̅̅̅̅̅3 3 3 3
=
̅̅̅̅ 3 2

Training of Dynamic Neural Networks

The training of dynamic neural networks must consider the fact that network output becomes input in
the next time step as it was presented in Figure 2.
Figure 3 shows the single input – single output data of a dynamic system which will be used for
training a dynamic neural network representing the equation = ( , )

Data
𝑣
𝑥𝑘 𝑦𝑘∗ 𝑤
𝑥𝑘
𝑥0 𝑦0 𝑦𝑘
𝑥 𝑦
𝑦𝑘
𝑥2 𝑦
𝑥3 𝑦
... ...
𝑥𝑁 𝑦𝑁 𝑦𝑘 = 𝑓(𝑦𝑘 , 𝑥𝑘 )
The training objective is to find the weighting coefficients and minimizing the cost function:

∗ 2 ∗ 2 ∗ 2 ∗ 2
=0 ( ) 0 ( 2 2) 0 ( 3 3) 0 ( ) (3)

∗ 2
= ∑( )

(4)

where and ∗ represent the network output and desired output at time step , respectively.
The weighting coefficients and are updated using the gradient descent method as follows:

̅̅̅
=
̅̅̅̅

(5)
̅̅̅
=
̅̅̅̅̅

where ̅̅̅ ̅̅̅̅ and ̅̅̅ ̅̅̅̅ represent the total partial derivatives of cost function respect to weighting
coefficients and , respectively. These equations are applied to each weighting coefficient and
.

When training dynamic neural networks it appears the concept of total partial derivatives for taking into
account the temporal network output respect to weighting coefficients and at different time
steps.

Two algorithms will be used for training dynamic neural networks: Back-Propagation Through time
BPTT, and Dynamic Back Propagation DBP. BPTT algorithm is more simple but it demands more
memory usage. DBP algorithm is mathematically more involved but it is more efficient in terms of
memory requirements. In the following each algorithm will be presented.

Back Propagation Through Time BPTT Algorithm

The Back Propagation Through Time Algorithm was proposed by Paul Werbos in year 1972. It is
basically the application of the standard error back propagation algorithm to networks that are
augmented by unfolding the original network at each time step as it was presented in Figure 2 where
every copy of the network has the same weighting coefficients and .

Considering the cost function to be minimized:

∗ 2 ∗ 2 ∗ 2 ∗ 2
=0 ( ) 0 ( 2 2) 0 ( 3 3) 0 ( )

= 2 3
(6)

∗ 2 ∗ 2 ∗ 2
=0 ( ) 2 =0 ( 2 2) 3 =0 ( 3 3)
(7)

the total partial derivatives ̅̅̅ ̅̅̅̅ and ̅̅̅ ̅̅̅̅ are computed from equation (8)

̅ ̅̅̅̅ ̅̅̅̅2 ̅̅̅̅3 ̅̅̅̅̅


=
̅̅̅̅ ̅̅̅̅ ̅̅̅̅ ̅̅̅̅ ̅̅̅̅
(8)
̅ ̅̅̅̅ ̅̅̅̅2 ̅̅̅̅3 ̅̅̅̅̅
=
̅̅̅̅ ̅̅̅̅ ̅̅̅̅ ̅̅̅̅ ̅̅̅̅
where the total partial derivatives

̅̅̅̅ ̅̅̅̅2 ̅̅̅̅3 ̅̅̅̅̅


, ,
̅̅̅̅ ̅̅̅̅ ̅̅̅̅ ̅̅̅̅
and
̅̅̅̅ ̅̅̅̅2 ̅̅̅̅3 ̅̅̅̅̅
, ,
̅̅̅̅ ̅̅̅̅ ̅̅̅̅ ̅̅̅̅

can be found by applying the error back propagation algorithm to augmented networks as it is shown
in Figure 4 where Network1, Network 2, Network 1-2-3, ….. Network 1-2-3-…-N are obtained by
unfolding the dynamic neural network along time.
𝑥 𝑥2 𝑥𝑁−

𝒗 𝒗 𝒗 𝒗
𝑥0
𝒘 𝒘 𝒘 𝒘

𝑦0 𝑦 𝑦2 𝑦3 𝑦𝑁− 𝑦𝑁
…..
...

𝑦∗ 𝑦2∗ 𝑦3∗ 𝑦𝑁∗


𝑒 =𝑦 𝑦∗ 𝑒2 = 𝑦2 𝑦2∗ 𝑒3 = 𝑦3 𝑦3∗ 𝑒𝑁 = 𝑦𝑁 𝑦𝑁∗

Network 1

Network 1-2

Network 1-2-3

Network 1-2-3-……-N

∗ ∗
The error back propagation algorithm is applied independently to Network 1 (using output error = ), Network 1-2 (using output error 2 = 2 2 ),

Network 1-2-3 (using output error 3 = 3 3 ), etc.
Network 1
Figure 3 shows the isolated Network 1 whose inputs 0 and 0 , output , weighting coefficients
and , and desired output ∗ are known. By applying the standard the error back propagation
algorithm, the total partial derivatives ̅̅̅̅ ̅̅̅̅ and ̅̅̅̅ ̅̅̅̅ can be found:

𝑥0 𝒗
𝒘
-
𝑦0 𝑦

𝑒 = (𝑦 𝑦∗)

̅̅̅̅
=
̅̅̅̅
(8)
̅̅̅̅
=
̅̅̅̅

In Network 1, since there is only one network component, the total partial derivative ̅̅̅̅ ̅̅̅̅ is equal
to the simple partial derivative .

Network 1-2
Figure 4 shows the isolated Network 1-2 whose inputs 0 , 0 and , output 2 , weighting
coefficients and , and desired output 2∗ are known. By applying the standard error back
propagation algorithm, the total partial derivatives ̅̅̅̅
2
̅̅̅̅ and ̅̅̅̅2 ̅̅̅̅ can be found:

𝒗 𝒗
𝑥0
𝒘 𝒘

𝑦0 𝑦 𝑦2

𝑒2 = (𝑦2 𝑦2∗ )

Step 1 Step 2

̅̅̅̅2 2 2
=
̅̅̅̅ 2
(9)
̅̅̅̅2 2 2
=
̅̅̅̅ 2
In equation (9), simple partial derivatives

2 2
,
2 2


can be found by back propagating output error 2 = ( 2 2) to the step-2 network. Likewise,
simple partial derivatives

2 2
,


can be found by back propagating output error 2 = ( 2 2) to the step-1 network.

Network 1-2-3
Figure 5 shows the isolated Network 1-2-3 whose inputs 0 , 0 , and 2 , output 3 , weighting
coefficients and , and desired output 3∗ are known. By applying the standard error back
propagation algorithm, the total partial derivatives ̅̅̅̅
3
̅̅̅̅ and ̅̅̅̅3 ̅̅̅̅ can be found:

𝑥 𝑥2

𝒗 𝒗 𝒗
𝑥0
𝒘 𝒘 𝒘

𝑦0 𝑦 𝑦2 𝑦3

𝑒3 = (𝑦3 𝑦3∗ )

Step 1 Step 2 Step 3

̅̅̅̅3 3 3 3
=
̅̅̅̅ 3 2
(10)
̅̅̅̅3 3 3 3
=
̅̅̅̅ 3 2

In equation (10), simple partial derivatives

3 3
,
3 3


can be found by back propagating output error 3 = ( 3 3) to the step-3 network. Likewise,
simple partial derivatives

3 3
,
2 2

can be found by back propagating output error 3 = ( 3 3) to the step-2 network. Likewise,
simple partial derivatives

3 3
,


can be found by back propagating output error 3 = ( 3 3) to the step-1 network.

A similar procedure can be applied to dynamic neural networks with several outputs. The standard
error back propagation algorithm is applied Network 1, Network 1-2, Network 1-2-3, etc., since the
errors at the outputs of these networks are known

Dynamic Back Propagation Algorithm

The Dynamic Back Propagation Algorithm was proposed by Kumpati Narendra in year 1988. It is an
efficient way to compute the total partial derivatives of the dynamic network outputs respect to
weighting coefficients and by using a recursive equation integrating present simple derivatives
and previous-step total partial derivatives.

For a recurrent network with several outputs, the output vector is = [ ( ) 2( ) ( )] and the
∗ ∗ ∗ ∗
desired output vector is =[ ( ) 2( ) ( ) ] where suffix represents the size of vector
. The cost function to be minimized is:

=0 ( ∗) ( ∗) 0 ( ∗) ( ∗) 0 ( ∗ ) ( ∗)

∗ ∗
= ∑( ) ( )

where represents the size of the available data for training.


Computing the total partial derivatives of costs function respect to weighting coefficients and :

̅ ̅̅̅̅̅ ̅̅̅̅̅2 ̅̅̅̅̅


∗) ∗ ∗)
=( ( 2 2) (
̅̅̅̅ ̅̅̅̅ ̅̅̅̅ ̅̅̅̅

̅ ̅̅̅̅̅ ̅̅̅̅̅2 ̅̅̅̅̅


∗) ∗ ∗)
=( ( 2 2) (
̅̅̅̅ ̅̅̅̅ ̅̅̅̅ ̅̅̅̅

Output vector is computed as the network evolves in time, and their total partial derivatives respect
to weighting coefficients and will be computed using a recursive equation which represents the
main difference of DBP algorithm respect to BPTT algorithm. This equation is what makes the DBP
algorithm much more efficient in terms of memory requirements.
In the following, it will be derived the recursive equation for computing total partial derivatives:

̅̅̅̅̅ ̅̅̅̅̅2 ̅̅̅̅̅


, , ,
̅̅̅̅ ̅̅̅̅ ̅̅̅̅

̅̅̅̅̅ ̅̅̅̅̅2 ̅̅̅̅̅


, , ,
̅̅̅̅ ̅̅̅̅ ̅̅̅̅
𝑥 𝑥2 𝑥𝑁−

𝒗 𝒗 𝒗 𝒗
𝑥0
𝒘 𝒘 𝒘 𝒘

𝑦0 𝑦 𝑦2 𝑦3 𝑦𝑁− 𝑦𝑁
…..
...

̅̅̅̅̅
𝜕𝑦2 𝜕𝑦2 𝜕𝑦2 𝜕𝑦 ̅̅̅̅̅
𝜕𝑦3 𝜕𝑦3 𝜕𝑦3 𝜕𝑦2 𝜕𝑦3 𝜕𝑦2 𝜕𝑦
̅̅̅̅̅ 𝜕𝑦
𝜕𝑦 =
= ̅̅̅̅ =
̅̅̅̅ 𝜕𝑤 𝜕𝑤 𝜕𝑦 𝜕𝑤 ̅̅̅̅
𝜕𝑤 𝜕𝑤 𝜕𝑦2 𝜕𝑤 𝜕𝑦2 𝜕𝑦 𝜕𝑤
𝜕𝑤 𝜕𝑤
̅̅̅̅̅
𝜕𝑦2 𝜕𝑦2 ̅̅̅̅̅
𝜕𝑦2 𝜕𝑦 ̅̅̅̅̅
𝜕𝑦3 𝜕𝑦3 𝜕𝑦3 𝜕𝑦2 𝜕𝑦2 ̅̅̅̅̅
𝜕𝑦
= =
̅̅̅̅
𝜕𝑤 𝜕𝑤 ̅̅̅̅
𝜕𝑦 𝜕𝑤 ̅̅̅̅
𝜕𝑤 𝜕𝑤 𝜕𝑦2 𝜕𝑤 𝜕𝑦 ̅̅̅̅
𝜕𝑤

̅̅̅̅̅
𝜕𝑦3 𝜕𝑦3 𝜕𝑦3 ̅̅̅̅̅
𝜕𝑦2
=
̅̅̅̅
𝜕𝑤 𝜕𝑤 ̅̅̅̅
𝜕𝑦2 𝜕𝑤

̅̅̅̅̅̅̅̅̅̅
𝜕𝑦 (𝑘 ) 𝜕𝑦(𝑘 ) 𝜕𝑦(𝑘 ) ̅̅̅̅̅̅̅
𝜕𝑦(𝑘)
=
̅̅̅̅
𝜕𝑤 𝜕𝑤 𝜕𝑦(𝑘) 𝜕𝑤̅̅̅̅
For a recurrent network with two outputs:

𝑥𝑘 𝑣
𝑤
𝑦 (𝑘 )

𝑦 (𝑘)
𝑦2(𝑘 )
𝑦2(𝑘)

𝑦 (𝑘)
𝑦𝑘 = 𝑓(𝑦𝑘 , 𝑥𝑘 ) 𝑦𝑘 =
𝑦2(𝑘)

The recursive equation for computing total partial derivatives:


̅̅̅̅̅̅̅̅̅̅
𝜕𝑦 (𝑘 ) 𝜕𝑦(𝑘 ) 𝜕𝑦(𝑘 ) ̅̅̅̅̅̅̅
𝜕𝑦(𝑘)
=
̅̅̅̅
𝜕𝑤 𝜕𝑤 ̅̅̅̅
𝜕𝑦(𝑘) 𝜕𝑤

̅̅̅̅̅̅̅̅
( )
̅̅̅̅̅̅̅
( )
̅̅̅̅
=
̅̅̅̅̅̅̅̅
2( )
[ ̅̅̅̅ ]

Jacobian matrix:

( ) ( )

( ) ( ) 2( )
=
( ) 2( ) 2( )
[ ( ) 2( ) ]

̅̅̅̅̅̅̅̅̅̅̅
( ) ( ) ( ) ( ) ̅̅̅̅̅̅̅̅
( )
̅̅̅̅̅̅̅̅̅̅
( )
̅̅̅̅ ( ) 2( ) ̅̅̅̅
= =
̅̅̅̅̅̅̅̅̅̅̅
2( ) 2( ) 2( ) 2( ) ̅̅̅̅̅̅̅̅
2( )
[ ̅̅̅̅ ] [ ] [ ( ) 2( ) ] [ ̅̅̅̅ ]

̅̅̅̅̅̅̅̅̅̅̅
( ) ( ) ( ) ( ) ̅̅̅̅̅̅̅̅
( )
̅̅̅̅̅̅̅̅̅̅
( )
̅̅̅̅ ( ) 2( ) ̅̅̅̅
= =
̅̅̅̅̅̅̅̅̅̅̅
2( ) 2( ) 2( ) 2( ) ̅̅̅̅̅̅̅̅
2( )
[ ̅̅̅̅ ] [ ] [ ( ) 2( ) ] [ ̅̅̅̅ ]
Simple partial derivatives of network outputs respect to weighting coefficients and :

( ) , 2( ) , ( ) , 2( )

as well as the elements of the Jacobian matrix:

( ) ( ) , ( ) 2( ) , 2( ) ( ) , 2( ) 2( )

can be directly computed from the neural network in the last time step, since all the equations of the
neural network for computing output from inputs are known.
Hopfield Networks

Hopfield Network is a special type dynamic neural network with a single layer of fully-connected
recurrent neurons as it is shown in Figure 9. The output of a given neuron is fed back to all neurons
affected by weighting coefficients. The equation described by the Hopfield network is

( ) = ( ) = , , ,

where ( ) is the state (output) of the neuron at time , vector ( ) is:


=[ ( ) 2( ) 3( ) ( )]

is the external input to the neuron, and weighting matrix is symmetric with no self-
connections:
= =0

𝑦 (𝑘 ) 𝑦2(𝑘 ) 𝑦3(𝑘 ) 𝑦𝑛− (𝑘 ) 𝑦𝑛(𝑘 )

.......
.......

...........

.......
.......
.......
.......
.......
𝑥 (𝑘) 𝑥2(𝑘) 𝑥3(𝑘) 𝑥𝑛− (𝑘) 𝑥𝑛(𝑘)

Hopfield networks could work with binary data, bipolar data or continuous data. The type of activation
function f( ) depend on the type of data.
l
One common application of Hopfield networks is associative memory: matrix of weighting
coefficients is determined for the network to store a set of given patterns (i.e. faces, digit images, etc.).
Given an initial state vector 0 the network will evolve along time and the output will converge to the
closest pattern stored in the network.
As any dynamical system, the Hopfield network evolves from the initial state vector 0 describing an
energy function (Lyapunov function) whose magnitude reduces along time until it settles to a stable
state. For binary Hopfield networks the energy function is given by:

( )= ∑∑ ( ) ( ) ∑ ( ) ( )

Figure 10 show the energy function having several local minimums. Each minimum represents a
stored pattern to which the network converges. Starting from an initial state vector 0 Given an initial
state vector 0 the network will evolve along time and the output will converge to the closest minimum
(closest stored pattern). For instance, if the initial network state is A, the netwok will converge to
stored pattern 2 (the network will retrieve pattern 2). If the initial stat is B the network will converge to
stored to stored pattern B.

𝐸
Initial Initial
netwok netwok
state A state B

Stored 𝑦𝑗
Pattern 3
Stored
Stored Pattern 4
Pattern 1
Stored
Pattern 2

𝑦𝑖
Applications of Recurrent Networks

Recurrent neural networks are being applied in several fields and for solving different problems
involving dynamics and time dependence. They can be applied in signal and image processing, linear
and nonlinear systems modeling, regulation, control, state estimations in many problems in articulated
robots arms and multi-body mobile robots, medical diagnosis, fault diagnosis, etc. In the following,
three applications will be presented: soft sensors, signal separation, systems modeling. Applications in
nonlinear systems modeling, parameter identification, autonomous control, and state estimation will be
presented in detail in next chapters.

Soft Sensors
Soft sensors or virtual sensors are used for estimating the value of a system variables by processing
the information or data available from other sources, usually actual sensors measuring one or more
variables of the system.
In this sense, a soft sensor is an algorithm for processing available data of a system for estimating the
value of other variable difficult or expensive to measure. A typical example of soft sensor is the
Kalman filter used for estimating the state variable of a system from its measured output.

Recurrent neural networks are useful and versatile to be applied for constructing a soft sensor. In the
following, a neural network will be used for estimating the angular speed of a DC motor from the
measurements of the current and voltage applied to the motor. Figure 11 shows the recurrent neural
network with two external inputs ( ) : voltage and 2( ) : current, and one output ( ) : angular speed
which is fed back to the network in the next step.

𝑥 (𝑘)

𝑥 (𝑘) : Voltage
𝑥2(𝑘) 𝑦(𝑘 )
𝑥2(𝑘) : Current

𝑦(𝑘) 𝑦(𝑘) : Angular speed

For training the network is required to have available data of voltage, current, and angular speed
obtained from a voltmeter, an amperemeter, and a tachometer. The tachometer will be used one time
for generating training data of angular speed, however once the network the tachometer is no longer
required since the angular speed will be estimated by the recurrent neural network using the
measured variables from the voltmeter and amperemeter.
Figure 12 shows the actual (experimental) data used for training the recurrent neural network.

Data
𝑥 (𝑘) 𝑥 (𝑘) 𝑦(𝑘)

𝑥 ( ) 𝑥 ( ) 𝑦( )
𝑥 (2) 𝑥 ( ) 𝑦( )
𝑥 (3) 𝑥 ( ) 𝑦( )

𝑥 (𝑁) 𝑥 (𝑁) 𝑦(𝑁)


Signal Separation

Signal separation, also known as source separation, blind signal separation or blind source
separation, is the separation of a set of source signals from a set of mixed signals without the aid of
information (or with very little information) about the source signals or the mixing process. The
classical example of a source signal separation problem is the cocktail party problem, where a number
of people are talking randomly and simultaneously to each other in a room or auditorium, and it is
required to identify and extract the talk of a given person. For that, one or more microphones are
placed in the room recording the mixed speeches of many people, and the microphone signal must be
processed to extract the speech of the person of interest. The human brain is able to identify and
extract in real time the speech of a given person inside a busy and noisy room.

Source Signal 1

Source Signal 2 Signal Mixed Signal


Mixing
Process
Source Signal 3

Source Signal 1

Mixed Signal Signal Source Signal 2


Separator
Source Signal 3

Mixed
Signal

Time

Mixed Signal
Moving Window
.. 𝑦 (𝑘 )
..

𝑦2(𝑘 )
𝑦 (𝑘)

𝑦2(𝑘)

Dynamic System Modeling

Recurrent neural networks can be used for created models of dynamic systems using their measured
input and outputs as training data. As in any modeling problem the training data should be reach
enough for representing the complete dynamics of the system.

𝑥 (𝑘)

𝑦 (𝑘 )
𝑥2(𝑘)

𝑦 (𝑘)
𝑦2(𝑘 )

𝑦2(𝑘)

𝑦 (𝑘) 𝑥 (𝑘)
𝑦𝑘 = 𝑓(𝑦𝑘 , 𝑥𝑘 ) 𝑦𝑘 = 𝑦 𝑥𝑘 = 𝑥
2(𝑘) 2(𝑘)

The model presented above is usually applied when all the state variables of the system are
measured. In this case 𝑦𝑘 represents the state variable vector. However, in many cases not all state
variables are measured so that the network output error cannot be computed for all state variables but
for measured variables only. Figure 12 shows a neural network model of a system with two state
variables 𝑦 (𝑘) and 𝑦2(𝑘) , but only variable 𝑦 (𝑘) is measured and available for network training.
However, both state variables are fed back to network input. The BPTT and DBP algorithms can be
easily adapted to train this type of neural networks.
𝑥 (𝑘)

𝑦 (𝑘 )
𝑥2(𝑘)

𝑦 (𝑘) 𝑦2(𝑘 )

𝑦2(𝑘)

𝑦 (𝑘) 𝑥 (𝑘)
𝑦𝑘 = 𝑓(𝑦𝑘 , 𝑥𝑘 ) 𝑦𝑘 = 𝑦 𝑥𝑘 = 𝑥
2(𝑘) 2(𝑘)
Matlab Programs

Soft Sensor para Motor DC:


Estimación de la velocidad de un motor DC usando las mediciones del voltaje y la corriente.

Generación de Datos:
DynamicBPSofytSensor1.m

Entrenamiento de Red Dinámica:


DynamicBPSofytSensor2.m

Validación para otras entradas


DynamicBPSofytSensor3.m

Separación de Señales:
Extracción de dos señales originales z1 y z2 de la señal mezclada z = z1 + z2

Separación de Dos Señales. Programa de entrenamiento y validación


DynamicBPSeparation.m

Separación de Tres Señales. Programa de entrenamiento y validación


DynamicBPSeparation3.m

Modelamiento de Sistemas No-lineales:

Modelamiento de un sistema de dos variables de estado que se miden.

DynamicBPModelamiento.m

You might also like