I want to model a complex nonlinear function using neural networks (keras).
Training data: input - 8500 x 176 matrix of features, output - 8500 x 8 matrix, each row corresponds to 8 points which comprise a curve (nonlinear function of time, x-axis values are fixed at every 15 minutes between 0 and 2 hours). I need: to predict a curve given a single set of 176 features.
To my surprise, I failed to find in the web how similar problems should be addressed. I see three ways:
1) Make a network with 8 neurons in the last layer which represents the 8-point curve output. The curve points are correlated with each other -- will it not be a problem for ANN?
2) Add time as a separate feature and make (8500*8)x(176+1) feature matrix with a single value as an output. I suppose, this is essentially a multivariate curve fitting. Should I train the network so that all rows corresponding to a single curve end up in the same training batch?
3) Parametrize the curve, e.g. with cubic splines (the typical form of the curve is such that cubic splines should do reasonably well). What is the ANN topology? The second to last layer consists of neurons that correspond to spline parameters and the last layer is 8 neurons connected to the spline layer via a fixed formula? How should I implement that in keras?
Any general advises on ANN topology etc. are also very welcome. I suppose, with this kind of data it's better to use a multilayer perceptron. Am I wrong?