Answers.Body: <p>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.</p>
  <p>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.</p>
  
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2021-11-28T01:26:59.370Z
Answers.LastActivityDate: 2021-11-28T01:26:59.370Z
Answers.UserDisplayName: SpiderRico
Answers.Body: <p>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.)</p>
  <p>Preprocessing such as centering or scaling of features can also be considered &quot;derived or computed inputs&quot;.  Preprocessing is not only <em>not</em> considered bad practice, it is--dare I say--<em>almost</em> considered standard or even best practice for the deep learning.  Preprocessing can improve speed of convergence and model performance.</p>
  <p>For time series data, 1D kernels of you CNNs will learn &quot;smoothening&quot; operations if relevant to the target.  See <a href="https://www.kaggle.com/learn/computer-vision" rel="nofollow noreferrer">Kaggle, Computer Vision course</a>, Lesson 4 Exercise.  That is probably not a &quot;preprocessing&quot; step that you would need to do.  However, you may still need to do some sort of normalization of your time series data.</p>
  
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2022-12-25T03:28:12.057Z
Answers.LastActivityDate: 2022-12-25T03:51:03.947Z
Answers.LastEditDate: 2022-12-25T03:51:03.947Z
Answers.UserDisplayName: Snehal Patel
Body: <p>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?</p>
  <p>By derived or computed values I mean data that is not &quot;raw&quot; and instead is computed based on the raw data. For example, in a very simple form, using time-series data as the &quot;raw&quot; data and computing a 30 day SMA as a &quot;derived/computed&quot; value, and as another input.</p>
  <p>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?</p>
  <p>The goal of my NN is for building predictions in time-series data.</p>
  
Tags: <neural-networks><machine-learning><convolutional-neural-networks><data-preprocessing><feature-engineering>
Title: Are derived or computed inputs bad for CNNs?
UserDisplayName: NullFucksException
ThreadText: # Are derived or computed inputs bad for CNNs?
  
  (Asked by: username_0 on 2021-11-26)
  
  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.
  
  **Tags:** neural-networks, machine-learning, convolutional-neural-networks, data-preprocessing, feature-engineering
  
  ---
  
  ## 2 answers
  
  ### Answer by username_1 on 2021-11-28. Score: 1
  
  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.
  
  
  ---
  
  ### Answer by username_2 on 2022-12-25. Score: 0
  
  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](https://www.kaggle.com/learn/computer-vision), 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.
  
  
  ---
  
  