Data augmentation methods for Raman Spectra I'm building a CNN model based on Raman spectroscopy data and I wanted to experiment with data augmentation. What would be some reasonable techniques to try?
I have found this paper which suggests these methods (in this case applied to NIR spectra):
- Adding an offset to the spectra
- Adding a slope to the spectra (kind of an "offset" slope)
- Multiplying the spectra by a factor
Would adding some form of noise also make sense? It would also make sense that the noise varies throughout the wavelengths, no?
 A: I think a good exercise to do before you do data augmentation is asking yourself, whether you would be able to identify what you want to predict from your data. Also, it is worth just trying to look at your ideas and see if these result in better validation accuracy.
Gaussian noise
Using Gaussian noise is potentially a good idea. The level of noise that you want to add, depends on your empirical estimate of the signal to noise ratio, which is possible to calculate. If you think that the noise varies through the wavelenghts, you could try estimating the signal to noise ratio for each wavelength bin to confirm. Also these spectroscopy devices often have a datasheet which contain information about their noise behaviour calculated respect to some reference.
GAN or some generative ground truth model
GANs could be also exploited here to do data augmentation, then the generative model could be validated by a human observer (but this really depends on what you want to predict). Other kinds of ground truth models could be also constructed like adding Gaussians at relevant wavelengths and noising them.
Small shifts
You could also try small shifts in the spectra so that your algorithm is robust to some uncertainy in the wavelength calibrations.
