# CNN vs RNN for time series classification

I am new to neural networks and after some research i read about CNN and RNN neural networks. The data that i am having is multiple different time series of numbers.

So for example instead of input 1 being for example a single image to be classified it is a number of time series:

input 1: time series type A, time series type B, time series type C

input 2: time series type A, time series type B, time series type C

From these time series i would like to have two outputs. If a single time series looks abnormal or normal based on already classified training data for each time series type, and finally based on all time series a single result for the input, if it is normal or abnormal. (If any of the time series of the input are abnormal then the result is abnormal)

My questions are:

1) Should i use a CNN or a RNN for this problem? I read that RNNs are good in sequences, for example languages, but what about time series data. On the other hand i found other articles using CNN for time series classification.

2) How should i approach this problem? Should i use all time series as inputs on my neural network of choice? or should i use multiple neural networks for each time series type? Note here that each time series describes a different thing, but at the end i would like to have a single result based on all time series, for each input.

Thanks.

As you said, usually RNN, because their memory mechanism, are good in sequences, but other approaches are also possible. However it depends on what your data represent and it's not too clear to me, how different time series types are related among each other.

You could have different approach to try, but I repeat that it's not clear to me what your data represent and how they are related.

Here just few of them.

1) Train a RNN for each sequence type to learn to classify them and then use a consensus on the whole input

2) As 1.), but training using a unique RNN for all sequence types

3.) Concatenate your sequences types for each input so build a unique model RNN based to produce an embedding on which you could apply two classifiers (multi-tasking fashion). The first classify each sentence, while the second classify the whole input

In your case, you can try RNN or CNN.

For the RNN, you can let the model see the previous few numbers to predict the next one(or a few ones), and if the prediction is within one standard deviation there is no problem. Here is an example: RNN based Time-series Anomaly detector. If the numbers are categorical you can train a language model and score the sequence by the perplexities for each number. If the perplexity is larger than a threshold you can make it as abnormal. Or you can try a bidirectional LSTM and get the final state and concatenate them as the feature and add a logistic regression on top of it.

And you can also use CNN with a particular large kernel size and max-pooling as a direct classification problem. But be cautious since CNNs are position invariant.