Basically, predicting future values step by step using past values and some covariates as a feature, using some LSTM, Conv layers from tensorflow. I started by using mean absolute percentage error as a loss function, but even when it seems fairly low (<10%) it seems the shape tracking could get a lot better. Consider the following curves (not my results, but should give the idea), for example.
It was generated using mape as a loss, and their loss function is higher than mine, but mine does not trace the curve nicely. So was wondering what is the most appropriate loss function for making sure the peaks and valleys in a test set (i.e. future time steps) are tracked by my model? Best if the loss function is differentiable and available in tensorflow readily. Or else, it has to at least follow the standard api of loss functions such as
def (y_true:Iterable[float], y_pred:Iterable[float])->float:
raise NotImplementedError