2
$\begingroup$

I am building a CNN and am wondering if inputting derived or computed inputs are generally bad for the effectiveness of CNNs? Or just NNs in general?

By derived or computed values I mean data that is not "raw" and instead is computed based on the raw data. For example, in a very simple form, using time-series data as the "raw" data and computing a 30 day SMA as a "derived/computed" value, and as another input.

Is this bad practice at boosting the effectiveness of the network? If it is not a bad practice, are there any tips on what kind of computed values someone should consider when adding new inputs?

The goal of my NN is for building predictions in time-series data.

$\endgroup$

2 Answers 2

1
$\begingroup$

It seems to me that, you're basically asking whether feature engineering is bad or not. It's not necessarily bad, but the main advantage of deep neural networks stem from the fact that they do feature engineering for you. The earlier layers learn/extract useful features, and the last layer (usually a fully-connected one), just does some kind of regression on the extracted features.

All in all, feature engineering is not necessarily bad, but rather, the deep neural networks do it for you instead. So, they render feature engineering somewhat obsolete. However, if you've rather small amount of data, or using a shallow network for whatever reason, feature engineering can still benefit you a lot.

$\endgroup$
0
$\begingroup$

What you are describing could be considered feature engineering as noted by @SpiderRico, and I fully agree with his response. However, what you are describing can also be considered preprocessing. (I will not get into whether preprocessing is really just a form of feature engineering. That is a topic for another day.)

Preprocessing such as centering or scaling of features can also be considered "derived or computed inputs". Preprocessing is not only not considered bad practice, it is--dare I say--almost considered standard or even best practice for the deep learning. Preprocessing can improve speed of convergence and model performance.

For time series data, 1D kernels of you CNNs will learn "smoothening" operations if relevant to the target. See Kaggle, Computer Vision course, Lesson 4 Exercise. That is probably not a "preprocessing" step that you would need to do. However, you may still need to do some sort of normalization of your time series data.

$\endgroup$

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .