Is Neural Network Toolbox capable of this or can you recommend anything else?

3 views (last 30 days)
Hello folks,
I don't share any experiences with Mathlab and/or Neural Networks in general.
I just wan't to know, if my task can be accomplished by NNT or if I do have the very wrong idea of neural networks.
I have 8 rows of measurement values that come in every 4 seconds and change by nature. When I do specific tasks, they change even more.
I manually added two more rows to tell WHAT happened and WHERE. 4 (or 5) cases of WHERE and integer values of WHAT (more like HOW MUCH) happened.
Of course there is a lot of input data...
In the end I want the Neural Network to be able to tell me WHERE WHAT happened based on the incoming measurement values.
So I want to "train" it with something like this:
and as a result it shall later be able to give me the responding HOW MUCH + WHERE values for new measurements..
muhkuhmw on 23 Jul 2015
1. This should just let you check these lines to find out, that there is a jump whenever something happens.
2. Imagine 0 inbetween.
Imagine a digital scale giving out a specific voltage that is also affected by other things. This could be the first column. While the "How much" column is the weigth of the things I added.

Sign in to comment.

Answers (1)

Nick Hobbs
Nick Hobbs on 24 Jul 2015
From what I understand your goal is to predict the 9th and 10th columns based on the information in columns 1 to 8. More specifically, where there is a large jump in the data in the field MV1 HL, you want your neural network to provide you with WHERE and HOW MUCH happened. A neural network can do this for you, as a neural network simply creates a function given data (assuming that there is a function for the parameters you provide). The most direct way I can think of to handle this is to not label columns 9 and 10 with 0's, but instead label them all with the same action. So for example, rows 4-9, will all have HOW MUCH 70 and WHERE 0. Then when you do your data analysis, just look for cases where the HOW MUCH or WHERE categories change. You could do this with a feed forward neural network, where one output neuron is a regression neuron whose goal it is to predict HOW MUCH, and then you could have 4 or 5 output neurons for the value of WHERE and take the value which is highest for the appropriate WHERE. However, this method assumes that these values are independent of the previous input (That they can only be predicted only based on the current time step).
If you have a guarantee that the change is only between a time step T and T-1, an alternative method to handle the analysis would be for the neural network to not only include 8 pieces of data, but 16 pieces of data. So the network would take as input all of the variables in columns 1-8 for time T and all of the variables in columns 1-8 for time T-1. Then you would train the network on the types of changes it should provide you the values of WHERE and HOW MUCH. As an example in your code, you would provide columns 1-8 with rows 3-4, and tell the network the output is HOW MUCH 70 and WHERE 0.
To summarize these two approaches, in the first example, you could try to design a neural network which would try to create the function f(MV1 HL, MV2 HL, MV1 HR, MV2 HR, MV1 VL, MV2 VL, MV1 VR, MV2 VR) = HOW MUCH, WHERE. This method assumes that the data can be differentiated solely based on these values, and are not dependent on the previous time step.
If you have a guarantee that the change is between two time steps of T and T-1, you could create a neural network which takes in 16 parameters. This method should also allow you to maintain your 0's (You would train the network such that if two values are close together, to provide a value of 0). This network would try to create the following function f(MV1 HL(T), MV2 HL(T), MV1 HR(T), MV2 HR(T), MV1 VL(T), MV2 VL(T), MV1 VR(T), MV2 VR(T), MV1 HL(T-1), MV2 HL(T-1), MV1 HR(T-1), MV2 HR(T-1), MV1 VL(T-1), MV2 VL(T-1), MV1 VR(T-1) MV2 VR(T-1)) = HOW MUCH, WHERE. For this setup, however, you will need a large number of training examples because you would have 16 input parameters and the network must learn to differentiate the cases.
  1 Comment
muhkuhmw on 24 Jul 2015
Thank you very much for this detailed answer!
I tried around with a tool called Membrain, feeding not only the absolute values but also the delta of (T)-(T-1). One of the main problems so far is, that sometimes it is not
delta - output
100 - 70
but e.g.
20 - 70
80 - 0
and of course this leads to a conflict.
Because the "action" for the same output, doesn't take place at once but splitted..
I cannot really guarantee the change to be bewteen a specific amount of time steps..
I am currently trying (not using neural networks but simple c) to set a flag whenever there is a huge change in delta, and then wait till it calmed down and take all inbetween as one value. I guess this could be used as a better input for the neural network.

Sign in to comment.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!