I am looking to train a neural network to satisfy an ordinary differential equation. I have constructed a neural network like this using keras sequential model.
import keras
from keras.models import Sequential
from keras.layers import Dense
from keras.layers.advanced_activations import LeakyReLU, PReLU
model = Sequential()
model.add(Dense(output_dim = 20, init = 'uniform', activation = 'relu', input_dim = 1,use_bias=True))
model.add(Dense(output_dim = 20, init = 'uniform', activation = 'relu',use_bias=True))
model.add(Dense(output_dim = 20, init = 'uniform', activation = 'relu',use_bias=True))
model.add(Dense(output_dim = 1,init='uniform',activation='sigmoid'))`
Now, I want this output of Neural netork to satisfy the following differential equation:
dy/dx+y=x
Where x lies between 0 and 1. Suppose N represents the output of the constructed neural network, I want the following loss function
∑(dN/dx_i+N-x_i)^2
How can I do it using Keras sequential model?