I want to use deep learning for regression. However, the number of training samples is not large. In image processing, some new samples are generated on the basis of initial data through tasks like rotation to increase the number of data sets. Can I know if there is any algorithm to generate more data based on current samples (data augmentation for regression)?
2 Answers
Yes, you can perturb your data (and targets) in ways that you wish your model to be robust against, for example by adding small amounts of noise (possibly Gaussian) or synthetic anomalies, or by creating meaningful aggregates. Some models also improve just by running the same training data through them more than once, randomly shuffled (“epochs”).
You can try something like SMOTE and see how your newly generated data fits your requirements. If your data has a statistical model you can use an appropriate parametric model to generate data. You can even try methods like Non Parametric estimation such as Parzen windows etc. All of this depends on the statistical fit of your image data which you have processed so far.
Other Methods similar to SMOTE: ADASYN, Boundary SMOTE etc (Look them up on the internet)
Note: Apply SMOTE on the already processed image data such as the training data you already have not directly on the image itself.
-
$\begingroup$ Why SMOTE over other augmentation procedures? SMOTE is computationally expensive and not guaranteed to give better results than KNN on small data sets. $\endgroup$– JonOct 4, 2017 at 16:13
-
$\begingroup$ I just mentioned a general case as there was no context about the data. In a small dataset depending upon the application most times, the safest option is SMOTE because it generates agreeable values in a small range. ADASYN can also be used I would say an enhanced version of SMOTE with the assistance of a directional vector, but as mentioned I knew nothing about the data so I gave a general solution for the simplest case. $\endgroup$ Oct 4, 2017 at 16:32