0
$\begingroup$

I'm trying to do time-series prediction with dynamic recurrent networks in Matlab (will try at least NARX and LRN architectures, if not one or two others). The question I have is, what is the functional difference between giving a network multiple inputs, versus giving it an input vector with multiple elements?

My inputs are values from multiple sensors. Can I create a single matrix (say, a 3xN matrix for 3 sensors that recorded N time steps), run 'con2seq' and use that as a single input to the network? What is the functional difference between doing that versus formatting it as 3 different sequential inputs?

As I understand it, each value (each row within the 3xN matrix, or alternatively each of the 3 single-row inputs) will get its own weight to every layer 1 neuron. Is that correct? What's the difference between the two options, then? Is the only purpose of creating multiple inputs for the case where you want to send some inputs to one subset of layers and other inputs to a different subset of layers?

After reading the first third of the Neural Network Toolbox User Guide, I looked around on here, stackexchange, and google with luck. Everyone says, "net.inputs{K}.size is the dimension of input K, while net.numInputs is the number of inputs," which is tautological more than clarifying.

Thanks much for your help!

$\endgroup$

1 Answer 1

1
$\begingroup$

This question is better fit in stackoverflow or cross validated site, yet I am trying to illustrate a simple example.

Suppose you have three measurements $a$, $b$, and $c$, with each measurement only $1$ time reading, the hidden layer node and output are scalar. Compose an input vector is shown below:

        w1 
(a,b,c) => (H1)-------(O1) => Result

The value at output layer is $ \alpha ((a+b+c)w_1)$, where $\alpha$ is the activation function.

When you treat the measurements separately at the input layer, the neural network is:

  w1 
a => 
     \
  w2                
b => (H1)----------(O1) => Result
     /                
  w3                
c => 

and the output is $ \alpha (aw_1 + bw_2 + cw_3)$. Now you are dealing with three independent neurons, which indicates that updating one of the weights won't change the 'learned' weights on other input nodes.

As far as I know, a single neuron usually take in scalars rather than vector values (for the case of one time reading), or take in vectors rather than matrix arrays (for the case of a series of time readings).

$\endgroup$
1
  • $\begingroup$ Ah okay, thanks. I wondered if here or stackoverflow was more appropriate. Matlab's documentation is ambiguous as to which of the two options you present it executes; thanks for the clarification. $\endgroup$
    – dpbont
    Feb 27, 2014 at 2:31

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.