# Curve disaggregation with neural network

I have to extract a specific curve from an aggregate curve. An example is illustrated in the picture below, the blue curve is the aggregate curve, and I want to extract the red curve from the latter.

The idea is to use a neural network that takes the blue curve as input and generates the red curve as output. I am trying to perform some tests with feedforward neural networks (with Tensorflow library) but the results are very bad (the accuracy continues to decrease over the training). I suppose that the problem is the loss-function, I tried the cross-entropy with sigmoid (tf.nn.sigmoid_cross_entropy_with_logits()) and the cross-entropy with softmax (tf.nn.softmax_cross_entropy_with_logits()). Which loss-function would be more appropriate for this kind of problem?

Update

Network architecture:

• Input: a sequence of 48 float32 values (the blue curve).
• Output: a sequence of 48 float32 values (the red curve).
• Batches of 100 samples.
• Layer 1: fully connected with 96 neurons.
• Layer 2: fully connected with 96 neurons.
• Layer 3: fully connected with 48 neurons.

I calculate accuracy as: 1 / (1 + abs(output - correct_output) / correct_output)

Generally I start with an accuracy of around 50%, and after 50'000 training steps it is around 48-47%.

• First tell us what is the architecture of the network you are trying to use and the accuracy you are getting. Did you try increase or decrease number of neurons in hidden layer and increase/decrease number of hidden layers. – papabiceps Jul 13 '17 at 11:20
• Yes, I have just added more information, thanks for you comment. And yes, I tried to add more hidden layers and to increase the neurons of them. Sorry for the late. – Nicola Jul 14 '17 at 8:34