0

Hi I am trying to simulate the flow of water through a porous medium using ANNs. I have managed to get good result when the porous medium is homogeneous, however when it isn't the network seems to struggle to capture sharp changes in the water flow.

In the example below a change in the porous medium properties lead to a "kink" in the test data (obtain using standard numerical techniques in my field) which cannot be captured by my simple neural network.

The neural network has 2 inputs a distance x and a time t, 2 hidden layer with 7 neurons, and an output layer with 1 neuron. The weights and biases are randomly initialized between -1 and 1. I tried increasing the number of neurons in the hidden layer up to 80 without getting any better.

I was wondering what the next step should be, should I add more training data from around the boundaries of the kinked areas ? Should I add a few more hidden layers to my network ?

enter image description here

enter image description here

Thanks !

Sorade
  • 227
  • 1
  • 7
  • Have you tried adding another layer rather than increasing the number of neurons in your first hidden layer? Also, how many data samples do you have? Also, as time has an effect on your distance input, have you tried using a recurrent neural network, or even a LSTM Network? – Johnathan Brown Sep 13 '18 at 14:02
  • It's better but not significantly (see edited question). I am training it with a grid of 11 by 11 points uniformly distributed. – Sorade Sep 13 '18 at 14:14
  • I take it you're using a Feed Forward Perceptron Neural Network? As an input is time, I would recommend using a Network which can better represent this relationship. What development tools are you using? Python? Matlab? R? – Johnathan Brown Sep 13 '18 at 14:37
  • Yes I’m using a feed forward perceptron. I thought about using a recurrent network but it is just an example, I could be using a steady state time independent test set with only spatial directions x and y. – Sorade Sep 13 '18 at 16:07
  • 4
    The body of your question is a possible duplicate of [What should I do when my neural network doesn't learn?](https://stats.stackexchange.com/questions/352036/what-should-i-do-when-my-neural-network-doesnt-learn) but the title of your question is answered here: https://stats.stackexchange.com/questions/364917/what-is-required-for-neural-network-to-approximate-discontinuous-function/364926#364926 – Sycorax Sep 19 '18 at 18:26

0 Answers0